diff --git a/config/config.example.yml b/config/config.example.yml index a62cce13eb..ea38303fa3 100644 --- a/config/config.example.yml +++ b/config/config.example.yml @@ -187,6 +187,9 @@ languages: - code: gd label: Gàidhlig active: true + - code: it + label: Italiano + active: true - code: lv label: Latviešu active: true diff --git a/src/app/admin/admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.spec.ts b/src/app/admin/admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.spec.ts index e478aa3ef3..ee3de42131 100644 --- a/src/app/admin/admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.spec.ts +++ b/src/app/admin/admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.spec.ts @@ -19,7 +19,7 @@ import { createSuccessfulRemoteDataObject$ } from '../../../../../shared/remote- import { getMockThemeService } from '../../../../../shared/mocks/theme-service.mock'; import { ThemeService } from '../../../../../shared/theme-support/theme.service'; import { AccessStatusDataService } from '../../../../../core/data/access-status-data.service'; -import { AccessStatusObject } from '../../../../../shared/object-list/access-status-badge/access-status.model'; +import { AccessStatusObject } from '../../../../../shared/object-collection/shared/badges/access-status-badge/access-status.model'; import { AuthService } from '../../../../../core/auth/auth.service'; import { AuthServiceStub } from '../../../../../shared/testing/auth-service.stub'; import { FileService } from '../../../../../core/shared/file.service'; diff --git a/src/app/admin/admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.html b/src/app/admin/admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.html index 259512552c..991508335f 100644 --- a/src/app/admin/admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.html +++ b/src/app/admin/admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.html @@ -2,6 +2,5 @@ [viewMode]="viewModes.ListElement" [index]="index" [linkType]="linkType" - [listID]="listID" - [hideBadges]="true"> + [listID]="listID"> diff --git a/src/app/community-page/sub-collection-list/community-page-sub-collection-list.component.ts b/src/app/community-page/sub-collection-list/community-page-sub-collection-list.component.ts index 181ee7cd6f..3a77149e5b 100644 --- a/src/app/community-page/sub-collection-list/community-page-sub-collection-list.component.ts +++ b/src/app/community-page/sub-collection-list/community-page-sub-collection-list.component.ts @@ -1,4 +1,5 @@ import { Component, Input, OnDestroy, OnInit } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; import { BehaviorSubject, combineLatest as observableCombineLatest } from 'rxjs'; @@ -49,19 +50,23 @@ export class CommunityPageSubCollectionListComponent implements OnInit, OnDestro */ subCollectionsRDObs: BehaviorSubject>> = new BehaviorSubject>>({} as any); - constructor(private cds: CollectionDataService, - private paginationService: PaginationService, - - ) {} + constructor( + protected cds: CollectionDataService, + protected paginationService: PaginationService, + protected route: ActivatedRoute, + ) { + } ngOnInit(): void { this.config = new PaginationComponentOptions(); this.config.id = this.pageId; if (hasValue(this.pageSize)) { this.config.pageSize = this.pageSize; + } else { + this.config.pageSize = this.route.snapshot.queryParams[this.pageId + '.rpp'] ?? this.config.pageSize; } - this.config.currentPage = 1; - this.sortConfig = new SortOptions('dc.title', SortDirection.ASC); + this.config.currentPage = this.route.snapshot.queryParams[this.pageId + '.page'] ?? 1; + this.sortConfig = new SortOptions('dc.title', SortDirection[this.route.snapshot.queryParams[this.pageId + '.sd']] ?? SortDirection.ASC); this.initPage(); } diff --git a/src/app/community-page/sub-community-list/community-page-sub-community-list.component.ts b/src/app/community-page/sub-community-list/community-page-sub-community-list.component.ts index e9da10bfa1..5a0409a051 100644 --- a/src/app/community-page/sub-community-list/community-page-sub-community-list.component.ts +++ b/src/app/community-page/sub-community-list/community-page-sub-community-list.component.ts @@ -1,4 +1,5 @@ import { Component, Input, OnDestroy, OnInit } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; import { BehaviorSubject, combineLatest as observableCombineLatest } from 'rxjs'; @@ -9,7 +10,6 @@ import { PaginatedList } from '../../core/data/paginated-list.model'; import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model'; import { SortDirection, SortOptions } from '../../core/cache/models/sort-options.model'; import { CommunityDataService } from '../../core/data/community-data.service'; -import { takeUntilCompletedRemoteData } from '../../core/shared/operators'; import { switchMap } from 'rxjs/operators'; import { PaginationService } from '../../core/pagination/pagination.service'; import { hasValue } from '../../shared/empty.util'; @@ -52,8 +52,10 @@ export class CommunityPageSubCommunityListComponent implements OnInit, OnDestroy */ subCommunitiesRDObs: BehaviorSubject>> = new BehaviorSubject>>({} as any); - constructor(private cds: CommunityDataService, - private paginationService: PaginationService + constructor( + protected cds: CommunityDataService, + protected paginationService: PaginationService, + protected route: ActivatedRoute, ) { } @@ -62,9 +64,11 @@ export class CommunityPageSubCommunityListComponent implements OnInit, OnDestroy this.config.id = this.pageId; if (hasValue(this.pageSize)) { this.config.pageSize = this.pageSize; + } else { + this.config.pageSize = this.route.snapshot.queryParams[this.pageId + '.rpp'] ?? this.config.pageSize; } - this.config.currentPage = 1; - this.sortConfig = new SortOptions('dc.title', SortDirection.ASC); + this.config.currentPage = this.route.snapshot.queryParams[this.pageId + '.page'] ?? 1; + this.sortConfig = new SortOptions('dc.title', SortDirection[this.route.snapshot.queryParams[this.pageId + '.sd']] ?? SortDirection.ASC); this.initPage(); } @@ -86,15 +90,6 @@ export class CommunityPageSubCommunityListComponent implements OnInit, OnDestroy ).subscribe((results) => { this.subCommunitiesRDObs.next(results); }); - - - this.cds.findByParent(this.community.id, { - currentPage: this.config.currentPage, - elementsPerPage: this.config.pageSize, - sort: { field: this.sortConfig.field, direction: this.sortConfig.direction } - }).pipe(takeUntilCompletedRemoteData()).subscribe((results) => { - this.subCommunitiesRDObs.next(results); - }); } ngOnDestroy(): void { diff --git a/src/app/core/core.module.ts b/src/app/core/core.module.ts index 7d540ccfcf..5b95a96796 100644 --- a/src/app/core/core.module.ts +++ b/src/app/core/core.module.ts @@ -160,7 +160,7 @@ import { SubmissionAccessesModel } from './config/models/config-submission-acces import { RatingAdvancedWorkflowInfo } from './tasks/models/rating-advanced-workflow-info.model'; import { AdvancedWorkflowInfo } from './tasks/models/advanced-workflow-info.model'; import { SelectReviewerAdvancedWorkflowInfo } from './tasks/models/select-reviewer-advanced-workflow-info.model'; -import { AccessStatusObject } from '../shared/object-list/access-status-badge/access-status.model'; +import { AccessStatusObject } from '../shared/object-collection/shared/badges/access-status-badge/access-status.model'; import { AccessStatusDataService } from './data/access-status-data.service'; import { LinkHeadService } from './services/link-head.service'; import { ResearcherProfileDataService } from './profile/researcher-profile-data.service'; diff --git a/src/app/core/data/access-status-data.service.ts b/src/app/core/data/access-status-data.service.ts index 2f641456fa..e8b77245e8 100644 --- a/src/app/core/data/access-status-data.service.ts +++ b/src/app/core/data/access-status-data.service.ts @@ -3,8 +3,8 @@ import { RemoteDataBuildService } from '../cache/builders/remote-data-build.serv import { ObjectCacheService } from '../cache/object-cache.service'; import { HALEndpointService } from '../shared/hal-endpoint.service'; import { RequestService } from './request.service'; -import { AccessStatusObject } from 'src/app/shared/object-list/access-status-badge/access-status.model'; -import { ACCESS_STATUS } from 'src/app/shared/object-list/access-status-badge/access-status.resource-type'; +import { AccessStatusObject } from 'src/app/shared/object-collection/shared/badges/access-status-badge/access-status.model'; +import { ACCESS_STATUS } from 'src/app/shared/object-collection/shared/badges/access-status-badge/access-status.resource-type'; import { Observable } from 'rxjs'; import { RemoteData } from './remote-data'; import { Item } from '../shared/item.model'; diff --git a/src/app/core/shared/context.model.ts b/src/app/core/shared/context.model.ts index acc3313bb7..b4c02bee63 100644 --- a/src/app/core/shared/context.model.ts +++ b/src/app/core/shared/context.model.ts @@ -3,18 +3,40 @@ */ export enum Context { + /** Default context */ Any = 'undefined', + + /** General item page context */ ItemPage = 'itemPage', + + /** General search page context */ Search = 'search', + Workflow = 'workflow', Workspace = 'workspace', SupervisedItems = 'supervisedWorkspace', + + /** Administrative menu context */ AdminMenu = 'adminMenu', + EntitySearchModalWithNameVariants = 'EntitySearchModalWithNameVariants', EntitySearchModal = 'EntitySearchModal', + + /** Administrative search page context */ AdminSearch = 'adminSearch', AdminWorkflowSearch = 'adminWorkflowSearch', + SideBarSearchModal = 'sideBarSearchModal', SideBarSearchModalCurrent = 'sideBarSearchModalCurrent', + + /** The MyDSpace* Context values below are used for badge display in MyDSpace. */ + MyDSpaceArchived = 'mydspaceArchived', + MyDSpaceWorkspace = 'mydspaceWorkspace', + MyDSpaceWorkflow = 'mydspaceWorkflow', + MyDSpaceDeclined = 'mydspaceDeclined', + MyDSpaceApproved = 'mydspaceApproved', + MyDSpaceWaitingController = 'mydspaceWaitingController', + MyDSpaceValidation = 'mydspaceValidation', + Bitstream = 'bitstream', } diff --git a/src/app/core/shared/item.model.ts b/src/app/core/shared/item.model.ts index 3441896ed1..20fc275ee2 100644 --- a/src/app/core/shared/item.model.ts +++ b/src/app/core/shared/item.model.ts @@ -21,8 +21,8 @@ import { Version } from './version.model'; import { VERSION } from './version.resource-type'; import { BITSTREAM } from './bitstream.resource-type'; import { Bitstream } from './bitstream.model'; -import { ACCESS_STATUS } from 'src/app/shared/object-list/access-status-badge/access-status.resource-type'; -import { AccessStatusObject } from 'src/app/shared/object-list/access-status-badge/access-status.model'; +import { ACCESS_STATUS } from 'src/app/shared/object-collection/shared/badges/access-status-badge/access-status.resource-type'; +import { AccessStatusObject } from 'src/app/shared/object-collection/shared/badges/access-status-badge/access-status.model'; import { HandleObject } from './handle-object.model'; import { IDENTIFIERS } from '../../shared/object-list/identifier-data/identifier-data.resource-type'; import { IdentifierData } from '../../shared/object-list/identifier-data/identifier-data.model'; diff --git a/src/app/dso-shared/dso-edit-metadata/dso-edit-metadata-value/dso-edit-metadata-value.component.html b/src/app/dso-shared/dso-edit-metadata/dso-edit-metadata-value/dso-edit-metadata-value.component.html index f54dde4971..525b42610b 100644 --- a/src/app/dso-shared/dso-edit-metadata/dso-edit-metadata-value/dso-edit-metadata-value.component.html +++ b/src/app/dso-shared/dso-edit-metadata/dso-edit-metadata-value/dso-edit-metadata-value.component.html @@ -7,7 +7,7 @@ [dsDebounce]="300" (onDebounce)="confirm.emit(false)"> {{ mdRepresentationName$ | async }} - + diff --git a/src/app/dso-shared/dso-edit-metadata/dso-edit-metadata-value/dso-edit-metadata-value.component.spec.ts b/src/app/dso-shared/dso-edit-metadata/dso-edit-metadata-value/dso-edit-metadata-value.component.spec.ts index 10b3016a52..67a6f98ac0 100644 --- a/src/app/dso-shared/dso-edit-metadata/dso-edit-metadata-value/dso-edit-metadata-value.component.spec.ts +++ b/src/app/dso-shared/dso-edit-metadata/dso-edit-metadata-value/dso-edit-metadata-value.component.spec.ts @@ -68,7 +68,7 @@ describe('DsoEditMetadataValueComponent', () => { }); it('should not show a badge', () => { - expect(fixture.debugElement.query(By.css('ds-type-badge'))).toBeNull(); + expect(fixture.debugElement.query(By.css('ds-themed-type-badge'))).toBeNull(); }); describe('when no changes have been made', () => { @@ -134,7 +134,7 @@ describe('DsoEditMetadataValueComponent', () => { }); it('should show a badge', () => { - expect(fixture.debugElement.query(By.css('ds-type-badge'))).toBeTruthy(); + expect(fixture.debugElement.query(By.css('ds-themed-type-badge'))).toBeTruthy(); }); assertButton(EDIT_BTN, true, true); diff --git a/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-issue/journal-issue-search-result-grid-element.component.html b/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-issue/journal-issue-search-result-grid-element.component.html index c6c29c2f1a..f379efbaf1 100644 --- a/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-issue/journal-issue-search-result-grid-element.component.html +++ b/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-issue/journal-issue-search-result-grid-element.component.html @@ -19,7 +19,7 @@ - + diff --git a/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-volume/journal-volume-search-result-grid-element.component.html b/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-volume/journal-volume-search-result-grid-element.component.html index 5849105f96..0477ef2324 100644 --- a/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-volume/journal-volume-search-result-grid-element.component.html +++ b/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-volume/journal-volume-search-result-grid-element.component.html @@ -19,7 +19,7 @@ - + diff --git a/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal/journal-search-result-grid-element.component.html b/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal/journal-search-result-grid-element.component.html index 9a3ea95c07..d994ae8411 100644 --- a/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal/journal-search-result-grid-element.component.html +++ b/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal/journal-search-result-grid-element.component.html @@ -19,7 +19,7 @@ - + diff --git a/src/app/entity-groups/journal-entities/item-list-elements/search-result-list-elements/journal-issue/journal-issue-search-result-list-element.component.html b/src/app/entity-groups/journal-entities/item-list-elements/search-result-list-elements/journal-issue/journal-issue-search-result-list-element.component.html index 36b7e98c51..9d02a5d837 100644 --- a/src/app/entity-groups/journal-entities/item-list-elements/search-result-list-elements/journal-issue/journal-issue-search-result-list-element.component.html +++ b/src/app/entity-groups/journal-entities/item-list-elements/search-result-list-elements/journal-issue/journal-issue-search-result-list-element.component.html @@ -12,7 +12,7 @@ - + - + - + - + diff --git a/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/person/person-search-result-grid-element.component.html b/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/person/person-search-result-grid-element.component.html index 853a717965..a11cd384e0 100644 --- a/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/person/person-search-result-grid-element.component.html +++ b/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/person/person-search-result-grid-element.component.html @@ -19,7 +19,7 @@ - + diff --git a/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/project/project-search-result-grid-element.component.html b/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/project/project-search-result-grid-element.component.html index a54d136de2..60c9db31f9 100644 --- a/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/project/project-search-result-grid-element.component.html +++ b/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/project/project-search-result-grid-element.component.html @@ -19,7 +19,7 @@ - + diff --git a/src/app/entity-groups/research-entities/item-list-elements/search-result-list-elements/org-unit/org-unit-search-result-list-element.component.html b/src/app/entity-groups/research-entities/item-list-elements/search-result-list-elements/org-unit/org-unit-search-result-list-element.component.html index 0bba83a209..9495577c01 100644 --- a/src/app/entity-groups/research-entities/item-list-elements/search-result-list-elements/org-unit/org-unit-search-result-list-element.component.html +++ b/src/app/entity-groups/research-entities/item-list-elements/search-result-list-elements/org-unit/org-unit-search-result-list-element.component.html @@ -18,7 +18,7 @@ - + - + - + - + 0"> diff --git a/src/app/home-page/home-page.module.ts b/src/app/home-page/home-page.module.ts index 3418437d3c..1681abd805 100644 --- a/src/app/home-page/home-page.module.ts +++ b/src/app/home-page/home-page.module.ts @@ -12,11 +12,13 @@ import { ThemedHomePageComponent } from './themed-home-page.component'; import { RecentItemListComponent } from './recent-item-list/recent-item-list.component'; import { JournalEntitiesModule } from '../entity-groups/journal-entities/journal-entities.module'; import { ResearchEntitiesModule } from '../entity-groups/research-entities/research-entities.module'; +import { ThemedTopLevelCommunityListComponent } from './top-level-community-list/themed-top-level-community-list.component'; const DECLARATIONS = [ HomePageComponent, ThemedHomePageComponent, TopLevelCommunityListComponent, + ThemedTopLevelCommunityListComponent, ThemedHomeNewsComponent, HomeNewsComponent, RecentItemListComponent diff --git a/src/app/home-page/top-level-community-list/themed-top-level-community-list.component.ts b/src/app/home-page/top-level-community-list/themed-top-level-community-list.component.ts new file mode 100644 index 0000000000..6eb74cc0a9 --- /dev/null +++ b/src/app/home-page/top-level-community-list/themed-top-level-community-list.component.ts @@ -0,0 +1,25 @@ +import { Component } from '@angular/core'; +import { TopLevelCommunityListComponent } from './top-level-community-list.component'; +import { ThemedComponent } from '../../shared/theme-support/themed.component'; + +@Component({ + selector: 'ds-themed-top-level-community-list', + styleUrls: [], + templateUrl: '../../shared/theme-support/themed.component.html', +}) +export class ThemedTopLevelCommunityListComponent extends ThemedComponent { + protected inAndOutputNames: (keyof TopLevelCommunityListComponent & keyof this)[]; + + protected getComponentName(): string { + return 'TopLevelCommunityListComponent'; + } + + protected importThemedComponent(themeName: string): Promise { + return import(`../../../themes/${themeName}/app/home-page/top-level-community-list/top-level-community-list.component`); + } + + protected importUnthemedComponent(): Promise { + return import(`./top-level-community-list.component`); + } + +} diff --git a/src/app/my-dspace-page/my-dspace-search.module.ts b/src/app/my-dspace-page/my-dspace-search.module.ts index f3775214d5..71d1343a30 100644 --- a/src/app/my-dspace-page/my-dspace-search.module.ts +++ b/src/app/my-dspace-page/my-dspace-search.module.ts @@ -23,7 +23,6 @@ import { ItemDetailPreviewComponent } from '../shared/object-detail/my-dspace-re import { ItemDetailPreviewFieldComponent } from '../shared/object-detail/my-dspace-result-detail-element/item-detail-preview/item-detail-preview-field/item-detail-preview-field.component'; import { ItemListPreviewComponent } from '../shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component'; import { ThemedItemListPreviewComponent } from '../shared/object-list/my-dspace-result-list-element/item-list-preview/themed-item-list-preview.component'; -import { MyDSpaceItemStatusComponent } from '../shared/object-collection/shared/mydspace-item-status/my-dspace-item-status.component'; import { JournalEntitiesModule } from '../entity-groups/journal-entities/journal-entities.module'; import { MyDSpaceActionsModule } from '../shared/mydspace-actions/mydspace-actions.module'; import { ClaimedDeclinedTaskSearchResultListElementComponent } from '../shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-task-search-result/claimed-declined-task-search-result-list-element.component'; @@ -52,7 +51,6 @@ const DECLARATIONS = [ ItemDetailPreviewFieldComponent, ItemListPreviewComponent, ThemedItemListPreviewComponent, - MyDSpaceItemStatusComponent, ]; @NgModule({ diff --git a/src/app/process-page/form/process-parameters/process-parameters.component.html b/src/app/process-page/form/process-parameters/process-parameters.component.html index d7bbce6779..a937524e88 100644 --- a/src/app/process-page/form/process-parameters/process-parameters.component.html +++ b/src/app/process-page/form/process-parameters/process-parameters.component.html @@ -1,11 +1,11 @@ - - {{'process.new.select-parameters' | translate}} - + + {{'process.new.select-parameters' | translate}} + diff --git a/src/app/process-page/form/process-parameters/process-parameters.component.spec.ts b/src/app/process-page/form/process-parameters/process-parameters.component.spec.ts index 91bc61e02f..b44479c14a 100644 --- a/src/app/process-page/form/process-parameters/process-parameters.component.spec.ts +++ b/src/app/process-page/form/process-parameters/process-parameters.component.spec.ts @@ -14,14 +14,14 @@ import { TranslateLoaderMock } from '../../../shared/mocks/translate-loader.mock describe('ProcessParametersComponent', () => { let component: ProcessParametersComponent; let fixture: ComponentFixture; - let parameterValues; - let script; + let mockParameterValues: ProcessParameter[]; + let mockScript: Script; - function init() { + function initParametersAndScriptMockValues() { const param1 = new ScriptParameter(); const param2 = new ScriptParameter(); - script = Object.assign(new Script(), { parameters: [param1, param2] }); - parameterValues = [ + mockScript = Object.assign(new Script(), { parameters: [param1, param2] }); + mockParameterValues = [ Object.assign(new ProcessParameter(), { name: '-a', value: 'bla' }), Object.assign(new ProcessParameter(), { name: '-b', value: '123' }), Object.assign(new ProcessParameter(), { name: '-c', value: 'value' }), @@ -29,7 +29,6 @@ describe('ProcessParametersComponent', () => { } beforeEach(waitForAsync(() => { - init(); TestBed.configureTestingModule({ imports: [ FormsModule, @@ -48,17 +47,34 @@ describe('ProcessParametersComponent', () => { beforeEach(() => { fixture = TestBed.createComponent(ProcessParametersComponent); component = fixture.componentInstance; - component.script = script; - component.parameterValues = parameterValues; - fixture.detectChanges(); }); it('should create', () => { expect(component).toBeTruthy(); }); - it('should render a ParameterSelectComponent for each parameter value of the component', () => { - const selectComponents = fixture.debugElement.queryAll(By.directive(ParameterSelectComponent)); - expect(selectComponents.length).toBe(parameterValues.length); + describe('when parameter values and script are initialized', () => { + + beforeEach(() => { + initParametersAndScriptMockValues(); + component.parameterValues = mockParameterValues; + component.script = mockScript; + + fixture.detectChanges(); + }); + + it(`should render a ${ParameterSelectComponent.name} for each parameter value`, () => { + const selectComponents = fixture.debugElement.queryAll(By.directive(ParameterSelectComponent)); + expect(selectComponents.length).toBe(mockParameterValues.length); + }); + + it('should not render a selector box if the parameter array is empty',() => { + fixture.componentInstance.script.parameters = []; + + fixture.detectChanges(); + + const formGroupComponent = fixture.debugElement.query(By.css('[data-testID=parameters-select-container]')); + expect(formGroupComponent).toBeFalsy(); + }); }); }); diff --git a/src/app/process-page/process-page-shared.module.ts b/src/app/process-page/process-page-shared.module.ts new file mode 100644 index 0000000000..e666283e03 --- /dev/null +++ b/src/app/process-page/process-page-shared.module.ts @@ -0,0 +1,48 @@ +import { NgModule } from '@angular/core'; +import { SharedModule } from '../shared/shared.module'; +import { NewProcessComponent } from './new/new-process.component'; +import { ScriptsSelectComponent } from './form/scripts-select/scripts-select.component'; +import { ScriptHelpComponent } from './form/script-help/script-help.component'; +import { ParameterSelectComponent } from './form/process-parameters/parameter-select/parameter-select.component'; +import { ProcessParametersComponent } from './form/process-parameters/process-parameters.component'; +import { StringValueInputComponent } from './form/process-parameters/parameter-value-input/string-value-input/string-value-input.component'; +import { ParameterValueInputComponent } from './form/process-parameters/parameter-value-input/parameter-value-input.component'; +import { FileValueInputComponent } from './form/process-parameters/parameter-value-input/file-value-input/file-value-input.component'; +import { BooleanValueInputComponent } from './form/process-parameters/parameter-value-input/boolean-value-input/boolean-value-input.component'; +import { DateValueInputComponent } from './form/process-parameters/parameter-value-input/date-value-input/date-value-input.component'; +import { ProcessOverviewComponent } from './overview/process-overview.component'; +import { ProcessDetailComponent } from './detail/process-detail.component'; +import { ProcessDetailFieldComponent } from './detail/process-detail-field/process-detail-field.component'; +import { ProcessBreadcrumbsService } from './process-breadcrumbs.service'; +import { ProcessBreadcrumbResolver } from './process-breadcrumb.resolver'; +import { ProcessFormComponent } from './form/process-form.component'; + +@NgModule({ + imports: [ + SharedModule, + ], + declarations: [ + NewProcessComponent, + ScriptsSelectComponent, + ScriptHelpComponent, + ParameterSelectComponent, + ProcessParametersComponent, + StringValueInputComponent, + ParameterValueInputComponent, + FileValueInputComponent, + BooleanValueInputComponent, + DateValueInputComponent, + ProcessOverviewComponent, + ProcessDetailComponent, + ProcessDetailFieldComponent, + ProcessFormComponent + ], + providers: [ + ProcessBreadcrumbResolver, + ProcessBreadcrumbsService + ] +}) + +export class ProcessPageSharedModule { + +} diff --git a/src/app/process-page/process-page.module.ts b/src/app/process-page/process-page.module.ts index ebe03e4537..2587813998 100644 --- a/src/app/process-page/process-page.module.ts +++ b/src/app/process-page/process-page.module.ts @@ -1,47 +1,17 @@ import { NgModule } from '@angular/core'; import { SharedModule } from '../shared/shared.module'; import { ProcessPageRoutingModule } from './process-page-routing.module'; -import { NewProcessComponent } from './new/new-process.component'; -import { ScriptsSelectComponent } from './form/scripts-select/scripts-select.component'; -import { ScriptHelpComponent } from './form/script-help/script-help.component'; -import { ParameterSelectComponent } from './form/process-parameters/parameter-select/parameter-select.component'; -import { ProcessParametersComponent } from './form/process-parameters/process-parameters.component'; -import { StringValueInputComponent } from './form/process-parameters/parameter-value-input/string-value-input/string-value-input.component'; -import { ParameterValueInputComponent } from './form/process-parameters/parameter-value-input/parameter-value-input.component'; -import { FileValueInputComponent } from './form/process-parameters/parameter-value-input/file-value-input/file-value-input.component'; -import { BooleanValueInputComponent } from './form/process-parameters/parameter-value-input/boolean-value-input/boolean-value-input.component'; -import { DateValueInputComponent } from './form/process-parameters/parameter-value-input/date-value-input/date-value-input.component'; -import { ProcessOverviewComponent } from './overview/process-overview.component'; -import { ProcessDetailComponent } from './detail/process-detail.component'; -import { ProcessDetailFieldComponent } from './detail/process-detail-field/process-detail-field.component'; -import { ProcessBreadcrumbsService } from './process-breadcrumbs.service'; -import { ProcessBreadcrumbResolver } from './process-breadcrumb.resolver'; -import { ProcessFormComponent } from './form/process-form.component'; +import { ProcessPageSharedModule } from './process-page-shared.module'; @NgModule({ imports: [ ProcessPageRoutingModule, SharedModule, + ProcessPageSharedModule, ], declarations: [ - NewProcessComponent, - ScriptsSelectComponent, - ScriptHelpComponent, - ParameterSelectComponent, - ProcessParametersComponent, - StringValueInputComponent, - ParameterValueInputComponent, - FileValueInputComponent, - BooleanValueInputComponent, - DateValueInputComponent, - ProcessOverviewComponent, - ProcessDetailComponent, - ProcessDetailFieldComponent, - ProcessFormComponent ], providers: [ - ProcessBreadcrumbResolver, - ProcessBreadcrumbsService ] }) diff --git a/src/app/shared/object-list/access-status-badge/access-status-badge.component.html b/src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.html similarity index 67% rename from src/app/shared/object-list/access-status-badge/access-status-badge.component.html rename to src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.html index 3877663419..a0180a761a 100644 --- a/src/app/shared/object-list/access-status-badge/access-status-badge.component.html +++ b/src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.html @@ -1,5 +1,5 @@ - + {{ accessStatus | translate }} - + diff --git a/src/app/shared/object-list/access-status-badge/access-status-badge.component.spec.ts b/src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.spec.ts similarity index 94% rename from src/app/shared/object-list/access-status-badge/access-status-badge.component.spec.ts rename to src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.spec.ts index 9101df2f4c..f661ed6e00 100644 --- a/src/app/shared/object-list/access-status-badge/access-status-badge.component.spec.ts +++ b/src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.spec.ts @@ -1,10 +1,10 @@ -import { Item } from '../../../core/shared/item.model'; +import { Item } from '../../../../../core/shared/item.model'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { TranslateModule } from '@ngx-translate/core'; -import { TruncatePipe } from '../../utils/truncate.pipe'; +import { TruncatePipe } from '../../../../utils/truncate.pipe'; import { NO_ERRORS_SCHEMA } from '@angular/core'; import { AccessStatusBadgeComponent } from './access-status-badge.component'; -import { createSuccessfulRemoteDataObject$ } from '../../remote-data.utils'; +import { createSuccessfulRemoteDataObject$ } from '../../../../remote-data.utils'; import { By } from '@angular/platform-browser'; import { AccessStatusObject } from './access-status.model'; import { AccessStatusDataService } from 'src/app/core/data/access-status-data.service'; @@ -50,7 +50,8 @@ describe('ItemAccessStatusBadgeComponent', () => { }); item = Object.assign(new Item(), { - uuid: 'item-uuid' + uuid: 'item-uuid', + type: 'item' }); } @@ -69,7 +70,7 @@ describe('ItemAccessStatusBadgeComponent', () => { environment.item.showAccessStatuses = true; fixture = TestBed.createComponent(AccessStatusBadgeComponent); component = fixture.componentInstance; - component.item = item; + component.object = item; fixture.detectChanges(); environment.item.showAccessStatuses = false; } diff --git a/src/app/shared/object-list/access-status-badge/access-status-badge.component.ts b/src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.ts similarity index 73% rename from src/app/shared/object-list/access-status-badge/access-status-badge.component.ts rename to src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.ts index fbca3cb971..2be44669b0 100644 --- a/src/app/shared/object-list/access-status-badge/access-status-badge.component.ts +++ b/src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.ts @@ -2,10 +2,12 @@ import { Component, Input } from '@angular/core'; import { catchError, map } from 'rxjs/operators'; import { Observable, of as observableOf } from 'rxjs'; import { AccessStatusObject } from './access-status.model'; -import { hasValue } from '../../empty.util'; +import { hasValue } from '../../../../empty.util'; import { environment } from 'src/environments/environment'; -import { Item } from 'src/app/core/shared/item.model'; import { AccessStatusDataService } from 'src/app/core/data/access-status-data.service'; +import { DSpaceObject } from '../../../../../core/shared/dspace-object.model'; +import { Item } from '../../../../../core/shared/item.model'; +import { ITEM } from '../../../../../core/shared/item.resource-type'; @Component({ selector: 'ds-access-status-badge', @@ -16,7 +18,7 @@ import { AccessStatusDataService } from 'src/app/core/data/access-status-data.se */ export class AccessStatusBadgeComponent { - @Input() item: Item; + @Input() object: DSpaceObject; accessStatus$: Observable; /** @@ -33,15 +35,17 @@ export class AccessStatusBadgeComponent { ngOnInit(): void { this.showAccessStatus = environment.item.showAccessStatuses; - if (!this.showAccessStatus || this.item == null) { + if (this.object.type.toString() !== ITEM.value || !this.showAccessStatus || this.object == null) { // Do not show the badge if the feature is inactive or if the item is null. return; } - if (this.item.accessStatus == null) { + + const item = this.object as Item; + if (item.accessStatus == null) { // In case the access status has not been loaded, do it individually. - this.item.accessStatus = this.accessStatusDataService.findAccessStatusFor(this.item); + item.accessStatus = this.accessStatusDataService.findAccessStatusFor(item); } - this.accessStatus$ = this.item.accessStatus.pipe( + this.accessStatus$ = item.accessStatus.pipe( map((accessStatusRD) => { if (accessStatusRD.statusCode !== 401 && hasValue(accessStatusRD.payload)) { return accessStatusRD.payload; diff --git a/src/app/shared/object-list/access-status-badge/access-status.model.ts b/src/app/shared/object-collection/shared/badges/access-status-badge/access-status.model.ts similarity index 100% rename from src/app/shared/object-list/access-status-badge/access-status.model.ts rename to src/app/shared/object-collection/shared/badges/access-status-badge/access-status.model.ts diff --git a/src/app/shared/object-list/access-status-badge/access-status.resource-type.ts b/src/app/shared/object-collection/shared/badges/access-status-badge/access-status.resource-type.ts similarity index 100% rename from src/app/shared/object-list/access-status-badge/access-status.resource-type.ts rename to src/app/shared/object-collection/shared/badges/access-status-badge/access-status.resource-type.ts diff --git a/src/app/shared/object-collection/shared/badges/access-status-badge/themed-access-status-badge.component.ts b/src/app/shared/object-collection/shared/badges/access-status-badge/themed-access-status-badge.component.ts new file mode 100644 index 0000000000..ad8dfd7cb0 --- /dev/null +++ b/src/app/shared/object-collection/shared/badges/access-status-badge/themed-access-status-badge.component.ts @@ -0,0 +1,30 @@ +import { Component, Input } from '@angular/core'; +import { ThemedComponent } from '../../../../theme-support/themed.component'; +import { AccessStatusBadgeComponent } from './access-status-badge.component'; +import { DSpaceObject } from '../../../../../core/shared/dspace-object.model'; + +/** + * Themed wrapper for AccessStatusBadgeComponent + */ +@Component({ + selector: 'ds-themed-access-status-badge', + styleUrls: [], + templateUrl: '../../../../theme-support/themed.component.html', +}) +export class ThemedAccessStatusBadgeComponent extends ThemedComponent { + @Input() object: DSpaceObject; + + protected inAndOutputNames: (keyof AccessStatusBadgeComponent & keyof this)[] = ['object']; + + protected getComponentName(): string { + return 'AccessStatusBadgeComponent'; + } + + protected importThemedComponent(themeName: string): Promise { + return import(`../../../../../../themes/${themeName}/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component`); + } + + protected importUnthemedComponent(): Promise { + return import(`./access-status-badge.component`); + } +} diff --git a/src/app/shared/object-collection/shared/badges/badges.component.html b/src/app/shared/object-collection/shared/badges/badges.component.html new file mode 100644 index 0000000000..7fc08751aa --- /dev/null +++ b/src/app/shared/object-collection/shared/badges/badges.component.html @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/app/shared/object-collection/shared/mydspace-item-status/my-dspace-item-status.component.scss b/src/app/shared/object-collection/shared/badges/badges.component.scss similarity index 100% rename from src/app/shared/object-collection/shared/mydspace-item-status/my-dspace-item-status.component.scss rename to src/app/shared/object-collection/shared/badges/badges.component.scss diff --git a/src/app/shared/object-collection/shared/badges/badges.component.spec.ts b/src/app/shared/object-collection/shared/badges/badges.component.spec.ts new file mode 100644 index 0000000000..9e0c277a08 --- /dev/null +++ b/src/app/shared/object-collection/shared/badges/badges.component.spec.ts @@ -0,0 +1,30 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { BadgesComponent } from './badges.component'; +import { NO_ERRORS_SCHEMA } from '@angular/core'; +import { ThemeService } from '../../../theme-support/theme.service'; +import { getMockThemeService } from '../../../mocks/theme-service.mock'; + +describe('BadgesComponent', () => { + let component: BadgesComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ BadgesComponent ], + providers: [{provide: ThemeService, useValue: getMockThemeService()}], + schemas: [NO_ERRORS_SCHEMA] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(BadgesComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/shared/object-collection/shared/badges/badges.component.ts b/src/app/shared/object-collection/shared/badges/badges.component.ts new file mode 100644 index 0000000000..c66fed35fc --- /dev/null +++ b/src/app/shared/object-collection/shared/badges/badges.component.ts @@ -0,0 +1,47 @@ +import { Component, Input } from '@angular/core'; +import { Context } from 'src/app/core/shared/context.model'; +import { DSpaceObject } from '../../../../core/shared/dspace-object.model'; + +/** + * List of MyDSpace Status Contexts + */ +const MY_DSPACE_STATUS_CONTEXTS = [ + Context.MyDSpaceArchived, + Context.MyDSpaceWorkspace, + Context.MyDSpaceWorkflow, + Context.MyDSpaceDeclined, + Context.MyDSpaceApproved, + Context.MyDSpaceWaitingController, + Context.MyDSpaceValidation +]; + +/** + * Component that renders all the badges for a listable object + */ +@Component({ + selector: 'ds-badges', + templateUrl: './badges.component.html', + styleUrls: ['./badges.component.scss'] +}) +export class BadgesComponent { + /** + * The DSpaceObject to render the badge for + */ + @Input() object: DSpaceObject; + /** + * The context that the badge is rendered in + */ + @Input() context?: Context; + + /** + * Whether or not to show the access status + */ + @Input() showAccessStatus = false; + + /** + * Returns whether or not this context is a MyDSpace status context + */ + get isMyDSpaceStatus(): boolean { + return MY_DSPACE_STATUS_CONTEXTS.includes(this.context); + } +} diff --git a/src/app/shared/object-collection/shared/mydspace-item-status/my-dspace-item-status-type.ts b/src/app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-item-status-type.ts similarity index 100% rename from src/app/shared/object-collection/shared/mydspace-item-status/my-dspace-item-status-type.ts rename to src/app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-item-status-type.ts diff --git a/src/app/shared/object-collection/shared/mydspace-item-status/my-dspace-item-status.component.html b/src/app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component.html similarity index 50% rename from src/app/shared/object-collection/shared/mydspace-item-status/my-dspace-item-status.component.html rename to src/app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component.html index 848dd502a4..4cf93cbd1d 100644 --- a/src/app/shared/object-collection/shared/mydspace-item-status/my-dspace-item-status.component.html +++ b/src/app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component.html @@ -1,5 +1,5 @@ - {{badgeContent | translate}} + {{('mydspace.status.' + badgeContent) | translate}} diff --git a/src/themes/custom/app/shared/object-list/collection-list-element/collection-list-element.component.html b/src/app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component.scss similarity index 100% rename from src/themes/custom/app/shared/object-list/collection-list-element/collection-list-element.component.html rename to src/app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component.scss diff --git a/src/app/shared/object-collection/shared/mydspace-item-status/my-dspace-item-status.component.spec.ts b/src/app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component.spec.ts similarity index 59% rename from src/app/shared/object-collection/shared/mydspace-item-status/my-dspace-item-status.component.spec.ts rename to src/app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component.spec.ts index 89bceea40d..65fe5b7ef1 100644 --- a/src/app/shared/object-collection/shared/mydspace-item-status/my-dspace-item-status.component.spec.ts +++ b/src/app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component.spec.ts @@ -4,17 +4,17 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { of as observableOf } from 'rxjs'; import { TranslateLoader, TranslateModule } from '@ngx-translate/core'; -import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model'; -import { PoolTask } from '../../../../core/tasks/models/pool-task-object.model'; -import { EPersonMock } from '../../../testing/eperson.mock'; -import { MyDSpaceItemStatusComponent } from './my-dspace-item-status.component'; -import { MyDspaceItemStatusType } from './my-dspace-item-status-type'; -import { TranslateLoaderMock } from '../../../mocks/translate-loader.mock'; +import { WorkflowItem } from '../../../../../core/submission/models/workflowitem.model'; +import { PoolTask } from '../../../../../core/tasks/models/pool-task-object.model'; +import { EPersonMock } from '../../../../testing/eperson.mock'; +import { MyDSpaceStatusBadgeComponent } from './my-dspace-status-badge.component'; +import { TranslateLoaderMock } from '../../../../mocks/translate-loader.mock'; import { By } from '@angular/platform-browser'; -import { createSuccessfulRemoteDataObject } from '../../../remote-data.utils'; +import { createSuccessfulRemoteDataObject } from '../../../../remote-data.utils'; +import { Context } from '../../../../../core/shared/context.model'; -let component: MyDSpaceItemStatusComponent; -let fixture: ComponentFixture; +let component: MyDSpaceStatusBadgeComponent; +let fixture: ComponentFixture; let mockResultObject: PoolTask; @@ -34,15 +34,15 @@ describe('MyDSpaceItemStatusComponent', () => { } }) ], - declarations: [MyDSpaceItemStatusComponent], + declarations: [MyDSpaceStatusBadgeComponent], schemas: [NO_ERRORS_SCHEMA] - }).overrideComponent(MyDSpaceItemStatusComponent, { + }).overrideComponent(MyDSpaceStatusBadgeComponent, { set: { changeDetection: ChangeDetectionStrategy.Default } }).compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(MyDSpaceItemStatusComponent); + fixture = TestBed.createComponent(MyDSpaceStatusBadgeComponent); component = fixture.componentInstance; }); @@ -52,37 +52,37 @@ describe('MyDSpaceItemStatusComponent', () => { }); it('should init badge content and class', () => { - component.status = MyDspaceItemStatusType.VALIDATION; + component.context = Context.MyDSpaceValidation; fixture.detectChanges(); - expect(component.badgeContent).toBe(MyDspaceItemStatusType.VALIDATION); + expect(component.badgeContent).toBe(Context.MyDSpaceValidation); expect(component.badgeClass).toBe('text-light badge badge-validation'); }); it('should init badge content and class', () => { - component.status = MyDspaceItemStatusType.WAITING_CONTROLLER; + component.context = Context.MyDSpaceWaitingController; fixture.detectChanges(); - expect(component.badgeContent).toBe(MyDspaceItemStatusType.WAITING_CONTROLLER); + expect(component.badgeContent).toBe(Context.MyDSpaceWaitingController); expect(component.badgeClass).toBe('text-light badge badge-waiting-controller'); }); it('should init badge content and class', () => { - component.status = MyDspaceItemStatusType.WORKSPACE; + component.context = Context.MyDSpaceWorkspace; fixture.detectChanges(); - expect(component.badgeContent).toBe(MyDspaceItemStatusType.WORKSPACE); + expect(component.badgeContent).toBe(Context.MyDSpaceWorkspace); expect(component.badgeClass).toBe('text-light badge badge-workspace'); }); it('should init badge content and class', () => { - component.status = MyDspaceItemStatusType.ARCHIVED; + component.context = Context.MyDSpaceArchived; fixture.detectChanges(); - expect(component.badgeContent).toBe(MyDspaceItemStatusType.ARCHIVED); + expect(component.badgeContent).toBe(Context.MyDSpaceArchived); expect(component.badgeClass).toBe('text-light badge badge-archived'); }); it('should init badge content and class', () => { - component.status = MyDspaceItemStatusType.WORKFLOW; + component.context = Context.MyDSpaceWorkflow; fixture.detectChanges(); - expect(component.badgeContent).toBe(MyDspaceItemStatusType.WORKFLOW); + expect(component.badgeContent).toBe(Context.MyDSpaceWorkflow); expect(component.badgeClass).toBe('text-light badge badge-workflow'); }); }); diff --git a/src/app/shared/object-collection/shared/mydspace-item-status/my-dspace-item-status.component.ts b/src/app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component.ts similarity index 52% rename from src/app/shared/object-collection/shared/mydspace-item-status/my-dspace-item-status.component.ts rename to src/app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component.ts index 83b2656fbd..744a927812 100644 --- a/src/app/shared/object-collection/shared/mydspace-item-status/my-dspace-item-status.component.ts +++ b/src/app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component.ts @@ -1,20 +1,20 @@ import { Component, Input, OnInit } from '@angular/core'; -import { MyDspaceItemStatusType } from './my-dspace-item-status-type'; +import { Context } from 'src/app/core/shared/context.model'; /** * This component represents a badge with mydspace item status */ @Component({ - selector: 'ds-mydspace-item-status', - styleUrls: ['./my-dspace-item-status.component.scss'], - templateUrl: './my-dspace-item-status.component.html' + selector: 'ds-my-dspace-status-badge', + styleUrls: ['./my-dspace-status-badge.component.scss'], + templateUrl: './my-dspace-status-badge.component.html' }) -export class MyDSpaceItemStatusComponent implements OnInit { +export class MyDSpaceStatusBadgeComponent implements OnInit { /** - * This mydspace item status + * This mydspace item context */ - @Input() status: MyDspaceItemStatusType; + @Input() context: Context; /** * This badge class @@ -30,22 +30,22 @@ export class MyDSpaceItemStatusComponent implements OnInit { * Initialize badge content and class */ ngOnInit() { - this.badgeContent = this.status; + this.badgeContent = this.context; this.badgeClass = 'text-light badge '; - switch (this.status) { - case MyDspaceItemStatusType.VALIDATION: + switch (this.context) { + case Context.MyDSpaceValidation: this.badgeClass += 'badge-validation'; break; - case MyDspaceItemStatusType.WAITING_CONTROLLER: + case Context.MyDSpaceWaitingController: this.badgeClass += 'badge-waiting-controller'; break; - case MyDspaceItemStatusType.WORKSPACE: + case Context.MyDSpaceWorkspace: this.badgeClass += 'badge-workspace'; break; - case MyDspaceItemStatusType.ARCHIVED: + case Context.MyDSpaceArchived: this.badgeClass += 'badge-archived'; break; - case MyDspaceItemStatusType.WORKFLOW: + case Context.MyDSpaceWorkflow: this.badgeClass += 'badge-workflow'; break; } diff --git a/src/app/shared/object-collection/shared/badges/my-dspace-status-badge/themed-my-dspace-status-badge.component.ts b/src/app/shared/object-collection/shared/badges/my-dspace-status-badge/themed-my-dspace-status-badge.component.ts new file mode 100644 index 0000000000..4c375746c8 --- /dev/null +++ b/src/app/shared/object-collection/shared/badges/my-dspace-status-badge/themed-my-dspace-status-badge.component.ts @@ -0,0 +1,30 @@ +import { Component, Input } from '@angular/core'; +import { Context } from 'src/app/core/shared/context.model'; +import { ThemedComponent } from '../../../../theme-support/themed.component'; +import { MyDSpaceStatusBadgeComponent } from './my-dspace-status-badge.component'; + +/** + * Themed wrapper for MyDSpaceStatusBadge + */ +@Component({ + selector: 'ds-themed-my-dspace-status-badge', + styleUrls: [], + templateUrl: '../../../../theme-support/themed.component.html', +}) +export class ThemedMyDSpaceStatusBadgeComponent extends ThemedComponent { + @Input() context: Context; + + protected inAndOutputNames: (keyof MyDSpaceStatusBadgeComponent & keyof this)[] = ['context']; + + protected getComponentName(): string { + return 'MyDSpaceStatusBadgeComponent'; + } + + protected importThemedComponent(themeName: string): Promise { + return import(`../../../../../../themes/${themeName}/app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component`); + } + + protected importUnthemedComponent(): Promise { + return import(`./my-dspace-status-badge.component`); + } +} diff --git a/src/app/shared/object-collection/shared/badges/status-badge/status-badge.component.html b/src/app/shared/object-collection/shared/badges/status-badge/status-badge.component.html new file mode 100644 index 0000000000..c864f22afa --- /dev/null +++ b/src/app/shared/object-collection/shared/badges/status-badge/status-badge.component.html @@ -0,0 +1,6 @@ + + {{ "item.badge.private" | translate }} + + + {{ "item.badge.withdrawn" | translate }} + diff --git a/src/app/shared/object-collection/shared/badges/status-badge/status-badge.component.spec.ts b/src/app/shared/object-collection/shared/badges/status-badge/status-badge.component.spec.ts new file mode 100644 index 0000000000..f3115073c3 --- /dev/null +++ b/src/app/shared/object-collection/shared/badges/status-badge/status-badge.component.spec.ts @@ -0,0 +1,91 @@ +import { Item } from '../../../../../core/shared/item.model'; +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { TranslateModule } from '@ngx-translate/core'; +import { TruncatePipe } from '../../../../utils/truncate.pipe'; +import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core'; +import { By } from '@angular/platform-browser'; +import { StatusBadgeComponent } from './status-badge.component'; + +let comp: StatusBadgeComponent; +let fixture: ComponentFixture; + +let withdrawnItem = Object.assign(new Item(), { isWithdrawn: true }); +let notWithdrawnItem = Object.assign(new Item(), { isWithdrawn: false }); +let privateItem = Object.assign(new Item(), { isDiscoverable: false }); +let notPrivateItem = Object.assign(new Item(), { isDiscoverable: true }); + +describe('ItemStatusBadgeComponent', () => { + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + imports: [TranslateModule.forRoot()], + declarations: [StatusBadgeComponent, TruncatePipe], + schemas: [NO_ERRORS_SCHEMA] + }).overrideComponent(StatusBadgeComponent, { + set: { changeDetection: ChangeDetectionStrategy.Default } + }).compileComponents(); + init(); + })); + + function init() { + withdrawnItem = Object.assign(new Item(), { isWithdrawn: true }); + notWithdrawnItem = Object.assign(new Item(), { isWithdrawn: false }); + privateItem = Object.assign(new Item(), { isDiscoverable: false }); + notPrivateItem = Object.assign(new Item(), { isDiscoverable: true }); + } + beforeEach(waitForAsync(() => { + fixture = TestBed.createComponent(StatusBadgeComponent); + comp = fixture.componentInstance; + })); + + + describe('when the item is not withdrawn', () => { + beforeEach(() => { + comp.object = notWithdrawnItem; + comp.ngOnInit(); + fixture.detectChanges(); + }); + + it('should not show the withdrawn badge', () => { + const badge = fixture.debugElement.query(By.css('div.withdrawn-badge')); + expect(badge).toBeNull(); + }); + }); + + describe('when the item is withdrawn', () => { + beforeEach(() => { + comp.object = withdrawnItem; + comp.ngOnInit(); + fixture.detectChanges(); + }); + + it('should show the withdrawn badge', () => { + const badge = fixture.debugElement.query(By.css('div.withdrawn-badge')); + expect(badge).not.toBeNull(); + }); + }); + + describe('when the item is not private', () => { + beforeEach(() => { + comp.object = notPrivateItem; + comp.ngOnInit(); + fixture.detectChanges(); + }); + it('should not show the private badge', () => { + const badge = fixture.debugElement.query(By.css('div.private-badge')); + expect(badge).toBeNull(); + }); + }); + + describe('when the item is private', () => { + beforeEach(() => { + comp.object = privateItem; + comp.ngOnInit(); + fixture.detectChanges(); + }); + + it('should show the private badge', () => { + const badge = fixture.debugElement.query(By.css('div.private-badge')); + expect(badge).not.toBeNull(); + }); + }); +}); diff --git a/src/app/shared/object-collection/shared/badges/status-badge/status-badge.component.ts b/src/app/shared/object-collection/shared/badges/status-badge/status-badge.component.ts new file mode 100644 index 0000000000..a52f3f6f32 --- /dev/null +++ b/src/app/shared/object-collection/shared/badges/status-badge/status-badge.component.ts @@ -0,0 +1,41 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { DSpaceObject } from '../../../../../core/shared/dspace-object.model'; +import { hasValue } from '../../../../empty.util'; + +@Component({ + selector: 'ds-status-badge', + templateUrl: './status-badge.component.html' +}) +/** + * Component rendering the status of an item as a badge + */ +export class StatusBadgeComponent implements OnInit { + + /** + * The component used to retrieve the status from + */ + @Input() object: DSpaceObject; + + /** + * Whether or not the "Private" badge should be displayed for this listable object + */ + privateBadge = false; + + /** + * Whether or not the "Withdrawn" badge should be displayed for this listable object + */ + withdrawnBadge = false; + + /** + * Initialize which badges should be visible + */ + ngOnInit(): void { + let objectAsAny = this.object as any; + if (hasValue(objectAsAny.indexableObject)) { + objectAsAny = objectAsAny.indexableObject; + } + const objectExists = hasValue(objectAsAny); + this.privateBadge = objectExists && hasValue(objectAsAny.isDiscoverable) && !objectAsAny.isDiscoverable; + this.withdrawnBadge = objectExists && hasValue(objectAsAny.isWithdrawn) && objectAsAny.isWithdrawn; + } +} diff --git a/src/app/shared/object-collection/shared/badges/status-badge/themed-status-badge.component.ts b/src/app/shared/object-collection/shared/badges/status-badge/themed-status-badge.component.ts new file mode 100644 index 0000000000..f50d029fff --- /dev/null +++ b/src/app/shared/object-collection/shared/badges/status-badge/themed-status-badge.component.ts @@ -0,0 +1,30 @@ +import { Component, Input } from '@angular/core'; +import { ThemedComponent } from '../../../../theme-support/themed.component'; +import { StatusBadgeComponent } from './status-badge.component'; +import { DSpaceObject } from '../../../../../core/shared/dspace-object.model'; + +/** + * Themed wrapper for StatusBadgeComponent + */ +@Component({ + selector: 'ds-themed-status-badge', + styleUrls: [], + templateUrl: '../../../../theme-support/themed.component.html', +}) +export class ThemedStatusBadgeComponent extends ThemedComponent { + @Input() object: DSpaceObject; + + protected inAndOutputNames: (keyof StatusBadgeComponent & keyof this)[] = ['object']; + + protected getComponentName(): string { + return 'StatusBadgeComponent'; + } + + protected importThemedComponent(themeName: string): Promise { + return import(`../../../../../../themes/${themeName}/app/shared/object-collection/shared/badges/status-badge/status-badge.component`); + } + + protected importUnthemedComponent(): Promise { + return import(`./status-badge.component`); + } +} diff --git a/src/app/shared/object-collection/shared/badges/themed-badges.component.ts b/src/app/shared/object-collection/shared/badges/themed-badges.component.ts new file mode 100644 index 0000000000..1671b0c5b0 --- /dev/null +++ b/src/app/shared/object-collection/shared/badges/themed-badges.component.ts @@ -0,0 +1,33 @@ +import { Component, Input } from '@angular/core'; +import { BadgesComponent } from './badges.component'; +import { ThemedComponent } from '../../../theme-support/themed.component'; +import { DSpaceObject } from '../../../../core/shared/dspace-object.model'; +import { Context } from 'src/app/core/shared/context.model'; + +/** + * Themed wrapper for BadgesComponent + */ +@Component({ + selector: 'ds-themed-badges', + styleUrls: [], + templateUrl: '../../../theme-support/themed.component.html', +}) +export class ThemedBadgesComponent extends ThemedComponent { + @Input() object: DSpaceObject; + @Input() context: Context; + @Input() showAccessStatus = false; + + protected inAndOutputNames: (keyof BadgesComponent & keyof this)[] = ['object', 'context', 'showAccessStatus']; + + protected getComponentName(): string { + return 'BadgesComponent'; + } + + protected importThemedComponent(themeName: string): Promise { + return import(`../../../../../themes/${themeName}/app/shared/object-collection/shared/badges/badges.component`); + } + + protected importUnthemedComponent(): Promise { + return import(`./badges.component`); + } +} diff --git a/src/app/shared/object-collection/shared/badges/type-badge/themed-type-badge.component.ts b/src/app/shared/object-collection/shared/badges/type-badge/themed-type-badge.component.ts new file mode 100644 index 0000000000..a8dd0ee04c --- /dev/null +++ b/src/app/shared/object-collection/shared/badges/type-badge/themed-type-badge.component.ts @@ -0,0 +1,30 @@ +import { Component, Input } from '@angular/core'; +import { ThemedComponent } from '../../../../theme-support/themed.component'; +import { TypeBadgeComponent } from './type-badge.component'; +import { DSpaceObject } from '../../../../../core/shared/dspace-object.model'; + +/** + * Themed wrapper for TypeBadgeComponent + */ +@Component({ + selector: 'ds-themed-type-badge', + styleUrls: [], + templateUrl: '../../../../theme-support/themed.component.html', +}) +export class ThemedTypeBadgeComponent extends ThemedComponent { + @Input() object: DSpaceObject; + + protected inAndOutputNames: (keyof TypeBadgeComponent & keyof this)[] = ['object']; + + protected getComponentName(): string { + return 'TypeBadgeComponent'; + } + + protected importThemedComponent(themeName: string): Promise { + return import(`../../../../../../themes/${themeName}/app/shared/object-collection/shared/badges/type-badge/type-badge.component`); + } + + protected importUnthemedComponent(): Promise { + return import(`./type-badge.component`); + } +} diff --git a/src/app/shared/object-list/type-badge/type-badge.component.html b/src/app/shared/object-collection/shared/badges/type-badge/type-badge.component.html similarity index 66% rename from src/app/shared/object-list/type-badge/type-badge.component.html rename to src/app/shared/object-collection/shared/badges/type-badge/type-badge.component.html index 0c2bd7544e..119702c375 100644 --- a/src/app/shared/object-list/type-badge/type-badge.component.html +++ b/src/app/shared/object-collection/shared/badges/type-badge/type-badge.component.html @@ -1,3 +1,3 @@ - + {{ typeMessage | translate }} - + diff --git a/src/app/shared/object-list/type-badge/type-badge.component.spec.ts b/src/app/shared/object-collection/shared/badges/type-badge/type-badge.component.spec.ts similarity index 94% rename from src/app/shared/object-list/type-badge/type-badge.component.spec.ts rename to src/app/shared/object-collection/shared/badges/type-badge/type-badge.component.spec.ts index 9a7e22c551..87adc3761a 100644 --- a/src/app/shared/object-list/type-badge/type-badge.component.spec.ts +++ b/src/app/shared/object-collection/shared/badges/type-badge/type-badge.component.spec.ts @@ -1,8 +1,8 @@ -import { Item } from '../../../core/shared/item.model'; +import { Item } from '../../../../../core/shared/item.model'; import { of as observableOf } from 'rxjs'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { TranslateModule } from '@ngx-translate/core'; -import { TruncatePipe } from '../../utils/truncate.pipe'; +import { TruncatePipe } from '../../../../utils/truncate.pipe'; import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core'; import { By } from '@angular/platform-browser'; import { TypeBadgeComponent } from './type-badge.component'; diff --git a/src/app/shared/object-list/type-badge/type-badge.component.ts b/src/app/shared/object-collection/shared/badges/type-badge/type-badge.component.ts similarity index 83% rename from src/app/shared/object-list/type-badge/type-badge.component.ts rename to src/app/shared/object-collection/shared/badges/type-badge/type-badge.component.ts index 8e843af1e7..ea912063b6 100644 --- a/src/app/shared/object-list/type-badge/type-badge.component.ts +++ b/src/app/shared/object-collection/shared/badges/type-badge/type-badge.component.ts @@ -1,7 +1,7 @@ import { Component, Input } from '@angular/core'; -import { DSpaceObject } from '../../../core/shared/dspace-object.model'; -import { hasValue, isEmpty } from '../../empty.util'; -import { getResourceTypeValueFor } from '../../../core/cache/object-cache.reducer'; +import { DSpaceObject } from '../../../../../core/shared/dspace-object.model'; +import { hasValue, isEmpty } from '../../../../empty.util'; +import { getResourceTypeValueFor } from '../../../../../core/cache/object-cache.reducer'; @Component({ selector: 'ds-type-badge', diff --git a/src/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.html b/src/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.html index 9ed4e9eaa8..58561f0277 100644 --- a/src/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.html +++ b/src/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.html @@ -1,9 +1 @@ - - - {{ "item.badge.private" | translate }} - - - {{ "item.badge.withdrawn" | translate }} - - diff --git a/src/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.spec.ts b/src/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.spec.ts index ff88256f6a..e9bc294e9d 100644 --- a/src/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.spec.ts +++ b/src/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.spec.ts @@ -11,7 +11,6 @@ import { import { ListableObjectDirective } from './listable-object.directive'; import { TranslateModule } from '@ngx-translate/core'; import { By } from '@angular/platform-browser'; -import { Item } from '../../../../core/shared/item.model'; import { provideMockStore } from '@ngrx/store/testing'; import { ThemeService } from '../../../theme-support/theme.service'; @@ -74,64 +73,6 @@ describe('ListableObjectComponentLoaderComponent', () => { }); }); - describe('when the object is an item and viewMode is a list', () => { - beforeEach(() => { - comp.object = Object.assign(new Item()); - comp.viewMode = ViewMode.ListElement; - }); - - describe('when the item is not withdrawn', () => { - beforeEach(() => { - (comp.object as any).isWithdrawn = false; - comp.initBadges(); - fixture.detectChanges(); - }); - - it('should not show the withdrawn badge', () => { - const badge = fixture.debugElement.query(By.css('div.withdrawn-badge')); - expect(badge).toBeNull(); - }); - }); - - describe('when the item is withdrawn', () => { - beforeEach(() => { - (comp.object as any).isWithdrawn = true; - comp.initBadges(); - fixture.detectChanges(); - }); - - it('should show the withdrawn badge', () => { - const badge = fixture.debugElement.query(By.css('div.withdrawn-badge')); - expect(badge).not.toBeNull(); - }); - }); - - describe('when the item is not private', () => { - beforeEach(() => { - (comp.object as any).isDiscoverable = true; - comp.initBadges(); - fixture.detectChanges(); - }); - it('should not show the private badge', () => { - const badge = fixture.debugElement.query(By.css('div.private-badge')); - expect(badge).toBeNull(); - }); - }); - - describe('when the item is private', () => { - beforeEach(() => { - (comp.object as any).isDiscoverable = false; - comp.initBadges(); - fixture.detectChanges(); - }); - - it('should show the private badge', () => { - const badge = fixture.debugElement.query(By.css('div.private-badge')); - expect(badge).not.toBeNull(); - }); - }); - }); - describe('When a reloadedObject is emitted', () => { let listableComponent; let reloadedObject: any; diff --git a/src/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.ts b/src/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.ts index 18b3d96d14..982b95c430 100644 --- a/src/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.ts +++ b/src/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.ts @@ -2,7 +2,6 @@ import { ChangeDetectorRef, Component, ComponentRef, - ElementRef, EventEmitter, Input, OnChanges, @@ -81,37 +80,16 @@ export class ListableObjectComponentLoaderComponent implements OnInit, OnChanges */ @Input() value: string; - /** - * Whether or not informational badges (e.g. Private, Withdrawn) should be hidden - */ - @Input() hideBadges = false; - /** * Directive hook used to place the dynamic child component */ @ViewChild(ListableObjectDirective, { static: true }) listableObjectDirective: ListableObjectDirective; - /** - * View on the badges template, to be passed on to the loaded component (which will place the badges in the desired - * location, or on top if not specified) - */ - @ViewChild('badges', { static: true }) badges: ElementRef; - /** * Emit when the listable object has been reloaded. */ @Output() contentChange = new EventEmitter(); - /** - * Whether or not the "Private" badge should be displayed for this listable object - */ - privateBadge = false; - - /** - * Whether or not the "Withdrawn" badge should be displayed for this listable object - */ - withdrawnBadge = false; - /** * Array to track all subscriptions and unsubscribe them onDestroy * @type {Array} @@ -167,8 +145,6 @@ export class ListableObjectComponentLoaderComponent implements OnInit, OnChanges private instantiateComponent(object) { - this.initBadges(); - const component = this.getComponent(object.getRenderTypes(), this.viewMode, this.context); const viewContainerRef = this.listableObjectDirective.viewContainerRef; @@ -177,10 +153,7 @@ export class ListableObjectComponentLoaderComponent implements OnInit, OnChanges this.compRef = viewContainerRef.createComponent( component, { index: 0, - injector: undefined, - projectableNodes: [ - [this.badges.nativeElement], - ] + injector: undefined } ); @@ -201,19 +174,6 @@ export class ListableObjectComponentLoaderComponent implements OnInit, OnChanges } } - /** - * Initialize which badges should be visible in the listable component - */ - initBadges() { - let objectAsAny = this.object as any; - if (hasValue(objectAsAny.indexableObject)) { - objectAsAny = objectAsAny.indexableObject; - } - const objectExistsAndValidViewMode = hasValue(objectAsAny) && this.viewMode !== ViewMode.StandalonePage; - this.privateBadge = objectExistsAndValidViewMode && hasValue(objectAsAny.isDiscoverable) && !objectAsAny.isDiscoverable; - this.withdrawnBadge = objectExistsAndValidViewMode && hasValue(objectAsAny.isWithdrawn) && objectAsAny.isWithdrawn; - } - /** * Fetch the component depending on the item's entity type, view mode and context * @returns {GenericConstructor} diff --git a/src/app/shared/object-detail/my-dspace-result-detail-element/claimed-task-search-result/claimed-task-search-result-detail-element.component.html b/src/app/shared/object-detail/my-dspace-result-detail-element/claimed-task-search-result/claimed-task-search-result-detail-element.component.html index 3695f4714d..9a80421fbf 100644 --- a/src/app/shared/object-detail/my-dspace-result-detail-element/claimed-task-search-result/claimed-task-search-result-detail-element.component.html +++ b/src/app/shared/object-detail/my-dspace-result-detail-element/claimed-task-search-result/claimed-task-search-result-detail-element.component.html @@ -2,7 +2,7 @@ + [badgeContext]="badgeContext"> ; @@ -101,8 +106,8 @@ describe('ClaimedTaskSearchResultDetailElementComponent', () => { expect(component.item$.value).toEqual(item); })); - it('should have properly status', () => { - expect(component.status).toEqual(MyDspaceItemStatusType.VALIDATION); + it('should have the correct badge context', () => { + expect(component.badgeContext).toEqual(Context.MyDSpaceValidation); }); it('should forward claimed-task-actions processComplete event to reloadObject event emitter', fakeAsync(() => { diff --git a/src/app/shared/object-detail/my-dspace-result-detail-element/claimed-task-search-result/claimed-task-search-result-detail-element.component.ts b/src/app/shared/object-detail/my-dspace-result-detail-element/claimed-task-search-result/claimed-task-search-result-detail-element.component.ts index 2ee661ef38..7789f9957e 100644 --- a/src/app/shared/object-detail/my-dspace-result-detail-element/claimed-task-search-result/claimed-task-search-result-detail-element.component.ts +++ b/src/app/shared/object-detail/my-dspace-result-detail-element/claimed-task-search-result/claimed-task-search-result-detail-element.component.ts @@ -8,9 +8,6 @@ import { ViewMode } from '../../../../core/shared/view-mode.model'; import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model'; import { ClaimedTask } from '../../../../core/tasks/models/claimed-task-object.model'; import { SearchResultDetailElementComponent } from '../search-result-detail-element.component'; -import { - MyDspaceItemStatusType -} from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator'; import { ClaimedTaskSearchResult } from '../../../object-collection/shared/claimed-task-search-result.model'; import { followLink } from '../../../utils/follow-link-config.model'; @@ -19,6 +16,7 @@ import { Item } from '../../../../core/shared/item.model'; import { getFirstCompletedRemoteData } from '../../../../core/shared/operators'; import { isNotEmpty } from '../../../empty.util'; import { ObjectCacheService } from '../../../../core/cache/object-cache.service'; +import { Context } from 'src/app/core/shared/context.model'; /** * This component renders claimed task object for the search result in the detail view. @@ -43,9 +41,9 @@ export class ClaimedTaskSearchResultDetailElementComponent extends SearchResultD public showSubmitter = true; /** - * Represent item's status + * Represents the badge context */ - public status = MyDspaceItemStatusType.VALIDATION; + public badgeContext = Context.MyDSpaceValidation; /** * The workflowitem object that belonging to the result object diff --git a/src/app/shared/object-detail/my-dspace-result-detail-element/item-detail-preview/item-detail-preview.component.html b/src/app/shared/object-detail/my-dspace-result-detail-element/item-detail-preview/item-detail-preview.component.html index 833281eeaf..229e36deef 100644 --- a/src/app/shared/object-detail/my-dspace-result-detail-element/item-detail-preview/item-detail-preview.component.html +++ b/src/app/shared/object-detail/my-dspace-result-detail-element/item-detail-preview/item-detail-preview.component.html @@ -1,7 +1,5 @@ - - - + diff --git a/src/app/shared/object-detail/my-dspace-result-detail-element/item-detail-preview/item-detail-preview.component.ts b/src/app/shared/object-detail/my-dspace-result-detail-element/item-detail-preview/item-detail-preview.component.ts index 778e455004..ed8dc3dc96 100644 --- a/src/app/shared/object-detail/my-dspace-result-detail-element/item-detail-preview/item-detail-preview.component.ts +++ b/src/app/shared/object-detail/my-dspace-result-detail-element/item-detail-preview/item-detail-preview.component.ts @@ -6,12 +6,12 @@ import { BitstreamDataService } from '../../../../core/data/bitstream-data.servi import { Item } from '../../../../core/shared/item.model'; import { getFirstSucceededRemoteListPayload } from '../../../../core/shared/operators'; -import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { fadeInOut } from '../../../animations/fade'; import { Bitstream } from '../../../../core/shared/bitstream.model'; import { FileService } from '../../../../core/shared/file.service'; import { HALEndpointService } from '../../../../core/shared/hal-endpoint.service'; import { SearchResult } from '../../../search/models/search-result.model'; +import { Context } from '../../../../core/shared/context.model'; /** * This component show metadata for the given item object in the detail view. @@ -23,7 +23,6 @@ import { SearchResult } from '../../../search/models/search-result.model'; animations: [fadeInOut] }) export class ItemDetailPreviewComponent { - /** * The item to display */ @@ -35,9 +34,9 @@ export class ItemDetailPreviewComponent { @Input() object: SearchResult; /** - * Represent item's status + * Represents the badge context */ - @Input() status: MyDspaceItemStatusType; + @Input() badgeContext: Context; /** * A boolean representing if to show submitter information diff --git a/src/app/shared/object-detail/my-dspace-result-detail-element/item-search-result/item-search-result-detail-element.component.html b/src/app/shared/object-detail/my-dspace-result-detail-element/item-search-result/item-search-result-detail-element.component.html index 2b687960ab..1c19201c63 100644 --- a/src/app/shared/object-detail/my-dspace-result-detail-element/item-search-result/item-search-result-detail-element.component.html +++ b/src/app/shared/object-detail/my-dspace-result-detail-element/item-search-result/item-search-result-detail-element.component.html @@ -1,6 +1,6 @@ + [badgeContext]="badgeContext"> diff --git a/src/app/shared/object-detail/my-dspace-result-detail-element/item-search-result/item-search-result-detail-element.component.spec.ts b/src/app/shared/object-detail/my-dspace-result-detail-element/item-search-result/item-search-result-detail-element.component.spec.ts index 8d602d5eb2..4dbf9b69a1 100644 --- a/src/app/shared/object-detail/my-dspace-result-detail-element/item-search-result/item-search-result-detail-element.component.spec.ts +++ b/src/app/shared/object-detail/my-dspace-result-detail-element/item-search-result/item-search-result-detail-element.component.spec.ts @@ -6,8 +6,8 @@ import { of as observableOf } from 'rxjs'; import { Item } from '../../../../core/shared/item.model'; import { ItemSearchResultDetailElementComponent } from './item-search-result-detail-element.component'; -import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { ItemSearchResult } from '../../../object-collection/shared/item-search-result.model'; +import { Context } from 'src/app/core/shared/context.model'; let component: ItemSearchResultDetailElementComponent; let fixture: ComponentFixture; @@ -68,7 +68,7 @@ describe('ItemSearchResultDetailElementComponent', () => { fixture.detectChanges(); }); - it('should have properly status', () => { - expect(component.status).toEqual(MyDspaceItemStatusType.ARCHIVED); + it('should have the correct badge context', () => { + expect(component.badgeContext).toEqual(Context.MyDSpaceArchived); }); }); diff --git a/src/app/shared/object-detail/my-dspace-result-detail-element/item-search-result/item-search-result-detail-element.component.ts b/src/app/shared/object-detail/my-dspace-result-detail-element/item-search-result/item-search-result-detail-element.component.ts index 27a94b0cf5..40ed72dcf1 100644 --- a/src/app/shared/object-detail/my-dspace-result-detail-element/item-search-result/item-search-result-detail-element.component.ts +++ b/src/app/shared/object-detail/my-dspace-result-detail-element/item-search-result/item-search-result-detail-element.component.ts @@ -3,9 +3,6 @@ import { Component } from '@angular/core'; import { ViewMode } from '../../../../core/shared/view-mode.model'; import { Item } from '../../../../core/shared/item.model'; import { SearchResultDetailElementComponent } from '../search-result-detail-element.component'; -import { - MyDspaceItemStatusType -} from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator'; import { ItemSearchResult } from '../../../object-collection/shared/item-search-result.model'; import { Context } from '../../../../core/shared/context.model'; @@ -24,8 +21,8 @@ import { Context } from '../../../../core/shared/context.model'; export class ItemSearchResultDetailElementComponent extends SearchResultDetailElementComponent { /** - * Represent item's status + * Represents the badge context */ - public status = MyDspaceItemStatusType.ARCHIVED; + public badgeContext = Context.MyDSpaceArchived; } diff --git a/src/app/shared/object-detail/my-dspace-result-detail-element/pool-search-result/pool-search-result-detail-element.component.html b/src/app/shared/object-detail/my-dspace-result-detail-element/pool-search-result/pool-search-result-detail-element.component.html index c9165b416a..d2a15b016f 100644 --- a/src/app/shared/object-detail/my-dspace-result-detail-element/pool-search-result/pool-search-result-detail-element.component.html +++ b/src/app/shared/object-detail/my-dspace-result-detail-element/pool-search-result/pool-search-result-detail-element.component.html @@ -2,7 +2,7 @@ + [badgeContext]="badgeContext"> ; @@ -103,8 +101,8 @@ describe('PoolSearchResultDetailElementComponent', () => { expect(component.item$.value).toEqual(item); })); - it('should have properly status', () => { - expect(component.status).toEqual(MyDspaceItemStatusType.WAITING_CONTROLLER); + it('should have the correct badge context', () => { + expect(component.badgeContext).toEqual(Context.MyDSpaceWaitingController); }); it('should forward pool-task-actions processCompleted event to the reloadedObject event emitter', fakeAsync(() => { diff --git a/src/app/shared/object-detail/my-dspace-result-detail-element/pool-search-result/pool-search-result-detail-element.component.ts b/src/app/shared/object-detail/my-dspace-result-detail-element/pool-search-result/pool-search-result-detail-element.component.ts index 6dec14f9cb..c07977d77d 100644 --- a/src/app/shared/object-detail/my-dspace-result-detail-element/pool-search-result/pool-search-result-detail-element.component.ts +++ b/src/app/shared/object-detail/my-dspace-result-detail-element/pool-search-result/pool-search-result-detail-element.component.ts @@ -6,9 +6,6 @@ import { mergeMap, tap } from 'rxjs/operators'; import { RemoteData } from '../../../../core/data/remote-data'; import { PoolTask } from '../../../../core/tasks/models/pool-task-object.model'; import { SearchResultDetailElementComponent } from '../search-result-detail-element.component'; -import { - MyDspaceItemStatusType -} from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model'; import { ViewMode } from '../../../../core/shared/view-mode.model'; import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator'; @@ -19,6 +16,7 @@ import { Item } from '../../../../core/shared/item.model'; import { getFirstCompletedRemoteData } from '../../../../core/shared/operators'; import { isNotEmpty } from '../../../empty.util'; import { ObjectCacheService } from '../../../../core/cache/object-cache.service'; +import { Context } from 'src/app/core/shared/context.model'; /** * This component renders pool task object for the search result in the detail view. @@ -43,9 +41,9 @@ export class PoolSearchResultDetailElementComponent extends SearchResultDetailEl public showSubmitter = true; /** - * Represent item's status + * Represents the badge context */ - public status = MyDspaceItemStatusType.WAITING_CONTROLLER; + public badgeContext = Context.MyDSpaceWaitingController; /** * The workflowitem object that belonging to the result object diff --git a/src/app/shared/object-detail/my-dspace-result-detail-element/workflow-item-search-result/workflow-item-search-result-detail-element.component.html b/src/app/shared/object-detail/my-dspace-result-detail-element/workflow-item-search-result/workflow-item-search-result-detail-element.component.html index 7ff1a9bf72..ddd6af453c 100644 --- a/src/app/shared/object-detail/my-dspace-result-detail-element/workflow-item-search-result/workflow-item-search-result-detail-element.component.html +++ b/src/app/shared/object-detail/my-dspace-result-detail-element/workflow-item-search-result/workflow-item-search-result-detail-element.component.html @@ -1,6 +1,6 @@ + [badgeContext]="badgeContext"> diff --git a/src/app/shared/object-detail/my-dspace-result-detail-element/workflow-item-search-result/workflow-item-search-result-detail-element.component.spec.ts b/src/app/shared/object-detail/my-dspace-result-detail-element/workflow-item-search-result/workflow-item-search-result-detail-element.component.spec.ts index 536bd6d0bb..f4bc6b88fa 100644 --- a/src/app/shared/object-detail/my-dspace-result-detail-element/workflow-item-search-result/workflow-item-search-result-detail-element.component.spec.ts +++ b/src/app/shared/object-detail/my-dspace-result-detail-element/workflow-item-search-result/workflow-item-search-result-detail-element.component.spec.ts @@ -7,13 +7,13 @@ import { of as observableOf } from 'rxjs'; import { Item } from '../../../../core/shared/item.model'; import { WorkflowItemSearchResultDetailElementComponent } from './workflow-item-search-result-detail-element.component'; import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model'; -import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { createSuccessfulRemoteDataObject } from '../../../remote-data.utils'; import { WorkflowItemSearchResult } from '../../../object-collection/shared/workflow-item-search-result.model'; import { getMockLinkService } from '../../../mocks/link-service.mock'; import { LinkService } from '../../../../core/cache/builders/link.service'; import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service'; import { DSONameServiceMock } from '../../../mocks/dso-name.service.mock'; +import { Context } from '../../../../core/shared/context.model'; let component: WorkflowItemSearchResultDetailElementComponent; let fixture: ComponentFixture; @@ -87,7 +87,7 @@ describe('WorkflowItemSearchResultDetailElementComponent', () => { expect(component.item).toEqual(item); }); - it('should have properly status', () => { - expect(component.status).toEqual(MyDspaceItemStatusType.WORKFLOW); + it('should have the correct badge context', () => { + expect(component.badgeContext).toEqual(Context.MyDSpaceWorkflow); }); }); diff --git a/src/app/shared/object-detail/my-dspace-result-detail-element/workflow-item-search-result/workflow-item-search-result-detail-element.component.ts b/src/app/shared/object-detail/my-dspace-result-detail-element/workflow-item-search-result/workflow-item-search-result-detail-element.component.ts index 8dc510d2aa..b5e15ebe1f 100644 --- a/src/app/shared/object-detail/my-dspace-result-detail-element/workflow-item-search-result/workflow-item-search-result-detail-element.component.ts +++ b/src/app/shared/object-detail/my-dspace-result-detail-element/workflow-item-search-result/workflow-item-search-result-detail-element.component.ts @@ -4,7 +4,6 @@ import { ViewMode } from '../../../../core/shared/view-mode.model'; import { Item } from '../../../../core/shared/item.model'; import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model'; import { SearchResultDetailElementComponent } from '../search-result-detail-element.component'; -import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { Observable } from 'rxjs'; import { RemoteData } from '../../../../core/data/remote-data'; import { find } from 'rxjs/operators'; @@ -13,6 +12,7 @@ import { listableObjectComponent } from '../../../object-collection/shared/lista import { WorkflowItemSearchResult } from '../../../object-collection/shared/workflow-item-search-result.model'; import { LinkService } from '../../../../core/cache/builders/link.service'; import { followLink } from '../../../utils/follow-link-config.model'; +import { Context } from 'src/app/core/shared/context.model'; /** * This component renders workflowitem object for the search result in the detail view. @@ -32,9 +32,9 @@ export class WorkflowItemSearchResultDetailElementComponent extends SearchResult public item: Item; /** - * Represent item's status + * Represents the badge context */ - public status = MyDspaceItemStatusType.WORKFLOW; + public badgeContext = Context.MyDSpaceWorkflow; constructor( protected linkService: LinkService diff --git a/src/app/shared/object-detail/my-dspace-result-detail-element/workspace-item-search-result/workspace-item-search-result-detail-element.component.html b/src/app/shared/object-detail/my-dspace-result-detail-element/workspace-item-search-result/workspace-item-search-result-detail-element.component.html index 8d4eee6ba9..4414933e02 100644 --- a/src/app/shared/object-detail/my-dspace-result-detail-element/workspace-item-search-result/workspace-item-search-result-detail-element.component.html +++ b/src/app/shared/object-detail/my-dspace-result-detail-element/workspace-item-search-result/workspace-item-search-result-detail-element.component.html @@ -1,5 +1,5 @@ + [badgeContext]="badgeContext"> diff --git a/src/app/shared/object-detail/my-dspace-result-detail-element/workspace-item-search-result/workspace-item-search-result-detail-element.component.spec.ts b/src/app/shared/object-detail/my-dspace-result-detail-element/workspace-item-search-result/workspace-item-search-result-detail-element.component.spec.ts index 00a20b006a..e86bfdb5e6 100644 --- a/src/app/shared/object-detail/my-dspace-result-detail-element/workspace-item-search-result/workspace-item-search-result-detail-element.component.spec.ts +++ b/src/app/shared/object-detail/my-dspace-result-detail-element/workspace-item-search-result/workspace-item-search-result-detail-element.component.spec.ts @@ -7,13 +7,13 @@ import { of as observableOf } from 'rxjs'; import { Item } from '../../../../core/shared/item.model'; import { WorkspaceItemSearchResultDetailElementComponent } from './workspace-item-search-result-detail-element.component'; import { WorkspaceItem } from '../../../../core/submission/models/workspaceitem.model'; -import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { createSuccessfulRemoteDataObject } from '../../../remote-data.utils'; import { WorkflowItemSearchResult } from '../../../object-collection/shared/workflow-item-search-result.model'; import { getMockLinkService } from '../../../mocks/link-service.mock'; import { LinkService } from '../../../../core/cache/builders/link.service'; import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service'; import { DSONameServiceMock } from '../../../mocks/dso-name.service.mock'; +import { Context } from 'src/app/core/shared/context.model'; let component: WorkspaceItemSearchResultDetailElementComponent; let fixture: ComponentFixture; @@ -87,7 +87,7 @@ describe('WorkspaceItemSearchResultDetailElementComponent', () => { expect(component.item).toEqual(item); }); - it('should have properly status', () => { - expect(component.status).toEqual(MyDspaceItemStatusType.WORKSPACE); + it('should have the correct badge context', () => { + expect(component.badgeContext).toEqual(Context.MyDSpaceWorkspace); }); }); diff --git a/src/app/shared/object-detail/my-dspace-result-detail-element/workspace-item-search-result/workspace-item-search-result-detail-element.component.ts b/src/app/shared/object-detail/my-dspace-result-detail-element/workspace-item-search-result/workspace-item-search-result-detail-element.component.ts index e4781fe0b2..c62ebb25d1 100644 --- a/src/app/shared/object-detail/my-dspace-result-detail-element/workspace-item-search-result/workspace-item-search-result-detail-element.component.ts +++ b/src/app/shared/object-detail/my-dspace-result-detail-element/workspace-item-search-result/workspace-item-search-result-detail-element.component.ts @@ -8,12 +8,12 @@ import { Item } from '../../../../core/shared/item.model'; import { RemoteData } from '../../../../core/data/remote-data'; import { isNotUndefined } from '../../../empty.util'; import { SearchResultDetailElementComponent } from '../search-result-detail-element.component'; -import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { ViewMode } from '../../../../core/shared/view-mode.model'; import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator'; import { WorkspaceItemSearchResult } from '../../../object-collection/shared/workspace-item-search-result.model'; import { followLink } from '../../../utils/follow-link-config.model'; import { LinkService } from '../../../../core/cache/builders/link.service'; +import { Context } from '../../../../core/shared/context.model'; /** * This component renders workspace item object for the search result in the detail view. @@ -33,9 +33,9 @@ export class WorkspaceItemSearchResultDetailElementComponent extends SearchResul public item: Item; /** - * Represent item's status + * Represents the badge context */ - status = MyDspaceItemStatusType.WORKSPACE; + public badgeContext = Context.MyDSpaceWorkspace; constructor( protected linkService: LinkService diff --git a/src/app/shared/object-grid/search-result-grid-element/collection-search-result/collection-search-result-grid-element.component.html b/src/app/shared/object-grid/search-result-grid-element/collection-search-result/collection-search-result-grid-element.component.html index b05bb4f7ba..694c6f565f 100644 --- a/src/app/shared/object-grid/search-result-grid-element/collection-search-result/collection-search-result-grid-element.component.html +++ b/src/app/shared/object-grid/search-result-grid-element/collection-search-result/collection-search-result-grid-element.component.html @@ -8,7 +8,7 @@ - + {{dso.name}} {{dso.shortDescription}} diff --git a/src/app/shared/object-grid/search-result-grid-element/community-search-result/community-search-result-grid-element.component.html b/src/app/shared/object-grid/search-result-grid-element/community-search-result/community-search-result-grid-element.component.html index d915cdb7a4..c8f3ffca0a 100644 --- a/src/app/shared/object-grid/search-result-grid-element/community-search-result/community-search-result-grid-element.component.html +++ b/src/app/shared/object-grid/search-result-grid-element/community-search-result/community-search-result-grid-element.component.html @@ -8,7 +8,7 @@ - + {{dso.name}} {{dso.shortDescription}} diff --git a/src/app/shared/object-grid/search-result-grid-element/item-search-result/item/item-search-result-grid-element.component.html b/src/app/shared/object-grid/search-result-grid-element/item-search-result/item/item-search-result-grid-element.component.html index c7e7e2d056..48fb01200b 100644 --- a/src/app/shared/object-grid/search-result-grid-element/item-search-result/item/item-search-result-grid-element.component.html +++ b/src/app/shared/object-grid/search-result-grid-element/item-search-result/item/item-search-result-grid-element.component.html @@ -16,8 +16,7 @@ - - + diff --git a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-approved-search-result/claimed-approved-search-result-list-element.component.html b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-approved-search-result/claimed-approved-search-result-list-element.component.html index 79e870e130..bb8e4ebfc8 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-approved-search-result/claimed-approved-search-result-list-element.component.html +++ b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-approved-search-result/claimed-approved-search-result-list-element.component.html @@ -4,7 +4,7 @@ diff --git a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-approved-search-result/claimed-approved-search-result-list-element.component.spec.ts b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-approved-search-result/claimed-approved-search-result-list-element.component.spec.ts index c05a4fc390..777a0258b0 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-approved-search-result/claimed-approved-search-result-list-element.component.spec.ts +++ b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-approved-search-result/claimed-approved-search-result-list-element.component.spec.ts @@ -12,13 +12,13 @@ import { getMockLinkService } from '../../../../mocks/link-service.mock'; import { VarDirective } from '../../../../utils/var.directive'; import { TruncatableService } from '../../../../truncatable/truncatable.service'; import { LinkService } from '../../../../../core/cache/builders/link.service'; -import { MyDspaceItemStatusType } from '../../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { ClaimedApprovedTaskSearchResult } from '../../../../object-collection/shared/claimed-approved-task-search-result.model'; import { ClaimedApprovedSearchResultListElementComponent } from './claimed-approved-search-result-list-element.component'; import { DSONameService } from '../../../../../core/breadcrumbs/dso-name.service'; import { DSONameServiceMock } from '../../../../mocks/dso-name.service.mock'; import { APP_CONFIG } from '../../../../../../config/app-config.interface'; import { environment } from '../../../../../../environments/environment'; +import { Context } from '../../../../../core/shared/context.model'; import { TranslateModule } from '@ngx-translate/core'; let component: ClaimedApprovedSearchResultListElementComponent; @@ -104,8 +104,8 @@ describe('ClaimedApprovedSearchResultListElementComponent', () => { }); }); - it('should have properly status', () => { - expect(component.status).toEqual(MyDspaceItemStatusType.APPROVED); + it('should have the correct badge context', () => { + expect(component.badgeContext).toEqual(Context.MyDSpaceApproved); }); }); diff --git a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-approved-search-result/claimed-approved-search-result-list-element.component.ts b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-approved-search-result/claimed-approved-search-result-list-element.component.ts index 5dda0e44ea..fa2a112c8b 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-approved-search-result/claimed-approved-search-result-list-element.component.ts +++ b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-approved-search-result/claimed-approved-search-result-list-element.component.ts @@ -4,7 +4,6 @@ import { ClaimedApprovedTaskSearchResult } from '../../../../object-collection/s import { listableObjectComponent } from '../../../../object-collection/shared/listable-object/listable-object.decorator'; import { LinkService } from '../../../../../core/cache/builders/link.service'; import { TruncatableService } from '../../../../truncatable/truncatable.service'; -import { MyDspaceItemStatusType } from '../../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { Observable } from 'rxjs'; import { RemoteData } from '../../../../../core/data/remote-data'; import { WorkflowItem } from '../../../../../core/submission/models/workflowitem.model'; @@ -14,6 +13,7 @@ import { ClaimedTaskSearchResult } from '../../../../object-collection/shared/cl import { ClaimedTask } from '../../../../../core/tasks/models/claimed-task-object.model'; import { DSONameService } from '../../../../../core/breadcrumbs/dso-name.service'; import { APP_CONFIG, AppConfig } from '../../../../../../config/app-config.interface'; +import { Context } from 'src/app/core/shared/context.model'; /** * This component renders claimed task approved object for the search result in the list view. @@ -32,9 +32,9 @@ export class ClaimedApprovedSearchResultListElementComponent extends SearchResul public showSubmitter = true; /** - * Represent item's status + * Represents the badge context */ - public status = MyDspaceItemStatusType.APPROVED; + public badgeContext = Context.MyDSpaceApproved; /** * The workflowitem object that belonging to the result object diff --git a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-search-result/claimed-declined-search-result-list-element.component.html b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-search-result/claimed-declined-search-result-list-element.component.html index 83fb3646c6..08f3f79a98 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-search-result/claimed-declined-search-result-list-element.component.html +++ b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-search-result/claimed-declined-search-result-list-element.component.html @@ -4,7 +4,7 @@ diff --git a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-search-result/claimed-declined-search-result-list-element.component.spec.ts b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-search-result/claimed-declined-search-result-list-element.component.spec.ts index dc06446cbc..ccd742f854 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-search-result/claimed-declined-search-result-list-element.component.spec.ts +++ b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-search-result/claimed-declined-search-result-list-element.component.spec.ts @@ -14,11 +14,11 @@ import { getMockLinkService } from '../../../../mocks/link-service.mock'; import { VarDirective } from '../../../../utils/var.directive'; import { TruncatableService } from '../../../../truncatable/truncatable.service'; import { LinkService } from '../../../../../core/cache/builders/link.service'; -import { MyDspaceItemStatusType } from '../../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { DSONameService } from '../../../../../core/breadcrumbs/dso-name.service'; import { DSONameServiceMock } from '../../../../mocks/dso-name.service.mock'; import { APP_CONFIG } from '../../../../../../config/app-config.interface'; import { environment } from '../../../../../../environments/environment'; +import { Context } from '../../../../../core/shared/context.model'; import { TranslateModule } from '@ngx-translate/core'; let component: ClaimedDeclinedSearchResultListElementComponent; @@ -104,8 +104,8 @@ describe('ClaimedDeclinedSearchResultListElementComponent', () => { }); }); - it('should have properly status', () => { - expect(component.status).toEqual(MyDspaceItemStatusType.DECLINED); + it('should have the correct badge context', () => { + expect(component.badgeContext).toEqual(Context.MyDSpaceDeclined); }); }); diff --git a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-search-result/claimed-declined-search-result-list-element.component.ts b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-search-result/claimed-declined-search-result-list-element.component.ts index 90f523a7fb..9ee4a25f05 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-search-result/claimed-declined-search-result-list-element.component.ts +++ b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-search-result/claimed-declined-search-result-list-element.component.ts @@ -5,7 +5,6 @@ import { ClaimedDeclinedTaskSearchResult } from '../../../../object-collection/s import { ViewMode } from '../../../../../core/shared/view-mode.model'; import { LinkService } from '../../../../../core/cache/builders/link.service'; import { TruncatableService } from '../../../../truncatable/truncatable.service'; -import { MyDspaceItemStatusType } from '../../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { Observable } from 'rxjs'; import { RemoteData } from '../../../../../core/data/remote-data'; import { WorkflowItem } from '../../../../../core/submission/models/workflowitem.model'; @@ -15,6 +14,7 @@ import { ClaimedTaskSearchResult } from '../../../../object-collection/shared/cl import { ClaimedTask } from '../../../../../core/tasks/models/claimed-task-object.model'; import { DSONameService } from '../../../../../core/breadcrumbs/dso-name.service'; import { APP_CONFIG, AppConfig } from '../../../../../../config/app-config.interface'; +import { Context } from '../../../../../core/shared/context.model'; /** * This component renders claimed task declined object for the search result in the list view. @@ -33,9 +33,9 @@ export class ClaimedDeclinedSearchResultListElementComponent extends SearchResul public showSubmitter = true; /** - * Represent item's status + * Represents the badge context */ - public status = MyDspaceItemStatusType.DECLINED; + public badgeContext = Context.MyDSpaceDeclined; /** * The workflowitem object that belonging to the result object diff --git a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-task-search-result/claimed-declined-task-search-result-list-element.component.html b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-task-search-result/claimed-declined-task-search-result-list-element.component.html index a8ec21fa6c..715d350739 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-task-search-result/claimed-declined-task-search-result-list-element.component.html +++ b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-task-search-result/claimed-declined-task-search-result-list-element.component.html @@ -4,7 +4,7 @@ diff --git a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-task-search-result/claimed-declined-task-search-result-list-element.component.spec.ts b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-task-search-result/claimed-declined-task-search-result-list-element.component.spec.ts index 1b23def2e4..5e082ef4cf 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-task-search-result/claimed-declined-task-search-result-list-element.component.spec.ts +++ b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-task-search-result/claimed-declined-task-search-result-list-element.component.spec.ts @@ -12,7 +12,6 @@ import { getMockLinkService } from '../../../../mocks/link-service.mock'; import { VarDirective } from '../../../../utils/var.directive'; import { TruncatableService } from '../../../../truncatable/truncatable.service'; import { LinkService } from '../../../../../core/cache/builders/link.service'; -import { MyDspaceItemStatusType } from '../../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { DSONameService } from '../../../../../core/breadcrumbs/dso-name.service'; import { DSONameServiceMock } from '../../../../mocks/dso-name.service.mock'; import { APP_CONFIG } from '../../../../../../config/app-config.interface'; @@ -102,8 +101,4 @@ describe('ClaimedDeclinedTaskSearchResultListElementComponent', () => { }); }); - it('should have properly status', () => { - expect(component.status).toEqual(MyDspaceItemStatusType.DECLINED_TASk); - }); - }); diff --git a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-task-search-result/claimed-declined-task-search-result-list-element.component.ts b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-task-search-result/claimed-declined-task-search-result-list-element.component.ts index 131f4b6730..a52f1a6a63 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-task-search-result/claimed-declined-task-search-result-list-element.component.ts +++ b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-task-search-result/claimed-declined-task-search-result-list-element.component.ts @@ -4,7 +4,6 @@ import { ClaimedDeclinedTaskTaskSearchResult } from 'src/app/shared/object-colle import { ViewMode } from '../../../../../core/shared/view-mode.model'; import { LinkService } from '../../../../../core/cache/builders/link.service'; import { TruncatableService } from '../../../../truncatable/truncatable.service'; -import { MyDspaceItemStatusType } from '../../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { Observable } from 'rxjs'; import { RemoteData } from '../../../../../core/data/remote-data'; import { WorkflowItem } from '../../../../../core/submission/models/workflowitem.model'; @@ -14,6 +13,7 @@ import { ClaimedTaskSearchResult } from '../../../../object-collection/shared/cl import { ClaimedTask } from '../../../../../core/tasks/models/claimed-task-object.model'; import { DSONameService } from '../../../../../core/breadcrumbs/dso-name.service'; import { APP_CONFIG, AppConfig } from '../../../../../../config/app-config.interface'; +import { Context } from '../../../../../core/shared/context.model'; /** * This component renders claimed task declined task object for the search result in the list view. @@ -32,9 +32,9 @@ export class ClaimedDeclinedTaskSearchResultListElementComponent extends SearchR public showSubmitter = true; /** - * Represent item's status + * Represents the badge context */ - public status = MyDspaceItemStatusType.DECLINED_TASk; + public badgeContext = Context.MyDSpaceDeclined; /** * The workflowitem object that belonging to the result object diff --git a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-search-result-list-element.component.html b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-search-result-list-element.component.html index 4584b12550..42af008cdd 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-search-result-list-element.component.html +++ b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-search-result-list-element.component.html @@ -2,8 +2,8 @@ + [badgeContext]="badgeContext" + [workflowItem]="workflowitem$.value"> diff --git a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-search-result-list-element.component.spec.ts b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-search-result-list-element.component.spec.ts index 4ea716cc2a..c1778c1792 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-search-result-list-element.component.spec.ts +++ b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-search-result-list-element.component.spec.ts @@ -1,5 +1,12 @@ import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core'; -import { ComponentFixture, fakeAsync, flush, TestBed, tick, waitForAsync } from '@angular/core/testing'; +import { + ComponentFixture, + fakeAsync, + flush, + TestBed, + tick, + waitForAsync +} from '@angular/core/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { of as observableOf } from 'rxjs'; @@ -7,9 +14,6 @@ import { of as observableOf } from 'rxjs'; import { Item } from '../../../../core/shared/item.model'; import { ClaimedSearchResultListElementComponent } from './claimed-search-result-list-element.component'; import { ClaimedTask } from '../../../../core/tasks/models/claimed-task-object.model'; -import { - MyDspaceItemStatusType -} from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model'; import { createSuccessfulRemoteDataObject } from '../../../remote-data.utils'; import { ClaimedTaskSearchResult } from '../../../object-collection/shared/claimed-task-search-result.model'; @@ -23,6 +27,7 @@ import { DSONameServiceMock } from '../../../mocks/dso-name.service.mock'; import { APP_CONFIG } from '../../../../../config/app-config.interface'; import { environment } from '../../../../../environments/environment'; import { ObjectCacheService } from '../../../../core/cache/object-cache.service'; +import { Context } from '../../../../core/shared/context.model'; let component: ClaimedSearchResultListElementComponent; let fixture: ComponentFixture; @@ -107,8 +112,8 @@ describe('ClaimedSearchResultListElementComponent', () => { expect(component.item$.value).toEqual(item); })); - it('should have properly status', () => { - expect(component.status).toEqual(MyDspaceItemStatusType.VALIDATION); + it('should have the correct badge context', () => { + expect(component.badgeContext).toEqual(Context.MyDSpaceValidation); }); it('should forward claimed-task-actions processComplete event to reloadObject event emitter', fakeAsync(() => { diff --git a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-search-result-list-element.component.ts b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-search-result-list-element.component.ts index 237a5f516e..18c03d71c4 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-search-result-list-element.component.ts +++ b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-search-result-list-element.component.ts @@ -5,9 +5,6 @@ import { listableObjectComponent } from '../../../object-collection/shared/lista import { ClaimedTaskSearchResult } from '../../../object-collection/shared/claimed-task-search-result.model'; import { LinkService } from '../../../../core/cache/builders/link.service'; import { TruncatableService } from '../../../truncatable/truncatable.service'; -import { - MyDspaceItemStatusType -} from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { BehaviorSubject, EMPTY, Observable } from 'rxjs'; import { RemoteData } from '../../../../core/data/remote-data'; import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model'; @@ -23,6 +20,7 @@ import { getFirstCompletedRemoteData } from '../../../../core/shared/operators'; import { Item } from '../../../../core/shared/item.model'; import { mergeMap, tap } from 'rxjs/operators'; import { isNotEmpty } from '../../../empty.util'; +import { Context } from '../../../../core/shared/context.model'; @Component({ selector: 'ds-claimed-search-result-list-element', @@ -38,9 +36,9 @@ export class ClaimedSearchResultListElementComponent extends SearchResultListEle public showSubmitter = true; /** - * Represent item's status + * Represents the badge context */ - public status = MyDspaceItemStatusType.VALIDATION; + public badgeContext = Context.MyDSpaceValidation; /** * The item object that belonging to the result object diff --git a/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.html b/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.html index 94426136b5..c8ef730faf 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.html +++ b/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.html @@ -5,12 +5,8 @@ - - - - - + @@ -47,4 +43,4 @@ - \ No newline at end of file + diff --git a/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.spec.ts b/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.spec.ts index aaddebd8eb..aa618add35 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.spec.ts +++ b/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.spec.ts @@ -178,8 +178,8 @@ describe('ItemListPreviewComponent', () => { fixture.detectChanges(); }); - it('should show the entity type span', () => { - const entityField = fixture.debugElement.query(By.css('ds-type-badge')); + it('should show the badges', () => { + const entityField = fixture.debugElement.query(By.css('ds-themed-badges')); expect(entityField).not.toBeNull(); }); }); diff --git a/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.ts b/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.ts index 39f83bc371..3195fad0f2 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.ts +++ b/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.ts @@ -2,12 +2,10 @@ import { Component, Inject, Input, OnInit } from '@angular/core'; import { Item } from '../../../../core/shared/item.model'; import { fadeInOut } from '../../../animations/fade'; -import { - MyDspaceItemStatusType -} from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { SearchResult } from '../../../search/models/search-result.model'; import { APP_CONFIG, AppConfig } from '../../../../../config/app-config.interface'; import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service'; +import { Context } from 'src/app/core/shared/context.model'; import { WorkflowItem } from 'src/app/core/submission/models/workflowitem.model'; /** @@ -32,9 +30,9 @@ export class ItemListPreviewComponent implements OnInit { @Input() object: SearchResult; /** - * Represent item's status + * Represents the badge context */ - @Input() status: MyDspaceItemStatusType; + @Input() badgeContext: Context; /** * A boolean representing if to show submitter information diff --git a/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/themed-item-list-preview.component.ts b/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/themed-item-list-preview.component.ts index 9166e42040..fc50b49d51 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/themed-item-list-preview.component.ts +++ b/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/themed-item-list-preview.component.ts @@ -2,8 +2,8 @@ import { Component, Input } from '@angular/core'; import { ThemedComponent } from '../../../theme-support/themed.component'; import { ItemListPreviewComponent } from './item-list-preview.component'; import { Item } from '../../../../core/shared/item.model'; -import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { SearchResult } from '../../../search/models/search-result.model'; +import { Context } from 'src/app/core/shared/context.model'; import { WorkflowItem } from 'src/app/core/submission/models/workflowitem.model'; /** @@ -15,13 +15,13 @@ import { WorkflowItem } from 'src/app/core/submission/models/workflowitem.model' templateUrl: '../../../theme-support/themed.component.html' }) export class ThemedItemListPreviewComponent extends ThemedComponent { - protected inAndOutputNames: (keyof ItemListPreviewComponent & keyof this)[] = ['item', 'object', 'status', 'showSubmitter', 'workflowItem']; + protected inAndOutputNames: (keyof ItemListPreviewComponent & keyof this)[] = ['item', 'object', 'badgeContext', 'showSubmitter', 'workflowItem']; @Input() item: Item; @Input() object: SearchResult; - @Input() status: MyDspaceItemStatusType; + @Input() badgeContext: Context; @Input() showSubmitter: boolean; diff --git a/src/app/shared/object-list/my-dspace-result-list-element/item-search-result/item-search-result-list-element-submission.component.html b/src/app/shared/object-list/my-dspace-result-list-element/item-search-result/item-search-result-list-element-submission.component.html index b5e9155b81..c1f7098d5f 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/item-search-result/item-search-result-list-element-submission.component.html +++ b/src/app/shared/object-list/my-dspace-result-list-element/item-search-result/item-search-result-list-element-submission.component.html @@ -1,6 +1,6 @@ + [badgeContext]="badgeContext"> diff --git a/src/app/shared/object-list/my-dspace-result-list-element/item-search-result/item-search-result-list-element-submission.component.spec.ts b/src/app/shared/object-list/my-dspace-result-list-element/item-search-result/item-search-result-list-element-submission.component.spec.ts index 1dc221f2ed..a26fbaaf57 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/item-search-result/item-search-result-list-element-submission.component.spec.ts +++ b/src/app/shared/object-list/my-dspace-result-list-element/item-search-result/item-search-result-list-element-submission.component.spec.ts @@ -1,11 +1,10 @@ import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core'; -import { waitForAsync, ComponentFixture, TestBed, fakeAsync, tick } from '@angular/core/testing'; +import { ComponentFixture, fakeAsync, TestBed, tick, waitForAsync } from '@angular/core/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { of as observableOf } from 'rxjs'; import { Item } from '../../../../core/shared/item.model'; -import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { ItemSearchResult } from '../../../object-collection/shared/item-search-result.model'; import { ItemSearchResultListElementSubmissionComponent } from './item-search-result-list-element-submission.component'; import { TruncatableService } from '../../../truncatable/truncatable.service'; @@ -14,6 +13,7 @@ import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service'; import { DSONameServiceMock } from '../../../mocks/dso-name.service.mock'; import { APP_CONFIG } from '../../../../../config/app-config.interface'; import { environment } from '../../../../../environments/environment'; +import { Context } from '../../../../core/shared/context.model'; let component: ItemSearchResultListElementSubmissionComponent; let fixture: ComponentFixture; @@ -77,8 +77,8 @@ describe('ItemMyDSpaceResultListElementComponent', () => { fixture.detectChanges(); }); - it('should have properly status', () => { - expect(component.status).toEqual(MyDspaceItemStatusType.ARCHIVED); + it('should have correct badge context', () => { + expect(component.badgeContext).toEqual(Context.MyDSpaceArchived); }); it('should forward item-actions processComplete event to reloadObject event emitter', fakeAsync(() => { diff --git a/src/app/shared/object-list/my-dspace-result-list-element/item-search-result/item-search-result-list-element-submission.component.ts b/src/app/shared/object-list/my-dspace-result-list-element/item-search-result/item-search-result-list-element-submission.component.ts index 26cbafc102..91c2576dee 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/item-search-result/item-search-result-list-element-submission.component.ts +++ b/src/app/shared/object-list/my-dspace-result-list-element/item-search-result/item-search-result-list-element-submission.component.ts @@ -1,7 +1,6 @@ import { Component, OnInit } from '@angular/core'; import { Item } from '../../../../core/shared/item.model'; -import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { ViewMode } from '../../../../core/shared/view-mode.model'; import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator'; import { Context } from '../../../../core/shared/context.model'; @@ -21,9 +20,10 @@ import { SearchResultListElementComponent } from '../../search-result-list-eleme @listableObjectComponent(ItemSearchResult, ViewMode.ListElement, Context.Workflow) export class ItemSearchResultListElementSubmissionComponent extends SearchResultListElementComponent implements OnInit { /** - * Represent item's status + * Represents the badge context */ - public status = MyDspaceItemStatusType.ARCHIVED; + public badgeContext = Context.MyDSpaceArchived; + /** * Display thumbnails if required by configuration diff --git a/src/app/shared/object-list/my-dspace-result-list-element/pool-search-result/pool-search-result-list-element.component.html b/src/app/shared/object-list/my-dspace-result-list-element/pool-search-result/pool-search-result-list-element.component.html index d863371446..9fe6e37c9e 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/pool-search-result/pool-search-result-list-element.component.html +++ b/src/app/shared/object-list/my-dspace-result-list-element/pool-search-result/pool-search-result-list-element.component.html @@ -2,8 +2,8 @@ + [badgeContext]="badgeContext" + [workflowItem]="workflowitem$.value"> ; @@ -113,8 +118,8 @@ describe('PoolSearchResultListElementComponent', () => { expect(component.item$.value).toEqual(item); })); - it('should have properly status', () => { - expect(component.status).toEqual(MyDspaceItemStatusType.WAITING_CONTROLLER); + it('should have correct badge context', () => { + expect(component.badgeContext).toEqual(Context.MyDSpaceWaitingController); }); it('should forward pool-task-actions processCompleted event to the reloadedObject event emitter', fakeAsync(() => { diff --git a/src/app/shared/object-list/my-dspace-result-list-element/pool-search-result/pool-search-result-list-element.component.ts b/src/app/shared/object-list/my-dspace-result-list-element/pool-search-result/pool-search-result-list-element.component.ts index cb924af40f..b3b3bd2b5a 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/pool-search-result/pool-search-result-list-element.component.ts +++ b/src/app/shared/object-list/my-dspace-result-list-element/pool-search-result/pool-search-result-list-element.component.ts @@ -7,9 +7,6 @@ import { ViewMode } from '../../../../core/shared/view-mode.model'; import { RemoteData } from '../../../../core/data/remote-data'; import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model'; import { PoolTask } from '../../../../core/tasks/models/pool-task-object.model'; -import { - MyDspaceItemStatusType -} from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator'; import { PoolTaskSearchResult } from '../../../object-collection/shared/pool-task-search-result.model'; import { @@ -24,6 +21,7 @@ import { ObjectCacheService } from '../../../../core/cache/object-cache.service' import { getFirstCompletedRemoteData } from '../../../../core/shared/operators'; import { Item } from '../../../../core/shared/item.model'; import { isNotEmpty } from '../../../empty.util'; +import { Context } from '../../../../core/shared/context.model'; /** * This component renders pool task object for the search result in the list view. @@ -43,9 +41,9 @@ export class PoolSearchResultListElementComponent extends SearchResultListElemen public showSubmitter = true; /** - * Represent item's status + * Represents the badge Context */ - public status = MyDspaceItemStatusType.WAITING_CONTROLLER; + public badgeContext = Context.MyDSpaceWaitingController; /** * The item object that belonging to the result object diff --git a/src/app/shared/object-list/my-dspace-result-list-element/workflow-item-search-result/workflow-item-search-result-list-element.component.html b/src/app/shared/object-list/my-dspace-result-list-element/workflow-item-search-result/workflow-item-search-result-list-element.component.html index c3db054f8c..ffc3df53f8 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/workflow-item-search-result/workflow-item-search-result-list-element.component.html +++ b/src/app/shared/object-list/my-dspace-result-list-element/workflow-item-search-result/workflow-item-search-result-list-element.component.html @@ -1,12 +1,8 @@ - - - - - + [object]="derivedSearchResult$ | async" [linkType]="LinkTypes.None" + [context]="badgeContext"> diff --git a/src/app/shared/object-list/my-dspace-result-list-element/workflow-item-search-result/workflow-item-search-result-list-element.component.spec.ts b/src/app/shared/object-list/my-dspace-result-list-element/workflow-item-search-result/workflow-item-search-result-list-element.component.spec.ts index 576b103ea7..52a13a69e1 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/workflow-item-search-result/workflow-item-search-result-list-element.component.spec.ts +++ b/src/app/shared/object-list/my-dspace-result-list-element/workflow-item-search-result/workflow-item-search-result-list-element.component.spec.ts @@ -10,7 +10,6 @@ import { ItemDataService } from '../../../../core/data/item-data.service'; import { Item } from '../../../../core/shared/item.model'; import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model'; import { getMockLinkService } from '../../../mocks/link-service.mock'; -import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { WorkflowItemSearchResult } from '../../../object-collection/shared/workflow-item-search-result.model'; import { createSuccessfulRemoteDataObject } from '../../../remote-data.utils'; import { TruncatableService } from '../../../truncatable/truncatable.service'; @@ -19,6 +18,7 @@ import { By } from '@angular/platform-browser'; import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service'; import { DSONameServiceMock } from '../../../mocks/dso-name.service.mock'; import { APP_CONFIG } from '../../../../../config/app-config.interface'; +import { Context } from '../../../../core/shared/context.model'; let component: WorkflowItemSearchResultListElementComponent; let fixture: ComponentFixture; @@ -105,8 +105,8 @@ describe('WorkflowItemSearchResultListElementComponent', () => { }); }); - it('should have properly status', () => { - expect(component.status).toEqual(MyDspaceItemStatusType.WORKFLOW); + it('should have the correct badge context', () => { + expect(component.badgeContext).toEqual(Context.MyDSpaceWorkflow); }); it('should forward workflowitem-actions processCompleted event to the reloadedObject event emitter', fakeAsync(() => { diff --git a/src/app/shared/object-list/my-dspace-result-list-element/workflow-item-search-result/workflow-item-search-result-list-element.component.ts b/src/app/shared/object-list/my-dspace-result-list-element/workflow-item-search-result/workflow-item-search-result-list-element.component.ts index 11d4e18137..eab8a34f2f 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/workflow-item-search-result/workflow-item-search-result-list-element.component.ts +++ b/src/app/shared/object-list/my-dspace-result-list-element/workflow-item-search-result/workflow-item-search-result-list-element.component.ts @@ -8,7 +8,6 @@ import { Item } from '../../../../core/shared/item.model'; import { ViewMode } from '../../../../core/shared/view-mode.model'; import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model'; import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator'; -import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { WorkflowItemSearchResult } from '../../../object-collection/shared/workflow-item-search-result.model'; import { TruncatableService } from '../../../truncatable/truncatable.service'; import { followLink } from '../../../utils/follow-link-config.model'; @@ -18,6 +17,7 @@ import { APP_CONFIG, AppConfig } from '../../../../../config/app-config.interfac import { getFirstSucceededRemoteDataPayload } from '../../../../core/shared/operators'; import { ItemSearchResult } from '../../../object-collection/shared/item-search-result.model'; import { CollectionElementLinkType } from '../../../object-collection/collection-element-link.type'; +import { Context } from '../../../../core/shared/context.model'; /** * This component renders workflowitem object for the search result in the list view. @@ -40,9 +40,9 @@ export class WorkflowItemSearchResultListElementComponent extends SearchResultLi derivedSearchResult$: Observable; /** - * Represent item's status + * Represents the badge context */ - public status = MyDspaceItemStatusType.WORKFLOW; + public badgeContext = Context.MyDSpaceWorkflow; /** * Display thumbnails if required by configuration diff --git a/src/app/shared/object-list/my-dspace-result-list-element/workspace-item-search-result/workspace-item-search-result-list-element.component.html b/src/app/shared/object-list/my-dspace-result-list-element/workspace-item-search-result/workspace-item-search-result-list-element.component.html index 4e86132df6..724db2892d 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/workspace-item-search-result/workspace-item-search-result-list-element.component.html +++ b/src/app/shared/object-list/my-dspace-result-list-element/workspace-item-search-result/workspace-item-search-result-list-element.component.html @@ -1,12 +1,8 @@ - - - - - + [object]="derivedSearchResult$ | async" [linkType]="LinkTypes.None" + [context]="badgeContext"> diff --git a/src/app/shared/object-list/my-dspace-result-list-element/workspace-item-search-result/workspace-item-search-result-list-element.component.spec.ts b/src/app/shared/object-list/my-dspace-result-list-element/workspace-item-search-result/workspace-item-search-result-list-element.component.spec.ts index 2d64b1b581..54344bb879 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/workspace-item-search-result/workspace-item-search-result-list-element.component.spec.ts +++ b/src/app/shared/object-list/my-dspace-result-list-element/workspace-item-search-result/workspace-item-search-result-list-element.component.spec.ts @@ -1,5 +1,5 @@ import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core'; -import { waitForAsync, ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing'; +import { ComponentFixture, fakeAsync, TestBed, tick, waitForAsync } from '@angular/core/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { of as observableOf } from 'rxjs'; @@ -10,7 +10,6 @@ import { ItemDataService } from '../../../../core/data/item-data.service'; import { Item } from '../../../../core/shared/item.model'; import { WorkspaceItem } from '../../../../core/submission/models/workspaceitem.model'; import { getMockLinkService } from '../../../mocks/link-service.mock'; -import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { WorkflowItemSearchResult } from '../../../object-collection/shared/workflow-item-search-result.model'; import { createSuccessfulRemoteDataObject } from '../../../remote-data.utils'; import { TruncatableService } from '../../../truncatable/truncatable.service'; @@ -19,6 +18,7 @@ import { By } from '@angular/platform-browser'; import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service'; import { DSONameServiceMock } from '../../../mocks/dso-name.service.mock'; import { APP_CONFIG } from '../../../../../config/app-config.interface'; +import { Context } from '../../../../core/shared/context.model'; let component: WorkspaceItemSearchResultListElementComponent; let fixture: ComponentFixture; @@ -104,8 +104,8 @@ describe('WorkspaceItemSearchResultListElementComponent', () => { }); }); - it('should have properly status', () => { - expect(component.status).toEqual(MyDspaceItemStatusType.WORKSPACE); + it('should have correct badge context', () => { + expect(component.badgeContext).toEqual(Context.MyDSpaceWorkspace); }); it('should forward workspaceitem-actions processCompleted event to the reloadedObject event emitter', fakeAsync(() => { diff --git a/src/app/shared/object-list/my-dspace-result-list-element/workspace-item-search-result/workspace-item-search-result-list-element.component.ts b/src/app/shared/object-list/my-dspace-result-list-element/workspace-item-search-result/workspace-item-search-result-list-element.component.ts index 08ac896035..f08474cb34 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/workspace-item-search-result/workspace-item-search-result-list-element.component.ts +++ b/src/app/shared/object-list/my-dspace-result-list-element/workspace-item-search-result/workspace-item-search-result-list-element.component.ts @@ -7,7 +7,6 @@ import { Item } from '../../../../core/shared/item.model'; import { ViewMode } from '../../../../core/shared/view-mode.model'; import { WorkspaceItem } from '../../../../core/submission/models/workspaceitem.model'; import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator'; -import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { WorkspaceItemSearchResult } from '../../../object-collection/shared/workspace-item-search-result.model'; import { TruncatableService } from '../../../truncatable/truncatable.service'; import { SearchResultListElementComponent } from '../../search-result-list-element/search-result-list-element.component'; @@ -18,6 +17,7 @@ import { map } from 'rxjs/operators'; import { getFirstSucceededRemoteDataPayload } from '../../../../core/shared/operators'; import { CollectionElementLinkType } from '../../../object-collection/collection-element-link.type'; import { followLink } from '../../../utils/follow-link-config.model'; +import { Context } from '../../../../core/shared/context.model'; /** * This component renders workspaceitem object for the search result in the list view. @@ -40,9 +40,9 @@ export class WorkspaceItemSearchResultListElementComponent extends SearchResult derivedSearchResult$: Observable; /** - * Represent item's status + * Represents the badge context */ - status = MyDspaceItemStatusType.WORKSPACE; + public badgeContext = Context.MyDSpaceWorkspace; /** * Display thumbnails if required by configuration diff --git a/src/app/shared/object-list/search-result-list-element/collection-search-result/collection-search-result-list-element.component.html b/src/app/shared/object-list/search-result-list-element/collection-search-result/collection-search-result-list-element.component.html index 83a8f4fdfa..6856c63cce 100644 --- a/src/app/shared/object-list/search-result-list-element/collection-search-result/collection-search-result-list-element.component.html +++ b/src/app/shared/object-list/search-result-list-element/collection-search-result/collection-search-result-list-element.component.html @@ -1,7 +1,7 @@ - + diff --git a/src/app/shared/object-list/search-result-list-element/community-search-result/community-search-result-list-element.component.html b/src/app/shared/object-list/search-result-list-element/community-search-result/community-search-result-list-element.component.html index 22be357a53..037b62e736 100644 --- a/src/app/shared/object-list/search-result-list-element/community-search-result/community-search-result-list-element.component.html +++ b/src/app/shared/object-list/search-result-list-element/community-search-result/community-search-result-list-element.component.html @@ -1,7 +1,7 @@ - + diff --git a/src/app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component.html b/src/app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component.html index 2b643aed9d..88d6ab6e07 100644 --- a/src/app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component.html +++ b/src/app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component.html @@ -12,8 +12,7 @@ - - + diff --git a/src/app/shared/search/search-filters/themed-search-filters.component.ts b/src/app/shared/search/search-filters/themed-search-filters.component.ts new file mode 100644 index 0000000000..a9a9c10e51 --- /dev/null +++ b/src/app/shared/search/search-filters/themed-search-filters.component.ts @@ -0,0 +1,38 @@ +import { Component, Input } from '@angular/core'; +import { ThemedComponent } from '../../theme-support/themed.component'; +import { SearchFiltersComponent } from './search-filters.component'; +import { Observable } from 'rxjs/internal/Observable'; +import { RemoteData } from '../../../core/data/remote-data'; +import { SearchFilterConfig } from '../models/search-filter-config.model'; + +/** + * Themed wrapper for SearchFiltersComponent + */ +@Component({ + selector: 'ds-themed-search-filters', + styleUrls: [], + templateUrl: '../../theme-support/themed.component.html', +}) +export class ThemedSearchFiltersComponent extends ThemedComponent { + + @Input() currentConfiguration; + @Input() currentScope: string; + @Input() inPlaceSearch; + @Input() refreshFilters: Observable; + @Input() filters: Observable>; + + protected inAndOutputNames: (keyof SearchFiltersComponent & keyof this)[] = [ + 'filters', 'currentConfiguration', 'currentScope', 'inPlaceSearch', 'refreshFilters']; + + protected getComponentName(): string { + return 'SearchFiltersComponent'; + } + + protected importThemedComponent(themeName: string): Promise { + return import(`../../../../themes/${themeName}/app/shared/search/search-filters/search-filters.component`); + } + + protected importUnthemedComponent(): Promise { + return import('./search-filters.component'); + } +} diff --git a/src/app/shared/search/search-sidebar/search-sidebar.component.html b/src/app/shared/search/search-sidebar/search-sidebar.component.html index 59d84ee383..f489de5d28 100644 --- a/src/app/shared/search/search-sidebar/search-sidebar.component.html +++ b/src/app/shared/search/search-sidebar/search-sidebar.component.html @@ -17,11 +17,11 @@ [defaultConfiguration]="configuration" [inPlaceSearch]="inPlaceSearch" (changeConfiguration)="changeConfiguration.emit($event)"> - + [inPlaceSearch]="inPlaceSearch"> diff --git a/src/app/shared/search/search-sidebar/themed-search-sidebar.component.ts b/src/app/shared/search/search-sidebar/themed-search-sidebar.component.ts new file mode 100644 index 0000000000..935f797532 --- /dev/null +++ b/src/app/shared/search/search-sidebar/themed-search-sidebar.component.ts @@ -0,0 +1,54 @@ +import { Component, EventEmitter, Input, Output } from '@angular/core'; +import { ThemedComponent } from '../../theme-support/themed.component'; +import { SearchSidebarComponent } from './search-sidebar.component'; +import { SearchConfigurationOption } from '../search-switch-configuration/search-configuration-option.model'; +import { SortOptions } from '../../../core/cache/models/sort-options.model'; +import { ViewMode } from '../../../core/shared/view-mode.model'; +import { PaginatedSearchOptions } from '../models/paginated-search-options.model'; +import { BehaviorSubject, Observable } from 'rxjs'; +import { RemoteData } from '../../../core/data/remote-data'; +import { SearchFilterConfig } from '../models/search-filter-config.model'; + +/** + * Themed wrapper for SearchSidebarComponent + */ +@Component({ + selector: 'ds-themed-search-sidebar', + styleUrls: [], + templateUrl: '../../theme-support/themed.component.html', +}) +export class ThemedSearchSidebarComponent extends ThemedComponent { + + @Input() configuration; + @Input() configurationList: SearchConfigurationOption[]; + @Input() currentScope: string; + @Input() currentSortOption: SortOptions; + @Input() filters: Observable>; + @Input() resultCount; + @Input() viewModeList: ViewMode[]; + @Input() showViewModes = true; + @Input() inPlaceSearch; + @Input() searchOptions: PaginatedSearchOptions; + @Input() sortOptionsList: SortOptions[]; + @Input() refreshFilters: BehaviorSubject; + @Output() toggleSidebar = new EventEmitter(); + @Output() changeConfiguration: EventEmitter = new EventEmitter(); + @Output() changeViewMode: EventEmitter = new EventEmitter(); + + protected inAndOutputNames: (keyof SearchSidebarComponent & keyof this)[] = [ + 'configuration', 'configurationList', 'currentScope', 'currentSortOption', + 'resultCount', 'filters', 'viewModeList', 'showViewModes', 'inPlaceSearch', + 'searchOptions', 'sortOptionsList', 'refreshFilters', 'toggleSidebar', 'changeConfiguration', 'changeViewMode']; + + protected getComponentName(): string { + return 'SearchSidebarComponent'; + } + + protected importThemedComponent(themeName: string): Promise { + return import(`../../../../themes/${themeName}/app/shared/search/search-sidebar/search-sidebar.component`); + } + + protected importUnthemedComponent(): Promise { + return import('./search-sidebar.component'); + } +} diff --git a/src/app/shared/search/search.component.html b/src/app/shared/search/search.component.html index 24a5949bc4..d43f506866 100644 --- a/src/app/shared/search/search.component.html +++ b/src/app/shared/search/search.component.html @@ -47,7 +47,7 @@ - - + - + diff --git a/src/app/shared/search/search.module.ts b/src/app/shared/search/search.module.ts index 713b9925a6..69500999a8 100644 --- a/src/app/shared/search/search.module.ts +++ b/src/app/shared/search/search.module.ts @@ -32,6 +32,8 @@ import { ThemedSearchComponent } from './themed-search.component'; import { ThemedSearchResultsComponent } from './search-results/themed-search-results.component'; import { ThemedSearchSettingsComponent } from './search-settings/themed-search-settings.component'; import { NouisliderModule } from 'ng2-nouislider'; +import { ThemedSearchFiltersComponent } from './search-filters/themed-search-filters.component'; +import { ThemedSearchSidebarComponent } from './search-sidebar/themed-search-sidebar.component'; const COMPONENTS = [ SearchComponent, @@ -58,6 +60,8 @@ const COMPONENTS = [ ThemedConfigurationSearchPageComponent, ThemedSearchResultsComponent, ThemedSearchSettingsComponent, + ThemedSearchFiltersComponent, + ThemedSearchSidebarComponent, ]; const ENTRY_COMPONENTS = [ diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index e64e440f2d..70adeae8f4 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -164,8 +164,8 @@ import { DsoInputSuggestionsComponent } from './input-suggestions/dso-input-suggestions/dso-input-suggestions.component'; import { ItemGridElementComponent } from './object-grid/item-grid-element/item-types/item/item-grid-element.component'; -import { TypeBadgeComponent } from './object-list/type-badge/type-badge.component'; -import { AccessStatusBadgeComponent } from './object-list/access-status-badge/access-status-badge.component'; +import { TypeBadgeComponent } from './object-collection/shared/badges/type-badge/type-badge.component'; +import { AccessStatusBadgeComponent } from './object-collection/shared/badges/access-status-badge/access-status-badge.component'; import { MetadataRepresentationLoaderComponent } from './metadata-representation/metadata-representation-loader.component'; @@ -251,6 +251,16 @@ import { } from './object-list/listable-notification-object/listable-notification-object.component'; import { ThemedCollectionDropdownComponent } from './collection-dropdown/themed-collection-dropdown.component'; import { MetadataFieldWrapperComponent } from './metadata-field-wrapper/metadata-field-wrapper.component'; + +import { StatusBadgeComponent } from './object-collection/shared/badges/status-badge/status-badge.component'; +import { BadgesComponent } from './object-collection/shared/badges/badges.component'; +import { ThemedBadgesComponent } from './object-collection/shared/badges/themed-badges.component'; +import { ThemedStatusBadgeComponent } from './object-collection/shared/badges/status-badge/themed-status-badge.component'; +import { ThemedTypeBadgeComponent } from './object-collection/shared/badges/type-badge/themed-type-badge.component'; +import { ThemedMyDSpaceStatusBadgeComponent } from './object-collection/shared/badges/my-dspace-status-badge/themed-my-dspace-status-badge.component'; +import { ThemedAccessStatusBadgeComponent } from './object-collection/shared/badges/access-status-badge/themed-access-status-badge.component'; +import { MyDSpaceStatusBadgeComponent } from './object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component'; + import { ShortNumberPipe } from './utils/short-number.pipe'; import { LogInExternalProviderComponent @@ -341,6 +351,8 @@ const COMPONENTS = [ PageWithSidebarComponent, SidebarDropdownComponent, ThumbnailComponent, + MyDSpaceStatusBadgeComponent, + ThemedMyDSpaceStatusBadgeComponent, ViewModeSwitchComponent, TruncatableComponent, TruncatablePartComponent, @@ -356,6 +368,13 @@ const COMPONENTS = [ ComcolMetadataComponent, TypeBadgeComponent, AccessStatusBadgeComponent, + ThemedAccessStatusBadgeComponent, + ThemedTypeBadgeComponent, + StatusBadgeComponent, + ThemedStatusBadgeComponent, + BadgesComponent, + ThemedBadgesComponent, + ItemSelectComponent, CollectionSelectComponent, MetadataRepresentationLoaderComponent, diff --git a/src/app/shared/subscriptions/subscription-modal/subscription-modal.component.html b/src/app/shared/subscriptions/subscription-modal/subscription-modal.component.html index a71498f002..ca5ec60406 100644 --- a/src/app/shared/subscriptions/subscription-modal/subscription-modal.component.html +++ b/src/app/shared/subscriptions/subscription-modal/subscription-modal.component.html @@ -7,7 +7,7 @@ {{dso.name}} - + diff --git a/src/app/shared/subscriptions/subscription-view/subscription-view.component.html b/src/app/shared/subscriptions/subscription-view/subscription-view.component.html index 1b3b0b54b7..8a533e0260 100644 --- a/src/app/shared/subscriptions/subscription-view/subscription-view.component.html +++ b/src/app/shared/subscriptions/subscription-view/subscription-view.component.html @@ -1,6 +1,6 @@ - + {{dso.name}} diff --git a/src/app/shared/subscriptions/subscription-view/subscription-view.component.spec.ts b/src/app/shared/subscriptions/subscription-view/subscription-view.component.spec.ts index aa40f2bf43..aefdb5772b 100644 --- a/src/app/shared/subscriptions/subscription-view/subscription-view.component.spec.ts +++ b/src/app/shared/subscriptions/subscription-view/subscription-view.component.spec.ts @@ -6,8 +6,7 @@ import { ReactiveFormsModule } from '@angular/forms'; import { BrowserModule, By } from '@angular/platform-browser'; import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; import { TranslateLoader, TranslateModule } from '@ngx-translate/core'; -import { SharedModule } from '../../shared.module'; -import { DebugElement } from '@angular/core'; +import { DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; import { RouterTestingModule } from '@angular/router/testing'; import { SubscriptionViewComponent } from './subscription-view.component'; @@ -61,7 +60,6 @@ describe('SubscriptionViewComponent', () => { ReactiveFormsModule, BrowserModule, RouterTestingModule, - SharedModule, TranslateModule.forRoot({ loader: { provide: TranslateLoader, @@ -74,7 +72,8 @@ describe('SubscriptionViewComponent', () => { { provide: ComponentFixtureAutoDetect, useValue: true }, { provide: NotificationsService, useValue: NotificationsServiceStub }, { provide: SubscriptionsDataService, useValue: subscriptionServiceStub }, - ] + ], + schemas: [NO_ERRORS_SCHEMA] }) .compileComponents(); }); @@ -94,7 +93,7 @@ describe('SubscriptionViewComponent', () => { }); it('should have dso object info', () => { - expect(de.query(By.css('.dso-info > ds-type-badge'))).toBeTruthy(); + expect(de.query(By.css('.dso-info > ds-themed-type-badge'))).toBeTruthy(); expect(de.query(By.css('.dso-info > p > a'))).toBeTruthy(); }); diff --git a/src/app/shared/view-mode-switch/view-mode-switch.component.html b/src/app/shared/view-mode-switch/view-mode-switch.component.html index 5f70bc699c..45d219eb91 100644 --- a/src/app/shared/view-mode-switch/view-mode-switch.component.html +++ b/src/app/shared/view-mode-switch/view-mode-switch.component.html @@ -1,5 +1,5 @@ - - - - {{'search.view-switch.show-list' | translate}} + + - - - {{'search.view-switch.show-grid' | translate}} + + - - + {{'search.view-switch.show-detail' | translate}} + diff --git a/src/app/shared/view-mode-switch/view-mode-switch.component.spec.ts b/src/app/shared/view-mode-switch/view-mode-switch.component.spec.ts index 5780ea5cf3..248a843316 100644 --- a/src/app/shared/view-mode-switch/view-mode-switch.component.spec.ts +++ b/src/app/shared/view-mode-switch/view-mode-switch.component.spec.ts @@ -61,7 +61,7 @@ describe('ViewModeSwitchComponent', () => { searchService.setViewMode(ViewMode.ListElement); tick(); fixture.detectChanges(); - const debugElements = fixture.debugElement.queryAll(By.css('a')); + const debugElements = fixture.debugElement.queryAll(By.css('button')); listButton = debugElements[0].nativeElement; gridButton = debugElements[1].nativeElement; })); @@ -96,7 +96,7 @@ describe('ViewModeSwitchComponent', () => { searchService.setViewMode(ViewMode.ListElement); tick(); fixture.detectChanges(); - const debugElements = fixture.debugElement.queryAll(By.css('a')); + const debugElements = fixture.debugElement.queryAll(By.css('button')); listButton = debugElements[0].nativeElement; detailButton = debugElements[1].nativeElement; })); diff --git a/src/app/submission/sections/license/section-license.component.html b/src/app/submission/sections/license/section-license.component.html index 5ee8a2db6b..ed10203596 100644 --- a/src/app/submission/sections/license/section-license.component.html +++ b/src/app/submission/sections/license/section-license.component.html @@ -1,4 +1,4 @@ - + \"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": "Questo gruppo non può essere modificato o eliminato perché corrisponde a un ruolo nella submission e processo del workflow nel \"{{name}}\" {{comcol}}. Puoi eliminarlo dal Tab \"assegna ruoli\" nella pagina di modifica {{comcol}}. Puoi ancora aggiungere e rimuovere membri del gruppo da questa pagina.", + + // "admin.access-control.groups.form.head.create": "Create group", + "admin.access-control.groups.form.head.create": "Crea gruppo", + + // "admin.access-control.groups.form.head.edit": "Edit group", + "admin.access-control.groups.form.head.edit": "Modifica gruppo", + + // "admin.access-control.groups.form.groupName": "Group name", + "admin.access-control.groups.form.groupName": "Nome del gruppo", + + // "admin.access-control.groups.form.groupCommunity": "Community or Collection", + "admin.access-control.groups.form.groupCommunity": "Community o collection", + + // "admin.access-control.groups.form.groupDescription": "Description", + "admin.access-control.groups.form.groupDescription": "Descrizione", + + // "admin.access-control.groups.form.notification.created.success": "Successfully created Group \"{{name}}\"", + "admin.access-control.groups.form.notification.created.success": "Gruppo creato con successo \"{{name}}\"", + + // "admin.access-control.groups.form.notification.created.failure": "Failed to create Group \"{{name}}\"", + "admin.access-control.groups.form.notification.created.failure": "Impossibile creare il gruppo \"{{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": "Impossibile creare il Gruppo con nome: \"{{name}}\", assicurarsi che il nome non sia già in uso.", + + // "admin.access-control.groups.form.notification.edited.failure": "Failed to edit Group \"{{name}}\"", + "admin.access-control.groups.form.notification.edited.failure": "Impossibile modificare il gruppo \"{{name}}\"", + + // "admin.access-control.groups.form.notification.edited.failure.groupNameInUse": "Name \"{{name}}\" already in use!", + "admin.access-control.groups.form.notification.edited.failure.groupNameInUse": "Nome \"{{name}}\" già in uso!", + + // "admin.access-control.groups.form.notification.edited.success": "Successfully edited Group \"{{name}}\"", + "admin.access-control.groups.form.notification.edited.success": "Gruppo modificato correttamente \"{{name}}\"", + + // "admin.access-control.groups.form.actions.delete": "Delete Group", + "admin.access-control.groups.form.actions.delete": "Elimina gruppo", + + // "admin.access-control.groups.form.delete-group.modal.header": "Delete Group \"{{ dsoName }}\"", + "admin.access-control.groups.form.delete-group.modal.header": "Elimina gruppo \"{{ 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": "Sei sicuro di voler eliminare gruppo \"{{ dsoName }}\"", + + // "admin.access-control.groups.form.delete-group.modal.cancel": "Cancel", + "admin.access-control.groups.form.delete-group.modal.cancel": "Annulla", + + // "admin.access-control.groups.form.delete-group.modal.confirm": "Delete", + "admin.access-control.groups.form.delete-group.modal.confirm": "Cancellare", + + // "admin.access-control.groups.form.notification.deleted.success": "Successfully deleted group \"{{ name }}\"", + "admin.access-control.groups.form.notification.deleted.success": "Gruppo eliminato con successo \"{{ name }}\"", + + // "admin.access-control.groups.form.notification.deleted.failure.title": "Failed to delete group \"{{ name }}\"", + "admin.access-control.groups.form.notification.deleted.failure.title": "Impossibile eliminare il gruppo \"{{ 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": "EPeople", + + // "admin.access-control.groups.form.members-list.search.head": "Add EPeople", + "admin.access-control.groups.form.members-list.search.head": "Aggiungi EPeople", + + // "admin.access-control.groups.form.members-list.button.see-all": "Browse All", + "admin.access-control.groups.form.members-list.button.see-all": "Sfoglia tutto", + + // "admin.access-control.groups.form.members-list.headMembers": "Current Members", + "admin.access-control.groups.form.members-list.headMembers": "Membri attuali", + + // "admin.access-control.groups.form.members-list.search.scope.metadata": "Metadata", + "admin.access-control.groups.form.members-list.search.scope.metadata": "Metadati", + + // "admin.access-control.groups.form.members-list.search.scope.email": "E-mail (exact)", + "admin.access-control.groups.form.members-list.search.scope.email": "E-mail (esatta)", + + // "admin.access-control.groups.form.members-list.search.button": "Search", + "admin.access-control.groups.form.members-list.search.button": "Ricerca", + + // "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": "Nome", + + // "admin.access-control.groups.form.members-list.table.identity": "Identity", + "admin.access-control.groups.form.members-list.table.identity": "Identità", + + // "admin.access-control.groups.form.members-list.table.email": "Email", + "admin.access-control.groups.form.members-list.table.email": "E-mail", + + // "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": "Rimuovi / Aggiungi", + + // "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": "Rimuovi membro con nome \"{{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": "Membro aggiunto con successo: \"{{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": "Impossibile aggiungere il membro: \"{{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": "Membro eliminato con successo: \"{{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": "Impossibile eliminare il membro: \"{{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": "Aggiungi membro con nome \"{{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": "Nessun gruppo corrente attivo, invia prima un nome.", + + // "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": "Ancora nessun membro del gruppo, cercali e aggiungili.", + + // "admin.access-control.groups.form.members-list.no-items": "No EPeople found in that search", + "admin.access-control.groups.form.members-list.no-items": "Nessun EPeople trovato in quella ricerca", + + // "admin.access-control.groups.form.subgroups-list.notification.failure": "Something went wrong: \"{{cause}}\"", + "admin.access-control.groups.form.subgroups-list.notification.failure": "Qualcosa è andato storto: \"{{cause}}\"", + + // "admin.access-control.groups.form.subgroups-list.head": "Groups", + "admin.access-control.groups.form.subgroups-list.head": "Gruppi", + + // "admin.access-control.groups.form.subgroups-list.search.head": "Add Subgroup", + "admin.access-control.groups.form.subgroups-list.search.head": "Aggiungi sottogruppo", + + // "admin.access-control.groups.form.subgroups-list.button.see-all": "Browse All", + "admin.access-control.groups.form.subgroups-list.button.see-all": "Sfoglia tutto", + + // "admin.access-control.groups.form.subgroups-list.headSubgroups": "Current Subgroups", + "admin.access-control.groups.form.subgroups-list.headSubgroups": "Sottogruppi attuali", + + // "admin.access-control.groups.form.subgroups-list.search.button": "Search", + "admin.access-control.groups.form.subgroups-list.search.button": "Ricerca", + + // "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": "Nome", + + // "admin.access-control.groups.form.subgroups-list.table.collectionOrCommunity": "Collection/Community", + "admin.access-control.groups.form.subgroups-list.table.collectionOrCommunity": "collection/Community", + + // "admin.access-control.groups.form.subgroups-list.table.edit": "Remove / Add", + "admin.access-control.groups.form.subgroups-list.table.edit": "Rimuovi / Aggiungi", + + // "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": "Rimuovi sottogruppo con nome \"{{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": "Aggiungi sottogruppo con nome \"{{name}}\"", + + // "admin.access-control.groups.form.subgroups-list.table.edit.currentGroup": "Current group", + "admin.access-control.groups.form.subgroups-list.table.edit.currentGroup": "Gruppo attuale", + + // "admin.access-control.groups.form.subgroups-list.notification.success.addSubgroup": "Successfully added subgroup: \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.notification.success.addSubgroup": "Sottogruppo aggiunto con successo: \"{{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": "Impossibile aggiungere il sottogruppo: \"{{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": "Sottogruppo eliminato con successo: \"{{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": "Impossibile eliminare il sottogruppo: \"{{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": "Al momento nessun gruppo attivo, invia prima un nome.", + + // "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": "Questo è il gruppo corrente, non può essere aggiunto.", + + // "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": "Nessun gruppo trovato con questo nel loro nome o questo come 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": "Nessun sottogruppo ancora nel gruppo.", + + // "admin.access-control.groups.form.return": "Back", + "admin.access-control.groups.form.return": "Indietro", + + // "admin.access-control.groups.form.tooltip.editGroupPage": "On this page, you can modify the properties and members of a group. In the top section, you can edit the group name and description, unless this is an admin group for a collection or community, in which case the group name and description are auto-generated and cannot be edited. In the following sections, you can edit group membership. See [the wiki](https://wiki.lyrasis.org/display/DSDOC7x/Create+or+manage+a+user+group) for more details.", + // TODO New key - Add a translation + "admin.access-control.groups.form.tooltip.editGroupPage": "On this page, you can modify the properties and members of a group. In the top section, you can edit the group name and description, unless this is an admin group for a collection or community, in which case the group name and description are auto-generated and cannot be edited. In the following sections, you can edit group membership. See [the wiki](https://wiki.lyrasis.org/display/DSDOC7x/Create+or+manage+a+user+group) for more details.", + + // "admin.access-control.groups.form.tooltip.editGroup.addEpeople": "To add or remove an EPerson to/from this group, either click the 'Browse All' button or use the search bar below to search for users (use the dropdown to the left of the search bar to choose whether to search by metadata or by email). Then click the plus icon for each user you wish to add in the list below, or the trash can icon for each user you wish to remove. The list below may have several pages: use the page controls below the list to navigate to the next pages. Once you are ready, save your changes by clicking the 'Save' button in the top section.", + // TODO New key - Add a translation + "admin.access-control.groups.form.tooltip.editGroup.addEpeople": "To add or remove an EPerson to/from this group, either click the 'Browse All' button or use the search bar below to search for users (use the dropdown to the left of the search bar to choose whether to search by metadata or by email). Then click the plus icon for each user you wish to add in the list below, or the trash can icon for each user you wish to remove. The list below may have several pages: use the page controls below the list to navigate to the next pages. Once you are ready, save your changes by clicking the 'Save' button in the top section.", + + // "admin.access-control.groups.form.tooltip.editGroup.addSubgroups": "To add or remove a Subgroup to/from this group, either click the 'Browse All' button or use the search bar below to search for users. Then click the plus icon for each user you wish to add in the list below, or the trash can icon for each user you wish to remove. The list below may have several pages: use the page controls below the list to navigate to the next pages. Once you are ready, save your changes by clicking the 'Save' button in the top section.", + // TODO New key - Add a translation + "admin.access-control.groups.form.tooltip.editGroup.addSubgroups": "To add or remove a Subgroup to/from this group, either click the 'Browse All' button or use the search bar below to search for users. Then click the plus icon for each user you wish to add in the list below, or the trash can icon for each user you wish to remove. The list below may have several pages: use the page controls below the list to navigate to the next pages. Once you are ready, save your changes by clicking the 'Save' button in the top section.", + + // "admin.search.breadcrumbs": "Administrative Search", + "admin.search.breadcrumbs": "Ricerca amministrativa", + + // "admin.search.collection.edit": "Edit", + "admin.search.collection.edit": "Editare", + + // "admin.search.community.edit": "Edit", + "admin.search.community.edit": "Editare", + + // "admin.search.item.delete": "Delete", + "admin.search.item.delete": "Cancellare", + + // "admin.search.item.edit": "Edit", + "admin.search.item.edit": "Editare", + + // "admin.search.item.make-private": "Make non-discoverable", + "admin.search.item.make-private": "Rendi privato", + + // "admin.search.item.make-public": "Make discoverable", + "admin.search.item.make-public": "Rendi pubblico", + + // "admin.search.item.move": "Move", + "admin.search.item.move": "Sposta", + + // "admin.search.item.reinstate": "Reinstate", + "admin.search.item.reinstate": "Reintegrare", + + // "admin.search.item.withdraw": "Withdraw", + "admin.search.item.withdraw": "Ritirare", + + // "admin.search.title": "Administrative Search", + "admin.search.title": "Ricerca amministrativa", + + // "administrativeView.search.results.head": "Administrative Search", + "administrativeView.search.results.head": "Ricerca amministrativa", + + + + + // "admin.workflow.breadcrumbs": "Administer Workflow", + "admin.workflow.breadcrumbs": "Amministrare il flusso di lavoro", + + // "admin.workflow.title": "Administer Workflow", + "admin.workflow.title": "Amministrare il flusso di lavoro", + + // "admin.workflow.item.workflow": "Workflow", + "admin.workflow.item.workflow": "Flusso di lavoro", + + // "admin.workflow.item.workspace": "Workspace", + // TODO New key - Add a translation + "admin.workflow.item.workspace": "Workspace", + + // "admin.workflow.item.delete": "Delete", + "admin.workflow.item.delete": "Cancellare", + + // "admin.workflow.item.send-back": "Send back", + "admin.workflow.item.send-back": "Rinviare", + + // "admin.workflow.item.policies": "Policies", + // TODO New key - Add a translation + "admin.workflow.item.policies": "Policies", + + // "admin.workflow.item.supervision": "Supervision", + // TODO New key - Add a translation + "admin.workflow.item.supervision": "Supervision", + + + + // "admin.metadata-import.breadcrumbs": "Import Metadata", + "admin.metadata-import.breadcrumbs": "Importare metadati", + + // "admin.batch-import.breadcrumbs": "Import Batch", + // TODO New key - Add a translation + "admin.batch-import.breadcrumbs": "Import Batch", + + // "admin.metadata-import.title": "Import Metadata", + "admin.metadata-import.title": "Importare metadati", + + // "admin.batch-import.title": "Import Batch", + // TODO New key - Add a translation + "admin.batch-import.title": "Import Batch", + + // "admin.metadata-import.page.header": "Import Metadata", + "admin.metadata-import.page.header": "Importare metadati", + + // "admin.batch-import.page.header": "Import Batch", + // TODO New key - Add a translation + "admin.batch-import.page.header": "Import Batch", + + // "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": "È possibile eliminare o sfogliare i file CSV che contengono operazioni di metadati batch sui file qui", + + // "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", + // TODO New key - Add a translation + "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.metadata-import.page.dropMsg": "Drop a metadata CSV to import", + "admin.metadata-import.page.dropMsg": "Rilasciare un CSV di metadati da importare", + + // "admin.batch-import.page.dropMsg": "Drop a batch ZIP to import", + // TODO New key - Add a translation + "admin.batch-import.page.dropMsg": "Drop a batch ZIP to import", + + // "admin.metadata-import.page.dropMsgReplace": "Drop to replace the metadata CSV to import", + "admin.metadata-import.page.dropMsgReplace": "Rilascia per sostituire i metadati CSV da importare", + + // "admin.batch-import.page.dropMsgReplace": "Drop to replace the batch ZIP to import", + // TODO New key - Add a translation + "admin.batch-import.page.dropMsgReplace": "Drop to replace the batch ZIP to import", + + // "admin.metadata-import.page.button.return": "Back", + "admin.metadata-import.page.button.return": "Indietro", + + // "admin.metadata-import.page.button.proceed": "Proceed", + "admin.metadata-import.page.button.proceed": "Procedere", + + // "admin.metadata-import.page.button.select-collection": "Select Collection", + // TODO New key - Add a translation + "admin.metadata-import.page.button.select-collection": "Select Collection", + + // "admin.metadata-import.page.error.addFile": "Select file first!", + "admin.metadata-import.page.error.addFile": "Seleziona prima il file!", + + // "admin.batch-import.page.error.addFile": "Select Zip file first!", + // TODO New key - Add a translation + "admin.batch-import.page.error.addFile": "Select Zip file first!", + + // "admin.metadata-import.page.validateOnly": "Validate Only", + "admin.metadata-import.page.validateOnly": "Solo Validazione", + + // "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": "Una volta selezionato, il CSV caricato sarà validato. Riceverai un report delle modifiche rilevate, ma nessuna modifica verrà salvata.", + + // "advanced-workflow-action.rating.form.rating.label": "Rating", + // TODO New key - Add a translation + "advanced-workflow-action.rating.form.rating.label": "Rating", + + // "advanced-workflow-action.rating.form.rating.error": "You must rate the item", + // TODO New key - Add a translation + "advanced-workflow-action.rating.form.rating.error": "You must rate the item", + + // "advanced-workflow-action.rating.form.review.label": "Review", + // TODO New key - Add a translation + "advanced-workflow-action.rating.form.review.label": "Review", + + // "advanced-workflow-action.rating.form.review.error": "You must enter a review to submit this rating", + // TODO New key - Add a translation + "advanced-workflow-action.rating.form.review.error": "You must enter a review to submit this rating", + + // "advanced-workflow-action.rating.description": "Please select a rating below", + // TODO New key - Add a translation + "advanced-workflow-action.rating.description": "Please select a rating below", + + // "advanced-workflow-action.rating.description-requiredDescription": "Please select a rating below and also add a review", + // TODO New key - Add a translation + "advanced-workflow-action.rating.description-requiredDescription": "Please select a rating below and also add a review", + + + // "advanced-workflow-action.select-reviewer.description-single": "Please select a single reviewer below before submitting", + // TODO New key - Add a translation + "advanced-workflow-action.select-reviewer.description-single": "Please select a single reviewer below before submitting", + + // "advanced-workflow-action.select-reviewer.description-multiple": "Please select one or more reviewers below before submitting", + // TODO New key - Add a translation + "advanced-workflow-action.select-reviewer.description-multiple": "Please select one or more reviewers below before submitting", + + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.head": "EPeople", + // TODO New key - Add a translation + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.head": "EPeople", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.head": "Add EPeople", + // TODO New key - Add a translation + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.head": "Add EPeople", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.button.see-all": "Browse All", + // TODO New key - Add a translation + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.button.see-all": "Browse All", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.headMembers": "Current Members", + // TODO New key - Add a translation + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.headMembers": "Current Members", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.metadata": "Metadata", + // TODO New key - Add a translation + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.metadata": "Metadata", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.email": "E-mail (exact)", + // TODO New key - Add a translation + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.email": "E-mail (exact)", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.button": "Search", + // TODO New key - Add a translation + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.button": "Search", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.id": "ID", + // TODO New key - Add a translation + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.id": "ID", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.name": "Name", + // TODO New key - Add a translation + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.name": "Name", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.identity": "Identity", + // TODO New key - Add a translation + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.identity": "Identity", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.email": "Email", + // TODO New key - Add a translation + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.email": "Email", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.netid": "NetID", + // TODO New key - Add a translation + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.netid": "NetID", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit": "Remove / Add", + // TODO New key - Add a translation + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit": "Remove / Add", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.remove": "Remove member with name \"{{name}}\"", + // TODO New key - Add a translation + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.remove": "Remove member with name \"{{name}}\"", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.addMember": "Successfully added member: \"{{name}}\"", + // TODO New key - Add a translation + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.addMember": "Successfully added member: \"{{name}}\"", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.addMember": "Failed to add member: \"{{name}}\"", + // TODO New key - Add a translation + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.addMember": "Failed to add member: \"{{name}}\"", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.deleteMember": "Successfully deleted member: \"{{name}}\"", + // TODO New key - Add a translation + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.deleteMember": "Successfully deleted member: \"{{name}}\"", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.deleteMember": "Failed to delete member: \"{{name}}\"", + // TODO New key - Add a translation + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.deleteMember": "Failed to delete member: \"{{name}}\"", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.add": "Add member with name \"{{name}}\"", + // TODO New key - Add a translation + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.add": "Add member with name \"{{name}}\"", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.noActiveGroup": "No current active group, submit a name first.", + // TODO New key - Add a translation + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.noActiveGroup": "No current active group, submit a name first.", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-members-yet": "No members in group yet, search and add.", + // TODO New key - Add a translation + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-members-yet": "No members in group yet, search and add.", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-items": "No EPeople found in that search", + // TODO New key - Add a translation + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-items": "No EPeople found in that search", + + // "advanced-workflow-action.select-reviewer.no-reviewer-selected.error": "No reviewer selected.", + // TODO New key - Add a translation + "advanced-workflow-action.select-reviewer.no-reviewer-selected.error": "No reviewer selected.", + + // "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.", + // TODO New key - Add a translation + "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.remove": "remove", + // TODO New key - Add a translation + "admin.batch-import.page.remove": "remove", + + // "auth.errors.invalid-user": "Invalid email address or password.", + "auth.errors.invalid-user": "Indirizzo e-mail o password non validi.", + + // "auth.messages.expired": "Your session has expired. Please log in again.", + "auth.messages.expired": "La sessione è scaduta. Effettua nuovamente l'accesso.", + + // "auth.messages.token-refresh-failed": "Refreshing your session token failed. Please log in again.", + "auth.messages.token-refresh-failed": "Aggiornamento del token di sessione non riuscito. Effettua nuovamente l'accesso.", + + + + // "bitstream.download.page": "Now downloading {{bitstream}}..." , + "bitstream.download.page": "Sto scaricando {{bitstream}}...", + + // "bitstream.download.page.back": "Back" , + // TODO Source message changed - Revise the translation + "bitstream.download.page.back": "Indietro", + + + // "bitstream.edit.authorizations.link": "Edit bitstream's Policies", + "bitstream.edit.authorizations.link": "Modificare i criteri di bitstream", + + // "bitstream.edit.authorizations.title": "Edit bitstream's Policies", + "bitstream.edit.authorizations.title": "Modificare i criteri di bitstream", + + // "bitstream.edit.return": "Back", + "bitstream.edit.return": "Indietro", + + // "bitstream.edit.bitstream": "Bitstream: ", + "bitstream.edit.bitstream": "Bitstream: ", + + // "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": "Facoltativamente, fornire una breve descrizione del file, ad esempio \"Articolo principale\" o \"Dati dell'esperimento \".", + + // "bitstream.edit.form.description.label": "Description", + "bitstream.edit.form.description.label": "Descrizione", + + // "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": "Si tratta del primo giorno da cui è consentito l'accesso. Questa data non può essere modificata in questo form. Per impostare una data di embargo per un bitstream, vai alla scheda Item Status fare clic su Autorizzazioni... creare o modifica la policy del READ e imposta la Start Date come desiderato.", + + // "bitstream.edit.form.embargo.label": "Embargo until specific date", + "bitstream.edit.form.embargo.label": "Embargo fino a data specifica", + + // "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": "Modificare il nome del file per il bitstream. Si noti che questo cambierà il display bitstream URL , i vecchi collegamenti verranno comunque risolti finché il sequence ID non cambierà .", + + // "bitstream.edit.form.fileName.label": "Filename", + "bitstream.edit.form.fileName.label": "Filename", + + // "bitstream.edit.form.newFormat.label": "Describe new format", + "bitstream.edit.form.newFormat.label": "Descrivi il nuovo formato", + + // "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'applicazione utilizzata per creare il file e il numero di versione (ad esempio \"ACMESoft SuperApp versione 1.5\").", + + // "bitstream.edit.form.primaryBitstream.label": "Primary bitstream", + "bitstream.edit.form.primaryBitstream.label": "Primary bitstream", + + // "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": "Se il formato non è presente nell'elenco precedente, selezionare \"formato non presente in elenco\" sopra e descriverlo in \"Descrivi nuovo formato.", + + // "bitstream.edit.form.selectedFormat.label": "Selected Format", + "bitstream.edit.form.selectedFormat.label": "Formato selezionato", + + // "bitstream.edit.form.selectedFormat.unknown": "Format not in list", + "bitstream.edit.form.selectedFormat.unknown": "Formato non presente nell'elenco", + + // "bitstream.edit.notifications.error.format.title": "An error occurred saving the bitstream's format", + "bitstream.edit.notifications.error.format.title": "Si è verificato un errore durante il salvataggio del formato del bitstream", + + // "bitstream.edit.form.iiifLabel.label": "IIIF Label", + "bitstream.edit.form.iiifLabel.label": "Etichetta IIIF", + + // "bitstream.edit.form.iiifLabel.hint": "Canvas label for this image. If not provided default label will be used.", + "bitstream.edit.form.iiifLabel.hint": "Etichetta canvas per questa immagine. Se non viene fornita, verrà utilizzata l'etichetta predefinita.", + + // "bitstream.edit.form.iiifToc.label": "IIIF Table of Contents", + "bitstream.edit.form.iiifToc.label": "Sommario 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": "L'aggiunta di testo qui rende questo l'inizio di un nuovo intervallo di sommario.", + + // "bitstream.edit.form.iiifWidth.label": "IIIF Canvas Width", + "bitstream.edit.form.iiifWidth.label": "Larghezza area di lavoro IIIF", + + // "bitstream.edit.form.iiifWidth.hint": "The canvas width should usually match the image width.", + "bitstream.edit.form.iiifWidth.hint": "La larghezza dell'area di lavoro deve in genere corrispondere alla larghezza dell'immagine.", + + // "bitstream.edit.form.iiifHeight.label": "IIIF Canvas Height", + "bitstream.edit.form.iiifHeight.label": "Altezza area di lavoro IIIF", + + // "bitstream.edit.form.iiifHeight.hint": "The canvas height should usually match the image height.", + "bitstream.edit.form.iiifHeight.hint": "L'altezza dell'area di lavoro deve in genere corrispondere all'altezza dell'immagine.", + + + // "bitstream.edit.notifications.saved.content": "Your changes to this bitstream were saved.", + "bitstream.edit.notifications.saved.content": "Le modifiche apportate a questo bitstream sono state salvate.", + + // "bitstream.edit.notifications.saved.title": "Bitstream saved", + "bitstream.edit.notifications.saved.title": "Bitstream salvato", + + // "bitstream.edit.title": "Edit bitstream", + "bitstream.edit.title": "Modifica bitstream", + + // "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": "Hai già accesso a questo file. Se si desidera scaricare il file, fare clic su", + + // "bitstream-request-a-copy.alert.canDownload2": "here", + "bitstream-request-a-copy.alert.canDownload2": "qui", + + // "bitstream-request-a-copy.header": "Request a copy of the file", + "bitstream-request-a-copy.header": "Richiedi una copia del file", + + // "bitstream-request-a-copy.intro": "Enter the following information to request a copy for the following item: ", + "bitstream-request-a-copy.intro": "Inserisci le seguenti informazioni per richiedere una copia per l'item seguente: ", + + // "bitstream-request-a-copy.intro.bitstream.one": "Requesting the following file: ", + "bitstream-request-a-copy.intro.bitstream.one": "Richiesta del seguente file: ", + // "bitstream-request-a-copy.intro.bitstream.all": "Requesting all files. ", + "bitstream-request-a-copy.intro.bitstream.all": "Richiesta di tutti i file.", + + // "bitstream-request-a-copy.name.label": "Name *", + "bitstream-request-a-copy.name.label": "Nome *", + + // "bitstream-request-a-copy.name.error": "The name is required", + "bitstream-request-a-copy.name.error": "Il nome è obbligatorio", + + // "bitstream-request-a-copy.email.label": "Your e-mail address *", + "bitstream-request-a-copy.email.label": "Il tuo indirizzo e-mail *", + + // "bitstream-request-a-copy.email.hint": "This email address is used for sending the file.", + "bitstream-request-a-copy.email.hint": "Questo indirizzo e-mail viene utilizzato per l'invio del file.", + + // "bitstream-request-a-copy.email.error": "Please enter a valid email address.", + "bitstream-request-a-copy.email.error": "Inserisci un indirizzo email valido.", + + // "bitstream-request-a-copy.allfiles.label": "Files", + "bitstream-request-a-copy.allfiles.label": "File", + + // "bitstream-request-a-copy.files-all-false.label": "Only the requested file", + "bitstream-request-a-copy.files-all-false.label": "Solo il file richiesto", + + // "bitstream-request-a-copy.files-all-true.label": "All files (of this item) in restricted access", + "bitstream-request-a-copy.files-all-true.label": "Tutti i file (di questo item) in accesso limitato", + + // "bitstream-request-a-copy.message.label": "Message", + "bitstream-request-a-copy.message.label": "Messaggio", + + // "bitstream-request-a-copy.return": "Back", + "bitstream-request-a-copy.return": "Indietro", + + // "bitstream-request-a-copy.submit": "Request copy", + "bitstream-request-a-copy.submit": "Richiedi copia", + + // "bitstream-request-a-copy.submit.success": "The item request was submitted successfully.", + "bitstream-request-a-copy.submit.success": "La richiesta di invio è stata inviata correttamente.", + + // "bitstream-request-a-copy.submit.error": "Something went wrong with submitting the item request.", + "bitstream-request-a-copy.submit.error": "Qualcosa è andato storto con l'invio della richiesta dell'item.", + + + + // "browse.back.all-results": "All browse results", + "browse.back.all-results": "Tutti i risultati", + + // "browse.comcol.by.author": "By Author", + "browse.comcol.by.author": "Per Autore", + + // "browse.comcol.by.dateissued": "By Issue Date", + "browse.comcol.by.dateissued": "Per data di pubblicazione", + + // "browse.comcol.by.subject": "By Subject", + "browse.comcol.by.subject": "Per argomento", + + // "browse.comcol.by.title": "By Title", + "browse.comcol.by.title": "Per titolo", + + // "browse.comcol.head": "Browse", + "browse.comcol.head": "Sfogliare", + + // "browse.empty": "No items to show.", + "browse.empty": "Nessun item da mostrare.", + + // "browse.metadata.author": "Author", + "browse.metadata.author": "Autore", + + // "browse.metadata.dateissued": "Issue Date", + "browse.metadata.dateissued": "Data di pubblicazione", + + // "browse.metadata.subject": "Subject", + "browse.metadata.subject": "Subject", + + // "browse.metadata.title": "Title", + "browse.metadata.title": "Titolo", + + // "browse.metadata.author.breadcrumbs": "Browse by Author", + "browse.metadata.author.breadcrumbs": "Sfoglia per Autore", + + // "browse.metadata.dateissued.breadcrumbs": "Browse by Date", + "browse.metadata.dateissued.breadcrumbs": "Sfoglia per Data", + + // "browse.metadata.subject.breadcrumbs": "Browse by Subject", + "browse.metadata.subject.breadcrumbs": "Sfoglia per Argomento", + + // "browse.metadata.title.breadcrumbs": "Browse by Title", + "browse.metadata.title.breadcrumbs": "Sfoglia per Titolo", + + // "pagination.next.button": "Next", + "pagination.next.button": "Avanti", + + // "pagination.previous.button": "Previous", + "pagination.previous.button": "Precedente", + + // "pagination.next.button.disabled.tooltip": "No more pages of results", + "pagination.next.button.disabled.tooltip": "Non ci sono ulteriori pagine di risultati", + + // "browse.startsWith": ", starting with {{ startsWith }}", + // TODO New key - Add a translation + "browse.startsWith": ", starting with {{ startsWith }}", + + // "browse.startsWith.choose_start": "(Choose start)", + "browse.startsWith.choose_start": "(Scegli start)", + + // "browse.startsWith.choose_year": "(Choose year)", + "browse.startsWith.choose_year": "(Scegli l'anno)", + + // "browse.startsWith.choose_year.label": "Choose the issue year", + "browse.startsWith.choose_year.label": "Scegli l'anno di pubblicazione", + + // "browse.startsWith.jump": "Filter results by year or month", + "browse.startsWith.jump": "Filtra i risultati per anno o mese", + + // "browse.startsWith.months.april": "April", + "browse.startsWith.months.april": "Aprile", + + // "browse.startsWith.months.august": "August", + "browse.startsWith.months.august": "Agosto", + + // "browse.startsWith.months.december": "December", + "browse.startsWith.months.december": "Dicembre", + + // "browse.startsWith.months.february": "February", + "browse.startsWith.months.february": "Febbraio", + + // "browse.startsWith.months.january": "January", + "browse.startsWith.months.january": "Gennaio", + + // "browse.startsWith.months.july": "July", + "browse.startsWith.months.july": "Luglio", + + // "browse.startsWith.months.june": "June", + "browse.startsWith.months.june": "Giugno", + + // "browse.startsWith.months.march": "March", + "browse.startsWith.months.march": "Marzo", + + // "browse.startsWith.months.may": "May", + "browse.startsWith.months.may": "Maggio", + + // "browse.startsWith.months.none": "(Choose month)", + "browse.startsWith.months.none": "(Scegli il mese)", + + // "browse.startsWith.months.none.label": "Choose the issue month", + "browse.startsWith.months.none.label": "Scegli il mese di pubblicazione", + + // "browse.startsWith.months.november": "November", + "browse.startsWith.months.november": "Novembre", + + // "browse.startsWith.months.october": "October", + "browse.startsWith.months.october": "Ottobre", + + // "browse.startsWith.months.september": "September", + "browse.startsWith.months.september": "Settembre", + + // "browse.startsWith.submit": "Browse", + "browse.startsWith.submit": "Sfogliare", + + // "browse.startsWith.type_date": "Filter results by date", + "browse.startsWith.type_date": "Filtra 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": "Oppure digita una data (anno-mese) e clicca sul pulsante Sfoglia", + + // "browse.startsWith.type_text": "Filter results by typing the first few letters", + "browse.startsWith.type_text": "Per filtrare i risultati inizia a digitare le prime lettere", + + // "browse.title": "Browsing {{ collection }} by {{ field }}{{ startsWith }} {{ value }}", + "browse.title": "Mostra il contenuto di {{ collection }} per {{ field }}{{ startsWith }} {{ value }}", + + // "browse.title.page": "Browsing {{ collection }} by {{ field }} {{ value }}", + "browse.title.page": "Mostra il contenuto di {{ collection }} per {{ field }} {{ value }}", + + + // "search.browse.item-back": "Back to Results", + // TODO New key - Add a translation + "search.browse.item-back": "Back to Results", + + + // "chips.remove": "Remove chip", + "chips.remove": "Rimuovere il chip", + + + // "claimed-approved-search-result-list-element.title": "Approved", + // TODO New key - Add a translation + "claimed-approved-search-result-list-element.title": "Approved", + + // "claimed-declined-search-result-list-element.title": "Rejected, sent back to submitter", + // TODO New key - Add a translation + "claimed-declined-search-result-list-element.title": "Rejected, sent back to submitter", + + // "claimed-declined-task-search-result-list-element.title": "Declined, sent back to Review Manager's workflow", + // TODO New key - Add a translation + "claimed-declined-task-search-result-list-element.title": "Declined, sent back to Review Manager's workflow", + + + // "collection.create.head": "Create a Collection", + "collection.create.head": "Creare una collection", + + // "collection.create.notifications.success": "Successfully created the Collection", + "collection.create.notifications.success": "Creata con successo la collection", + + // "collection.create.sub-head": "Create a Collection for Community {{ parent }}", + "collection.create.sub-head": "Creare una collection per la Community {{ parent }}", + + // "collection.curate.header": "Curate Collection: {{collection}}", + "collection.curate.header": "Curate della collezione: {{collection}}", + + // "collection.delete.cancel": "Cancel", + "collection.delete.cancel": "Annulla", + + // "collection.delete.confirm": "Confirm", + "collection.delete.confirm": "Confermare", + + // "collection.delete.processing": "Deleting", + "collection.delete.processing": "Eliminazione", + + // "collection.delete.head": "Delete Collection", + "collection.delete.head": "Elimina collection", + + // "collection.delete.notification.fail": "Collection could not be deleted", + "collection.delete.notification.fail": "Impossibile eliminare la collection", + + // "collection.delete.notification.success": "Successfully deleted collection", + "collection.delete.notification.success": "collection eliminata correttamente", + + // "collection.delete.text": "Are you sure you want to delete collection \"{{ dso }}\"", + "collection.delete.text": "Sei sicuro di voler eliminare la collection \"{{ dso }}\"", + + + + // "collection.edit.delete": "Delete this collection", + "collection.edit.delete": "Elimina questa collection", + + // "collection.edit.head": "Edit Collection", + "collection.edit.head": "Modifica collection", + + // "collection.edit.breadcrumbs": "Edit Collection", + "collection.edit.breadcrumbs": "Modifica collection", + + + + // "collection.edit.tabs.mapper.head": "Item Mapper", + "collection.edit.tabs.mapper.head": "Mapper dell' Item", + + // "collection.edit.tabs.item-mapper.title": "Collection Edit - Item Mapper", + "collection.edit.tabs.item-mapper.title": "Modifica collection - Mapper dell'item", + + // "collection.edit.item-mapper.cancel": "Cancel", + "collection.edit.item-mapper.cancel": "Annulla", + + // "collection.edit.item-mapper.collection": "Collection: \"{{name}}\"", + "collection.edit.item-mapper.collection": "Collezione: \"{{name}}\"", + + // "collection.edit.item-mapper.confirm": "Map selected items", + "collection.edit.item-mapper.confirm": "Mappare gli item selezionati", + + // "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": "Si tratta dello strumento di mapping degli item che consente agli amministratori della collection di mappare gli item di altre collections in questa collection. È possibile cercare item di altre collections e mapparli o sfogliare l'elenco degli item attualmente mappati.", + + // "collection.edit.item-mapper.head": "Item Mapper - Map Items from Other Collections", + "collection.edit.item-mapper.head": "Item Mapper - Mappa item di altre collections", + + // "collection.edit.item-mapper.no-search": "Please enter a query to search", + "collection.edit.item-mapper.no-search": "Inserisci una query per avviare la ricerca", + + // "collection.edit.item-mapper.notifications.map.error.content": "Errors occurred for mapping of {{amount}} items.", + "collection.edit.item-mapper.notifications.map.error.content": "Si sono verificati errori per la mappatura degli item {{amount}}.", + + // "collection.edit.item-mapper.notifications.map.error.head": "Mapping errors", + "collection.edit.item-mapper.notifications.map.error.head": "Errori di mappatura", + + // "collection.edit.item-mapper.notifications.map.success.content": "Successfully mapped {{amount}} items.", + "collection.edit.item-mapper.notifications.map.success.content": "Mappato correttamente gli item {{amount}}.", + + // "collection.edit.item-mapper.notifications.map.success.head": "Mapping completed", + "collection.edit.item-mapper.notifications.map.success.head": "Mappatura completata", + + // "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": "Si sono verificati errori per la rimozione dei mapping degli item {{amount}}.", + + // "collection.edit.item-mapper.notifications.unmap.error.head": "Remove mapping errors", + "collection.edit.item-mapper.notifications.unmap.error.head": "Rimuovere gli errori di mappatura", + + // "collection.edit.item-mapper.notifications.unmap.success.content": "Successfully removed the mappings of {{amount}} items.", + "collection.edit.item-mapper.notifications.unmap.success.content": "Rimosse con successo le mappature degli item {{amount}}.", + + // "collection.edit.item-mapper.notifications.unmap.success.head": "Remove mapping completed", + "collection.edit.item-mapper.notifications.unmap.success.head": "Rimuovere la mappatura completata", + + // "collection.edit.item-mapper.remove": "Remove selected item mappings", + "collection.edit.item-mapper.remove": "Rimuovere i mapping degli item selezionati", + + // "collection.edit.item-mapper.search-form.placeholder": "Search items...", + "collection.edit.item-mapper.search-form.placeholder": "Cerca item...", + + // "collection.edit.item-mapper.tabs.browse": "Browse mapped items", + "collection.edit.item-mapper.tabs.browse": "Sfoglia gli item mappati", + + // "collection.edit.item-mapper.tabs.map": "Map new items", + "collection.edit.item-mapper.tabs.map": "Mappare nuovi item", + + + // "collection.edit.logo.delete.title": "Delete logo", + "collection.edit.logo.delete.title": "Annulla eliminazione", + + // "collection.edit.logo.delete-undo.title": "Undo delete", + "collection.edit.logo.delete-undo.title": "Elimina logo", + + // "collection.edit.logo.label": "Collection logo", + "collection.edit.logo.label": "Logo della collection", + + // "collection.edit.logo.notifications.add.error": "Uploading Collection logo failed. Please verify the content before retrying.", + "collection.edit.logo.notifications.add.error": "Caricamento del logo della collection non riuscito. Verifica il contenuto prima di riprovare.", + + // "collection.edit.logo.notifications.add.success": "Upload Collection logo successful.", + "collection.edit.logo.notifications.add.success": "Caricamento del logo della collection riuscito.", + + // "collection.edit.logo.notifications.delete.success.title": "Logo deleted", + "collection.edit.logo.notifications.delete.success.title": "Logo cancellato", + + // "collection.edit.logo.notifications.delete.success.content": "Successfully deleted the collection's logo", + "collection.edit.logo.notifications.delete.success.content": "Eliminato con successo il logo della collection", + + // "collection.edit.logo.notifications.delete.error.title": "Error deleting logo", + "collection.edit.logo.notifications.delete.error.title": "Errore durante l'eliminazione del logo", + + // "collection.edit.logo.upload": "Drop a Collection Logo to upload", + "collection.edit.logo.upload": "Rilascia un logo della collection da caricare", + + + + // "collection.edit.notifications.success": "Successfully edited the Collection", + "collection.edit.notifications.success": "Modificata correttamente la collection", + + // "collection.edit.return": "Back", + "collection.edit.return": "Indietro", + + + + // "collection.edit.tabs.curate.head": "Curate", + "collection.edit.tabs.curate.head": "Curate", + + // "collection.edit.tabs.curate.title": "Collection Edit - Curate", + "collection.edit.tabs.curate.title": "Modifica collection - Curate", + + // "collection.edit.tabs.authorizations.head": "Authorizations", + "collection.edit.tabs.authorizations.head": "Autorizzazioni", + + // "collection.edit.tabs.authorizations.title": "Collection Edit - Authorizations", + "collection.edit.tabs.authorizations.title": "Collection Edit - Autorizzazioni", + + // "collection.edit.item.authorizations.load-bundle-button": "Load more bundles", + "collection.edit.item.authorizations.load-bundle-button": "Carica più bundles", + + // "collection.edit.item.authorizations.load-more-button": "Load more", + "collection.edit.item.authorizations.load-more-button": "Carica più risorse", + + // "collection.edit.item.authorizations.show-bitstreams-button": "Show bitstream policies for bundle", + // TODO New key - Add a translation + "collection.edit.item.authorizations.show-bitstreams-button": "Show bitstream policies for bundle", + + // "collection.edit.tabs.metadata.head": "Edit Metadata", + "collection.edit.tabs.metadata.head": "Modifica metadati", + + // "collection.edit.tabs.metadata.title": "Collection Edit - Metadata", + "collection.edit.tabs.metadata.title": "Modifica collection - Metadati", + + // "collection.edit.tabs.roles.head": "Assign Roles", + "collection.edit.tabs.roles.head": "Assegna ruoli", + + // "collection.edit.tabs.roles.title": "Collection Edit - Roles", + "collection.edit.tabs.roles.title": "Modifica collection - Ruoli", + + // "collection.edit.tabs.source.external": "This collection harvests its content from an external source", + "collection.edit.tabs.source.external": "Questa collection raccoglie il suo contenuto da una fonte esterna", + + // "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": "È necessario fornire un ID impostato della collection di destinazione.", + + // "collection.edit.tabs.source.form.harvestType": "Content being harvested", + "collection.edit.tabs.source.form.harvestType": "Contenuto che è stato harvestato", + + // "collection.edit.tabs.source.form.head": "Configure an external source", + "collection.edit.tabs.source.form.head": "Configurare un'origine esterna", + + // "collection.edit.tabs.source.form.metadataConfigId": "Metadata Format", + "collection.edit.tabs.source.form.metadataConfigId": "Formato dei metadati", + + // "collection.edit.tabs.source.form.oaiSetId": "OAI specific set id", + "collection.edit.tabs.source.form.oaiSetId": "ID set specifico OAI", + + // "collection.edit.tabs.source.form.oaiSource": "OAI Provider", + "collection.edit.tabs.source.form.oaiSource": "OAI Provider", + + // "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": "Harvest metadati e flussi di bit (richiede il supporto 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": "Harvest di metadati e riferimenti a bitstream (richiede il supporto ORE)", + + // "collection.edit.tabs.source.form.options.harvestType.METADATA_ONLY": "Harvest metadata only", + "collection.edit.tabs.source.form.options.harvestType.METADATA_ONLY": "Harvesta solo metadati", + + // "collection.edit.tabs.source.head": "Content Source", + "collection.edit.tabs.source.head": "Origine del contenuto", + + // "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": "Le modifiche sono state annullate. Per ripristinarle, fai clic sul pulsante \"Annulla\"", + + // "collection.edit.tabs.source.notifications.discarded.title": "Changes discarded", + // TODO Source message changed - Revise the translation + "collection.edit.tabs.source.notifications.discarded.title": "Modifiche eliminate", + + // "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": "Le modifiche non sono state salvate. Assicurati che tutti i campi siano validi prima di salvare.", + + // "collection.edit.tabs.source.notifications.invalid.title": "Metadata invalid", + "collection.edit.tabs.source.notifications.invalid.title": "Metadati non validi", + + // "collection.edit.tabs.source.notifications.saved.content": "Your changes to this collection's content source were saved.", + "collection.edit.tabs.source.notifications.saved.content": "Le modifiche apportate all'origine di contenuto della collection sono state salvate.", + + // "collection.edit.tabs.source.notifications.saved.title": "Content Source saved", + "collection.edit.tabs.source.notifications.saved.title": "Origine contenuto salvata", + + // "collection.edit.tabs.source.title": "Collection Edit - Content Source", + "collection.edit.tabs.source.title": "Modifica collection - Origine contenuto", + + + + // "collection.edit.template.add-button": "Add", + "collection.edit.template.add-button": "Aggiungere", + + // "collection.edit.template.breadcrumbs": "Item template", + "collection.edit.template.breadcrumbs": "Modello di Item", + + // "collection.edit.template.cancel": "Cancel", + "collection.edit.template.cancel": "Annulla", + + // "collection.edit.template.delete-button": "Delete", + "collection.edit.template.delete-button": "Cancellare", + + // "collection.edit.template.edit-button": "Edit", + "collection.edit.template.edit-button": "Editare", + + // "collection.edit.template.error": "An error occurred retrieving the template item", + "collection.edit.template.error": "Si è verificato un errore durante il recupero del modello dell' Item", + + // "collection.edit.template.head": "Edit Template Item for Collection \"{{ collection }}\"", + "collection.edit.template.head": "Modifica item modello per la collection \"{{ collection }}\"", + + // "collection.edit.template.label": "Template item", + "collection.edit.template.label": "Template per Item", + + // "collection.edit.template.loading": "Loading template item...", + "collection.edit.template.loading": "Caricamento del Template per Item...", + + // "collection.edit.template.notifications.delete.error": "Failed to delete the item template", + "collection.edit.template.notifications.delete.error": "Impossibile eliminare il Template dell' Item", + + // "collection.edit.template.notifications.delete.success": "Successfully deleted the item template", + "collection.edit.template.notifications.delete.success": "Eliminato correttamente il Template dell' Item", + + // "collection.edit.template.title": "Edit Template Item", + "collection.edit.template.title": "Modifica Template dell' Item", + + + + // "collection.form.abstract": "Short Description", + "collection.form.abstract": "Breve descrizione", + + // "collection.form.description": "Introductory text (HTML)", + "collection.form.description": "Testo introduttivo (HTML)", + + // "collection.form.errors.title.required": "Please enter a collection name", + "collection.form.errors.title.required": "Inserisci il nome di una collection", + + // "collection.form.license": "License", + "collection.form.license": "Licenza", + + // "collection.form.provenance": "Provenance", + "collection.form.provenance": "Provenienza", + + // "collection.form.rights": "Copyright text (HTML)", + "collection.form.rights": "Testo protetto da copyright (HTML)", + + // "collection.form.tableofcontents": "News (HTML)", + "collection.form.tableofcontents": "News (HTML)", + + // "collection.form.title": "Name", + "collection.form.title": "Nome", + + // "collection.form.entityType": "Entity Type", + "collection.form.entityType": "Tipo di entità", + + + + // "collection.listelement.badge": "Collection", + "collection.listelement.badge": "collection", + + + + // "collection.page.browse.recent.head": "Recent Submissions", + "collection.page.browse.recent.head": "submissions recenti", + + // "collection.page.browse.recent.empty": "No items to show", + "collection.page.browse.recent.empty": "Nessun item da mostrare", + + // "collection.page.edit": "Edit this collection", + "collection.page.edit": "Modifica questa collection", + + // "collection.page.handle": "Permanent URI for this collection", + "collection.page.handle": "URI permanente per questa collection", + + // "collection.page.license": "License", + "collection.page.license": "Licenza", + + // "collection.page.news": "News", + "collection.page.news": "News", + + + + // "collection.select.confirm": "Confirm selected", + "collection.select.confirm": "Conferma selezionato", + + // "collection.select.empty": "No collections to show", + "collection.select.empty": "Nessuna collection da mostrare", + + // "collection.select.table.title": "Title", + "collection.select.table.title": "Titolo", + + + // "collection.source.controls.head": "Harvest Controls", + "collection.source.controls.head": "Controlli del Harvester", + // "collection.source.controls.test.submit.error": "Something went wrong with initiating the testing of the settings", + "collection.source.controls.test.submit.error": "Qualcosa è andato storto con l'avvio del test delle impostazioni", + // "collection.source.controls.test.failed": "The script to test the settings has failed", + "collection.source.controls.test.failed": "Lo script per testare le impostazioni non è riuscito", + // "collection.source.controls.test.completed": "The script to test the settings has successfully finished", + "collection.source.controls.test.completed": "Lo script per testare le impostazioni è stato completato correttamente", + // "collection.source.controls.test.submit": "Test configuration", + "collection.source.controls.test.submit": "Configurazione di prova", + // "collection.source.controls.test.running": "Testing configuration...", + "collection.source.controls.test.running": "Configurazione di test...", + // "collection.source.controls.import.submit.success": "The import has been successfully initiated", + "collection.source.controls.import.submit.success": "L'importazione è stata avviata correttamente", + // "collection.source.controls.import.submit.error": "Something went wrong with initiating the import", + "collection.source.controls.import.submit.error": "Qualcosa è andato storto con l'avvio dell'importazione", + // "collection.source.controls.import.submit": "Import now", + "collection.source.controls.import.submit": "Importa ora", + // "collection.source.controls.import.running": "Importing...", + "collection.source.controls.import.running": "Importazione...", + // "collection.source.controls.import.failed": "An error occurred during the import", + "collection.source.controls.import.failed": "Si è verificato un errore durante l'importazione", + // "collection.source.controls.import.completed": "The import completed", + "collection.source.controls.import.completed": "L'importazione completata", + // "collection.source.controls.reset.submit.success": "The reset and reimport has been successfully initiated", + "collection.source.controls.reset.submit.success": "Il ripristino e la reimportazione sono stati avviati correttamente", + // "collection.source.controls.reset.submit.error": "Something went wrong with initiating the reset and reimport", + "collection.source.controls.reset.submit.error": "Qualcosa è andato storto con l'avvio del ripristino e della reimportazione", + // "collection.source.controls.reset.failed": "An error occurred during the reset and reimport", + "collection.source.controls.reset.failed": "Si è verificato un errore durante il ripristino e la reimportazione", + // "collection.source.controls.reset.completed": "The reset and reimport completed", + "collection.source.controls.reset.completed": "Il ripristino e la reimportazione completati", + // "collection.source.controls.reset.submit": "Reset and reimport", + "collection.source.controls.reset.submit": "Reimpostazione e reimportazione", + // "collection.source.controls.reset.running": "Resetting and reimporting...", + "collection.source.controls.reset.running": "Reimpostazione e reimportazione...", + // "collection.source.controls.harvest.status": "Harvest status:", + // TODO New key - Add a translation + "collection.source.controls.harvest.status": "Harvest status:", + // "collection.source.controls.harvest.start": "Harvest start time:", + // TODO New key - Add a translation + "collection.source.controls.harvest.start": "Harvest start time:", + // "collection.source.controls.harvest.last": "Last time harvested:", + // TODO New key - Add a translation + "collection.source.controls.harvest.last": "Last time harvested:", + // "collection.source.controls.harvest.message": "Harvest info:", + // TODO New key - Add a translation + "collection.source.controls.harvest.message": "Harvest info:", + // "collection.source.controls.harvest.no-information": "N/A", + "collection.source.controls.harvest.no-information": "N/D", + + + // "collection.source.update.notifications.error.content": "The provided settings have been tested and didn't work.", + "collection.source.update.notifications.error.content": "Le impostazioni fornite sono state testate e non hanno funzionato.", + + // "collection.source.update.notifications.error.title": "Server Error", + "collection.source.update.notifications.error.title": "Errore del server", + + + + // "communityList.breadcrumbs": "Community List", + "communityList.breadcrumbs": "Elenco della Community", + + // "communityList.tabTitle": "Community List", + "communityList.tabTitle": "Elenco della Community", + + // "communityList.title": "List of Communities", + "communityList.title": "Elenco delle Community", + + // "communityList.showMore": "Show More", + "communityList.showMore": "Mostra di più", + + + + // "community.create.head": "Create a Community", + "community.create.head": "Crea una Community", + + // "community.create.notifications.success": "Successfully created the Community", + "community.create.notifications.success": "Community creata con successo", + + // "community.create.sub-head": "Create a Sub-Community for Community {{ parent }}", + "community.create.sub-head": "Creare una sotto-Community per la Community {{ parent }}", + + // "community.curate.header": "Curate Community: {{community}}", + "community.curate.header": "Curate della Community: {{community}}", + + // "community.delete.cancel": "Cancel", + "community.delete.cancel": "Annulla", + + // "community.delete.confirm": "Confirm", + "community.delete.confirm": "Conferma", + + // "community.delete.processing": "Deleting...", + "community.delete.processing": "Eliminazione...", + + // "community.delete.head": "Delete Community", + "community.delete.head": "Elimina la community", + + // "community.delete.notification.fail": "Community could not be deleted", + "community.delete.notification.fail": "Impossibile eliminare la community", + + // "community.delete.notification.success": "Successfully deleted community", + "community.delete.notification.success": "Community eliminata con successo", + + // "community.delete.text": "Are you sure you want to delete community \"{{ dso }}\"", + "community.delete.text": "Sei sicuro di voler eliminare la community \"{{ dso }}\"", + + // "community.edit.delete": "Delete this community", + "community.edit.delete": "Elimina questa community", + + // "community.edit.head": "Edit Community", + "community.edit.head": "Modifica la community", + + // "community.edit.breadcrumbs": "Edit Community", + "community.edit.breadcrumbs": "Modifica la community", + + + // "community.edit.logo.delete.title": "Delete logo", + "community.edit.logo.delete.title": "Elimina logo", + + // "community.edit.logo.delete-undo.title": "Undo delete", + "community.edit.logo.delete-undo.title": "Annulla l'eliminazione", + + // "community.edit.logo.label": "Community logo", + "community.edit.logo.label": "Logo della community", + + // "community.edit.logo.notifications.add.error": "Uploading Community logo failed. Please verify the content before retrying.", + "community.edit.logo.notifications.add.error": "Caricamento del logo della community non riuscito. Verifica il contenuto prima di riprovare.", + + // "community.edit.logo.notifications.add.success": "Upload Community logo successful.", + "community.edit.logo.notifications.add.success": "Il logo della community è stato caricato con successo.", + + // "community.edit.logo.notifications.delete.success.title": "Logo deleted", + "community.edit.logo.notifications.delete.success.title": "Logo eliminato", + + // "community.edit.logo.notifications.delete.success.content": "Successfully deleted the community's logo", + "community.edit.logo.notifications.delete.success.content": "Il logo della community è stato eliminato con successo", + + // "community.edit.logo.notifications.delete.error.title": "Error deleting logo", + "community.edit.logo.notifications.delete.error.title": "Errore durante l'eliminazione del logo", + + // "community.edit.logo.upload": "Drop a Community Logo to upload", + "community.edit.logo.upload": "Rilascia un logo della community da caricare", + + + + // "community.edit.notifications.success": "Successfully edited the Community", + "community.edit.notifications.success": "La community è stata modificata con successo", + + // "community.edit.notifications.unauthorized": "You do not have privileges to make this change", + "community.edit.notifications.unauthorized": "Non si dispone dei privilegi per apportare questa modifica", + + // "community.edit.notifications.error": "An error occured while editing the Community", + "community.edit.notifications.error": "Si è verificato un errore durante la modifica della community", + + // "community.edit.return": "Back", + "community.edit.return": "Indietro", + + + + // "community.edit.tabs.curate.head": "Curate", + "community.edit.tabs.curate.head": "Curate", + + // "community.edit.tabs.curate.title": "Community Edit - Curate", + "community.edit.tabs.curate.title": "Modifica community - Curate", + + // "community.edit.tabs.metadata.head": "Edit Metadata", + "community.edit.tabs.metadata.head": "Modifica metadati", + + // "community.edit.tabs.metadata.title": "Community Edit - Metadata", + "community.edit.tabs.metadata.title": "Modifica community - Metadati", + + // "community.edit.tabs.roles.head": "Assign Roles", + "community.edit.tabs.roles.head": "Assegna ruoli", + + // "community.edit.tabs.roles.title": "Community Edit - Roles", + "community.edit.tabs.roles.title": "Modifica community - Ruoli", + + // "community.edit.tabs.authorizations.head": "Authorizations", + "community.edit.tabs.authorizations.head": "Autorizzazioni", + + // "community.edit.tabs.authorizations.title": "Community Edit - Authorizations", + "community.edit.tabs.authorizations.title": "Modifica community - Autorizzazioni", + + + + // "community.listelement.badge": "Community", + "community.listelement.badge": "Community", + + + + // "comcol-role.edit.no-group": "None", + "comcol-role.edit.no-group": "Nessuno", + + // "comcol-role.edit.create": "Create", + "comcol-role.edit.create": "Crea", + + // "comcol-role.edit.create.error.title": "Failed to create a group for the '{{ role }}' role", + "comcol-role.edit.create.error.title": "Non è stato possibile creare un gruppo per il ruolo '{{ role }}'", + + // "comcol-role.edit.restrict": "Restrict", + "comcol-role.edit.restrict": "Restringi", + + // "comcol-role.edit.delete": "Delete", + "comcol-role.edit.delete": "Cancella", + + // "comcol-role.edit.delete.error.title": "Failed to delete the '{{ role }}' role's group", + "comcol-role.edit.delete.error.title": "Non è stato possibile cancellare il ruolo '{{ role }}' del gruppo", + + + // "comcol-role.edit.community-admin.name": "Administrators", + "comcol-role.edit.community-admin.name": "Amministratori", + + // "comcol-role.edit.collection-admin.name": "Administrators", + "comcol-role.edit.collection-admin.name": "Amministratori", + + + // "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": "Gli amministratori della community possono creare sotto-community o collections e gestire o assegnare la loro gestione. Inoltre, decidono chi può depositare item in qualsiasi sotto-collections, modificare i metadati degli item (dopo l'invio) e aggiungere (mappare) item esistenti da altre collections (previa autorizzazione).", + + // "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": "Gli amministratori della collection decidono chi può depositare item nella collection, modificare i metadati dell'item (dopo l'invio) e aggiungere (mappare) item da altre collections a questa collection (soggetto all'autorizzazione per tale collection).", + + + // "comcol-role.edit.submitters.name": "Submitters", + "comcol-role.edit.submitters.name": "Submitters", + + // "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": "E-People e Gruppi che dispongono dell'autorizzazione per depositare nuovi item in questa collection.", + + + // "comcol-role.edit.item_read.name": "Default item read access", + "comcol-role.edit.item_read.name": "Accesso di sola lettura per gli item", + + // "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": "E-People e gruppi in grado di leggere i nuovi item depositati in questa collection. Le modifiche a questo ruolo non sono retroattive. Gli item esistenti nel sistema saranno ancora visualizzabili da coloro che avevano accesso in sola lettura al momento della loro archiviazione.", + + // "comcol-role.edit.item_read.anonymous-group": "Default read for incoming items is currently set to Anonymous.", + "comcol-role.edit.item_read.anonymous-group": "L'accesso di sola lettura per gli item depositati è attualmente impostata su Anonimo.", + + + // "comcol-role.edit.bitstream_read.name": "Default bitstream read access", + "comcol-role.edit.bitstream_read.name": "Accesso di sola lettura per il bitstream", + + // "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": "Gli amministratori della community possono creare sotto-community o collections e gestire o assegnare la loro gestione. Inoltre, decidono chi può depositare item in qualsiasi sotto-collections, modificare i metadati degli item (dopo l'invio) e aggiungere (mappare) item esistenti da altre collections (previa autorizzazione).", + + // "comcol-role.edit.bitstream_read.anonymous-group": "Default read for incoming bitstreams is currently set to Anonymous.", + "comcol-role.edit.bitstream_read.anonymous-group": "L'accesso di sola lettura per i bitstreams depositati è attualmente impostata su Anonimo.", + + + // "comcol-role.edit.editor.name": "Editors", + "comcol-role.edit.editor.name": "Editor", + + // "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": "Gli editor possono modificare i metadati delle submissions depositate e quindi accettarli o rifiutarli.", + + + // "comcol-role.edit.finaleditor.name": "Final editors", + "comcol-role.edit.finaleditor.name": "Editor finali", + + // "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": "Gli editor finali sono in grado di modificare i metadati delle submissions depositate, ma non saranno in grado di rifiutarli.", + + + // "comcol-role.edit.reviewer.name": "Reviewers", + "comcol-role.edit.reviewer.name": "Revisori", + + // "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": "I revisori sono in grado di accettare o rifiutare le submissions depositate. Tuttavia, non sono in grado di modificare i metadati della submission.", + + + // "comcol-role.edit.scorereviewers.name": "Score Reviewers", + // TODO New key - Add a translation + "comcol-role.edit.scorereviewers.name": "Score Reviewers", + + // "comcol-role.edit.scorereviewers.description": "Reviewers are able to give a score to incoming submissions, this will define whether the submission will be rejected or not.", + // TODO New key - Add a translation + "comcol-role.edit.scorereviewers.description": "Reviewers are able to give a score to incoming submissions, this will define whether the submission will be rejected or not.", + + + + // "community.form.abstract": "Short Description", + "community.form.abstract": "Breve descrizione", + + // "community.form.description": "Introductory text (HTML)", + "community.form.description": "Testo introduttivo (HTML)", + + // "community.form.errors.title.required": "Please enter a community name", + "community.form.errors.title.required": "Inserisci il nome di una community", + + // "community.form.rights": "Copyright text (HTML)", + "community.form.rights": "Testo protetto da copyright (HTML)", + + // "community.form.tableofcontents": "News (HTML)", + "community.form.tableofcontents": "News (HTML)", + + // "community.form.title": "Name", + "community.form.title": "Nome", + + // "community.page.edit": "Edit this community", + "community.page.edit": "Modifica questa community", + + // "community.page.handle": "Permanent URI for this community", + "community.page.handle": "URI permanente di questa Community", + + // "community.page.license": "License", + "community.page.license": "Licenza", + + // "community.page.news": "News", + "community.page.news": "News", + + // "community.all-lists.head": "Subcommunities and Collections", + "community.all-lists.head": "Sub-community e collections", + + // "community.sub-collection-list.head": "Collections of this Community", + "community.sub-collection-list.head": "Collections di questa community", + + // "community.sub-community-list.head": "Communities of this Community", + "community.sub-community-list.head": "Communities di questa Community", + + + + // "cookies.consent.accept-all": "Accept all", + "cookies.consent.accept-all": "Accetta tutto", + + // "cookies.consent.accept-selected": "Accept selected", + "cookies.consent.accept-selected": "Accetta la selezione", + + // "cookies.consent.app.opt-out.description": "This app is loaded by default (but you can opt out)", + "cookies.consent.app.opt-out.description": "Questa app è caricata con impostazione predefinita (ma puoi disattivare)", + + // "cookies.consent.app.opt-out.title": "(opt-out)", + "cookies.consent.app.opt-out.title": "(opt-out)", + + // "cookies.consent.app.purpose": "purpose", + "cookies.consent.app.purpose": "scopo", + + // "cookies.consent.app.required.description": "This application is always required", + "cookies.consent.app.required.description": "Questa applicazione è sempre richiesta", + + // "cookies.consent.app.required.title": "(always required)", + "cookies.consent.app.required.title": "(sempre obbligatorio)", + + // "cookies.consent.app.disable-all.description": "Use this switch to enable or disable all services.", + // TODO New key - Add a translation + "cookies.consent.app.disable-all.description": "Use this switch to enable or disable all services.", + + // "cookies.consent.app.disable-all.title": "Enable or disable all services", + // TODO New key - Add a translation + "cookies.consent.app.disable-all.title": "Enable or disable all services", + + // "cookies.consent.update": "There were changes since your last visit, please update your consent.", + "cookies.consent.update": "Ci sono stati dei cambiamenti dal tuo ultimo accesso, aggiorna il tuo consenso.", + + // "cookies.consent.close": "Close", + "cookies.consent.close": "Chiudere", + + // "cookies.consent.decline": "Decline", + "cookies.consent.decline": "Declinare", + + // "cookies.consent.ok": "That's ok", + // TODO New key - Add a translation + "cookies.consent.ok": "That's ok", + + // "cookies.consent.save": "Save", + // TODO New key - Add a translation + "cookies.consent.save": "Save", + + // "cookies.consent.content-notice.title": "Cookie Consent", + // TODO New key - Add a translation + "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": "Raccogliamo e processiamo le tue informazioni personali per i seguenti scopi: Autenticazione, Preferenze, Accettazione e Statistiche. Per saperne di più, leggi 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.", + // TODO New key - Add a translation + "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.learnMore": "Customize", + "cookies.consent.content-notice.learnMore": "Personalizza", + + // "cookies.consent.content-modal.description": "Here you can see and customize the information that we collect about you.", + "cookies.consent.content-modal.description": "Qui puoi vedere e personalizzare le informazioni che raccogliamo su di te.", + + // "cookies.consent.content-modal.privacy-policy.name": "privacy policy", + "cookies.consent.content-modal.privacy-policy.name": "Informativa sulla privacy", + + // "cookies.consent.content-modal.privacy-policy.text": "To learn more, please read our {privacyPolicy}.", + "cookies.consent.content-modal.privacy-policy.text": "Per saperne di più, leggi la nostra {privacyPolicy}.", + + // "cookies.consent.content-modal.title": "Information that we collect", + "cookies.consent.content-modal.title": "Informazioni che raccogliamo", + + // "cookies.consent.content-modal.services": "services", + // TODO New key - Add a translation + "cookies.consent.content-modal.services": "services", + + // "cookies.consent.content-modal.service": "service", + // TODO New key - Add a translation + "cookies.consent.content-modal.service": "service", + + // "cookies.consent.app.title.authentication": "Authentication", + "cookies.consent.app.title.authentication": "Autenticazione", + + // "cookies.consent.app.description.authentication": "Required for signing you in", + "cookies.consent.app.description.authentication": "Necessario per l'accesso", + + + // "cookies.consent.app.title.preferences": "Preferences", + "cookies.consent.app.title.preferences": "Preferenze", + + // "cookies.consent.app.description.preferences": "Required for saving your preferences", + "cookies.consent.app.description.preferences": "Necessario per salvare le tue preferenze", + + + + // "cookies.consent.app.title.acknowledgement": "Acknowledgement", + "cookies.consent.app.title.acknowledgement": "Riconoscimento", + + // "cookies.consent.app.description.acknowledgement": "Required for saving your acknowledgements and consents", + "cookies.consent.app.description.acknowledgement": "Necessario per salvare i riconoscimenti e i consensi", + + + + // "cookies.consent.app.title.google-analytics": "Google Analytics", + "cookies.consent.app.title.google-analytics": "Google Analitica", + + // "cookies.consent.app.description.google-analytics": "Allows us to track statistical data", + "cookies.consent.app.description.google-analytics": "Ci permette di tracciare i dati statistici", + + + + // "cookies.consent.app.title.google-recaptcha": "Google reCaptcha", + // TODO New key - Add a translation + "cookies.consent.app.title.google-recaptcha": "Google reCaptcha", + + // "cookies.consent.app.description.google-recaptcha": "We use google reCAPTCHA service during registration and password recovery", + // TODO New key - Add a translation + "cookies.consent.app.description.google-recaptcha": "We use google reCAPTCHA service during registration and password recovery", + + + // "cookies.consent.purpose.functional": "Functional", + "cookies.consent.purpose.functional": "Funzionale", + + // "cookies.consent.purpose.statistical": "Statistical", + "cookies.consent.purpose.statistical": "Statistico", + + // "cookies.consent.purpose.registration-password-recovery": "Registration and Password recovery", + // TODO New key - Add a translation + "cookies.consent.purpose.registration-password-recovery": "Registration and Password recovery", + + // "cookies.consent.purpose.sharing": "Sharing", + "cookies.consent.purpose.sharing": "Condivisione", + + // "curation-task.task.citationpage.label": "Generate Citation Page", + // TODO New key - Add a translation + "curation-task.task.citationpage.label": "Generate Citation Page", + + // "curation-task.task.checklinks.label": "Check Links in Metadata", + // TODO Source message changed - Revise the translation + "curation-task.task.checklinks.label": "Controllare i collegamenti nei metadati", + + // "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": "Formati Bitstream del profilo", + + // "curation-task.task.requiredmetadata.label": "Check for Required Metadata", + "curation-task.task.requiredmetadata.label": "Verifica la disponibilità di metadati richiesti", + + // "curation-task.task.translate.label": "Microsoft Translator", + "curation-task.task.translate.label": "Microsoft Translator", + + // "curation-task.task.vscan.label": "Virus Scan", + "curation-task.task.vscan.label": "Scansione antivirus", + + // "curation-task.task.register-doi.label": "Register DOI", + // TODO New key - Add a translation + "curation-task.task.register-doi.label": "Register DOI", + + + + // "curation.form.task-select.label": "Task:", + "curation.form.task-select.label": "Task:", + + // "curation.form.submit": "Start", + "curation.form.submit": "Inizio", + + // "curation.form.submit.success.head": "The curation task has been started successfully", + "curation.form.submit.success.head": "La curation task è stata avviata correttamente", + + // "curation.form.submit.success.content": "You will be redirected to the corresponding process page.", + "curation.form.submit.success.content": "Verrai reindirizzato alla pagina del processo corrispondente.", + + // "curation.form.submit.error.head": "Running the curation task failed", + "curation.form.submit.error.head": "Esecuzione della curation task non riuscita", + + // "curation.form.submit.error.content": "An error occured when trying to start the curation task.", + "curation.form.submit.error.content": "Si è verificato un errore durante il tentativo di avviare la curation task", + + // "curation.form.submit.error.invalid-handle": "Couldn't determine the handle for this object", + "curation.form.submit.error.invalid-handle": "Non è stato possibile determinare l'handle per questo oggetto", + + // "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": "Suggerimento: Inserisci [your-handle-prefix]/0 per eseguire il task in tutto il sito (non tutti i task supportano questa funzionalità)", + + + + // "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": "Gentile {{ recipientName }},\nIn risposta alla tua richiesta, mi dispiace informarti che non è possibile inviarti una copia del file(s) richiesto, riguardante il documento: \"{{ itemUrl }}\" ({{ itemName }}), di cui sono uno degli autori. \n\nCordiali saluti,\n{{ authorName }} <{{ authorEmail }}>", + + // "deny-request-copy.email.subject": "Request copy of document", + "deny-request-copy.email.subject": "Richiedi copia del documento", + + // "deny-request-copy.error": "An error occurred", + "deny-request-copy.error": "Si è verificato un errore", + + // "deny-request-copy.header": "Deny document copy request", + "deny-request-copy.header": "Nega richiesta di copia del documento", + + // "deny-request-copy.intro": "This message will be sent to the applicant of the request", + "deny-request-copy.intro": "Questo messaggio verrà inviato al richiedente della richiesta", + + // "deny-request-copy.success": "Successfully denied item request", + "deny-request-copy.success": "Richiesta di item rifiutata con successo", + + + + // "dso.name.untitled": "Untitled", + "dso.name.untitled": "Untitled", + + + + // "dso-selector.create.collection.head": "New collection", + "dso-selector.create.collection.head": "Nuova collection", + + // "dso-selector.create.collection.sub-level": "Create a new collection in", + "dso-selector.create.collection.sub-level": "Creare una nuova collection in", + + // "dso-selector.create.community.head": "New community", + "dso-selector.create.community.head": "Nuova Community", + + // "dso-selector.create.community.or-divider": "or", + // TODO New key - Add a translation + "dso-selector.create.community.or-divider": "or", + + // "dso-selector.create.community.sub-level": "Create a new community in", + "dso-selector.create.community.sub-level": "Creare una nuova community in", + + // "dso-selector.create.community.top-level": "Create a new top-level community", + "dso-selector.create.community.top-level": "Creare una nuova community di primo livello", + + // "dso-selector.create.item.head": "New item", + "dso-selector.create.item.head": "Nuovo articolo", + + // "dso-selector.create.item.sub-level": "Create a new item in", + "dso-selector.create.item.sub-level": "Creare un nuovo item in", + + // "dso-selector.create.submission.head": "New submission", + "dso-selector.create.submission.head": "Nuova submission", + + // "dso-selector.edit.collection.head": "Edit collection", + "dso-selector.edit.collection.head": "Modifica collection", + + // "dso-selector.edit.community.head": "Edit community", + "dso-selector.edit.community.head": "Modifica Community", + + // "dso-selector.edit.item.head": "Edit item", + "dso-selector.edit.item.head": "Modifica item", + + // "dso-selector.error.title": "An error occurred searching for a {{ type }}", + "dso-selector.error.title": "Si è verificato un errore durante la ricerca di un {{ type }}", + + // "dso-selector.export-metadata.dspaceobject.head": "Export metadata from", + "dso-selector.export-metadata.dspaceobject.head": "Esportare metadati da", + + // "dso-selector.export-batch.dspaceobject.head": "Export Batch (ZIP) from", + // TODO New key - Add a translation + "dso-selector.export-batch.dspaceobject.head": "Export Batch (ZIP) from", + + // "dso-selector.import-batch.dspaceobject.head": "Import batch from", + // TODO New key - Add a translation + "dso-selector.import-batch.dspaceobject.head": "Import batch from", + + // "dso-selector.no-results": "No {{ type }} found", + "dso-selector.no-results": "Nessun {{ type }} trovato", + + // "dso-selector.placeholder": "Search for a {{ type }}", + "dso-selector.placeholder": "Cerca un {{ type }}", + + // "dso-selector.select.collection.head": "Select a collection", + "dso-selector.select.collection.head": "Seleziona una collection", + + // "dso-selector.set-scope.community.head": "Select a search scope", + "dso-selector.set-scope.community.head": "Selezionare un ambito di ricerca", + + // "dso-selector.set-scope.community.button": "Search all of DSpace", + "dso-selector.set-scope.community.button": "Cerca in tutto DSpace", + + // "dso-selector.set-scope.community.or-divider": "or", + // TODO New key - Add a translation + "dso-selector.set-scope.community.or-divider": "or", + + // "dso-selector.set-scope.community.input-header": "Search for a community or collection", + "dso-selector.set-scope.community.input-header": "Cercare una community o una collection", + + // "dso-selector.claim.item.head": "Profile tips", + "dso-selector.claim.item.head": "Suggerimenti per il profilo", + + // "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": "Questi sono profili esistenti che potrebbero essere correlati a te. Se ti riconosci in uno di questi profili, selezionalo e, nella pagina dei dettagli, tra le opzioni, scegli di collegarlo. In caso contrario, puoi creare un nuovo profilo cliccando il pulsante qui sotto.", + + // "dso-selector.claim.item.not-mine-label": "None of these are mine", + "dso-selector.claim.item.not-mine-label": "Nessuno di questi è il mio profilo", + + // "dso-selector.claim.item.create-from-scratch": "Create a new one", + "dso-selector.claim.item.create-from-scratch": "Crea uno nuovo profilo", + + // "dso-selector.results-could-not-be-retrieved": "Something went wrong, please refresh again ↻", + // TODO New key - Add a translation + "dso-selector.results-could-not-be-retrieved": "Something went wrong, please refresh again ↻", + + // "supervision-group-selector.header": "Supervision Group Selector", + // TODO New key - Add a translation + "supervision-group-selector.header": "Supervision Group Selector", + + // "supervision-group-selector.select.type-of-order.label": "Select a type of Order", + // TODO New key - Add a translation + "supervision-group-selector.select.type-of-order.label": "Select a type of Order", + + // "supervision-group-selector.select.type-of-order.option.none": "NONE", + // TODO New key - Add a translation + "supervision-group-selector.select.type-of-order.option.none": "NONE", + + // "supervision-group-selector.select.type-of-order.option.editor": "EDITOR", + // TODO New key - Add a translation + "supervision-group-selector.select.type-of-order.option.editor": "EDITOR", + + // "supervision-group-selector.select.type-of-order.option.observer": "OBSERVER", + // TODO New key - Add a translation + "supervision-group-selector.select.type-of-order.option.observer": "OBSERVER", + + // "supervision-group-selector.select.group.label": "Select a Group", + // TODO New key - Add a translation + "supervision-group-selector.select.group.label": "Select a Group", + + // "supervision-group-selector.button.cancel": "Cancel", + // TODO New key - Add a translation + "supervision-group-selector.button.cancel": "Cancel", + + // "supervision-group-selector.button.save": "Save", + // TODO New key - Add a translation + "supervision-group-selector.button.save": "Save", + + // "supervision-group-selector.select.type-of-order.error": "Please select a type of order", + // TODO New key - Add a translation + "supervision-group-selector.select.type-of-order.error": "Please select a type of order", + + // "supervision-group-selector.select.group.error": "Please select a group", + // TODO New key - Add a translation + "supervision-group-selector.select.group.error": "Please select a group", + + // "supervision-group-selector.notification.create.success.title": "Successfully created supervision order for group {{ name }}", + // TODO New key - Add a translation + "supervision-group-selector.notification.create.success.title": "Successfully created supervision order for group {{ name }}", + + // "supervision-group-selector.notification.create.failure.title": "Error", + // TODO New key - Add a translation + "supervision-group-selector.notification.create.failure.title": "Error", + + // "supervision-group-selector.notification.create.already-existing": "A supervision order already exists on this item for selected group", + // TODO New key - Add a translation + "supervision-group-selector.notification.create.already-existing": "A supervision order already exists on this item for selected group", + + // "confirmation-modal.export-metadata.header": "Export metadata for {{ dsoName }}", + "confirmation-modal.export-metadata.header": "Esportare i metadati per {{ dsoName }}", + + // "confirmation-modal.export-metadata.info": "Are you sure you want to export metadata for {{ dsoName }}", + "confirmation-modal.export-metadata.info": "Sei sicuro di voler esportare i metadati per {{ dsoName }}", + + // "confirmation-modal.export-metadata.cancel": "Cancel", + "confirmation-modal.export-metadata.cancel": "Annulla", + + // "confirmation-modal.export-metadata.confirm": "Export", + "confirmation-modal.export-metadata.confirm": "Export", + + // "confirmation-modal.export-batch.header": "Export batch (ZIP) for {{ dsoName }}", + // TODO New key - Add a translation + "confirmation-modal.export-batch.header": "Export batch (ZIP) for {{ dsoName }}", + + // "confirmation-modal.export-batch.info": "Are you sure you want to export batch (ZIP) for {{ dsoName }}", + // TODO New key - Add a translation + "confirmation-modal.export-batch.info": "Are you sure you want to export batch (ZIP) for {{ dsoName }}", + + // "confirmation-modal.export-batch.cancel": "Cancel", + // TODO New key - Add a translation + "confirmation-modal.export-batch.cancel": "Cancel", + + // "confirmation-modal.export-batch.confirm": "Export", + // TODO New key - Add a translation + "confirmation-modal.export-batch.confirm": "Export", + + // "confirmation-modal.delete-eperson.header": "Delete EPerson \"{{ dsoName }}\"", + "confirmation-modal.delete-eperson.header": "Elimina EPerson \"{{ dsoName }}\"", + + // "confirmation-modal.delete-eperson.info": "Are you sure you want to delete EPerson \"{{ dsoName }}\"", + "confirmation-modal.delete-eperson.info": "Sei sicuro di voler eliminare l'EPerson \"{{ dsoName }}\"", + + // "confirmation-modal.delete-eperson.cancel": "Cancel", + "confirmation-modal.delete-eperson.cancel": "Annulla", + + // "confirmation-modal.delete-eperson.confirm": "Delete", + "confirmation-modal.delete-eperson.confirm": "Elimina", + + // "confirmation-modal.delete-profile.header": "Delete Profile", + "confirmation-modal.delete-profile.header": "Elimina il profilo", + + // "confirmation-modal.delete-profile.info": "Are you sure you want to delete your profile", + "confirmation-modal.delete-profile.info": "Sei sicuro di voler eliminare il tuo profilo", + + // "confirmation-modal.delete-profile.cancel": "Cancel", + "confirmation-modal.delete-profile.cancel": "Annulla", + + // "confirmation-modal.delete-profile.confirm": "Delete", + "confirmation-modal.delete-profile.confirm": "Elimina", + + // "confirmation-modal.delete-subscription.header": "Delete Subscription", + // TODO Source message changed - Revise the translation + "confirmation-modal.delete-subscription.header": "Elimina iscrizione per \"{{ dsoName }}\"", + + // "confirmation-modal.delete-subscription.info": "Are you sure you want to delete subscription for \"{{ dsoName }}\"", + "confirmation-modal.delete-subscription.info": "Sei sicuro di voler eliminare l'iscrizione per \"{{ dsoName }}\"", + + // "confirmation-modal.delete-subscription.cancel": "Cancel", + "confirmation-modal.delete-subscription.cancel": "Annulla", + + // "confirmation-modal.delete-subscription.confirm": "Delete", + "confirmation-modal.delete-subscription.confirm": "Elimina", + + // "error.bitstream": "Error fetching bitstream", + "error.bitstream": "Errore durante il recupero del bitstream", + + // "error.browse-by": "Error fetching items", + "error.browse-by": "Errore durante il recupero degli item", + + // "error.collection": "Error fetching collection", + "error.collection": "Errore durante il recupero della collection", + + // "error.collections": "Error fetching collections", + "error.collections": "Errore durante il recupero delle collections", + + // "error.community": "Error fetching community", + "error.community": "Errore durante il recupero della community", + + // "error.identifier": "No item found for the identifier", + "error.identifier": "Nessun item trovato per l'identificatore", + + // "error.default": "Error", + "error.default": "Errore", + + // "error.item": "Error fetching item", + "error.item": "Errore durante il recupero dell'item", + + // "error.items": "Error fetching items", + "error.items": "Errore durante il recupero degli item", + + // "error.objects": "Error fetching objects", + "error.objects": "Errore durante il recupero degli oggetti", + + // "error.recent-submissions": "Error fetching recent submissions", + "error.recent-submissions": "Errore durante il recupero delle submissions recenti", + + // "error.search-results": "Error fetching search results", + "error.search-results": "Errore durante il recupero dei risultati della ricerca", + + // "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 query di ricerca non è valida. Controllare Solr query syntax per ulteriori informazioni riguardo questo errore.", + + // "error.sub-collections": "Error fetching sub-collections", + "error.sub-collections": "Errore durante il recupero delle sottoreti", + + // "error.sub-communities": "Error fetching sub-communities", + "error.sub-communities": "Errore durante il recupero delle sottocomitarie", + + // "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": "Si è verificato un errore durante l'inizializzazione della sezione, controllare la configurazione dell'input-form. Dettagli: ", + + // "error.top-level-communities": "Error fetching top-level communities", + "error.top-level-communities": "Errore durante il recupero delle community di primo livello", + + // "error.validation.license.notgranted": "You must grant this license to complete your submission. If you are unable to grant this license at this time you may save your work and return later or remove the submission.", + "error.validation.license.notgranted": "È necessario concedere questa licenza per completare la submission. Se non sei in grado di concedere questa licenza in questo momento, puoi salvare il tuo lavoro e tornare più tardi o rimuovere la submission.", + + // "error.validation.pattern": "This input is restricted by the current pattern: {{ pattern }}.", + // TODO New key - Add a translation + "error.validation.pattern": "This input is restricted by the current pattern: {{ pattern }}.", + + // "error.validation.filerequired": "The file upload is mandatory", + "error.validation.filerequired": "Il caricamento del file è obbligatorio", + + // "error.validation.required": "This field is required", + "error.validation.required": "Questo campo è obbligatorio", + + // "error.validation.NotValidEmail": "This E-mail is not a valid email", + "error.validation.NotValidEmail": "Questa e-mail non è un'e-mail valida", + + // "error.validation.emailTaken": "This E-mail is already taken", + "error.validation.emailTaken": "Questa e-mail è già in uso", + + // "error.validation.groupExists": "This group already exists", + "error.validation.groupExists": "Gruppo già esistente", + + + // "feed.description": "Syndication feed", + // TODO New key - Add a translation + "feed.description": "Syndication feed", + + + // "file-section.error.header": "Error obtaining files for this item", + "file-section.error.header": "Errore durante il recupero dei file per questo item", + + + + // "footer.copyright": "copyright © 2002-{{ year }}", + "footer.copyright": "copyright © 2002-{{ year }}", + + // "footer.link.dspace": "DSpace software", + "footer.link.dspace": "Software DSpace", + + // "footer.link.lyrasis": "LYRASIS", + "footer.link.lyrasis": "LYRASIS", + + // "footer.link.cookies": "Cookie settings", + "footer.link.cookies": "Impostazioni dei cookie", + + // "footer.link.privacy-policy": "Privacy policy", + "footer.link.privacy-policy": "Informativa sulla privacy", + + // "footer.link.end-user-agreement": "End User Agreement", + // TODO Source message changed - Revise the translation + "footer.link.end-user-agreement": "Accordo con l'utente finale", + + // "footer.link.feedback": "Send Feedback", + // TODO Source message changed - Revise the translation + "footer.link.feedback": "Invia Feedback", + + + + // "forgot-email.form.header": "Forgot Password", + "forgot-email.form.header": "Password dimenticata", + + // "forgot-email.form.info": "Enter the email address associated with the account.", + // TODO Source message changed - Revise the translation + "forgot-email.form.info": "Accedi a registra un account per iscriverti alle collections, per ricevere aggiornamenti via email e per poter inserire nuovi item in DSpace.", + + // "forgot-email.form.email": "Email Address *", + "forgot-email.form.email": "Indirizzo email *", + + // "forgot-email.form.email.error.required": "Please fill in an email address", + "forgot-email.form.email.error.required": "Si prega di inserire un indirizzo email", + + // "forgot-email.form.email.error.not-email-form": "Please fill in a valid email address", + // TODO New key - Add a translation + "forgot-email.form.email.error.not-email-form": "Please fill in a valid email address", + + // "forgot-email.form.email.hint": "An email will be sent to this address with a further instructions.", + // TODO Source message changed - Revise the translation + "forgot-email.form.email.hint": "Questo indirizzo verrà verificato e utilizzato come login name.", + + // "forgot-email.form.submit": "Reset password", + // TODO Source message changed - Revise the translation + "forgot-email.form.submit": "Salva", + + // "forgot-email.form.success.head": "Password reset email sent", + // TODO Source message changed - Revise the translation + "forgot-email.form.success.head": "Email di verifica inviata", + + // "forgot-email.form.success.content": "An email has been sent to {{ email }} containing a special URL and further instructions.", + "forgot-email.form.success.content": "È stata inviata un'email a {{ email }} contenente un URL speciale e ulteriori indicazioni.", + + // "forgot-email.form.error.head": "Error when trying to reset password", + // TODO Source message changed - Revise the translation + "forgot-email.form.error.head": "Errore durante il tentativo di registrare l'email", + + // "forgot-email.form.error.content": "An error occured when attempting to reset the password for the account associated with the following email address: {{ email }}", + // TODO New key - Add a translation + "forgot-email.form.error.content": "An error occured when attempting to reset the password for the account associated with the following email address: {{ email }}", + + + + // "forgot-password.title": "Forgot Password", + "forgot-password.title": "Password dimenticata", + + // "forgot-password.form.head": "Forgot Password", + "forgot-password.form.head": "Password dimenticata", + + // "forgot-password.form.info": "Enter a new password in the box below, and confirm it by typing it again into the second box.", + // TODO Source message changed - Revise the translation + "forgot-password.form.info": "Inserisci una nuova password nella casella qui sotto e confermala digitandola di nuovo nella seconda casella. Dovrebbe avere una lunghezza di almeno sei caratteri.", + + // "forgot-password.form.card.security": "Security", + "forgot-password.form.card.security": "Sicurezza", + + // "forgot-password.form.identification.header": "Identify", + "forgot-password.form.identification.header": "Identifica", + + // "forgot-password.form.identification.email": "Email address: ", + "forgot-password.form.identification.email": "Indirizzo email: ", + + // "forgot-password.form.label.password": "Password", + "forgot-password.form.label.password": "Password", + + // "forgot-password.form.label.passwordrepeat": "Retype to confirm", + "forgot-password.form.label.passwordrepeat": "Digita nuovamente per confermare", + + // "forgot-password.form.error.empty-password": "Please enter a password in the box below.", + "forgot-password.form.error.empty-password": "Inserisci una password nella casella qui sotto.", + + // "forgot-password.form.error.matching-passwords": "The passwords do not match.", + "forgot-password.form.error.matching-passwords": "Le password non corrispondono.", + + // "forgot-password.form.notification.error.title": "Error when trying to submit new password", + "forgot-password.form.notification.error.title": "Errore durante il tentativo di inviare una nuova password", + + // "forgot-password.form.notification.success.content": "The password reset was successful. You have been logged in as the created user.", + "forgot-password.form.notification.success.content": "La password è stata reimpostata con successo. Hai effettuato l'accesso come l'utente che è stato creato.", + + // "forgot-password.form.notification.success.title": "Password reset completed", + "forgot-password.form.notification.success.title": "La password è stata reimpostata", + + // "forgot-password.form.submit": "Submit password", + "forgot-password.form.submit": "Invia password", + + + // "form.add": "Add more", + "form.add": "Aggiungi altro", + + // "form.add-help": "Click here to add the current entry and to add another one", + "form.add-help": "Clicca qui per aggiungere la voce corrente e per aggiungerne un'altra", + + // "form.cancel": "Cancel", + "form.cancel": "Annulla", + + // "form.clear": "Clear", + "form.clear": "Pulisci", + + // "form.clear-help": "Click here to remove the selected value", + "form.clear-help": "Clicca qui per rimuovere il valore selezionato", + + // "form.discard": "Discard", + "form.discard": "Annulla", + + // "form.drag": "Drag", + "form.drag": "Trascina", + + // "form.edit": "Edit", + "form.edit": "Edita", + + // "form.edit-help": "Click here to edit the selected value", + "form.edit-help": "Clicca qui per modificare il valore selezionato", + + // "form.first-name": "First name", + "form.first-name": "Nome", + + // "form.group-collapse": "Collapse", + // TODO New key - Add a translation + "form.group-collapse": "Collapse", + + // "form.group-collapse-help": "Click here to collapse", + // TODO New key - Add a translation + "form.group-collapse-help": "Click here to collapse", + + // "form.group-expand": "Expand", + // TODO New key - Add a translation + "form.group-expand": "Expand", + + // "form.group-expand-help": "Click here to expand and add more elements", + // TODO New key - Add a translation + "form.group-expand-help": "Click here to expand and add more elements", + + // "form.last-name": "Last name", + "form.last-name": "Cognome", + + // "form.loading": "Loading...", + "form.loading": "Caricamento...", + + // "form.lookup": "Lookup", + "form.lookup": "Ricerca", + + // "form.lookup-help": "Click here to look up an existing relation", + "form.lookup-help": "Clicca qui per cercare una relazione già esistente", + + // "form.no-results": "No results found", + "form.no-results": "Nessun risultato trovato", + + // "form.no-value": "No value entered", + "form.no-value": "Non è stato inserito nessun valore", + + // "form.other-information": {}, + // TODO New key - Add a translation + "form.other-information": {}, + + // "form.remove": "Remove", + "form.remove": "Rimuovi", + + // "form.save": "Save", + "form.save": "Salva", + + // "form.save-help": "Save changes", + "form.save-help": "Salva le modifiche", + + // "form.search": "Search", + "form.search": "Ricerca", + + // "form.search-help": "Click here to look for an existing correspondence", + "form.search-help": "Clicca qui per cercare una corrispondenza già esistente", + + // "form.submit": "Save", + "form.submit": "Salva", + + // "form.create": "Create", + // TODO New key - Add a translation + "form.create": "Create", + + // "form.repeatable.sort.tip": "Drop the item in the new position", + "form.repeatable.sort.tip": "Rilascia l'item nella nuova posizione", + + + + // "grant-deny-request-copy.deny": "Don't send copy", + "grant-deny-request-copy.deny": "Non inviare una copia", + + // "grant-deny-request-copy.email.back": "Back", + "grant-deny-request-copy.email.back": "Indietro", + + // "grant-deny-request-copy.email.message": "Message", + "grant-deny-request-copy.email.message": "Messaggio", + + // "grant-deny-request-copy.email.message.empty": "Please enter a message", + "grant-deny-request-copy.email.message.empty": "Inserisci un messaggio", + + // "grant-deny-request-copy.email.permissions.info": "You may use this occasion to reconsider the access restrictions on the document, to avoid having to respond to these requests. If you’d like to ask the repository administrators to remove these restrictions, please check the box below.", + "grant-deny-request-copy.email.permissions.info": "In questa fase è possibile riconsiderare le restrizioni di accesso al documento, in modo da evitare di dover rispondere a tali richieste. Se desideri chiedere agli amministratori del repository di rimuovere queste restrizioni, seleziona la casella qui sotto.", + + // "grant-deny-request-copy.email.permissions.label": "Change to open access", + "grant-deny-request-copy.email.permissions.label": "Modifica in open access", + + // "grant-deny-request-copy.email.send": "Send", + "grant-deny-request-copy.email.send": "Invia", + + // "grant-deny-request-copy.email.subject": "Subject", + "grant-deny-request-copy.email.subject": "Subject", + + // "grant-deny-request-copy.email.subject.empty": "Please enter a subject", + "grant-deny-request-copy.email.subject.empty": "Inserisci un subject", + + // "grant-deny-request-copy.grant": "Send copy", + "grant-deny-request-copy.grant": "Invia una copia", + + // "grant-deny-request-copy.header": "Document copy request", + "grant-deny-request-copy.header": "Richiedi una copia del documento", + + // "grant-deny-request-copy.home-page": "Take me to the home page", + "grant-deny-request-copy.home-page": "Torna alla home page", + + // "grant-deny-request-copy.intro1": "If you are one of the authors of the document {{ name }}, then please use one of the options below to respond to the user's request.", + "grant-deny-request-copy.intro1": "Se sei uno degli autori del documento {{ name }} seleziona una delle seguenti opzioni per rispondere alla richiesta dell'utente.", + + // "grant-deny-request-copy.intro2": "After choosing an option, you will be presented with a suggested email reply which you may edit.", + "grant-deny-request-copy.intro2": "Dopo aver scelto un'opzione, ti verrà suggerita una risposta e-mail che potrai modificare.", + + // "grant-deny-request-copy.processed": "This request has already been processed. You can use the button below to get back to the home page.", + "grant-deny-request-copy.processed": "Questa richiesta è già stata elaborata. Puoi cliccare il pulsante qui sotto per tornare alla home page.", + + + + // "grant-request-copy.email.message": "Dear {{ recipientName }},\nIn response to your request I have the pleasure to send you in attachment a copy of the file(s) concerning the document: \"{{ itemUrl }}\" ({{ itemName }}), of which I am an author.\n\nBest regards,\n{{ authorName }} <{{ authorEmail }}>", + "grant-request-copy.email.message": "Gentile {{ recipientName }},\nin tisposta alla tua richiesta, ho il piacere di inviarti come allegato una copia del file riferito al documento: \"{{ itemUrl }}\" ({{ itemName }}), di cui sono l'autore.\n\nUn cordiale saluto,\n{{ authorName }} <{{ authorEmail }}>", + + // "grant-request-copy.email.subject": "Request copy of document", + "grant-request-copy.email.subject": "Richiedi una copia del documento", + + // "grant-request-copy.error": "An error occurred", + "grant-request-copy.error": "Si è verificato un errore", + + // "grant-request-copy.header": "Grant document copy request", + "grant-request-copy.header": "Richiedi una copia del documento di sovvenzione", + + // "grant-request-copy.intro": "This message will be sent to the applicant of the request. The requested document(s) will be attached.", + "grant-request-copy.intro": "Questo messaggio verrà inviato a chi ha effettuato la richiesta. VErranno allegati i documenti richiesti.", + + // "grant-request-copy.success": "Successfully granted item request", + "grant-request-copy.success": "Richiesta dell'item concessa con successo", + + + // "health.breadcrumbs": "Health", + // TODO New key - Add a translation + "health.breadcrumbs": "Health", + + // "health-page.heading": "Health", + // TODO New key - Add a translation + "health-page.heading": "Health", + + // "health-page.info-tab": "Info", + // TODO New key - Add a translation + "health-page.info-tab": "Info", + + // "health-page.status-tab": "Status", + // TODO New key - Add a translation + "health-page.status-tab": "Status", + + // "health-page.error.msg": "The health check service is temporarily unavailable", + "health-page.error.msg": "Il servizio di health check è temporaneamente non disponibile.", + + // "health-page.property.status": "Status code", + // TODO New key - Add a translation + "health-page.property.status": "Status code", + + // "health-page.section.db.title": "Database", + "health-page.section.db.title": "Database", + + // "health-page.section.geoIp.title": "GeoIp", + // TODO New key - Add a translation + "health-page.section.geoIp.title": "GeoIp", + + // "health-page.section.solrAuthorityCore.title": "Solr: authority core", + // TODO New key - Add a translation + "health-page.section.solrAuthorityCore.title": "Solr: authority core", + + // "health-page.section.solrOaiCore.title": "Solr: oai core", + // TODO New key - Add a translation + "health-page.section.solrOaiCore.title": "Solr: oai core", + + // "health-page.section.solrSearchCore.title": "Solr: search core", + // TODO New key - Add a translation + "health-page.section.solrSearchCore.title": "Solr: search core", + + // "health-page.section.solrStatisticsCore.title": "Solr: statistics core", + // TODO New key - Add a translation + "health-page.section.solrStatisticsCore.title": "Solr: statistics core", + + // "health-page.section-info.app.title": "Application Backend", + "health-page.section-info.app.title": "Backend dell'applicativo", + + // "health-page.section-info.java.title": "Java", + "health-page.section-info.java.title": "Java", + + // "health-page.status": "Status", + // TODO New key - Add a translation + "health-page.status": "Status", + + // "health-page.status.ok.info": "Operational", + // TODO New key - Add a translation + "health-page.status.ok.info": "Operational", + + // "health-page.status.error.info": "Problems detected", + "health-page.status.error.info": "Sono stati rilevati dei problemi", + + // "health-page.status.warning.info": "Possible issues detected", + "health-page.status.warning.info": "Sono stati rilevati dei potenziali problemi", + + // "health-page.title": "Health", + // TODO New key - Add a translation + "health-page.title": "Health", + + // "health-page.section.no-issues": "No issues detected", + "health-page.section.no-issues": "Nessun problema rilevato", + + + // "home.description": "", + "home.description": "", + + // "home.breadcrumbs": "Home", + "home.breadcrumbs": "Home", + + // "home.search-form.placeholder": "Search the repository ...", + "home.search-form.placeholder": "Cerca nel repository ...", + + // "home.title": "Home", + "home.title": "Home", + + // "home.top-level-communities.head": "Communities in DSpace", + "home.top-level-communities.head": "Community in DSpace", + + // "home.top-level-communities.help": "Select a community to browse its collections.", + // TODO Source message changed - Revise the translation + "home.top-level-communities.help": "Cerca una collection", + + + + // "info.end-user-agreement.accept": "I have read and I agree to the End User Agreement", + "info.end-user-agreement.accept": "Ho letto e accetto l'Accordo con l'utente finale", + + // "info.end-user-agreement.accept.error": "An error occurred accepting the End User Agreement", + "info.end-user-agreement.accept.error": "Si è verificato un errore durante l'accettazione dell'Accordo con l'utente finale", + + // "info.end-user-agreement.accept.success": "Successfully updated the End User Agreement", + "info.end-user-agreement.accept.success": "L'Accordo con l'utente finale è stato aggiornato con successo", + + // "info.end-user-agreement.breadcrumbs": "End User Agreement", + "info.end-user-agreement.breadcrumbs": "Accordo con l'utente finale", + + // "info.end-user-agreement.buttons.cancel": "Cancel", + "info.end-user-agreement.buttons.cancel": "Annulla", + + // "info.end-user-agreement.buttons.save": "Save", + "info.end-user-agreement.buttons.save": "Salva", + + // "info.end-user-agreement.head": "End User Agreement", + "info.end-user-agreement.head": "Accordo con l'utente finale", + + // "info.end-user-agreement.title": "End User Agreement", + "info.end-user-agreement.title": "Accordo con l'utente finale", + + // "info.privacy.breadcrumbs": "Privacy Statement", + "info.privacy.breadcrumbs": "Informativa sulla privacy", + + // "info.privacy.head": "Privacy Statement", + "info.privacy.head": "Informativa sulla privacy", + + // "info.privacy.title": "Privacy Statement", + "info.privacy.title": "Informativa sulla privacy", + + // "info.feedback.breadcrumbs": "Feedback", + "info.feedback.breadcrumbs": "Feedback", + + // "info.feedback.head": "Feedback", + "info.feedback.head": "Feedback", + + // "info.feedback.title": "Feedback", + "info.feedback.title": "Feedback", + + // "info.feedback.info": "Thanks for sharing your feedback about the DSpace system. Your comments are appreciated!", + "info.feedback.info": "Grazie per aver condiviso il tuo feedback sul DSpace. I vostri commenti sono importanti!", + + // "info.feedback.email_help": "This address will be used to follow up on your feedback.", + "info.feedback.email_help": "Questo indirizzo verrà utilizzato per dare una risposta al tuo feedback.", + + // "info.feedback.send": "Send Feedback", + "info.feedback.send": "Invia feedback", + + // "info.feedback.comments": "Comments", + "info.feedback.comments": "Commenti", + + // "info.feedback.email-label": "Your Email", + "info.feedback.email-label": "La tua email", + + // "info.feedback.create.success": "Feedback Sent Successfully!", + // TODO Source message changed - Revise the translation + "info.feedback.create.success": "Feedback inviato con successo!", + + // "info.feedback.error.email.required": "A valid email address is required", + // TODO Source message changed - Revise the translation + "info.feedback.error.email.required": "Inserire un un indirizzo email valido", + + // "info.feedback.error.message.required": "A comment is required", + // TODO Source message changed - Revise the translation + "info.feedback.error.message.required": "Inserire un commento", + + // "info.feedback.page-label": "Page", + // TODO Source message changed - Revise the translation + "info.feedback.page-label": "Pagina", + + // "info.feedback.page_help": "Tha page related to your feedback", + // TODO Source message changed - Revise the translation + "info.feedback.page_help": "In questa pagina trovi i tuoi feedback", + + + + // "item.alerts.private": "This item is non-discoverable", + "item.alerts.private": "Questo item è privato", + + // "item.alerts.withdrawn": "This item has been withdrawn", + "item.alerts.withdrawn": "Questo item è stato rimosso", + + + + // "item.edit.authorizations.heading": "With this editor you can view and alter the policies of an item, plus alter policies of individual item components: bundles and bitstreams. Briefly, an item is a container of bundles, and bundles are containers of bitstreams. Containers usually have ADD/REMOVE/READ/WRITE policies, while bitstreams only have READ/WRITE policies.", + "item.edit.authorizations.heading": "Con questo editor puoi vedere e modificare le policies di un item, e anche modificare le policies dei singoli componenti dell'item: bundles e bitstreams. Un item è il contenitore di bundles, e i bundles sono contenitori di bitstreams. I contenitori riportano solitamente le policies di ADD/REMOVE/READ/WRITE, mentre i bitstreams hanno solamente policies di READ/WRITE.", + + // "item.edit.authorizations.title": "Edit item's Policies", + "item.edit.authorizations.title": "Modificare le policies dell'item", + + + + // "item.badge.private": "Non-discoverable", + // TODO Source message changed - Revise the translation + "item.badge.private": "Privato", + + // "item.badge.withdrawn": "Withdrawn", + "item.badge.withdrawn": "Rimosso", + + + + // "item.bitstreams.upload.bundle": "Bundle", + "item.bitstreams.upload.bundle": "Bundle", + + // "item.bitstreams.upload.bundle.placeholder": "Select a bundle or input new bundle name", + // TODO Source message changed - Revise the translation + "item.bitstreams.upload.bundle.placeholder": "Seleziona un bundle o inserisci il nome di un nuovo bundle", + + // "item.bitstreams.upload.bundle.new": "Create bundle", + "item.bitstreams.upload.bundle.new": "Crea un bundle", + + // "item.bitstreams.upload.bundles.empty": "This item doesn't contain any bundles to upload a bitstream to.", + // TODO Source message changed - Revise the translation + "item.bitstreams.upload.bundles.empty": "Questo item non contiene alcun bundle in cui caricare un bitstream.", + + // "item.bitstreams.upload.cancel": "Cancel", + "item.bitstreams.upload.cancel": "Annulla", + + // "item.bitstreams.upload.drop-message": "Drop a file to upload", + "item.bitstreams.upload.drop-message": "Rilascia un file da caricare", + + // "item.bitstreams.upload.item": "Item: ", + "item.bitstreams.upload.item": "Item:", + + // "item.bitstreams.upload.notifications.bundle.created.content": "Successfully created new bundle.", + "item.bitstreams.upload.notifications.bundle.created.content": "Il nuovo bundle è stato creato con successo.", + + // "item.bitstreams.upload.notifications.bundle.created.title": "Created bundle", + "item.bitstreams.upload.notifications.bundle.created.title": "Bundle creato", + + // "item.bitstreams.upload.notifications.upload.failed": "Upload failed. Please verify the content before retrying.", + "item.bitstreams.upload.notifications.upload.failed": "Caricamento non riuscito. Verifica il contenuto prima di riprovare.", + + // "item.bitstreams.upload.title": "Upload bitstream", + "item.bitstreams.upload.title": "Carica bitstream", + + + + // "item.edit.bitstreams.bundle.edit.buttons.upload": "Upload", + "item.edit.bitstreams.bundle.edit.buttons.upload": "Carica", + + // "item.edit.bitstreams.bundle.displaying": "Currently displaying {{ amount }} bitstreams of {{ total }}.", + "item.edit.bitstreams.bundle.displaying": "Attualmente sono visualizzati {{ amount }} bitstream su {{ total }}.", + + // "item.edit.bitstreams.bundle.load.all": "Load all ({{ total }})", + "item.edit.bitstreams.bundle.load.all": "Carica tutto ({{ total }})", + + // "item.edit.bitstreams.bundle.load.more": "Load more", + "item.edit.bitstreams.bundle.load.more": "Carica più risorse", + + // "item.edit.bitstreams.bundle.name": "BUNDLE: {{ name }}", + "item.edit.bitstreams.bundle.name": "BUNDLE: {{ name }}", + + // "item.edit.bitstreams.discard-button": "Discard", + "item.edit.bitstreams.discard-button": "Annulla", + + // "item.edit.bitstreams.edit.buttons.download": "Download", + "item.edit.bitstreams.edit.buttons.download": "Download", + + // "item.edit.bitstreams.edit.buttons.drag": "Drag", + "item.edit.bitstreams.edit.buttons.drag": "Trascina", + + // "item.edit.bitstreams.edit.buttons.edit": "Edit", + "item.edit.bitstreams.edit.buttons.edit": "Edita", + + // "item.edit.bitstreams.edit.buttons.remove": "Remove", + "item.edit.bitstreams.edit.buttons.remove": "Rimuovi", + + // "item.edit.bitstreams.edit.buttons.undo": "Undo changes", + "item.edit.bitstreams.edit.buttons.undo": "Annullare le modifiche", + + // "item.edit.bitstreams.empty": "This item doesn't contain any bitstreams. Click the upload button to create one.", + "item.edit.bitstreams.empty": "Questo item non contiene bitstreams. Fai clic sul pulsante di caricamento per crearne uno.", + + // "item.edit.bitstreams.headers.actions": "Actions", + "item.edit.bitstreams.headers.actions": "Azioni", + + // "item.edit.bitstreams.headers.bundle": "Bundle", + "item.edit.bitstreams.headers.bundle": "Bundle", + + // "item.edit.bitstreams.headers.description": "Description", + "item.edit.bitstreams.headers.description": "Descrizione", + + // "item.edit.bitstreams.headers.format": "Format", + "item.edit.bitstreams.headers.format": "Formato", + + // "item.edit.bitstreams.headers.name": "Name", + "item.edit.bitstreams.headers.name": "Nome", + + // "item.edit.bitstreams.notifications.discarded.content": "Your changes were discarded. To reinstate your changes click the 'Undo' button", + "item.edit.bitstreams.notifications.discarded.content": "Le modifiche sono state annullate. Per ripristinarle, fai clic sul pulsante \"Annulla\"", + + // "item.edit.bitstreams.notifications.discarded.title": "Changes discarded", + "item.edit.bitstreams.notifications.discarded.title": "Modifiche annullate", + + // "item.edit.bitstreams.notifications.move.failed.title": "Error moving bitstreams", + "item.edit.bitstreams.notifications.move.failed.title": "Errore durante lo spostamento dei bitstreams", + + // "item.edit.bitstreams.notifications.move.saved.content": "Your move changes to this item's bitstreams and bundles have been saved.", + "item.edit.bitstreams.notifications.move.saved.content": "Le modifiche di spostamento dei bitstream e dei bundle di questo item sono state salvate.", + + // "item.edit.bitstreams.notifications.move.saved.title": "Move changes saved", + "item.edit.bitstreams.notifications.move.saved.title": "Spostamento delle modifiche salvato", + + // "item.edit.bitstreams.notifications.outdated.content": "The item you're currently working on has been changed by another user. Your current changes are discarded to prevent conflicts", + "item.edit.bitstreams.notifications.outdated.content": "L'item su cui stai attualmente lavorando è stato modificato da un altro utente. Le modifiche correnti verranno eliminate per evitare conflitti", + + // "item.edit.bitstreams.notifications.outdated.title": "Changes outdated", + "item.edit.bitstreams.notifications.outdated.title": "Modifiche obsolete", + + // "item.edit.bitstreams.notifications.remove.failed.title": "Error deleting bitstream", + "item.edit.bitstreams.notifications.remove.failed.title": "Errore durante l'eliminazione del bitstream", + + // "item.edit.bitstreams.notifications.remove.saved.content": "Your removal changes to this item's bitstreams have been saved.", + "item.edit.bitstreams.notifications.remove.saved.content": "Le modifiche apportate alla rimozione dei bitstreams di questo item sono state salvate.", + + // "item.edit.bitstreams.notifications.remove.saved.title": "Removal changes saved", + "item.edit.bitstreams.notifications.remove.saved.title": "Annullamento delle modifiche salvato", + + // "item.edit.bitstreams.reinstate-button": "Undo", + "item.edit.bitstreams.reinstate-button": "Annulla", + + // "item.edit.bitstreams.save-button": "Save", + "item.edit.bitstreams.save-button": "Salva", + + // "item.edit.bitstreams.upload-button": "Upload", + "item.edit.bitstreams.upload-button": "Carica", + + + + // "item.edit.delete.cancel": "Cancel", + "item.edit.delete.cancel": "Annulla", + + // "item.edit.delete.confirm": "Delete", + "item.edit.delete.confirm": "Elimina", + + // "item.edit.delete.description": "Are you sure this item should be completely deleted? Caution: At present, no tombstone would be left.", + "item.edit.delete.description": "Sei sicuro che questo item debba essere eliminato definitivamente? Attenzione: attualmente, non verrà lasciato alcun placeholder.", + + // "item.edit.delete.error": "An error occurred while deleting the item", + "item.edit.delete.error": "Si è verificato un errore durante la cancellazione dell'item", + + // "item.edit.delete.header": "Delete item: {{ id }}", + "item.edit.delete.header": "Elimina item: {{ id }}", + + // "item.edit.delete.success": "The item has been deleted", + "item.edit.delete.success": "L'item è stato eliminato", + + // "item.edit.head": "Edit Item", + "item.edit.head": "Modifica item", + + // "item.edit.breadcrumbs": "Edit Item", + "item.edit.breadcrumbs": "Modifica item", + + // "item.edit.tabs.disabled.tooltip": "You're not authorized to access this tab", + "item.edit.tabs.disabled.tooltip": "Non sei autorizzato ad accedere a questa tab", + + + // "item.edit.tabs.mapper.head": "Collection Mapper", + "item.edit.tabs.mapper.head": "collection Mapper", + + // "item.edit.tabs.item-mapper.title": "Item Edit - Collection Mapper", + "item.edit.tabs.item-mapper.title": "Modifica item - Mapper Collection", + + // "item.edit.identifiers.doi.status.UNKNOWN": "Unknown", + // TODO New key - Add a translation + "item.edit.identifiers.doi.status.UNKNOWN": "Unknown", + + // "item.edit.identifiers.doi.status.TO_BE_REGISTERED": "Queued for registration", + // TODO New key - Add a translation + "item.edit.identifiers.doi.status.TO_BE_REGISTERED": "Queued for registration", + + // "item.edit.identifiers.doi.status.TO_BE_RESERVED": "Queued for reservation", + // TODO New key - Add a translation + "item.edit.identifiers.doi.status.TO_BE_RESERVED": "Queued for reservation", + + // "item.edit.identifiers.doi.status.IS_REGISTERED": "Registered", + // TODO New key - Add a translation + "item.edit.identifiers.doi.status.IS_REGISTERED": "Registered", + + // "item.edit.identifiers.doi.status.IS_RESERVED": "Reserved", + // TODO New key - Add a translation + "item.edit.identifiers.doi.status.IS_RESERVED": "Reserved", + + // "item.edit.identifiers.doi.status.UPDATE_RESERVED": "Reserved (update queued)", + // TODO New key - Add a translation + "item.edit.identifiers.doi.status.UPDATE_RESERVED": "Reserved (update queued)", + + // "item.edit.identifiers.doi.status.UPDATE_REGISTERED": "Registered (update queued)", + // TODO New key - Add a translation + "item.edit.identifiers.doi.status.UPDATE_REGISTERED": "Registered (update queued)", + + // "item.edit.identifiers.doi.status.UPDATE_BEFORE_REGISTRATION": "Queued for update and registration", + // TODO New key - Add a translation + "item.edit.identifiers.doi.status.UPDATE_BEFORE_REGISTRATION": "Queued for update and registration", + + // "item.edit.identifiers.doi.status.TO_BE_DELETED": "Queued for deletion", + // TODO New key - Add a translation + "item.edit.identifiers.doi.status.TO_BE_DELETED": "Queued for deletion", + + // "item.edit.identifiers.doi.status.DELETED": "Deleted", + // TODO New key - Add a translation + "item.edit.identifiers.doi.status.DELETED": "Deleted", + + // "item.edit.identifiers.doi.status.PENDING": "Pending (not registered)", + // TODO New key - Add a translation + "item.edit.identifiers.doi.status.PENDING": "Pending (not registered)", + + // "item.edit.identifiers.doi.status.MINTED": "Minted (not registered)", + // TODO New key - Add a translation + "item.edit.identifiers.doi.status.MINTED": "Minted (not registered)", + + // "item.edit.tabs.status.buttons.register-doi.label": "Register a new or pending DOI", + // TODO New key - Add a translation + "item.edit.tabs.status.buttons.register-doi.label": "Register a new or pending DOI", + + // "item.edit.tabs.status.buttons.register-doi.button": "Register DOI...", + // TODO New key - Add a translation + "item.edit.tabs.status.buttons.register-doi.button": "Register DOI...", + + // "item.edit.register-doi.header": "Register a new or pending DOI", + // TODO New key - Add a translation + "item.edit.register-doi.header": "Register a new or pending DOI", + + // "item.edit.register-doi.description": "Review any pending identifiers and item metadata below and click Confirm to proceed with DOI registration, or Cancel to back out", + // TODO New key - Add a translation + "item.edit.register-doi.description": "Review any pending identifiers and item metadata below and click Confirm to proceed with DOI registration, or Cancel to back out", + + // "item.edit.register-doi.confirm": "Confirm", + // TODO New key - Add a translation + "item.edit.register-doi.confirm": "Confirm", + + // "item.edit.register-doi.cancel": "Cancel", + // TODO New key - Add a translation + "item.edit.register-doi.cancel": "Cancel", + + // "item.edit.register-doi.success": "DOI queued for registration successfully.", + // TODO New key - Add a translation + "item.edit.register-doi.success": "DOI queued for registration successfully.", + + // "item.edit.register-doi.error": "Error registering DOI", + // TODO New key - Add a translation + "item.edit.register-doi.error": "Error registering DOI", + + // "item.edit.register-doi.to-update": "The following DOI has already been minted and will be queued for registration online", + // TODO New key - Add a translation + "item.edit.register-doi.to-update": "The following DOI has already been minted and will be queued for registration online", + + // "item.edit.item-mapper.buttons.add": "Map item to selected collections", + "item.edit.item-mapper.buttons.add": "Mappare l'item nelle collections selezionate", + + // "item.edit.item-mapper.buttons.remove": "Remove item's mapping for selected collections", + "item.edit.item-mapper.buttons.remove": "Rimuovere il mapping degli item per le collections selezionate", + + // "item.edit.item-mapper.cancel": "Cancel", + "item.edit.item-mapper.cancel": "Annulla", + + // "item.edit.item-mapper.description": "This is the item mapper tool that allows administrators to map this item to other collections. You can search for collections and map them, or browse the list of collections the item is currently mapped to.", + "item.edit.item-mapper.description": "Si tratta dello strumento di mapping degli item che consente agli amministratori di mappare questo item in altre collections. È possibile cercare le collections e mapparle, o sfogliare l'elenco delle collections in cui è attualmente mappato l'item.", + + // "item.edit.item-mapper.head": "Item Mapper - Map Item to Collections", + "item.edit.item-mapper.head": "Item Mapper - Mappa l'item nelle collections", + + // "item.edit.item-mapper.item": "Item: \"{{name}}\"", + "item.edit.item-mapper.item": "Item: \"{{name}}\"", + + // "item.edit.item-mapper.no-search": "Please enter a query to search", + "item.edit.item-mapper.no-search": "Inserisci una query per avviare la ricerca", + + // "item.edit.item-mapper.notifications.add.error.content": "Errors occurred for mapping of item to {{amount}} collections.", + "item.edit.item-mapper.notifications.add.error.content": "Si sono verificati degli errori nella mappatura dell'item in {{amount}} collections.", + + // "item.edit.item-mapper.notifications.add.error.head": "Mapping errors", + "item.edit.item-mapper.notifications.add.error.head": "Errori di mappatura", + + // "item.edit.item-mapper.notifications.add.success.content": "Successfully mapped item to {{amount}} collections.", + "item.edit.item-mapper.notifications.add.success.content": "L'item è stato mappato correttamente in {{amount}} collections.", + + // "item.edit.item-mapper.notifications.add.success.head": "Mapping completed", + "item.edit.item-mapper.notifications.add.success.head": "Mappatura completata", + + // "item.edit.item-mapper.notifications.remove.error.content": "Errors occurred for the removal of the mapping to {{amount}} collections.", + "item.edit.item-mapper.notifications.remove.error.content": "Si sono verificati degli errori nella rimozione del mapping da {{amount}} collections.", + + // "item.edit.item-mapper.notifications.remove.error.head": "Removal of mapping errors", + "item.edit.item-mapper.notifications.remove.error.head": "Gli errori di mappatura sono stati rimossi", + + // "item.edit.item-mapper.notifications.remove.success.content": "Successfully removed mapping of item to {{amount}} collections.", + "item.edit.item-mapper.notifications.remove.success.content": "L'item mappato è stato rimosso correttamente da {{amount}} collections.", + + // "item.edit.item-mapper.notifications.remove.success.head": "Removal of mapping completed", + "item.edit.item-mapper.notifications.remove.success.head": "Rimozione della mappatura completata", + + // "item.edit.item-mapper.search-form.placeholder": "Search collections...", + "item.edit.item-mapper.search-form.placeholder": "Cerca collections...", + + // "item.edit.item-mapper.tabs.browse": "Browse mapped collections", + "item.edit.item-mapper.tabs.browse": "Sfoglia le collections mappate", + + // "item.edit.item-mapper.tabs.map": "Map new collections", + "item.edit.item-mapper.tabs.map": "Mappa le nuove collections", + + + + // "item.edit.metadata.add-button": "Add", + "item.edit.metadata.add-button": "Aggiungi", + + // "item.edit.metadata.discard-button": "Discard", + "item.edit.metadata.discard-button": "Annulla", + + // "item.edit.metadata.edit.buttons.confirm": "Confirm", + // TODO New key - Add a translation + "item.edit.metadata.edit.buttons.confirm": "Confirm", + + // "item.edit.metadata.edit.buttons.drag": "Drag to reorder", + // TODO New key - Add a translation + "item.edit.metadata.edit.buttons.drag": "Drag to reorder", + + // "item.edit.metadata.edit.buttons.edit": "Edit", + "item.edit.metadata.edit.buttons.edit": "Edita", + + // "item.edit.metadata.edit.buttons.remove": "Remove", + "item.edit.metadata.edit.buttons.remove": "Rimuovi", + + // "item.edit.metadata.edit.buttons.undo": "Undo changes", + "item.edit.metadata.edit.buttons.undo": "Annullare le modifiche", + + // "item.edit.metadata.edit.buttons.unedit": "Stop editing", + "item.edit.metadata.edit.buttons.unedit": "Interrompi la modifica", + + // "item.edit.metadata.edit.buttons.virtual": "This is a virtual metadata value, i.e. a value inherited from a related entity. It can’t be modified directly. Add or remove the corresponding relationship in the \"Relationships\" tab", + // TODO New key - Add a translation + "item.edit.metadata.edit.buttons.virtual": "This is a virtual metadata value, i.e. a value inherited from a related entity. It can’t be modified directly. Add or remove the corresponding relationship in the \"Relationships\" tab", + + // "item.edit.metadata.empty": "The item currently doesn't contain any metadata. Click Add to start adding a metadata value.", + "item.edit.metadata.empty": "Attualmente l'item non contiene metadati. Fai clic su Aggiungi per iniziare ad aggiungere il valore di un metadata.", + + // "item.edit.metadata.headers.edit": "Edit", + "item.edit.metadata.headers.edit": "Edita", + + // "item.edit.metadata.headers.field": "Field", + "item.edit.metadata.headers.field": "Campo", + + // "item.edit.metadata.headers.language": "Lang", + "item.edit.metadata.headers.language": "Lang", + + // "item.edit.metadata.headers.value": "Value", + "item.edit.metadata.headers.value": "Valore", + + // "item.edit.metadata.metadatafield.error": "An error occurred validating the metadata field", + // TODO New key - Add a translation + "item.edit.metadata.metadatafield.error": "An error occurred validating the metadata field", + + // "item.edit.metadata.metadatafield.invalid": "Please choose a valid metadata field", + "item.edit.metadata.metadatafield.invalid": "Scegli un campo di metadati valido", + + // "item.edit.metadata.notifications.discarded.content": "Your changes were discarded. To reinstate your changes click the 'Undo' button", + "item.edit.metadata.notifications.discarded.content": "Le modifiche sono state annullate. Per ripristinarle, fai clic sul pulsante \"Annulla\"", + + // "item.edit.metadata.notifications.discarded.title": "Changes discarded", + // TODO Source message changed - Revise the translation + "item.edit.metadata.notifications.discarded.title": "Modifiche eliminate", + + // "item.edit.metadata.notifications.error.title": "An error occurred", + "item.edit.metadata.notifications.error.title": "Si è verificato un errore", + + // "item.edit.metadata.notifications.invalid.content": "Your changes were not saved. Please make sure all fields are valid before you save.", + "item.edit.metadata.notifications.invalid.content": "Le modifiche non sono state salvate. Assicurati che tutti i campi siano corretti prima di salvare.", + + // "item.edit.metadata.notifications.invalid.title": "Metadata invalid", + "item.edit.metadata.notifications.invalid.title": "Metadati non validi", + + // "item.edit.metadata.notifications.outdated.content": "The item you're currently working on has been changed by another user. Your current changes are discarded to prevent conflicts", + "item.edit.metadata.notifications.outdated.content": "L'item su cui stai attualmente lavorando è stato modificato da un altro utente. Le modifiche correnti verranno eliminate per evitare conflitti", + + // "item.edit.metadata.notifications.outdated.title": "Changes outdated", + // TODO Source message changed - Revise the translation + "item.edit.metadata.notifications.outdated.title": "Modifiche obsolete", + + // "item.edit.metadata.notifications.saved.content": "Your changes to this item's metadata were saved.", + "item.edit.metadata.notifications.saved.content": "Le modifiche apportate ai metadati di questo item sono state salvate.", + + // "item.edit.metadata.notifications.saved.title": "Metadata saved", + "item.edit.metadata.notifications.saved.title": "Metadati salvati", + + // "item.edit.metadata.reinstate-button": "Undo", + "item.edit.metadata.reinstate-button": "Annulla", + + // "item.edit.metadata.reset-order-button": "Undo reorder", + // TODO New key - Add a translation + "item.edit.metadata.reset-order-button": "Undo reorder", + + // "item.edit.metadata.save-button": "Save", + "item.edit.metadata.save-button": "Salva", + + + + // "item.edit.modify.overview.field": "Field", + "item.edit.modify.overview.field": "Campo", + + // "item.edit.modify.overview.language": "Language", + "item.edit.modify.overview.language": "Lingua", + + // "item.edit.modify.overview.value": "Value", + "item.edit.modify.overview.value": "Valore", + + + + // "item.edit.move.cancel": "Back", + "item.edit.move.cancel": "Indietro", + + // "item.edit.move.save-button": "Save", + "item.edit.move.save-button": "Salva", + + // "item.edit.move.discard-button": "Discard", + "item.edit.move.discard-button": "Annulla", + + // "item.edit.move.description": "Select the collection you wish to move this item to. To narrow down the list of displayed collections, you can enter a search query in the box.", + "item.edit.move.description": "Seleziona la collection in cui desideri spostare questo item. Per restringere l'elenco delle collections visualizzate è possibile effettuare una ricerca.", + + // "item.edit.move.error": "An error occurred when attempting to move the item", + "item.edit.move.error": "Si è verificato un errore durante il tentativo di spostare l'item", + + // "item.edit.move.head": "Move item: {{id}}", + "item.edit.move.head": "Sposta l'item: {{id}}", + + // "item.edit.move.inheritpolicies.checkbox": "Inherit policies", + "item.edit.move.inheritpolicies.checkbox": "Ereditare i criteri", + + // "item.edit.move.inheritpolicies.description": "Inherit the default policies of the destination collection", + "item.edit.move.inheritpolicies.description": "Ereditare i criteri predefiniti dell'insieme di destinazione", + + // "item.edit.move.move": "Move", + "item.edit.move.move": "Sposta", + + // "item.edit.move.processing": "Moving...", + "item.edit.move.processing": "Sposta...", + + // "item.edit.move.search.placeholder": "Enter a search query to look for collections", + "item.edit.move.search.placeholder": "Effettuare una ricerca per collections", + + // "item.edit.move.success": "The item has been moved successfully", + "item.edit.move.success": "L'item è stato spostato correttamente", + + // "item.edit.move.title": "Move item", + "item.edit.move.title": "Sposta item", + + + + // "item.edit.private.cancel": "Cancel", + "item.edit.private.cancel": "Annulla", + + // "item.edit.private.confirm": "Make it non-discoverable", + // TODO Source message changed - Revise the translation + "item.edit.private.confirm": "Rendilo privato", + + // "item.edit.private.description": "Are you sure this item should be made non-discoverable in the archive?", + // TODO Source message changed - Revise the translation + "item.edit.private.description": "Sei sicuro che questo oggetto debba essere reso privato nell'archivio?", + + // "item.edit.private.error": "An error occurred while making the item non-discoverable", + // TODO Source message changed - Revise the translation + "item.edit.private.error": "Si è verificato un errore durante la creazione di un item privato", + + // "item.edit.private.header": "Make item non-discoverable: {{ id }}", + "item.edit.private.header": "Rendi privato l'item: {{ id }}", + + // "item.edit.private.success": "The item is now non-discoverable", + "item.edit.private.success": "L'item è ora privato", + + + + // "item.edit.public.cancel": "Cancel", + "item.edit.public.cancel": "Annulla", + + // "item.edit.public.confirm": "Make it discoverable", + // TODO Source message changed - Revise the translation + "item.edit.public.confirm": "Rendilo pubblico", + + // "item.edit.public.description": "Are you sure this item should be made discoverable in the archive?", + // TODO Source message changed - Revise the translation + "item.edit.public.description": "Sei sicuro che questo articolo debba essere reso pubblico nell'archivio?", + + // "item.edit.public.error": "An error occurred while making the item discoverable", + // TODO Source message changed - Revise the translation + "item.edit.public.error": "Si è verificato un errore durante la creazione di un item pubblico", + + // "item.edit.public.header": "Make item discoverable: {{ id }}", + "item.edit.public.header": "Rendi pubblico l'item: {{ id }}", + + // "item.edit.public.success": "The item is now discoverable", + // TODO Source message changed - Revise the translation + "item.edit.public.success": "L'item è ora pubblico", + + + + // "item.edit.reinstate.cancel": "Cancel", + "item.edit.reinstate.cancel": "Annulla", + + // "item.edit.reinstate.confirm": "Reinstate", + "item.edit.reinstate.confirm": "Ripristina", + + // "item.edit.reinstate.description": "Are you sure this item should be reinstated to the archive?", + "item.edit.reinstate.description": "Sei sicuro che questo item debba essere ripristinato nell'archivio?", + + // "item.edit.reinstate.error": "An error occurred while reinstating the item", + "item.edit.reinstate.error": "Si è verificato un errore durante il ripristino dell'item", + + // "item.edit.reinstate.header": "Reinstate item: {{ id }}", + "item.edit.reinstate.header": "Ripristina l'item: {{ id }}", + + // "item.edit.reinstate.success": "The item was reinstated successfully", + "item.edit.reinstate.success": "L'item è stato ripristinato correttamente", + + + + // "item.edit.relationships.discard-button": "Discard", + "item.edit.relationships.discard-button": "Annulla", + + // "item.edit.relationships.edit.buttons.add": "Add", + "item.edit.relationships.edit.buttons.add": "Aggiungi", + + // "item.edit.relationships.edit.buttons.remove": "Remove", + "item.edit.relationships.edit.buttons.remove": "Rimuovi", + + // "item.edit.relationships.edit.buttons.undo": "Undo changes", + "item.edit.relationships.edit.buttons.undo": "Annullare le modifiche", + + // "item.edit.relationships.no-relationships": "No relationships", + "item.edit.relationships.no-relationships": "Nessuna relazione", + + // "item.edit.relationships.notifications.discarded.content": "Your changes were discarded. To reinstate your changes click the 'Undo' button", + "item.edit.relationships.notifications.discarded.content": "Le modifiche sono state annullate. Per ripristinarle, fai clic sul pulsante \"Annulla\"", + + // "item.edit.relationships.notifications.discarded.title": "Changes discarded", + "item.edit.relationships.notifications.discarded.title": "Modifiche annullate", + + // "item.edit.relationships.notifications.failed.title": "Error editing relationships", + "item.edit.relationships.notifications.failed.title": "Errore nella modifica delle relazioni", + + // "item.edit.relationships.notifications.outdated.content": "The item you're currently working on has been changed by another user. Your current changes are discarded to prevent conflicts", + "item.edit.relationships.notifications.outdated.content": "L'item su cui stai attualmente lavorando è stato modificato da un altro utente. Le modifiche correnti verranno eliminate per evitare conflitti", + + // "item.edit.relationships.notifications.outdated.title": "Changes outdated", + "item.edit.relationships.notifications.outdated.title": "Modifiche obsolete", + + // "item.edit.relationships.notifications.saved.content": "Your changes to this item's relationships were saved.", + "item.edit.relationships.notifications.saved.content": "Le modifiche apportate alle relazioni di questo item sono state salvate.", + + // "item.edit.relationships.notifications.saved.title": "Relationships saved", + "item.edit.relationships.notifications.saved.title": "Relazioni salvate", + + // "item.edit.relationships.reinstate-button": "Undo", + "item.edit.relationships.reinstate-button": "Annulla", + + // "item.edit.relationships.save-button": "Save", + "item.edit.relationships.save-button": "Salva", + + // "item.edit.relationships.no-entity-type": "Add 'dspace.entity.type' metadata to enable relationships for this item", + "item.edit.relationships.no-entity-type": "Aggiungi i metadati 'dspace.entity.type' per abilitare le relazioni per questo item", + + + // "item.edit.return": "Back", + "item.edit.return": "Indietro", + + + // "item.edit.tabs.bitstreams.head": "Bitstreams", + "item.edit.tabs.bitstreams.head": "Bitstreams", + + // "item.edit.tabs.bitstreams.title": "Item Edit - Bitstreams", + "item.edit.tabs.bitstreams.title": "Modifica item - Bitstreams", + + // "item.edit.tabs.curate.head": "Curate", + "item.edit.tabs.curate.head": "Curate", + + // "item.edit.tabs.curate.title": "Item Edit - Curate", + "item.edit.tabs.curate.title": "Modifica item - Curate", + // "item.edit.curate.title": "Curate Item: {{item}}", + // TODO New key - Add a translation + "item.edit.curate.title": "Curate Item: {{item}}", + + // "item.edit.tabs.metadata.head": "Metadata", + "item.edit.tabs.metadata.head": "Metadati", + + // "item.edit.tabs.metadata.title": "Item Edit - Metadata", + "item.edit.tabs.metadata.title": "Modifica item - Metadati", + + // "item.edit.tabs.relationships.head": "Relationships", + "item.edit.tabs.relationships.head": "Relazioni", + + // "item.edit.tabs.relationships.title": "Item Edit - Relationships", + "item.edit.tabs.relationships.title": "Modifica item - Relazioni", + + // "item.edit.tabs.status.buttons.authorizations.button": "Authorizations...", + "item.edit.tabs.status.buttons.authorizations.button": "Autorizzazioni...", + + // "item.edit.tabs.status.buttons.authorizations.label": "Edit item's authorization policies", + "item.edit.tabs.status.buttons.authorizations.label": "Modificare i criteri di autorizzazione degli item", + + // "item.edit.tabs.status.buttons.delete.button": "Permanently delete", + "item.edit.tabs.status.buttons.delete.button": "Elimina definitivamente", + + // "item.edit.tabs.status.buttons.delete.label": "Completely expunge item", + "item.edit.tabs.status.buttons.delete.label": "Rimuovere completamente l'item", + + // "item.edit.tabs.status.buttons.mappedCollections.button": "Mapped collections", + "item.edit.tabs.status.buttons.mappedCollections.button": "collections mappate", + + // "item.edit.tabs.status.buttons.mappedCollections.label": "Manage mapped collections", + "item.edit.tabs.status.buttons.mappedCollections.label": "Gestire le collections mappate", + + // "item.edit.tabs.status.buttons.move.button": "Move this Item to a different Collection", + // TODO Source message changed - Revise the translation + "item.edit.tabs.status.buttons.move.button": "Sposta...", + + // "item.edit.tabs.status.buttons.move.label": "Move item to another collection", + "item.edit.tabs.status.buttons.move.label": "Spostare l'item in un'altra collection", + + // "item.edit.tabs.status.buttons.private.button": "Make it non-discoverable...", + // TODO Source message changed - Revise the translation + "item.edit.tabs.status.buttons.private.button": "...", + + // "item.edit.tabs.status.buttons.private.label": "Make item non-discoverable", + // TODO Source message changed - Revise the translation + "item.edit.tabs.status.buttons.private.label": "Rendere l'item privato", + + // "item.edit.tabs.status.buttons.public.button": "Make it discoverable...", + // TODO Source message changed - Revise the translation + "item.edit.tabs.status.buttons.public.button": "...", + + // "item.edit.tabs.status.buttons.public.label": "Make item discoverable", + // TODO Source message changed - Revise the translation + "item.edit.tabs.status.buttons.public.label": "Rendere l'item pubblico", + + // "item.edit.tabs.status.buttons.reinstate.button": "Reinstate...", + "item.edit.tabs.status.buttons.reinstate.button": "Ripristino...", + + // "item.edit.tabs.status.buttons.reinstate.label": "Reinstate item into the repository", + "item.edit.tabs.status.buttons.reinstate.label": "Ripristinare l'item nel repository", + + // "item.edit.tabs.status.buttons.unauthorized": "You're not authorized to perform this action", + "item.edit.tabs.status.buttons.unauthorized": "Non sei autorizzato a eseguire questa azione", + + // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item", + // TODO Source message changed - Revise the translation + "item.edit.tabs.status.buttons.withdraw.button": "Rimozione...", + + // "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository", + "item.edit.tabs.status.buttons.withdraw.label": "Rimuovere l'item dal repository", + + // "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": "Benvenuti nella pagina di gestione degli item. Da qui è possibile rimuovere, ripristinare, spostare o eliminare l'item. È inoltre possibile aggiornare o aggiungere nuovi metadati / bitstream nelle altre schede.", + + // "item.edit.tabs.status.head": "Status", + "item.edit.tabs.status.head": "Stato", + + // "item.edit.tabs.status.labels.handle": "Handle", + "item.edit.tabs.status.labels.handle": "Gestisci", + + // "item.edit.tabs.status.labels.id": "Item Internal ID", + "item.edit.tabs.status.labels.id": "ID interno dell'item", + + // "item.edit.tabs.status.labels.itemPage": "Item Page", + "item.edit.tabs.status.labels.itemPage": "Pagina dell'item", + + // "item.edit.tabs.status.labels.lastModified": "Last Modified", + "item.edit.tabs.status.labels.lastModified": "Ultima modifica", + + // "item.edit.tabs.status.title": "Item Edit - Status", + "item.edit.tabs.status.title": "Modifica item - Stato", + + // "item.edit.tabs.versionhistory.head": "Version History", + "item.edit.tabs.versionhistory.head": "Cronologia delle versioni", + + // "item.edit.tabs.versionhistory.title": "Item Edit - Version History", + "item.edit.tabs.versionhistory.title": "Modifica item - Cronologia delle versioni", + + // "item.edit.tabs.versionhistory.under-construction": "Editing or adding new versions is not yet possible in this user interface.", + "item.edit.tabs.versionhistory.under-construction": "La modifica o l'aggiunta di nuove versioni non è ancora possibile in questa interfaccia utente.", + + // "item.edit.tabs.view.head": "View Item", + "item.edit.tabs.view.head": "Visualizza item", + + // "item.edit.tabs.view.title": "Item Edit - View", + "item.edit.tabs.view.title": "Modifica item - Visualizza", + + + + // "item.edit.withdraw.cancel": "Cancel", + "item.edit.withdraw.cancel": "Annulla", + + // "item.edit.withdraw.confirm": "Withdraw", + "item.edit.withdraw.confirm": "Rimuovi", + + // "item.edit.withdraw.description": "Are you sure this item should be withdrawn from the archive?", + "item.edit.withdraw.description": "Sei sicuro che questo articolo debba essere rimosso dall'archivio?", + + // "item.edit.withdraw.error": "An error occurred while withdrawing the item", + "item.edit.withdraw.error": "Si è verificato un errore durante la rimozione dell'item", + + // "item.edit.withdraw.header": "Withdraw item: {{ id }}", + "item.edit.withdraw.header": "Item rimosso: {{ id }}", + + // "item.edit.withdraw.success": "The item was withdrawn successfully", + "item.edit.withdraw.success": "L'item è stato rimosso con successo", + + // "item.orcid.return": "Back", + "item.orcid.return": "Indietro", + + + // "item.listelement.badge": "Item", + "item.listelement.badge": "Item", + + // "item.page.description": "Description", + "item.page.description": "Descrizione", + + // "item.page.journal-issn": "Journal ISSN", + "item.page.journal-issn": "ISSN", + + // "item.page.journal-title": "Journal Title", + "item.page.journal-title": "Titolo del periodico", + + // "item.page.publisher": "Publisher", + "item.page.publisher": "Editore", + + // "item.page.titleprefix": "Item: ", + "item.page.titleprefix": "Item: ", + + // "item.page.volume-title": "Volume Title", + "item.page.volume-title": "Titolo del volume", + + // "item.search.results.head": "Item Search Results", + "item.search.results.head": "Risultati della ricerca degli item", + + // "item.search.title": "Item Search", + "item.search.title": "Ricerca articoli", + + // "item.truncatable-part.show-more": "Show more", + "item.truncatable-part.show-more": "Mostra di più", + + // "item.truncatable-part.show-less": "Collapse", + "item.truncatable-part.show-less": "Riduci", + + // "workflow-item.search.result.delete-supervision.modal.header": "Delete Supervision Order", + // TODO New key - Add a translation + "workflow-item.search.result.delete-supervision.modal.header": "Delete Supervision Order", + + // "workflow-item.search.result.delete-supervision.modal.info": "Are you sure you want to delete Supervision Order", + // TODO New key - Add a translation + "workflow-item.search.result.delete-supervision.modal.info": "Are you sure you want to delete Supervision Order", + + // "workflow-item.search.result.delete-supervision.modal.cancel": "Cancel", + // TODO New key - Add a translation + "workflow-item.search.result.delete-supervision.modal.cancel": "Cancel", + + // "workflow-item.search.result.delete-supervision.modal.confirm": "Delete", + // TODO New key - Add a translation + "workflow-item.search.result.delete-supervision.modal.confirm": "Delete", + + // "workflow-item.search.result.notification.deleted.success": "Successfully deleted supervision order \"{{name}}\"", + // TODO New key - Add a translation + "workflow-item.search.result.notification.deleted.success": "Successfully deleted supervision order \"{{name}}\"", + + // "workflow-item.search.result.notification.deleted.failure": "Failed to delete supervision order \"{{name}}\"", + // TODO New key - Add a translation + "workflow-item.search.result.notification.deleted.failure": "Failed to delete supervision order \"{{name}}\"", + + // "workflow-item.search.result.list.element.supervised-by": "Supervised by:", + // TODO New key - Add a translation + "workflow-item.search.result.list.element.supervised-by": "Supervised by:", + + // "workflow-item.search.result.list.element.supervised.remove-tooltip": "Remove supervision group", + // TODO New key - Add a translation + "workflow-item.search.result.list.element.supervised.remove-tooltip": "Remove supervision group", + + + + // "item.page.abstract": "Abstract", + "item.page.abstract": "Abstract", + + // "item.page.author": "Authors", + "item.page.author": "Autori", + + // "item.page.citation": "Citation", + "item.page.citation": "Citazione", + + // "item.page.collections": "Collections", + "item.page.collections": "collections", + + // "item.page.collections.loading": "Loading...", + "item.page.collections.loading": "Caricamento...", + + // "item.page.collections.load-more": "Load more", + "item.page.collections.load-more": "Carica più risorse", + + // "item.page.date": "Date", + "item.page.date": "Data", + + // "item.page.edit": "Edit this item", + "item.page.edit": "Modifica questo item", + + // "item.page.files": "Files", + "item.page.files": "File", + + // "item.page.filesection.description": "Description:", + "item.page.filesection.description": "Descrizione:", + + // "item.page.filesection.download": "Download", + "item.page.filesection.download": "Download", + + // "item.page.filesection.format": "Format:", + "item.page.filesection.format": "Formato:", + + // "item.page.filesection.name": "Name:", + "item.page.filesection.name": "Nome:", + + // "item.page.filesection.size": "Size:", + "item.page.filesection.size": "Dimensione:", + + // "item.page.journal.search.title": "Articles in this journal", + "item.page.journal.search.title": "Articoli in questo periodico", + + // "item.page.link.full": "Full item page", + "item.page.link.full": "Mostra tutti i metadati", + + // "item.page.link.simple": "Simple item page", + "item.page.link.simple": "Visualizzazione ridotta", + + // "item.page.orcid.title": "ORCID", + "item.page.orcid.title": "ORCID", + + // "item.page.orcid.tooltip": "Open ORCID setting page", + "item.page.orcid.tooltip": "Apri la pagina delle impostazioni ORCID", + + // "item.page.person.search.title": "Articles by this author", + "item.page.person.search.title": "Articoli di questo autore", + + // "item.page.related-items.view-more": "Show {{ amount }} more", + "item.page.related-items.view-more": "Mostra altri {{ amount }} ", + + // "item.page.related-items.view-less": "Hide last {{ amount }}", + "item.page.related-items.view-less": "Nascondi l'ultimo {{ amount }}", + + // "item.page.relationships.isAuthorOfPublication": "Publications", + "item.page.relationships.isAuthorOfPublication": "Pubblicazioni", + + // "item.page.relationships.isJournalOfPublication": "Publications", + "item.page.relationships.isJournalOfPublication": "Pubblicazioni", + + // "item.page.relationships.isOrgUnitOfPerson": "Authors", + "item.page.relationships.isOrgUnitOfPerson": "Autori", + + // "item.page.relationships.isOrgUnitOfProject": "Research Projects", + "item.page.relationships.isOrgUnitOfProject": "Progetti di ricerca", + + // "item.page.subject": "Keywords", + "item.page.subject": "Keywords", + + // "item.page.uri": "URI", + "item.page.uri": "URI", + + // "item.page.bitstreams.view-more": "Show more", + "item.page.bitstreams.view-more": "Mostra di più", + + // "item.page.bitstreams.collapse": "Collapse", + "item.page.bitstreams.collapse": "Riduci", + + // "item.page.filesection.original.bundle": "Original bundle", + // TODO New key - Add a translation + "item.page.filesection.original.bundle": "Original bundle", + + // "item.page.filesection.license.bundle": "License bundle", + // TODO New key - Add a translation + "item.page.filesection.license.bundle": "License bundle", + + // "item.page.return": "Back", + "item.page.return": "Indietro", + + // "item.page.version.create": "Create new version", + "item.page.version.create": "Crea una nuova versione", + + // "item.page.version.hasDraft": "A new version cannot be created because there is an inprogress submission in the version history", + "item.page.version.hasDraft": "Impossibile creare una nuova versione perché è presente un'submission in corso nella cronologia delle versioni", + + // "item.page.claim.button": "Claim", + "item.page.claim.button": "Collega", + + // "item.page.claim.tooltip": "Claim this item as profile", + "item.page.claim.tooltip": "Collega questo item come profilo", + + // "item.preview.dc.identifier.uri": "Identifier:", + "item.preview.dc.identifier.uri": "Identificativo:", + + // "item.preview.dc.contributor.author": "Authors:", + "item.preview.dc.contributor.author": "Autori:", + + // "item.preview.dc.date.issued": "Published date:", + "item.preview.dc.date.issued": "Data di pubblicazione:", + + // "item.preview.dc.description.abstract": "Abstract:", + "item.preview.dc.description.abstract": "Abstract:", + + // "item.preview.dc.identifier.other": "Other identifier:", + "item.preview.dc.identifier.other": "Altri identificativi:", + + // "item.preview.dc.language.iso": "Language:", + "item.preview.dc.language.iso": "Lingua:", + + // "item.preview.dc.subject": "Subjects:", + // TODO New key - Add a translation + "item.preview.dc.subject": "Subjects:", + + // "item.preview.dc.title": "Title:", + "item.preview.dc.title": "Titolo:", + + // "item.preview.dc.type": "Type:", + "item.preview.dc.type": "Tipologia:", + + // "item.preview.oaire.citation.issue": "Issue", + // TODO Source message changed - Revise the translation + "item.preview.oaire.citation.issue": "Fascicolo", + + // "item.preview.oaire.citation.volume": "Volume", + // TODO Source message changed - Revise the translation + "item.preview.oaire.citation.volume": "Volume", + + // "item.preview.dc.relation.issn": "ISSN", + // TODO Source message changed - Revise the translation + "item.preview.dc.relation.issn": "ISSN", + + // "item.preview.dc.identifier.isbn": "ISBN", + // TODO Source message changed - Revise the translation + "item.preview.dc.identifier.isbn": "ISBN", + + // "item.preview.dc.identifier": "Identifier:", + "item.preview.dc.identifier": "Identificativo:", + + // "item.preview.dc.relation.ispartof": "Journal or Serie", + // TODO Source message changed - Revise the translation + "item.preview.dc.relation.ispartof": "Periodico or Serie", + + // "item.preview.dc.identifier.doi": "DOI", + // TODO Source message changed - Revise the translation + "item.preview.dc.identifier.doi": "DOI", + + // "item.preview.person.familyName": "Surname:", + "item.preview.person.familyName": "Cognome:", + + // "item.preview.person.givenName": "Name:", + "item.preview.person.givenName": "Nome:", + + // "item.preview.person.identifier.orcid": "ORCID:", + "item.preview.person.identifier.orcid": "ORCID:", + + // "item.preview.project.funder.name": "Funder:", + "item.preview.project.funder.name": " Finanziatore:", + + // "item.preview.project.funder.identifier": "Funder Identifier:", + "item.preview.project.funder.identifier": "Indentificativo del finanziatore:", + + // "item.preview.oaire.awardNumber": "Funding ID:", + "item.preview.oaire.awardNumber": "ID del finanziamento:", + + // "item.preview.dc.title.alternative": "Acronym:", + // TODO New key - Add a translation + "item.preview.dc.title.alternative": "Acronym:", + + // "item.preview.dc.coverage.spatial": "Jurisdiction:", + "item.preview.dc.coverage.spatial": "Giurisdizione:", + + // "item.preview.oaire.fundingStream": "Funding Stream:", + "item.preview.oaire.fundingStream": "Flusso di finanziamento:", + + + + // "item.select.confirm": "Confirm selected", + "item.select.confirm": "Conferma la selezione", + + // "item.select.empty": "No items to show", + "item.select.empty": "Nessun item da mostrare", + + // "item.select.table.author": "Author", + "item.select.table.author": "Autore", + + // "item.select.table.collection": "Collection", + "item.select.table.collection": "collection", + + // "item.select.table.title": "Title", + "item.select.table.title": "Titolo", + + + // "item.version.history.empty": "There are no other versions for this item yet.", + "item.version.history.empty": "Non ci sono ancora altre versioni per questo item.", + + // "item.version.history.head": "Version History", + "item.version.history.head": "Cronologia delle versioni", + + // "item.version.history.return": "Back", + "item.version.history.return": "Indietro", + + // "item.version.history.selected": "Selected version", + "item.version.history.selected": "Versione selezionata", + + // "item.version.history.selected.alert": "You are currently viewing version {{version}} of the item.", + "item.version.history.selected.alert": "Stai attualmente visualizzando la versione {{version}} dell'item.", + + // "item.version.history.table.version": "Version", + "item.version.history.table.version": "Versione", + + // "item.version.history.table.item": "Item", + "item.version.history.table.item": "Item", + + // "item.version.history.table.editor": "Editor", + "item.version.history.table.editor": "Editor", + + // "item.version.history.table.date": "Date", + "item.version.history.table.date": "Data", + + // "item.version.history.table.summary": "Summary", + "item.version.history.table.summary": "Riepilogo", + + // "item.version.history.table.workspaceItem": "Workspace item", + "item.version.history.table.workspaceItem": "Workspace item", + + // "item.version.history.table.workflowItem": "Workflow item", + "item.version.history.table.workflowItem": "Workflow item", + + // "item.version.history.table.actions": "Action", + "item.version.history.table.actions": "Azione", + + // "item.version.history.table.action.editWorkspaceItem": "Edit workspace item", + "item.version.history.table.action.editWorkspaceItem": "Modificare il workspace item", + + // "item.version.history.table.action.editSummary": "Edit summary", + "item.version.history.table.action.editSummary": "Modifica riepilogo", + + // "item.version.history.table.action.saveSummary": "Save summary edits", + "item.version.history.table.action.saveSummary": "Salva le modifiche del riepilogo", + + // "item.version.history.table.action.discardSummary": "Discard summary edits", + "item.version.history.table.action.discardSummary": "Elimina le modifiche del riepilogo", + + // "item.version.history.table.action.newVersion": "Create new version from this one", + "item.version.history.table.action.newVersion": "Crea una nuova versione da qui", + + // "item.version.history.table.action.deleteVersion": "Delete version", + "item.version.history.table.action.deleteVersion": "Elimina versione", + + // "item.version.history.table.action.hasDraft": "A new version cannot be created because there is an inprogress submission in the version history", + "item.version.history.table.action.hasDraft": "Non è possibile creare una nuova versione perchè c'è già una submission in progress nella cronologia delle versioni", + + + // "item.version.notice": "This is not the latest version of this item. The latest version can be found here.", + "item.version.notice": "Questa non è la versione più recente di questo item. Puoi trovare l'ultima versione qui.", + + + // "item.version.create.modal.header": "New version", + "item.version.create.modal.header": "Nuova versione", + + // "item.version.create.modal.text": "Create a new version for this item", + "item.version.create.modal.text": "Crea una nuova versione per questo item", + + // "item.version.create.modal.text.startingFrom": "starting from version {{version}}", + "item.version.create.modal.text.startingFrom": "a partire dalla versione {{version}}", + + // "item.version.create.modal.button.confirm": "Create", + "item.version.create.modal.button.confirm": "Crea", + + // "item.version.create.modal.button.confirm.tooltip": "Create new version", + "item.version.create.modal.button.confirm.tooltip": "Crea una nuova versione", + + // "item.version.create.modal.button.cancel": "Cancel", + "item.version.create.modal.button.cancel": "Annulla", + + // "item.version.create.modal.button.cancel.tooltip": "Do not create new version", + "item.version.create.modal.button.cancel.tooltip": "Non creare una nuova versione", + + // "item.version.create.modal.form.summary.label": "Summary", + "item.version.create.modal.form.summary.label": "Riepilogo", + + // "item.version.create.modal.form.summary.placeholder": "Insert the summary for the new version", + "item.version.create.modal.form.summary.placeholder": "Inserire un riepilogo per la nuova versione", + + // "item.version.create.modal.submitted.header": "Creating new version...", + "item.version.create.modal.submitted.header": "Creazione della nuova versione...", + + // "item.version.create.modal.submitted.text": "The new version is being created. This may take some time if the item has a lot of relationships.", + "item.version.create.modal.submitted.text": "La nuova versione è in fase di creazione. Questa operazione potrebbe richiedere un po' di temo se l'item ha molte relazioni.", + + // "item.version.create.notification.success": "New version has been created with version number {{version}}", + // TODO Source message changed - Revise the translation + "item.version.create.notification.success": "È stata creata una nuova versione con il numero {{version}}", + + // "item.version.create.notification.failure": "New version has not been created", + // TODO Source message changed - Revise the translation + "item.version.create.notification.failure": "Non è stata creata una nuova versione", + + // "item.version.create.notification.inProgress": "A new version cannot be created because there is an inprogress submission in the version history", + // TODO Source message changed - Revise the translation + "item.version.create.notification.inProgress": "Non è possibile creare una nuova versione perchè c'è già una submission in progress nella cronologia delle versioni", + + + // "item.version.delete.modal.header": "Delete version", + "item.version.delete.modal.header": "Elimina versione", + + // "item.version.delete.modal.text": "Do you want to delete version {{version}}?", + "item.version.delete.modal.text": "Vuoi eliminare la versione {{version}}?", + + // "item.version.delete.modal.button.confirm": "Delete", + "item.version.delete.modal.button.confirm": "Elimina", + + // "item.version.delete.modal.button.confirm.tooltip": "Delete this version", + "item.version.delete.modal.button.confirm.tooltip": "Elimina questa versione", + + // "item.version.delete.modal.button.cancel": "Cancel", + "item.version.delete.modal.button.cancel": "Annulla", + + // "item.version.delete.modal.button.cancel.tooltip": "Do not delete this version", + "item.version.delete.modal.button.cancel.tooltip": "Non eliminare questa versione", + + // "item.version.delete.notification.success": "Version number {{version}} has been deleted", + // TODO Source message changed - Revise the translation + "item.version.delete.notification.success": "La versione numero {{version}} è stata eliminata", + + // "item.version.delete.notification.failure": "Version number {{version}} has not been deleted", + // TODO Source message changed - Revise the translation + "item.version.delete.notification.failure": "La versione numero {{version}} non è stata eliminata", + + + // "item.version.edit.notification.success": "The summary of version number {{version}} has been changed", + // TODO Source message changed - Revise the translation + "item.version.edit.notification.success": "Il riepilogo della versione numero {{version}} è stato modificato", + + // "item.version.edit.notification.failure": "The summary of version number {{version}} has not been changed", + // TODO Source message changed - Revise the translation + "item.version.edit.notification.failure": "Il riepilogo della versione numero {{version}} non è stato modificato", + + + + // "itemtemplate.edit.metadata.add-button": "Add", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.add-button": "Add", + + // "itemtemplate.edit.metadata.discard-button": "Discard", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.discard-button": "Discard", + + // "itemtemplate.edit.metadata.edit.buttons.confirm": "Confirm", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.edit.buttons.confirm": "Confirm", + + // "itemtemplate.edit.metadata.edit.buttons.drag": "Drag to reorder", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.edit.buttons.drag": "Drag to reorder", + + // "itemtemplate.edit.metadata.edit.buttons.edit": "Edit", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.edit.buttons.edit": "Edit", + + // "itemtemplate.edit.metadata.edit.buttons.remove": "Remove", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.edit.buttons.remove": "Remove", + + // "itemtemplate.edit.metadata.edit.buttons.undo": "Undo changes", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.edit.buttons.undo": "Undo changes", + + // "itemtemplate.edit.metadata.edit.buttons.unedit": "Stop editing", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.edit.buttons.unedit": "Stop editing", + + // "itemtemplate.edit.metadata.empty": "The item template currently doesn't contain any metadata. Click Add to start adding a metadata value.", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.empty": "The item template currently doesn't contain any metadata. Click Add to start adding a metadata value.", + + // "itemtemplate.edit.metadata.headers.edit": "Edit", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.headers.edit": "Edit", + + // "itemtemplate.edit.metadata.headers.field": "Field", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.headers.field": "Field", + + // "itemtemplate.edit.metadata.headers.language": "Lang", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.headers.language": "Lang", + + // "itemtemplate.edit.metadata.headers.value": "Value", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.headers.value": "Value", + + // "itemtemplate.edit.metadata.metadatafield.error": "An error occurred validating the metadata field", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.metadatafield.error": "An error occurred validating the metadata field", + + // "itemtemplate.edit.metadata.metadatafield.invalid": "Please choose a valid metadata field", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.metadatafield.invalid": "Please choose a valid metadata field", + + // "itemtemplate.edit.metadata.notifications.discarded.content": "Your changes were discarded. To reinstate your changes click the 'Undo' button", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.notifications.discarded.content": "Your changes were discarded. To reinstate your changes click the 'Undo' button", + + // "itemtemplate.edit.metadata.notifications.discarded.title": "Changes discarded", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.notifications.discarded.title": "Changes discarded", + + // "itemtemplate.edit.metadata.notifications.error.title": "An error occurred", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.notifications.error.title": "An error occurred", + + // "itemtemplate.edit.metadata.notifications.invalid.content": "Your changes were not saved. Please make sure all fields are valid before you save.", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.notifications.invalid.content": "Your changes were not saved. Please make sure all fields are valid before you save.", + + // "itemtemplate.edit.metadata.notifications.invalid.title": "Metadata invalid", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.notifications.invalid.title": "Metadata invalid", + + // "itemtemplate.edit.metadata.notifications.outdated.content": "The item template you're currently working on has been changed by another user. Your current changes are discarded to prevent conflicts", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.notifications.outdated.content": "The item template you're currently working on has been changed by another user. Your current changes are discarded to prevent conflicts", + + // "itemtemplate.edit.metadata.notifications.outdated.title": "Changes outdated", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.notifications.outdated.title": "Changes outdated", + + // "itemtemplate.edit.metadata.notifications.saved.content": "Your changes to this item template's metadata were saved.", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.notifications.saved.content": "Your changes to this item template's metadata were saved.", + + // "itemtemplate.edit.metadata.notifications.saved.title": "Metadata saved", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.notifications.saved.title": "Metadata saved", + + // "itemtemplate.edit.metadata.reinstate-button": "Undo", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.reinstate-button": "Undo", + + // "itemtemplate.edit.metadata.reset-order-button": "Undo reorder", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.reset-order-button": "Undo reorder", + + // "itemtemplate.edit.metadata.save-button": "Save", + // TODO New key - Add a translation + "itemtemplate.edit.metadata.save-button": "Save", + + + + // "journal.listelement.badge": "Journal", + "journal.listelement.badge": "Periodico", + + // "journal.page.description": "Description", + "journal.page.description": "Descrizione", + + // "journal.page.edit": "Edit this item", + "journal.page.edit": "Modifica questo item", + + // "journal.page.editor": "Editor-in-Chief", + "journal.page.editor": "Redattore Capo", + + // "journal.page.issn": "ISSN", + "journal.page.issn": "ISSN", + + // "journal.page.publisher": "Publisher", + "journal.page.publisher": "Editore", + + // "journal.page.titleprefix": "Journal: ", + "journal.page.titleprefix": "Periodico: ", + + // "journal.search.results.head": "Journal Search Results", + "journal.search.results.head": "Risultati della ricerca Periodici", + + // "journal-relationships.search.results.head": "Journal Search Results", + "journal-relationships.search.results.head": "Risultati della ricerca Periodici", + + // "journal.search.title": "Journal Search", + "journal.search.title": "Ricerca Periodici", + + + + // "journalissue.listelement.badge": "Journal Issue", + "journalissue.listelement.badge": "Fascicolo del periodico", + + // "journalissue.page.description": "Description", + "journalissue.page.description": "Descrizione", + + // "journalissue.page.edit": "Edit this item", + "journalissue.page.edit": "Modifica questo item", + + // "journalissue.page.issuedate": "Issue Date", + "journalissue.page.issuedate": "Data di pubblicazione", + + // "journalissue.page.journal-issn": "Journal ISSN", + "journalissue.page.journal-issn": "ISSN", + + // "journalissue.page.journal-title": "Journal Title", + "journalissue.page.journal-title": "Titolo del periodico", + + // "journalissue.page.keyword": "Keywords", + "journalissue.page.keyword": "Keywords", + + // "journalissue.page.number": "Number", + "journalissue.page.number": "Numero", + + // "journalissue.page.titleprefix": "Journal Issue: ", + "journalissue.page.titleprefix": "Fascicolo del periodico: ", + + + + // "journalvolume.listelement.badge": "Journal Volume", + "journalvolume.listelement.badge": "Volume del periodico", + + // "journalvolume.page.description": "Description", + "journalvolume.page.description": "Descrizione", + + // "journalvolume.page.edit": "Edit this item", + "journalvolume.page.edit": "Modifica questo item", + + // "journalvolume.page.issuedate": "Issue Date", + "journalvolume.page.issuedate": "Data di pubblicazione", + + // "journalvolume.page.titleprefix": "Journal Volume: ", + "journalvolume.page.titleprefix": "Volume del periodico: ", + + // "journalvolume.page.volume": "Volume", + "journalvolume.page.volume": "Volume", + + + // "iiifsearchable.listelement.badge": "Document Media", + "iiifsearchable.listelement.badge": "Allegati", + + // "iiifsearchable.page.titleprefix": "Document: ", + "iiifsearchable.page.titleprefix": "Documento: ", + + // "iiifsearchable.page.doi": "Permanent Link: ", + "iiifsearchable.page.doi": "Link Permanente: ", + + // "iiifsearchable.page.issue": "Issue: ", + "iiifsearchable.page.issue": "Item:", + + // "iiifsearchable.page.description": "Description: ", + "iiifsearchable.page.description": "Descrizione: ", + + // "iiifviewer.fullscreen.notice": "Use full screen for better viewing.", + "iiifviewer.fullscreen.notice": "Usa lo schermo intero per una migliore visualizzazione.", + + // "iiif.listelement.badge": "Image Media", + "iiif.listelement.badge": "Immagini multimediali", + + // "iiif.page.titleprefix": "Image: ", + "iiif.page.titleprefix": "Immagine: ", + + // "iiif.page.doi": "Permanent Link: ", + "iiif.page.doi": "Link Permanente: ", + + // "iiif.page.issue": "Issue: ", + "iiif.page.issue": "Item: ", + + // "iiif.page.description": "Description: ", + "iiif.page.description": "Descrizione: ", + + + // "loading.bitstream": "Loading bitstream...", + "loading.bitstream": "Caricamento bitstream...", + + // "loading.bitstreams": "Loading bitstreams...", + "loading.bitstreams": "Caricamento bitstream...", + + // "loading.browse-by": "Loading items...", + "loading.browse-by": "Caricamento articoli...", + + // "loading.browse-by-page": "Loading page...", + "loading.browse-by-page": "Caricamento pagina...", + + // "loading.collection": "Loading collection...", + "loading.collection": "Caricamento collezione...", + + // "loading.collections": "Loading collections...", + "loading.collections": "Caricamento collezioni...", + + // "loading.content-source": "Loading content source...", + "loading.content-source": "Caricamento contenuto originale...", + + // "loading.community": "Loading community...", + "loading.community": "Caricamento community...", + + // "loading.default": "Loading...", + "loading.default": "Caricamento...", + + // "loading.item": "Loading item...", + "loading.item": "Caricamento articolo...", + + // "loading.items": "Loading items...", + "loading.items": "Caricamento articoli...", + + // "loading.mydspace-results": "Loading items...", + "loading.mydspace-results": "Caricamento articoli...", + + // "loading.objects": "Loading...", + "loading.objects": "Caricamento...", + + // "loading.recent-submissions": "Loading recent submissions...", + "loading.recent-submissions": "Caricamento immissioni recenti...", + + // "loading.search-results": "Loading search results...", + "loading.search-results": "Caricamento risultati della ricerca...", + + // "loading.sub-collections": "Loading sub-collections...", + "loading.sub-collections": "Caricamento sotto-collezioni...", + + // "loading.sub-communities": "Loading sub-communities...", + "loading.sub-communities": "Caricamento sotto-comunità...", + + // "loading.top-level-communities": "Loading top-level communities...", + "loading.top-level-communities": "Caricamento di community di primo livello...", + + + + // "login.form.email": "Email address", + "login.form.email": "Indirizzo email", + + // "login.form.forgot-password": "Have you forgotten your password?", + "login.form.forgot-password": "Hai dimenticato la password?", + + // "login.form.header": "Please log in to DSpace", + "login.form.header": "Accedi a DSpace", + + // "login.form.new-user": "New user? Click here to register.", + "login.form.new-user": "Nuovo utente? Clicca qui per registrarti.", + + // "login.form.or-divider": "or", + "login.form.or-divider": "oppure", + + // "login.form.oidc": "Log in with OIDC", + "login.form.oidc": "Accedi con OIDC", + + // "login.form.orcid": "Log in with ORCID", + "login.form.orcid": "Accedi con ORCID", + + // "login.form.password": "Password", + "login.form.password": "Password", + + // "login.form.shibboleth": "Log in with Shibboleth", + "login.form.shibboleth": "Accedi con Shibboleth", + + // "login.form.submit": "Log in", + "login.form.submit": "Accedi", + + // "login.title": "Login", + "login.title": "Accesso", + + // "login.breadcrumbs": "Login", + "login.breadcrumbs": "Accesso", + + + + // "logout.form.header": "Log out from DSpace", + "logout.form.header": "Disconnettersi da DSpace", + + // "logout.form.submit": "Log out", + "logout.form.submit": "Esci", + + // "logout.title": "Logout", + "logout.title": "Logout", + + + + // "menu.header.admin": "Management", + "menu.header.admin": "Gestione", + + // "menu.header.image.logo": "Repository logo", + "menu.header.image.logo": "Logo del repository", + + // "menu.header.admin.description": "Management menu", + "menu.header.admin.description": "Menu di gestione", + + + + // "menu.section.access_control": "Access Control", + "menu.section.access_control": "Controllo di accesso", + + // "menu.section.access_control_authorizations": "Authorizations", + "menu.section.access_control_authorizations": "Autorizzazioni", + + // "menu.section.access_control_groups": "Groups", + "menu.section.access_control_groups": "Gruppi", + + // "menu.section.access_control_people": "People", + "menu.section.access_control_people": "Persone", + + + + // "menu.section.admin_search": "Admin Search", + "menu.section.admin_search": "Ricerca admin", + + + + // "menu.section.browse_community": "This Community", + "menu.section.browse_community": "Questa Community", + + // "menu.section.browse_community_by_author": "By Author", + "menu.section.browse_community_by_author": "Per Autore", + + // "menu.section.browse_community_by_issue_date": "By Issue Date", + "menu.section.browse_community_by_issue_date": "Per data di pubblicazione", + + // "menu.section.browse_community_by_title": "By Title", + "menu.section.browse_community_by_title": "Per titolo", + + // "menu.section.browse_global": "All of DSpace", + // TODO New key - Add a translation + "menu.section.browse_global": "All of DSpace", + + // "menu.section.browse_global_by_author": "By Author", + // TODO New key - Add a translation + "menu.section.browse_global_by_author": "By Author", + + // "menu.section.browse_global_by_dateissued": "By Issue Date", + // TODO New key - Add a translation + "menu.section.browse_global_by_dateissued": "By Issue Date", + + // "menu.section.browse_global_by_subject": "By Subject", + // TODO New key - Add a translation + "menu.section.browse_global_by_subject": "By Subject", + + // "menu.section.browse_global_by_title": "By Title", + // TODO New key - Add a translation + "menu.section.browse_global_by_title": "By Title", + + // "menu.section.browse_global_communities_and_collections": "Communities & Collections", + // TODO New key - Add a translation + "menu.section.browse_global_communities_and_collections": "Communities & Collections", + + + + // "menu.section.control_panel": "Control Panel", + "menu.section.control_panel": "Pannello di controllo", + + // "menu.section.curation_task": "Curation Task", + "menu.section.curation_task": "Curation Task", + + + + // "menu.section.edit": "Edit", + "menu.section.edit": "Modificare", + + // "menu.section.edit_collection": "Collection", + "menu.section.edit_collection": "Collezione", + + // "menu.section.edit_community": "Community", + "menu.section.edit_community": "Community", + + // "menu.section.edit_item": "Item", + "menu.section.edit_item": "Articolo", + + + + // "menu.section.export": "Export", + "menu.section.export": "Esporta", + + // "menu.section.export_collection": "Collection", + "menu.section.export_collection": "Collezione", + + // "menu.section.export_community": "Community", + "menu.section.export_community": "Community", + + // "menu.section.export_item": "Item", + "menu.section.export_item": "Articolo", + + // "menu.section.export_metadata": "Metadata", + "menu.section.export_metadata": "Metadati", + + // "menu.section.export_batch": "Batch Export (ZIP)", + // TODO New key - Add a translation + "menu.section.export_batch": "Batch Export (ZIP)", + + + // "menu.section.icon.access_control": "Access Control menu section", + "menu.section.icon.access_control": "Sezione del menu Controllo di accesso", + + // "menu.section.icon.admin_search": "Admin search menu section", + "menu.section.icon.admin_search": "Sezione del menu di ricerca dell'amministratore", + + // "menu.section.icon.control_panel": "Control Panel menu section", + "menu.section.icon.control_panel": "Sezione del menu del Pannello di controllo", + + // "menu.section.icon.curation_tasks": "Curation Task menu section", + "menu.section.icon.curation_tasks": "Sezione del menu Curation task", + + // "menu.section.icon.edit": "Edit menu section", + "menu.section.icon.edit": "Modifica sezione menu", + + // "menu.section.icon.export": "Export menu section", + "menu.section.icon.export": "Sezione del menu Esporta", + + // "menu.section.icon.find": "Find menu section", + "menu.section.icon.find": "Trova sezione menu", + + // "menu.section.icon.health": "Health check menu section", + // TODO New key - Add a translation + "menu.section.icon.health": "Health check menu section", + + // "menu.section.icon.import": "Import menu section", + "menu.section.icon.import": "Sezione del menu Importa", + + // "menu.section.icon.new": "New menu section", + "menu.section.icon.new": "Nuova sezione menu", + + // "menu.section.icon.pin": "Pin sidebar", + "menu.section.icon.pin": "Fissa la barra laterale", + + // "menu.section.icon.processes": "Processes Health", + // TODO Source message changed - Revise the translation + "menu.section.icon.processes": "Sezione del menu Processi", + + // "menu.section.icon.registries": "Registries menu section", + "menu.section.icon.registries": "Sezione del menu Registri", + + // "menu.section.icon.statistics_task": "Statistics Task menu section", + "menu.section.icon.statistics_task": "Sezione del menu Task statistiche", + + // "menu.section.icon.workflow": "Administer workflow menu section", + "menu.section.icon.workflow": "Amministrare la sezione del menu del flusso di lavoro", + + // "menu.section.icon.unpin": "Unpin sidebar", + "menu.section.icon.unpin": "Rimuovi la barra laterale", + + + + // "menu.section.import": "Import", + "menu.section.import": "Importazione", + + // "menu.section.import_batch": "Batch Import (ZIP)", + "menu.section.import_batch": "Importazione batch (ZIP)", + + // "menu.section.import_metadata": "Metadata", + "menu.section.import_metadata": "Metadata", + + + + // "menu.section.new": "New", + "menu.section.new": "Nuovo", + + // "menu.section.new_collection": "Collection", + "menu.section.new_collection": "Collezione", + + // "menu.section.new_community": "Community", + "menu.section.new_community": "Community", + + // "menu.section.new_item": "Item", + "menu.section.new_item": "Item", + + // "menu.section.new_item_version": "Item Version", + "menu.section.new_item_version": "Versione dell'item", + + // "menu.section.new_process": "Process", + "menu.section.new_process": "Processo", + + + + // "menu.section.pin": "Pin sidebar", + "menu.section.pin": "Pin barra laterale", + + // "menu.section.unpin": "Unpin sidebar", + "menu.section.unpin": "Rimuovere la barra laterale", + + + + // "menu.section.processes": "Processes", + "menu.section.processes": "Processi", + + // "menu.section.health": "Health", + "menu.section.health": "Salute", + + + + // "menu.section.registries": "Registries", + "menu.section.registries": "Registri", + + // "menu.section.registries_format": "Format", + "menu.section.registries_format": "Formato", + + // "menu.section.registries_metadata": "Metadata", + "menu.section.registries_metadata": "Metadati", + + + + // "menu.section.statistics": "Statistics", + "menu.section.statistics": "Statistica", + + // "menu.section.statistics_task": "Statistics Task", + "menu.section.statistics_task": "Statistiche", + + + + // "menu.section.toggle.access_control": "Toggle Access Control section", + "menu.section.toggle.access_control": "Attiva/disattiva la sezione Controllo accessi", + + // "menu.section.toggle.control_panel": "Toggle Control Panel section", + "menu.section.toggle.control_panel": "Attiva/disattiva la sezione Pannello di controllo", + + // "menu.section.toggle.curation_task": "Toggle Curation Task section", + "menu.section.toggle.curation_task": "Attiva/disattiva la sezione Curation task", + + // "menu.section.toggle.edit": "Toggle Edit section", + "menu.section.toggle.edit": "Attiva/disattiva sezione Modifica", + + // "menu.section.toggle.export": "Toggle Export section", + "menu.section.toggle.export": "Attiva/disattiva la sezione Esporta", + + // "menu.section.toggle.find": "Toggle Find section", + "menu.section.toggle.find": "Attiva/disattiva la sezione Trova", + + // "menu.section.toggle.import": "Toggle Import section", + "menu.section.toggle.import": "Attiva/disattiva la sezione Importa", + + // "menu.section.toggle.new": "Toggle New section", + "menu.section.toggle.new": "Attiva/disattiva Nuova sezione", + + // "menu.section.toggle.registries": "Toggle Registries section", + "menu.section.toggle.registries": "Attiva/disattiva la sezione Registri", + + // "menu.section.toggle.statistics_task": "Toggle Statistics Task section", + "menu.section.toggle.statistics_task": "Attiva/disattiva la sezione Task statistiche", + + + // "menu.section.workflow": "Administer Workflow", + "menu.section.workflow": "Amministrare il flusso di lavoro", + + + // "metadata-export-search.tooltip": "Export search results as CSV", + "metadata-export-search.tooltip": "Esporta i risultati in CSV", + // "metadata-export-search.submit.success": "The export was started successfully", + "metadata-export-search.submit.success": "L'export è iniziato con successo", + // "metadata-export-search.submit.error": "Starting the export has failed", + "metadata-export-search.submit.error": "L'export è fallito", + + + // "mydspace.breadcrumbs": "MyDSpace", + "mydspace.breadcrumbs": "MyDSpace", + + // "mydspace.description": "", + "mydspace.description": "Mio spazio personale", + + // "mydspace.messages.controller-help": "Select this option to send a message to item's submitter.", + "mydspace.messages.controller-help": "Selezionare questa opzione per inviare un messaggio al mittente dell'item.", + + // "mydspace.messages.description-placeholder": "Insert your message here...", + "mydspace.messages.description-placeholder": "Inserisci qui il tuo messaggio...", + + // "mydspace.messages.hide-msg": "Hide message", + "mydspace.messages.hide-msg": "Nascondi messaggio", + + // "mydspace.messages.mark-as-read": "Mark as read", + "mydspace.messages.mark-as-read": "Contrassegna come letto", + + // "mydspace.messages.mark-as-unread": "Mark as unread", + "mydspace.messages.mark-as-unread": "Contrassegna come non letto", + + // "mydspace.messages.no-content": "No content.", + "mydspace.messages.no-content": "Nessun contenuto.", + + // "mydspace.messages.no-messages": "No messages yet.", + "mydspace.messages.no-messages": "Nessun messaggio ancora.", + + // "mydspace.messages.send-btn": "Send", + "mydspace.messages.send-btn": "Invia", + + // "mydspace.messages.show-msg": "Show message", + "mydspace.messages.show-msg": "Mostra messaggio", + + // "mydspace.messages.subject-placeholder": "Subject...", + "mydspace.messages.subject-placeholder": "Oggetto...", + + // "mydspace.messages.submitter-help": "Select this option to send a message to controller.", + "mydspace.messages.submitter-help": "Selezionare questa opzione per inviare un messaggio al controller.", + + // "mydspace.messages.title": "Messages", + "mydspace.messages.title": "Messaggi", + + // "mydspace.messages.to": "To", + "mydspace.messages.to": "A", + + // "mydspace.new-submission": "New submission", + "mydspace.new-submission": "Nuova immissione", + + // "mydspace.new-submission-external": "Import metadata from external source", + "mydspace.new-submission-external": "Importare metadati da un'origine esterna", + + // "mydspace.new-submission-external-short": "Import metadata", + "mydspace.new-submission-external-short": "Importare metadati", + + // "mydspace.results.head": "Your submissions", + "mydspace.results.head": "I tuoi contributi", + + // "mydspace.results.no-abstract": "No Abstract", + "mydspace.results.no-abstract": "Nessun abstract", + + // "mydspace.results.no-authors": "No Authors", + "mydspace.results.no-authors": "Nessun autore", + + // "mydspace.results.no-collections": "No Collections", + "mydspace.results.no-collections": "Nessuna collezione", + + // "mydspace.results.no-date": "No Date", + "mydspace.results.no-date": "Nessuna data", + + // "mydspace.results.no-files": "No Files", + "mydspace.results.no-files": "Nessun file", + + // "mydspace.results.no-results": "There were no items to show", + "mydspace.results.no-results": "Non c'erano oggetti da mostrare", + + // "mydspace.results.no-title": "No title", + "mydspace.results.no-title": "Nessun titolo", + + // "mydspace.results.no-uri": "No Uri", + "mydspace.results.no-uri": "Nessun URI", + + // "mydspace.search-form.placeholder": "Search in mydspace...", + "mydspace.search-form.placeholder": "Cerca in mydspace...", + + // "mydspace.show.workflow": "Workflow tasks", + "mydspace.show.workflow": "Workflow Tasks", + + // "mydspace.show.workspace": "Your Submissions", + "mydspace.show.workspace": "I tuoi contributi", + + // "mydspace.show.supervisedWorkspace": "Supervised items", + // TODO New key - Add a translation + "mydspace.show.supervisedWorkspace": "Supervised items", + + // "mydspace.status.archived": "Archived", + "mydspace.status.archived": "Archiviati", + + // "mydspace.status.validation": "Validation", + "mydspace.status.validation": "Convalida", + + // "mydspace.status.waiting-for-controller": "Waiting for controller", + "mydspace.status.waiting-for-controller": "In attesa del controllo", + + // "mydspace.status.workflow": "Workflow", + "mydspace.status.workflow": "Workflow", + + // "mydspace.status.workspace": "Workspace", + "mydspace.status.workspace": "Workspace", + + // "mydspace.title": "MyDSpace", + "mydspace.title": "MyDSpace", + + // "mydspace.upload.upload-failed": "Error creating new workspace. Please verify the content uploaded before retry.", + "mydspace.upload.upload-failed": "Errore durante la creazione di una nuova area di lavoro. Verifica il contenuto caricato prima di riprovare.", + + // "mydspace.upload.upload-failed-manyentries": "Unprocessable file. Detected too many entries but allowed only one for file.", + "mydspace.upload.upload-failed-manyentries": "File non elaborabile. Rilevate troppe voci ma ne è consentita solo una per il file.", + + // "mydspace.upload.upload-failed-moreonefile": "Unprocessable request. Only one file is allowed.", + "mydspace.upload.upload-failed-moreonefile": "Richiesta non elaborabile. È consentito un solo file.", + + // "mydspace.upload.upload-multiple-successful": "{{qty}} new workspace items created.", + "mydspace.upload.upload-multiple-successful": "{{qty}} nuovi item dell'area di lavoro creati.", + + // "mydspace.view-btn": "View", + "mydspace.view-btn": "Vista", + + + + // "nav.browse.header": "All of DSpace", + "nav.browse.header": "Tutto DSpace", + + // "nav.community-browse.header": "By Community", + "nav.community-browse.header": "Per Community", + + // "nav.context-help-toggle": "Toggle context help", + // TODO New key - Add a translation + "nav.context-help-toggle": "Toggle context help", + + // "nav.language": "Language switch", + "nav.language": "Cambio di lingua", + + // "nav.login": "Log In", + "nav.login": "Accedi", + + // "nav.user-profile-menu-and-logout": "User profile menu and Log Out", + // TODO New key - Add a translation + "nav.user-profile-menu-and-logout": "User profile menu and Log Out", + + // "nav.logout": "Log Out", + // TODO Source message changed - Revise the translation + "nav.logout": "Menu profilo utente e Disconnetti", + + // "nav.main.description": "Main navigation bar", + "nav.main.description": "Barra di navigazione principale", + + // "nav.mydspace": "MyDSpace", + "nav.mydspace": "MyDSpace", + + // "nav.profile": "Profile", + "nav.profile": "Profilo", + + // "nav.search": "Search", + "nav.search": "Ricerca", + + // "nav.search.button": "Submit search", + // TODO New key - Add a translation + "nav.search.button": "Submit search", + + + // "nav.statistics.header": "Statistics", + "nav.statistics.header": "Statistica", + + // "nav.stop-impersonating": "Stop impersonating EPerson", + "nav.stop-impersonating": "Smetti di impersonare EPerson", + + // "nav.subscriptions": "Subscriptions", + // TODO New key - Add a translation + "nav.subscriptions": "Subscriptions", + + // "nav.toggle": "Toggle navigation", + // TODO New key - Add a translation + "nav.toggle": "Toggle navigation", + + // "nav.user.description": "User profile bar", + // TODO New key - Add a translation + "nav.user.description": "User profile bar", + + // "none.listelement.badge": "Item", + "none.listelement.badge": "Articolo", + + + // "orgunit.listelement.badge": "Organizational Unit", + "orgunit.listelement.badge": "Unità organizzativa", + + // "orgunit.listelement.no-title": "Untitled", + // TODO New key - Add a translation + "orgunit.listelement.no-title": "Untitled", + + // "orgunit.page.city": "City", + "orgunit.page.city": "Città", + + // "orgunit.page.country": "Country", + "orgunit.page.country": "Paese", + + // "orgunit.page.dateestablished": "Date established", + "orgunit.page.dateestablished": "Data stabilita", + + // "orgunit.page.description": "Description", + "orgunit.page.description": "Descrizione", + + // "orgunit.page.edit": "Edit this item", + "orgunit.page.edit": "Modifica questo item", + + // "orgunit.page.id": "ID", + "orgunit.page.id": "ID", + + // "orgunit.page.titleprefix": "Organizational Unit: ", + // TODO New key - Add a translation + "orgunit.page.titleprefix": "Organizational Unit: ", + + + + // "pagination.options.description": "Pagination options", + "pagination.options.description": "Opzioni di impaginazione", + + // "pagination.results-per-page": "Results Per Page", + "pagination.results-per-page": "Risultati per pagina", + + // "pagination.showing.detail": "{{ range }} of {{ total }}", + "pagination.showing.detail": "{{ range }} di {{ total }}", + + // "pagination.showing.label": "Now showing ", + "pagination.showing.label": "Ora in mostra ", + + // "pagination.sort-direction": "Sort Options", + "pagination.sort-direction": "Opzioni di ordinamento", + + + + // "person.listelement.badge": "Person", + "person.listelement.badge": "Persona", + + // "person.listelement.no-title": "No name found", + "person.listelement.no-title": "Nessun nome trovato", + + // "person.page.birthdate": "Birth Date", + "person.page.birthdate": "Data di nascita", + + // "person.page.edit": "Edit this item", + "person.page.edit": "Modifica questo item", + + // "person.page.email": "Email Address", + "person.page.email": "Indirizzo email", + + // "person.page.firstname": "First Name", + "person.page.firstname": "Nome di battesimo", + + // "person.page.jobtitle": "Job Title", + "person.page.jobtitle": "Titolo di lavoro", + + // "person.page.lastname": "Last Name", + "person.page.lastname": "Cognome", + + // "person.page.name": "Name", + // TODO New key - Add a translation + "person.page.name": "Name", + + // "person.page.link.full": "Show all metadata", + "person.page.link.full": "Mostra tutti i metadati", + + // "person.page.orcid": "ORCID", + "person.page.orcid": "ORCID", + + // "person.page.staffid": "Staff ID", + "person.page.staffid": "ID personale", + + // "person.page.titleprefix": "Person: ", + "person.page.titleprefix": "Persona: ", + + // "person.search.results.head": "Person Search Results", + "person.search.results.head": "Risultati della ricerca per Ricercatore", + + // "person-relationships.search.results.head": "Person Search Results", + // TODO New key - Add a translation + "person-relationships.search.results.head": "Person Search Results", + + // "person.search.title": "Person Search", + "person.search.title": "Cerca i Ricercatori", + + + + // "process.new.select-parameters": "Parameters", + "process.new.select-parameters": "Parametri", + + // "process.new.cancel": "Cancel", + "process.new.cancel": "Annulla", + + // "process.new.submit": "Save", + "process.new.submit": "Salvare", + + // "process.new.select-script": "Script", + "process.new.select-script": "Script", + + // "process.new.select-script.placeholder": "Choose a script...", + "process.new.select-script.placeholder": "Scegli uno script...", + + // "process.new.select-script.required": "Script is required", + "process.new.select-script.required": "Lo script è obbligatorio", + + // "process.new.parameter.file.upload-button": "Select file...", + "process.new.parameter.file.upload-button": "Seleziona file...", + + // "process.new.parameter.file.required": "Please select a file", + "process.new.parameter.file.required": "Seleziona un file", + + // "process.new.parameter.string.required": "Parameter value is required", + "process.new.parameter.string.required": "Il valore del parametro è obbligatorio", + + // "process.new.parameter.type.value": "value", + "process.new.parameter.type.value": "valore", + + // "process.new.parameter.type.file": "file", + "process.new.parameter.type.file": "file", + + // "process.new.parameter.required.missing": "The following parameters are required but still missing:", + // TODO New key - Add a translation + "process.new.parameter.required.missing": "The following parameters are required but still missing:", + + // "process.new.notification.success.title": "Success", + "process.new.notification.success.title": "Successo", + + // "process.new.notification.success.content": "The process was successfully created", + "process.new.notification.success.content": "Il processo è stato creato con successo", + + // "process.new.notification.error.title": "Error", + "process.new.notification.error.title": "Errore", + + // "process.new.notification.error.content": "An error occurred while creating this process", + "process.new.notification.error.content": "Si è verificato un errore durante la creazione di questo processo", + + // "process.new.notification.error.max-upload.content": "The file exceeds the maximum upload size", + // TODO New key - Add a translation + "process.new.notification.error.max-upload.content": "The file exceeds the maximum upload size", + + // "process.new.header": "Create a new process", + "process.new.header": "Creare un nuovo processo", + + // "process.new.title": "Create a new process", + "process.new.title": "Creare un nuovo processo", + + // "process.new.breadcrumbs": "Create a new process", + "process.new.breadcrumbs": "Creare un nuovo processo", + + + + // "process.detail.arguments": "Arguments", + // TODO New key - Add a translation + "process.detail.arguments": "Arguments", + + // "process.detail.arguments.empty": "This process doesn't contain any arguments", + // TODO New key - Add a translation + "process.detail.arguments.empty": "This process doesn't contain any arguments", + + // "process.detail.back": "Back", + // TODO New key - Add a translation + "process.detail.back": "Back", + + // "process.detail.output": "Process Output", + // TODO New key - Add a translation + "process.detail.output": "Process Output", + + // "process.detail.logs.button": "Retrieve process output", + "process.detail.logs.button": "Recupera l'output del processo", + + // "process.detail.logs.loading": "Retrieving", + "process.detail.logs.loading": "Recupero", + + // "process.detail.logs.none": "This process has no output", + "process.detail.logs.none": "Questo processo non ha output", + + // "process.detail.output-files": "Output Files", + // TODO New key - Add a translation + "process.detail.output-files": "Output Files", + + // "process.detail.output-files.empty": "This process doesn't contain any output files", + // TODO New key - Add a translation + "process.detail.output-files.empty": "This process doesn't contain any output files", + + // "process.detail.script": "Script", + // TODO New key - Add a translation + "process.detail.script": "Script", + + // "process.detail.title": "Process: {{ id }} - {{ name }}", + // TODO New key - Add a translation + "process.detail.title": "Process: {{ id }} - {{ name }}", + + // "process.detail.start-time": "Start time", + // TODO New key - Add a translation + "process.detail.start-time": "Start time", + + // "process.detail.end-time": "Finish time", + // TODO New key - Add a translation + "process.detail.end-time": "Finish time", + + // "process.detail.status": "Status", + // TODO New key - Add a translation + "process.detail.status": "Status", + + // "process.detail.create": "Create similar process", + // TODO New key - Add a translation + "process.detail.create": "Create similar process", + + // "process.detail.actions": "Actions", + // TODO New key - Add a translation + "process.detail.actions": "Actions", + + // "process.detail.delete.button": "Delete process", + // TODO New key - Add a translation + "process.detail.delete.button": "Delete process", + + // "process.detail.delete.header": "Delete process", + // TODO New key - Add a translation + "process.detail.delete.header": "Delete process", + + // "process.detail.delete.body": "Are you sure you want to delete the current process?", + // TODO New key - Add a translation + "process.detail.delete.body": "Are you sure you want to delete the current process?", + + // "process.detail.delete.cancel": "Cancel", + // TODO New key - Add a translation + "process.detail.delete.cancel": "Cancel", + + // "process.detail.delete.confirm": "Delete process", + // TODO New key - Add a translation + "process.detail.delete.confirm": "Delete process", + + // "process.detail.delete.success": "The process was successfully deleted.", + // TODO New key - Add a translation + "process.detail.delete.success": "The process was successfully deleted.", + + // "process.detail.delete.error": "Something went wrong when deleting the process", + // TODO New key - Add a translation + "process.detail.delete.error": "Something went wrong when deleting the process", + + + + // "process.overview.table.finish": "Finish time (UTC)", + // TODO New key - Add a translation + "process.overview.table.finish": "Finish time (UTC)", + + // "process.overview.table.id": "Process ID", + // TODO New key - Add a translation + "process.overview.table.id": "Process ID", + + // "process.overview.table.name": "Name", + // TODO New key - Add a translation + "process.overview.table.name": "Name", + + // "process.overview.table.start": "Start time (UTC)", + // TODO New key - Add a translation + "process.overview.table.start": "Start time (UTC)", + + // "process.overview.table.status": "Status", + // TODO New key - Add a translation + "process.overview.table.status": "Status", + + // "process.overview.table.user": "User", + // TODO New key - Add a translation + "process.overview.table.user": "User", + + // "process.overview.title": "Processes Overview", + "process.overview.title": "Panoramica dei processi", + + // "process.overview.breadcrumbs": "Processes Overview", + "process.overview.breadcrumbs": "Panoramica dei processi", + + // "process.overview.new": "New", + "process.overview.new": "Nuovo", + + // "process.overview.table.actions": "Actions", + // TODO New key - Add a translation + "process.overview.table.actions": "Actions", + + // "process.overview.delete": "Delete {{count}} processes", + // TODO New key - Add a translation + "process.overview.delete": "Delete {{count}} processes", + + // "process.overview.delete.clear": "Clear delete selection", + // TODO New key - Add a translation + "process.overview.delete.clear": "Clear delete selection", + + // "process.overview.delete.processing": "{{count}} process(es) are being deleted. Please wait for the deletion to fully complete. Note that this can take a while.", + // TODO New key - Add a translation + "process.overview.delete.processing": "{{count}} process(es) are being deleted. Please wait for the deletion to fully complete. Note that this can take a while.", + + // "process.overview.delete.body": "Are you sure you want to delete {{count}} process(es)?", + // TODO New key - Add a translation + "process.overview.delete.body": "Are you sure you want to delete {{count}} process(es)?", + + // "process.overview.delete.header": "Delete processes", + // TODO New key - Add a translation + "process.overview.delete.header": "Delete processes", + + // "process.bulk.delete.error.head": "Error on deleteing process", + // TODO New key - Add a translation + "process.bulk.delete.error.head": "Error on deleteing process", + + // "process.bulk.delete.error.body": "The process with ID {{processId}} could not be deleted. The remaining processes will continue being deleted. ", + // TODO New key - Add a translation + "process.bulk.delete.error.body": "The process with ID {{processId}} could not be deleted. The remaining processes will continue being deleted. ", + + // "process.bulk.delete.success": "{{count}} process(es) have been succesfully deleted", + // TODO New key - Add a translation + "process.bulk.delete.success": "{{count}} process(es) have been succesfully deleted", + + + + // "profile.breadcrumbs": "Update Profile", + "profile.breadcrumbs": "Aggiorna profilo", + + // "profile.card.identify": "Identify", + "profile.card.identify": "Identificare", + + // "profile.card.security": "Security", + "profile.card.security": "Sicurezza", + + // "profile.form.submit": "Save", + // TODO Source message changed - Revise the translation + "profile.form.submit": "Aggiorna profilo", + + // "profile.groups.head": "Authorization groups you belong to", + "profile.groups.head": "Gruppi di autorizzazione a cui appartieni", + + // "profile.special.groups.head": "Authorization special groups you belong to", + // TODO New key - Add a translation + "profile.special.groups.head": "Authorization special groups you belong to", + + // "profile.head": "Update Profile", + "profile.head": "Aggiorna profilo", + + // "profile.metadata.form.error.firstname.required": "First Name is required", + "profile.metadata.form.error.firstname.required": "Il nome è obbligatorio", + + // "profile.metadata.form.error.lastname.required": "Last Name is required", + "profile.metadata.form.error.lastname.required": "Il cognome è obbligatorio", + + // "profile.metadata.form.label.email": "Email Address", + "profile.metadata.form.label.email": "Indirizzo e-mail", + + // "profile.metadata.form.label.firstname": "First Name", + "profile.metadata.form.label.firstname": "Nome", + + // "profile.metadata.form.label.language": "Language", + "profile.metadata.form.label.language": "Lingua", + + // "profile.metadata.form.label.lastname": "Last Name", + "profile.metadata.form.label.lastname": "Cognome", + + // "profile.metadata.form.label.phone": "Contact Telephone", + "profile.metadata.form.label.phone": "Telefono di contatto", + + // "profile.metadata.form.notifications.success.content": "Your changes to the profile were saved.", + "profile.metadata.form.notifications.success.content": "Le modifiche apportate al profilo sono state salvate.", + + // "profile.metadata.form.notifications.success.title": "Profile saved", + "profile.metadata.form.notifications.success.title": "Profilo salvato", + + // "profile.notifications.warning.no-changes.content": "No changes were made to the Profile.", + "profile.notifications.warning.no-changes.content": "Non sono state apportate modifiche al Profilo.", + + // "profile.notifications.warning.no-changes.title": "No changes", + "profile.notifications.warning.no-changes.title": "Nessuna modifica", + + // "profile.security.form.error.matching-passwords": "The passwords do not match.", + "profile.security.form.error.matching-passwords": "Le password non corrispondono.", + + // "profile.security.form.info": "Optionally, you can enter a new password in the box below, and confirm it by typing it again into the second box.", + // TODO Source message changed - Revise the translation + "profile.security.form.info": "Facoltativamente, è possibile inserire una nuova password nella casella qui sotto e confermarla digitandola nuovamente nella seconda casella. Dovrebbe essere lungo almeno sei caratteri.", + + // "profile.security.form.label.password": "Password", + "profile.security.form.label.password": "Password", + + // "profile.security.form.label.passwordrepeat": "Retype to confirm", + "profile.security.form.label.passwordrepeat": "Ridigitare per confermare", + + // "profile.security.form.label.current-password": "Current password", + // TODO New key - Add a translation + "profile.security.form.label.current-password": "Current password", + + // "profile.security.form.notifications.success.content": "Your changes to the password were saved.", + "profile.security.form.notifications.success.content": "Le modifiche apportate alla password sono state salvate.", + + // "profile.security.form.notifications.success.title": "Password saved", + "profile.security.form.notifications.success.title": "Password salvata", + + // "profile.security.form.notifications.error.title": "Error changing passwords", + "profile.security.form.notifications.error.title": "Errore durante la modifica delle password", + + // "profile.security.form.notifications.error.change-failed": "An error occurred while trying to change the password. Please check if the current password is correct.", + // TODO New key - Add a translation + "profile.security.form.notifications.error.change-failed": "An error occurred while trying to change the password. Please check if the current password is correct.", + + // "profile.security.form.notifications.error.not-same": "The provided passwords are not the same.", + "profile.security.form.notifications.error.not-same": "Le password fornite non sono le stesse.", + + // "profile.security.form.notifications.error.general": "Please fill required fields of security form.", + // TODO New key - Add a translation + "profile.security.form.notifications.error.general": "Please fill required fields of security form.", + + // "profile.title": "Update Profile", + "profile.title": "Aggiorna profilo", + + // "profile.card.researcher": "Researcher Profile", + "profile.card.researcher": "Profilo del ricercatore", + + // "project.listelement.badge": "Research Project", + "project.listelement.badge": "Risultati della ricerca: Progetti", + + // "project.page.contributor": "Contributors", + "project.page.contributor": "Progetto di ricerca", + + // "project.page.description": "Description", + "project.page.description": "Collaboratori", + + // "project.page.edit": "Edit this item", + "project.page.edit": "Descrizione", + + // "project.page.expectedcompletion": "Expected Completion", + "project.page.expectedcompletion": "Modifica questo item", + + // "project.page.funder": "Funders", + "project.page.funder": "Completamento previsto", + + // "project.page.id": "ID", + "project.page.id": "Finanziatori", + + // "project.page.keyword": "Keywords", + "project.page.keyword": "ID", + + // "project.page.status": "Status", + "project.page.status": "Parole chiave", + + // "project.page.titleprefix": "Research Project: ", + // TODO New key - Add a translation + "project.page.titleprefix": "Research Project: ", + + // "project.search.results.head": "Project Search Results", + "project.search.results.head": "Progetto di ricerca: ", + + // "project-relationships.search.results.head": "Project Search Results", + // TODO New key - Add a translation + "project-relationships.search.results.head": "Project Search Results", + + + + // "publication.listelement.badge": "Publication", + "publication.listelement.badge": "Pubblicazione", + + // "publication.page.description": "Description", + "publication.page.description": "Descrizione", + + // "publication.page.edit": "Edit this item", + "publication.page.edit": "Modifica questo item", + + // "publication.page.journal-issn": "Journal ISSN", + "publication.page.journal-issn": "ISSN Periodico", + + // "publication.page.journal-title": "Journal Title", + "publication.page.journal-title": "Titolo del Periodico", + + // "publication.page.publisher": "Publisher", + "publication.page.publisher": "Editore", + + // "publication.page.titleprefix": "Publication: ", + // TODO New key - Add a translation + "publication.page.titleprefix": "Publication: ", + + // "publication.page.volume-title": "Volume Title", + "publication.page.volume-title": "Titolo volume", + + // "publication.search.results.head": "Publication Search Results", + "publication.search.results.head": "Risultati della ricerca di pubblicazioni", + + // "publication-relationships.search.results.head": "Publication Search Results", + // TODO New key - Add a translation + "publication-relationships.search.results.head": "Publication Search Results", + + // "publication.search.title": "Publication Search", + "publication.search.title": "Ricerca pubblicazione", + + + // "media-viewer.next": "Next", + "media-viewer.next": "Avanti", + + // "media-viewer.previous": "Previous", + "media-viewer.previous": "Precedente", + + // "media-viewer.playlist": "Playlist", + "media-viewer.playlist": "Playlist", + + + // "register-email.title": "New user registration", + "register-email.title": "Registrazione nuovo utente", + + // "register-page.create-profile.header": "Create Profile", + "register-page.create-profile.header": "Crea profilo", + + // "register-page.create-profile.identification.header": "Identify", + "register-page.create-profile.identification.header": "Identificare", + + // "register-page.create-profile.identification.email": "Email Address", + "register-page.create-profile.identification.email": "Indirizzo e-mail", + + // "register-page.create-profile.identification.first-name": "First Name *", + "register-page.create-profile.identification.first-name": "Nome *", + + // "register-page.create-profile.identification.first-name.error": "Please fill in a First Name", + "register-page.create-profile.identification.first-name.error": "Inserire un nome", + + // "register-page.create-profile.identification.last-name": "Last Name *", + "register-page.create-profile.identification.last-name": "Cognome *", + + // "register-page.create-profile.identification.last-name.error": "Please fill in a Last Name", + "register-page.create-profile.identification.last-name.error": "Inserire un cognome", + + // "register-page.create-profile.identification.contact": "Contact Telephone", + "register-page.create-profile.identification.contact": "Telefono di contatto", + + // "register-page.create-profile.identification.language": "Language", + "register-page.create-profile.identification.language": "Lingua", + + // "register-page.create-profile.security.header": "Security", + "register-page.create-profile.security.header": "Sicurezza", + + // "register-page.create-profile.security.info": "Please enter a password in the box below, and confirm it by typing it again into the second box.", + // TODO Source message changed - Revise the translation + "register-page.create-profile.security.info": "Inserisci una password nella casella qui sotto e confermala digitandola nuovamente nella seconda casella. Dovrebbe essere lungo almeno sei caratteri.", + + // "register-page.create-profile.security.label.password": "Password *", + "register-page.create-profile.security.label.password": "Password *", + + // "register-page.create-profile.security.label.passwordrepeat": "Retype to confirm *", + "register-page.create-profile.security.label.passwordrepeat": "Ridigitare per confermare *", + + // "register-page.create-profile.security.error.empty-password": "Please enter a password in the box below.", + "register-page.create-profile.security.error.empty-password": "Inserisci una password nella casella qui sotto.", + + // "register-page.create-profile.security.error.matching-passwords": "The passwords do not match.", + "register-page.create-profile.security.error.matching-passwords": "Le password non corrispondono.", + + // "register-page.create-profile.submit": "Complete Registration", + "register-page.create-profile.submit": "Registrazione completa", + + // "register-page.create-profile.submit.error.content": "Something went wrong while registering a new user.", + "register-page.create-profile.submit.error.content": "Qualcosa è andato storto durante la registrazione di un nuovo utente.", + + // "register-page.create-profile.submit.error.head": "Registration failed", + "register-page.create-profile.submit.error.head": "Registrazione non riuscita", + + // "register-page.create-profile.submit.success.content": "The registration was successful. You have been logged in as the created user.", + "register-page.create-profile.submit.success.content": "La registrazione è andata a buon fine. Hai effettuato l'accesso come utente creato.", + + // "register-page.create-profile.submit.success.head": "Registration completed", + "register-page.create-profile.submit.success.head": "Registrazione completata", + + + // "register-page.registration.header": "New user registration", + "register-page.registration.header": "Registrazione nuovo utente", + + // "register-page.registration.info": "Register an account to subscribe to collections for email updates, and submit new items to DSpace.", + "register-page.registration.info": "Registra un account per iscriverti alle collezioni per gli aggiornamenti via e-mail e invia nuovi item a DSpace.", + + // "register-page.registration.email": "Email Address *", + "register-page.registration.email": "Indirizzo e-mail *", + + // "register-page.registration.email.error.required": "Please fill in an email address", + "register-page.registration.email.error.required": "Inserire un indirizzo e-mail", + + // "register-page.registration.email.error.not-email-form": "Please fill in a valid email address.", + // TODO New key - Add a translation + "register-page.registration.email.error.not-email-form": "Please fill in a valid email address.", + + // "register-page.registration.email.error.not-valid-domain": "Use email with allowed domains: {{ domains }}", + // TODO New key - Add a translation + "register-page.registration.email.error.not-valid-domain": "Use email with allowed domains: {{ domains }}", + + // "register-page.registration.email.hint": "This address will be verified and used as your login name.", + "register-page.registration.email.hint": "Questo indirizzo verrà verificato e utilizzato come nome di accesso.", + + // "register-page.registration.submit": "Register", + "register-page.registration.submit": "Registrati", + + // "register-page.registration.success.head": "Verification email sent", + "register-page.registration.success.head": "Email di verifica inviata", + + // "register-page.registration.success.content": "An email has been sent to {{ email }} containing a special URL and further instructions.", + "register-page.registration.success.content": "È stata inviata un'e-mail a {{ email }} contenente un URL speciale e ulteriori istruzioni.", + + // "register-page.registration.error.head": "Error when trying to register email", + "register-page.registration.error.head": "Errore durante il tentativo di registrazione dell'e-mail", + + // "register-page.registration.error.content": "An error occured when registering the following email address: {{ email }}", + // TODO New key - Add a translation + "register-page.registration.error.content": "An error occured when registering the following email address: {{ email }}", + + // "register-page.registration.error.recaptcha": "Error when trying to authenticate with recaptcha", + // TODO New key - Add a translation + "register-page.registration.error.recaptcha": "Error when trying to authenticate with recaptcha", + + // "register-page.registration.google-recaptcha.must-accept-cookies": "In order to register you must accept the Registration and Password recovery (Google reCaptcha) cookies.", + // TODO New key - Add a translation + "register-page.registration.google-recaptcha.must-accept-cookies": "In order to register you must accept the Registration and Password recovery (Google reCaptcha) cookies.", + // "register-page.registration.error.maildomain": "This email address is not on the list of domains who can register. Allowed domains are {{ domains }}", + // TODO New key - Add a translation + "register-page.registration.error.maildomain": "This email address is not on the list of domains who can register. Allowed domains are {{ domains }}", + + + // "register-page.registration.google-recaptcha.open-cookie-settings": "Open cookie settings", + // TODO New key - Add a translation + "register-page.registration.google-recaptcha.open-cookie-settings": "Open cookie settings", + + // "register-page.registration.google-recaptcha.notification.title": "Google reCaptcha", + // TODO New key - Add a translation + "register-page.registration.google-recaptcha.notification.title": "Google reCaptcha", + + // "register-page.registration.google-recaptcha.notification.message.error": "An error occurred during reCaptcha verification", + // TODO New key - Add a translation + "register-page.registration.google-recaptcha.notification.message.error": "An error occurred during reCaptcha verification", + + // "register-page.registration.google-recaptcha.notification.message.expired": "Verification expired. Please verify again.", + // TODO New key - Add a translation + "register-page.registration.google-recaptcha.notification.message.expired": "Verification expired. Please verify again.", + // "register-page.registration.info.maildomain": "Accounts can be registered for mail addresses of the domains", + // TODO New key - Add a translation + "register-page.registration.info.maildomain": "Accounts can be registered for mail addresses of the domains", + + // "relationships.add.error.relationship-type.content": "No suitable match could be found for relationship type {{ type }} between the two items", + "relationships.add.error.relationship-type.content": "Non è stata trovata alcuna corrispondenza adatta per il tipo di relazione {{ type }} tra i due item", + + // "relationships.add.error.server.content": "The server returned an error", + "relationships.add.error.server.content": "Il server ha restituito un errore", + + // "relationships.add.error.title": "Unable to add relationship", + "relationships.add.error.title": "Impossibile aggiungere relazione", + + // "relationships.isAuthorOf": "Authors", + "relationships.isAuthorOf": "Autori", + + // "relationships.isAuthorOf.Person": "Authors (persons)", + "relationships.isAuthorOf.Person": "Autori (persone)", + + // "relationships.isAuthorOf.OrgUnit": "Authors (organizational units)", + "relationships.isAuthorOf.OrgUnit": "Autori (struttura)", + + // "relationships.isIssueOf": "Journal Issues", + "relationships.isIssueOf": "Fascicolo Periodico", + + // "relationships.isJournalIssueOf": "Journal Issue", + "relationships.isJournalIssueOf": "Fascicolo Periodico", + + // "relationships.isJournalOf": "Journals", + "relationships.isJournalOf": "Periodico", + + // "relationships.isOrgUnitOf": "Organizational Units", + "relationships.isOrgUnitOf": "Strutture", + + // "relationships.isPersonOf": "Authors", + "relationships.isPersonOf": "Autori", + + // "relationships.isProjectOf": "Research Projects", + "relationships.isProjectOf": "Progetti di ricerca", + + // "relationships.isPublicationOf": "Publications", + "relationships.isPublicationOf": "Pubblicazioni", + + // "relationships.isPublicationOfJournalIssue": "Articles", + "relationships.isPublicationOfJournalIssue": "Articoli", + + // "relationships.isSingleJournalOf": "Journal", + "relationships.isSingleJournalOf": "Periodico", + + // "relationships.isSingleVolumeOf": "Journal Volume", + "relationships.isSingleVolumeOf": "Volume del Periodico", + + // "relationships.isVolumeOf": "Journal Volumes", + "relationships.isVolumeOf": "Volumi di Periodico", + + // "relationships.isContributorOf": "Contributors", + "relationships.isContributorOf": "Collaboratori", + + // "relationships.isContributorOf.OrgUnit": "Contributor (Organizational Unit)", + "relationships.isContributorOf.OrgUnit": "Collaboratore (Struttura)", + + // "relationships.isContributorOf.Person": "Contributor", + "relationships.isContributorOf.Person": "Collaboratore", + + // "relationships.isFundingAgencyOf.OrgUnit": "Funder", + "relationships.isFundingAgencyOf.OrgUnit": "Finanziatore", + + + // "repository.image.logo": "Repository logo", + "repository.image.logo": "Logo del repository", + + // "repository.title.prefix": "DSpace Angular :: ", + // TODO New key - Add a translation + "repository.title.prefix": "DSpace Angular :: ", + + // "repository.title.prefixDSpace": "DSpace Angular ::", + "repository.title.prefixDSpace": "DSpace Angular ::", + + + // "resource-policies.add.button": "Add", + "resource-policies.add.button": "Aggiungi", + + // "resource-policies.add.for.": "Add a new policy", + "resource-policies.add.for.": "Aggiungi un nuovo criterio", + + // "resource-policies.add.for.bitstream": "Add a new Bitstream policy", + "resource-policies.add.for.bitstream": "Aggiungi un nuovo criterio Bitstream", + + // "resource-policies.add.for.bundle": "Add a new Bundle policy", + "resource-policies.add.for.bundle": "Aggiungi un nuovo criterio Bundle", + + // "resource-policies.add.for.item": "Add a new Item policy", + "resource-policies.add.for.item": "Aggiungi un nuovo criterio item", + + // "resource-policies.add.for.community": "Add a new Community policy", + "resource-policies.add.for.community": "Aggiungere un nuovo criterio comunitario", + + // "resource-policies.add.for.collection": "Add a new Collection policy", + "resource-policies.add.for.collection": "Aggiungere un nuovo criterio di collezione", + + // "resource-policies.create.page.heading": "Create new resource policy for ", + "resource-policies.create.page.heading": "Creare nuovi criteri di risorsa per ", + + // "resource-policies.create.page.failure.content": "An error occurred while creating the resource policy.", + "resource-policies.create.page.failure.content": "Si è verificato un errore durante la creazione del criterio della risorsa.", + + // "resource-policies.create.page.success.content": "Operation successful", + "resource-policies.create.page.success.content": "Operazione riuscita", + + // "resource-policies.create.page.title": "Create new resource policy", + "resource-policies.create.page.title": "Creare nuovi criteri risorse", + + // "resource-policies.delete.btn": "Delete selected", + "resource-policies.delete.btn": "Elimina selezionato", + + // "resource-policies.delete.btn.title": "Delete selected resource policies", + "resource-policies.delete.btn.title": "Elimina criteri risorse selezionati", + + // "resource-policies.delete.failure.content": "An error occurred while deleting selected resource policies.", + "resource-policies.delete.failure.content": "Si è verificato un errore durante l'eliminazione dei criteri delle risorse selezionati.", + + // "resource-policies.delete.success.content": "Operation successful", + "resource-policies.delete.success.content": "Operazione riuscita", + + // "resource-policies.edit.page.heading": "Edit resource policy ", + "resource-policies.edit.page.heading": "Modifica criterio risorse", + + // "resource-policies.edit.page.failure.content": "An error occurred while editing the resource policy.", + "resource-policies.edit.page.failure.content": "Si è verificato un errore durante la modifica del criterio delle risorse.", + + // "resource-policies.edit.page.target-failure.content": "An error occurred while editing the target (ePerson or group) of the resource policy.", + // TODO New key - Add a translation + "resource-policies.edit.page.target-failure.content": "An error occurred while editing the target (ePerson or group) of the resource policy.", + + // "resource-policies.edit.page.other-failure.content": "An error occurred while editing the resource policy. The target (ePerson or group) has been successfully updated.", + // TODO New key - Add a translation + "resource-policies.edit.page.other-failure.content": "An error occurred while editing the resource policy. The target (ePerson or group) has been successfully updated.", + + // "resource-policies.edit.page.success.content": "Operation successful", + "resource-policies.edit.page.success.content": "Operazione riuscita", + + // "resource-policies.edit.page.title": "Edit resource policy", + "resource-policies.edit.page.title": "Modifica criterio risorse", + + // "resource-policies.form.action-type.label": "Select the action type", + "resource-policies.form.action-type.label": "Selezionare il tipo di azione", + + // "resource-policies.form.action-type.required": "You must select the resource policy action.", + "resource-policies.form.action-type.required": "È necessario selezionare l'azione del criterio delle risorse.", + + // "resource-policies.form.eperson-group-list.label": "The eperson or group that will be granted the permission", + "resource-policies.form.eperson-group-list.label": "L'eperson o il gruppo a cui verrà concessa l'autorizzazione", + + // "resource-policies.form.eperson-group-list.select.btn": "Select", + "resource-policies.form.eperson-group-list.select.btn": "Seleziona", + + // "resource-policies.form.eperson-group-list.tab.eperson": "Search for a ePerson", + "resource-policies.form.eperson-group-list.tab.eperson": "Cerca un ePerson", + + // "resource-policies.form.eperson-group-list.tab.group": "Search for a group", + "resource-policies.form.eperson-group-list.tab.group": "Cerca un gruppo", + + // "resource-policies.form.eperson-group-list.table.headers.action": "Action", + "resource-policies.form.eperson-group-list.table.headers.action": "Azione", + + // "resource-policies.form.eperson-group-list.table.headers.id": "ID", + "resource-policies.form.eperson-group-list.table.headers.id": "ID", + + // "resource-policies.form.eperson-group-list.table.headers.name": "Name", + "resource-policies.form.eperson-group-list.table.headers.name": "Nome", + + // "resource-policies.form.eperson-group-list.modal.header": "Cannot change type", + // TODO New key - Add a translation + "resource-policies.form.eperson-group-list.modal.header": "Cannot change type", + + // "resource-policies.form.eperson-group-list.modal.text1.toGroup": "It is not possible to replace an ePerson with a group.", + // TODO New key - Add a translation + "resource-policies.form.eperson-group-list.modal.text1.toGroup": "It is not possible to replace an ePerson with a group.", + + // "resource-policies.form.eperson-group-list.modal.text1.toEPerson": "It is not possible to replace a group with an ePerson.", + // TODO New key - Add a translation + "resource-policies.form.eperson-group-list.modal.text1.toEPerson": "It is not possible to replace a group with an ePerson.", + + // "resource-policies.form.eperson-group-list.modal.text2": "Delete the current resource policy and create a new one with the desired type.", + // TODO New key - Add a translation + "resource-policies.form.eperson-group-list.modal.text2": "Delete the current resource policy and create a new one with the desired type.", + + // "resource-policies.form.eperson-group-list.modal.close": "Ok", + "resource-policies.form.eperson-group-list.modal.close": "Ok", + + // "resource-policies.form.date.end.label": "End Date", + "resource-policies.form.date.end.label": "Data di fine", + + // "resource-policies.form.date.start.label": "Start Date", + "resource-policies.form.date.start.label": "Data di inizio", + + // "resource-policies.form.description.label": "Description", + "resource-policies.form.description.label": "Descrizione", + + // "resource-policies.form.name.label": "Name", + "resource-policies.form.name.label": "Nome", + + // "resource-policies.form.policy-type.label": "Select the policy type", + "resource-policies.form.policy-type.label": "Selezionare il tipo di criterio", + + // "resource-policies.form.policy-type.required": "You must select the resource policy type.", + "resource-policies.form.policy-type.required": "È necessario selezionare il tipo di criterio risorsa.", + + // "resource-policies.table.headers.action": "Action", + "resource-policies.table.headers.action": "Azione", + + // "resource-policies.table.headers.date.end": "End Date", + "resource-policies.table.headers.date.end": "Data di fine", + + // "resource-policies.table.headers.date.start": "Start Date", + "resource-policies.table.headers.date.start": "Data di inizio", + + // "resource-policies.table.headers.edit": "Edit", + "resource-policies.table.headers.edit": "Modifica", + + // "resource-policies.table.headers.edit.group": "Edit group", + "resource-policies.table.headers.edit.group": "Modifica gruppo", + + // "resource-policies.table.headers.edit.policy": "Edit policy", + "resource-policies.table.headers.edit.policy": "Modifica criterio", + + // "resource-policies.table.headers.eperson": "EPerson", + "resource-policies.table.headers.eperson": "EPerson", + + // "resource-policies.table.headers.group": "Group", + "resource-policies.table.headers.group": "Gruppo", + + // "resource-policies.table.headers.id": "ID", + "resource-policies.table.headers.id": "ID", + + // "resource-policies.table.headers.name": "Name", + "resource-policies.table.headers.name": "Nome", + + // "resource-policies.table.headers.policyType": "type", + "resource-policies.table.headers.policyType": "tipo", + + // "resource-policies.table.headers.title.for.bitstream": "Policies for Bitstream", + "resource-policies.table.headers.title.for.bitstream": "Criteri per Bitstream", + + // "resource-policies.table.headers.title.for.bundle": "Policies for Bundle", + "resource-policies.table.headers.title.for.bundle": "Criteri per Bundle", + + // "resource-policies.table.headers.title.for.item": "Policies for Item", + "resource-policies.table.headers.title.for.item": "Criteri per l'item", + + // "resource-policies.table.headers.title.for.community": "Policies for Community", + "resource-policies.table.headers.title.for.community": "Politiche per la community", + + // "resource-policies.table.headers.title.for.collection": "Policies for Collection", + "resource-policies.table.headers.title.for.collection": "Criteri per la collezione", + + + + // "search.description": "", + "search.description": "", + + // "search.switch-configuration.title": "Show", + "search.switch-configuration.title": "Mostra", + + // "search.title": "Search", + "search.title": "Cerca", + + // "search.breadcrumbs": "Search", + "search.breadcrumbs": "Cerca", + + // "search.search-form.placeholder": "Search the repository ...", + "search.search-form.placeholder": "Cerca nel repository ...", + + + // "search.filters.applied.f.author": "Author", + "search.filters.applied.f.author": "Autore", + + // "search.filters.applied.f.dateIssued.max": "End date", + "search.filters.applied.f.dateIssued.max": "Data di fine", + + // "search.filters.applied.f.dateIssued.min": "Start date", + "search.filters.applied.f.dateIssued.min": "Data di inizio", + + // "search.filters.applied.f.dateSubmitted": "Date submitted", + "search.filters.applied.f.dateSubmitted": "Data di invio", + + // "search.filters.applied.f.discoverable": "Non-discoverable", + // TODO Source message changed - Revise the translation + "search.filters.applied.f.discoverable": "Privato", + + // "search.filters.applied.f.entityType": "Item Type", + "search.filters.applied.f.entityType": "Tipo di item", + + // "search.filters.applied.f.has_content_in_original_bundle": "Has files", + "search.filters.applied.f.has_content_in_original_bundle": "Ha file", + + // "search.filters.applied.f.itemtype": "Type", + "search.filters.applied.f.itemtype": "Tipo", + + // "search.filters.applied.f.namedresourcetype": "Status", + "search.filters.applied.f.namedresourcetype": "Stato", + + // "search.filters.applied.f.subject": "Subject", + "search.filters.applied.f.subject": "Oggetto", + + // "search.filters.applied.f.submitter": "Submitter", + "search.filters.applied.f.submitter": "Mittente", + + // "search.filters.applied.f.jobTitle": "Job Title", + "search.filters.applied.f.jobTitle": "Titolo di lavoro", + + // "search.filters.applied.f.birthDate.max": "End birth date", + "search.filters.applied.f.birthDate.max": "Data di fine nascita", + + // "search.filters.applied.f.birthDate.min": "Start birth date", + "search.filters.applied.f.birthDate.min": "Data di nascita iniziale", + + // "search.filters.applied.f.supervisedBy": "Supervised by", + // TODO New key - Add a translation + "search.filters.applied.f.supervisedBy": "Supervised by", + + // "search.filters.applied.f.withdrawn": "Withdrawn", + "search.filters.applied.f.withdrawn": "Ritirato", + + + + // "search.filters.filter.author.head": "Author", + "search.filters.filter.author.head": "Autore", + + // "search.filters.filter.author.placeholder": "Author name", + "search.filters.filter.author.placeholder": "Nome autore", + + // "search.filters.filter.author.label": "Search author name", + "search.filters.filter.author.label": "Cerca nome autore", + + // "search.filters.filter.birthDate.head": "Birth Date", + "search.filters.filter.birthDate.head": "Data di nascita", + + // "search.filters.filter.birthDate.placeholder": "Birth Date", + "search.filters.filter.birthDate.placeholder": "Data di nascita", + + // "search.filters.filter.birthDate.label": "Search birth date", + "search.filters.filter.birthDate.label": "Cerca data di nascita", + + // "search.filters.filter.collapse": "Collapse filter", + "search.filters.filter.collapse": "Comprimi filtro", + + // "search.filters.filter.creativeDatePublished.head": "Date Published", + "search.filters.filter.creativeDatePublished.head": "Data di pubblicazione", + + // "search.filters.filter.creativeDatePublished.placeholder": "Date Published", + "search.filters.filter.creativeDatePublished.placeholder": "Data di pubblicazione", + + // "search.filters.filter.creativeDatePublished.label": "Search date published", + "search.filters.filter.creativeDatePublished.label": "Data di ricerca pubblicata", + + // "search.filters.filter.creativeWorkEditor.head": "Editor", + "search.filters.filter.creativeWorkEditor.head": "Editor", + + // "search.filters.filter.creativeWorkEditor.placeholder": "Editor", + "search.filters.filter.creativeWorkEditor.placeholder": "Editor", + + // "search.filters.filter.creativeWorkEditor.label": "Search editor", + "search.filters.filter.creativeWorkEditor.label": "Editor di ricerca", + + // "search.filters.filter.creativeWorkKeywords.head": "Subject", + "search.filters.filter.creativeWorkKeywords.head": "Oggetto", + + // "search.filters.filter.creativeWorkKeywords.placeholder": "Subject", + "search.filters.filter.creativeWorkKeywords.placeholder": "Oggetto", + + // "search.filters.filter.creativeWorkKeywords.label": "Search subject", + "search.filters.filter.creativeWorkKeywords.label": "Oggetto della ricerca", + + // "search.filters.filter.creativeWorkPublisher.head": "Publisher", + "search.filters.filter.creativeWorkPublisher.head": "Editore", + + // "search.filters.filter.creativeWorkPublisher.placeholder": "Publisher", + "search.filters.filter.creativeWorkPublisher.placeholder": "Editore", + + // "search.filters.filter.creativeWorkPublisher.label": "Search publisher", + "search.filters.filter.creativeWorkPublisher.label": "Cerca editore", + + // "search.filters.filter.dateIssued.head": "Date", + "search.filters.filter.dateIssued.head": "Data", + + // "search.filters.filter.dateIssued.max.placeholder": "Maximum Date", + "search.filters.filter.dateIssued.max.placeholder": "Data massima", + + // "search.filters.filter.dateIssued.max.label": "End", + "search.filters.filter.dateIssued.max.label": "Fine", + + // "search.filters.filter.dateIssued.min.placeholder": "Minimum Date", + "search.filters.filter.dateIssued.min.placeholder": "Data minima", + + // "search.filters.filter.dateIssued.min.label": "Start", + "search.filters.filter.dateIssued.min.label": "Inizio", + + // "search.filters.filter.dateSubmitted.head": "Date submitted", + "search.filters.filter.dateSubmitted.head": "Data inviata", + + // "search.filters.filter.dateSubmitted.placeholder": "Date submitted", + "search.filters.filter.dateSubmitted.placeholder": "Data di invio", + + // "search.filters.filter.dateSubmitted.label": "Search date submitted", + "search.filters.filter.dateSubmitted.label": "Data di ricerca inviata", + + // "search.filters.filter.discoverable.head": "Non-discoverable", + // TODO Source message changed - Revise the translation + "search.filters.filter.discoverable.head": "Privato", + + // "search.filters.filter.withdrawn.head": "Withdrawn", + "search.filters.filter.withdrawn.head": "Ritirato", + + // "search.filters.filter.entityType.head": "Item Type", + "search.filters.filter.entityType.head": "Tipo di item", + + // "search.filters.filter.entityType.placeholder": "Item Type", + "search.filters.filter.entityType.placeholder": "Tipo di item", + + // "search.filters.filter.entityType.label": "Search item type", + "search.filters.filter.entityType.label": "Tipo di item di ricerca", + + // "search.filters.filter.expand": "Expand filter", + "search.filters.filter.expand": "Espandi filtro", + + // "search.filters.filter.has_content_in_original_bundle.head": "Has files", + "search.filters.filter.has_content_in_original_bundle.head": "Ha file", + + // "search.filters.filter.itemtype.head": "Type", + "search.filters.filter.itemtype.head": "Tipo", + + // "search.filters.filter.itemtype.placeholder": "Type", + "search.filters.filter.itemtype.placeholder": "Tipo", + + // "search.filters.filter.itemtype.label": "Search type", + "search.filters.filter.itemtype.label": "Tipo di ricerca", + + // "search.filters.filter.jobTitle.head": "Job Title", + "search.filters.filter.jobTitle.head": "Titolo di lavoro", + + // "search.filters.filter.jobTitle.placeholder": "Job Title", + "search.filters.filter.jobTitle.placeholder": "Titolo di lavoro", + + // "search.filters.filter.jobTitle.label": "Search job title", + "search.filters.filter.jobTitle.label": "Cerca titolo di lavoro", + + // "search.filters.filter.knowsLanguage.head": "Known language", + "search.filters.filter.knowsLanguage.head": "Lingua nota", + + // "search.filters.filter.knowsLanguage.placeholder": "Known language", + "search.filters.filter.knowsLanguage.placeholder": "Lingua nota", + + // "search.filters.filter.knowsLanguage.label": "Search known language", + "search.filters.filter.knowsLanguage.label": "Cerca nella lingua nota", + + // "search.filters.filter.namedresourcetype.head": "Status", + "search.filters.filter.namedresourcetype.head": "Status", + + // "search.filters.filter.namedresourcetype.placeholder": "Status", + "search.filters.filter.namedresourcetype.placeholder": "Status", + + // "search.filters.filter.namedresourcetype.label": "Search status", + "search.filters.filter.namedresourcetype.label": "Status Ricerca", + + // "search.filters.filter.objectpeople.head": "People", + "search.filters.filter.objectpeople.head": "Ricercatori", + + // "search.filters.filter.objectpeople.placeholder": "People", + "search.filters.filter.objectpeople.placeholder": "Ricercatori", + + // "search.filters.filter.objectpeople.label": "Search people", + "search.filters.filter.objectpeople.label": "Cerca Ricercatori", + + // "search.filters.filter.organizationAddressCountry.head": "Country", + "search.filters.filter.organizationAddressCountry.head": "Paese", + + // "search.filters.filter.organizationAddressCountry.placeholder": "Country", + "search.filters.filter.organizationAddressCountry.placeholder": "Paese", + + // "search.filters.filter.organizationAddressCountry.label": "Search country", + "search.filters.filter.organizationAddressCountry.label": "Cerca paese", + + // "search.filters.filter.organizationAddressLocality.head": "City", + "search.filters.filter.organizationAddressLocality.head": "Città", + + // "search.filters.filter.organizationAddressLocality.placeholder": "City", + "search.filters.filter.organizationAddressLocality.placeholder": "Città", + + // "search.filters.filter.organizationAddressLocality.label": "Search city", + "search.filters.filter.organizationAddressLocality.label": "Cerca città", + + // "search.filters.filter.organizationFoundingDate.head": "Date Founded", + "search.filters.filter.organizationFoundingDate.head": "Data di fondazione", + + // "search.filters.filter.organizationFoundingDate.placeholder": "Date Founded", + "search.filters.filter.organizationFoundingDate.placeholder": "Data di fondazione", + + // "search.filters.filter.organizationFoundingDate.label": "Search date founded", + "search.filters.filter.organizationFoundingDate.label": "Data di ricerca fondata", + + // "search.filters.filter.scope.head": "Scope", + "search.filters.filter.scope.head": "Ambito", + + // "search.filters.filter.scope.placeholder": "Scope filter", + "search.filters.filter.scope.placeholder": "Filtro ambito", + + // "search.filters.filter.scope.label": "Search scope filter", + "search.filters.filter.scope.label": "Filtro ambito di ricerca", + + // "search.filters.filter.show-less": "Collapse", + "search.filters.filter.show-less": "Comprimi", + + // "search.filters.filter.show-more": "Show more", + "search.filters.filter.show-more": "Mostra altro", + + // "search.filters.filter.subject.head": "Subject", + "search.filters.filter.subject.head": "Oggetto", + + // "search.filters.filter.subject.placeholder": "Subject", + "search.filters.filter.subject.placeholder": "Oggetto", + + // "search.filters.filter.subject.label": "Search subject", + "search.filters.filter.subject.label": "Oggetto della ricerca", + + // "search.filters.filter.submitter.head": "Submitter", + "search.filters.filter.submitter.head": "Mittente", + + // "search.filters.filter.submitter.placeholder": "Submitter", + "search.filters.filter.submitter.placeholder": "Mittente", + + // "search.filters.filter.submitter.label": "Search submitter", + "search.filters.filter.submitter.label": "Mittente della ricerca", + + // "search.filters.filter.show-tree": "Browse {{ name }} tree", + // TODO New key - Add a translation + "search.filters.filter.show-tree": "Browse {{ name }} tree", + + // "search.filters.filter.supervisedBy.head": "Supervised By", + // TODO New key - Add a translation + "search.filters.filter.supervisedBy.head": "Supervised By", + + // "search.filters.filter.supervisedBy.placeholder": "Supervised By", + // TODO New key - Add a translation + "search.filters.filter.supervisedBy.placeholder": "Supervised By", + + // "search.filters.filter.supervisedBy.label": "Search Supervised By", + // TODO New key - Add a translation + "search.filters.filter.supervisedBy.label": "Search Supervised By", + + + + // "search.filters.entityType.JournalIssue": "Journal Issue", + "search.filters.entityType.JournalIssue": "Fascicolo Periodico", + + // "search.filters.entityType.JournalVolume": "Journal Volume", + "search.filters.entityType.JournalVolume": "Volume del Periodico", + + // "search.filters.entityType.OrgUnit": "Organizational Unit", + "search.filters.entityType.OrgUnit": "Struttura", + + // "search.filters.has_content_in_original_bundle.true": "Yes", + "search.filters.has_content_in_original_bundle.true": "Si", + + // "search.filters.has_content_in_original_bundle.false": "No", + "search.filters.has_content_in_original_bundle.false": "No", + + // "search.filters.discoverable.true": "No", + "search.filters.discoverable.true": "No", + + // "search.filters.discoverable.false": "Yes", + "search.filters.discoverable.false": "Si", + + // "search.filters.withdrawn.true": "Yes", + "search.filters.withdrawn.true": "Si", + + // "search.filters.withdrawn.false": "No", + "search.filters.withdrawn.false": "No", + + + // "search.filters.head": "Filters", + "search.filters.head": "Filtri", + + // "search.filters.reset": "Reset filters", + "search.filters.reset": "Ripristina filtri", + + // "search.filters.search.submit": "Submit", + "search.filters.search.submit": "Invia", + + + + // "search.form.search": "Search", + "search.form.search": "Cerca", + + // "search.form.search_dspace": "All repository", + "search.form.search_dspace": "Tutto il portale", + + // "search.form.scope.all": "All of DSpace", + "search.form.scope.all": "Tutto DSpace", + + + + // "search.results.head": "Search Results", + "search.results.head": "Risultati della ricerca", + + // "search.results.no-results": "Your search returned no results. Having trouble finding what you're looking for? Try putting", + "search.results.no-results": "La ricerca non ha prodotto alcun risultato. Hai problemi a trovare quello che cerchi? Prova a inserire", + + // "search.results.no-results-link": "quotes around it", + "search.results.no-results-link": "le virgolette", + + // "search.results.empty": "Your search returned no results.", + "search.results.empty": "La tua ricerca non ha prodotto risultati.", + + // "search.results.view-result": "View", + // TODO New key - Add a translation + "search.results.view-result": "View", + + // "search.results.response.500": "An error occurred during query execution, please try again later", + // TODO New key - Add a translation + "search.results.response.500": "An error occurred during query execution, please try again later", + + // "default.search.results.head": "Search Results", + "default.search.results.head": "Risultati della ricerca", + + // "default-relationships.search.results.head": "Search Results", + // TODO New key - Add a translation + "default-relationships.search.results.head": "Search Results", + + + // "search.sidebar.close": "Back to results", + "search.sidebar.close": "Ritorna ai risultati", + + // "search.sidebar.filters.title": "Filters", + "search.sidebar.filters.title": "Filtri", + + // "search.sidebar.open": "Search Tools", + "search.sidebar.open": "Strumenti per la ricerca", + + // "search.sidebar.results": "results", + "search.sidebar.results": "risultati", + + // "search.sidebar.settings.rpp": "Results per page", + "search.sidebar.settings.rpp": "Risultati per pagina", + + // "search.sidebar.settings.sort-by": "Sort By", + "search.sidebar.settings.sort-by": "Ordina per", + + // "search.sidebar.settings.title": "Settings", + "search.sidebar.settings.title": "Impostazioni", + + + + // "search.view-switch.show-detail": "Show detail", + "search.view-switch.show-detail": "Mostra dettagli", + + // "search.view-switch.show-grid": "Show as grid", + "search.view-switch.show-grid": "Visualizzazioni a griglia", + + // "search.view-switch.show-list": "Show as list", + "search.view-switch.show-list": "Visualizzazione a lista", + + + + // "sorting.ASC": "Ascending", + "sorting.ASC": "Ascendente", + + // "sorting.DESC": "Descending", + "sorting.DESC": "Discendente", + + // "sorting.dc.title.ASC": "Title Ascending", + "sorting.dc.title.ASC": "Titolo ascendente", + + // "sorting.dc.title.DESC": "Title Descending", + "sorting.dc.title.DESC": "Titolo decrescente", + + // "sorting.score.ASC": "Least Relevant", + "sorting.score.ASC": "Minor rilevanza", + + // "sorting.score.DESC": "Most Relevant", + "sorting.score.DESC": "Maggior rilevanza", + + // "sorting.dc.date.issued.ASC": "Date Issued Ascending", + "sorting.dc.date.issued.ASC": "Data di pubblicazione Ascendente", + + // "sorting.dc.date.issued.DESC": "Date Issued Descending", + "sorting.dc.date.issued.DESC": "Data di pubblicazione Discendente", + + // "sorting.dc.date.accessioned.ASC": "Accessioned Date Ascending", + "sorting.dc.date.accessioned.ASC": "Data di accesso Ascendente", + + // "sorting.dc.date.accessioned.DESC": "Accessioned Date Descending", + "sorting.dc.date.accessioned.DESC": "Data di accesso Discendente", + + // "sorting.lastModified.ASC": "Last modified Ascending", + "sorting.lastModified.ASC": "Ultima modifica Ascendente", + + // "sorting.lastModified.DESC": "Last modified Descending", + "sorting.lastModified.DESC": "Ultima modifica Discendente", + + + // "statistics.title": "Statistics", + "statistics.title": "Statistiche", + + // "statistics.header": "Statistics for {{ scope }}", + "statistics.header": "Statistiche per {{ scope }}", + + // "statistics.breadcrumbs": "Statistics", + "statistics.breadcrumbs": "Statistiche", + + // "statistics.page.no-data": "No data available", + "statistics.page.no-data": "Nessun dato disponibile", + + // "statistics.table.no-data": "No data available", + "statistics.table.no-data": "Nessun dato disponibile", + + // "statistics.table.title.TotalVisits": "Total visits", + // TODO New key - Add a translation + "statistics.table.title.TotalVisits": "Total visits", + + // "statistics.table.title.TotalVisitsPerMonth": "Total visits per month", + // TODO New key - Add a translation + "statistics.table.title.TotalVisitsPerMonth": "Total visits per month", + + // "statistics.table.title.TotalDownloads": "File Visits", + // TODO New key - Add a translation + "statistics.table.title.TotalDownloads": "File Visits", + + // "statistics.table.title.TopCountries": "Top country views", + // TODO New key - Add a translation + "statistics.table.title.TopCountries": "Top country views", + + // "statistics.table.title.TopCities": "Top city views", + // TODO New key - Add a translation + "statistics.table.title.TopCities": "Top city views", + + // "statistics.table.header.views": "Views", + // TODO New key - Add a translation + "statistics.table.header.views": "Views", + + // "statistics.table.no-name": "(object name could not be loaded)", + // TODO New key - Add a translation + "statistics.table.no-name": "(object name could not be loaded)", + + + + // "submission.edit.breadcrumbs": "Edit Submission", + "submission.edit.breadcrumbs": "Modifica immissione", + + // "submission.edit.title": "Edit Submission", + "submission.edit.title": "Modifica immissione", + + // "submission.general.cancel": "Cancel", + "submission.general.cancel": "Annulla", + + // "submission.general.cannot_submit": "You have not the privilege to make a new submission.", + "submission.general.cannot_submit": "Non hai i privilegi per fare una nuova immissione.", + + // "submission.general.deposit": "Deposit", + "submission.general.deposit": "Deposito", + + // "submission.general.discard.confirm.cancel": "Cancel", + "submission.general.discard.confirm.cancel": "Annulla", + + // "submission.general.discard.confirm.info": "This operation can't be undone. Are you sure?", + "submission.general.discard.confirm.info": "Questa operazione non può essere annullata. Sei sicuro?", + + // "submission.general.discard.confirm.submit": "Yes, I'm sure", + "submission.general.discard.confirm.submit": "Sì, sono sicuro", + + // "submission.general.discard.confirm.title": "Discard submission", + "submission.general.discard.confirm.title": "Elimina l'invio", + + // "submission.general.discard.submit": "Discard", + "submission.general.discard.submit": "Scarta", + + // "submission.general.info.saved": "Saved", + "submission.general.info.saved": "Salvato", + + // "submission.general.info.pending-changes": "Unsaved changes", + "submission.general.info.pending-changes": "Modifiche non salvate", + + // "submission.general.save": "Save", + "submission.general.save": "Salva", + + // "submission.general.save-later": "Save for later", + "submission.general.save-later": "Salva per dopo", + + + // "submission.import-external.page.title": "Import metadata from an external source", + "submission.import-external.page.title": "Importare metadati da un'origine esterna", + + // "submission.import-external.title": "Import metadata from an external source", + "submission.import-external.title": "Importare metadati da un'origine esterna", + + // "submission.import-external.title.Journal": "Import a journal from an external source", + "submission.import-external.title.Journal": "Importare un journal da un'origine esterna", + + // "submission.import-external.title.JournalIssue": "Import a journal issue from an external source", + "submission.import-external.title.JournalIssue": "Importare un fascicolo di periodico da una fonte esterna", + + // "submission.import-external.title.JournalVolume": "Import a journal volume from an external source", + "submission.import-external.title.JournalVolume": "Importare un volume di periodico da un'origine esterna", + + // "submission.import-external.title.OrgUnit": "Import a publisher from an external source", + "submission.import-external.title.OrgUnit": "Importare un editore da una fonte esterna", + + // "submission.import-external.title.Person": "Import a person from an external source", + "submission.import-external.title.Person": "Importare una persona da una fonte esterna", + + // "submission.import-external.title.Project": "Import a project from an external source", + "submission.import-external.title.Project": "Importare un progetto da una fonte esterna", + + // "submission.import-external.title.Publication": "Import a publication from an external source", + "submission.import-external.title.Publication": "Importare una pubblicazione da una fonte esterna", + + // "submission.import-external.title.none": "Import metadata from an external source", + "submission.import-external.title.none": "Importare metadati da un'origine esterna", + + // "submission.import-external.page.hint": "Enter a query above to find items from the web to import in to DSpace.", + "submission.import-external.page.hint": "Immettere una query sopra per trovare item dal Web da importare in DSpace.", + + // "submission.import-external.back-to-my-dspace": "Back to MyDSpace", + "submission.import-external.back-to-my-dspace": "Torna a MyDSpace", + + // "submission.import-external.search.placeholder": "Search the external source", + "submission.import-external.search.placeholder": "Cerca nell'origine esterna", + + // "submission.import-external.search.button": "Search", + "submission.import-external.search.button": "Cerca", + + // "submission.import-external.search.button.hint": "Write some words to search", + "submission.import-external.search.button.hint": "Scrivi alcune parole per cercare", + + // "submission.import-external.search.source.hint": "Pick an external source", + "submission.import-external.search.source.hint": "Scegli un'origine esterna", + + // "submission.import-external.source.arxiv": "arXiv", + "submission.import-external.source.arxiv": "arXiv", + + // "submission.import-external.source.ads": "NASA/ADS", + "submission.import-external.source.ads": "NASA/ADS", + + // "submission.import-external.source.cinii": "CiNii", + "submission.import-external.source.cinii": "CiNii", + + // "submission.import-external.source.crossref": "CrossRef", + "submission.import-external.source.crossref": "CrossRef", + + // "submission.import-external.source.datacite": "DataCite", + // TODO New key - Add a translation + "submission.import-external.source.datacite": "DataCite", + + // "submission.import-external.source.scielo": "SciELO", + "submission.import-external.source.scielo": "SciELO", + + // "submission.import-external.source.scopus": "Scopus", + "submission.import-external.source.scopus": "Scopus", + + // "submission.import-external.source.vufind": "VuFind", + "submission.import-external.source.vufind": "VuFind", + + // "submission.import-external.source.wos": "Web Of Science", + "submission.import-external.source.wos": "Web Of Science", + + // "submission.import-external.source.orcidWorks": "ORCID", + "submission.import-external.source.orcidWorks": "ORCID", + + // "submission.import-external.source.epo": "European Patent Office (EPO)", + "submission.import-external.source.epo": "Ufficio europeo dei brevetti (UEB)", + + // "submission.import-external.source.loading": "Loading ...", + "submission.import-external.source.loading": "Caricamento ...", + + // "submission.import-external.source.sherpaJournal": "SHERPA Journals", + "submission.import-external.source.sherpaJournal": "SHERPA Journals", + + // "submission.import-external.source.sherpaJournalIssn": "SHERPA Journals by ISSN", + "submission.import-external.source.sherpaJournalIssn": "SHERPA Journals by ISSN", + + // "submission.import-external.source.sherpaPublisher": "SHERPA Publishers", + "submission.import-external.source.sherpaPublisher": "SHERPA Publishers", + + // "submission.import-external.source.openAIREFunding": "Funding OpenAIRE API", + "submission.import-external.source.openAIREFunding": "Finanziamento dell'API OpenAIRE", + + // "submission.import-external.source.orcid": "ORCID", + "submission.import-external.source.orcid": "ORCID", + + // "submission.import-external.source.pubmed": "Pubmed", + "submission.import-external.source.pubmed": "Pubmed", + + // "submission.import-external.source.pubmedeu": "Pubmed Europe", + "submission.import-external.source.pubmedeu": "Pubmed Europe", + + // "submission.import-external.source.lcname": "Library of Congress Names", + "submission.import-external.source.lcname": "Nomi della Biblioteca del Congresso", + + // "submission.import-external.preview.title": "Item Preview", + // TODO New key - Add a translation + "submission.import-external.preview.title": "Item Preview", + + // "submission.import-external.preview.title.Publication": "Publication Preview", + "submission.import-external.preview.title.Publication": "Anteprima pubblicazione", + + // "submission.import-external.preview.title.none": "Item Preview", + // TODO New key - Add a translation + "submission.import-external.preview.title.none": "Item Preview", + + // "submission.import-external.preview.title.Journal": "Journal Preview", + "submission.import-external.preview.title.Journal": "Anteprima journal", + + // "submission.import-external.preview.title.OrgUnit": "Organizational Unit Preview", + // TODO Source message changed - Revise the translation + "submission.import-external.preview.title.OrgUnit": "Anteprima editore", + + // "submission.import-external.preview.title.Person": "Person Preview", + "submission.import-external.preview.title.Person": "Anteprima persona", + + // "submission.import-external.preview.title.Project": "Project Preview", + "submission.import-external.preview.title.Project": "Anteprima progetto", + + // "submission.import-external.preview.subtitle": "The metadata below was imported from an external source. It will be pre-filled when you start the submission.", + "submission.import-external.preview.subtitle": "I metadati riportati di seguito sono stati importati da un'origine esterna. Sarà precompilato quando inizierà l'immissione.", + + // "submission.import-external.preview.button.import": "Start submission", + "submission.import-external.preview.button.import": "Avvia immissione", + + // "submission.import-external.preview.error.import.title": "Submission error", + "submission.import-external.preview.error.import.title": "Errore di immissione", + + // "submission.import-external.preview.error.import.body": "An error occurs during the external source entry import process.", + "submission.import-external.preview.error.import.body": "Si verifica un errore durante il processo di importazione della voce di origine esterna.", + + // "submission.sections.describe.relationship-lookup.close": "Close", + "submission.sections.describe.relationship-lookup.close": "Chiudi", + + // "submission.sections.describe.relationship-lookup.external-source.added": "Successfully added local entry to the selection", + "submission.sections.describe.relationship-lookup.external-source.added": "Aggiunta con successo della voce locale alla selezione", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.isAuthorOfPublication": "Import remote author", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.isAuthorOfPublication": "Importa autore remoto", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal": "Import remote journal", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal": "Importa Periodico remoto", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Issue": "Import remote journal issue", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Issue": "Importare fascicolo periodico remoto", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Volume": "Import remote journal volume", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Volume": "Importa volume periodico remoto", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.isProjectOfPublication": "Project", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.isProjectOfPublication": "Progetto", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.none": "Import remote item", + // TODO New key - Add a translation + "submission.sections.describe.relationship-lookup.external-source.import-button-title.none": "Import remote item", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.Event": "Import remote event", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Event": "Importa evento remoto", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.Product": "Import remote product", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Product": "Importa prodotto remoto", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.Equipment": "Import remote equipment", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Equipment": "Importare apparecchiature remote", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.OrgUnit": "Import remote organizational unit", + // TODO Source message changed - Revise the translation + "submission.sections.describe.relationship-lookup.external-source.import-button-title.OrgUnit": "Importa editore remoto", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.Funding": "Import remote fund", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Funding": "Importa fondo remoto", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.Person": "Import remote person", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Person": "Importa persona remota", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.Patent": "Import remote patent", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Patent": "Importa brevetto remoto", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.Project": "Import remote project", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Project": "Importa progetto remoto", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.Publication": "Import remote publication", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Publication": "Importa pubblicazione remota", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.added.new-entity": "New Entity Added!", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.added.new-entity": "Nuova entità aggiunta!", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.title": "Project", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.title": "Progetto", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.head.openAIREFunding": "Funding OpenAIRE API", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.openAIREFunding": "Finanziamento dell'API OpenAIRE", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.title": "Import Remote Author", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.title": "Importa autore remoto", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.added.local-entity": "Successfully added local author to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.added.local-entity": "Aggiunto con successo autore locale alla selezione", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.added.new-entity": "Successfully imported and added external author to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.added.new-entity": "Importato e aggiunto con successo autore esterno alla selezione", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.authority": "Authority", + "submission.sections.describe.relationship-lookup.external-source.import-modal.authority": "Autorità", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.authority.new": "Import as a new local authority entry", + "submission.sections.describe.relationship-lookup.external-source.import-modal.authority.new": "Importa come nuova voce dell'autorità locale", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.cancel": "Cancel", + "submission.sections.describe.relationship-lookup.external-source.import-modal.cancel": "Annulla", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.collection": "Select a collection to import new entries to", + "submission.sections.describe.relationship-lookup.external-source.import-modal.collection": "Selezionare una collezione in cui importare nuove voci", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.entities": "Entities", + "submission.sections.describe.relationship-lookup.external-source.import-modal.entities": "Entità", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.entities.new": "Import as a new local entity", + "submission.sections.describe.relationship-lookup.external-source.import-modal.entities.new": "Importa come nuova entità locale", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.head.lcname": "Importing from LC Name", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.lcname": "Importazione da LC Name", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.head.orcid": "Importing from ORCID", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.orcid": "Importazione da ORCID", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaJournal": "Importing from Sherpa Journal", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaJournal": "Importazione da Sherpa Journal", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaPublisher": "Importing from Sherpa Publisher", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaPublisher": "Importazione da Sherpa Publisher", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.head.pubmed": "Importing from PubMed", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.pubmed": "Importazione da PubMed", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.head.arxiv": "Importing from arXiv", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.arxiv": "Importazione da arXiv", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.import": "Import", + "submission.sections.describe.relationship-lookup.external-source.import-modal.import": "Importa", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.title": "Import Remote Journal", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.title": "Importa Periodico remoto", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.added.local-entity": "Successfully added local journal to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.added.local-entity": "Aggiunta con successo del journal locale alla selezione", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.added.new-entity": "Successfully imported and added external journal to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.added.new-entity": "Importato e aggiunto con successo journal esterno alla selezione", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.title": "Import Remote Journal Issue", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.title": "Importa Fascicolo Periodico remoto", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.local-entity": "Successfully added local journal issue to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.local-entity": "Aggiunto con successo il numero del periodico locale alla selezione", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.new-entity": "Successfully imported and added external journal issue to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.new-entity": "Importato e aggiunto con successo il numero del journal esterno alla selezione", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.title": "Import Remote Journal Volume", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.title": "Importa volume di giornale remoto", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.local-entity": "Successfully added local journal volume to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.local-entity": "Aggiunto con successo volume del journal locale alla selezione", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.new-entity": "Successfully imported and added external journal volume to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.new-entity": "Importato e aggiunto con successo volume di journal esterno alla selezione", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.select": "Select a local match:", + // TODO New key - Add a translation + "submission.sections.describe.relationship-lookup.external-source.import-modal.select": "Select a local match:", + + // "submission.sections.describe.relationship-lookup.search-tab.deselect-all": "Deselect all", + "submission.sections.describe.relationship-lookup.search-tab.deselect-all": "Deseleziona tutto", + + // "submission.sections.describe.relationship-lookup.search-tab.deselect-page": "Deselect page", + "submission.sections.describe.relationship-lookup.search-tab.deselect-page": "Deseleziona pagina", + + // "submission.sections.describe.relationship-lookup.search-tab.loading": "Loading...", + "submission.sections.describe.relationship-lookup.search-tab.loading": "Caricamento...", + + // "submission.sections.describe.relationship-lookup.search-tab.placeholder": "Search query", + "submission.sections.describe.relationship-lookup.search-tab.placeholder": "Query di ricerca", + + // "submission.sections.describe.relationship-lookup.search-tab.search": "Go", + "submission.sections.describe.relationship-lookup.search-tab.search": "Vai", + + // "submission.sections.describe.relationship-lookup.search-tab.search-form.placeholder": "Search...", + "submission.sections.describe.relationship-lookup.search-tab.search-form.placeholder": "Cerca...", + + // "submission.sections.describe.relationship-lookup.search-tab.select-all": "Select all", + "submission.sections.describe.relationship-lookup.search-tab.select-all": "Seleziona tutto", + + // "submission.sections.describe.relationship-lookup.search-tab.select-page": "Select page", + "submission.sections.describe.relationship-lookup.search-tab.select-page": "Seleziona pagina", + + // "submission.sections.describe.relationship-lookup.selected": "Selected {{ size }} items", + "submission.sections.describe.relationship-lookup.selected": "Selected {{ size }} items", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isAuthorOfPublication": "Local Authors ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isAuthorOfPublication": "Autori locali ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalOfPublication": "Local Journals ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalOfPublication": "Local Journals ({{ count }})", + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.Project": "Local Projects ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Project": "Progetti locali ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.Publication": "Local Publications ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Publication": "Local Publications ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.Person": "Local Authors ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Person": "Autori locali ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.OrgUnit": "Local Organizational Units ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.OrgUnit": "Unità organizzative locali ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.DataPackage": "Local Data Packages ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.DataPackage": "Pacchetti di dati locali ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.DataFile": "Local Data Files ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.DataFile": "File di dati locali ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.Journal": "Local Journals ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Journal": "Local Journals ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalIssueOfPublication": "Local Journal Issues ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalIssueOfPublication": "Local Journal Issues ({{ count }})", + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.JournalIssue": "Local Journal Issues ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.JournalIssue": "Local Journal Issues ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalVolumeOfPublication": "Local Journal Volumes ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalVolumeOfPublication": "Local Journal Volumes ({{ count }})", + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.JournalVolume": "Local Journal Volumes ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.JournalVolume": "Local Journal Volumes ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaJournal": "Sherpa Journals ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaJournal": "Sherpa Journals ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaPublisher": "Sherpa Publishers ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaPublisher": "Sherpa Publishers ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.orcid": "ORCID ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.orcid": "ORCID ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.lcname": "LC Names ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.lcname": "Nomi LC ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.pubmed": "PubMed ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.pubmed": "PubMed ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.arxiv": "arXiv ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.arxiv": "arXiv ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfPublication": "Search for Funding Agencies", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfPublication": "Ricerca di agenzie di finanziamento", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingOfPublication": "Search for Funding", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingOfPublication": "Cerca finanziamenti", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isChildOrgUnitOf": "Search for Organizational Units", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isChildOrgUnitOf": "Ricerca di unità organizzative", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.openAIREFunding": "Funding OpenAIRE API", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.openAIREFunding": "Finanziamento dell'API OpenAIRE", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isProjectOfPublication": "Projects", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isProjectOfPublication": "Progetti", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfProject": "Funder of the Project", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfProject": "Finanziatore del progetto", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isPublicationOfAuthor": "Publication of the Author", + // TODO New key - Add a translation + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isPublicationOfAuthor": "Publication of the Author", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.openAIREFunding": "Funding OpenAIRE API", + "submission.sections.describe.relationship-lookup.selection-tab.title.openAIREFunding": "Finanziamento dell'API OpenAIRE", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.isProjectOfPublication": "Project", + "submission.sections.describe.relationship-lookup.selection-tab.title.isProjectOfPublication": "Progetti", + + // "submission.sections.describe.relationship-lookup.title.isProjectOfPublication": "Projects", + "submission.sections.describe.relationship-lookup.title.isProjectOfPublication": "Progetti", + + // "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfProject": "Funder of the Project", + "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfProject": "Finanziatore del Progetto", + + + + + // "submission.sections.describe.relationship-lookup.selection-tab.search-form.placeholder": "Search...", + "submission.sections.describe.relationship-lookup.selection-tab.search-form.placeholder": "Cerca...", + + // "submission.sections.describe.relationship-lookup.selection-tab.tab-title": "Current Selection ({{ count }})", + "submission.sections.describe.relationship-lookup.selection-tab.tab-title": "Selezione corrente ({{ count }})", + + // "submission.sections.describe.relationship-lookup.title.isJournalIssueOfPublication": "Journal Issues", + "submission.sections.describe.relationship-lookup.title.isJournalIssueOfPublication": "Fascicolo Periodico", + // "submission.sections.describe.relationship-lookup.title.JournalIssue": "Journal Issues", + "submission.sections.describe.relationship-lookup.title.JournalIssue": "Fascicolo Periodico", + + // "submission.sections.describe.relationship-lookup.title.isJournalVolumeOfPublication": "Journal Volumes", + "submission.sections.describe.relationship-lookup.title.isJournalVolumeOfPublication": "Volume Periodico", + // "submission.sections.describe.relationship-lookup.title.JournalVolume": "Journal Volumes", + "submission.sections.describe.relationship-lookup.title.JournalVolume": "Volume Periodico", + + // "submission.sections.describe.relationship-lookup.title.isJournalOfPublication": "Journals", + "submission.sections.describe.relationship-lookup.title.isJournalOfPublication": "Periodico", + + // "submission.sections.describe.relationship-lookup.title.isAuthorOfPublication": "Authors", + "submission.sections.describe.relationship-lookup.title.isAuthorOfPublication": "Autori", + + // "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfPublication": "Funding Agency", + "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfPublication": "Agenzia di finanziamento", + // "submission.sections.describe.relationship-lookup.title.Project": "Projects", + "submission.sections.describe.relationship-lookup.title.Project": "Progetti", + + // "submission.sections.describe.relationship-lookup.title.Publication": "Publications", + "submission.sections.describe.relationship-lookup.title.Publication": "Pubblicazioni", + + // "submission.sections.describe.relationship-lookup.title.Person": "Authors", + "submission.sections.describe.relationship-lookup.title.Person": "Autori", + + // "submission.sections.describe.relationship-lookup.title.OrgUnit": "Organizational Units", + "submission.sections.describe.relationship-lookup.title.OrgUnit": "Unità organizzative", + + // "submission.sections.describe.relationship-lookup.title.DataPackage": "Data Packages", + "submission.sections.describe.relationship-lookup.title.DataPackage": "Pacchetti di dati", + + // "submission.sections.describe.relationship-lookup.title.DataFile": "Data Files", + "submission.sections.describe.relationship-lookup.title.DataFile": "File di dati", + + // "submission.sections.describe.relationship-lookup.title.Funding Agency": "Funding Agency", + "submission.sections.describe.relationship-lookup.title.Funding Agency": "Agenzia di finanziamento", + + // "submission.sections.describe.relationship-lookup.title.isFundingOfPublication": "Funding", + "submission.sections.describe.relationship-lookup.title.isFundingOfPublication": "Finanziatore", + + // "submission.sections.describe.relationship-lookup.title.isChildOrgUnitOf": "Parent Organizational Unit", + "submission.sections.describe.relationship-lookup.title.isChildOrgUnitOf": "Unità organizzativa padre", + + // "submission.sections.describe.relationship-lookup.title.isPublicationOfAuthor": "Publication", + // TODO New key - Add a translation + "submission.sections.describe.relationship-lookup.title.isPublicationOfAuthor": "Publication", + + // "submission.sections.describe.relationship-lookup.search-tab.toggle-dropdown": "Toggle dropdown", + "submission.sections.describe.relationship-lookup.search-tab.toggle-dropdown": "Toggle dropdown", + + // "submission.sections.describe.relationship-lookup.selection-tab.settings": "Settings", + "submission.sections.describe.relationship-lookup.selection-tab.settings": "Impostazioni", + + // "submission.sections.describe.relationship-lookup.selection-tab.no-selection": "Your selection is currently empty.", + "submission.sections.describe.relationship-lookup.selection-tab.no-selection": "La selezione è attualmente vuota.", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.isAuthorOfPublication": "Selected Authors", + "submission.sections.describe.relationship-lookup.selection-tab.title.isAuthorOfPublication": "Autori selezionati", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalOfPublication": "Selected Journals", + "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalOfPublication": "Riviste selezionate", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalVolumeOfPublication": "Selected Journal Volume", + "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalVolumeOfPublication": "Volume del Periodico selezionato", + // "submission.sections.describe.relationship-lookup.selection-tab.title.Project": "Selected Projects", + "submission.sections.describe.relationship-lookup.selection-tab.title.Project": "Progetti selezionati", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.Publication": "Selected Publications", + "submission.sections.describe.relationship-lookup.selection-tab.title.Publication": "Pubblicazioni selezionate", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.Person": "Selected Authors", + "submission.sections.describe.relationship-lookup.selection-tab.title.Person": "Autori selezionati", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.OrgUnit": "Selected Organizational Units", + "submission.sections.describe.relationship-lookup.selection-tab.title.OrgUnit": "Unità organizzative selezionate", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.DataPackage": "Selected Data Packages", + "submission.sections.describe.relationship-lookup.selection-tab.title.DataPackage": "Pacchetti di dati selezionati", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.DataFile": "Selected Data Files", + "submission.sections.describe.relationship-lookup.selection-tab.title.DataFile": "File di dati selezionati", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.Journal": "Selected Journals", + "submission.sections.describe.relationship-lookup.selection-tab.title.Journal": "Riviste selezionate", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalIssueOfPublication": "Selected Issue", + "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalIssueOfPublication": "Fascicolo selezionato", + // "submission.sections.describe.relationship-lookup.selection-tab.title.JournalVolume": "Selected Journal Volume", + "submission.sections.describe.relationship-lookup.selection-tab.title.JournalVolume": "Volume journal selezionato", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingAgencyOfPublication": "Selected Funding Agency", + "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingAgencyOfPublication": "Agenzia di finanziamento selezionata", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingOfPublication": "Selected Funding", + "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingOfPublication": "Finanziamento selezionato", + // "submission.sections.describe.relationship-lookup.selection-tab.title.JournalIssue": "Selected Issue", + "submission.sections.describe.relationship-lookup.selection-tab.title.JournalIssue": "Fascicolo selezionato", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.isChildOrgUnitOf": "Selected Organizational Unit", + "submission.sections.describe.relationship-lookup.selection-tab.title.isChildOrgUnitOf": "Unità organizzativa selezionata", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaJournal": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaJournal": "Risultati della ricerca", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaPublisher": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaPublisher": "Risultati della ricerca", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.orcid": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.orcid": "Risultati della ricerca", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.orcidv2": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.orcidv2": "Risultati della ricerca", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.lcname": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.lcname": "Risultati della ricerca", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.pubmed": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.pubmed": "Risultati della ricerca", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.arxiv": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.arxiv": "Risultati della ricerca", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.crossref": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.crossref": "Risultati della ricerca", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.epo": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.epo": "Risultati della ricerca", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.scopus": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.scopus": "Risultati della ricerca", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.scielo": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.scielo": "Risultati della ricerca", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.wos": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.wos": "Risultati della ricerca", + + // "submission.sections.describe.relationship-lookup.selection-tab.title": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title": "Risultati della ricerca", + + // "submission.sections.describe.relationship-lookup.name-variant.notification.content": "Would you like to save \"{{ value }}\" as a name variant for this person so you and others can reuse it for future submissions? If you don't you can still use it for this submission.", + // TODO Source message changed - Revise the translation + "submission.sections.describe.relationship-lookup.name-variant.notification.content": "Desideri salvare \"{{ value }}\" come variante del nome per questa persona in modo che tu e altri possiate riutilizzarlo per immissioni future? Se non lo fai, puoi comunque usarlo per questa immissione.", + + // "submission.sections.describe.relationship-lookup.name-variant.notification.confirm": "Save a new name variant", + "submission.sections.describe.relationship-lookup.name-variant.notification.confirm": "Salva una nuova variante del nome", + + // "submission.sections.describe.relationship-lookup.name-variant.notification.decline": "Use only for this submission", + "submission.sections.describe.relationship-lookup.name-variant.notification.decline": "Utilizzare solo per questa immissione", + + // "submission.sections.ccLicense.type": "License Type", + "submission.sections.ccLicense.type": "Tipo di licenza", + + // "submission.sections.ccLicense.select": "Select a license type…", + "submission.sections.ccLicense.select": "Selezionare un tipo di licenza...", + + // "submission.sections.ccLicense.change": "Change your license type…", + "submission.sections.ccLicense.change": "Modificare il tipo di licenza...", + + // "submission.sections.ccLicense.none": "No licenses available", + "submission.sections.ccLicense.none": "Nessuna licenza disponibile", + + // "submission.sections.ccLicense.option.select": "Select an option…", + "submission.sections.ccLicense.option.select": "Seleziona un'opzione...", + + // "submission.sections.ccLicense.link": "You’ve selected the following license:", + // TODO New key - Add a translation + "submission.sections.ccLicense.link": "You’ve selected the following license:", + + // "submission.sections.ccLicense.confirmation": "I grant the license above", + "submission.sections.ccLicense.confirmation": "Concedo la licenza di cui sopra", + + // "submission.sections.general.add-more": "Add more", + "submission.sections.general.add-more": "Aggiungi altro", + + // "submission.sections.general.cannot_deposit": "Deposit cannot be completed due to errors in the form.Please fill out all required fields to complete the deposit.", + // TODO New key - Add a translation + "submission.sections.general.cannot_deposit": "Deposit cannot be completed due to errors in the form.Please fill out all required fields to complete the deposit.", + + // "submission.sections.general.collection": "Collection", + "submission.sections.general.collection": "collezione", + + // "submission.sections.general.deposit_error_notice": "There was an issue when submitting the item, please try again later.", + "submission.sections.general.deposit_error_notice": "Si è verificato un problema durante l'immissione dell'articolo, riprova più tardi.", + + // "submission.sections.general.deposit_success_notice": "Submission deposited successfully.", + "submission.sections.general.deposit_success_notice": "Immissione depositata con successo.", + + // "submission.sections.general.discard_error_notice": "There was an issue when discarding the item, please try again later.", + "submission.sections.general.discard_error_notice": "Si è verificato un problema durante l'eliminazione dell'item, riprova più tardi.", + + // "submission.sections.general.discard_success_notice": "Submission discarded successfully.", + "submission.sections.general.discard_success_notice": "Immissione scartata correttamente.", + + // "submission.sections.general.metadata-extracted": "New metadata have been extracted and added to the {{sectionId}} section.", + "submission.sections.general.metadata-extracted": "Nuovi metadati sono stati estratti e aggiunti alla sezione {{sectionId}}.", + + // "submission.sections.general.metadata-extracted-new-section": "New {{sectionId}} section has been added to submission.", + "submission.sections.general.metadata-extracted-new-section": "New {{sectionId}} sezione è stata aggiunta all'invio.", + + // "submission.sections.general.no-collection": "No collection found", + "submission.sections.general.no-collection": "Nessuna collezione trovata", + + // "submission.sections.general.no-sections": "No options available", + "submission.sections.general.no-sections": "Nessuna opzione disponibile", + + // "submission.sections.general.save_error_notice": "There was an issue when saving the item, please try again later.", + // TODO Source message changed - Revise the translation + "submission.sections.general.save_error_notice": "Si è verificato un errore imprevisto durante il salvataggio dell'item. Aggiorna la pagina e riprova. Dopo aver aggiornato le modifiche non salvate potrebbero andare perse.", + + // "submission.sections.general.save_success_notice": "Submission saved successfully.", + "submission.sections.general.save_success_notice": "Immissione salvata correttamente.", + + // "submission.sections.general.search-collection": "Search for a collection", + "submission.sections.general.search-collection": "Cerca una collezione", + + // "submission.sections.general.sections_not_valid": "There are incomplete sections.", + "submission.sections.general.sections_not_valid": "Ci sono sezioni incomplete.", + + // "submission.sections.identifiers.info": "The following identifiers will be created for your item:", + // TODO New key - Add a translation + "submission.sections.identifiers.info": "The following identifiers will be created for your item:", + + // "submission.sections.identifiers.no_handle": "No handles have been minted for this item.", + // TODO New key - Add a translation + "submission.sections.identifiers.no_handle": "No handles have been minted for this item.", + + // "submission.sections.identifiers.no_doi": "No DOIs have been minted for this item.", + // TODO New key - Add a translation + "submission.sections.identifiers.no_doi": "No DOIs have been minted for this item.", + + // "submission.sections.identifiers.handle_label": "Handle: ", + // TODO New key - Add a translation + "submission.sections.identifiers.handle_label": "Handle: ", + + // "submission.sections.identifiers.doi_label": "DOI: ", + // TODO New key - Add a translation + "submission.sections.identifiers.doi_label": "DOI: ", + + // "submission.sections.identifiers.otherIdentifiers_label": "Other identifiers: ", + // TODO New key - Add a translation + "submission.sections.identifiers.otherIdentifiers_label": "Other identifiers: ", + + // "submission.sections.submit.progressbar.accessCondition": "Item access conditions", + "submission.sections.submit.progressbar.accessCondition": "Condizioni di accesso all'item", + + // "submission.sections.submit.progressbar.CClicense": "Creative commons license", + "submission.sections.submit.progressbar.CClicense": "Licenza Creative commons", + + // "submission.sections.submit.progressbar.describe.recycle": "Recycle", + "submission.sections.submit.progressbar.describe.recycle": "Ricicla", + + // "submission.sections.submit.progressbar.describe.stepcustom": "Describe", + "submission.sections.submit.progressbar.describe.stepcustom": "Descrivi", + + // "submission.sections.submit.progressbar.describe.stepone": "Describe", + "submission.sections.submit.progressbar.describe.stepone": "Descrivi", + + // "submission.sections.submit.progressbar.describe.steptwo": "Describe", + "submission.sections.submit.progressbar.describe.steptwo": "Descrivi", + + // "submission.sections.submit.progressbar.detect-duplicate": "Potential duplicates", + "submission.sections.submit.progressbar.detect-duplicate": "Potenziali duplicati", + + // "submission.sections.submit.progressbar.identifiers": "Identifiers", + // TODO New key - Add a translation + "submission.sections.submit.progressbar.identifiers": "Identifiers", + + // "submission.sections.submit.progressbar.license": "Deposit license", + "submission.sections.submit.progressbar.license": "Licenza di deposito", + + // "submission.sections.submit.progressbar.sherpapolicy": "Sherpa policies", + // TODO New key - Add a translation + "submission.sections.submit.progressbar.sherpapolicy": "Sherpa policies", + + // "submission.sections.submit.progressbar.upload": "Upload files", + "submission.sections.submit.progressbar.upload": "Carica file", + + // "submission.sections.submit.progressbar.sherpaPolicies": "Publisher open access policy information", + // TODO New key - Add a translation + "submission.sections.submit.progressbar.sherpaPolicies": "Publisher open access policy information", + + + // "submission.sections.sherpa-policy.title-empty": "No publisher policy information available. If your work has an associated ISSN, please enter it above to see any related publisher open access policies.", + // TODO New key - Add a translation + "submission.sections.sherpa-policy.title-empty": "No publisher policy information available. If your work has an associated ISSN, please enter it above to see any related publisher open access policies.", + + // "submission.sections.status.errors.title": "Errors", + "submission.sections.status.errors.title": "Errori", + + // "submission.sections.status.valid.title": "Valid", + "submission.sections.status.valid.title": "Valido", + + // "submission.sections.status.warnings.title": "Warnings", + "submission.sections.status.warnings.title": "Avvertenze", + + // "submission.sections.status.errors.aria": "has errors", + "submission.sections.status.errors.aria": "presenta errori", + + // "submission.sections.status.valid.aria": "is valid", + "submission.sections.status.valid.aria": "è valido", + + // "submission.sections.status.warnings.aria": "has warnings", + "submission.sections.status.warnings.aria": "ha avvisi", + + // "submission.sections.status.info.title": "Additional Information", + // TODO New key - Add a translation + "submission.sections.status.info.title": "Additional Information", + + // "submission.sections.status.info.aria": "Additional Information", + // TODO New key - Add a translation + "submission.sections.status.info.aria": "Additional Information", + + // "submission.sections.toggle.open": "Open section", + "submission.sections.toggle.open": "Apri sezione", + + // "submission.sections.toggle.close": "Close section", + "submission.sections.toggle.close": "Chiudi sezione", + + // "submission.sections.toggle.aria.open": "Expand {{sectionHeader}} section", + "submission.sections.toggle.aria.open": "Espandi la sezione {{sectionHeader}}", + + // "submission.sections.toggle.aria.close": "Collapse {{sectionHeader}} section", + "submission.sections.toggle.aria.close": "Comprimi la sezione {{sectionHeader}}", + + // "submission.sections.upload.delete.confirm.cancel": "Cancel", + "submission.sections.upload.delete.confirm.cancel": "Annulla", + + // "submission.sections.upload.delete.confirm.info": "This operation can't be undone. Are you sure?", + "submission.sections.upload.delete.confirm.info": "Questa operazione non può essere annullata. Sei sicuro?", + + // "submission.sections.upload.delete.confirm.submit": "Yes, I'm sure", + "submission.sections.upload.delete.confirm.submit": "Sì, ne sono sicuro", + + // "submission.sections.upload.delete.confirm.title": "Delete bitstream", + "submission.sections.upload.delete.confirm.title": "Elimina bitstream", + + // "submission.sections.upload.delete.submit": "Delete", + "submission.sections.upload.delete.submit": "Elimina", + + // "submission.sections.upload.download.title": "Download bitstream", + "submission.sections.upload.download.title": "Scarica bitstream", + + // "submission.sections.upload.drop-message": "Drop files to attach them to the item", + "submission.sections.upload.drop-message": "Rilascia i file per allegarli all'item", + + // "submission.sections.upload.edit.title": "Edit bitstream", + "submission.sections.upload.edit.title": "Modifica bitstream", + + // "submission.sections.upload.form.access-condition-label": "Access condition type", + "submission.sections.upload.form.access-condition-label": "Tipo di condizione di accesso", + + // "submission.sections.upload.form.access-condition-hint": "Select an access condition to apply on the bitstream once the item is deposited", + "submission.sections.upload.form.access-condition-hint": "Selezionare una condizione di accesso da applicare sul bitstream una volta depositato l'articolo", + + // "submission.sections.upload.form.date-required": "Date is required.", + "submission.sections.upload.form.date-required": "Data obbligatoria.", + + // "submission.sections.upload.form.date-required-from": "Grant access from date is required.", + "submission.sections.upload.form.date-required-from": "È richiesto concedere l'accesso dalla data.", + + // "submission.sections.upload.form.date-required-until": "Grant access until date is required.", + "submission.sections.upload.form.date-required-until": "Concedi l'accesso fino a quando la data è richiesta.", + + // "submission.sections.upload.form.from-label": "Grant access from", + "submission.sections.upload.form.from-label": "Concedere l'accesso da", + + // "submission.sections.upload.form.from-hint": "Select the date from which the related access condition is applied", + "submission.sections.upload.form.from-hint": "Selezionare la data a partire dalla quale viene applicata la relativa condizione di accesso", + + // "submission.sections.upload.form.from-placeholder": "From", + "submission.sections.upload.form.from-placeholder": "Da", + + // "submission.sections.upload.form.group-label": "Group", + "submission.sections.upload.form.group-label": "Gruppo", + + // "submission.sections.upload.form.group-required": "Group is required.", + "submission.sections.upload.form.group-required": "Il gruppo è obbligatorio.", + + // "submission.sections.upload.form.until-label": "Grant access until", + "submission.sections.upload.form.until-label": "Concedi l'accesso fino a", + + // "submission.sections.upload.form.until-hint": "Select the date until which the related access condition is applied", + "submission.sections.upload.form.until-hint": "Selezionare la data fino alla quale viene applicata la relativa condizione di accesso", + + // "submission.sections.upload.form.until-placeholder": "Until", + "submission.sections.upload.form.until-placeholder": "Fino a quando", + + // "submission.sections.upload.header.policy.default.nolist": "Uploaded files in the {{collectionName}} collection will be accessible according to the following group(s):", + // TODO New key - Add a translation + "submission.sections.upload.header.policy.default.nolist": "Uploaded files in the {{collectionName}} collection will be accessible according to the following group(s):", + + // "submission.sections.upload.header.policy.default.withlist": "Please note that uploaded files in the {{collectionName}} collection will be accessible, in addition to what is explicitly decided for the single file, with the following group(s):", + // TODO New key - Add a translation + "submission.sections.upload.header.policy.default.withlist": "Please note that uploaded files in the {{collectionName}} collection will be accessible, in addition to what is explicitly decided for the single file, with the following group(s):", + + // "submission.sections.upload.info": "Here you will find all the files currently in the item. You can update the file metadata and access conditions or upload additional files by dragging & dropping them anywhere on the page.", + // TODO Source message changed - Revise the translation + "submission.sections.upload.info": "Qui troverai tutti i file attualmente presenti nell'articolo. È possibile aggiornare i metadati dei file e le condizioni di accesso o upload di file aggiuntivi semplicemente trascinandoli e rilasciandoli ovunque nella pagina", + + // "submission.sections.upload.no-entry": "No", + "submission.sections.upload.no-entry": "No", + + // "submission.sections.upload.no-file-uploaded": "No file uploaded yet.", + "submission.sections.upload.no-file-uploaded": "Nessun file ancora caricato.", + + // "submission.sections.upload.save-metadata": "Save metadata", + "submission.sections.upload.save-metadata": "Salva metadati", + + // "submission.sections.upload.undo": "Cancel", + "submission.sections.upload.undo": "Annulla", + + // "submission.sections.upload.upload-failed": "Upload failed", + "submission.sections.upload.upload-failed": "Caricamento non riuscito", + + // "submission.sections.upload.upload-successful": "Upload successful", + "submission.sections.upload.upload-successful": "Caricamento riuscito", + + // "submission.sections.accesses.form.discoverable-description": "When checked, this item will be discoverable in search/browse. When unchecked, the item will only be available via a direct link and will never appear in search/browse.", + "submission.sections.accesses.form.discoverable-description": "Una volta selezionato, questo item sarà individuabile nella ricerca/navigazione. Se deselezionato, l'item sarà disponibile solo tramite un collegamento diretto e non apparirà mai nella ricerca / navigazione.", + + // "submission.sections.accesses.form.discoverable-label": "Discoverable", + "submission.sections.accesses.form.discoverable-label": "Individuabile", + + // "submission.sections.accesses.form.access-condition-label": "Access condition type", + "submission.sections.accesses.form.access-condition-label": "Tipo di condizione di accesso", + + // "submission.sections.accesses.form.access-condition-hint": "Select an access condition to apply on the item once it is deposited", + "submission.sections.accesses.form.access-condition-hint": "Selezionare una condizione di accesso da applicare all'articolo una volta depositato", + + // "submission.sections.accesses.form.date-required": "Date is required.", + "submission.sections.accesses.form.date-required": "Data obbligatoria.", + + // "submission.sections.accesses.form.date-required-from": "Grant access from date is required.", + "submission.sections.accesses.form.date-required-from": "Concedere l'accesso dalla data è obbligatorio.", + + // "submission.sections.accesses.form.date-required-until": "Grant access until date is required.", + "submission.sections.accesses.form.date-required-until": "Concedi l'accesso fino a quando la data è richiesta.", + + // "submission.sections.accesses.form.from-label": "Grant access from", + "submission.sections.accesses.form.from-label": "Concedere l'accesso da", + + // "submission.sections.accesses.form.from-hint": "Select the date from which the related access condition is applied", + "submission.sections.accesses.form.from-hint": "Selezionare la data a partire dalla quale viene applicata la relativa condizione di accesso", + + // "submission.sections.accesses.form.from-placeholder": "From", + "submission.sections.accesses.form.from-placeholder": "Da", + + // "submission.sections.accesses.form.group-label": "Group", + "submission.sections.accesses.form.group-label": "Gruppo", + + // "submission.sections.accesses.form.group-required": "Group is required.", + "submission.sections.accesses.form.group-required": "Il gruppo è obbligatorio.", + + // "submission.sections.accesses.form.until-label": "Grant access until", + "submission.sections.accesses.form.until-label": "Concedi l'accesso fino a", + + // "submission.sections.accesses.form.until-hint": "Select the date until which the related access condition is applied", + "submission.sections.accesses.form.until-hint": "Selezionare la data fino alla quale viene applicata la relativa condizione di accesso", + + // "submission.sections.accesses.form.until-placeholder": "Until", + "submission.sections.accesses.form.until-placeholder": "Fino a quando", + + // "submission.sections.license.granted-label": "I confirm the license above", + // TODO New key - Add a translation + "submission.sections.license.granted-label": "I confirm the license above", + + // "submission.sections.license.required": "You must accept the license", + // TODO New key - Add a translation + "submission.sections.license.required": "You must accept the license", + + // "submission.sections.license.notgranted": "You must accept the license", + // TODO New key - Add a translation + "submission.sections.license.notgranted": "You must accept the license", + + + // "submission.sections.sherpa.publication.information": "Publication information", + // TODO New key - Add a translation + "submission.sections.sherpa.publication.information": "Publication information", + + // "submission.sections.sherpa.publication.information.title": "Title", + // TODO New key - Add a translation + "submission.sections.sherpa.publication.information.title": "Title", + + // "submission.sections.sherpa.publication.information.issns": "ISSNs", + // TODO New key - Add a translation + "submission.sections.sherpa.publication.information.issns": "ISSNs", + + // "submission.sections.sherpa.publication.information.url": "URL", + // TODO New key - Add a translation + "submission.sections.sherpa.publication.information.url": "URL", + + // "submission.sections.sherpa.publication.information.publishers": "Publisher", + // TODO New key - Add a translation + "submission.sections.sherpa.publication.information.publishers": "Publisher", + + // "submission.sections.sherpa.publication.information.romeoPub": "Romeo Pub", + // TODO New key - Add a translation + "submission.sections.sherpa.publication.information.romeoPub": "Romeo Pub", + + // "submission.sections.sherpa.publication.information.zetoPub": "Zeto Pub", + // TODO New key - Add a translation + "submission.sections.sherpa.publication.information.zetoPub": "Zeto Pub", + + // "submission.sections.sherpa.publisher.policy": "Publisher Policy", + // TODO New key - Add a translation + "submission.sections.sherpa.publisher.policy": "Publisher Policy", + + // "submission.sections.sherpa.publisher.policy.description": "The below information was found via Sherpa Romeo. Based on the policies of your publisher, it provides advice regarding whether an embargo may be necessary and/or which files you are allowed to upload. If you have questions, please contact your site administrator via the feedback form in the footer.", + // TODO New key - Add a translation + "submission.sections.sherpa.publisher.policy.description": "The below information was found via Sherpa Romeo. Based on the policies of your publisher, it provides advice regarding whether an embargo may be necessary and/or which files you are allowed to upload. If you have questions, please contact your site administrator via the feedback form in the footer.", + + // "submission.sections.sherpa.publisher.policy.openaccess": "Open Access pathways permitted by this journal's policy are listed below by article version. Click on a pathway for a more detailed view", + // TODO New key - Add a translation + "submission.sections.sherpa.publisher.policy.openaccess": "Open Access pathways permitted by this journal's policy are listed below by article version. Click on a pathway for a more detailed view", + + // "submission.sections.sherpa.publisher.policy.more.information": "For more information, please see the following links:", + // TODO New key - Add a translation + "submission.sections.sherpa.publisher.policy.more.information": "For more information, please see the following links:", + + // "submission.sections.sherpa.publisher.policy.version": "Version", + // TODO New key - Add a translation + "submission.sections.sherpa.publisher.policy.version": "Version", + + // "submission.sections.sherpa.publisher.policy.embargo": "Embargo", + // TODO New key - Add a translation + "submission.sections.sherpa.publisher.policy.embargo": "Embargo", + + // "submission.sections.sherpa.publisher.policy.noembargo": "No Embargo", + // TODO New key - Add a translation + "submission.sections.sherpa.publisher.policy.noembargo": "No Embargo", + + // "submission.sections.sherpa.publisher.policy.nolocation": "None", + // TODO New key - Add a translation + "submission.sections.sherpa.publisher.policy.nolocation": "None", + + // "submission.sections.sherpa.publisher.policy.license": "License", + // TODO New key - Add a translation + "submission.sections.sherpa.publisher.policy.license": "License", + + // "submission.sections.sherpa.publisher.policy.prerequisites": "Prerequisites", + // TODO New key - Add a translation + "submission.sections.sherpa.publisher.policy.prerequisites": "Prerequisites", + + // "submission.sections.sherpa.publisher.policy.location": "Location", + // TODO New key - Add a translation + "submission.sections.sherpa.publisher.policy.location": "Location", + + // "submission.sections.sherpa.publisher.policy.conditions": "Conditions", + // TODO New key - Add a translation + "submission.sections.sherpa.publisher.policy.conditions": "Conditions", + + // "submission.sections.sherpa.publisher.policy.refresh": "Refresh", + // TODO New key - Add a translation + "submission.sections.sherpa.publisher.policy.refresh": "Refresh", + + // "submission.sections.sherpa.record.information": "Record Information", + // TODO New key - Add a translation + "submission.sections.sherpa.record.information": "Record Information", + + // "submission.sections.sherpa.record.information.id": "ID", + // TODO New key - Add a translation + "submission.sections.sherpa.record.information.id": "ID", + + // "submission.sections.sherpa.record.information.date.created": "Date Created", + // TODO New key - Add a translation + "submission.sections.sherpa.record.information.date.created": "Date Created", + + // "submission.sections.sherpa.record.information.date.modified": "Last Modified", + // TODO New key - Add a translation + "submission.sections.sherpa.record.information.date.modified": "Last Modified", + + // "submission.sections.sherpa.record.information.uri": "URI", + // TODO New key - Add a translation + "submission.sections.sherpa.record.information.uri": "URI", + + // "submission.sections.sherpa.error.message": "There was an error retrieving sherpa informations", + // TODO New key - Add a translation + "submission.sections.sherpa.error.message": "There was an error retrieving sherpa informations", + + + + // "submission.submit.breadcrumbs": "New submission", + "submission.submit.breadcrumbs": "Nuova immissione", + + // "submission.submit.title": "New submission", + "submission.submit.title": "Nuova immissione", + + + + // "submission.workflow.generic.delete": "Delete", + "submission.workflow.generic.delete": "Elimina", + + // "submission.workflow.generic.delete-help": "Select this option to discard this item. You will then be asked to confirm it.", + // TODO Source message changed - Revise the translation + "submission.workflow.generic.delete-help": "Se si desidera eliminare questo item, selezionare \"Elimina\". Ti verrà quindi chiesto di confermarlo.", + + // "submission.workflow.generic.edit": "Edit", + "submission.workflow.generic.edit": "Modifica", + + // "submission.workflow.generic.edit-help": "Select this option to change the item's metadata.", + "submission.workflow.generic.edit-help": "Selezionare questa opzione per modificare i metadati dell'item.", + + // "submission.workflow.generic.view": "View", + "submission.workflow.generic.view": "Visualizza", + + // "submission.workflow.generic.view-help": "Select this option to view the item's metadata.", + "submission.workflow.generic.view-help": "Selezionare questa opzione per visualizzare i metadati dell'item.", + + + // "submission.workflow.generic.submit_select_reviewer": "Select Reviewer", + // TODO New key - Add a translation + "submission.workflow.generic.submit_select_reviewer": "Select Reviewer", + + // "submission.workflow.generic.submit_select_reviewer-help": "", + // TODO New key - Add a translation + "submission.workflow.generic.submit_select_reviewer-help": "", + + + // "submission.workflow.generic.submit_score": "Rate", + // TODO New key - Add a translation + "submission.workflow.generic.submit_score": "Rate", + + // "submission.workflow.generic.submit_score-help": "", + // TODO New key - Add a translation + "submission.workflow.generic.submit_score-help": "", + + + // "submission.workflow.tasks.claimed.approve": "Approve", + "submission.workflow.tasks.claimed.approve": "Approva", + + // "submission.workflow.tasks.claimed.approve_help": "If you have reviewed the item and it is suitable for inclusion in the collection, select \"Approve\".", + "submission.workflow.tasks.claimed.approve_help": "Se hai esaminato l'item ed è adatto per l'inclusione nella collezione, seleziona \"Approva\".", + + // "submission.workflow.tasks.claimed.edit": "Edit", + "submission.workflow.tasks.claimed.edit": "Modifica", + + // "submission.workflow.tasks.claimed.edit_help": "Select this option to change the item's metadata.", + "submission.workflow.tasks.claimed.edit_help": "Selezionare questa opzione per modificare i metadati dell'item.", + + // "submission.workflow.tasks.claimed.decline": "Decline", + // TODO New key - Add a translation + "submission.workflow.tasks.claimed.decline": "Decline", + + // "submission.workflow.tasks.claimed.decline_help": "", + // TODO New key - Add a translation + "submission.workflow.tasks.claimed.decline_help": "", + + // "submission.workflow.tasks.claimed.reject.reason.info": "Please enter your reason for rejecting the submission into the box below, indicating whether the submitter may fix a problem and resubmit.", + "submission.workflow.tasks.claimed.reject.reason.info": "Se hai esaminato l'item e hai scoperto che non è adatto per essere inserito nella collezione, seleziona \"Rifiuta\". Ti verrà quindi chiesto di inserire un messaggio che indichi perché l'item non è adatto e se chi ha inviato l'item deve cambiare qualcosa e inviarlo di nuovo.", + + // "submission.workflow.tasks.claimed.reject.reason.placeholder": "Describe the reason of reject", + "submission.workflow.tasks.claimed.reject.reason.placeholder": "Descrivi il motivo del rifiuto", + + // "submission.workflow.tasks.claimed.reject.reason.submit": "Reject item", + "submission.workflow.tasks.claimed.reject.reason.submit": "Rifiuta l'item", + + // "submission.workflow.tasks.claimed.reject.reason.title": "Reason", + "submission.workflow.tasks.claimed.reject.reason.title": "Motivo", + + // "submission.workflow.tasks.claimed.reject.submit": "Reject", + "submission.workflow.tasks.claimed.reject.submit": "Rifiuta", + + // "submission.workflow.tasks.claimed.reject_help": "If you have reviewed the item and found it is not suitable for inclusion in the collection, select \"Reject\". You will then be asked to enter a message indicating why the item is unsuitable, and whether the submitter should change something and resubmit.", + "submission.workflow.tasks.claimed.reject_help": "Se l'item esaminato non è adatto per essere inserito nella collezione, seleziona \"Rifiuta\". Ti verrà quindi chiesto di inserire un messaggio che indichi perché l'item non è adatto e se chi ha inviato l'item deve cambiare qualcosa e inviarlo di nuovo.", + + // "submission.workflow.tasks.claimed.return": "Return to pool", + "submission.workflow.tasks.claimed.return": "Restituisci al pool", + + // "submission.workflow.tasks.claimed.return_help": "Return the task to the pool so that another user may perform the task.", + "submission.workflow.tasks.claimed.return_help": "Restituire il task al pool in modo che un altro utente possa prenderlo in carico.", + + + + // "submission.workflow.tasks.generic.error": "Error occurred during operation...", + "submission.workflow.tasks.generic.error": "Si è verificato un errore durante l'operazione...", + + // "submission.workflow.tasks.generic.processing": "Processing...", + "submission.workflow.tasks.generic.processing": "Elaborazione...", + + // "submission.workflow.tasks.generic.submitter": "Submitter", + "submission.workflow.tasks.generic.submitter": "Operatore", + + // "submission.workflow.tasks.generic.success": "Operation successful", + "submission.workflow.tasks.generic.success": "Operazione riuscita", + + + + // "submission.workflow.tasks.pool.claim": "Claim", + "submission.workflow.tasks.pool.claim": "Associa", + + // "submission.workflow.tasks.pool.claim_help": "Assign this task to yourself.", + "submission.workflow.tasks.pool.claim_help": "Assegnati il task.", + + // "submission.workflow.tasks.pool.hide-detail": "Hide detail", + "submission.workflow.tasks.pool.hide-detail": "Nascondi dettaglio", + + // "submission.workflow.tasks.pool.show-detail": "Show detail", + "submission.workflow.tasks.pool.show-detail": "Mostra dettagli", + + + // "submission.workspace.generic.view": "View", + "submission.workspace.generic.view": "Elenco", + + // "submission.workspace.generic.view-help": "Select this option to view the item's metadata.", + "submission.workspace.generic.view-help": "Seleziona questa opzione per vedere i metadata dell'item.", + + + // "subscriptions.title": "Subscriptions", + "subscriptions.title": "Sottoscrizioni", + + // "subscriptions.item": "Subscriptions for items", + "subscriptions.item": "Sottoscrizioni per articoli", + + // "subscriptions.collection": "Subscriptions for collections", + "subscriptions.collection": "Sottoscrizioni per collezioni", + + // "subscriptions.community": "Subscriptions for communities", + "subscriptions.community": "Sottoscrizioni per community", + + // "subscriptions.subscription_type": "Subscription type", + "subscriptions.subscription_type": "Tipo di sottoscrizione", + + // "subscriptions.frequency": "Subscription frequency", + "subscriptions.frequency": "Frequenza di sottoscrizione", + + // "subscriptions.frequency.D": "Daily", + "subscriptions.frequency.D": "Giornaliero", + + // "subscriptions.frequency.M": "Monthly", + "subscriptions.frequency.M": "Mensile", + + // "subscriptions.frequency.W": "Weekly", + "subscriptions.frequency.W": "Settimanale", + + // "subscriptions.tooltip": "Subscribe", + // TODO New key - Add a translation + "subscriptions.tooltip": "Subscribe", + + // "subscriptions.modal.title": "Subscriptions", + // TODO New key - Add a translation + "subscriptions.modal.title": "Subscriptions", + + // "subscriptions.modal.type-frequency": "Type and frequency", + // TODO New key - Add a translation + "subscriptions.modal.type-frequency": "Type and frequency", + + // "subscriptions.modal.close": "Close", + // TODO New key - Add a translation + "subscriptions.modal.close": "Close", + + // "subscriptions.modal.delete-info": "To remove this subscription, please visit the \"Subscriptions\" page under your user profile", + // TODO New key - Add a translation + "subscriptions.modal.delete-info": "To remove this subscription, please visit the \"Subscriptions\" page under your user profile", + + // "subscriptions.modal.new-subscription-form.type.content": "Content", + // TODO New key - Add a translation + "subscriptions.modal.new-subscription-form.type.content": "Content", + + // "subscriptions.modal.new-subscription-form.frequency.D": "Daily", + // TODO New key - Add a translation + "subscriptions.modal.new-subscription-form.frequency.D": "Daily", + + // "subscriptions.modal.new-subscription-form.frequency.W": "Weekly", + // TODO New key - Add a translation + "subscriptions.modal.new-subscription-form.frequency.W": "Weekly", + + // "subscriptions.modal.new-subscription-form.frequency.M": "Monthly", + // TODO New key - Add a translation + "subscriptions.modal.new-subscription-form.frequency.M": "Monthly", + + // "subscriptions.modal.new-subscription-form.submit": "Submit", + // TODO New key - Add a translation + "subscriptions.modal.new-subscription-form.submit": "Submit", + + // "subscriptions.modal.new-subscription-form.processing": "Processing...", + // TODO New key - Add a translation + "subscriptions.modal.new-subscription-form.processing": "Processing...", + + // "subscriptions.modal.create.success": "Subscribed to {{ type }} successfully.", + // TODO New key - Add a translation + "subscriptions.modal.create.success": "Subscribed to {{ type }} successfully.", + + // "subscriptions.modal.delete.success": "Subscription deleted successfully", + // TODO New key - Add a translation + "subscriptions.modal.delete.success": "Subscription deleted successfully", + + // "subscriptions.modal.update.success": "Subscription to {{ type }} updated successfully", + // TODO New key - Add a translation + "subscriptions.modal.update.success": "Subscription to {{ type }} updated successfully", + + // "subscriptions.modal.create.error": "An error occurs during the subscription creation", + // TODO New key - Add a translation + "subscriptions.modal.create.error": "An error occurs during the subscription creation", + + // "subscriptions.modal.delete.error": "An error occurs during the subscription delete", + // TODO New key - Add a translation + "subscriptions.modal.delete.error": "An error occurs during the subscription delete", + + // "subscriptions.modal.update.error": "An error occurs during the subscription update", + // TODO New key - Add a translation + "subscriptions.modal.update.error": "An error occurs during the subscription update", + + // "subscriptions.table.dso": "Subject", + "subscriptions.table.dso": "Oggetto", + + // "subscriptions.table.subscription_type": "Subscription Type", + "subscriptions.table.subscription_type": "Tipo di sottoscrizione", + + // "subscriptions.table.subscription_frequency": "Subscription Frequency", + "subscriptions.table.subscription_frequency": "Frequenza di sottoscrizione", + + // "subscriptions.table.action": "Action", + "subscriptions.table.action": "Azione", + + // "subscriptions.table.edit": "Edit", + // TODO New key - Add a translation + "subscriptions.table.edit": "Edit", + + // "subscriptions.table.delete": "Delete", + // TODO New key - Add a translation + "subscriptions.table.delete": "Delete", + + // "subscriptions.table.not-available": "Not available", + // TODO New key - Add a translation + "subscriptions.table.not-available": "Not available", + + // "subscriptions.table.not-available-message": "The subscribed item has been deleted, or you don't currently have the permission to view it", + // TODO New key - Add a translation + "subscriptions.table.not-available-message": "The subscribed item has been deleted, or you don't currently have the permission to view it", + + // "subscriptions.table.empty.message": "You do not have any subscriptions at this time. To subscribe to email updates for a Community or Collection, use the subscription button on the object's page.", + // TODO Source message changed - Revise the translation + "subscriptions.table.empty.message": "Non hai ancora sottoscritto alcuna notifica. Per sottoscrivere la notifica relativa a un oggetto, usa il menu contestuale nella pagina di dettaglio dell'oggetto", + + + // "thumbnail.default.alt": "Thumbnail Image", + "thumbnail.default.alt": "Immagine di anteprima", + + // "thumbnail.default.placeholder": "No Thumbnail Available", + "thumbnail.default.placeholder": "Nessuna immagine disponibile", + + // "thumbnail.project.alt": "Project Logo", + "thumbnail.project.alt": "Logo del progetto", + + // "thumbnail.project.placeholder": "Project Placeholder Image", + "thumbnail.project.placeholder": "Immagine segnaposto progetto", + + // "thumbnail.orgunit.alt": "OrgUnit Logo", + "thumbnail.orgunit.alt": "Logo Struttura", + + // "thumbnail.orgunit.placeholder": "OrgUnit Placeholder Image", + "thumbnail.orgunit.placeholder": "Immagine segnaposto Struttura", + + // "thumbnail.person.alt": "Profile Picture", + "thumbnail.person.alt": "Immagine del profilo", + + // "thumbnail.person.placeholder": "No Profile Picture Available", + "thumbnail.person.placeholder": "Nessuna immagine del profilo disponibile", + + + + // "title": "DSpace", + "title": "DSpace", + + + + // "vocabulary-treeview.header": "Hierarchical tree view", + "vocabulary-treeview.header": "Visualizzazione gerarchica ad albero", + + // "vocabulary-treeview.load-more": "Load more", + "vocabulary-treeview.load-more": "Carica di più", + + // "vocabulary-treeview.search.form.reset": "Reset", + "vocabulary-treeview.search.form.reset": "Cancella", + + // "vocabulary-treeview.search.form.search": "Search", + "vocabulary-treeview.search.form.search": "Cerca", + + // "vocabulary-treeview.search.no-result": "There were no items to show", + "vocabulary-treeview.search.no-result": "Non ci sono item da mostrare", + + // "vocabulary-treeview.tree.description.nsi": "The Norwegian Science Index", + "vocabulary-treeview.tree.description.nsi": "Il Norwegian Science Index", + + // "vocabulary-treeview.tree.description.srsc": "Research Subject Categories", + "vocabulary-treeview.tree.description.srsc": "Categorie di argomenti di ricerca", + + // "vocabulary-treeview.info": "Select a subject to add as search filter", + // TODO New key - Add a translation + "vocabulary-treeview.info": "Select a subject to add as search filter", + + // "uploader.browse": "browse", + "uploader.browse": "sfoglia", + + // "uploader.drag-message": "Drag & Drop your files here", + "uploader.drag-message": "Trascina e rilascia i tuoi file qui", + + // "uploader.delete.btn-title": "Delete", + "uploader.delete.btn-title": "Elimina", + + // "uploader.or": ", or ", + "uploader.or": ", oppure ", + + // "uploader.processing": "Processing uploaded file(s)... (it's now safe to close this page)", + // TODO Source message changed - Revise the translation + "uploader.processing": "Elaborazione", + + // "uploader.queue-length": "Queue length", + "uploader.queue-length": "Lunghezza coda", + + // "virtual-metadata.delete-item.info": "Select the types for which you want to save the virtual metadata as real metadata", + "virtual-metadata.delete-item.info": "Selezionare i tipi per i quali vuoi salvare i metadati virtuali come metadati reali", + + // "virtual-metadata.delete-item.modal-head": "The virtual metadata of this relation", + "virtual-metadata.delete-item.modal-head": "I metadati virtuali di questa relazione", + + // "virtual-metadata.delete-relationship.modal-head": "Select the items for which you want to save the virtual metadata as real metadata", + "virtual-metadata.delete-relationship.modal-head": "Selezionare gli item per i quali si desidera salvare i metadati virtuali come metadati reali", + + + + // "supervisedWorkspace.search.results.head": "Supervised Items", + // TODO New key - Add a translation + "supervisedWorkspace.search.results.head": "Supervised Items", + + // "workspace.search.results.head": "Your submissions", + "workspace.search.results.head": "I tuoi invii", + + // "workflowAdmin.search.results.head": "Administer Workflow", + "workflowAdmin.search.results.head": "Gestire il workflow", + + // "workflow.search.results.head": "Workflow tasks", + "workflow.search.results.head": "Task del workflow", + + // "supervision.search.results.head": "Workflow and Workspace tasks", + // TODO New key - Add a translation + "supervision.search.results.head": "Workflow and Workspace tasks", + + + + // "workflow-item.edit.breadcrumbs": "Edit workflowitem", + "workflow-item.edit.breadcrumbs": "Modifica l'item del workflow", + + // "workflow-item.edit.title": "Edit workflowitem", + "workflow-item.edit.title": "Modifica l'item del workflow", + + // "workflow-item.delete.notification.success.title": "Deleted", + "workflow-item.delete.notification.success.title": "Eliminato", + + // "workflow-item.delete.notification.success.content": "This workflow item was successfully deleted", + "workflow-item.delete.notification.success.content": "Questo item del workflow è stato eliminato correttamente", + + // "workflow-item.delete.notification.error.title": "Something went wrong", + "workflow-item.delete.notification.error.title": "Qualcosa è andato storto", + + // "workflow-item.delete.notification.error.content": "The workflow item could not be deleted", + "workflow-item.delete.notification.error.content": "Impossibile eliminare l'item del workflow", + + // "workflow-item.delete.title": "Delete workflow item", + "workflow-item.delete.title": "Elimina item del workflow", + + // "workflow-item.delete.header": "Delete workflow item", + "workflow-item.delete.header": "Elimina item del workflow", + + // "workflow-item.delete.button.cancel": "Cancel", + "workflow-item.delete.button.cancel": "Annulla", + + // "workflow-item.delete.button.confirm": "Delete", + "workflow-item.delete.button.confirm": "Elimina", + + + // "workflow-item.send-back.notification.success.title": "Sent back to submitter", + "workflow-item.send-back.notification.success.title": "Inviato all'operatore", + + // "workflow-item.send-back.notification.success.content": "This workflow item was successfully sent back to the submitter", + "workflow-item.send-back.notification.success.content": "Questo item del workflow è stato rinviato correttamente all'operatore", + + // "workflow-item.send-back.notification.error.title": "Something went wrong", + "workflow-item.send-back.notification.error.title": "Qualcosa è andato storto", + + // "workflow-item.send-back.notification.error.content": "The workflow item could not be sent back to the submitter", + "workflow-item.send-back.notification.error.content": "Impossibile inviare l'item del workflow all'operatore", + + // "workflow-item.send-back.title": "Send workflow item back to submitter", + "workflow-item.send-back.title": "Invia l'item del workflow all'operatore", + + // "workflow-item.send-back.header": "Send workflow item back to submitter", + "workflow-item.send-back.header": "Invia l'item del workflow all'operatore", + + // "workflow-item.send-back.button.cancel": "Cancel", + "workflow-item.send-back.button.cancel": "Annulla", + + // "workflow-item.send-back.button.confirm": "Send back", + "workflow-item.send-back.button.confirm": "Invia indietro", + + // "workflow-item.view.breadcrumbs": "Workflow View", + "workflow-item.view.breadcrumbs": "Vista workflow", + + // "workspace-item.view.breadcrumbs": "Workspace View", + "workspace-item.view.breadcrumbs": "Vista Workspace", + + // "workspace-item.view.title": "Workspace View", + "workspace-item.view.title": "Vista Workspace", + + + // "workflow-item.advanced.title": "Advanced workflow", + // TODO New key - Add a translation + "workflow-item.advanced.title": "Advanced workflow", + + + // "workflow-item.selectrevieweraction.notification.success.title": "Selected reviewer", + // TODO New key - Add a translation + "workflow-item.selectrevieweraction.notification.success.title": "Selected reviewer", + + // "workflow-item.selectrevieweraction.notification.success.content": "The reviewer for this workflow item has been successfully selected", + // TODO New key - Add a translation + "workflow-item.selectrevieweraction.notification.success.content": "The reviewer for this workflow item has been successfully selected", + + // "workflow-item.selectrevieweraction.notification.error.title": "Something went wrong", + // TODO New key - Add a translation + "workflow-item.selectrevieweraction.notification.error.title": "Something went wrong", + + // "workflow-item.selectrevieweraction.notification.error.content": "Couldn't select the reviewer for this workflow item", + // TODO New key - Add a translation + "workflow-item.selectrevieweraction.notification.error.content": "Couldn't select the reviewer for this workflow item", + + // "workflow-item.selectrevieweraction.title": "Select Reviewer", + // TODO New key - Add a translation + "workflow-item.selectrevieweraction.title": "Select Reviewer", + + // "workflow-item.selectrevieweraction.header": "Select Reviewer", + // TODO New key - Add a translation + "workflow-item.selectrevieweraction.header": "Select Reviewer", + + // "workflow-item.selectrevieweraction.button.cancel": "Cancel", + // TODO New key - Add a translation + "workflow-item.selectrevieweraction.button.cancel": "Cancel", + + // "workflow-item.selectrevieweraction.button.confirm": "Confirm", + // TODO New key - Add a translation + "workflow-item.selectrevieweraction.button.confirm": "Confirm", + + + // "workflow-item.scorereviewaction.notification.success.title": "Rating review", + // TODO New key - Add a translation + "workflow-item.scorereviewaction.notification.success.title": "Rating review", + + // "workflow-item.scorereviewaction.notification.success.content": "The rating for this item workflow item has been successfully submitted", + // TODO New key - Add a translation + "workflow-item.scorereviewaction.notification.success.content": "The rating for this item workflow item has been successfully submitted", + + // "workflow-item.scorereviewaction.notification.error.title": "Something went wrong", + // TODO New key - Add a translation + "workflow-item.scorereviewaction.notification.error.title": "Something went wrong", + + // "workflow-item.scorereviewaction.notification.error.content": "Couldn't rate this item", + // TODO New key - Add a translation + "workflow-item.scorereviewaction.notification.error.content": "Couldn't rate this item", + + // "workflow-item.scorereviewaction.title": "Rate this item", + // TODO New key - Add a translation + "workflow-item.scorereviewaction.title": "Rate this item", + + // "workflow-item.scorereviewaction.header": "Rate this item", + // TODO New key - Add a translation + "workflow-item.scorereviewaction.header": "Rate this item", + + // "workflow-item.scorereviewaction.button.cancel": "Cancel", + // TODO New key - Add a translation + "workflow-item.scorereviewaction.button.cancel": "Cancel", + + // "workflow-item.scorereviewaction.button.confirm": "Confirm", + // TODO New key - Add a translation + "workflow-item.scorereviewaction.button.confirm": "Confirm", + + // "idle-modal.header": "Session will expire soon", + "idle-modal.header": "La sessione scadrà presto", + + // "idle-modal.info": "For security reasons, user sessions expire after {{ timeToExpire }} minutes of inactivity. Your session will expire soon. Would you like to extend it or log out?", + "idle-modal.info": "Per motivi di sicurezza, le sessioni utente scadono dopo {{ timeToExpire }} minuti di inattività. La sessione scadrà presto. Vuoi estenderla o disconnetterti?", + + // "idle-modal.log-out": "Log out", + "idle-modal.log-out": "Logout", + + // "idle-modal.extend-session": "Extend session", + "idle-modal.extend-session": "Estendi sessione", + + // "researcher.profile.action.processing": "Processing...", + // TODO Source message changed - Revise the translation + "researcher.profile.action.processing": "Elaborazione...", + + // "researcher.profile.associated": "Researcher profile associated", + "researcher.profile.associated": "Profilo ricercatore associato", + + // "researcher.profile.change-visibility.fail": "An unexpected error occurs while changing the profile visibility", + "researcher.profile.change-visibility.fail": "Si è verificato un errore inaspettato durante il cambio della visibilità del profilo", + + // "researcher.profile.create.new": "Create new", + "researcher.profile.create.new": "Crea nuovo", + + // "researcher.profile.create.success": "Researcher profile created successfully", + "researcher.profile.create.success": "Profilo del ricercatore creato con successo", + + // "researcher.profile.create.fail": "An error occurs during the researcher profile creation", + "researcher.profile.create.fail": "Si è verificato un errore durante la creazione del profilo del ricercatore", + + // "researcher.profile.delete": "Delete", + "researcher.profile.delete": "Elimina", + + // "researcher.profile.expose": "Expose", + "researcher.profile.expose": "Mostra", + + // "researcher.profile.hide": "Hide", + "researcher.profile.hide": "Nascondi", + + // "researcher.profile.not.associated": "Researcher profile not yet associated", + "researcher.profile.not.associated": "Profilo del ricercatore non ancora associato", + + // "researcher.profile.view": "View", + "researcher.profile.view": "Visualizza", + + // "researcher.profile.private.visibility": "PRIVATE", + // TODO Source message changed - Revise the translation + "researcher.profile.private.visibility": "PRIVATO", + + // "researcher.profile.public.visibility": "PUBLIC", + // TODO Source message changed - Revise the translation + "researcher.profile.public.visibility": "PUBBLICO", + + // "researcher.profile.status": "Status:", + "researcher.profile.status": "Stato:", + + // "researcherprofile.claim.not-authorized": "You are not authorized to claim this item. For more details contact the administrator(s).", + "researcherprofile.claim.not-authorized": "Non sei autorizzato a richiedere questo item. Per maggiori dettagli contattare l'amministratore/i", + + // "researcherprofile.error.claim.body": "An error occurred while claiming the profile, please try again later", + // TODO Source message changed - Revise the translation + "researcherprofile.error.claim.body": "Si è verificato un errore durante l'associazione del profilo, prova più tardi", + + // "researcherprofile.error.claim.title": "Error", + // TODO Source message changed - Revise the translation + "researcherprofile.error.claim.title": "Errore", + + // "researcherprofile.success.claim.body": "Profile claimed with success", + // TODO Source message changed - Revise the translation + "researcherprofile.success.claim.body": "Profilo associato con successo", + + // "researcherprofile.success.claim.title": "Success", + // TODO Source message changed - Revise the translation + "researcherprofile.success.claim.title": "Successo", + + // "person.page.orcid.create": "Create an ORCID ID", + "person.page.orcid.create": "Creare un ID ORCID", + + // "person.page.orcid.granted-authorizations": "Granted authorizations", + "person.page.orcid.granted-authorizations": "Autorizzazioni concesse", + + // "person.page.orcid.grant-authorizations": "Grant authorizations", + // TODO Source message changed - Revise the translation + "person.page.orcid.grant-authorizations": "Concedere autorizzazioni", + + // "person.page.orcid.link": "Connect to ORCID ID", + "person.page.orcid.link": "Connettersi all'ORCID ID", + + // "person.page.orcid.link.processing": "Linking profile to ORCID...", + "person.page.orcid.link.processing": "Collega il profilo a ORCID...", + + // "person.page.orcid.link.error.message": "Something went wrong while connecting the profile with ORCID. If the problem persists, contact the administrator.", + "person.page.orcid.link.error.message": "Si è verifcato un errore nel connettere il profilo a ORCID. Se il problema persiste, contattare l'amministratore", + + // "person.page.orcid.orcid-not-linked-message": "The ORCID iD of this profile ({{ orcid }}) has not yet been connected to an account on the ORCID registry or the connection is expired.", + "person.page.orcid.orcid-not-linked-message": "L'ORCID ID di questo profilo ({{ orcid }}) non è ancora stato collegato a un account del registro ORCID o la connessione è scaduta.", + + // "person.page.orcid.unlink": "Disconnect from ORCID", + "person.page.orcid.unlink": "Disconnessione da ORCID", + + // "person.page.orcid.unlink.processing": "Processing...", + "person.page.orcid.unlink.processing": "Elaborazione...", + + // "person.page.orcid.missing-authorizations": "Missing authorizations", + "person.page.orcid.missing-authorizations": "Autorizzazioni mancanti", + + // "person.page.orcid.missing-authorizations-message": "The following authorizations are missing:", + "person.page.orcid.missing-authorizations-message": "Non si dispone delle seguenti autorizzazioni:", + + // "person.page.orcid.no-missing-authorizations-message": "Great! This box is empty, so you have granted all access rights to use all functions offers by your institution.", + "person.page.orcid.no-missing-authorizations-message": "Benissimo! Questa casella è vuota, quindi hai concesso tutti i diritti di accesso per utilizzare tutte le funzioni offerte dalla tua istituzione.", + + // "person.page.orcid.no-orcid-message": "No ORCID iD associated yet. By clicking on the button below it is possible to link this profile with an ORCID account.", + "person.page.orcid.no-orcid-message": "Nessun ORCID ID ancora associato. Cliccando sul pulsante qui sotto è possibile collegare questo profilo con un account ORCID.", + + // "person.page.orcid.profile-preferences": "Profile preferences", + "person.page.orcid.profile-preferences": "Preferenze del profilo", + + // "person.page.orcid.funding-preferences": "Funding preferences", + "person.page.orcid.funding-preferences": "Preferenze di finanziamento", + + // "person.page.orcid.publications-preferences": "Publication preferences", + "person.page.orcid.publications-preferences": "Preferenze di pubblicazione", + + // "person.page.orcid.remove-orcid-message": "If you need to remove your ORCID, please contact the repository administrator", + "person.page.orcid.remove-orcid-message": "Se vuoi rimuovere l'ORCID, contatta l'amministratore del repository", + + // "person.page.orcid.save.preference.changes": "Update settings", + "person.page.orcid.save.preference.changes": "Impostazioni di aggiornamento", + + // "person.page.orcid.sync-profile.affiliation": "Affiliation", + // TODO Source message changed - Revise the translation + "person.page.orcid.sync-profile.affiliation": "Affiliazione", + + // "person.page.orcid.sync-profile.biographical": "Biographical data", + // TODO Source message changed - Revise the translation + "person.page.orcid.sync-profile.biographical": "Riferimenti biografici", + + // "person.page.orcid.sync-profile.education": "Education", + // TODO Source message changed - Revise the translation + "person.page.orcid.sync-profile.education": "Educazione", + + // "person.page.orcid.sync-profile.identifiers": "Identifiers", + // TODO Source message changed - Revise the translation + "person.page.orcid.sync-profile.identifiers": "Identificativi", + + // "person.page.orcid.sync-fundings.all": "All fundings", + // TODO Source message changed - Revise the translation + "person.page.orcid.sync-fundings.all": "Tutti i finanziamenti", + + // "person.page.orcid.sync-fundings.mine": "My fundings", + // TODO Source message changed - Revise the translation + "person.page.orcid.sync-fundings.mine": "I miei finanziamenti", + + // "person.page.orcid.sync-fundings.my_selected": "Selected fundings", + // TODO Source message changed - Revise the translation + "person.page.orcid.sync-fundings.my_selected": "Finanziamenti selezionati", + + // "person.page.orcid.sync-fundings.disabled": "Disabled", + // TODO Source message changed - Revise the translation + "person.page.orcid.sync-fundings.disabled": "Disabilitato", + + // "person.page.orcid.sync-publications.all": "All publications", + // TODO Source message changed - Revise the translation + "person.page.orcid.sync-publications.all": "Tutte le pubblicazioni", + + // "person.page.orcid.sync-publications.mine": "My publications", + // TODO Source message changed - Revise the translation + "person.page.orcid.sync-publications.mine": "Le mie pubblicazioni", + + // "person.page.orcid.sync-publications.my_selected": "Selected publications", + // TODO Source message changed - Revise the translation + "person.page.orcid.sync-publications.my_selected": "Pubblicazioni selezionate", + + // "person.page.orcid.sync-publications.disabled": "Disabled", + // TODO Source message changed - Revise the translation + "person.page.orcid.sync-publications.disabled": "Disabilitato", + + // "person.page.orcid.sync-queue.discard": "Discard the change and do not synchronize with the ORCID registry", + // TODO Source message changed - Revise the translation + "person.page.orcid.sync-queue.discard": "Scarta la modifica e non sincronizzarla con il registro ORCID.", + + // "person.page.orcid.sync-queue.discard.error": "The discarding of the ORCID queue record failed", + "person.page.orcid.sync-queue.discard.error": "L'eliminazione del record della coda ORCID non è riuscita", + + // "person.page.orcid.sync-queue.discard.success": "The ORCID queue record have been discarded successfully", + "person.page.orcid.sync-queue.discard.success": "Il record della coda ORCID è stato eliminato correttamente", + + // "person.page.orcid.sync-queue.empty-message": "The ORCID queue registry is empty", + "person.page.orcid.sync-queue.empty-message": "Il Registro di sistema della coda ORCID è vuoto", + + // "person.page.orcid.sync-queue.table.header.type": "Type", + // TODO Source message changed - Revise the translation + "person.page.orcid.sync-queue.table.header.type": "Tipo", + + // "person.page.orcid.sync-queue.table.header.description": "Description", + // TODO Source message changed - Revise the translation + "person.page.orcid.sync-queue.table.header.description": "Descrizione", + + // "person.page.orcid.sync-queue.table.header.action": "Action", + // TODO Source message changed - Revise the translation + "person.page.orcid.sync-queue.table.header.action": "Azione", + + // "person.page.orcid.sync-queue.description.affiliation": "Affiliations", + "person.page.orcid.sync-queue.description.affiliation": "Affiliazioni", + + // "person.page.orcid.sync-queue.description.country": "Country", + "person.page.orcid.sync-queue.description.country": "Paese", + + // "person.page.orcid.sync-queue.description.education": "Educations", + "person.page.orcid.sync-queue.description.education": "Istruzione", + + // "person.page.orcid.sync-queue.description.external_ids": "External ids", + "person.page.orcid.sync-queue.description.external_ids": "ID esterni", + + // "person.page.orcid.sync-queue.description.other_names": "Other names", + "person.page.orcid.sync-queue.description.other_names": "Altri nomi", + + // "person.page.orcid.sync-queue.description.qualification": "Qualifications", + "person.page.orcid.sync-queue.description.qualification": "Qualifiche", + + // "person.page.orcid.sync-queue.description.researcher_urls": "Researcher urls", + "person.page.orcid.sync-queue.description.researcher_urls": "URL ricercatore", + + // "person.page.orcid.sync-queue.description.keywords": "Keywords", + "person.page.orcid.sync-queue.description.keywords": "Parole chiave", + + // "person.page.orcid.sync-queue.tooltip.insert": "Add a new entry in the ORCID registry", + "person.page.orcid.sync-queue.tooltip.insert": "Aggiungere una nuova voce nel Registro ORCID", + + // "person.page.orcid.sync-queue.tooltip.update": "Update this entry on the ORCID registry", + "person.page.orcid.sync-queue.tooltip.update": "Aggiorna questa voce nel Registro ORCID", + + // "person.page.orcid.sync-queue.tooltip.delete": "Remove this entry from the ORCID registry", + "person.page.orcid.sync-queue.tooltip.delete": "Rimuovere questa voce dal Registro ORCID", + + // "person.page.orcid.sync-queue.tooltip.publication": "Publication", + "person.page.orcid.sync-queue.tooltip.publication": "Pubblicazione", + + // "person.page.orcid.sync-queue.tooltip.project": "Project", + "person.page.orcid.sync-queue.tooltip.project": "Progetto", + + // "person.page.orcid.sync-queue.tooltip.affiliation": "Affiliation", + "person.page.orcid.sync-queue.tooltip.affiliation": "Affiliazione", + + // "person.page.orcid.sync-queue.tooltip.education": "Education", + "person.page.orcid.sync-queue.tooltip.education": "Istruzione", + + // "person.page.orcid.sync-queue.tooltip.qualification": "Qualification", + "person.page.orcid.sync-queue.tooltip.qualification": "Qualificazione", + + // "person.page.orcid.sync-queue.tooltip.other_names": "Other name", + "person.page.orcid.sync-queue.tooltip.other_names": "Altro nome", + + // "person.page.orcid.sync-queue.tooltip.country": "Country", + "person.page.orcid.sync-queue.tooltip.country": "Paese", + + // "person.page.orcid.sync-queue.tooltip.keywords": "Keyword", + "person.page.orcid.sync-queue.tooltip.keywords": "Parola chiave", + + // "person.page.orcid.sync-queue.tooltip.external_ids": "External identifier", + "person.page.orcid.sync-queue.tooltip.external_ids": "Identificatore esterno", + + // "person.page.orcid.sync-queue.tooltip.researcher_urls": "Researcher url", + "person.page.orcid.sync-queue.tooltip.researcher_urls": "URL ricercatore", + + // "person.page.orcid.sync-queue.send": "Synchronize with ORCID registry", + // TODO Source message changed - Revise the translation + "person.page.orcid.sync-queue.send": "Sincronizza con il registro ORCID", + + // "person.page.orcid.sync-queue.send.unauthorized-error.title": "The submission to ORCID failed for missing authorizations.", + "person.page.orcid.sync-queue.send.unauthorized-error.title": "L'immissione a ORCID non è riuscita a causa di autorizzazioni mancanti.", + + // "person.page.orcid.sync-queue.send.unauthorized-error.content": "Click here to grant again the required permissions. If the problem persists, contact the administrator", + "person.page.orcid.sync-queue.send.unauthorized-error.content": "Clicca qui per ottenere di nuovo i permessi necessari. Se il problema persiste contatta l'amministratore", + + // "person.page.orcid.sync-queue.send.bad-request-error": "The submission to ORCID failed because the resource sent to ORCID registry is not valid", + "person.page.orcid.sync-queue.send.bad-request-error": "L'immissione a ORCID non è riuscito perché la risorsa inviata al Registro ORCID non è valida", + + // "person.page.orcid.sync-queue.send.error": "The submission to ORCID failed", + "person.page.orcid.sync-queue.send.error": "L'immissione a ORCID non è riuscita", + + // "person.page.orcid.sync-queue.send.conflict-error": "The submission to ORCID failed because the resource is already present on the ORCID registry", + "person.page.orcid.sync-queue.send.conflict-error": "L'immissione a ORCID non è riuscita perché la risorsa è già presente nel Registro ORCID", + + // "person.page.orcid.sync-queue.send.not-found-warning": "The resource does not exists anymore on the ORCID registry.", + "person.page.orcid.sync-queue.send.not-found-warning": "La risorsa non esiste più nel registro ORCID.", + + // "person.page.orcid.sync-queue.send.success": "The submission to ORCID was completed successfully", + "person.page.orcid.sync-queue.send.success": "L'immissione a ORCID è stata completata con successo", + + // "person.page.orcid.sync-queue.send.validation-error": "The data that you want to synchronize with ORCID is not valid", + "person.page.orcid.sync-queue.send.validation-error": "I dati che si desidera sincronizzare con ORCID non sono validi", + + // "person.page.orcid.sync-queue.send.validation-error.amount-currency.required": "The amount's currency is required", + "person.page.orcid.sync-queue.send.validation-error.amount-currency.required": "La valuta dell'importo è obbligatoria", + + // "person.page.orcid.sync-queue.send.validation-error.external-id.required": "The resource to be sent requires at least one identifier", + "person.page.orcid.sync-queue.send.validation-error.external-id.required": "La risorsa da inviare richiede almeno un identificatore", + + // "person.page.orcid.sync-queue.send.validation-error.title.required": "The title is required", + "person.page.orcid.sync-queue.send.validation-error.title.required": "Il titolo è obbligatorio", + + // "person.page.orcid.sync-queue.send.validation-error.type.required": "The dc.type is required", + // TODO Source message changed - Revise the translation + "person.page.orcid.sync-queue.send.validation-error.type.required": "Il tipo è obbligatorio", + + // "person.page.orcid.sync-queue.send.validation-error.start-date.required": "The start date is required", + "person.page.orcid.sync-queue.send.validation-error.start-date.required": "La data di inizio è obbligatoria", + + // "person.page.orcid.sync-queue.send.validation-error.funder.required": "The funder is required", + "person.page.orcid.sync-queue.send.validation-error.funder.required": "Il finanziatore è obbligatorio", + + // "person.page.orcid.sync-queue.send.validation-error.country.invalid": "Invalid 2 digits ISO 3166 country", + "person.page.orcid.sync-queue.send.validation-error.country.invalid": "Codice del paese non valido (formato a due cifre ISO 3166)", + + // "person.page.orcid.sync-queue.send.validation-error.organization.required": "The organization is required", + "person.page.orcid.sync-queue.send.validation-error.organization.required": "L'organizzazione è obbligatoria", + + // "person.page.orcid.sync-queue.send.validation-error.organization.name-required": "The organization's name is required", + "person.page.orcid.sync-queue.send.validation-error.organization.name-required": "Il nome dell'organizzazione è obbligatorio", + + // "person.page.orcid.sync-queue.send.validation-error.publication.date-invalid": "The publication date must be one year after 1900", + // TODO Source message changed - Revise the translation + "person.page.orcid.sync-queue.send.validation-error.publication.date-invalid": "La data di pubblicazione deve partire dal 1900", + + // "person.page.orcid.sync-queue.send.validation-error.organization.address-required": "The organization to be sent requires an address", + "person.page.orcid.sync-queue.send.validation-error.organization.address-required": "L'organizzazione da inviare richiede un indirizzo", + + // "person.page.orcid.sync-queue.send.validation-error.organization.city-required": "The address of the organization to be sent requires a city", + "person.page.orcid.sync-queue.send.validation-error.organization.city-required": "L'indirizzo dell'organizzazione da inviare richiede una città", + + // "person.page.orcid.sync-queue.send.validation-error.organization.country-required": "The address of the organization to be sent requires a valid 2 digits ISO 3166 country", + // TODO Source message changed - Revise the translation + "person.page.orcid.sync-queue.send.validation-error.organization.country-required": "L'indirizzo dell'organizzazione da inviare richiede un paese (inserire 2 cifre secondo l'ISO 3166)", + + // "person.page.orcid.sync-queue.send.validation-error.disambiguated-organization.required": "An identifier to disambiguate organizations is required. Supported ids are GRID, Ringgold, Legal Entity identifiers (LEIs) and Crossref Funder Registry identifiers", + "person.page.orcid.sync-queue.send.validation-error.disambiguated-organization.required": "È necessario un identificatore per disambiguare le organizzazioni. Gli ID supportati sono gli identificativi della persona giuridica (LEI), GRID, Ringgold e gli identificatori del Registro finanziatore Crossref", + + // "person.page.orcid.sync-queue.send.validation-error.disambiguated-organization.value-required": "The organization's identifiers requires a value", + "person.page.orcid.sync-queue.send.validation-error.disambiguated-organization.value-required": "Gli identificatori dell'organizzazione richiedono un valore", + + // "person.page.orcid.sync-queue.send.validation-error.disambiguation-source.required": "The organization's identifiers requires a source", + "person.page.orcid.sync-queue.send.validation-error.disambiguation-source.required": "Gli identificatori dell'organizzazione richiedono un'origine", + + // "person.page.orcid.sync-queue.send.validation-error.disambiguation-source.invalid": "The source of one of the organization identifiers is invalid. Supported sources are RINGGOLD, GRID, LEI and FUNDREF", + "person.page.orcid.sync-queue.send.validation-error.disambiguation-source.invalid": "L'origine di uno degli identificatori dell'organizzazione non è valida. Le fonti supportate sono RINGGOLD, GRID, LEI e FUNDREF", + + // "person.page.orcid.synchronization-mode": "Synchronization mode", + "person.page.orcid.synchronization-mode": "Sincronizzazione", + + // "person.page.orcid.synchronization-mode.batch": "Batch", + "person.page.orcid.synchronization-mode.batch": "Batch", + + // "person.page.orcid.synchronization-mode.label": "Synchronization mode", + "person.page.orcid.synchronization-mode.label": "Sincronizzazione", + + // "person.page.orcid.synchronization-mode-message": "Please select how you would like synchronization to ORCID to occur. The options include \"Manual\" (you must send your data to ORCID manually), or \"Batch\" (the system will send your data to ORCID via a scheduled script).", + // TODO Source message changed - Revise the translation + "person.page.orcid.synchronization-mode-message": "Abilitare la modalità di sincronizzazione \"manuale\" per disabilitare la sincronizzazione batch in modo da dover inviare manualmente i dati al Registro ORCID", + + // "person.page.orcid.synchronization-mode-funding-message": "Select whether to send your linked Project entities to your ORCID record's list of funding information.", + "person.page.orcid.synchronization-mode-funding-message": "Scegli se sincronizzare i tuoi Progetti con la lista delle informazioni dei progetti sul profilo ORCID.", + + // "person.page.orcid.synchronization-mode-publication-message": "Select whether to send your linked Publication entities to your ORCID record's list of works.", + "person.page.orcid.synchronization-mode-publication-message": "Scegli se sincronizzare le tue Pubblicazioni con la lista dei tuoi lavori sul profilo ORCID.", + + // "person.page.orcid.synchronization-mode-profile-message": "Select whether to send your biographical data or personal identifiers to your ORCID record.", + "person.page.orcid.synchronization-mode-profile-message": "Scegli se sincronizzare le tue informazioni bibliografiche o identificativi personali con il tuo profilo ORCID.", + + // "person.page.orcid.synchronization-settings-update.success": "The synchronization settings have been updated successfully", + "person.page.orcid.synchronization-settings-update.success": "Le impostazioni di sincronizzazione sono state aggiornate correttamente", + + // "person.page.orcid.synchronization-settings-update.error": "The update of the synchronization settings failed", + "person.page.orcid.synchronization-settings-update.error": "L'aggiornamento delle impostazioni di sincronizzazione non è riuscito", + + // "person.page.orcid.synchronization-mode.manual": "Manual", + "person.page.orcid.synchronization-mode.manual": "Manuale", + + // "person.page.orcid.scope.authenticate": "Get your ORCID iD", + "person.page.orcid.scope.authenticate": "Ottieni il tuo ORCID ID", + + // "person.page.orcid.scope.read-limited": "Read your information with visibility set to Trusted Parties", + "person.page.orcid.scope.read-limited": "Leggi le tue informazioni con visibilità impostata su Parti attendibili", + + // "person.page.orcid.scope.activities-update": "Add/update your research activities", + "person.page.orcid.scope.activities-update": "Aggiungi/aggiorna le tue attività di ricerca", + + // "person.page.orcid.scope.person-update": "Add/update other information about you", + "person.page.orcid.scope.person-update": "Aggiungi/aggiorna le tue informazioni", + + // "person.page.orcid.unlink.success": "The disconnection between the profile and the ORCID registry was successful", + "person.page.orcid.unlink.success": "La disconnessione tra il profilo e il registro ORCID è riuscita", + + // "person.page.orcid.unlink.error": "An error occurred while disconnecting between the profile and the ORCID registry. Try again", + "person.page.orcid.unlink.error": "Si è verificato un errore durante la disconnessione tra il profilo e il Registro di sistema ORCID. Riprova", + + // "person.orcid.sync.setting": "ORCID Synchronization settings", + "person.orcid.sync.setting": "Impostazioni di sincronizzazione ORCID", + + // "person.orcid.registry.queue": "ORCID Registry Queue", + "person.orcid.registry.queue": "Coda registro ORCID", + + // "person.orcid.registry.auth": "ORCID Authorizations", + "person.orcid.registry.auth": "Autorizzazioni ORCID", + // "home.recent-submissions.head": "Recent Submissions", + // TODO New key - Add a translation + "home.recent-submissions.head": "Recent Submissions", + + // "listable-notification-object.default-message": "This object couldn't be retrieved", + // TODO New key - Add a translation + "listable-notification-object.default-message": "This object couldn't be retrieved", + + + // "system-wide-alert-banner.retrieval.error": "Something went wrong retrieving the system-wide alert banner", + // TODO New key - Add a translation + "system-wide-alert-banner.retrieval.error": "Something went wrong retrieving the system-wide alert banner", + + // "system-wide-alert-banner.countdown.prefix": "In", + // TODO New key - Add a translation + "system-wide-alert-banner.countdown.prefix": "In", + + // "system-wide-alert-banner.countdown.days": "{{days}} day(s),", + // TODO New key - Add a translation + "system-wide-alert-banner.countdown.days": "{{days}} day(s),", + + // "system-wide-alert-banner.countdown.hours": "{{hours}} hour(s) and", + // TODO New key - Add a translation + "system-wide-alert-banner.countdown.hours": "{{hours}} hour(s) and", + + // "system-wide-alert-banner.countdown.minutes": "{{minutes}} minute(s):", + // TODO New key - Add a translation + "system-wide-alert-banner.countdown.minutes": "{{minutes}} minute(s):", + + + + // "menu.section.system-wide-alert": "System-wide Alert", + // TODO New key - Add a translation + "menu.section.system-wide-alert": "System-wide Alert", + + // "system-wide-alert.form.header": "System-wide Alert", + // TODO New key - Add a translation + "system-wide-alert.form.header": "System-wide Alert", + + // "system-wide-alert-form.retrieval.error": "Something went wrong retrieving the system-wide alert", + // TODO New key - Add a translation + "system-wide-alert-form.retrieval.error": "Something went wrong retrieving the system-wide alert", + + // "system-wide-alert.form.cancel": "Cancel", + // TODO New key - Add a translation + "system-wide-alert.form.cancel": "Cancel", + + // "system-wide-alert.form.save": "Save", + // TODO New key - Add a translation + "system-wide-alert.form.save": "Save", + + // "system-wide-alert.form.label.active": "ACTIVE", + // TODO New key - Add a translation + "system-wide-alert.form.label.active": "ACTIVE", + + // "system-wide-alert.form.label.inactive": "INACTIVE", + // TODO New key - Add a translation + "system-wide-alert.form.label.inactive": "INACTIVE", + + // "system-wide-alert.form.error.message": "The system wide alert must have a message", + // TODO New key - Add a translation + "system-wide-alert.form.error.message": "The system wide alert must have a message", + + // "system-wide-alert.form.label.message": "Alert message", + // TODO New key - Add a translation + "system-wide-alert.form.label.message": "Alert message", + + // "system-wide-alert.form.label.countdownTo.enable": "Enable a countdown timer", + // TODO New key - Add a translation + "system-wide-alert.form.label.countdownTo.enable": "Enable a countdown timer", + + // "system-wide-alert.form.label.countdownTo.hint": "Hint: Set a countdown timer. When enabled, a date can be set in the future and the system-wide alert banner will perform a countdown to the set date. When this timer ends, it will disappear from the alert. The server will NOT be automatically stopped.", + // TODO New key - Add a translation + "system-wide-alert.form.label.countdownTo.hint": "Hint: Set a countdown timer. When enabled, a date can be set in the future and the system-wide alert banner will perform a countdown to the set date. When this timer ends, it will disappear from the alert. The server will NOT be automatically stopped.", + + // "system-wide-alert.form.label.preview": "System-wide alert preview", + // TODO New key - Add a translation + "system-wide-alert.form.label.preview": "System-wide alert preview", + + // "system-wide-alert.form.update.success": "The system-wide alert was successfully updated", + // TODO New key - Add a translation + "system-wide-alert.form.update.success": "The system-wide alert was successfully updated", + + // "system-wide-alert.form.update.error": "Something went wrong when updating the system-wide alert", + // TODO New key - Add a translation + "system-wide-alert.form.update.error": "Something went wrong when updating the system-wide alert", + + // "system-wide-alert.form.create.success": "The system-wide alert was successfully created", + // TODO New key - Add a translation + "system-wide-alert.form.create.success": "The system-wide alert was successfully created", + + // "system-wide-alert.form.create.error": "Something went wrong when creating the system-wide alert", + // TODO New key - Add a translation + "system-wide-alert.form.create.error": "Something went wrong when creating the system-wide alert", + + // "admin.system-wide-alert.breadcrumbs": "System-wide Alerts", + // TODO New key - Add a translation + "admin.system-wide-alert.breadcrumbs": "System-wide Alerts", + + // "admin.system-wide-alert.title": "System-wide Alerts", + // TODO New key - Add a translation + "admin.system-wide-alert.title": "System-wide Alerts", + + +} diff --git a/src/config/default-app-config.ts b/src/config/default-app-config.ts index 77422e4eff..80420407c7 100644 --- a/src/config/default-app-config.ts +++ b/src/config/default-app-config.ts @@ -220,6 +220,7 @@ export class DefaultAppConfig implements AppConfig { { code: 'es', label: 'Español', active: true }, { code: 'fr', label: 'Français', active: true }, { code: 'gd', label: 'Gàidhlig', active: true }, + { code: 'it', label: 'Italiano', active: true }, { code: 'lv', label: 'Latviešu', active: true }, { code: 'hu', label: 'Magyar', active: true }, { code: 'nl', label: 'Nederlands', active: true }, diff --git a/src/themes/custom/app/home-page/top-level-community-list/top-level-community-list.component.html b/src/themes/custom/app/home-page/top-level-community-list/top-level-community-list.component.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/home-page/top-level-community-list/top-level-community-list.component.scss b/src/themes/custom/app/home-page/top-level-community-list/top-level-community-list.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/home-page/top-level-community-list/top-level-community-list.component.ts b/src/themes/custom/app/home-page/top-level-community-list/top-level-community-list.component.ts new file mode 100644 index 0000000000..b52cb1439c --- /dev/null +++ b/src/themes/custom/app/home-page/top-level-community-list/top-level-community-list.component.ts @@ -0,0 +1,13 @@ +import { Component } from '@angular/core'; +import { TopLevelCommunityListComponent as BaseComponent } from '../../../../../app/home-page/top-level-community-list/top-level-community-list.component'; + +@Component({ + selector: 'ds-top-level-community-list', + // styleUrls: ['./top-level-community-list.component.scss'], + styleUrls: ['../../../../../app/home-page/top-level-community-list/top-level-community-list.component.scss'], + // templateUrl: './top-level-community-list.component.html' + templateUrl: '../../../../../app/home-page/top-level-community-list/top-level-community-list.component.html' +}) + +export class TopLevelCommunityListComponent extends BaseComponent {} + diff --git a/src/themes/custom/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.html b/src/themes/custom/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.scss b/src/themes/custom/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.ts b/src/themes/custom/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.ts new file mode 100644 index 0000000000..eb623aca8b --- /dev/null +++ b/src/themes/custom/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; +import { AccessStatusBadgeComponent as BaseComponent } from 'src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component'; + +@Component({ + selector: 'ds-access-status-badge', + // styleUrls: ['./access-status-badge.component.scss'], + // templateUrl: './access-status-badge.component.html', + templateUrl: '../../../../../../../../app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.html', +}) +export class AccessStatusBadgeComponent extends BaseComponent { +} diff --git a/src/themes/custom/app/shared/object-collection/shared/badges/badges.component.html b/src/themes/custom/app/shared/object-collection/shared/badges/badges.component.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/object-collection/shared/badges/badges.component.scss b/src/themes/custom/app/shared/object-collection/shared/badges/badges.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/object-collection/shared/badges/badges.component.ts b/src/themes/custom/app/shared/object-collection/shared/badges/badges.component.ts new file mode 100644 index 0000000000..ecd1a9a43b --- /dev/null +++ b/src/themes/custom/app/shared/object-collection/shared/badges/badges.component.ts @@ -0,0 +1,12 @@ +import { Component } from '@angular/core'; +import { BadgesComponent as BaseComponent } from 'src/app/shared/object-collection/shared/badges/badges.component'; + +@Component({ + selector: 'ds-badges', + // styleUrls: ['./badges.component.scss'], + styleUrls: ['../../../../../../../app/shared/object-collection/shared/badges/badges.component.scss'], + // templateUrl: './badges.component.html', + templateUrl: '../../../../../../../app/shared/object-collection/shared/badges/badges.component.html', +}) +export class BadgesComponent extends BaseComponent { +} diff --git a/src/themes/custom/app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component.html b/src/themes/custom/app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component.scss b/src/themes/custom/app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component.ts b/src/themes/custom/app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component.ts new file mode 100644 index 0000000000..eadd9a9ad4 --- /dev/null +++ b/src/themes/custom/app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component.ts @@ -0,0 +1,12 @@ +import { Component } from '@angular/core'; +import { MyDSpaceStatusBadgeComponent as BaseComponent } from 'src/app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component'; + +@Component({ + selector: 'ds-my-dspace-status-badge', + // styleUrls: ['./my-dspace-status-badge.component.scss'], + styleUrls: ['../../../../../../../../app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component.scss'], + // templateUrl: './my-dspace-status-badge.component.html', + templateUrl: '../../../../../../../../app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component.html', +}) +export class MyDSpaceStatusBadgeComponent extends BaseComponent { +} diff --git a/src/themes/custom/app/shared/object-collection/shared/badges/status-badge/status-badge.component.html b/src/themes/custom/app/shared/object-collection/shared/badges/status-badge/status-badge.component.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/object-collection/shared/badges/status-badge/status-badge.component.scss b/src/themes/custom/app/shared/object-collection/shared/badges/status-badge/status-badge.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/object-collection/shared/badges/status-badge/status-badge.component.ts b/src/themes/custom/app/shared/object-collection/shared/badges/status-badge/status-badge.component.ts new file mode 100644 index 0000000000..8b0f6b27f5 --- /dev/null +++ b/src/themes/custom/app/shared/object-collection/shared/badges/status-badge/status-badge.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; +import { StatusBadgeComponent as BaseComponent } from 'src/app/shared/object-collection/shared/badges/status-badge/status-badge.component'; + +@Component({ + selector: 'ds-status-badge', + // styleUrls: ['./status-badge.component.scss'], + // templateUrl: './status-badge.component.html', + templateUrl: '../../../../../../../../app/shared/object-collection/shared/badges/status-badge/status-badge.component.html', +}) +export class StatusBadgeComponent extends BaseComponent { +} diff --git a/src/themes/custom/app/shared/object-collection/shared/badges/type-badge/type-badge.component.html b/src/themes/custom/app/shared/object-collection/shared/badges/type-badge/type-badge.component.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/object-collection/shared/badges/type-badge/type-badge.component.scss b/src/themes/custom/app/shared/object-collection/shared/badges/type-badge/type-badge.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/object-collection/shared/badges/type-badge/type-badge.component.ts b/src/themes/custom/app/shared/object-collection/shared/badges/type-badge/type-badge.component.ts new file mode 100644 index 0000000000..11e50b4d08 --- /dev/null +++ b/src/themes/custom/app/shared/object-collection/shared/badges/type-badge/type-badge.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; +import { TypeBadgeComponent as BaseComponent } from 'src/app/shared/object-collection/shared/badges/type-badge/type-badge.component'; + +@Component({ + selector: 'ds-type-badge', + // styleUrls: ['./type-badge.component.scss'], + // templateUrl: './type-badge.component.html', + templateUrl: '../../../../../../../../app/shared/object-collection/shared/badges/type-badge/type-badge.component.html', +}) +export class TypeBadgeComponent extends BaseComponent { +} diff --git a/src/themes/custom/app/shared/search/search-filters/search-filters.component.html b/src/themes/custom/app/shared/search/search-filters/search-filters.component.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/search/search-filters/search-filters.component.scss b/src/themes/custom/app/shared/search/search-filters/search-filters.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/search/search-filters/search-filters.component.ts b/src/themes/custom/app/shared/search/search-filters/search-filters.component.ts new file mode 100644 index 0000000000..ad3ec93383 --- /dev/null +++ b/src/themes/custom/app/shared/search/search-filters/search-filters.component.ts @@ -0,0 +1,32 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE_ATMIRE and NOTICE_ATMIRE files at the root of the source + * tree and available online at + * + * https://www.atmire.com/software-license/ + */ +import { Component } from '@angular/core'; +import { + SearchFiltersComponent as BaseComponent, +} from '../../../../../../app/shared/search/search-filters/search-filters.component'; +import { SEARCH_CONFIG_SERVICE } from '../../../../../../app/my-dspace-page/my-dspace-page.component'; +import { SearchConfigurationService } from '../../../../../../app/core/shared/search/search-configuration.service'; + + +@Component({ + selector: 'ds-search-filters', + // styleUrls: ['./search-filters.component.scss'], + styleUrls: ['../../../../../../app/shared/search/search-filters/search-filters.component.scss'], + // templateUrl: './search-filters.component.html', + templateUrl: '../../../../../../app/shared/search/search-filters/search-filters.component.html', + providers: [ + { + provide: SEARCH_CONFIG_SERVICE, + useClass: SearchConfigurationService + } + ] + +}) + +export class SearchFiltersComponent extends BaseComponent { +} diff --git a/src/themes/custom/app/shared/search/search-sidebar/search-sidebar.component.html b/src/themes/custom/app/shared/search/search-sidebar/search-sidebar.component.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/search/search-sidebar/search-sidebar.component.scss b/src/themes/custom/app/shared/search/search-sidebar/search-sidebar.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/search/search-sidebar/search-sidebar.component.ts b/src/themes/custom/app/shared/search/search-sidebar/search-sidebar.component.ts new file mode 100644 index 0000000000..aed31b91e2 --- /dev/null +++ b/src/themes/custom/app/shared/search/search-sidebar/search-sidebar.component.ts @@ -0,0 +1,32 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE_ATMIRE and NOTICE_ATMIRE files at the root of the source + * tree and available online at + * + * https://www.atmire.com/software-license/ + */ +import { Component } from '@angular/core'; +import { + SearchSidebarComponent as BaseComponent, +} from '../../../../../../app/shared/search/search-sidebar/search-sidebar.component'; +import { SEARCH_CONFIG_SERVICE } from '../../../../../../app/my-dspace-page/my-dspace-page.component'; +import { SearchConfigurationService } from '../../../../../../app/core/shared/search/search-configuration.service'; + + +@Component({ + selector: 'ds-search-sidebar', + // styleUrls: ['./search-sidebar.component.scss'], + styleUrls: ['../../../../../../app/shared/search/search-sidebar/search-sidebar.component.scss'], + // templateUrl: './search-sidebar.component.html', + templateUrl: '../../../../../../app/shared/search/search-sidebar/search-sidebar.component.html', + providers: [ + { + provide: SEARCH_CONFIG_SERVICE, + useClass: SearchConfigurationService + } + ] + +}) + +export class SearchSidebarComponent extends BaseComponent { +} diff --git a/src/themes/custom/eager-theme.module.ts b/src/themes/custom/eager-theme.module.ts index e53391fef3..7d7f5b3d8b 100644 --- a/src/themes/custom/eager-theme.module.ts +++ b/src/themes/custom/eager-theme.module.ts @@ -53,6 +53,8 @@ import { import { ItemSearchResultListElementComponent } from './app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component'; +import { TopLevelCommunityListComponent } from './app/home-page/top-level-community-list/top-level-community-list.component'; + /** * Add components that use a custom decorator to ENTRY_COMPONENTS as well as DECLARATIONS. @@ -72,6 +74,7 @@ const ENTRY_COMPONENTS = [ StartsWithTextComponent, PublicationSidebarSearchListElementComponent, ItemSearchResultListElementComponent, + TopLevelCommunityListComponent, ]; const DECLARATIONS = [ diff --git a/src/themes/custom/lazy-theme.module.ts b/src/themes/custom/lazy-theme.module.ts index b1290cc634..0c48224ab9 100644 --- a/src/themes/custom/lazy-theme.module.ts +++ b/src/themes/custom/lazy-theme.module.ts @@ -56,12 +56,8 @@ import { PageNotFoundComponent } from './app/pagenotfound/pagenotfound.component import { ObjectNotFoundComponent } from './app/lookup-by-id/objectnotfound/objectnotfound.component'; import { ForbiddenComponent } from './app/forbidden/forbidden.component'; import { PrivacyComponent } from './app/info/privacy/privacy.component'; -import { - CollectionStatisticsPageComponent -} from './app/statistics-page/collection-statistics-page/collection-statistics-page.component'; -import { - CommunityStatisticsPageComponent -} from './app/statistics-page/community-statistics-page/community-statistics-page.component'; +import { CollectionStatisticsPageComponent } from './app/statistics-page/collection-statistics-page/collection-statistics-page.component'; +import { CommunityStatisticsPageComponent } from './app/statistics-page/community-statistics-page/community-statistics-page.component'; import { ItemStatisticsPageComponent } from './app/statistics-page/item-statistics-page/item-statistics-page.component'; import { SiteStatisticsPageComponent } from './app/statistics-page/site-statistics-page/site-statistics-page.component'; import { CommunityPageComponent } from './app/community-page/community-page.component'; @@ -77,15 +73,10 @@ import { ProfilePageComponent } from './app/profile-page/profile-page.component' import { RegisterEmailComponent } from './app/register-page/register-email/register-email.component'; import { MyDSpacePageComponent } from './app/my-dspace-page/my-dspace-page.component'; import { SubmissionEditComponent } from './app/submission/edit/submission-edit.component'; -import { - SubmissionImportExternalComponent -} from './app/submission/import-external/submission-import-external.component'; +import { SubmissionImportExternalComponent } from './app/submission/import-external/submission-import-external.component'; import { SubmissionSubmitComponent } from './app/submission/submit/submission-submit.component'; -import { WorkflowItemDeleteComponent -} from './app/workflowitems-edit-page/workflow-item-delete/workflow-item-delete.component'; -import { - WorkflowItemSendBackComponent -} from './app/workflowitems-edit-page/workflow-item-send-back/workflow-item-send-back.component'; +import { WorkflowItemDeleteComponent } from './app/workflowitems-edit-page/workflow-item-delete/workflow-item-delete.component'; +import { WorkflowItemSendBackComponent } from './app/workflowitems-edit-page/workflow-item-send-back/workflow-item-send-back.component'; import { BreadcrumbsComponent } from './app/breadcrumbs/breadcrumbs.component'; import { FeedbackComponent } from './app/info/feedback/feedback.component'; import { CommunityListComponent } from './app/community-list-page/community-list/community-list.component'; @@ -103,12 +94,8 @@ import { SearchResultsComponent } from './app/shared/search/search-results/searc import { AdminSidebarComponent } from './app/admin/admin-sidebar/admin-sidebar.component'; import { ComcolPageBrowseByComponent } from './app/shared/comcol-page-browse-by/comcol-page-browse-by.component'; import { SearchSettingsComponent } from './app/shared/search/search-settings/search-settings.component'; -import { - CommunityPageSubCommunityListComponent -} from './app/community-page/sub-community-list/community-page-sub-community-list.component'; -import { - CommunityPageSubCollectionListComponent -} from './app/community-page/sub-collection-list/community-page-sub-collection-list.component'; +import { CommunityPageSubCommunityListComponent } from './app/community-page/sub-community-list/community-page-sub-community-list.component'; +import { CommunityPageSubCollectionListComponent } from './app/community-page/sub-collection-list/community-page-sub-collection-list.component'; import { ObjectListComponent } from './app/shared/object-list/object-list.component'; import { BrowseByMetadataPageComponent } from './app/browse-by/browse-by-metadata-page/browse-by-metadata-page.component'; @@ -121,6 +108,13 @@ import { SharedBrowseByModule } from '../../app/shared/browse-by/shared-browse-b import { ResultsBackButtonModule } from '../../app/shared/results-back-button/results-back-button.module'; import { ItemVersionsModule } from '../../app/item-page/versions/item-versions.module'; import { ItemSharedModule } from '../../app/item-page/item-shared.module'; +import { SearchFiltersComponent } from './app/shared/search/search-filters/search-filters.component'; +import { SearchSidebarComponent } from './app/shared/search/search-sidebar/search-sidebar.component'; +import { MyDSpaceStatusBadgeComponent } from './app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component'; +import { TypeBadgeComponent } from './app/shared/object-collection/shared/badges/type-badge/type-badge.component'; +import { StatusBadgeComponent } from './app/shared/object-collection/shared/badges/status-badge/status-badge.component'; +import { BadgesComponent } from './app/shared/object-collection/shared/badges/badges.component'; +import { AccessStatusBadgeComponent } from './app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component'; import { ResultsBackButtonComponent } from './app/shared/results-back-button/results-back-button.component'; import { DsoEditMetadataComponent } from './app/dso-shared/dso-edit-metadata/dso-edit-metadata.component'; import { DsoSharedModule } from '../../app/dso-shared/dso-shared.module'; @@ -201,6 +195,13 @@ const DECLARATIONS = [ BrowseByDatePageComponent, BrowseByTitlePageComponent, ExternalSourceEntryImportModalComponent, + SearchFiltersComponent, + SearchSidebarComponent, + BadgesComponent, + StatusBadgeComponent, + TypeBadgeComponent, + MyDSpaceStatusBadgeComponent, + AccessStatusBadgeComponent, ResultsBackButtonComponent, DsoEditMetadataComponent, ItemAlertsComponent,
{{dso.shortDescription}}
{{dso.name}} - +
{{dso.name}}