From 884aa0743096b4bfe946679aa48ad3f5727575df Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Fri, 23 Jun 2023 13:04:19 -0500 Subject: [PATCH 001/183] Update version tag for development of next release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 719b13b23b..06d7063240 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dspace-angular", - "version": "7.6.0", + "version": "7.6.1-next", "scripts": { "ng": "ng", "config:watch": "nodemon", -- GitLab From ae6b183faec9cda0d2932143a52e14ef94bd945c Mon Sep 17 00:00:00 2001 From: Art Lowel <art.lowel@gmail.com> Date: Wed, 14 Jun 2023 18:51:42 +0200 Subject: [PATCH 002/183] 103236: fix issue where setStaleByHrefSubtring wouldn't emit after all requests were stale --- src/app/core/data/request.service.ts | 36 +++++++++++++++++++++------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/src/app/core/data/request.service.ts b/src/app/core/data/request.service.ts index 2d5acb2cb3..3b7ee80ffb 100644 --- a/src/app/core/data/request.service.ts +++ b/src/app/core/data/request.service.ts @@ -2,8 +2,8 @@ import { Injectable } from '@angular/core'; import { HttpHeaders } from '@angular/common/http'; import { createSelector, MemoizedSelector, select, Store } from '@ngrx/store'; -import { Observable } from 'rxjs'; -import { filter, map, take, tap } from 'rxjs/operators'; +import { Observable, from as observableFrom } from 'rxjs'; +import { filter, find, map, mergeMap, switchMap, take, tap, toArray } from 'rxjs/operators'; import { cloneDeep } from 'lodash'; import { hasValue, isEmpty, isNotEmpty, hasNoValue } from '../../shared/empty.util'; import { ObjectCacheEntry } from '../cache/object-cache.reducer'; @@ -292,22 +292,42 @@ export class RequestService { * Set all requests that match (part of) the href to stale * * @param href A substring of the request(s) href - * @return Returns an observable emitting whether or not the cache is removed + * @return Returns an observable emitting when those requests are all stale */ setStaleByHrefSubstring(href: string): Observable<boolean> { - this.store.pipe( + const requestUUIDs$ = this.store.pipe( select(uuidsFromHrefSubstringSelector(requestIndexSelector, href)), take(1) - ).subscribe((uuids: string[]) => { + ); + requestUUIDs$.subscribe((uuids: string[]) => { for (const uuid of uuids) { this.store.dispatch(new RequestStaleAction(uuid)); } }); this.requestsOnTheirWayToTheStore = this.requestsOnTheirWayToTheStore.filter((reqHref: string) => reqHref.indexOf(href) < 0); - return this.store.pipe( - select(uuidsFromHrefSubstringSelector(requestIndexSelector, href)), - map((uuids) => isEmpty(uuids)) + // emit true after all requests are stale + return requestUUIDs$.pipe( + switchMap((uuids: string[]) => { + if (isEmpty(uuids)) { + // if there were no matching requests, emit true immediately + return [true]; + } else { + // otherwise emit all request uuids in order + return observableFrom(uuids).pipe( + // retrieve the RequestEntry for each uuid + mergeMap((uuid: string) => this.getByUUID(uuid)), + // check whether it is undefined or stale + map((request: RequestEntry) => hasNoValue(request) || isStale(request.state)), + // if it is, complete + find((stale: boolean) => stale === true), + // after all observables above are completed, emit them as a single array + toArray(), + // when the array comes in, emit true + map(() => true) + ); + } + }) ); } -- GitLab From 02a20c8862ca4d93919ca07e900d70a722ebbb5d Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Fri, 30 Jun 2023 16:56:37 +0200 Subject: [PATCH 003/183] 103236: Added tests for setStaleByHrefSubstring --- src/app/core/data/request.service.spec.ts | 46 ++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/src/app/core/data/request.service.spec.ts b/src/app/core/data/request.service.spec.ts index fe35d840d7..4493c61a69 100644 --- a/src/app/core/data/request.service.spec.ts +++ b/src/app/core/data/request.service.spec.ts @@ -1,6 +1,6 @@ import { Store, StoreModule } from '@ngrx/store'; import { cold, getTestScheduler } from 'jasmine-marbles'; -import { EMPTY, of as observableOf } from 'rxjs'; +import { EMPTY, Observable, of as observableOf } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { getMockObjectCacheService } from '../../shared/mocks/object-cache.service.mock'; @@ -625,4 +625,48 @@ describe('RequestService', () => { expect(done$).toBeObservable(cold('-----(t|)', { t: true })); })); }); + + describe('setStaleByHrefSubstring', () => { + let dispatchSpy: jasmine.Spy; + let getByUUIDSpy: jasmine.Spy; + + beforeEach(() => { + dispatchSpy = spyOn(store, 'dispatch'); + getByUUIDSpy = spyOn(service, 'getByUUID').and.callThrough(); + }); + + describe('with an empty/no matching requests in the state', () => { + it('should return true', () => { + const done$: Observable<boolean> = service.setStaleByHrefSubstring('https://rest.api/endpoint/selfLink'); + expect(done$).toBeObservable(cold('(a|)', { a: true })); + }); + }); + + describe('with a matching request in the state', () => { + beforeEach(() => { + const state = Object.assign({}, initialState, { + core: Object.assign({}, initialState.core, { + 'index': { + 'get-request/href-to-uuid': { + 'https://rest.api/endpoint/selfLink': '5f2a0d2a-effa-4d54-bd54-5663b960f9eb' + } + } + }) + }); + mockStore.setState(state); + }); + + it('should return an Observable that emits true as soon as the request is stale', () => { + dispatchSpy.and.callFake(() => { /* empty */ }); // don't actually set as stale + getByUUIDSpy.and.returnValue(cold('a-b--c--d-', { // but fake the state in the cache + a: { state: RequestEntryState.ResponsePending }, + b: { state: RequestEntryState.Success }, + c: { state: RequestEntryState.SuccessStale }, + d: { state: RequestEntryState.Error }, + })); + const done$: Observable<boolean> = service.setStaleByHrefSubstring('https://rest.api/endpoint/selfLink'); + expect(done$).toBeObservable(cold('-----(a|)', { a: true })); + }); + }); + }); }); -- GitLab From b2b1782cd8505cf079782811bab4238e5cc0a359 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Fri, 30 Jun 2023 20:23:51 +0200 Subject: [PATCH 004/183] Hide entity field in collection form when entities aren't initialized --- .../collection-form/collection-form.component.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/app/collection-page/collection-form/collection-form.component.ts b/src/app/collection-page/collection-form/collection-form.component.ts index 23698de84e..b52d282f63 100644 --- a/src/app/collection-page/collection-form/collection-form.component.ts +++ b/src/app/collection-page/collection-form/collection-form.component.ts @@ -79,9 +79,8 @@ export class CollectionFormComponent extends ComColFormComponent<Collection> imp // retrieve all entity types to populate the dropdowns selection entities$.subscribe((entityTypes: ItemType[]) => { - entityTypes - .filter((type: ItemType) => type.label !== NONE_ENTITY_TYPE) - .forEach((type: ItemType, index: number) => { + entityTypes = entityTypes.filter((type: ItemType) => type.label !== NONE_ENTITY_TYPE); + entityTypes.forEach((type: ItemType, index: number) => { this.entityTypeSelection.add({ disabled: false, label: type.label, @@ -93,7 +92,7 @@ export class CollectionFormComponent extends ComColFormComponent<Collection> imp } }); - this.formModel = [...collectionFormModels, this.entityTypeSelection]; + this.formModel = entityTypes.length === 0 ? collectionFormModels : [...collectionFormModels, this.entityTypeSelection]; super.ngOnInit(); }); -- GitLab From cf777268666587d5980408d7bc3872260606ae71 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Fri, 30 Jun 2023 22:41:07 +0200 Subject: [PATCH 005/183] Fix enter not submitting collection form correctly Fixed it for communities, collections, ePersons & groups --- .../eperson-form/eperson-form.component.html | 10 +++++----- .../group-form/group-form.component.html | 4 ++-- .../comcol-form/comcol-form.component.html | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.html b/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.html index e9cc48aee3..156f2e776d 100644 --- a/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.html +++ b/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.html @@ -15,23 +15,23 @@ [displayCancel]="false" (submitForm)="onSubmit()"> <div before class="btn-group"> - <button (click)="onCancel()" + <button (click)="onCancel()" type="button" class="btn btn-outline-secondary"><i class="fas fa-arrow-left"></i> {{messagePrefix + '.return' | translate}}</button> </div> <div between class="btn-group"> - <button class="btn btn-primary" [disabled]="!(canReset$ | async)" (click)="resetPassword()"> + <button class="btn btn-primary" [disabled]="!(canReset$ | async)" type="button" (click)="resetPassword()"> <i class="fa fa-key"></i> {{'admin.access-control.epeople.actions.reset' | translate}} </button> </div> <div between class="btn-group ml-1"> - <button *ngIf="!isImpersonated" class="btn btn-primary" [ngClass]="{'d-none' : !(canImpersonate$ | async)}" (click)="impersonate()"> + <button *ngIf="!isImpersonated" class="btn btn-primary" type="button" [ngClass]="{'d-none' : !(canImpersonate$ | async)}" (click)="impersonate()"> <i class="fa fa-user-secret"></i> {{'admin.access-control.epeople.actions.impersonate' | translate}} </button> - <button *ngIf="isImpersonated" class="btn btn-primary" (click)="stopImpersonating()"> + <button *ngIf="isImpersonated" class="btn btn-primary" type="button" (click)="stopImpersonating()"> <i class="fa fa-user-secret"></i> {{'admin.access-control.epeople.actions.stop-impersonating' | translate}} </button> </div> - <button after class="btn btn-danger delete-button" [disabled]="!(canDelete$ | async)" (click)="delete()"> + <button after class="btn btn-danger delete-button" type="button" [disabled]="!(canDelete$ | async)" (click)="delete()"> <i class="fas fa-trash"></i> {{'admin.access-control.epeople.actions.delete' | translate}} </button> </ds-form> diff --git a/src/app/access-control/group-registry/group-form/group-form.component.html b/src/app/access-control/group-registry/group-form/group-form.component.html index 0fc5a574b7..e50a479090 100644 --- a/src/app/access-control/group-registry/group-form/group-form.component.html +++ b/src/app/access-control/group-registry/group-form/group-form.component.html @@ -25,12 +25,12 @@ [displayCancel]="false" (submitForm)="onSubmit()"> <div before class="btn-group"> - <button (click)="onCancel()" + <button (click)="onCancel()" type="button" class="btn btn-outline-secondary"><i class="fas fa-arrow-left"></i> {{messagePrefix + '.return' | translate}}</button> </div> <div after *ngIf="groupBeingEdited != null" class="btn-group"> <button class="btn btn-danger delete-button" [disabled]="!(canEdit$ | async) || groupBeingEdited.permanent" - (click)="delete()"> + (click)="delete()" type="button"> <i class="fa fa-trash"></i> {{ messagePrefix + '.actions.delete' | translate}} </button> </div> diff --git a/src/app/shared/comcol/comcol-forms/comcol-form/comcol-form.component.html b/src/app/shared/comcol/comcol-forms/comcol-form/comcol-form.component.html index 5d7b092f74..b7b3d344b1 100644 --- a/src/app/shared/comcol/comcol-forms/comcol-form/comcol-form.component.html +++ b/src/app/shared/comcol/comcol-forms/comcol-form/comcol-form.component.html @@ -42,7 +42,7 @@ [formModel]="formModel" [displayCancel]="false" (submitForm)="onSubmit()"> - <button before (click)="back.emit()" class="btn btn-outline-secondary"> + <button before (click)="back.emit()" class="btn btn-outline-secondary" type="button"> <i class="fas fa-arrow-left"></i> {{ type.value + '.edit.return' | translate }} </button> </ds-form> -- GitLab From 3a48ed390b832c1a0a953284f6449678b2e8d361 Mon Sep 17 00:00:00 2001 From: Alan Orth <alan.orth@gmail.com> Date: Wed, 5 Jul 2023 18:03:25 +0300 Subject: [PATCH 006/183] src/app: fix path to deny-request-copy component The themed-deny-request-copy.component erroneously includes the cus- tom theme's deny-request-copy component instead of its own. Closes: https://github.com/DSpace/dspace-angular/issues/2351 --- .../deny-request-copy/themed-deny-request-copy.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/request-copy/deny-request-copy/themed-deny-request-copy.component.ts b/src/app/request-copy/deny-request-copy/themed-deny-request-copy.component.ts index 664e4c541b..1539d49622 100644 --- a/src/app/request-copy/deny-request-copy/themed-deny-request-copy.component.ts +++ b/src/app/request-copy/deny-request-copy/themed-deny-request-copy.component.ts @@ -1,7 +1,7 @@ import { Component } from '@angular/core'; import { ThemedComponent } from 'src/app/shared/theme-support/themed.component'; -import { DenyRequestCopyComponent } from 'src/themes/custom/app/request-copy/deny-request-copy/deny-request-copy.component'; +import { DenyRequestCopyComponent } from './deny-request-copy.component'; /** * Themed wrapper for deny-request-copy.component -- GitLab From 7bf4da55cf8cb7017ce5c1b096e14df3d69eeff8 Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Fri, 7 Jul 2023 11:56:47 -0500 Subject: [PATCH 007/183] Enable Pull Request Opened action to assign PRs to their creator --- .../pull_request_opened.yml | 26 ------------------- .github/workflows/pull_request_opened.yml | 24 +++++++++++++++++ 2 files changed, 24 insertions(+), 26 deletions(-) delete mode 100644 .github/disabled-workflows/pull_request_opened.yml create mode 100644 .github/workflows/pull_request_opened.yml diff --git a/.github/disabled-workflows/pull_request_opened.yml b/.github/disabled-workflows/pull_request_opened.yml deleted file mode 100644 index 0dc718c0b9..0000000000 --- a/.github/disabled-workflows/pull_request_opened.yml +++ /dev/null @@ -1,26 +0,0 @@ -# This workflow runs whenever a new pull request is created -# TEMPORARILY DISABLED. Unfortunately this doesn't work for PRs created from forked repositories (which is how we tend to create PRs). -# There is no known workaround yet. See https://github.community/t/how-to-use-github-token-for-prs-from-forks/16818 -name: Pull Request opened - -# Only run for newly opened PRs against the "main" branch -on: - pull_request: - types: [opened] - branches: - - main - -jobs: - automation: - runs-on: ubuntu-latest - steps: - # Assign the PR to whomever created it. This is useful for visualizing assignments on project boards - # See https://github.com/marketplace/actions/pull-request-assigner - - name: Assign PR to creator - uses: thomaseizinger/assign-pr-creator-action@v1.0.0 - # Note, this authentication token is created automatically - # See: https://docs.github.com/en/actions/configuring-and-managing-workflows/authenticating-with-the-github_token - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - # Ignore errors. It is possible the PR was created by someone who cannot be assigned - continue-on-error: true diff --git a/.github/workflows/pull_request_opened.yml b/.github/workflows/pull_request_opened.yml new file mode 100644 index 0000000000..9b61af72d1 --- /dev/null +++ b/.github/workflows/pull_request_opened.yml @@ -0,0 +1,24 @@ +# This workflow runs whenever a new pull request is created +name: Pull Request opened + +# Only run for newly opened PRs against the "main" or maintenance branches +# We allow this to run for `pull_request_target` so that github secrets are available +# (This is required to assign a PR back to the creator when the PR comes from a forked repo) +on: + pull_request_target: + types: [ opened ] + branches: + - main + - 'dspace-**' + +permissions: + pull-requests: write + +jobs: + automation: + runs-on: ubuntu-latest + steps: + # Assign the PR to whomever created it. This is useful for visualizing assignments on project boards + # See https://github.com/toshimaru/auto-author-assign + - name: Assign PR to creator + uses: toshimaru/auto-author-assign@v1.6.2 -- GitLab From a484379f69af39a6b1b83aaa310f95b47671c1f9 Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Fri, 7 Jul 2023 11:56:54 -0500 Subject: [PATCH 008/183] Ensure codescan and label_merge_conflicts run on maintenance branches --- .github/workflows/codescan.yml | 10 +++++++--- .github/workflows/label_merge_conflicts.yml | 7 ++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/.github/workflows/codescan.yml b/.github/workflows/codescan.yml index 35a2e2d24a..8b415296c7 100644 --- a/.github/workflows/codescan.yml +++ b/.github/workflows/codescan.yml @@ -5,12 +5,16 @@ # because CodeQL requires a fresh build with all tests *disabled*. name: "Code Scanning" -# Run this code scan for all pushes / PRs to main branch. Also run once a week. +# Run this code scan for all pushes / PRs to main or maintenance branches. Also run once a week. on: push: - branches: [ main ] + branches: + - main + - 'dspace-**' pull_request: - branches: [ main ] + branches: + - main + - 'dspace-**' # Don't run if PR is only updating static documentation paths-ignore: - '**/*.md' diff --git a/.github/workflows/label_merge_conflicts.yml b/.github/workflows/label_merge_conflicts.yml index c1396b6f45..7ea3327741 100644 --- a/.github/workflows/label_merge_conflicts.yml +++ b/.github/workflows/label_merge_conflicts.yml @@ -1,11 +1,12 @@ # This workflow checks open PRs for merge conflicts and labels them when conflicts are found name: Check for merge conflicts -# Run whenever the "main" branch is updated -# NOTE: This means merge conflicts are only checked for when a PR is merged to main. +# Run this for all pushes (i.e. merges) to 'main' or maintenance branches on: push: - branches: [ main ] + branches: + - main + - 'dspace-**' # So that the `conflict_label_name` is removed if conflicts are resolved, # we allow this to run for `pull_request_target` so that github secrets are available. pull_request_target: -- GitLab From 1809f0585c833631f5f36d0e45c47fc9e01000cd Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Fri, 7 Jul 2023 12:05:56 -0500 Subject: [PATCH 009/183] Split docker images into separate jobs to run in parallel. Ensure 'main' codebase is tagged as 'latest' --- .github/workflows/docker.yml | 84 ++++++++++++++++++++++++------------ 1 file changed, 57 insertions(+), 27 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 9a2c838d83..0c36d5af98 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -15,29 +15,35 @@ on: permissions: contents: read # to fetch code (actions/checkout) + +env: + # Define tags to use for Docker images based on Git tags/branches (for docker/metadata-action) + # For a new commit on default branch (main), use the literal tag 'latest' on Docker image. + # For a new commit on other branches, use the branch name as the tag for Docker image. + # For a new tag, copy that tag name as the tag for Docker image. + IMAGE_TAGS: | + type=raw,value=latest,enable=${{ endsWith(github.ref, github.event.repository.default_branch) }} + type=ref,event=branch,enable=${{ !endsWith(github.ref, github.event.repository.default_branch) }} + type=ref,event=tag + # Define default tag "flavor" for docker/metadata-action per + # https://github.com/docker/metadata-action#flavor-input + # We manage the 'latest' tag ourselves to the 'main' branch (see settings above) + TAGS_FLAVOR: | + latest=false + # Architectures / Platforms for which we will build Docker images + # If this is a PR, we ONLY build for AMD64. For PRs we only do a sanity check test to ensure Docker builds work. + # If this is NOT a PR (e.g. a tag or merge commit), also build for ARM64. + PLATFORMS: linux/amd64${{ github.event_name != 'pull_request' && ', linux/arm64' || '' }} + + jobs: - docker: + ############################################### + # Build/Push the 'dspace/dspace-angular' image + ############################################### + dspace-angular: # Ensure this job never runs on forked repos. It's only executed for 'dspace/dspace-angular' if: github.repository == 'dspace/dspace-angular' runs-on: ubuntu-latest - env: - # Define tags to use for Docker images based on Git tags/branches (for docker/metadata-action) - # For a new commit on default branch (main), use the literal tag 'dspace-7_x' on Docker image. - # For a new commit on other branches, use the branch name as the tag for Docker image. - # For a new tag, copy that tag name as the tag for Docker image. - IMAGE_TAGS: | - type=raw,value=dspace-7_x,enable=${{ endsWith(github.ref, github.event.repository.default_branch) }} - type=ref,event=branch,enable=${{ !endsWith(github.ref, github.event.repository.default_branch) }} - type=ref,event=tag - # Define default tag "flavor" for docker/metadata-action per - # https://github.com/docker/metadata-action#flavor-input - # We turn off 'latest' tag by default. - TAGS_FLAVOR: | - latest=false - # Architectures / Platforms for which we will build Docker images - # If this is a PR, we ONLY build for AMD64. For PRs we only do a sanity check test to ensure Docker builds work. - # If this is NOT a PR (e.g. a tag or merge commit), also build for ARM64. - PLATFORMS: linux/amd64${{ github.event_name != 'pull_request' && ', linux/arm64' || '' }} steps: # https://github.com/actions/checkout @@ -61,9 +67,6 @@ jobs: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_ACCESS_TOKEN }} - ############################################### - # Build/Push the 'dspace/dspace-angular' image - ############################################### # https://github.com/docker/metadata-action # Get Metadata for docker_build step below - name: Sync metadata (tags, labels) from GitHub to Docker for 'dspace-angular' image @@ -77,7 +80,7 @@ jobs: # https://github.com/docker/build-push-action - name: Build and push 'dspace-angular' image id: docker_build - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v4 with: context: . file: ./Dockerfile @@ -89,9 +92,36 @@ jobs: tags: ${{ steps.meta_build.outputs.tags }} labels: ${{ steps.meta_build.outputs.labels }} - ##################################################### - # Build/Push the 'dspace/dspace-angular' image ('-dist' tag) - ##################################################### + ############################################################# + # Build/Push the 'dspace/dspace-angular' image ('-dist' tag) + ############################################################# + dspace-angular-dist: + # Ensure this job never runs on forked repos. It's only executed for 'dspace/dspace-angular' + if: github.repository == 'dspace/dspace-angular' + runs-on: ubuntu-latest + + steps: + # https://github.com/actions/checkout + - name: Checkout codebase + uses: actions/checkout@v3 + + # https://github.com/docker/setup-buildx-action + - name: Setup Docker Buildx + uses: docker/setup-buildx-action@v2 + + # https://github.com/docker/setup-qemu-action + - name: Set up QEMU emulation to build for multiple architectures + uses: docker/setup-qemu-action@v2 + + # https://github.com/docker/login-action + - name: Login to DockerHub + # Only login if not a PR, as PRs only trigger a Docker build and not a push + if: github.event_name != 'pull_request' + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_ACCESS_TOKEN }} + # https://github.com/docker/metadata-action # Get Metadata for docker_build_dist step below - name: Sync metadata (tags, labels) from GitHub to Docker for 'dspace-angular-dist' image @@ -107,7 +137,7 @@ jobs: - name: Build and push 'dspace-angular-dist' image id: docker_build_dist - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v4 with: context: . file: ./Dockerfile.dist -- GitLab From 648925f3e1c0a51fc3eb61b7257e7a44ea57fee6 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Wed, 19 Jul 2023 14:01:41 +0200 Subject: [PATCH 010/183] 104312: DsDynamicLookupRelationExternalSourceTabComponent should have the form value already filled in the search input --- .../dynamic-lookup-relation-modal.component.html | 1 + ...ookup-relation-external-source-tab.component.ts | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/dynamic-lookup-relation-modal.component.html b/src/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/dynamic-lookup-relation-modal.component.html index f95cd98c65..4c635b931f 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/dynamic-lookup-relation-modal.component.html +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/dynamic-lookup-relation-modal.component.html @@ -42,6 +42,7 @@ [collection]="collection" [relationship]="relationshipOptions" [context]="context" + [query]="query" [externalSource]="source" (importedObject)="imported($event)" class="d-block pt-3"> diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/external-source-tab/dynamic-lookup-relation-external-source-tab.component.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/external-source-tab/dynamic-lookup-relation-external-source-tab.component.ts index ca2535cb91..ef646c28eb 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/external-source-tab/dynamic-lookup-relation-external-source-tab.component.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/external-source-tab/dynamic-lookup-relation-external-source-tab.component.ts @@ -74,6 +74,12 @@ export class DsDynamicLookupRelationExternalSourceTabComponent implements OnInit * The context to displaying lists for */ @Input() context: Context; + + /** + * The search query + */ + @Input() query: string; + @Input() repeatable: boolean; /** * Emit an event when an object has been imported (or selected from similar local entries) @@ -147,8 +153,12 @@ export class DsDynamicLookupRelationExternalSourceTabComponent implements OnInit this.resetRoute(); this.entriesRD$ = this.searchConfigService.paginatedSearchOptions.pipe( - switchMap((searchOptions: PaginatedSearchOptions) => - this.externalSourceService.getExternalSourceEntries(this.externalSource.id, searchOptions).pipe(startWith(undefined))) + switchMap((searchOptions: PaginatedSearchOptions) => { + if (searchOptions.query === '') { + searchOptions.query = this.query; + } + return this.externalSourceService.getExternalSourceEntries(this.externalSource.id, searchOptions).pipe(startWith(undefined)); + }) ); this.currentPagination$ = this.paginationService.getCurrentPagination(this.searchConfigService.paginationID, this.initialPagination); this.importConfig = { -- GitLab From 2a35180a1b2c81ca84e3fe7d9c4a84567f567a6a Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Fri, 21 Jul 2023 15:03:46 +0200 Subject: [PATCH 011/183] Created separate pages for edit & create EPersons --- .../access-control-routing-paths.ts | 10 ++ .../access-control-routing.module.ts | 25 ++- .../epeople-registry.component.html | 141 ++++++++------- .../epeople-registry.component.spec.ts | 30 ---- .../epeople-registry.component.ts | 64 +------ .../eperson-form/eperson-form.component.html | 161 +++++++++--------- .../eperson-form.component.spec.ts | 89 +++++----- .../eperson-form/eperson-form.component.ts | 23 +-- .../eperson-resolver.service.ts | 53 ++++++ src/assets/i18n/en.json5 | 8 + 10 files changed, 307 insertions(+), 297 deletions(-) create mode 100644 src/app/access-control/epeople-registry/eperson-resolver.service.ts diff --git a/src/app/access-control/access-control-routing-paths.ts b/src/app/access-control/access-control-routing-paths.ts index 259aa311e7..c3c42b3155 100644 --- a/src/app/access-control/access-control-routing-paths.ts +++ b/src/app/access-control/access-control-routing-paths.ts @@ -1,6 +1,16 @@ import { URLCombiner } from '../core/url-combiner/url-combiner'; import { getAccessControlModuleRoute } from '../app-routing-paths'; +export const EPERSON_PATH = 'epeople'; + +export function getEPersonsRoute(): string { + return new URLCombiner(getAccessControlModuleRoute(), EPERSON_PATH).toString(); +} + +export function getEPersonEditRoute(id: string): string { + return new URLCombiner(getEPersonsRoute(), id).toString(); +} + export const GROUP_EDIT_PATH = 'groups'; export function getGroupsRoute() { diff --git a/src/app/access-control/access-control-routing.module.ts b/src/app/access-control/access-control-routing.module.ts index 6f6de6cb26..a4082d19e2 100644 --- a/src/app/access-control/access-control-routing.module.ts +++ b/src/app/access-control/access-control-routing.module.ts @@ -3,7 +3,7 @@ import { RouterModule } from '@angular/router'; import { EPeopleRegistryComponent } from './epeople-registry/epeople-registry.component'; import { GroupFormComponent } from './group-registry/group-form/group-form.component'; import { GroupsRegistryComponent } from './group-registry/groups-registry.component'; -import { GROUP_EDIT_PATH } from './access-control-routing-paths'; +import { EPERSON_PATH, GROUP_EDIT_PATH } from './access-control-routing-paths'; import { I18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver'; import { GroupPageGuard } from './group-registry/group-page.guard'; import { @@ -13,12 +13,14 @@ import { SiteAdministratorGuard } from '../core/data/feature-authorization/feature-authorization-guard/site-administrator.guard'; import { BulkAccessComponent } from './bulk-access/bulk-access.component'; +import { EPersonFormComponent } from './epeople-registry/eperson-form/eperson-form.component'; +import { EPersonResolver } from './epeople-registry/eperson-resolver.service'; @NgModule({ imports: [ RouterModule.forChild([ { - path: 'epeople', + path: EPERSON_PATH, component: EPeopleRegistryComponent, resolve: { breadcrumb: I18nBreadcrumbResolver @@ -26,6 +28,25 @@ import { BulkAccessComponent } from './bulk-access/bulk-access.component'; data: { title: 'admin.access-control.epeople.title', breadcrumbKey: 'admin.access-control.epeople' }, canActivate: [SiteAdministratorGuard] }, + { + path: `${EPERSON_PATH}/create`, + component: EPersonFormComponent, + resolve: { + breadcrumb: I18nBreadcrumbResolver, + }, + data: { title: 'admin.access-control.epeople.add.title', breadcrumbKey: 'admin.access-control.epeople.add' }, + canActivate: [SiteAdministratorGuard], + }, + { + path: `${EPERSON_PATH}/:id`, + component: EPersonFormComponent, + resolve: { + breadcrumb: I18nBreadcrumbResolver, + ePerson: EPersonResolver, + }, + data: { title: 'admin.access-control.epeople.edit.title', breadcrumbKey: 'admin.access-control.epeople.edit' }, + canActivate: [SiteAdministratorGuard], + }, { path: GROUP_EDIT_PATH, component: GroupsRegistryComponent, diff --git a/src/app/access-control/epeople-registry/epeople-registry.component.html b/src/app/access-control/epeople-registry/epeople-registry.component.html index e3a8e2c590..f3ddd63ae8 100644 --- a/src/app/access-control/epeople-registry/epeople-registry.component.html +++ b/src/app/access-control/epeople-registry/epeople-registry.component.html @@ -4,96 +4,91 @@ <div class="d-flex justify-content-between border-bottom mb-3"> <h2 id="header" class="pb-2">{{labelPrefix + 'head' | translate}}</h2> - <div *ngIf="!isEPersonFormShown"> + <div> <button class="mr-auto btn btn-success addEPerson-button" - (click)="isEPersonFormShown = true"> + [routerLink]="'create'"> <i class="fas fa-plus"></i> <span class="d-none d-sm-inline ml-1">{{labelPrefix + 'button.add' | translate}}</span> </button> </div> </div> - <ds-eperson-form *ngIf="isEPersonFormShown" (submitForm)="reset()" - (cancelForm)="isEPersonFormShown = false"></ds-eperson-form> + <h3 id="search" class="border-bottom pb-2">{{labelPrefix + 'search.head' | translate}} - <div *ngIf="!isEPersonFormShown"> - <h3 id="search" class="border-bottom pb-2">{{labelPrefix + 'search.head' | translate}} - - </h3> - <form [formGroup]="searchForm" (ngSubmit)="search(searchForm.value)" class="d-flex justify-content-between"> - <div> - <select name="scope" id="scope" formControlName="scope" class="form-control" aria-label="Search scope"> - <option value="metadata">{{labelPrefix + 'search.scope.metadata' | translate}}</option> - <option value="email">{{labelPrefix + 'search.scope.email' | translate}}</option> - </select> - </div> - <div class="flex-grow-1 mr-3 ml-3"> - <div class="form-group input-group"> - <input type="text" name="query" id="query" formControlName="query" - class="form-control" [attr.aria-label]="labelPrefix + 'search.placeholder' | translate" - [placeholder]="(labelPrefix + 'search.placeholder' | translate)"> - <span class="input-group-append"> + </h3> + <form [formGroup]="searchForm" (ngSubmit)="search(searchForm.value)" class="d-flex justify-content-between"> + <div> + <select name="scope" id="scope" formControlName="scope" class="form-control" aria-label="Search scope"> + <option value="metadata">{{labelPrefix + 'search.scope.metadata' | translate}}</option> + <option value="email">{{labelPrefix + 'search.scope.email' | translate}}</option> + </select> + </div> + <div class="flex-grow-1 mr-3 ml-3"> + <div class="form-group input-group"> + <input type="text" name="query" id="query" formControlName="query" + class="form-control" [attr.aria-label]="labelPrefix + 'search.placeholder' | translate" + [placeholder]="(labelPrefix + 'search.placeholder' | translate)"> + <span class="input-group-append"> <button type="submit" class="search-button btn btn-primary"> <i class="fas fa-search"></i> {{ labelPrefix + 'search.button' | translate }} </button> </span> - </div> </div> - <div> - <button (click)="clearFormAndResetResult();" - class="search-button btn btn-secondary">{{labelPrefix + 'button.see-all' | translate}}</button> - </div> - </form> + </div> + <div> + <button (click)="clearFormAndResetResult();" + class="search-button btn btn-secondary">{{labelPrefix + 'button.see-all' | translate}}</button> + </div> + </form> - <ds-themed-loading *ngIf="searching$ | async"></ds-themed-loading> - <ds-pagination - *ngIf="(pageInfoState$ | async)?.totalElements > 0 && !(searching$ | async)" - [paginationOptions]="config" - [pageInfoState]="pageInfoState$" - [collectionSize]="(pageInfoState$ | async)?.totalElements" - [hideGear]="true" - [hidePagerWhenSinglePage]="true"> + <ds-themed-loading *ngIf="searching$ | async"></ds-themed-loading> + <ds-pagination + *ngIf="(pageInfoState$ | async)?.totalElements > 0 && !(searching$ | async)" + [paginationOptions]="config" + [pageInfoState]="pageInfoState$" + [collectionSize]="(pageInfoState$ | async)?.totalElements" + [hideGear]="true" + [hidePagerWhenSinglePage]="true"> - <div class="table-responsive"> - <table id="epeople" class="table table-striped table-hover table-bordered"> - <thead> - <tr> - <th scope="col">{{labelPrefix + 'table.id' | translate}}</th> - <th scope="col">{{labelPrefix + 'table.name' | translate}}</th> - <th scope="col">{{labelPrefix + 'table.email' | translate}}</th> - <th>{{labelPrefix + 'table.edit' | translate}}</th> - </tr> - </thead> - <tbody> - <tr *ngFor="let epersonDto of (ePeopleDto$ | async)?.page" - [ngClass]="{'table-primary' : isActive(epersonDto.eperson) | async}"> - <td>{{epersonDto.eperson.id}}</td> - <td>{{ dsoNameService.getName(epersonDto.eperson) }}</td> - <td>{{epersonDto.eperson.email}}</td> - <td> - <div class="btn-group edit-field"> - <button (click)="toggleEditEPerson(epersonDto.eperson)" - class="btn btn-outline-primary btn-sm access-control-editEPersonButton" - title="{{labelPrefix + 'table.edit.buttons.edit' | translate: { name: dsoNameService.getName(epersonDto.eperson) } }}"> - <i class="fas fa-edit fa-fw"></i> - </button> - <button [disabled]="!epersonDto.ableToDelete" (click)="deleteEPerson(epersonDto.eperson)" - class="delete-button btn btn-outline-danger btn-sm access-control-deleteEPersonButton" - title="{{labelPrefix + 'table.edit.buttons.remove' | translate: { name: dsoNameService.getName(epersonDto.eperson) } }}"> - <i class="fas fa-trash-alt fa-fw"></i> - </button> - </div> - </td> - </tr> - </tbody> - </table> - </div> + <div class="table-responsive"> + <table id="epeople" class="table table-striped table-hover table-bordered"> + <thead> + <tr> + <th scope="col">{{labelPrefix + 'table.id' | translate}}</th> + <th scope="col">{{labelPrefix + 'table.name' | translate}}</th> + <th scope="col">{{labelPrefix + 'table.email' | translate}}</th> + <th>{{labelPrefix + 'table.edit' | translate}}</th> + </tr> + </thead> + <tbody> + <tr *ngFor="let epersonDto of (ePeopleDto$ | async)?.page" + [ngClass]="{'table-primary' : isActive(epersonDto.eperson) | async}"> + <td>{{epersonDto.eperson.id}}</td> + <td>{{ dsoNameService.getName(epersonDto.eperson) }}</td> + <td>{{epersonDto.eperson.email}}</td> + <td> + <div class="btn-group edit-field"> + <button [routerLink]="getEditEPeoplePage(epersonDto.eperson.id)" + class="btn btn-outline-primary btn-sm access-control-editEPersonButton" + title="{{labelPrefix + 'table.edit.buttons.edit' | translate: { name: dsoNameService.getName(epersonDto.eperson) } }}"> + <i class="fas fa-edit fa-fw"></i> + </button> + <button [disabled]="!epersonDto.ableToDelete" (click)="deleteEPerson(epersonDto.eperson)" + class="delete-button btn btn-outline-danger btn-sm access-control-deleteEPersonButton" + title="{{labelPrefix + 'table.edit.buttons.remove' | translate: { name: dsoNameService.getName(epersonDto.eperson) } }}"> + <i class="fas fa-trash-alt fa-fw"></i> + </button> + </div> + </td> + </tr> + </tbody> + </table> + </div> - </ds-pagination> + </ds-pagination> - <div *ngIf="(pageInfoState$ | async)?.totalElements == 0" class="alert alert-info w-100 mb-2" role="alert"> - {{labelPrefix + 'no-items' | translate}} - </div> + <div *ngIf="(pageInfoState$ | async)?.totalElements == 0" class="alert alert-info w-100 mb-2" role="alert"> + {{labelPrefix + 'no-items' | translate}} </div> </div> </div> diff --git a/src/app/access-control/epeople-registry/epeople-registry.component.spec.ts b/src/app/access-control/epeople-registry/epeople-registry.component.spec.ts index 4a09913862..e2cee5e935 100644 --- a/src/app/access-control/epeople-registry/epeople-registry.component.spec.ts +++ b/src/app/access-control/epeople-registry/epeople-registry.component.spec.ts @@ -203,36 +203,6 @@ describe('EPeopleRegistryComponent', () => { }); }); - describe('toggleEditEPerson', () => { - describe('when you click on first edit eperson button', () => { - beforeEach(fakeAsync(() => { - const editButtons = fixture.debugElement.queryAll(By.css('.access-control-editEPersonButton')); - editButtons[0].triggerEventHandler('click', { - preventDefault: () => {/**/ - } - }); - tick(); - fixture.detectChanges(); - })); - - it('editEPerson form is toggled', () => { - const ePeopleIds = fixture.debugElement.queryAll(By.css('#epeople tr td:first-child')); - ePersonDataServiceStub.getActiveEPerson().subscribe((activeEPerson: EPerson) => { - if (ePeopleIds[0] && activeEPerson === ePeopleIds[0].nativeElement.textContent) { - expect(component.isEPersonFormShown).toEqual(false); - } else { - expect(component.isEPersonFormShown).toEqual(true); - } - - }); - }); - - it('EPerson search section is hidden', () => { - expect(fixture.debugElement.query(By.css('#search'))).toBeNull(); - }); - }); - }); - describe('deleteEPerson', () => { describe('when you click on first delete eperson button', () => { let ePeopleIdsFoundBeforeDelete; diff --git a/src/app/access-control/epeople-registry/epeople-registry.component.ts b/src/app/access-control/epeople-registry/epeople-registry.component.ts index fb045ebb88..221fa9fd71 100644 --- a/src/app/access-control/epeople-registry/epeople-registry.component.ts +++ b/src/app/access-control/epeople-registry/epeople-registry.component.ts @@ -22,6 +22,7 @@ import { PageInfo } from '../../core/shared/page-info.model'; import { NoContent } from '../../core/shared/NoContent.model'; import { PaginationService } from '../../core/pagination/pagination.service'; import { DSONameService } from '../../core/breadcrumbs/dso-name.service'; +import { getEPersonEditRoute, getEPersonsRoute } from '../access-control-routing-paths'; @Component({ selector: 'ds-epeople-registry', @@ -64,11 +65,6 @@ export class EPeopleRegistryComponent implements OnInit, OnDestroy { currentPage: 1 }); - /** - * Whether or not to show the EPerson form - */ - isEPersonFormShown: boolean; - // The search form searchForm; @@ -114,17 +110,11 @@ export class EPeopleRegistryComponent implements OnInit, OnDestroy { */ initialisePage() { this.searching$.next(true); - this.isEPersonFormShown = false; this.search({scope: this.currentSearchScope, query: this.currentSearchQuery}); - this.subs.push(this.epersonService.getActiveEPerson().subscribe((eperson: EPerson) => { - if (eperson != null && eperson.id) { - this.isEPersonFormShown = true; - } - })); this.subs.push(this.ePeople$.pipe( switchMap((epeople: PaginatedList<EPerson>) => { if (epeople.pageInfo.totalElements > 0) { - return combineLatest([...epeople.page.map((eperson: EPerson) => { + return combineLatest(epeople.page.map((eperson: EPerson) => { return this.authorizationService.isAuthorized(FeatureID.CanDelete, hasValue(eperson) ? eperson.self : undefined).pipe( map((authorized) => { const epersonDtoModel: EpersonDtoModel = new EpersonDtoModel(); @@ -133,7 +123,7 @@ export class EPeopleRegistryComponent implements OnInit, OnDestroy { return epersonDtoModel; }) ); - })]).pipe(map((dtos: EpersonDtoModel[]) => { + })).pipe(map((dtos: EpersonDtoModel[]) => { return buildPaginatedList(epeople.pageInfo, dtos); })); } else { @@ -160,14 +150,14 @@ export class EPeopleRegistryComponent implements OnInit, OnDestroy { const query: string = data.query; const scope: string = data.scope; if (query != null && this.currentSearchQuery !== query) { - this.router.navigate([this.epersonService.getEPeoplePageRouterLink()], { + void this.router.navigate([getEPersonsRoute()], { queryParamsHandling: 'merge' }); this.currentSearchQuery = query; this.paginationService.resetPage(this.config.id); } if (scope != null && this.currentSearchScope !== scope) { - this.router.navigate([this.epersonService.getEPeoplePageRouterLink()], { + void this.router.navigate([getEPersonsRoute()], { queryParamsHandling: 'merge' }); this.currentSearchScope = scope; @@ -205,23 +195,6 @@ export class EPeopleRegistryComponent implements OnInit, OnDestroy { return this.epersonService.getActiveEPerson(); } - /** - * Start editing the selected EPerson - * @param ePerson - */ - toggleEditEPerson(ePerson: EPerson) { - this.getActiveEPerson().pipe(take(1)).subscribe((activeEPerson: EPerson) => { - if (ePerson === activeEPerson) { - this.epersonService.cancelEditEPerson(); - this.isEPersonFormShown = false; - } else { - this.epersonService.editEPerson(ePerson); - this.isEPersonFormShown = true; - } - }); - this.scrollToTop(); - } - /** * Deletes EPerson, show notification on success/failure & updates EPeople list */ @@ -264,16 +237,6 @@ export class EPeopleRegistryComponent implements OnInit, OnDestroy { this.subs.filter((sub) => hasValue(sub)).forEach((sub) => sub.unsubscribe()); } - scrollToTop() { - (function smoothscroll() { - const currentScroll = document.documentElement.scrollTop || document.body.scrollTop; - if (currentScroll > 0) { - window.requestAnimationFrame(smoothscroll); - window.scrollTo(0, currentScroll - (currentScroll / 8)); - } - })(); - } - /** * Reset all input-fields to be empty and search all search */ @@ -284,20 +247,7 @@ export class EPeopleRegistryComponent implements OnInit, OnDestroy { this.search({query: ''}); } - /** - * This method will set everything to stale, which will cause the lists on this page to update. - */ - reset(): void { - this.epersonService.getBrowseEndpoint().pipe( - take(1), - switchMap((href: string) => { - return this.requestService.setStaleByHrefSubstring(href).pipe( - take(1), - ); - }) - ).subscribe(()=>{ - this.epersonService.cancelEditEPerson(); - this.isEPersonFormShown = false; - }); + getEditEPeoplePage(id: string): string { + return getEPersonEditRoute(id); } } diff --git a/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.html b/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.html index 228449a8a5..493209f0a2 100644 --- a/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.html +++ b/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.html @@ -1,89 +1,98 @@ -<div *ngIf="epersonService.getActiveEPerson() | async; then editheader; else createHeader"></div> +<div class="container"> + <div class="group-form row"> + <div class="col-12"> -<ng-template #createHeader> - <h4>{{messagePrefix + '.create' | translate}}</h4> -</ng-template> + <div *ngIf="epersonService.getActiveEPerson() | async; then editHeader; else createHeader"></div> -<ng-template #editheader> - <h4>{{messagePrefix + '.edit' | translate}}</h4> -</ng-template> + <ng-template #createHeader> + <h2 class="border-bottom pb-2">{{messagePrefix + '.create' | translate}}</h2> + </ng-template> -<ds-form [formId]="formId" - [formModel]="formModel" - [formGroup]="formGroup" - [formLayout]="formLayout" - [displayCancel]="false" - [submitLabel]="submitLabel" - (submitForm)="onSubmit()"> - <div before class="btn-group"> - <button (click)="onCancel()" - class="btn btn-outline-secondary"><i class="fas fa-arrow-left"></i> {{messagePrefix + '.return' | translate}}</button> - </div> - <div *ngIf="displayResetPassword" between class="btn-group"> - <button class="btn btn-primary" [disabled]="!(canReset$ | async)" (click)="resetPassword()"> - <i class="fa fa-key"></i> {{'admin.access-control.epeople.actions.reset' | translate}} - </button> - </div> - <div between class="btn-group ml-1"> - <button *ngIf="!isImpersonated" class="btn btn-primary" [ngClass]="{'d-none' : !(canImpersonate$ | async)}" (click)="impersonate()"> - <i class="fa fa-user-secret"></i> {{'admin.access-control.epeople.actions.impersonate' | translate}} - </button> - <button *ngIf="isImpersonated" class="btn btn-primary" (click)="stopImpersonating()"> - <i class="fa fa-user-secret"></i> {{'admin.access-control.epeople.actions.stop-impersonating' | translate}} - </button> - </div> - <button after class="btn btn-danger delete-button" [disabled]="!(canDelete$ | async)" (click)="delete()"> - <i class="fas fa-trash"></i> {{'admin.access-control.epeople.actions.delete' | translate}} - </button> -</ds-form> + <ng-template #editHeader> + <h2 class="border-bottom pb-2">{{messagePrefix + '.edit' | translate}}</h2> + </ng-template> -<ds-themed-loading [showMessage]="false" *ngIf="!formGroup"></ds-themed-loading> + <ds-form [formId]="formId" + [formModel]="formModel" + [formGroup]="formGroup" + [formLayout]="formLayout" + [displayCancel]="false" + [submitLabel]="submitLabel" + (submitForm)="onSubmit()"> + <div before class="btn-group"> + <button (click)="onCancel()" class="btn btn-outline-secondary"> + <i class="fas fa-arrow-left"></i> {{messagePrefix + '.return' | translate}} + </button> + </div> + <div *ngIf="displayResetPassword" between class="btn-group"> + <button class="btn btn-primary" [disabled]="!(canReset$ | async)" (click)="resetPassword()"> + <i class="fa fa-key"></i> {{'admin.access-control.epeople.actions.reset' | translate}} + </button> + </div> + <div between class="btn-group ml-1"> + <button *ngIf="!isImpersonated" class="btn btn-primary" [ngClass]="{'d-none' : !(canImpersonate$ | async)}" + (click)="impersonate()"> + <i class="fa fa-user-secret"></i> {{'admin.access-control.epeople.actions.impersonate' | translate}} + </button> + <button *ngIf="isImpersonated" class="btn btn-primary" (click)="stopImpersonating()"> + <i class="fa fa-user-secret"></i> {{'admin.access-control.epeople.actions.stop-impersonating' | translate}} + </button> + </div> + <button after class="btn btn-danger delete-button" [disabled]="!(canDelete$ | async)" (click)="delete()"> + <i class="fas fa-trash"></i> {{'admin.access-control.epeople.actions.delete' | translate}} + </button> + </ds-form> -<div *ngIf="epersonService.getActiveEPerson() | async"> - <h5>{{messagePrefix + '.groupsEPersonIsMemberOf' | translate}}</h5> + <ds-themed-loading [showMessage]="false" *ngIf="!formGroup"></ds-themed-loading> - <ds-themed-loading [showMessage]="false" *ngIf="!(groups | async)"></ds-themed-loading> + <div *ngIf="epersonService.getActiveEPerson() | async"> + <h5>{{messagePrefix + '.groupsEPersonIsMemberOf' | translate}}</h5> - <ds-pagination - *ngIf="(groups | async)?.payload?.totalElements > 0" - [paginationOptions]="config" - [pageInfoState]="(groups | async)?.payload" - [collectionSize]="(groups | async)?.payload?.totalElements" - [hideGear]="true" - [hidePagerWhenSinglePage]="true" - (pageChange)="onPageChange($event)"> + <ds-themed-loading [showMessage]="false" *ngIf="!(groups | async)"></ds-themed-loading> - <div class="table-responsive"> - <table id="groups" class="table table-striped table-hover table-bordered"> - <thead> - <tr> - <th scope="col" class="align-middle">{{messagePrefix + '.table.id' | translate}}</th> - <th scope="col" class="align-middle">{{messagePrefix + '.table.name' | translate}}</th> - <th scope="col" class="align-middle">{{messagePrefix + '.table.collectionOrCommunity' | translate}}</th> - </tr> - </thead> - <tbody> - <tr *ngFor="let group of (groups | async)?.payload?.page"> - <td class="align-middle">{{group.id}}</td> - <td class="align-middle"> - <a (click)="groupsDataService.startEditingNewGroup(group)" - [routerLink]="[groupsDataService.getGroupEditPageRouterLink(group)]"> - {{ dsoNameService.getName(group) }} - </a> - </td> - <td class="align-middle">{{ dsoNameService.getName(undefined) }}</td> - </tr> - </tbody> - </table> - </div> + <ds-pagination + *ngIf="(groups | async)?.payload?.totalElements > 0" + [paginationOptions]="config" + [pageInfoState]="(groups | async)?.payload" + [collectionSize]="(groups | async)?.payload?.totalElements" + [hideGear]="true" + [hidePagerWhenSinglePage]="true" + (pageChange)="onPageChange($event)"> + + <div class="table-responsive"> + <table id="groups" class="table table-striped table-hover table-bordered"> + <thead> + <tr> + <th scope="col" class="align-middle">{{messagePrefix + '.table.id' | translate}}</th> + <th scope="col" class="align-middle">{{messagePrefix + '.table.name' | translate}}</th> + <th scope="col" class="align-middle">{{messagePrefix + '.table.collectionOrCommunity' | translate}}</th> + </tr> + </thead> + <tbody> + <tr *ngFor="let group of (groups | async)?.payload?.page"> + <td class="align-middle">{{group.id}}</td> + <td class="align-middle"> + <a (click)="groupsDataService.startEditingNewGroup(group)" + [routerLink]="[groupsDataService.getGroupEditPageRouterLink(group)]"> + {{ dsoNameService.getName(group) }} + </a> + </td> + <td class="align-middle">{{ dsoNameService.getName(undefined) }}</td> + </tr> + </tbody> + </table> + </div> - </ds-pagination> + </ds-pagination> - <div *ngIf="(groups | async)?.payload?.totalElements == 0" class="alert alert-info w-100 mb-2" role="alert"> - <div>{{messagePrefix + '.memberOfNoGroups' | translate}}</div> - <div> - <button [routerLink]="[groupsDataService.getGroupRegistryRouterLink()]" - class="btn btn-primary">{{messagePrefix + '.goToGroups' | translate}}</button> + <div *ngIf="(groups | async)?.payload?.totalElements == 0" class="alert alert-info w-100 mb-2" role="alert"> + <div>{{messagePrefix + '.memberOfNoGroups' | translate}}</div> + <div> + <button [routerLink]="[groupsDataService.getGroupRegistryRouterLink()]" + class="btn btn-primary">{{messagePrefix + '.goToGroups' | translate}}</button> + </div> + </div> + </div> </div> </div> </div> diff --git a/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.spec.ts b/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.spec.ts index fb911e709c..1402f79ae3 100644 --- a/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.spec.ts +++ b/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.spec.ts @@ -31,6 +31,10 @@ import { PaginationServiceStub } from '../../../shared/testing/pagination-servic import { FindListOptions } from '../../../core/data/find-list-options.model'; import { ValidateEmailNotTaken } from './validators/email-taken.validator'; import { EpersonRegistrationService } from '../../../core/data/eperson-registration.service'; +import { FollowLinkConfig } from '../../../shared/utils/follow-link-config.model'; +import { ActivatedRoute, Router } from '@angular/router'; +import { RouterStub } from '../../../shared/testing/router.stub'; +import { ActivatedRouteStub } from '../../../shared/testing/active-router.stub'; describe('EPersonFormComponent', () => { let component: EPersonFormComponent; @@ -43,6 +47,8 @@ describe('EPersonFormComponent', () => { let authorizationService: AuthorizationDataService; let groupsDataService: GroupDataService; let epersonRegistrationService: EpersonRegistrationService; + let route: ActivatedRouteStub; + let router: RouterStub; let paginationService; @@ -106,6 +112,9 @@ describe('EPersonFormComponent', () => { }, getEPersonByEmail(email): Observable<RemoteData<EPerson>> { return createSuccessfulRemoteDataObject$(null); + }, + findById(_id: string, _useCachedVersionIfAvailable = true, _reRequestOnStale = true, ..._linksToFollow: FollowLinkConfig<EPerson>[]): Observable<RemoteData<EPerson>> { + return createSuccessfulRemoteDataObject$(null); } }; builderService = Object.assign(getMockFormBuilderService(),{ @@ -182,6 +191,8 @@ describe('EPersonFormComponent', () => { }); paginationService = new PaginationServiceStub(); + route = new ActivatedRouteStub(); + router = new RouterStub(); TestBed.configureTestingModule({ imports: [CommonModule, NgbModule, FormsModule, ReactiveFormsModule, BrowserModule, TranslateModule.forRoot({ @@ -202,6 +213,8 @@ describe('EPersonFormComponent', () => { { provide: PaginationService, useValue: paginationService }, { provide: RequestService, useValue: jasmine.createSpyObj('requestService', ['removeByHrefSubstring'])}, { provide: EpersonRegistrationService, useValue: epersonRegistrationService }, + { provide: ActivatedRoute, useValue: route }, + { provide: Router, useValue: router }, EPeopleRegistryComponent ], schemas: [NO_ERRORS_SCHEMA] @@ -263,24 +276,18 @@ describe('EPersonFormComponent', () => { fixture.detectChanges(); }); describe('firstName, lastName and email should be required', () => { - it('form should be invalid because the firstName is required', waitForAsync(() => { - fixture.whenStable().then(() => { - expect(component.formGroup.controls.firstName.valid).toBeFalse(); - expect(component.formGroup.controls.firstName.errors.required).toBeTrue(); - }); - })); - it('form should be invalid because the lastName is required', waitForAsync(() => { - fixture.whenStable().then(() => { - expect(component.formGroup.controls.lastName.valid).toBeFalse(); - expect(component.formGroup.controls.lastName.errors.required).toBeTrue(); - }); - })); - it('form should be invalid because the email is required', waitForAsync(() => { - fixture.whenStable().then(() => { - expect(component.formGroup.controls.email.valid).toBeFalse(); - expect(component.formGroup.controls.email.errors.required).toBeTrue(); - }); - })); + it('form should be invalid because the firstName is required', () => { + expect(component.formGroup.controls.firstName.valid).toBeFalse(); + expect(component.formGroup.controls.firstName.errors.required).toBeTrue(); + }); + it('form should be invalid because the lastName is required', () => { + expect(component.formGroup.controls.lastName.valid).toBeFalse(); + expect(component.formGroup.controls.lastName.errors.required).toBeTrue(); + }); + it('form should be invalid because the email is required', () => { + expect(component.formGroup.controls.email.valid).toBeFalse(); + expect(component.formGroup.controls.email.errors.required).toBeTrue(); + }); }); describe('after inserting information firstName,lastName and email not required', () => { @@ -290,24 +297,18 @@ describe('EPersonFormComponent', () => { component.formGroup.controls.email.setValue('test@test.com'); fixture.detectChanges(); }); - it('firstName should be valid because the firstName is set', waitForAsync(() => { - fixture.whenStable().then(() => { + it('firstName should be valid because the firstName is set', () => { expect(component.formGroup.controls.firstName.valid).toBeTrue(); expect(component.formGroup.controls.firstName.errors).toBeNull(); - }); - })); - it('lastName should be valid because the lastName is set', waitForAsync(() => { - fixture.whenStable().then(() => { + }); + it('lastName should be valid because the lastName is set', () => { expect(component.formGroup.controls.lastName.valid).toBeTrue(); expect(component.formGroup.controls.lastName.errors).toBeNull(); - }); - })); - it('email should be valid because the email is set', waitForAsync(() => { - fixture.whenStable().then(() => { + }); + it('email should be valid because the email is set', () => { expect(component.formGroup.controls.email.valid).toBeTrue(); expect(component.formGroup.controls.email.errors).toBeNull(); - }); - })); + }); }); @@ -316,12 +317,10 @@ describe('EPersonFormComponent', () => { component.formGroup.controls.email.setValue('test@test'); fixture.detectChanges(); }); - it('email should not be valid because the email pattern', waitForAsync(() => { - fixture.whenStable().then(() => { + it('email should not be valid because the email pattern', () => { expect(component.formGroup.controls.email.valid).toBeFalse(); expect(component.formGroup.controls.email.errors.pattern).toBeTruthy(); - }); - })); + }); }); describe('after already utilized email', () => { @@ -336,12 +335,10 @@ describe('EPersonFormComponent', () => { fixture.detectChanges(); }); - it('email should not be valid because email is already taken', waitForAsync(() => { - fixture.whenStable().then(() => { + it('email should not be valid because email is already taken', () => { expect(component.formGroup.controls.email.valid).toBeFalse(); expect(component.formGroup.controls.email.errors.emailTaken).toBeTruthy(); - }); - })); + }); }); @@ -393,11 +390,9 @@ describe('EPersonFormComponent', () => { fixture.detectChanges(); }); - it('should emit a new eperson using the correct values', waitForAsync(() => { - fixture.whenStable().then(() => { - expect(component.submitForm.emit).toHaveBeenCalledWith(expected); - }); - })); + it('should emit a new eperson using the correct values', () => { + expect(component.submitForm.emit).toHaveBeenCalledWith(expected); + }); }); describe('with an active eperson', () => { @@ -428,11 +423,9 @@ describe('EPersonFormComponent', () => { fixture.detectChanges(); }); - it('should emit the existing eperson using the correct values', waitForAsync(() => { - fixture.whenStable().then(() => { - expect(component.submitForm.emit).toHaveBeenCalledWith(expectedWithId); - }); - })); + it('should emit the existing eperson using the correct values', () => { + expect(component.submitForm.emit).toHaveBeenCalledWith(expectedWithId); + }); }); }); diff --git a/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.ts b/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.ts index d009d56058..d7d5a0b49c 100644 --- a/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.ts +++ b/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.ts @@ -38,6 +38,8 @@ import { Registration } from '../../../core/shared/registration.model'; import { EpersonRegistrationService } from '../../../core/data/eperson-registration.service'; import { TYPE_REQUEST_FORGOT } from '../../../register-email-form/register-email-form.component'; import { DSONameService } from '../../../core/breadcrumbs/dso-name.service'; +import { ActivatedRoute, Router } from '@angular/router'; +import { getEPersonsRoute } from '../../access-control-routing-paths'; @Component({ selector: 'ds-eperson-form', @@ -194,6 +196,8 @@ export class EPersonFormComponent implements OnInit, OnDestroy { public requestService: RequestService, private epersonRegistrationService: EpersonRegistrationService, public dsoNameService: DSONameService, + protected route: ActivatedRoute, + protected router: Router, ) { this.subs.push(this.epersonService.getActiveEPerson().subscribe((eperson: EPerson) => { this.epersonInitial = eperson; @@ -213,7 +217,9 @@ export class EPersonFormComponent implements OnInit, OnDestroy { * This method will initialise the page */ initialisePage() { - + this.subs.push(this.epersonService.findById(this.route.snapshot.params.id).subscribe((ePersonRD: RemoteData<EPerson>) => { + this.epersonService.editEPerson(ePersonRD.payload); + })); observableCombineLatest([ this.translateService.get(`${this.messagePrefix}.firstName`), this.translateService.get(`${this.messagePrefix}.lastName`), @@ -339,6 +345,7 @@ export class EPersonFormComponent implements OnInit, OnDestroy { onCancel() { this.epersonService.cancelEditEPerson(); this.cancelForm.emit(); + void this.router.navigate([getEPersonsRoute()]); } /** @@ -390,6 +397,8 @@ export class EPersonFormComponent implements OnInit, OnDestroy { if (rd.hasSucceeded) { this.notificationsService.success(this.translateService.get(this.labelPrefix + 'notification.created.success', { name: this.dsoNameService.getName(ePersonToCreate) })); this.submitForm.emit(ePersonToCreate); + this.epersonService.clearEPersonRequests(); + void this.router.navigateByUrl(getEPersonsRoute()); } else { this.notificationsService.error(this.translateService.get(this.labelPrefix + 'notification.created.failure', { name: this.dsoNameService.getName(ePersonToCreate) })); this.cancelForm.emit(); @@ -429,6 +438,7 @@ export class EPersonFormComponent implements OnInit, OnDestroy { if (rd.hasSucceeded) { this.notificationsService.success(this.translateService.get(this.labelPrefix + 'notification.edited.success', { name: this.dsoNameService.getName(editedEperson) })); this.submitForm.emit(editedEperson); + void this.router.navigateByUrl(getEPersonsRoute()); } else { this.notificationsService.error(this.translateService.get(this.labelPrefix + 'notification.edited.failure', { name: this.dsoNameService.getName(editedEperson) })); this.cancelForm.emit(); @@ -495,6 +505,7 @@ export class EPersonFormComponent implements OnInit, OnDestroy { ).subscribe(({ restResponse, eperson }: { restResponse: RemoteData<NoContent> | null, eperson: EPerson }) => { if (restResponse?.hasSucceeded) { this.notificationsService.success(this.translateService.get(this.labelPrefix + 'notification.deleted.success', { name: this.dsoNameService.getName(eperson) })); + void this.router.navigate([getEPersonsRoute()]); } else { this.notificationsService.error(`Error occurred when trying to delete EPerson with id: ${eperson?.id} with code: ${restResponse?.statusCode} and message: ${restResponse?.errorMessage}`); } @@ -541,16 +552,6 @@ export class EPersonFormComponent implements OnInit, OnDestroy { } } - /** - * This method will ensure that the page gets reset and that the cache is cleared - */ - reset() { - this.epersonService.getActiveEPerson().pipe(take(1)).subscribe((eperson: EPerson) => { - this.requestService.removeByHrefSubstring(eperson.self); - }); - this.initialisePage(); - } - /** * Checks for the given ePerson if there is already an ePerson in the system with that email * and shows notification if this is the case diff --git a/src/app/access-control/epeople-registry/eperson-resolver.service.ts b/src/app/access-control/epeople-registry/eperson-resolver.service.ts new file mode 100644 index 0000000000..1db8e70d89 --- /dev/null +++ b/src/app/access-control/epeople-registry/eperson-resolver.service.ts @@ -0,0 +1,53 @@ +import { Injectable } from '@angular/core'; +import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router'; +import { Observable } from 'rxjs'; +import { EPerson } from '../../core/eperson/models/eperson.model'; +import { RemoteData } from '../../core/data/remote-data'; +import { getFirstCompletedRemoteData } from '../../core/shared/operators'; +import { ResolvedAction } from '../../core/resolving/resolver.actions'; +import { EPersonDataService } from '../../core/eperson/eperson-data.service'; +import { Store } from '@ngrx/store'; +import { followLink, FollowLinkConfig } from '../../shared/utils/follow-link-config.model'; + +export const EPERSON_EDIT_FOLLOW_LINKS: FollowLinkConfig<EPerson>[] = [ + followLink('groups'), +]; + +/** + * This class represents a resolver that requests a specific {@link EPerson} before the route is activated + */ +@Injectable({ + providedIn: 'root', +}) +export class EPersonResolver implements Resolve<RemoteData<EPerson>> { + + constructor( + protected ePersonService: EPersonDataService, + protected store: Store<any>, + ) { + } + + /** + * Method for resolving a {@link EPerson} based on the parameters in the current route + * @param {ActivatedRouteSnapshot} route The current ActivatedRouteSnapshot + * @param {RouterStateSnapshot} state The current RouterStateSnapshot + * @returns `Observable<<RemoteData<EPerson>>` Emits the found {@link EPerson} based on the parameters in the current + * route, or an error if something went wrong + */ + resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<RemoteData<EPerson>> { + const ePersonRD$: Observable<RemoteData<EPerson>> = this.ePersonService.findById(route.params.id, + true, + false, + ...EPERSON_EDIT_FOLLOW_LINKS, + ).pipe( + getFirstCompletedRemoteData(), + ); + + ePersonRD$.subscribe((ePersonRD: RemoteData<EPerson>) => { + this.store.dispatch(new ResolvedAction(state.url, ePersonRD.payload)); + }); + + return ePersonRD$; + } + +} diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 6c91bae4c1..2a55229616 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -248,6 +248,14 @@ "admin.access-control.epeople.title": "EPeople", + "admin.access-control.epeople.edit.breadcrumbs": "New EPerson", + + "admin.access-control.epeople.edit.title": "New EPerson", + + "admin.access-control.epeople.add.breadcrumbs": "Add EPerson", + + "admin.access-control.epeople.add.title": "Add EPerson", + "admin.access-control.epeople.head": "EPeople", "admin.access-control.epeople.search.head": "Search", -- GitLab From 9ac19d40fc26275d53a50deed3a8151e07955113 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Fri, 21 Jul 2023 15:11:01 +0200 Subject: [PATCH 012/183] Cleanup access-control components - Use the same methods to retrieve the access-control urls - Fix EPersonDataService.startEditingNewEPerson returning the incorrect link --- .../access-control-routing-paths.ts | 6 ++--- .../access-control-routing.module.ts | 8 +++---- .../epeople-registry.component.ts | 2 +- .../group-form/group-form.component.html | 4 ++-- .../group-form/group-form.component.ts | 24 +++++++++---------- .../groups-registry.component.html | 2 +- src/app/core/eperson/eperson-data.service.ts | 6 ++--- src/app/core/eperson/group-data.service.ts | 7 +++--- .../entry/resource-policy-entry.component.ts | 5 ++-- 9 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/app/access-control/access-control-routing-paths.ts b/src/app/access-control/access-control-routing-paths.ts index c3c42b3155..c8b9e01793 100644 --- a/src/app/access-control/access-control-routing-paths.ts +++ b/src/app/access-control/access-control-routing-paths.ts @@ -11,12 +11,12 @@ export function getEPersonEditRoute(id: string): string { return new URLCombiner(getEPersonsRoute(), id).toString(); } -export const GROUP_EDIT_PATH = 'groups'; +export const GROUP_PATH = 'groups'; export function getGroupsRoute() { - return new URLCombiner(getAccessControlModuleRoute(), GROUP_EDIT_PATH).toString(); + return new URLCombiner(getAccessControlModuleRoute(), GROUP_PATH).toString(); } export function getGroupEditRoute(id: string) { - return new URLCombiner(getAccessControlModuleRoute(), GROUP_EDIT_PATH, id).toString(); + return new URLCombiner(getGroupsRoute(), id).toString(); } diff --git a/src/app/access-control/access-control-routing.module.ts b/src/app/access-control/access-control-routing.module.ts index a4082d19e2..4ef97cb5ea 100644 --- a/src/app/access-control/access-control-routing.module.ts +++ b/src/app/access-control/access-control-routing.module.ts @@ -3,7 +3,7 @@ import { RouterModule } from '@angular/router'; import { EPeopleRegistryComponent } from './epeople-registry/epeople-registry.component'; import { GroupFormComponent } from './group-registry/group-form/group-form.component'; import { GroupsRegistryComponent } from './group-registry/groups-registry.component'; -import { EPERSON_PATH, GROUP_EDIT_PATH } from './access-control-routing-paths'; +import { EPERSON_PATH, GROUP_PATH } from './access-control-routing-paths'; import { I18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver'; import { GroupPageGuard } from './group-registry/group-page.guard'; import { @@ -48,7 +48,7 @@ import { EPersonResolver } from './epeople-registry/eperson-resolver.service'; canActivate: [SiteAdministratorGuard], }, { - path: GROUP_EDIT_PATH, + path: GROUP_PATH, component: GroupsRegistryComponent, resolve: { breadcrumb: I18nBreadcrumbResolver @@ -57,7 +57,7 @@ import { EPersonResolver } from './epeople-registry/eperson-resolver.service'; canActivate: [GroupAdministratorGuard] }, { - path: `${GROUP_EDIT_PATH}/newGroup`, + path: `${GROUP_PATH}/create`, component: GroupFormComponent, resolve: { breadcrumb: I18nBreadcrumbResolver @@ -66,7 +66,7 @@ import { EPersonResolver } from './epeople-registry/eperson-resolver.service'; canActivate: [GroupAdministratorGuard] }, { - path: `${GROUP_EDIT_PATH}/:groupId`, + path: `${GROUP_PATH}/:groupId`, component: GroupFormComponent, resolve: { breadcrumb: I18nBreadcrumbResolver diff --git a/src/app/access-control/epeople-registry/epeople-registry.component.ts b/src/app/access-control/epeople-registry/epeople-registry.component.ts index 221fa9fd71..d2837a5317 100644 --- a/src/app/access-control/epeople-registry/epeople-registry.component.ts +++ b/src/app/access-control/epeople-registry/epeople-registry.component.ts @@ -215,7 +215,7 @@ export class EPeopleRegistryComponent implements OnInit, OnDestroy { if (restResponse.hasSucceeded) { this.notificationsService.success(this.translateService.get(this.labelPrefix + 'notification.deleted.success', {name: this.dsoNameService.getName(ePerson)})); } else { - this.notificationsService.error('Error occured when trying to delete EPerson with id: ' + ePerson.id + ' with code: ' + restResponse.statusCode + ' and message: ' + restResponse.errorMessage); + this.notificationsService.error(`Error occurred when trying to delete EPerson with id: ${ePerson.id} with code: ${restResponse.statusCode} and message: ${restResponse.errorMessage}`); } }); } diff --git a/src/app/access-control/group-registry/group-form/group-form.component.html b/src/app/access-control/group-registry/group-form/group-form.component.html index 77a81a8daa..0515b071ae 100644 --- a/src/app/access-control/group-registry/group-form/group-form.component.html +++ b/src/app/access-control/group-registry/group-form/group-form.component.html @@ -2,13 +2,13 @@ <div class="group-form row"> <div class="col-12"> - <div *ngIf="groupDataService.getActiveGroup() | async; then editheader; else createHeader"></div> + <div *ngIf="groupDataService.getActiveGroup() | async; then editHeader; else createHeader"></div> <ng-template #createHeader> <h2 class="border-bottom pb-2">{{messagePrefix + '.head.create' | translate}}</h2> </ng-template> - <ng-template #editheader> + <ng-template #editHeader> <h2 class="border-bottom pb-2"> <span *dsContextHelp="{ diff --git a/src/app/access-control/group-registry/group-form/group-form.component.ts b/src/app/access-control/group-registry/group-form/group-form.component.ts index 3c0547cca5..528409296a 100644 --- a/src/app/access-control/group-registry/group-form/group-form.component.ts +++ b/src/app/access-control/group-registry/group-form/group-form.component.ts @@ -10,7 +10,6 @@ import { } from '@ng-dynamic-forms/core'; import { TranslateService } from '@ngx-translate/core'; import { - ObservedValueOf, combineLatest as observableCombineLatest, Observable, of as observableOf, @@ -48,6 +47,7 @@ import { Operation } from 'fast-json-patch'; import { ValidateGroupExists } from './validators/group-exists.validator'; import { DSONameService } from '../../../core/breadcrumbs/dso-name.service'; import { environment } from '../../../../environments/environment'; +import { getGroupEditRoute, getGroupsRoute } from '../../access-control-routing-paths'; @Component({ selector: 'ds-group-form', @@ -165,19 +165,19 @@ export class GroupFormComponent implements OnInit, OnDestroy { this.canEdit$ = this.groupDataService.getActiveGroup().pipe( hasValueOperator(), switchMap((group: Group) => { - return observableCombineLatest( + return observableCombineLatest([ this.authorizationService.isAuthorized(FeatureID.CanDelete, isNotEmpty(group) ? group.self : undefined), this.hasLinkedDSO(group), - (isAuthorized: ObservedValueOf<Observable<boolean>>, hasLinkedDSO: ObservedValueOf<Observable<boolean>>) => { - return isAuthorized && !hasLinkedDSO; - }); - }) + ]).pipe( + map(([isAuthorized, hasLinkedDSO]: [boolean, boolean]) => isAuthorized && !hasLinkedDSO), + ); + }), ); - observableCombineLatest( + observableCombineLatest([ this.translateService.get(`${this.messagePrefix}.groupName`), this.translateService.get(`${this.messagePrefix}.groupCommunity`), this.translateService.get(`${this.messagePrefix}.groupDescription`) - ).subscribe(([groupName, groupCommunity, groupDescription]) => { + ]).subscribe(([groupName, groupCommunity, groupDescription]) => { this.groupName = new DynamicInputModel({ id: 'groupName', label: groupName, @@ -215,12 +215,12 @@ export class GroupFormComponent implements OnInit, OnDestroy { } this.subs.push( - observableCombineLatest( + observableCombineLatest([ this.groupDataService.getActiveGroup(), this.canEdit$, this.groupDataService.getActiveGroup() .pipe(filter((activeGroup) => hasValue(activeGroup)),switchMap((activeGroup) => this.getLinkedDSO(activeGroup).pipe(getFirstSucceededRemoteDataPayload()))) - ).subscribe(([activeGroup, canEdit, linkedObject]) => { + ]).subscribe(([activeGroup, canEdit, linkedObject]) => { if (activeGroup != null) { @@ -263,7 +263,7 @@ export class GroupFormComponent implements OnInit, OnDestroy { onCancel() { this.groupDataService.cancelEditGroup(); this.cancelForm.emit(); - this.router.navigate([this.groupDataService.getGroupRegistryRouterLink()]); + void this.router.navigate([getGroupsRoute()]); } /** @@ -310,7 +310,7 @@ export class GroupFormComponent implements OnInit, OnDestroy { const groupSelfLink = rd.payload._links.self.href; this.setActiveGroupWithLink(groupSelfLink); this.groupDataService.clearGroupsRequests(); - this.router.navigateByUrl(this.groupDataService.getGroupEditPageRouterLinkWithID(rd.payload.uuid)); + void this.router.navigateByUrl(getGroupEditRoute(rd.payload.uuid)); } } else { this.notificationsService.error(this.translateService.get(this.messagePrefix + '.notification.created.failure', { name: groupToCreate.name })); diff --git a/src/app/access-control/group-registry/groups-registry.component.html b/src/app/access-control/group-registry/groups-registry.component.html index 828aadc95a..27cec262c4 100644 --- a/src/app/access-control/group-registry/groups-registry.component.html +++ b/src/app/access-control/group-registry/groups-registry.component.html @@ -5,7 +5,7 @@ <h2 id="header" class="pb-2">{{messagePrefix + 'head' | translate}}</h2> <div> <button class="mr-auto btn btn-success" - [routerLink]="['newGroup']"> + [routerLink]="'create'"> <i class="fas fa-plus"></i> <span class="d-none d-sm-inline ml-1">{{messagePrefix + 'button.add' | translate}}</span> </button> diff --git a/src/app/core/eperson/eperson-data.service.ts b/src/app/core/eperson/eperson-data.service.ts index d30030365c..00620655de 100644 --- a/src/app/core/eperson/eperson-data.service.ts +++ b/src/app/core/eperson/eperson-data.service.ts @@ -34,6 +34,7 @@ import { PatchData, PatchDataImpl } from '../data/base/patch-data'; import { DeleteData, DeleteDataImpl } from '../data/base/delete-data'; import { RestRequestMethod } from '../data/rest-request-method'; import { dataService } from '../data/base/data-service.decorator'; +import { getEPersonEditRoute, getEPersonsRoute } from '../../access-control/access-control-routing-paths'; const ePeopleRegistryStateSelector = (state: AppState) => state.epeopleRegistry; const editEPersonSelector = createSelector(ePeopleRegistryStateSelector, (ePeopleRegistryState: EPeopleRegistryState) => ePeopleRegistryState.editEPerson); @@ -281,15 +282,14 @@ export class EPersonDataService extends IdentifiableDataService<EPerson> impleme this.editEPerson(ePerson); } }); - return '/access-control/epeople'; + return getEPersonEditRoute(ePerson.id); } /** * Get EPeople admin page - * @param ePerson New EPerson to edit */ public getEPeoplePageRouterLink(): string { - return '/access-control/epeople'; + return getEPersonsRoute(); } /** diff --git a/src/app/core/eperson/group-data.service.ts b/src/app/core/eperson/group-data.service.ts index bb38e46758..7b3a14c70b 100644 --- a/src/app/core/eperson/group-data.service.ts +++ b/src/app/core/eperson/group-data.service.ts @@ -40,6 +40,7 @@ import { DeleteData, DeleteDataImpl } from '../data/base/delete-data'; import { Operation } from 'fast-json-patch'; import { RestRequestMethod } from '../data/rest-request-method'; import { dataService } from '../data/base/data-service.decorator'; +import { getGroupEditRoute } from '../../access-control/access-control-routing-paths'; const groupRegistryStateSelector = (state: AppState) => state.groupRegistry; const editGroupSelector = createSelector(groupRegistryStateSelector, (groupRegistryState: GroupRegistryState) => groupRegistryState.editGroup); @@ -264,15 +265,15 @@ export class GroupDataService extends IdentifiableDataService<Group> implements * @param group Group we want edit page for */ public getGroupEditPageRouterLink(group: Group): string { - return this.getGroupEditPageRouterLinkWithID(group.id); + return getGroupEditRoute(group.id); } /** * Get Edit page of group * @param groupID Group ID we want edit page for */ - public getGroupEditPageRouterLinkWithID(groupId: string): string { - return '/access-control/groups/' + groupId; + public getGroupEditPageRouterLinkWithID(groupID: string): string { + return getGroupEditRoute(groupID); } /** diff --git a/src/app/shared/resource-policies/entry/resource-policy-entry.component.ts b/src/app/shared/resource-policies/entry/resource-policy-entry.component.ts index 904a79cbe6..83733c7011 100644 --- a/src/app/shared/resource-policies/entry/resource-policy-entry.component.ts +++ b/src/app/shared/resource-policies/entry/resource-policy-entry.component.ts @@ -17,8 +17,7 @@ import { RemoteData } from '../../../core/data/remote-data'; import { DSpaceObject } from '../../../core/shared/dspace-object.model'; import { ActivatedRoute, Router } from '@angular/router'; import { Group } from '../../../core/eperson/models/group.model'; -import { ACCESS_CONTROL_MODULE_PATH } from '../../../app-routing-paths'; -import { GROUP_EDIT_PATH } from '../../../access-control/access-control-routing-paths'; +import { getGroupEditRoute } from '../../../access-control/access-control-routing-paths'; import { GroupDataService } from '../../../core/eperson/group-data.service'; export interface ResourcePolicyCheckboxEntry { @@ -97,7 +96,7 @@ export class ResourcePolicyEntryComponent implements OnInit { getFirstSucceededRemoteDataPayload(), map((group: Group) => group.id), ).subscribe((groupUUID) => { - this.router.navigate([ACCESS_CONTROL_MODULE_PATH, GROUP_EDIT_PATH, groupUUID]); + void this.router.navigate([getGroupEditRoute(groupUUID)]); }); } } -- GitLab From 998e1fac8de2707a62c729250a82f439b173b33c Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Fri, 21 Jul 2023 17:48:27 +0200 Subject: [PATCH 013/183] Fix spacing issues for EPerson form buttons --- .../eperson-form/eperson-form.component.html | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.html b/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.html index 493209f0a2..88c4f99870 100644 --- a/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.html +++ b/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.html @@ -29,9 +29,8 @@ <i class="fa fa-key"></i> {{'admin.access-control.epeople.actions.reset' | translate}} </button> </div> - <div between class="btn-group ml-1"> - <button *ngIf="!isImpersonated" class="btn btn-primary" [ngClass]="{'d-none' : !(canImpersonate$ | async)}" - (click)="impersonate()"> + <div *ngIf="canImpersonate$ | async" between class="btn-group"> + <button *ngIf="!isImpersonated" class="btn btn-primary" (click)="impersonate()"> <i class="fa fa-user-secret"></i> {{'admin.access-control.epeople.actions.impersonate' | translate}} </button> <button *ngIf="isImpersonated" class="btn btn-primary" (click)="stopImpersonating()"> -- GitLab From 75ec046bba7f2ce3a76ec32f6bd2172894a78ca4 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Fri, 21 Jul 2023 17:49:07 +0200 Subject: [PATCH 014/183] Hide the delete EPerson/Group buttons when the user can't delete the EPerson/Group --- .../epeople-registry/epeople-registry.component.html | 2 +- .../eperson-form/eperson-form.component.html | 2 +- .../eperson-form/eperson-form.component.spec.ts | 8 ++++---- .../group-registry/group-form/group-form.component.html | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/app/access-control/epeople-registry/epeople-registry.component.html b/src/app/access-control/epeople-registry/epeople-registry.component.html index f3ddd63ae8..4979f85819 100644 --- a/src/app/access-control/epeople-registry/epeople-registry.component.html +++ b/src/app/access-control/epeople-registry/epeople-registry.component.html @@ -73,7 +73,7 @@ title="{{labelPrefix + 'table.edit.buttons.edit' | translate: { name: dsoNameService.getName(epersonDto.eperson) } }}"> <i class="fas fa-edit fa-fw"></i> </button> - <button [disabled]="!epersonDto.ableToDelete" (click)="deleteEPerson(epersonDto.eperson)" + <button *ngIf="epersonDto.ableToDelete" (click)="deleteEPerson(epersonDto.eperson)" class="delete-button btn btn-outline-danger btn-sm access-control-deleteEPersonButton" title="{{labelPrefix + 'table.edit.buttons.remove' | translate: { name: dsoNameService.getName(epersonDto.eperson) } }}"> <i class="fas fa-trash-alt fa-fw"></i> diff --git a/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.html b/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.html index 88c4f99870..fb65c91649 100644 --- a/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.html +++ b/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.html @@ -37,7 +37,7 @@ <i class="fa fa-user-secret"></i> {{'admin.access-control.epeople.actions.stop-impersonating' | translate}} </button> </div> - <button after class="btn btn-danger delete-button" [disabled]="!(canDelete$ | async)" (click)="delete()"> + <button *ngIf="canDelete$ | async" after class="btn btn-danger delete-button" (click)="delete()"> <i class="fas fa-trash"></i> {{'admin.access-control.epeople.actions.delete' | translate}} </button> </ds-form> diff --git a/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.spec.ts b/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.spec.ts index 1402f79ae3..b9aeeb0af2 100644 --- a/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.spec.ts +++ b/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.spec.ts @@ -484,16 +484,16 @@ describe('EPersonFormComponent', () => { }); - it('the delete button should be active if the eperson can be deleted', () => { + it('the delete button should be visible if the ePerson can be deleted', () => { const deleteButton = fixture.debugElement.query(By.css('.delete-button')); - expect(deleteButton.nativeElement.disabled).toBe(false); + expect(deleteButton).not.toBeNull(); }); - it('the delete button should be disabled if the eperson cannot be deleted', () => { + it('the delete button should be hidden if the ePerson cannot be deleted', () => { component.canDelete$ = observableOf(false); fixture.detectChanges(); const deleteButton = fixture.debugElement.query(By.css('.delete-button')); - expect(deleteButton.nativeElement.disabled).toBe(true); + expect(deleteButton).toBeNull(); }); it('should call the epersonFormComponent delete when clicked on the button', () => { diff --git a/src/app/access-control/group-registry/group-form/group-form.component.html b/src/app/access-control/group-registry/group-form/group-form.component.html index 0515b071ae..d5003911ae 100644 --- a/src/app/access-control/group-registry/group-form/group-form.component.html +++ b/src/app/access-control/group-registry/group-form/group-form.component.html @@ -39,7 +39,7 @@ <button (click)="onCancel()" class="btn btn-outline-secondary"><i class="fas fa-arrow-left"></i> {{messagePrefix + '.return' | translate}}</button> </div> - <div after *ngIf="groupBeingEdited != null" class="btn-group"> + <div after *ngIf="(canEdit$ | async) && !groupBeingEdited.permanent" class="btn-group"> <button class="btn btn-danger delete-button" [disabled]="!(canEdit$ | async) || groupBeingEdited.permanent" (click)="delete()"> <i class="fa fa-trash"></i> {{ messagePrefix + '.actions.delete' | translate}} -- GitLab From 15656b03ce743461dadc5d093f5347a57f50fa61 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Fri, 21 Jul 2023 23:18:40 +0200 Subject: [PATCH 015/183] Fix mathjax code being displayed twice This was due to sanitizeHtml rendering the mjx-assistive-mml tag as text. This tag is used by screen readers and therefor we should allow it to be rendered --- src/app/shared/utils/markdown.pipe.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/app/shared/utils/markdown.pipe.ts b/src/app/shared/utils/markdown.pipe.ts index e494a82613..90b6d25731 100644 --- a/src/app/shared/utils/markdown.pipe.ts +++ b/src/app/shared/utils/markdown.pipe.ts @@ -67,7 +67,9 @@ export class MarkdownPipe implements PipeTransform { // sanitize-html doesn't let through SVG by default, so we extend its allowlists to cover MathJax SVG allowedTags: [ ...sanitizeHtml.defaults.allowedTags, - 'mjx-container', 'svg', 'g', 'path', 'rect', 'text' + 'mjx-container', 'svg', 'g', 'path', 'rect', 'text', + // Also let the mjx-assistive-mml tag (and it's children) through (for screen readers) + 'mjx-assistive-mml', 'math', 'mrow', 'mi', ], allowedAttributes: { ...sanitizeHtml.defaults.allowedAttributes, @@ -88,7 +90,16 @@ export class MarkdownPipe implements PipeTransform { ], text: [ 'transform', 'font-size' - ] + ], + 'mjx-assistive-mml': [ + 'unselectable', 'display', 'style', + ], + math: [ + 'xmlns', + ], + mrow: [ + 'data-mjx-texclass', + ], }, parser: { lowerCaseAttributeNames: false, -- GitLab From 5062e464337f08031b25b132cbf865a7c38dbfe1 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Wed, 19 Jul 2023 15:35:38 +0200 Subject: [PATCH 016/183] 104312: Add missing query @Input() to ThemedDynamicLookupRelationExternalSourceTabComponent --- ...d-dynamic-lookup-relation-external-source-tab.component.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/external-source-tab/themed-dynamic-lookup-relation-external-source-tab.component.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/external-source-tab/themed-dynamic-lookup-relation-external-source-tab.component.ts index 637941ce5b..113d902c3d 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/external-source-tab/themed-dynamic-lookup-relation-external-source-tab.component.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/external-source-tab/themed-dynamic-lookup-relation-external-source-tab.component.ts @@ -15,7 +15,7 @@ import { DsDynamicLookupRelationExternalSourceTabComponent } from './dynamic-loo }) export class ThemedDynamicLookupRelationExternalSourceTabComponent extends ThemedComponent<DsDynamicLookupRelationExternalSourceTabComponent> { protected inAndOutputNames: (keyof DsDynamicLookupRelationExternalSourceTabComponent & keyof this)[] = ['label', 'listId', - 'item', 'collection', 'relationship', 'context', 'repeatable', 'importedObject', 'externalSource']; + 'item', 'collection', 'relationship', 'context', 'query', 'repeatable', 'importedObject', 'externalSource']; @Input() label: string; @@ -29,6 +29,8 @@ export class ThemedDynamicLookupRelationExternalSourceTabComponent extends Theme @Input() context: Context; + @Input() query: string; + @Input() repeatable: boolean; @Output() importedObject: EventEmitter<ListableObject> = new EventEmitter(); -- GitLab From 4965bdee5f1c340cc604bba4240f3ca23682ea4b Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Fri, 28 Jul 2023 14:10:44 -0500 Subject: [PATCH 017/183] Add action to automatically create a port PR when specified (cherry picked from commit 338b63ebb8ed847dfd2d2d872b2bc0a4994c7b83) --- .../workflows/port_merged_pull_request.yml | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 .github/workflows/port_merged_pull_request.yml diff --git a/.github/workflows/port_merged_pull_request.yml b/.github/workflows/port_merged_pull_request.yml new file mode 100644 index 0000000000..50faf3f886 --- /dev/null +++ b/.github/workflows/port_merged_pull_request.yml @@ -0,0 +1,44 @@ +# This workflow will attempt to port a merged pull request to +# the branch specified in a "port to" label (if exists) +name: Port merged Pull Request + +# Only run for merged PRs against the "main" or maintenance branches +# We allow this to run for `pull_request_target` so that github secrets are available +# (This is required when the PR comes from a forked repo) +on: + pull_request_target: + types: [ closed ] + branches: + - main + - 'dspace-**' + +permissions: + contents: write # so action can add comments + pull-requests: write # so action can create pull requests + +jobs: + port_pr: + runs-on: ubuntu-latest + # Don't run on closed *unmerged* pull requests + if: github.event.pull_request.merged + steps: + # Checkout code + - uses: actions/checkout@v3 + # Port PR to other branch (ONLY if labeled with "port to") + # See https://github.com/korthout/backport-action + - name: Create backport pull requests + uses: korthout/backport-action@v1 + with: + # Trigger based on a "port to [branch]" label on PR + # (This label must specify the branch name to port to) + label_pattern: '^port to ([^ ]+)$' + # Title to add to the (newly created) port PR + pull_title: '[Port ${target_branch}] ${pull_title}' + # Description to add to the (newly created) port PR + pull_description: 'Port of #${pull_number} by @${pull_author} to `${target_branch}`.' + # Copy all labels from original PR to (newly created) port PR + # NOTE: The labels matching 'label_pattern' are automatically excluded + copy_labels_pattern: '.*' + # Use a personal access token (PAT) to create PR as 'dspace-bot' user. + # A PAT is required in order for the new PR to trigger its own actions (for CI checks) + github_token: ${{ secrets.PR_PORT_TOKEN }} \ No newline at end of file -- GitLab From 867ae9c341368113c1d9a6746f95e03b136df76d Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Fri, 28 Jul 2023 14:11:08 -0500 Subject: [PATCH 018/183] Minor update to label_merge_conflicts to ignore any errors (seem random at this time) (cherry picked from commit d75d12b423206e0261372b372c27c04c36336cff) --- .github/workflows/label_merge_conflicts.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/label_merge_conflicts.yml b/.github/workflows/label_merge_conflicts.yml index 7ea3327741..ccc6c401c0 100644 --- a/.github/workflows/label_merge_conflicts.yml +++ b/.github/workflows/label_merge_conflicts.yml @@ -25,6 +25,8 @@ jobs: # See: https://github.com/prince-chrismc/label-merge-conflicts-action - name: Auto-label PRs with merge conflicts uses: prince-chrismc/label-merge-conflicts-action@v3 + # Ignore any failures -- may occur (randomly?) for older, outdated PRs. + continue-on-error: true # Add "merge conflict" label if a merge conflict is detected. Remove it when resolved. # Note, the authentication token is created automatically # See: https://docs.github.com/en/actions/configuring-and-managing-workflows/authenticating-with-the-github_token -- GitLab From 1b9656b1351a0de44e15c3d26cab56645b200956 Mon Sep 17 00:00:00 2001 From: Alan Orth <alan.orth@gmail.com> Date: Fri, 30 Jun 2023 09:49:01 +0300 Subject: [PATCH 019/183] src/assets/i18n: update Finnish language strings Contributed by Reeta Kuukoski from the National Library of Finland. --- src/assets/i18n/fi.json5 | 3382 +++++++++++++++++++++++++++++++++----- 1 file changed, 2975 insertions(+), 407 deletions(-) diff --git a/src/assets/i18n/fi.json5 b/src/assets/i18n/fi.json5 index 62e7e6bffe..c56fcb6fec 100644 --- a/src/assets/i18n/fi.json5 +++ b/src/assets/i18n/fi.json5 @@ -9,8 +9,6 @@ // "401.unauthorized": "unauthorized", "401.unauthorized": "valtuuttamaton", - - // "403.help": "You don't have permission to access this page. You can use the button below to get back to the home page.", "403.help": "Sinulla ei ole oikeutta nähdä sivua. Voit palata etusivulle alla olevalla painikkeella.", @@ -20,10 +18,17 @@ // "403.forbidden": "forbidden", "403.forbidden": "kielletty", + // "500.page-internal-server-error": "Service Unavailable", + "500.page-internal-server-error": "Palvelu ei ole saatavilla", + // "500.help": "The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.", + "500.help": "Palvelin ei tilapäisesti pysty käsittelemään pyyntöäsi huoltokatkon tai kapasiteettiongelmien vuoksi. Yritä myöhemmin uudelleen.", + + // "500.link.home-page": "Take me to the home page", + "500.link.home-page": "Palaa etusivulle", // "404.help": "We can't find the page you're looking for. The page may have been moved or deleted. You can use the button below to get back to the home page. ", - "404.help": "Hakemaasi sivua ei löytynyt. Sivu on voitu siirtää tai poistaa. Painamalla alapuolella olevaa nappia palaat etusivulle. ", + "404.help": "Hakemaasi sivua ei löytynyt. Sivu on voitu siirtää tai poistaa. Painamalla alapuolella olevaa painiketta palaat etusivulle. ", // "404.link.home-page": "Take me to the home page", "404.link.home-page": "Palaa etusivulle", @@ -31,6 +36,36 @@ // "404.page-not-found": "page not found", "404.page-not-found": "sivua ei löytynyt", + // "error-page.description.401": "unauthorized", + "error-page.description.401": "valtuuttamaton", + + // "error-page.description.403": "forbidden", + "error-page.description.403": "kielletty", + + // "error-page.description.500": "Service Unavailable", + "error-page.description.500": "Palvelu ei ole saatavilla", + + // "error-page.description.404": "page not found", + "error-page.description.404": "sivua ei löytynyt", + + // "error-page.orcid.generic-error": "An error occurred during login via ORCID. Make sure you have shared your ORCID account email address with DSpace. If the error persists, contact the administrator", + "error-page.orcid.generic-error": "Virhe ORCID-kirjautumisessa. Varmista, että olet tuonut ORCID-tilisi sähköpostiosoitteen DSpaceen. Jos virhe jatkuu, ota yhteyttä ylläpitäjään.", + + // "access-status.embargo.listelement.badge": "Embargo", + "access-status.embargo.listelement.badge": "Embargo", + + // "access-status.metadata.only.listelement.badge": "Metadata only", + "access-status.metadata.only.listelement.badge": "Vain metadata", + + // "access-status.open.access.listelement.badge": "Open Access", + "access-status.open.access.listelement.badge": "Open Access", + + // "access-status.restricted.listelement.badge": "Restricted", + "access-status.restricted.listelement.badge": "Rajattu", + + // "access-status.unknown.listelement.badge": "Unknown", + "access-status.unknown.listelement.badge": "Tuntematon", + // "admin.curation-tasks.breadcrumbs": "System curation tasks", "admin.curation-tasks.breadcrumbs": "Järjestelmän kuratointitehtävät", @@ -157,11 +192,11 @@ // "admin.registries.bitstream-formats.table.name": "Name", "admin.registries.bitstream-formats.table.name": "Nimi", - // "admin.registries.bitstream-formats.table.id" : "ID", + // "admin.registries.bitstream-formats.table.id": "ID", "admin.registries.bitstream-formats.table.id": "ID", - // "admin.registries.bitstream-formats.table.return": "Return", - "admin.registries.bitstream-formats.table.return": "Palaa", + // "admin.registries.bitstream-formats.table.return": "Back", + "admin.registries.bitstream-formats.table.return": "Paluu", // "admin.registries.bitstream-formats.table.supportLevel.KNOWN": "Known", "admin.registries.bitstream-formats.table.supportLevel.KNOWN": "Tunnettu", @@ -175,10 +210,8 @@ // "admin.registries.bitstream-formats.table.supportLevel.head": "Support Level", "admin.registries.bitstream-formats.table.supportLevel.head": "Tukitaso", - // "admin.registries.bitstream-formats.title": "DSpace Angular :: Bitstream Format Registry", - "admin.registries.bitstream-formats.title": "DSpace Angular :: Tiedostoformaattirekisteri", - - + // "admin.registries.bitstream-formats.title": "Bitstream Format Registry", + "admin.registries.bitstream-formats.title": "Tiedostoformaattirekisteri", // "admin.registries.metadata.breadcrumbs": "Metadata registry", "admin.registries.metadata.breadcrumbs": "Metadatarekisteri", @@ -216,10 +249,8 @@ // "admin.registries.metadata.schemas.table.namespace": "Namespace", "admin.registries.metadata.schemas.table.namespace": "Nimiavaruus", - // "admin.registries.metadata.title": "DSpace Angular :: Metadata Registry", - "admin.registries.metadata.title": "DSpace Angular :: Metadatarekisteri", - - + // "admin.registries.metadata.title": "Metadata Registry", + "admin.registries.metadata.title": "Metadatarekisteri", // "admin.registries.schema.breadcrumbs": "Metadata schema", "admin.registries.schema.breadcrumbs": "Metadataskeema", @@ -293,13 +324,11 @@ // "admin.registries.schema.notification.success": "Success", "admin.registries.schema.notification.success": "Valmis", - // "admin.registries.schema.return": "Return", - "admin.registries.schema.return": "Palaa", - - // "admin.registries.schema.title": "DSpace Angular :: Metadata Schema Registry", - "admin.registries.schema.title": "DSpace Angular :: Metadataskeemarekisteri", - + // "admin.registries.schema.return": "Back", + "admin.registries.schema.return": "Paluu", + // "admin.registries.schema.title": "Metadata Schema Registry", + "admin.registries.schema.title": "Metadataskeemarekisteri", // "admin.access-control.epeople.actions.delete": "Delete EPerson", "admin.access-control.epeople.actions.delete": "Poista käyttäjä", @@ -313,7 +342,10 @@ // "admin.access-control.epeople.actions.stop-impersonating": "Stop impersonating EPerson", "admin.access-control.epeople.actions.stop-impersonating": "Lopeta käyttäjänä esiintyminen", - // "admin.access-control.epeople.title": "DSpace Angular :: EPeople", + // "admin.access-control.epeople.breadcrumbs": "EPeople", + "admin.access-control.epeople.breadcrumbs": "Käyttäjät", + + // "admin.access-control.epeople.title": "EPeople", "admin.access-control.epeople.title": "DSpace Angular :: Käyttäjät", // "admin.access-control.epeople.head": "EPeople", @@ -334,6 +366,9 @@ // "admin.access-control.epeople.search.button": "Search", "admin.access-control.epeople.search.button": "Hae", + // "admin.access-control.epeople.search.placeholder": "Search people...", + "admin.access-control.epeople.search.placeholder": "Hae käyttäjiä...", + // "admin.access-control.epeople.button.add": "Add EPerson", "admin.access-control.epeople.button.add": "Lisää käyttäjä", @@ -352,6 +387,9 @@ // "admin.access-control.epeople.table.edit.buttons.edit": "Edit \"{{name}}\"", "admin.access-control.epeople.table.edit.buttons.edit": "Muokkaa \"{{name}}\"", + // "admin.access-control.epeople.table.edit.buttons.edit-disabled": "You are not authorized to edit this group", + "admin.access-control.epeople.table.edit.buttons.edit-disabled": "Sinulla ei ole valtuuksia muokata tätä ryhmää", + // "admin.access-control.epeople.table.edit.buttons.remove": "Delete \"{{name}}\"", "admin.access-control.epeople.table.edit.buttons.remove": "Poista \"{{name}}\"", @@ -382,6 +420,9 @@ // "admin.access-control.epeople.form.requireCertificate": "Requires certificate", "admin.access-control.epeople.form.requireCertificate": "Vaatii sertifikaatin", + // "admin.access-control.epeople.form.return": "Back", + "admin.access-control.epeople.form.return": "Paluu", + // "admin.access-control.epeople.form.notification.created.success": "Successfully created EPerson \"{{name}}\"", "admin.access-control.epeople.form.notification.created.success": "Käyttäjä \"{{name}}\" luotu", @@ -415,6 +456,9 @@ // "admin.access-control.epeople.form.table.name": "Name", "admin.access-control.epeople.form.table.name": "Nimi", + // "admin.access-control.epeople.form.table.collectionOrCommunity": "Collection/Community", + "admin.access-control.epeople.form.table.collectionOrCommunity": "Kokoelma/Yhteisö", + // "admin.access-control.epeople.form.memberOfNoGroups": "This EPerson is not a member of any groups", "admin.access-control.epeople.form.memberOfNoGroups": "Tämä käyttäjä ei kuulu mihinkään ryhmään", @@ -427,16 +471,23 @@ // "admin.access-control.epeople.notification.deleted.success": "Successfully deleted EPerson: \"{{name}}\"", "admin.access-control.epeople.notification.deleted.success": "Käyttäjä poistettu: \"{{name}}\"", + // "admin.access-control.groups.title": "Groups", + "admin.access-control.groups.title": "Ryhmät", + // "admin.access-control.groups.breadcrumbs": "Groups", + "admin.access-control.groups.breadcrumbs": "Ryhmät", - // "admin.access-control.groups.title": "DSpace Angular :: Groups", - "admin.access-control.groups.title": "DSpace Angular :: Ryhmät", + // "admin.access-control.groups.singleGroup.breadcrumbs": "Edit Group", + // "admin.access-control.groups.singleGroup.breadcrumbs": "Ryhmän muokkaus", - // "admin.access-control.groups.title.singleGroup": "DSpace Angular :: Edit Group", - "admin.access-control.groups.title.singleGroup": "DSpace Angular :: Ryhmän muokkaus", + // "admin.access-control.groups.title.singleGroup": "Edit Group", + "admin.access-control.groups.title.singleGroup": "Ryhmän muokkaus", - // "admin.access-control.groups.title.addGroup": "DSpace Angular :: New Group", - "admin.access-control.groups.title.addGroup": "DSpace Angular :: Uusi ryhmä", + // "admin.access-control.groups.title.addGroup": "New Group", + "admin.access-control.groups.title.addGroup": "Uusi ryhmä", + + // "admin.access-control.groups.addGroup.breadcrumbs": "New Group", + "admin.access-control.groups.addGroup.breadcrumbs": "uusi ryhmä", // "admin.access-control.groups.head": "Groups", "admin.access-control.groups.head": "Ryhmät", @@ -453,12 +504,18 @@ // "admin.access-control.groups.search.button": "Search", "admin.access-control.groups.search.button": "Hae", + // "admin.access-control.groups.search.placeholder": "Search groups...", + "admin.access-control.groups.search.placeholder": "Hae ryhmiä...", + // "admin.access-control.groups.table.id": "ID", "admin.access-control.groups.table.id": "ID", // "admin.access-control.groups.table.name": "Name", "admin.access-control.groups.table.name": "Nimi", + // "admin.access-control.groups.table.collectionOrCommunity": "Collection/Community", + "admin.access-control.groups.table.collectionOrCommunity": "Kokoelma/Yhteisö", + // "admin.access-control.groups.table.members": "Members", "admin.access-control.groups.table.members": "Jäsenet", @@ -483,8 +540,6 @@ // "admin.access-control.groups.notification.deleted.failure.content": "Cause: \"{{cause}}\"", "admin.access-control.groups.notification.deleted.failure.content": "Syy: \"{{cause}}\"", - - // "admin.access-control.groups.form.alert.permanent": "This group is permanent, so it can't be edited or deleted. You can still add and remove group members using this page.", "admin.access-control.groups.form.alert.permanent": "Tämä ryhmä on pysyvä, eikä sitä voi muokata tai poistaa. Ryhmään voi kuitenkin lisätä ja poistaa jäseniä tällä sivulla.", @@ -500,6 +555,9 @@ // "admin.access-control.groups.form.groupName": "Group name", "admin.access-control.groups.form.groupName": "Ryhmän nimi", + // "admin.access-control.groups.form.groupCommunity": "Community or Collection", + "admin.access-control.groups.form.groupCommunity": "Yhteisö tai kokoelma", + // "admin.access-control.groups.form.groupDescription": "Description", "admin.access-control.groups.form.groupDescription": "Kuvaus", @@ -572,6 +630,15 @@ // "admin.access-control.groups.form.members-list.table.name": "Name", "admin.access-control.groups.form.members-list.table.name": "Nimi", + // "admin.access-control.groups.form.members-list.table.identity": "Identity", + "admin.access-control.groups.form.members-list.table.identity": "Identiteetti", + + // "admin.access-control.groups.form.members-list.table.email": "Email", + "admin.access-control.groups.form.members-list.table.email": "Sähköpostiosoite", + + // "admin.access-control.groups.form.members-list.table.netid": "NetID", + "admin.access-control.groups.form.members-list.table.netid": "Käyttäjätunnus", + // "admin.access-control.groups.form.members-list.table.edit": "Remove / Add", "admin.access-control.groups.form.members-list.table.edit": "Poista / Lisää", @@ -626,6 +693,9 @@ // "admin.access-control.groups.form.subgroups-list.table.name": "Name", "admin.access-control.groups.form.subgroups-list.table.name": "Nimi", + // "admin.access-control.groups.form.subgroups-list.table.collectionOrCommunity": "Collection/Community", + "admin.access-control.groups.form.subgroups-list.table.collectionOrCommunity": "Kokoelma/Yhteisö", + // "admin.access-control.groups.form.subgroups-list.table.edit": "Remove / Add", "admin.access-control.groups.form.subgroups-list.table.edit": "Poista / Lisää", @@ -662,10 +732,18 @@ // "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": "Ryhmällä ei ole alaryhmiä.", - // "admin.access-control.groups.form.return": "Return to groups", - "admin.access-control.groups.form.return": "Palaa ryhmiin", + // "admin.access-control.groups.form.return": "Back", + "admin.access-control.groups.form.return": "Paluu", + // "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.editGroupPage": "Tällä sivulla voit muokata ryhmän ominaisuuksia ja jäseniä. Yläosassa voit muokata ryhmän nimeä ja kuvausta, paitsi jos kyseessä on kokoelman tai yhteisön ylläpitäjäryhmä, jolloin ryhmän nimi ja kuvaus luodaan automaattisesti, eikä niitä voi muokata. Muissa osioissa voit muokata ryhmän jäsenyyttä. Katso lisätietoja wiki-sivulta (https://wiki.lyrasis.org/display/DSDOC7x/Create+or+manage+a+user+group).", + // "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.addEpeople": "Voit lisätä tai poistaa ryhmän käyttäjän joko napsauttamalla 'Selaa kaikkia' -painiketta tai käyttämällä alla olevaa hakupalkkia käyttäjien etsimiseen (käytä hakupalkin vasemmalla puolella olevaa pudotusvalikkoa valitaksesi, haetaanko metatietojen vai sähköpostin perusteella). Napsauta sitten plus-kuvaketta jokaisen käyttäjän kohdalla, jonka haluat lisätä alla olevaan luetteloon, tai roskakorikuvaketta jokaisen käyttäjän kohdalla, jonka haluat poistaa. Alla olevassa luettelossa voi olla useita sivuja: voit siirtyä seuraaville sivuille luettelon alapuolella olevilla sivunohjaimilla. Kun olet valmis, tallenna muutokset napsauttamalla yläosassa olevaa Tallenna-painiketta.", + + // "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 - ree made ticket 2321 to DSpace's github + "admin.access-control.groups.form.tooltip.editGroup.addSubgroups": "Jos haluat lisätä tai poistaa alaryhmän tähän ryhmään tai tästä ryhmästä, napsauta joko 'Selaa kaikkia' -painiketta tai käytä alla olevaa hakupalkkia käyttäjien etsimiseen. Napsauta sitten luettelossa plus-kuvaketta jokaisen käyttäjän kohdalla, jonka haluat lisätä, tai roskakorikuvaketta jokaisen käyttäjän kohdalla, jonka haluat poistaa. Luettelossa voi olla useita sivuja: voit siirtyä seuraaville sivuille luettelon alapuolella olevilla sivunohjaimilla. Kun olet valmis, tallenna muutokset napsauttamalla yläosassa olevaa Tallenna-painiketta.", // "admin.search.breadcrumbs": "Administrative Search", "admin.search.breadcrumbs": "Ylläpitäjän haku", @@ -682,17 +760,17 @@ // "admin.search.item.edit": "Edit", "admin.search.item.edit": "Muokkaa", - // "admin.search.item.make-private": "Make Private", + // "admin.search.item.make-private": "Make non-discoverable", "admin.search.item.make-private": "Tee yksityiseksi", - // "admin.search.item.make-public": "Make Public", + // "admin.search.item.make-public": "Make discoverable", "admin.search.item.make-public": "Tee julkiseksi", // "admin.search.item.move": "Move", "admin.search.item.move": "Siirrä", // "admin.search.item.reinstate": "Reinstate", - "admin.search.item.reinstate": "Palauta käyttöön", + "admin.search.item.reinstate": "Palauta", // "admin.search.item.withdraw": "Withdraw", "admin.search.item.withdraw": "Poista käytöstä", @@ -703,9 +781,6 @@ // "administrativeView.search.results.head": "Administrative Search", "administrativeView.search.results.head": "Ylläpitäjän haku", - - - // "admin.workflow.breadcrumbs": "Administer Workflow", "admin.workflow.breadcrumbs": "Hallinnoi työnkulkua", @@ -715,43 +790,191 @@ // "admin.workflow.item.workflow": "Workflow", "admin.workflow.item.workflow": "Työnkulku", + // "admin.workflow.item.workspace": "Workspace", + "admin.workflow.item.workspace": "Työtila", + // "admin.workflow.item.delete": "Delete", "admin.workflow.item.delete": "Poista", // "admin.workflow.item.send-back": "Send back", "admin.workflow.item.send-back": "Lähetä takaisin", + // "admin.workflow.item.policies": "Policies", + "admin.workflow.item.policies": "Käytännöt", + // "admin.workflow.item.supervision": "Supervision", + "admin.workflow.item.supervision": "Valvonta", // "admin.metadata-import.breadcrumbs": "Import Metadata", "admin.metadata-import.breadcrumbs": "Importoi metadata", + // "admin.batch-import.breadcrumbs": "Import Batch", + "admin.batch-import.breadcrumbs": "Importoi erä", + // "admin.metadata-import.title": "Import Metadata", "admin.metadata-import.title": "Importoi metadata", + // "admin.batch-import.title": "Import Batch", + "admin.batch-import.title": "Importoi erä", + // "admin.metadata-import.page.header": "Import Metadata", "admin.metadata-import.page.header": "Importoi metadata", + // "admin.batch-import.page.header": "Import Batch", + "admin.batch-import.page.header": "Importoi erä", + // "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": "Voit pudottaa tähän tai selata CSV-tiedostoja, joilla voit tehdä metadatatoimintoja usealle tietueelle", + // "admin.batch-import.page.help": "Select the Collection to import into. Then, drop or browse to a Simple Archive Format (SAF) zip file that includes the Items to import", + "admin.batch-import.page.help": "Valitse kokoelma, johon tietueet importoidaan. Sen jälkeen pudota tai selaa esiin importoitavat tietueet sisältävä Simple Archive Format (SAF) -ZIP-tiedosto.", + + // "admin.batch-import.page.toggle.help": "It is possible to perform import either with file upload or via URL, use above toggle to set the input source", + "admin.batch-import.page.toggle.help": "Importoinnin voi tehdä joko lataamalla tiedoston tai URL-osoitteen kautta. Käytä yllä olevaa kytkintä valitaksesi syöttötavan.", + // "admin.metadata-import.page.dropMsg": "Drop a metadata CSV to import", "admin.metadata-import.page.dropMsg": "Pudota CSV-metadata importoimista varten", + // "admin.batch-import.page.dropMsg": "Drop a batch ZIP to import", + "admin.batch-import.page.dropMsg": "Pudota erän ZIP-tiedosto importoimista varten", + // "admin.metadata-import.page.dropMsgReplace": "Drop to replace the metadata CSV to import", "admin.metadata-import.page.dropMsgReplace": "Pudota korvataksesi importoitava CSV-metadata", - // "admin.metadata-import.page.button.return": "Return", + // "admin.batch-import.page.dropMsgReplace": "Drop to replace the batch ZIP to import", + "admin.batch-import.page.dropMsgReplace": "Pudota korvataksesi importoitava erän ZIP-tiedosto", + + // "admin.metadata-import.page.button.return": "Back", "admin.metadata-import.page.button.return": "Paluu", // "admin.metadata-import.page.button.proceed": "Proceed", "admin.metadata-import.page.button.proceed": "Jatka", + // "admin.metadata-import.page.button.select-collection": "Select Collection", + "admin.metadata-import.page.button.select-collection": "Valitse kokoelma", + // "admin.metadata-import.page.error.addFile": "Select file first!", "admin.metadata-import.page.error.addFile": "Valitse ensin tiedosto!", + // "admin.metadata-import.page.error.addFileUrl": "Insert file url first!", + "admin.metadata-import.page.error.addFileUrl": "Syötä tiedoston URL ensin!", + + // "admin.batch-import.page.error.addFile": "Select Zip file first!", + "admin.batch-import.page.error.addFile": "Valitse ZIP-tiedosto ensin!", + + // "admin.metadata-import.page.toggle.upload": "Upload", + "admin.metadata-import.page.toggle.upload": "Lataa", + + // "admin.metadata-import.page.toggle.url": "URL", + "admin.metadata-import.page.toggle.url": "URL", + + // "admin.metadata-import.page.urlMsg": "Insert the batch ZIP url to import", + "admin.metadata-import.page.urlMsg": "Syötä erän ZIP-URL importoitavaksi", + + // "admin.metadata-import.page.validateOnly": "Validate Only", + "admin.metadata-import.page.validateOnly": "Pelkkä validointi", + + // "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": "Kun tämä valitaan, ladattu CSV-tiedosto validoidaan. Saat raportin havaituista muutoksista, mutta muutoksia ei tallenneta.", + + // "advanced-workflow-action.rating.form.rating.label": "Rating", + "advanced-workflow-action.rating.form.rating.label": "Arviointi", + + // "advanced-workflow-action.rating.form.rating.error": "You must rate the item", + "advanced-workflow-action.rating.form.rating.error": "Sinun on arvioitava tietua", + + // "advanced-workflow-action.rating.form.review.label": "Review", + "advanced-workflow-action.rating.form.review.label": "Tarkasta", + + // "advanced-workflow-action.rating.form.review.error": "You must enter a review to submit this rating", + "advanced-workflow-action.rating.form.review.error": "Sinun on annettava arvostelu lähettääksesi tämän arvioinnin", + + // "advanced-workflow-action.rating.description": "Please select a rating below", + "advanced-workflow-action.rating.description": "Valitse arviointi alapuolelta", + + // "advanced-workflow-action.rating.description-requiredDescription": "Please select a rating below and also add a review", + "advanced-workflow-action.rating.description-requiredDescription": "Valitse arviointi alapuolelta. Lisää myös arvostelu", + + // "advanced-workflow-action.select-reviewer.description-single": "Please select a single reviewer below before submitting", + "advanced-workflow-action.select-reviewer.description-single": "Valitse yksi tarkastaja alapuolelta ennen lähettämistä", + + // "advanced-workflow-action.select-reviewer.description-multiple": "Please select one or more reviewers below before submitting", + "advanced-workflow-action.select-reviewer.description-multiple": "Valitse yksi tai useampi tarkastaja alapuolelta ennen lähettämistä", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.head": "EPeople", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.head": "Käyttäjät", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.head": "Add EPeople", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.head": "Lisää käyttäjiä", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.button.see-all": "Browse All", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.button.see-all": "Selaa kaikkia", + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.headMembers": "Current Members", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.headMembers": "Nykyiset jäsenet", + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.metadata": "Metadata", + "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)", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.email": "Sähköpostiosoite (oikea)", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.button": "Search", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.button": "Hae", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.id": "ID", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.id": "ID", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.name": "Name", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.name": "Nimi", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.identity": "Identity", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.identity": "Identiteetti", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.email": "Email", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.email": "Sähköpostiosoite", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.netid": "NetID", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.netid": "Käyttäjätunnus", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit": "Remove / Add", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit": "Poista / Lisää", + + // "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.table.edit.buttons.remove": "Poista jäsen nimellä \"{{name}}\"", + + // "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.success.addMember": "Jäsen lisätty: \"{{name}}\"", + + // "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.failure.addMember": "Jäsenen lisäys epäonnistui: \"{{name}}\"", + + // "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.success.deleteMember": "Jäsen poistettu: \"{{name}}\"", + + // "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.notification.failure.deleteMember": "Jäsenen poisto epäonnistui: \"{{name}}\"", + + // "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.table.edit.buttons.add": "Lisää jäsen nimellä \"{{name}}\"", + + // "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.notification.failure.noActiveGroup": "Ei aktiivista ryhmää, syötä ensin nimi", + + // "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-members-yet": "Ryhmässä ei ole vielä jäseniä, hae ja lisää.", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-items": "No EPeople found in that search", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-items": "Haku ei palauttanut käyttäjiä", + + // "advanced-workflow-action.select-reviewer.no-reviewer-selected.error": "No reviewer selected.", + "advanced-workflow-action.select-reviewer.no-reviewer-selected.error": "Ei valittua tarkastajaa.", + + // "admin.batch-import.page.validateOnly.hint": "When selected, the uploaded ZIP will be validated. You will receive a report of detected changes, but no changes will be saved.", + "admin.batch-import.page.validateOnly.hint": "Kun tämä valitaan, ladattu ZIP-tiedosto validoidaan. the uploaded ZIP will be validated. Saat raportin havaituista muutoksista, mutta muutoksia ei tallenneta.", + + // "admin.batch-import.page.remove": "remove", + "admin.batch-import.page.remove": "poista", // "auth.errors.invalid-user": "Invalid email address or password.", "auth.errors.invalid-user": "Virheellinen sähköpostiosoite tai salasana.", @@ -759,7 +982,23 @@ // "auth.messages.expired": "Your session has expired. Please log in again.", "auth.messages.expired": "Istuntosi on vanhentunut. Kirjaudu uudelleen.", + // "auth.messages.token-refresh-failed": "Refreshing your session token failed. Please log in again.", + "auth.messages.token-refresh-failed": "Istuntotunnisteen päivittäminen epäonnistui. Kirjaudu uudelleen.", + + // "bitstream.download.page": "Now downloading {{bitstream}}...", + "bitstream.download.page": "Nyt ladataan {{bitstream}}...", + + // "bitstream.download.page.back": "Back", + "bitstream.download.page.back": "Paluu", + + // "bitstream.edit.authorizations.link": "Edit bitstream's Policies", + "bitstream.edit.authorizations.link": "Muokkaa tiedostokäytäntöjä", + + // "bitstream.edit.authorizations.title": "Edit bitstream's Policies", + "bitstream.edit.authorizations.title": "Muokkaa tiedostokäytäntöjä", + // "bitstream.edit.return": "Back", + "bitstream.edit.return": "Paluu", // "bitstream.edit.bitstream": "Bitstream: ", "bitstream.edit.bitstream": "Tiedosto: ", @@ -803,6 +1042,33 @@ // "bitstream.edit.notifications.error.format.title": "An error occurred saving the bitstream's format", "bitstream.edit.notifications.error.format.title": "Virhe tallennettaessa tiedoston formaattia", + // "bitstream.edit.notifications.error.primaryBitstream.title": "An error occurred saving the primary bitstream", + "bitstream.edit.notifications.error.primaryBitstream.title": "Virhe tallennettaessa päätiedostoa", + + // "bitstream.edit.form.iiifLabel.label": "IIIF Label", + "bitstream.edit.form.iiifLabel.label": "IIIF-nimike", + + // "bitstream.edit.form.iiifLabel.hint": "Canvas label for this image. If not provided default label will be used.", + "bitstream.edit.form.iiifLabel.hint": "Kuvan canvasin nimike. Ellei nimikettä anneta, käytetään oletusnimikettä.", + + // "bitstream.edit.form.iiifToc.label": "IIIF Table of Contents", + "bitstream.edit.form.iiifToc.label": "IIIF-sisällysluettelo", + + // "bitstream.edit.form.iiifToc.hint": "Adding text here makes this the start of a new table of contents range.", + "bitstream.edit.form.iiifToc.hint": "Jos tekstiä lisätään tähän, tästä alkaa uusi sisällysluetteloaihe.", + + // "bitstream.edit.form.iiifWidth.label": "IIIF Canvas Width", + "bitstream.edit.form.iiifWidth.label": "IIIF-canvasin leveys", + + // "bitstream.edit.form.iiifWidth.hint": "The canvas width should usually match the image width.", + "bitstream.edit.form.iiifWidth.hint": "Canvasin leveyden tulee vastata kuvan leveyttä.", + + // "bitstream.edit.form.iiifHeight.label": "IIIF Canvas Height", + "bitstream.edit.form.iiifHeight.label": "IIIF-canvasin korkeus", + + // "bitstream.edit.form.iiifHeight.hint": "The canvas height should usually match the image height.", + "bitstream.edit.form.iiifHeight.hint": "Canvasin korkeuden tulee vastata kuvan korkeutta.", + // "bitstream.edit.notifications.saved.content": "Your changes to this bitstream were saved.", "bitstream.edit.notifications.saved.content": "Muutokset tiedostoon on tallennettu.", @@ -812,7 +1078,65 @@ // "bitstream.edit.title": "Edit bitstream", "bitstream.edit.title": "Muokkaa tiedostoa", + // "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": "Sinulla on jo pääsy tähän tiedostoon. Jos haluat ladata tiedoston, napsauta ", + + // "bitstream-request-a-copy.alert.canDownload2": "here", + "bitstream-request-a-copy.alert.canDownload2": "tässä", + + // "bitstream-request-a-copy.header": "Request a copy of the file", + "bitstream-request-a-copy.header": "Pyydä tiedostokopiota", + + // "bitstream-request-a-copy.intro": "Enter the following information to request a copy for the following item: ", + "bitstream-request-a-copy.intro": "Syötä seuraavat tiedot pyytääksesi kopiota tietueesta: ", + + // "bitstream-request-a-copy.intro.bitstream.one": "Requesting the following file: ", + "bitstream-request-a-copy.intro.bitstream.one": "Pyydetään seuraavaa tiedostoa: ", + + // "bitstream-request-a-copy.intro.bitstream.all": "Requesting all files. ", + "bitstream-request-a-copy.intro.bitstream.all": "Pyydetään kaikkia tiedostoja. ", + + // "bitstream-request-a-copy.name.label": "Name *", + "bitstream-request-a-copy.name.label": "Nimi *", + + // "bitstream-request-a-copy.name.error": "The name is required", + "bitstream-request-a-copy.name.error": "Nimi on pakollinen tieto", + + // "bitstream-request-a-copy.email.label": "Your e-mail address *", + "bitstream-request-a-copy.email.label": "Sähköpostiosoite *", + + // "bitstream-request-a-copy.email.hint": "This email address is used for sending the file.", + "bitstream-request-a-copy.email.hint": "Tätä sähköpostiosoitetta käytetään tiedostoa lähetettäessä.", + + // "bitstream-request-a-copy.email.error": "Please enter a valid email address.", + "bitstream-request-a-copy.email.error": "Syötä toimiva sähköpostiosoite.", + + // "bitstream-request-a-copy.allfiles.label": "Files", + "bitstream-request-a-copy.allfiles.label": "Tiedostot", + + // "bitstream-request-a-copy.files-all-false.label": "Only the requested file", + "bitstream-request-a-copy.files-all-false.label": "Vain pyydetty tiedosto", + + // "bitstream-request-a-copy.files-all-true.label": "All files (of this item) in restricted access", + "bitstream-request-a-copy.files-all-true.label": "Kaikilla (tämän tietueen) tiedostoilla on rajattu käyttöoikeus", + + // "bitstream-request-a-copy.message.label": "Message", + "bitstream-request-a-copy.message.label": "Viesti", + + // "bitstream-request-a-copy.return": "Back", + "bitstream-request-a-copy.return": "Paluu", + // "bitstream-request-a-copy.submit": "Request copy", + "bitstream-request-a-copy.submit": "Pyydä kopio", + + // "bitstream-request-a-copy.submit.success": "The item request was submitted successfully.", + "bitstream-request-a-copy.submit.success": "Tietuepyyntö on lähetetty.", + + // "bitstream-request-a-copy.submit.error": "Something went wrong with submitting the item request.", + "bitstream-request-a-copy.submit.error": "Tapahtui virhe lähetettäessä tietuepyyntöä", + + // "browse.back.all-results": "All browse results", + "browse.back.all-results": "Kaikki selaustulokset", // "browse.comcol.by.author": "By Author", "browse.comcol.by.author": "Tekijän mukaan", @@ -823,6 +1147,9 @@ // "browse.comcol.by.subject": "By Subject", "browse.comcol.by.subject": "Asiasanan mukaan", + // "browse.comcol.by.srsc": "By Subject Category", + "browse.comcol.by.srsc": "Aihekategorian mukaan", + // "browse.comcol.by.title": "By Title", "browse.comcol.by.title": "Nimekkeen mukaan", @@ -853,17 +1180,35 @@ // "browse.metadata.subject.breadcrumbs": "Browse by Subject", "browse.metadata.subject.breadcrumbs": "Selaa asiasanan mukaan", + // "browse.metadata.srsc.breadcrumbs": "Browse by Subject Category", + "browse.metadata.srsc.breadcrumbs": "Selaa aihekategorian luokan mukaan", + // "browse.metadata.title.breadcrumbs": "Browse by Title", "browse.metadata.title.breadcrumbs": "Selaa nimekkeen mukaan", + // "pagination.next.button": "Next", + "pagination.next.button": "Seuraava", + + // "pagination.previous.button": "Previous", + "pagination.previous.button": "Edellinen", + + // "pagination.next.button.disabled.tooltip": "No more pages of results", + "pagination.next.button.disabled.tooltip": "Ei enempää tulossivuja", + + // "browse.startsWith": ", starting with {{ startsWith }}", + "browse.startsWith": ", alkaa kirjaimella {{ startsWith }}", + // "browse.startsWith.choose_start": "(Choose start)", "browse.startsWith.choose_start": "(Valitse alku)", // "browse.startsWith.choose_year": "(Choose year)", "browse.startsWith.choose_year": "(Valitse vuosi)", - // "browse.startsWith.jump": "Jump to a point in the index:", - "browse.startsWith.jump": "Hyppää indeksin kohtaan:", + // "browse.startsWith.choose_year.label": "Choose the issue year", + "browse.startsWith.choose_year.label": "Valitse julkaisuvuosi", + + // "browse.startsWith.jump": "Filter results by year or month", + "browse.startsWith.jump": "Suodata tulokset vuoden tai kuukauden mukaan", // "browse.startsWith.months.april": "April", "browse.startsWith.months.april": "Huhtikuu", @@ -895,6 +1240,9 @@ // "browse.startsWith.months.none": "(Choose month)", "browse.startsWith.months.none": "(Valitse kuukausi)", + // "browse.startsWith.months.none.label": "Choose the issue month", + "browse.startsWith.months.none.label": "Valitse julkaisukuukausi", + // "browse.startsWith.months.november": "November", "browse.startsWith.months.november": "Marraskuu", @@ -904,23 +1252,44 @@ // "browse.startsWith.months.september": "September", "browse.startsWith.months.september": "Syyskuu", - // "browse.startsWith.submit": "Go", - "browse.startsWith.submit": "Ok", + // "browse.startsWith.submit": "Browse", + "browse.startsWith.submit": "Selaa", + + // "browse.startsWith.type_date": "Filter results by date", + "browse.startsWith.type_date": "Suodata tulokset päivämäärän mukaan", - // "browse.startsWith.type_date": "Or type in a date (year-month):", - "browse.startsWith.type_date": "Tai anna päiväys (vuosi-kuukausi):", + // "browse.startsWith.type_date.label": "Or type in a date (year-month) and click on the Browse button", + "browse.startsWith.type_date.label": "Tai syötä päiväys (vuosi-kuukausi) ja napsauta Selaa-painiketta", - // "browse.startsWith.type_text": "Or enter first few letters:", - "browse.startsWith.type_text": "Tai anna muutama alkukirjain:", + // "browse.startsWith.type_text": "Filter results by typing the first few letters", + "browse.startsWith.type_text": "Suodata tuloksia antamalla muutama alkukirjain", - // "browse.title": "Browsing {{ collection }} by {{ field }} {{ value }}", - "browse.title": "Selataan {{ collection }}-kokoelmaa {{ field }}-kentän arvolla {{ value }}", + // "browse.startsWith.input": "Filter", + "browse.startsWith.input": "Suodata", + // "browse.taxonomy.button": "Browse", + "browse.taxonomy.button": "Selaa", + + // "browse.title": "Browsing {{ collection }} by {{ field }}{{ startsWith }} {{ value }}", + "browse.title": "Selataan {{ collection }}-kokoelmaa {{ field }}{{ startsWith }}-kentän arvolla {{ value }}", + + // "browse.title.page": "Browsing {{ collection }} by {{ field }} {{ value }}", + "browse.title.page": "Selataan {{ collection }}-kokoelmaa {{ field }}-kentän arvolla {{ value }}", + + // "search.browse.item-back": "Back to Results", + "search.browse.item-back": "Paluu tuloksiin", // "chips.remove": "Remove chip", "chips.remove": "Poista chip", + // "claimed-approved-search-result-list-element.title": "Approved", + "claimed-approved-search-result-list-element.title": "Hyväksytty", + + // "claimed-declined-search-result-list-element.title": "Rejected, sent back to submitter", + "claimed-declined-search-result-list-element.title": "Hylätty, lähetetty takaisin tallentajalle", + // "claimed-declined-task-search-result-list-element.title": "Declined, sent back to Review Manager's workflow", + "claimed-declined-task-search-result-list-element.title": "Kieltäydytty, lähetetty takaisin päätarkastajan työnkulkuun", // "collection.create.head": "Create a Collection", "collection.create.head": "Luo kokoelma", @@ -940,6 +1309,9 @@ // "collection.delete.confirm": "Confirm", "collection.delete.confirm": "Vahvista", + // "collection.delete.processing": "Deleting", + "collection.delete.processing": "Poistetaan", + // "collection.delete.head": "Delete Collection", "collection.delete.head": "Poista kokoelma", @@ -952,8 +1324,6 @@ // "collection.delete.text": "Are you sure you want to delete collection \"{{ dso }}\"", "collection.delete.text": "Haluatko varmasti poistaa kokoelman \"{{ dso }}\"", - - // "collection.edit.delete": "Delete this collection", "collection.edit.delete": "Poista kokoelma", @@ -963,8 +1333,6 @@ // "collection.edit.breadcrumbs": "Edit Collection", "collection.edit.breadcrumbs": "Muokkaa kokoelmaa", - - // "collection.edit.tabs.mapper.head": "Item Mapper", "collection.edit.tabs.mapper.head": "Tietueliitosväline", @@ -1016,13 +1384,20 @@ // "collection.edit.item-mapper.remove": "Remove selected item mappings", "collection.edit.item-mapper.remove": "Poista valitut tietueliitokset", + // "collection.edit.item-mapper.search-form.placeholder": "Search items...", + "collection.edit.item-mapper.search-form.placeholder": "Hae tietueita...", + // "collection.edit.item-mapper.tabs.browse": "Browse mapped items", "collection.edit.item-mapper.tabs.browse": "Selaa liitettyjä tietueita", // "collection.edit.item-mapper.tabs.map": "Map new items", "collection.edit.item-mapper.tabs.map": "Liitä uusia tietueita", + // "collection.edit.logo.delete.title": "Delete logo", + "collection.edit.logo.delete.title": "Poista logo", + // "collection.edit.logo.delete-undo.title": "Undo delete", + "collection.edit.logo.delete-undo.title": "Kumoa poisto", // "collection.edit.logo.label": "Collection logo", "collection.edit.logo.label": "Kokoelman logo", @@ -1045,15 +1420,11 @@ // "collection.edit.logo.upload": "Drop a Collection Logo to upload", "collection.edit.logo.upload": "Pudota kokoelman logo ladattavaksi", - - // "collection.edit.notifications.success": "Successfully edited the Collection", "collection.edit.notifications.success": "Kokoelman muokkaus onnistui", - // "collection.edit.return": "Return", - "collection.edit.return": "Palaa", - - + // "collection.edit.return": "Back", + "collection.edit.return": "Paluu", // "collection.edit.tabs.curate.head": "Curate", "collection.edit.tabs.curate.head": "Kuratoi", @@ -1067,6 +1438,15 @@ // "collection.edit.tabs.authorizations.title": "Collection Edit - Authorizations", "collection.edit.tabs.authorizations.title": "Kokoelman muokkaus - Käyttöoikeudet", + // "collection.edit.item.authorizations.load-bundle-button": "Load more bundles", + "collection.edit.item.authorizations.load-bundle-button": "Lataa lisää nippuja", + + // "collection.edit.item.authorizations.load-more-button": "Load more", + "collection.edit.item.authorizations.load-more-button": "Lataa lisää", + + // "collection.edit.item.authorizations.show-bitstreams-button": "Show bitstream policies for bundle", + "collection.edit.item.authorizations.show-bitstreams-button": "Näytä nipun tiedostokäytännöt", + // "collection.edit.tabs.metadata.head": "Edit Metadata", "collection.edit.tabs.metadata.head": "Muokkaa metadataa", @@ -1115,7 +1495,7 @@ // "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": "Muutokset hylätty. Valitse 'Kumoa' palauttaaksesi muutokset", - // "collection.edit.tabs.source.notifications.discarded.title": "Changed discarded", + // "collection.edit.tabs.source.notifications.discarded.title": "Changes discarded", "collection.edit.tabs.source.notifications.discarded.title": "Muutokset hylätty", // "collection.edit.tabs.source.notifications.invalid.content": "Your changes were not saved. Please make sure all fields are valid before you save.", @@ -1133,8 +1513,6 @@ // "collection.edit.tabs.source.title": "Collection Edit - Content Source", "collection.edit.tabs.source.title": "Kokoelman muokkaus - Sisältölähde", - - // "collection.edit.template.add-button": "Add", "collection.edit.template.add-button": "Lisää", @@ -1150,12 +1528,18 @@ // "collection.edit.template.edit-button": "Edit", "collection.edit.template.edit-button": "Muokkaa", + // "collection.edit.template.error": "An error occurred retrieving the template item", + "collection.edit.template.error": "Virhe noudettaessa mallitietuetta", + // "collection.edit.template.head": "Edit Template Item for Collection \"{{ collection }}\"", "collection.edit.template.head": "Muokkaa kokoelman \"{{ collection }}\" mallitietuetta", // "collection.edit.template.label": "Template item", "collection.edit.template.label": "Mallitietue", + // "collection.edit.template.loading": "Loading template item...", + "collection.edit.template.loading": "Ladataan mallitietuetta...", + // "collection.edit.template.notifications.delete.error": "Failed to delete the item template", "collection.edit.template.notifications.delete.error": "Tietueen mallipohjan poisto epäonnistui", @@ -1165,8 +1549,6 @@ // "collection.edit.template.title": "Edit Template Item", "collection.edit.template.title": "Muokkaa mallitietuetta", - - // "collection.form.abstract": "Short Description", "collection.form.abstract": "Lyhyt kuvaus", @@ -1191,13 +1573,12 @@ // "collection.form.title": "Name", "collection.form.title": "Nimi", - + // "collection.form.entityType": "Entity Type", + "collection.form.entityType": "Entiteettityyppi", // "collection.listelement.badge": "Collection", "collection.listelement.badge": "Kokoelma", - - // "collection.page.browse.recent.head": "Recent Submissions", "collection.page.browse.recent.head": "Viimeksi lisätyt", @@ -1216,8 +1597,6 @@ // "collection.page.news": "News", "collection.page.news": "Uutiset", - - // "collection.select.confirm": "Confirm selected", "collection.select.confirm": "Vahvista valinta", @@ -1227,7 +1606,74 @@ // "collection.select.table.title": "Title", "collection.select.table.title": "Nimeke", + // "collection.source.controls.head": "Harvest Controls", + "collection.source.controls.head": "Harvointikontrollit", + + // "collection.source.controls.test.submit.error": "Something went wrong with initiating the testing of the settings", + "collection.source.controls.test.submit.error": "Virhe asetusten testaamisen valmistelussa", + + // "collection.source.controls.test.failed": "The script to test the settings has failed", + "collection.source.controls.test.failed": "Asetusten testausskripti epäonnistui", + + // "collection.source.controls.test.completed": "The script to test the settings has successfully finished", + "collection.source.controls.test.completed": "Asetusten testausskripti suoritettu", + + // "collection.source.controls.test.submit": "Test configuration", + "collection.source.controls.test.submit": "Testikonfiguraatio", + + // "collection.source.controls.test.running": "Testing configuration...", + "collection.source.controls.test.running": "Testataan konfiguraatiota...", + + // "collection.source.controls.import.submit.success": "The import has been successfully initiated", + "collection.source.controls.import.submit.success": "Importointi valmisteltu", + + // "collection.source.controls.import.submit.error": "Something went wrong with initiating the import", + "collection.source.controls.import.submit.error": "Virhe importoinnin valmistelussa", + + // "collection.source.controls.import.submit": "Import now", + "collection.source.controls.import.submit": "Importoi nyt", + // "collection.source.controls.import.running": "Importing...", + "collection.source.controls.import.running": "Importoidaan...", + + // "collection.source.controls.import.failed": "An error occurred during the import", + "collection.source.controls.import.failed": "Virhe importoinnissa", + + // "collection.source.controls.import.completed": "The import completed", + "collection.source.controls.import.completed": "Importointi valmis", + + // "collection.source.controls.reset.submit.success": "The reset and reimport has been successfully initiated", + "collection.source.controls.reset.submit.success": "Nollaus ja uudelleenimportointi valmisteltu", + + // "collection.source.controls.reset.submit.error": "Something went wrong with initiating the reset and reimport", + "collection.source.controls.reset.submit.error": "Virhe nollauksen ja uudelleenimportoinnin valmistelussa", + + // "collection.source.controls.reset.failed": "An error occurred during the reset and reimport", + "collection.source.controls.reset.failed": "Virhe nollauksessa ja uudelleenimportoinnissa", + + // "collection.source.controls.reset.completed": "The reset and reimport completed", + "collection.source.controls.reset.completed": "Nollaus ja uudelleenimportointi valmis", + + // "collection.source.controls.reset.submit": "Reset and reimport", + "collection.source.controls.reset.submit": "Nollaus ja uudelleenimportointi", + + // "collection.source.controls.reset.running": "Resetting and reimporting...", + "collection.source.controls.reset.running": "Nollataan ja uudelleenimportoidaan...", + + // "collection.source.controls.harvest.status": "Harvest status:", + "collection.source.controls.harvest.status": "Harvestoinnin tila:", + + // "collection.source.controls.harvest.start": "Harvest start time:", + "collection.source.controls.harvest.start": "Harvestoinnin aloitusaika:", + + // "collection.source.controls.harvest.last": "Last time harvested:", + "collection.source.controls.harvest.last": "Harvestoitu viimeksi::", + + // "collection.source.controls.harvest.message": "Harvest info:", + "collection.source.controls.harvest.message": "Harvestointitiedot:", + + // "collection.source.controls.harvest.no-information": "N/A", + "collection.source.controls.harvest.no-information": "Ei saatavilla", // "collection.source.update.notifications.error.content": "The provided settings have been tested and didn't work.", "collection.source.update.notifications.error.content": "Annetut asetukset on testattu. Ne eivät toimi.", @@ -1235,10 +1681,11 @@ // "collection.source.update.notifications.error.title": "Server Error", "collection.source.update.notifications.error.title": "Palvelinvirhe", + // "communityList.breadcrumbs": "Community List", + "communityList.breadcrumbs": "Yhteisöluettelo", - - // "communityList.tabTitle": "DSpace - Community List", - "communityList.tabTitle": "DSpace - Yhteisöluettelo", + // "communityList.tabTitle": "Community List", + "communityList.tabTitle": "Yhteisöluettelo", // "communityList.title": "List of Communities", "communityList.title": "Luettelo yhteisöistä", @@ -1246,8 +1693,6 @@ // "communityList.showMore": "Show More", "communityList.showMore": "Näytä lisää", - - // "community.create.head": "Create a Community", "community.create.head": "Luo yhteisö", @@ -1266,6 +1711,9 @@ // "community.delete.confirm": "Confirm", "community.delete.confirm": "Vahvista", + // "community.delete.processing": "Deleting...", + "community.delete.processing": "Poistetaan...", + // "community.delete.head": "Delete Community", "community.delete.head": "Poista yhteisö", @@ -1287,6 +1735,11 @@ // "community.edit.breadcrumbs": "Edit Community", "community.edit.breadcrumbs": "Muokkaa yhteisöä", + // "community.edit.logo.delete.title": "Delete logo", + "community.edit.logo.delete.title": "Poista logo", + + // "community.edit.logo.delete-undo.title": "Undo delete", + "community.edit.logo.delete-undo.title": "Kumoa poisto", // "community.edit.logo.label": "Community logo", "community.edit.logo.label": "Yhteisön logo", @@ -1309,8 +1762,6 @@ // "community.edit.logo.upload": "Drop a Community Logo to upload", "community.edit.logo.upload": "Pudota yhteisön logo ladattavaksi", - - // "community.edit.notifications.success": "Successfully edited the Community", "community.edit.notifications.success": "Yhteisön muokkaus onnistui", @@ -1320,10 +1771,8 @@ // "community.edit.notifications.error": "An error occured while editing the Community", "community.edit.notifications.error": "Virhe muokattaessa yhteisöä", - // "community.edit.return": "Return", - "community.edit.return": "Palaa", - - + // "community.edit.return": "Back", + "community.edit.return": "Paluu", // "community.edit.tabs.curate.head": "Curate", "community.edit.tabs.curate.head": "Kuratoi", @@ -1349,25 +1798,26 @@ // "community.edit.tabs.authorizations.title": "Community Edit - Authorizations", "community.edit.tabs.authorizations.title": "Yhteisön muokkaus - Käyttöoikeudet", - - // "community.listelement.badge": "Community", "community.listelement.badge": "Yhteisö", - - // "comcol-role.edit.no-group": "None", "comcol-role.edit.no-group": "Ei mitään", // "comcol-role.edit.create": "Create", "comcol-role.edit.create": "Luo", + // "comcol-role.edit.create.error.title": "Failed to create a group for the '{{ role }}' role", + "comcol-role.edit.create.error.title": "Ryhmän luonti '{{ role }}'-roolille epäonnistui", + // "comcol-role.edit.restrict": "Restrict", "comcol-role.edit.restrict": "Rajoita", // "comcol-role.edit.delete": "Delete", "comcol-role.edit.delete": "Poista", + // "comcol-role.edit.delete.error.title": "Failed to delete the '{{ role }}' role's group", + "comcol-role.edit.delete.error.title": "'{{ role }}'-roolin ryhmän poisto epäonnistui", // "comcol-role.edit.community-admin.name": "Administrators", "comcol-role.edit.community-admin.name": "Ylläpitäjät", @@ -1375,21 +1825,18 @@ // "comcol-role.edit.collection-admin.name": "Administrators", "comcol-role.edit.collection-admin.name": "Ylläpitäjät", - // "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": "Yhteisön ylläpitäjät voivat luoda alayhteisöjä tai kokoelmia ja hallita niitä sekä myöntää niihin hallintaoikeuksia. He päättävät, kuka saa tallentaa tietueita alakokoelmiin, muokata metadataa (tallennuksen jälkeen) ja lisätä (liittää) olemassa olevia tietueita muista kokoelmista (käyttöoikeuksien puitteissa).", // "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": "Kokoelman ylläpitäjät päättävät, kuka saa tallentaa tietueita alakokoelmiin, muokata metadataa (tallennuksen jälkeen) ja lisätä (liittää) olemassa olevia tietueita muista kokoelmista (k.o. kokoelman käyttöoikeuksien puitteissa).", - // "comcol-role.edit.submitters.name": "Submitters", "comcol-role.edit.submitters.name": "Tallentajat", // "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": "Käyttäjät ja ryhmät, joilla on oikeus tallentaa uusia tietueita tähän kokoelmaan", - // "comcol-role.edit.item_read.name": "Default item read access", "comcol-role.edit.item_read.name": "Tietueen oletuslukuoikeus", @@ -1399,7 +1846,6 @@ // "comcol-role.edit.item_read.anonymous-group": "Default read for incoming items is currently set to Anonymous.", "comcol-role.edit.item_read.anonymous-group": "Uusien tietuiden oletuslukuoikeus on tällä hetkellä Anonymous.", - // "comcol-role.edit.bitstream_read.name": "Default bitstream read access", "comcol-role.edit.bitstream_read.name": "Tiedostojen oletuslukuoikeus", @@ -1409,28 +1855,29 @@ // "comcol-role.edit.bitstream_read.anonymous-group": "Default read for incoming bitstreams is currently set to Anonymous.", "comcol-role.edit.bitstream_read.anonymous-group": "Uusien tiedostojen oletuslukuoikeus on tällä hetkellä Anonymous.", - // "comcol-role.edit.editor.name": "Editors", "comcol-role.edit.editor.name": "Muokkaajat", // "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": "Muokkaajat voivat muokata uusien tallennusten metadataa sekä hyväksyä tai hylätä tallennukset.", - // "comcol-role.edit.finaleditor.name": "Final editors", "comcol-role.edit.finaleditor.name": "Loppumuokkaajat", // "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": "Loppumuokkaajat voivat muokata uusien tallennusten metadataa. He eivät voi hylätä tallennuksia.", - // "comcol-role.edit.reviewer.name": "Reviewers", "comcol-role.edit.reviewer.name": "Tarkastajat", // "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": "Tarkastajat voivat hyväksyä tai hylätä uudet tallennukset. He eivät voi muokata tallennusten metadataa.", + // "comcol-role.edit.scorereviewers.name": "Score Reviewers", + "comcol-role.edit.scorereviewers.name": "Arvosanatarkastajat", + // "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.", + "comcol-role.edit.scorereviewers.description": "Tarkastajat voivat antaa tallennettaville julkaisuille arvosanan, joka määrittää, hylätäänkö vai hyväksytäänkö tallennus.", // "community.form.abstract": "Short Description", "community.form.abstract": "Lyhyt kuvaus", @@ -1471,8 +1918,6 @@ // "community.sub-community-list.head": "Communities of this Community", "community.sub-community-list.head": "Yhteisön alayhteisöt", - - // "cookies.consent.accept-all": "Accept all", "cookies.consent.accept-all": "Hyväksy kaikki", @@ -1494,6 +1939,12 @@ // "cookies.consent.app.required.title": "(always required)", "cookies.consent.app.required.title": "(aina pakollinen)", + // "cookies.consent.app.disable-all.description": "Use this switch to enable or disable all services.", + "cookies.consent.app.disable-all.description": "Tästä kytkimestä voit ottaa kaikki palvelut käyttöön tai poistaa ne käytöstä", + + // "cookies.consent.app.disable-all.title": "Enable or disable all services", + "cookies.consent.app.disable-all.title": "Ota käyttöön tai poista käytöstä kaikki palvelut", + // "cookies.consent.update": "There were changes since your last visit, please update your consent.", "cookies.consent.update": "Viime käyntisi jälkeen on tehty muutoksia. Ole hyvä ja päivitä suostumuksesi.", @@ -1503,9 +1954,21 @@ // "cookies.consent.decline": "Decline", "cookies.consent.decline": "Kieltäydy", + // "cookies.consent.ok": "That's ok", + "cookies.consent.ok": "OK", + + // "cookies.consent.save": "Save", + "cookies.consent.save": "Tallenna", + + // "cookies.consent.content-notice.title": "Cookie Consent", + "cookies.consent.content-notice.title": "Evästeiden hyväksyntä", + // "cookies.consent.content-notice.description": "We collect and process your personal information for the following purposes: <strong>Authentication, Preferences, Acknowledgement and Statistics</strong>. <br/> To learn more, please read our {privacyPolicy}.", "cookies.consent.content-notice.description": "Keräämme ja käsittelemme tietojasi seuraaviin tarkoituksiin: <strong>todentaminen, asetukset, kuittaus ja tilastot</strong>. <br/> Lisätietoa saat lukemalla tämän: {privacyPolicy}.", + // "cookies.consent.content-notice.description.no-privacy": "We collect and process your personal information for the following purposes: <strong>Authentication, Preferences, Acknowledgement and Statistics</strong>.", + "cookies.consent.content-notice.description.no-privacy": "Keräämme ja käsittelemme tietojasi seuraaviin tarkoituksiin: <strong>todentaminen, asetukset, kuittaus ja tilastot</strong>.", + // "cookies.consent.content-notice.learnMore": "Customize", "cookies.consent.content-notice.learnMore": "Räätälöi", @@ -1521,7 +1984,11 @@ // "cookies.consent.content-modal.title": "Information that we collect", "cookies.consent.content-modal.title": "Keräämämme tieto", + // "cookies.consent.content-modal.services": "services", + "cookies.consent.content-modal.services": "palvelut", + // "cookies.consent.content-modal.service": "service", + "cookies.consent.content-modal.service": "palvelu", // "cookies.consent.app.title.authentication": "Authentication", "cookies.consent.app.title.authentication": "Todentaminen", @@ -1529,30 +1996,29 @@ // "cookies.consent.app.description.authentication": "Required for signing you in", "cookies.consent.app.description.authentication": "Vaadittu kirjautumista varten", - // "cookies.consent.app.title.preferences": "Preferences", "cookies.consent.app.title.preferences": "Asetukset", // "cookies.consent.app.description.preferences": "Required for saving your preferences", "cookies.consent.app.description.preferences": "Vaadittu asetustesi tallentamista varten", - - // "cookies.consent.app.title.acknowledgement": "Acknowledgement", "cookies.consent.app.title.acknowledgement": "Kuittaus", // "cookies.consent.app.description.acknowledgement": "Required for saving your acknowledgements and consents", "cookies.consent.app.description.acknowledgement": "Vaadittu kuittaustesi ja hyväksyntäsi tallentamista varten", - - // "cookies.consent.app.title.google-analytics": "Google Analytics", "cookies.consent.app.title.google-analytics": "Google Analytics", // "cookies.consent.app.description.google-analytics": "Allows us to track statistical data", "cookies.consent.app.description.google-analytics": "Sallii tilastollisen datan seurannan", + // "cookies.consent.app.title.google-recaptcha": "Google reCaptcha", + "cookies.consent.app.title.google-recaptcha": "Google reCaptcha", + // "cookies.consent.app.description.google-recaptcha": "We use google reCAPTCHA service during registration and password recovery", + "cookies.consent.app.description.google-recaptcha": "Käytämme Googlen reCAPTCHA-palvelua rekisteröinnin ja salasanan palauttamisen yhteydessä.", // "cookies.consent.purpose.functional": "Functional", "cookies.consent.purpose.functional": "Toiminnallinen", @@ -1560,8 +2026,16 @@ // "cookies.consent.purpose.statistical": "Statistical", "cookies.consent.purpose.statistical": "Tilastollinen", + // "cookies.consent.purpose.registration-password-recovery": "Registration and Password recovery", + "cookies.consent.purpose.registration-password-recovery": "Rekisteröinti ja salasanan palauttaminen", + + // "cookies.consent.purpose.sharing": "Sharing", + "cookies.consent.purpose.sharing": "Jakaminen", - // "curation-task.task.checklinks.label": "Check Links in Metadata", + // "curation-task.task.citationpage.label": "Generate Citation Page", + "curation-task.task.citationpage.label": "Luo viittaussivu", + + // "curation-task.task.checklinks.label": "Check Links in Metadata", "curation-task.task.checklinks.label": "Tarkista metadatan linkit", // "curation-task.task.noop.label": "NOOP", @@ -1579,7 +2053,8 @@ // "curation-task.task.vscan.label": "Virus Scan", "curation-task.task.vscan.label": "Virusskannaus", - + // "curation-task.task.register-doi.label": "Register DOI", + "curation-task.task.register-doi.label": "Rekisteröi DOI", // "curation.form.task-select.label": "Task:", "curation.form.task-select.label": "Tehtävä:", @@ -1599,13 +2074,38 @@ // "curation.form.submit.error.content": "An error occured when trying to start the curation task.", "curation.form.submit.error.content": "Virhe kuratointitehtävää aloitettaessa.", + // "curation.form.submit.error.invalid-handle": "Couldn't determine the handle for this object", + "curation.form.submit.error.invalid-handle": "Kohteen handlea ei voitu määrittää", + // "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": "Vinkki: Syötä [oma-handle-prefix]/0 suorittaaksesi tehtävän koko sivustolla (kaikki tehtävät eivät tue tätä toimintoa)", + // "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": "Hyvä {{ recipientName }},\nValitettavasti emme voi lähettää kopiota pyytämistänne tiedostoista (dokumentti \"{{ itemUrl }}\" ({{ itemName }})), joiden tekijä olen. Ystävällisin terveisin \n{{ authorName }} <{{ authorEmail }}>", + + // "deny-request-copy.email.subject": "Request copy of document", + "deny-request-copy.email.subject": "Dokumenttikopion pyyntö", + + // "deny-request-copy.error": "An error occurred", + "deny-request-copy.error": "Tapahtui virhe", + + // "deny-request-copy.header": "Deny document copy request", + "deny-request-copy.header": "Epää dokumenttikopion pyyntö", + + // "deny-request-copy.intro": "This message will be sent to the applicant of the request", + "deny-request-copy.intro": "Tämä viesti lähetetään pyynnön esittäjälle", + + // "deny-request-copy.success": "Successfully denied item request", + "deny-request-copy.success": "Tietuepyyntö evätty", + // "dso.name.untitled": "Untitled", + "dso.name.untitled": "Nimetön", + + // "dso.name.unnamed": "Unnamed", + "dso.name.unnamed": "Nimeämätön", // "dso-selector.create.collection.head": "New collection", "dso-selector.create.collection.head": "Uusi kokoelma", @@ -1616,6 +2116,9 @@ // "dso-selector.create.community.head": "New community", "zxzcommunity.head": "Uusi yhteisö", + // "dso-selector.create.community.or-divider": "or", + "dso-selector.create.community.or-divider": "tai", + // "dso-selector.create.community.sub-level": "Create a new community in", "dso-selector.create.community.sub-level": "Luo uusi yhteisö tänne: ", @@ -1640,16 +2143,92 @@ // "dso-selector.edit.item.head": "Edit item", "dso-selector.edit.item.head": "Muokkaa tietuetta", + // "dso-selector.error.title": "An error occurred searching for a {{ type }}", + "dso-selector.error.title": "Virhe etsittäessä tyyppiä {{ type }}", + // "dso-selector.export-metadata.dspaceobject.head": "Export metadata from", "dso-selector.export-metadata.dspaceobject.head": "Eksportoi metadata täältä: ", + // "dso-selector.export-batch.dspaceobject.head": "Export Batch (ZIP) from", + "dso-selector.export-batch.dspaceobject.head": "Eksportoi erä (ZIP): ", + + // "dso-selector.import-batch.dspaceobject.head": "Import batch from", + "dso-selector.import-batch.dspaceobject.head": "Importoi erä: ", + // "dso-selector.no-results": "No {{ type }} found", "dso-selector.no-results": "Ei {{ type }}-tyyppiä.", // "dso-selector.placeholder": "Search for a {{ type }}", "dso-selector.placeholder": "Hae {{ type }}-tyyppiä", + // "dso-selector.select.collection.head": "Select a collection", + "dso-selector.select.collection.head": "Valitse kokoelma", + + // "dso-selector.set-scope.community.head": "Select a search scope", + "dso-selector.set-scope.community.head": "Valitse hakualue", + + // "dso-selector.set-scope.community.button": "Search all of DSpace", + "dso-selector.set-scope.community.button": "Hae koko julkaisuarkistosta", + + // "dso-selector.set-scope.community.or-divider": "or", + "dso-selector.set-scope.community.or-divider": "tai", + // "dso-selector.set-scope.community.input-header": "Search for a community or collection", + "dso-selector.set-scope.community.input-header": "Hae yhteisöä tai kokoelmaa", + + // "dso-selector.claim.item.head": "Profile tips", + "dso-selector.claim.item.head": "Profiilivinkkejä", + + // "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": "Nämä ovat olemassa olevia profiileja, jotka saattavat liittyä sinuun. Jos tunnistat jonkin näistä profiileista omaksesi, valitse se ja valitse tarkentavan sivun vaihtoehdoista, että otat sen itsellesi. Muussa tapauksessa voit luoda uuden profiilin käyttämällä alla olevaa painiketta.", + + // "dso-selector.claim.item.not-mine-label": "None of these are mine", + "dso-selector.claim.item.not-mine-label": "Mikään näistä ei ole minun", + + // "dso-selector.claim.item.create-from-scratch": "Create a new one", + "dso-selector.claim.item.create-from-scratch": "Luo uusi", + + // "dso-selector.results-could-not-be-retrieved": "Something went wrong, please refresh again ↻", + "dso-selector.results-could-not-be-retrieved": "Tapahtui virhe, päivitä uudelleen ↻", + + // "supervision-group-selector.header": "Supervision Group Selector", + "supervision-group-selector.header": "Ohjausryhmän valitsin", + + // "supervision-group-selector.select.type-of-order.label": "Select a type of Order", + "supervision-group-selector.select.type-of-order.label": "Valitse tilauksen tyyppi", + + // "supervision-group-selector.select.type-of-order.option.none": "NONE", + "supervision-group-selector.select.type-of-order.option.none": "EI MITÄÄN", + + // "supervision-group-selector.select.type-of-order.option.editor": "EDITOR", + "supervision-group-selector.select.type-of-order.option.editor": "MUOKKAAJA", + + // "supervision-group-selector.select.type-of-order.option.observer": "OBSERVER", + "supervision-group-selector.select.type-of-order.option.observer": "KATSELIJA", + + // "supervision-group-selector.select.group.label": "Select a Group", + "supervision-group-selector.select.group.label": "Valitse ryhmä", + + // "supervision-group-selector.button.cancel": "Cancel", + "supervision-group-selector.button.cancel": "Peruuta", + + // "supervision-group-selector.button.save": "Save", + "supervision-group-selector.button.save": "Tallenna", + + // "supervision-group-selector.select.type-of-order.error": "Please select a type of order", + "supervision-group-selector.select.type-of-order.error": "Valitse tilauksen tyyppi", + + // "supervision-group-selector.select.group.error": "Please select a group", + "supervision-group-selector.select.group.error": "Valitse ryhmä", + + // "supervision-group-selector.notification.create.success.title": "Successfully created supervision order for group {{ name }}", + "supervision-group-selector.notification.create.success.title": "Ohjausmääräys luotu {{ name }}-ryhmälle", + + // "supervision-group-selector.notification.create.failure.title": "Error", + "supervision-group-selector.notification.create.failure.title": "Virhe", + + // "supervision-group-selector.notification.create.already-existing": "A supervision order already exists on this item for selected group", + "supervision-group-selector.notification.create.already-existing": "Tietueelle on jo ohjausmääräys valitulle ryhmälle", // "confirmation-modal.export-metadata.header": "Export metadata for {{ dsoName }}", "confirmation-modal.export-metadata.header": "Eksportoi {{ dsoName }}:n metadata", @@ -1663,11 +2242,23 @@ // "confirmation-modal.export-metadata.confirm": "Export", "confirmation-modal.export-metadata.confirm": "Eksportoi", + // "confirmation-modal.export-batch.header": "Export batch (ZIP) for {{ dsoName }}", + "confirmation-modal.export-batch.header": "Exportoi erä (ZIP) {{ dsoName }}", + + // "confirmation-modal.export-batch.info": "Are you sure you want to export batch (ZIP) for {{ dsoName }}", + "confirmation-modal.export-batch.info": "Haluatko varmasti eksportoida erän (ZIP) {{ dsoName }}?", + + // "confirmation-modal.export-batch.cancel": "Cancel", + "confirmation-modal.export-batch.cancel": "Peruuta", + + // "confirmation-modal.export-batch.confirm": "Export", + "confirmation-modal.export-batch.confirm": "Eksportoi", + // "confirmation-modal.delete-eperson.header": "Delete EPerson \"{{ dsoName }}\"", "confirmation-modal.delete-eperson.header": "Poista käyttäjä \"{{ dsoName }}\"", // "confirmation-modal.delete-eperson.info": "Are you sure you want to delete EPerson \"{{ dsoName }}\"", - "confirmation-modal.delete-eperson.info": "Haluatko varmasti poistaa käyttäjän \"{{ dsoName }}\"", + "confirmation-modal.delete-eperson.info": "Haluatko varmasti poistaa käyttäjän \"{{ dsoName }}\"?", // "confirmation-modal.delete-eperson.cancel": "Cancel", "confirmation-modal.delete-eperson.cancel": "Peruuta", @@ -1675,6 +2266,29 @@ // "confirmation-modal.delete-eperson.confirm": "Delete", "confirmation-modal.delete-eperson.confirm": "Poista", + // "confirmation-modal.delete-profile.header": "Delete Profile", + "confirmation-modal.delete-profile.header": "Poista profiili", + + // "confirmation-modal.delete-profile.info": "Are you sure you want to delete your profile", + "confirmation-modal.delete-profile.info": "Haluatko varmasti poistaa profiilisi?", + + // "confirmation-modal.delete-profile.cancel": "Cancel", + "confirmation-modal.delete-profile.cancel": "Peruuta", + + // "confirmation-modal.delete-profile.confirm": "Delete", + "confirmation-modal.delete-profile.confirm": "Poista", + + // "confirmation-modal.delete-subscription.header": "Delete Subscription", + "confirmation-modal.delete-subscription.header": "Poista tilaus", + + // "confirmation-modal.delete-subscription.info": "Are you sure you want to delete subscription for \"{{ dsoName }}\"", + "confirmation-modal.delete-subscription.info": "Haluatko varmasti poistaa tilauksen: \"{{ dsoName }}\"", + + // "confirmation-modal.delete-subscription.cancel": "Cancel", + "confirmation-modal.delete-subscription.cancel": "Peruuta", + + // "confirmation-modal.delete-subscription.confirm": "Delete", + "confirmation-modal.delete-subscription.confirm": "Poista", // "error.bitstream": "Error fetching bitstream", "error.bitstream": "Virhe tiedostoa noudettaessa", @@ -1712,6 +2326,9 @@ // "error.search-results": "Error fetching search results", "error.search-results": "Virhe hakutuloksia noudettaessa", + // "error.invalid-search-query": "Search query is not valid. Please check <a href=\"https://solr.apache.org/guide/query-syntax-and-parsing.html\" target=\"_blank\">Solr query syntax</a> best practices for further information about this error.", + "error.invalid-search-query": "Hakulauseke on virheellinen. Tarkista <a href=\"https://solr.apache.org/guide/query-syntax-and-parsing.html\" target=\"_blank\">Solr-kyselysyntaksi</a> ja sieltä parhaat käytännöt saadaksesi lisätietoja.", + // "error.sub-collections": "Error fetching sub-collections", "error.sub-collections": "Virhe alakokoelmia noudettaessa", @@ -1733,12 +2350,44 @@ // "error.validation.filerequired": "The file upload is mandatory", "error.validation.filerequired": "Tiedoston lataus on pakollinen", + // "error.validation.required": "This field is required", + "error.validation.required": "Kenttä on pakollinen", + // "error.validation.NotValidEmail": "This E-mail is not a valid email", + "error.validation.NotValidEmail": "Sähköpostiosoite ei ole toimiva sähköpostiosoite.", - // "file-section.error.header": "Error obtaining files for this item", - "file-section.error.header": "Virhe tietueen tiedostoja noudettaessa", + // "error.validation.emailTaken": "This E-mail is already taken", + "error.validation.emailTaken": "Sähköpostiosoite on jo käytössä", + // "error.validation.groupExists": "This group already exists", + "error.validation.groupExists": "Ryhmä on jo olemassa", + // "error.validation.metadata.name.invalid-pattern": "This field cannot contain dots, commas or spaces. Please use the Element & Qualifier fields instead", + "error.validation.metadata.name.invalid-pattern": "Kenttään ei voi syöttää pisteitä, pilkkuja tai välilyöntejä. Käytä tämän kentän sijasta Elementti- ja Tarkenne-kenttiä.", + + // "error.validation.metadata.name.max-length": "This field may not contain more than 32 characters", + "error.validation.metadata.name.max-length": "Kenttään voi laittaa vain 32 merkkiä", + + // "error.validation.metadata.namespace.max-length": "This field may not contain more than 256 characters", + "error.validation.metadata.namespace.max-length": "Kenttään voi laittaa vain 256 merkkiä", + + // "error.validation.metadata.element.invalid-pattern": "This field cannot contain dots, commas or spaces. Please use the Qualifier field instead", + "error.validation.metadata.element.invalid-pattern": "Kenttään ei voi syöttää pisteitä, pilkkuja tai välilyöntejä. Käytä tämän kentän sijasta Elementti- ja Tarkenne-kenttiä.", + + // "error.validation.metadata.element.max-length": "This field may not contain more than 64 characters", + "error.validation.metadata.element.max-length": "Kenttään voi laittaa vain 64 merkkiä", + + // "error.validation.metadata.qualifier.invalid-pattern": "This field cannot contain dots, commas or spaces", + "error.validation.metadata.qualifier.invalid-pattern": "Kenttään ei voi syöttää pisteitä, pilkkuja tai välilyöntejä", + + // "error.validation.metadata.qualifier.max-length": "This field may not contain more than 64 characters", + "error.validation.metadata.qualifier.max-length": "Kenttään voi laittaa vain 64 merkkiä", + + // "feed.description": "Syndication feed", + "feed.description": "Jakelusyöte", + + // "file-section.error.header": "Error obtaining files for this item", + "file-section.error.header": "Virhe tietueen tiedostoja noudettaessa", // "footer.copyright": "copyright © 2002-{{ year }}", "footer.copyright": "tekijänoikeus © 2002-{{ year }}", @@ -1755,16 +2404,17 @@ // "footer.link.privacy-policy": "Privacy policy", "footer.link.privacy-policy": "Yksilönsuoja", - // "footer.link.end-user-agreement":"End User Agreement", - "footer.link.end-user-agreement": "Käyttöehdot", - + // "footer.link.end-user-agreement": "End User Agreement", + "footer.link.end-user-agreement": "Käyttöoikeussopimus", + // "footer.link.feedback": "Send Feedback", + "footer.link.feedback": "Lähetä palautetta", // "forgot-email.form.header": "Forgot Password", "forgot-email.form.header": "Unohtunut salasana", - // "forgot-email.form.info": "Enter Register an account to subscribe to collections for email updates, and submit new items to DSpace.", - "forgot-email.form.info": "Rekisteröi käyttäjätili voidaksesi tilata sähköposti-ilmoituksia kokoelmien päivityksistä ja lisätä uusia tietueita julkaisuarkistoon.", + // "forgot-email.form.info": "Enter the email address associated with the account.", + "forgot-email.form.info": "Syötä tiliin liittyvä sähköpostiosoite.", // "forgot-email.form.email": "Email Address *", "forgot-email.form.email": "Sähköpostiosoite *", @@ -1772,28 +2422,26 @@ // "forgot-email.form.email.error.required": "Please fill in an email address", "forgot-email.form.email.error.required": "Anna sähköpostiosoite", - // "forgot-email.form.email.error.pattern": "Please fill in a valid email address", - "forgot-email.form.email.error.pattern": "Anna oikea sähköpostiosoite", + // "forgot-email.form.email.error.not-email-form": "Please fill in a valid email address", + "forgot-email.form.email.error.not-email-form": "Anna toimiva sähköpostiosoite", - // "forgot-email.form.email.hint": "This address will be verified and used as your login name.", - "forgot-email.form.email.hint": "Osoite varmistetaan, ja se toimii käyttäjätunnuksenasi kirjautumisessa.", + // "forgot-email.form.email.hint": "An email will be sent to this address with a further instructions.", + "forgot-email.form.email.hint": "Sähköpostiosoitteeseen lähetetään viesti, jossa on lisäohjeita.", - // "forgot-email.form.submit": "Submit", - "forgot-email.form.submit": "Lähetä", + // "forgot-email.form.submit": "Reset password", + "forgot-email.form.submit": "Nollaa salasana", - // "forgot-email.form.success.head": "Verification email sent", - "forgot-email.form.success.head": "Varmistusviesti lähetetty", + // "forgot-email.form.success.head": "Password reset email sent", + "forgot-email.form.success.head": "Salasanan nollausviesti lähetetty", // "forgot-email.form.success.content": "An email has been sent to {{ email }} containing a special URL and further instructions.", "forgot-email.form.success.content": "Viesti on lähetetty osoitteeseen {{ email }}. Viestissä on URL-osoite ja lisäohjeita.", - // "forgot-email.form.error.head": "Error when trying to register email", - "forgot-email.form.error.head": "Virhe sähköpostiosoitetta rekisteröitäessä", - - // "forgot-email.form.error.content": "An error occured when registering the following email address: {{ email }}", - "forgot-email.form.error.content": "Virhe rekisteröitäessä tätä sähköpostiosoitetta: {{ email }}", - + // "forgot-email.form.error.head": "Error when trying to reset password", + "forgot-email.form.error.head": "Virhe salasanaa nollattaessa", + // "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-email.form.error.content": "Virhe nollattaessa tähän sähköpostiosoitteeseen liittyvän tilin salasanaa {{ email }}", // "forgot-password.title": "Forgot Password", "forgot-password.title": "Unohtunut salasana", @@ -1801,8 +2449,8 @@ // "forgot-password.form.head": "Forgot Password", "forgot-password.form.head": "Unohtunut salasana", - // "forgot-password.form.info": "Enter a new password in the box below, and confirm it by typing it again into the second box. It should be at least six characters long.", - "forgot-password.form.info": "Syötä uusi salasana alla olevaan kenttään ja vahvista se kirjoittamalla salasana uudelleen seuraavaan kenttään. Salasanan on oltava vähintään kuusi merkkiä pitkä.", + // "forgot-password.form.info": "Enter a new password in the box below, and confirm it by typing it again into the second box.", + "forgot-password.form.info": "Syötä uusi salasana alla olevaan kenttään ja vahvista se kirjoittamalla salasana uudelleen seuraavaan kenttään.", // "forgot-password.form.card.security": "Security", "forgot-password.form.card.security": "Turvallisuus", @@ -1825,9 +2473,6 @@ // "forgot-password.form.error.matching-passwords": "The passwords do not match.", "forgot-password.form.error.matching-passwords": "Salasanat eivät täsmää.", - // "forgot-password.form.error.password-length": "The password should be at least 6 characters long.", - "forgot-password.form.error.password-length": "Salasanan on oltava vähintään 6 merkkiä pitkä.", - // "forgot-password.form.notification.error.title": "Error when trying to submit new password", "forgot-password.form.notification.error.title": "Virhe uutta salasanaa lähetettäessä", @@ -1840,10 +2485,8 @@ // "forgot-password.form.submit": "Submit password", "forgot-password.form.submit": "Lähetä salasana", - - - // "form.add": "Add", - "form.add": "Lisää", + // "form.add": "Add more", + "form.add": "Lisää vielä", // "form.add-help": "Click here to add the current entry and to add another one", "form.add-help": "Valitse lisätäksesi nykyisen kohteen ja toisen kohteen", @@ -1855,13 +2498,19 @@ "form.clear": "Tyhjennä", // "form.clear-help": "Click here to remove the selected value", - "form.clear-help": "Napauta tästä poistaaksesi valitun arvon", + "form.clear-help": "Napsauta tästä poistaaksesi valitun arvon", + + // "form.discard": "Discard", + "form.discard": "Hylkää", + + // "form.drag": "Drag", + "form.drag": "Raahaa", // "form.edit": "Edit", "form.edit": "Muokkaa", // "form.edit-help": "Click here to edit the selected value", - "form.edit-help": "Napauta tästä muokataksesi valittua arvoa", + "form.edit-help": "Napsauta tästä muokataksesi valittua arvoa", // "form.first-name": "First name", "form.first-name": "Etunimi", @@ -1896,6 +2545,24 @@ // "form.no-value": "No value entered", "form.no-value": "Ei syötettyä arvoa", + // "form.other-information.email": "Email", + "form.other-information.email": "Sähköpostiosoite", + + // "form.other-information.first-name": "First Name", + "form.other-information.first-name": "Etunimi", + + // "form.other-information.insolr": "In Solr Index", + "form.other-information.insolr": "Solr-indeksissä", + + // "form.other-information.institution": "Institution", + "form.other-information.institution": "Instituutio", + + // "form.other-information.last-name": "Last Name", + "form.other-information.last-name": "Sukunimi", + + // "form.other-information.orcid": "ORCID", + "form.other-information.orcid": "ORCID-tunniste", + // "form.remove": "Remove", "form.remove": "Poista", @@ -1911,10 +2578,134 @@ // "form.search-help": "Click here to look for an existing correspondence", "form.search-help": "Valitse etsiäksesi olemassa olevaa vastaavuutta", - // "form.submit": "Submit", - "form.submit": "Lähetä", + // "form.submit": "Save", + "form.submit": "Tallenna", + + // "form.create": "Create", + "form.create": "Luo", + + // "form.repeatable.sort.tip": "Drop the item in the new position", + "form.repeatable.sort.tip": "Pudota tietue uuteen paikkaan", + + // "grant-deny-request-copy.deny": "Don't send copy", + "grant-deny-request-copy.deny": "Älä lähetä kopiota", + + // "grant-deny-request-copy.email.back": "Back", + "grant-deny-request-copy.email.back": "Paluu", + + // "grant-deny-request-copy.email.message": "Optional additional message", + "grant-deny-request-copy.email.message": "Valinnainen lisäviesti", + + // "grant-deny-request-copy.email.message.empty": "Please enter a message", + "grant-deny-request-copy.email.message.empty": "Kirjoita viesti", + + // "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": "Voit harkita uudelleen dokumentin pääsyrajoituksia, jotta sinun ei tarvitse vastata näihin pyyntöihin. Rastita alla oleva ruutu pyytääksesi julkaisuarkiston ylläpitäjää poistamaan rajoitukset.", + + // "grant-deny-request-copy.email.permissions.label": "Change to open access", + "grant-deny-request-copy.email.permissions.label": "Valitse Open Access", + + // "grant-deny-request-copy.email.send": "Send", + "grant-deny-request-copy.email.send": "Lähetä", + + // "grant-deny-request-copy.email.subject": "Subject", + "grant-deny-request-copy.email.subject": "Asiasana", + + // "grant-deny-request-copy.email.subject.empty": "Please enter a subject", + "grant-deny-request-copy.email.subject.empty": "Syötä asiasana", + + // "grant-deny-request-copy.grant": "Send copy", + "grant-deny-request-copy.grant": "Lähetä kopio", + + // "grant-deny-request-copy.header": "Document copy request", + "grant-deny-request-copy.header": "Dokumenttikopion pyyntö", + + // "grant-deny-request-copy.home-page": "Take me to the home page", + "grant-deny-request-copy.home-page": "Palaa etusivulle", + + // "grant-deny-request-copy.intro1": "If you are one of the authors of the document <a href='{{ url }}'>{{ name }}</a>, then please use one of the options below to respond to the user's request.", + "grant-deny-request-copy.intro1": "Jos olet dokumentin <a href='{{ url }}'>{{ name }}</a> tekijä, vastaa käyttäjän pyyntöön jollakin alla olevista vaihtoehdoista.", + + // "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": "Valittuasi vaihtoehdon näet sähköpostiviestiehdotuksen. Voit muokata ehdotusta halutessasi.", + + // "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": "Pyyntö on käsitelty. Voit käyttää alla olevaa painiketta palataksesi etusivulle.", + + // "grant-request-copy.email.subject": "Request copy of document", + "grant-request-copy.email.subject": "Pyydä kopiota dokumentista", + + // "grant-request-copy.error": "An error occurred", + "grant-request-copy.error": "Tapahtui virhe", + + // "grant-request-copy.header": "Grant document copy request", + "grant-request-copy.header": "Hyväksy dokumenttikopion pyyntö", + + // "grant-request-copy.intro": "A message will be sent to the applicant of the request. The requested document(s) will be attached.", + "grant-request-copy.intro": "Viesti lähetetään pyynnön esittäjälle. Pyydetyt dokumentit liitetään viestiin.", + + // "grant-request-copy.success": "Successfully granted item request", + "grant-request-copy.success": "Tietuepyyntö hyväksytty", + + // "health.breadcrumbs": "Health", + "health.breadcrumbs": "Järjestelmän kunto", + + // "health-page.heading": "Health", + "health-page.heading": "Järjestelmän kunto", + + // "health-page.info-tab": "Info", + "health-page.info-tab": "Tiedot", + + // "health-page.status-tab": "Status", + "health-page.status-tab": "Tila", + + // "health-page.error.msg": "The health check service is temporarily unavailable", + "health-page.error.msg": "Järjestelmän kunnon tarkistus on väliaikaisesti poissa käytöstä", + + // "health-page.property.status": "Status code", + "health-page.property.status": "Tilakoodi", + + // "health-page.section.db.title": "Database", + "health-page.section.db.title": "Tietokanta", + + // "health-page.section.geoIp.title": "GeoIp", + "health-page.section.geoIp.title": "GeoIp", + + // "health-page.section.solrAuthorityCore.title": "Solr: authority core", + "health-page.section.solrAuthorityCore.title": "Solr: auktoriteettiydin", + + // "health-page.section.solrOaiCore.title": "Solr: oai core", + "health-page.section.solrOaiCore.title": "Solr: OAI-ydin", + + // "health-page.section.solrSearchCore.title": "Solr: search core", + "health-page.section.solrSearchCore.title": "Solr: hakuydin", + + // "health-page.section.solrStatisticsCore.title": "Solr: statistics core", + "health-page.section.solrStatisticsCore.title": "Solr: tilastoydin", + + // "health-page.section-info.app.title": "Application Backend", + "health-page.section-info.app.title": "Taustasovellus", + + // "health-page.section-info.java.title": "Java", + "health-page.section-info.java.title": "Java", + + // "health-page.status": "Status", + "health-page.status": "Tila", + + // "health-page.status.ok.info": "Operational", + "health-page.status.ok.info": "Toiminnassa", + + // "health-page.status.error.info": "Problems detected", + "health-page.status.error.info": "Ongelmia havaittu", + + // "health-page.status.warning.info": "Possible issues detected", + "health-page.status.warning.info": "Mahdollisia ongelmia havaittu", + // "health-page.title": "Health", + "health-page.title": "Järjestelmän kunto", + // "health-page.section.no-issues": "No issues detected", + "health-page.section.no-issues": "Ei havaittuja ongelmia", // "home.description": "", "home.description": "", @@ -1922,11 +2713,11 @@ // "home.breadcrumbs": "Home", "home.breadcrumbs": "Etusivu", - // "home.search-form.placeholder": "Search the repository ...", + // "home.search-form.placeholder": "Search the repository ...", "home.search-form.placeholder": "Hae julkaisuarkistosta ...", - // "home.title": "DSpace Angular :: Home", - "home.title": "DSpace Angular :: Etusivu", + // "home.title": "Home", + "home.title": "Etusivu", // "home.top-level-communities.head": "Communities in DSpace", "home.top-level-communities.head": "Julkaisuarkiston yhteisöt", @@ -1934,19 +2725,17 @@ // "home.top-level-communities.help": "Select a community to browse its collections.", "home.top-level-communities.help": "Valitse yhteisö, jonka kokoelmia haluat selata.", - - // "info.end-user-agreement.accept": "I have read and I agree to the End User Agreement", - "info.end-user-agreement.accept": "Olen lukenut ja hyväksyn käyttöehdot", + "info.end-user-agreement.accept": "Olen lukenut ja hyväksyn käyttöoikeussopimuksen", // "info.end-user-agreement.accept.error": "An error occurred accepting the End User Agreement", - "info.end-user-agreement.accept.error": "Virhe hyväksyttäessä käyttöehtoja", + "info.end-user-agreement.accept.error": "Virhe hyväksyttäessä käyttöoikeussopimusta", // "info.end-user-agreement.accept.success": "Successfully updated the End User Agreement", - "info.end-user-agreement.accept.success": "Käyttöehdot päivitetty", + "info.end-user-agreement.accept.success": "Käyttöoikeussopimus päivitetty", // "info.end-user-agreement.breadcrumbs": "End User Agreement", - "info.end-user-agreement.breadcrumbs": "Käyttöehdot", + "info.end-user-agreement.breadcrumbs": "Käyttöoikeussopimus", // "info.end-user-agreement.buttons.cancel": "Cancel", "info.end-user-agreement.buttons.cancel": "Peruuta", @@ -1955,10 +2744,13 @@ "info.end-user-agreement.buttons.save": "Tallenna", // "info.end-user-agreement.head": "End User Agreement", - "info.end-user-agreement.head": "Käyttöehdot", + "info.end-user-agreement.head": "Käyttöoikeussopimus", // "info.end-user-agreement.title": "End User Agreement", - "info.end-user-agreement.title": "Käyttöehdot", + "info.end-user-agreement.title": "Käyttöoikeussopimus", + + // "info.end-user-agreement.hosting-country": "the United States", + "info.end-user-agreement.hosting-country": "Suomi", // "info.privacy.breadcrumbs": "Privacy Statement", "info.privacy.breadcrumbs": "Tietosuojalauseke", @@ -1969,39 +2761,68 @@ // "info.privacy.title": "Privacy Statement", "info.privacy.title": "Tietosuojalauseke", + // "info.feedback.breadcrumbs": "Feedback", + "info.feedback.breadcrumbs": "Palaute", + + // "info.feedback.head": "Feedback", + "info.feedback.head": "Palaute", + + // "info.feedback.title": "Feedback", + "info.feedback.title": "Palaute", + + // "info.feedback.info": "Thanks for sharing your feedback about the DSpace system. Your comments are appreciated!", + "info.feedback.info": "Kiitos antamastasi palautteesta. Havaintosi ovat arvokkaita!", + + // "info.feedback.email_help": "This address will be used to follow up on your feedback.", + "info.feedback.email_help": "Tätä osoitetta käytetään palautteesi käsittelyssä.", + + // "info.feedback.send": "Send Feedback", + "info.feedback.send": "Lähetä palautetta", + // "info.feedback.comments": "Comments", + "info.feedback.comments": "Kommentit", - // "item.alerts.private": "This item is private", + // "info.feedback.email-label": "Your Email", + "info.feedback.email-label": "Sähköpostiosoitteesi", + + // "info.feedback.create.success": "Feedback Sent Successfully!", + "info.feedback.create.success": "Palaute lähetetty!", + + // "info.feedback.error.email.required": "A valid email address is required", + "info.feedback.error.email.required": "Toimiva sähköpostiosoite on pakollinen", + + // "info.feedback.error.message.required": "A comment is required", + "info.feedback.error.message.required": "Kommentti on pakollinen", + + // "info.feedback.page-label": "Page", + "info.feedback.page-label": "Sivu", + + // "info.feedback.page_help": "Tha page related to your feedback", + "info.feedback.page_help": "Sivu, johon palautteesi kohdistuu", + + // "item.alerts.private": "This item is non-discoverable", "item.alerts.private": "Tietue on yksityinen", // "item.alerts.withdrawn": "This item has been withdrawn", "item.alerts.withdrawn": "Tietue on poistettu käytöstä", - - // "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": "Tässä voit tarkastella ja muokata tietuekäytäntöjä sekä tietueen yksittäisten komponenttien eli nippujen ja tiedostojen käytäntöjä. Tietue on nippujen säiliö ja niput ovat tiedostojen säiliöitä. Säiliöillä on yleensä LISÄYS/POISTO/LUKU/KIRJOITUS-käytännöt, mutta tiedostoihin sovelletaan vain LUKU/KIRJOITUS-käytäntöjä.", - - // "item.edit.authorizations.title": "Edit item's Policies", "item.edit.authorizations.title": "Muokkaa tietuekäytäntöjä", - - - // "item.badge.private": "Private", + // "item.badge.private": "Non-discoverable", "item.badge.private": "Yksityinen", // "item.badge.withdrawn": "Withdrawn", "item.badge.withdrawn": "Poistettu käytöstä", - - // "item.bitstreams.upload.bundle": "Bundle", "item.bitstreams.upload.bundle": "Nippu", - // "item.bitstreams.upload.bundle.placeholder": "Select a bundle", - "item.bitstreams.upload.bundle.placeholder": "Valitse nippu", + // "item.bitstreams.upload.bundle.placeholder": "Select a bundle or input new bundle name", + "item.bitstreams.upload.bundle.placeholder": "Valitse nippu tai syötä uuden nipun nimi", // "item.bitstreams.upload.bundle.new": "Create bundle", "item.bitstreams.upload.bundle.new": "Luo nippu", @@ -2030,8 +2851,6 @@ // "item.bitstreams.upload.title": "Upload bitstream", "item.bitstreams.upload.title": "Lataa tiedosto", - - // "item.edit.bitstreams.bundle.edit.buttons.upload": "Upload", "item.edit.bitstreams.bundle.edit.buttons.upload": "Lataus", @@ -2063,7 +2882,7 @@ "item.edit.bitstreams.edit.buttons.remove": "Poista", // "item.edit.bitstreams.edit.buttons.undo": "Undo changes", - "item.edit.bitstreams.edit.buttons.undo": "Peruuta muutokset", + "item.edit.bitstreams.edit.buttons.undo": "Kumoa muutokset", // "item.edit.bitstreams.empty": "This item doesn't contain any bitstreams. Click the upload button to create one.", "item.edit.bitstreams.empty": "Tietueeseen ei liity tiedostoja. Valitse latauspainike luodaksesi tiedoston.", @@ -2122,8 +2941,6 @@ // "item.edit.bitstreams.upload-button": "Upload", "item.edit.bitstreams.upload-button": "Lataa", - - // "item.edit.delete.cancel": "Cancel", "item.edit.delete.cancel": "Peruuta", @@ -2148,6 +2965,8 @@ // "item.edit.breadcrumbs": "Edit Item", "item.edit.breadcrumbs": "Muokkaa tietuetta", + // "item.edit.tabs.disabled.tooltip": "You're not authorized to access this tab", + "item.edit.tabs.disabled.tooltip": "Sinulla ei ole valtuuksia tähän välilehteen", // "item.edit.tabs.mapper.head": "Collection Mapper", "item.edit.tabs.mapper.head": "Kokoelmaliitosväline", @@ -2155,6 +2974,69 @@ // "item.edit.tabs.item-mapper.title": "Item Edit - Collection Mapper", "item.edit.tabs.item-mapper.title": "Tietueen muokkaus - Kokoelmaliitosväline", + // "item.edit.identifiers.doi.status.UNKNOWN": "Unknown", + "item.edit.identifiers.doi.status.UNKNOWN": "Tuntematon", + + // "item.edit.identifiers.doi.status.TO_BE_REGISTERED": "Queued for registration", + "item.edit.identifiers.doi.status.TO_BE_REGISTERED": "Rekisteröintijonossa", + + // "item.edit.identifiers.doi.status.TO_BE_RESERVED": "Queued for reservation", + "item.edit.identifiers.doi.status.TO_BE_RESERVED": "Varausjonossa", + + // "item.edit.identifiers.doi.status.IS_REGISTERED": "Registered", + "item.edit.identifiers.doi.status.IS_REGISTERED": "Rekisteröity", + + // "item.edit.identifiers.doi.status.IS_RESERVED": "Reserved", + "item.edit.identifiers.doi.status.IS_RESERVED": "Varattu", + + // "item.edit.identifiers.doi.status.UPDATE_RESERVED": "Reserved (update queued)", + "item.edit.identifiers.doi.status.UPDATE_RESERVED": "Varattu (päivitysjonossa)", + + // "item.edit.identifiers.doi.status.UPDATE_REGISTERED": "Registered (update queued)", + "item.edit.identifiers.doi.status.UPDATE_REGISTERED": "Rekisteröity (päivitysjonossa)", + + // "item.edit.identifiers.doi.status.UPDATE_BEFORE_REGISTRATION": "Queued for update and registration", + "item.edit.identifiers.doi.status.UPDATE_BEFORE_REGISTRATION": "Päivitys- ja rekisteröintijonossa", + + // "item.edit.identifiers.doi.status.TO_BE_DELETED": "Queued for deletion", + "item.edit.identifiers.doi.status.TO_BE_DELETED": "Poistojonossa", + + // "item.edit.identifiers.doi.status.DELETED": "Deleted", + "item.edit.identifiers.doi.status.DELETED": "Poistettu", + + // "item.edit.identifiers.doi.status.PENDING": "Pending (not registered)", + "item.edit.identifiers.doi.status.PENDING": "Vireillä (ei rekisteröity)", + + // "item.edit.identifiers.doi.status.MINTED": "Minted (not registered)", + "item.edit.identifiers.doi.status.MINTED": "Luotu (ei rekisteröity)", + + // "item.edit.tabs.status.buttons.register-doi.label": "Register a new or pending DOI", + "item.edit.tabs.status.buttons.register-doi.label": "Rekisteröi uusi tai vireillä oleva DOI", + + // "item.edit.tabs.status.buttons.register-doi.button": "Register DOI...", + "item.edit.tabs.status.buttons.register-doi.button": "Rekisteröi DOI...", + + // "item.edit.register-doi.header": "Register a new or pending DOI", + "item.edit.register-doi.header": "Rekisteröi uusi tai vireillä oleva 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", + "item.edit.register-doi.description": "Tarkasta vireillä olevat tunnisteet ja tietueitten metadata alapuolella. Napsauta Vahvista jatkaaksesi DOI-tunnuksen rekisteröintiä tai Peruuta peruuttaaksesi.", + + // "item.edit.register-doi.confirm": "Confirm", + "item.edit.register-doi.confirm": "Vahvista", + + // "item.edit.register-doi.cancel": "Cancel", + "item.edit.register-doi.cancel": "Peruuta", + + // "item.edit.register-doi.success": "DOI queued for registration successfully.", + "item.edit.register-doi.success": "DOI lisätty rekisteröintijonoon.", + + // "item.edit.register-doi.error": "Error registering DOI", + "item.edit.register-doi.error": "Virhe rekisteröitäessä DOI-tunnusta", + + // "item.edit.register-doi.to-update": "The following DOI has already been minted and will be queued for registration online", + "item.edit.register-doi.to-update": "DOI on jo luotu ja lisätään rekisteröintijonoon verkossa", + // "item.edit.item-mapper.buttons.add": "Map item to selected collections", "item.edit.item-mapper.buttons.add": "Liitä tietue valittuihin kokoelmiin", @@ -2200,20 +3082,27 @@ // "item.edit.item-mapper.notifications.remove.success.head": "Removal of mapping completed", "item.edit.item-mapper.notifications.remove.success.head": "Liitos poistettu", + // "item.edit.item-mapper.search-form.placeholder": "Search collections...", + "item.edit.item-mapper.search-form.placeholder": "Hae kokoelmia...", + // "item.edit.item-mapper.tabs.browse": "Browse mapped collections", "item.edit.item-mapper.tabs.browse": "Selaa liitettyjä kokoelmia", // "item.edit.item-mapper.tabs.map": "Map new collections", "item.edit.item-mapper.tabs.map": "Liitä uusia kokoelmia", - - // "item.edit.metadata.add-button": "Add", "item.edit.metadata.add-button": "Lisää", // "item.edit.metadata.discard-button": "Discard", "item.edit.metadata.discard-button": "Hylkää", + // "item.edit.metadata.edit.buttons.confirm": "Confirm", + "item.edit.metadata.edit.buttons.confirm": "Vahvista", + + // "item.edit.metadata.edit.buttons.drag": "Drag to reorder", + "item.edit.metadata.edit.buttons.drag": "Raahaa uudelleenjärjestääksesi", + // "item.edit.metadata.edit.buttons.edit": "Edit", "item.edit.metadata.edit.buttons.edit": "Muokkaa", @@ -2226,6 +3115,9 @@ // "item.edit.metadata.edit.buttons.unedit": "Stop editing", "item.edit.metadata.edit.buttons.unedit": "Lopeta muokkaus", + // "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.edit.buttons.virtual": "Tämä on virtuaalinen metadata-arvo eli arvo, joka on peritty liittyvältä entiteetiltä. Sitä ei voi muokata suoraan. Lisää tai poista yhteys \"Suhteet\"-välilehdellä,", + // "item.edit.metadata.empty": "The item currently doesn't contain any metadata. Click Add to start adding a metadata value.", "item.edit.metadata.empty": "Tietueessa ei ole metadataa. Valitse Lisää lisätäksesi metadataa.", @@ -2241,13 +3133,16 @@ // "item.edit.metadata.headers.value": "Value", "item.edit.metadata.headers.value": "Arvo", + // "item.edit.metadata.metadatafield.error": "An error occurred validating the metadata field", + "item.edit.metadata.metadatafield.error": "Virhe validoitaessa metadatakenttää", + // "item.edit.metadata.metadatafield.invalid": "Please choose a valid metadata field", "item.edit.metadata.metadatafield.invalid": "Valitse oikea metadatakenttä", // "item.edit.metadata.notifications.discarded.content": "Your changes were discarded. To reinstate your changes click the 'Undo' button", "item.edit.metadata.notifications.discarded.content": "Muutokset hylätty. Valitse 'Kumoa' palauttaaksesi muutokset", - // "item.edit.metadata.notifications.discarded.title": "Changed discarded", + // "item.edit.metadata.notifications.discarded.title": "Changes discarded", "item.edit.metadata.notifications.discarded.title": "Muutokset hylätty", // "item.edit.metadata.notifications.error.title": "An error occurred", @@ -2262,7 +3157,7 @@ // "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": "Toinen käyttäjä on muuttanut parhaillaan muokkaamaasi tietuetta. Tekemäsi muutokset on hylätty ristiriitojen estämiseksi", - // "item.edit.metadata.notifications.outdated.title": "Changed outdated", + // "item.edit.metadata.notifications.outdated.title": "Changes outdated", "item.edit.metadata.notifications.outdated.title": "Muutokset vanhentuneet", // "item.edit.metadata.notifications.saved.content": "Your changes to this item's metadata were saved.", @@ -2272,13 +3167,14 @@ "item.edit.metadata.notifications.saved.title": "Metadata tallennettu", // "item.edit.metadata.reinstate-button": "Undo", - "item.edit.metadata.reinstate-button": "Peruuta", + "item.edit.metadata.reinstate-button": "Kumoa", + + // "item.edit.metadata.reset-order-button": "Undo reorder", + "item.edit.metadata.reset-order-button": "Kumoa uudelleenjärjestäminen", // "item.edit.metadata.save-button": "Save", "item.edit.metadata.save-button": "Tallenna", - - // "item.edit.modify.overview.field": "Field", "item.edit.modify.overview.field": "Kenttä", @@ -2288,10 +3184,14 @@ // "item.edit.modify.overview.value": "Value", "item.edit.modify.overview.value": "Arvo", + // "item.edit.move.cancel": "Back", + "item.edit.move.cancel": "Paluu", + // "item.edit.move.save-button": "Save", + "item.edit.move.save-button": "Tallenna", - // "item.edit.move.cancel": "Cancel", - "item.edit.move.cancel": "Peruuta", + // "item.edit.move.discard-button": "Discard", + "item.edit.move.discard-button": "Hylkää", // "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": "Valitse kokoelma, johon haluat siirtää tietueen. Voit antaa hakulausekkeen kokoelmien määrän pienentämiseksi.", @@ -2323,48 +3223,42 @@ // "item.edit.move.title": "Move item", "item.edit.move.title": "Siirrä tietue", - - // "item.edit.private.cancel": "Cancel", "item.edit.private.cancel": "Peruuta", - // "item.edit.private.confirm": "Make it Private", + // "item.edit.private.confirm": "Make it non-discoverable", "item.edit.private.confirm": "Muuta yksityiseksi", - // "item.edit.private.description": "Are you sure this item should be made private in the archive?", - "item.edit.private.description": "Haluatko varmasti muuttaa tietueen yksityiseksi?", + // "item.edit.private.description": "Are you sure this item should be made non-discoverable in the archive?", + "item.edit.private.description": "Haluatko varmasti muuttaa tietueen yksityiseksi? Yksityinen tietue ei löydy haettaessa.", - // "item.edit.private.error": "An error occurred while making the item private", + // "item.edit.private.error": "An error occurred while making the item non-discoverable", "item.edit.private.error": "Virhe muutettaessa tietuetta yksityiseksi", - // "item.edit.private.header": "Make item private: {{ id }}", - "item.edit.private.header": "Muuta yksityiseksi tietue: {{ id }}", + // "item.edit.private.header": "Make item non-discoverable: {{ id }}", + "item.edit.private.header": "Muuta tietue yksityiseksi: {{ id }}", - // "item.edit.private.success": "The item is now private", + // "item.edit.private.success": "The item is now non-discoverable", "item.edit.private.success": "Tietue on yksityinen", - - // "item.edit.public.cancel": "Cancel", "item.edit.public.cancel": "Peruuta", - // "item.edit.public.confirm": "Make it Public", + // "item.edit.public.confirm": "Make it discoverable", "item.edit.public.confirm": "Muuta julkiseksi", - // "item.edit.public.description": "Are you sure this item should be made public in the archive?", - "item.edit.public.description": "Haluatko varmasti muuttaa tietueen julkiseksi?", + // "item.edit.public.description": "Are you sure this item should be made discoverable in the archive?", + "item.edit.public.description": "Haluatko varmasti muuttaa tietueen julkiseksi? Julkinen tietue löytyy haettaessa.", - // "item.edit.public.error": "An error occurred while making the item public", + // "item.edit.public.error": "An error occurred while making the item discoverable", "item.edit.public.error": "Virhe muutettaessa tietuetta julkiseksi", - // "item.edit.public.header": "Make item public: {{ id }}", - "item.edit.public.header": "Muuta julkiseksi tietue: {{ id }}", + // "item.edit.public.header": "Make item discoverable: {{ id }}", + "item.edit.public.header": "Muuta tietue julkiseksi: {{ id }}", - // "item.edit.public.success": "The item is now public", + // "item.edit.public.success": "The item is now discoverable", "item.edit.public.success": "Tietue on julkinen", - - // "item.edit.reinstate.cancel": "Cancel", "item.edit.reinstate.cancel": "Peruuta", @@ -2383,8 +3277,6 @@ // "item.edit.reinstate.success": "The item was reinstated successfully", "item.edit.reinstate.success": "Tietue palautettu käyttöön", - - // "item.edit.relationships.discard-button": "Discard", "item.edit.relationships.discard-button": "Hylkää", @@ -2395,13 +3287,13 @@ "item.edit.relationships.edit.buttons.remove": "Poista", // "item.edit.relationships.edit.buttons.undo": "Undo changes", - "item.edit.relationships.edit.buttons.undo": "Peruuta muutokset", + "item.edit.relationships.edit.buttons.undo": "Kumoa muutokset", // "item.edit.relationships.no-relationships": "No relationships", "item.edit.relationships.no-relationships": "Ei yhteyksiä", // "item.edit.relationships.notifications.discarded.content": "Your changes were discarded. To reinstate your changes click the 'Undo' button", - "item.edit.relationships.notifications.discarded.content": "Muutoksesi hylättiin. Valitse 'Peruuta' palauttaaksesi ne.", + "item.edit.relationships.notifications.discarded.content": "Muutoksesi hylättiin. Valitse 'Kumoa' palauttaaksesi ne.", // "item.edit.relationships.notifications.discarded.title": "Changes discarded", "item.edit.relationships.notifications.discarded.title": "Muutokset hylätty", @@ -2422,7 +3314,7 @@ "item.edit.relationships.notifications.saved.title": "Yhteydet tallennettu", // "item.edit.relationships.reinstate-button": "Undo", - "item.edit.relationships.reinstate-button": "Peruuta", + "item.edit.relationships.reinstate-button": "Kumoa", // "item.edit.relationships.save-button": "Save", "item.edit.relationships.save-button": "Tallenna", @@ -2430,6 +3322,9 @@ // "item.edit.relationships.no-entity-type": "Add 'dspace.entity.type' metadata to enable relationships for this item", "item.edit.relationships.no-entity-type": "Lisää 'dspace.entity.type' -metadataa aktivoidaksesi yhteydet tietueessa", + // "item.edit.return": "Back", + "item.edit.return": "Paluu", + // "item.edit.tabs.bitstreams.head": "Bitstreams", "item.edit.tabs.bitstreams.head": "Tietueen tiedostot", @@ -2442,6 +3337,9 @@ // "item.edit.tabs.curate.title": "Item Edit - Curate", "item.edit.tabs.curate.title": "Tietueen muokkaus - Kuratointi", + // "item.edit.curate.title": "Curate Item: {{item}}", + "item.edit.curate.title": "Kuratoi tietuetta: {{item}}", + // "item.edit.tabs.metadata.head": "Metadata", "item.edit.tabs.metadata.head": "Tietueen metadata", @@ -2478,23 +3376,26 @@ // "item.edit.tabs.status.buttons.move.label": "Move item to another collection", "item.edit.tabs.status.buttons.move.label": "Siirrä tietue toiseen kokoelmaan", - // "item.edit.tabs.status.buttons.private.button": "Make it private...", + // "item.edit.tabs.status.buttons.private.button": "Make it non-discoverable...", "item.edit.tabs.status.buttons.private.button": "Muuta yksityiseksi...", - // "item.edit.tabs.status.buttons.private.label": "Make item private", + // "item.edit.tabs.status.buttons.private.label": "Make item non-discoverable", "item.edit.tabs.status.buttons.private.label": "Muuta tietue yksityiseksi", - // "item.edit.tabs.status.buttons.public.button": "Make it public...", + // "item.edit.tabs.status.buttons.public.button": "Make it discoverable...", "item.edit.tabs.status.buttons.public.button": "Muuta julkiseksi...", - // "item.edit.tabs.status.buttons.public.label": "Make item public", + // "item.edit.tabs.status.buttons.public.label": "Make item discoverable", "item.edit.tabs.status.buttons.public.label": "Muuta tietue julkiseksi", // "item.edit.tabs.status.buttons.reinstate.button": "Reinstate...", "item.edit.tabs.status.buttons.reinstate.button": "Palauta käyttöön...", // "item.edit.tabs.status.buttons.reinstate.label": "Reinstate item into the repository", - "item.edit.tabs.status.buttons.reinstate.label": "Palauta tietue arkistoon", + "item.edit.tabs.status.buttons.reinstate.label": "Palauta tietue julkaisuarkistoon", + + // "item.edit.tabs.status.buttons.unauthorized": "You're not authorized to perform this action", + "item.edit.tabs.status.buttons.unauthorized": "Sinulla ei ole valtuuksia suorittaa tätä toimintoa", // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item", "item.edit.tabs.status.buttons.withdraw.button": "Poista tämä kohde", @@ -2509,7 +3410,7 @@ "item.edit.tabs.status.head": "Tietueen tila", // "item.edit.tabs.status.labels.handle": "Handle", - "item.edit.tabs.status.labels.handle": "Handle-tunnus", + "item.edit.tabs.status.labels.handle": "Handle", // "item.edit.tabs.status.labels.id": "Item Internal ID", "item.edit.tabs.status.labels.id": "Tietueen sisäinen ID", @@ -2538,8 +3439,6 @@ // "item.edit.tabs.view.title": "Item Edit - View", "item.edit.tabs.view.title": "Tietueen muokkaus - Näytä", - - // "item.edit.withdraw.cancel": "Cancel", "item.edit.withdraw.cancel": "Peruuta", @@ -2558,7 +3457,8 @@ // "item.edit.withdraw.success": "The item was withdrawn successfully", "item.edit.withdraw.success": "Tietue poistettu käytöstä", - + // "item.orcid.return": "Back", + "item.orcid.return": "Paluu", // "item.listelement.badge": "Item", "item.listelement.badge": "Tietue", @@ -2584,10 +3484,38 @@ // "item.search.results.head": "Item Search Results", "item.search.results.head": "Tietuehaun tulokset", - // "item.search.title": "DSpace Angular :: Item Search", - "item.search.title": "DSpace Angular :: Tietuehaku", + // "item.search.title": "Item Search", + "item.search.title": "Tietuehaku", + + // "item.truncatable-part.show-more": "Show more", + "item.truncatable-part.show-more": "Näytä lisää", + // "item.truncatable-part.show-less": "Collapse", + "item.truncatable-part.show-less": "Sulje", + // "workflow-item.search.result.delete-supervision.modal.header": "Delete Supervision Order", + "workflow-item.search.result.delete-supervision.modal.header": "Poista ohjausmääräys", + + // "workflow-item.search.result.delete-supervision.modal.info": "Are you sure you want to delete Supervision Order", + "workflow-item.search.result.delete-supervision.modal.info": "Haluatko varmasti poistaa ohjausmääräyksen?", + + // "workflow-item.search.result.delete-supervision.modal.cancel": "Cancel", + "workflow-item.search.result.delete-supervision.modal.cancel": "Peruuta", + + // "workflow-item.search.result.delete-supervision.modal.confirm": "Delete", + "workflow-item.search.result.delete-supervision.modal.confirm": "Poista", + + // "workflow-item.search.result.notification.deleted.success": "Successfully deleted supervision order \"{{name}}\"", + "workflow-item.search.result.notification.deleted.success": "Ohjausmääräys poistettu \"{{name}}\"", + + // "workflow-item.search.result.notification.deleted.failure": "Failed to delete supervision order \"{{name}}\"", + "workflow-item.search.result.notification.deleted.failure": "Ohjausmääräyksen poisto epäonnistui \"{{name}}\"", + + // "workflow-item.search.result.list.element.supervised-by": "Supervised by:", + "workflow-item.search.result.list.element.supervised-by": "Ohjaajana:", + + // "workflow-item.search.result.list.element.supervised.remove-tooltip": "Remove supervision group", + "workflow-item.search.result.list.element.supervised.remove-tooltip": "Poista ohjausryhmä", // "item.page.abstract": "Abstract", "item.page.abstract": "Tiivistelmä", @@ -2601,6 +3529,12 @@ // "item.page.collections": "Collections", "item.page.collections": "Kokoelmat", + // "item.page.collections.loading": "Loading...", + "item.page.collections.loading": "Ladataan...", + + // "item.page.collections.load-more": "Load more", + "item.page.collections.load-more": "Lataa lisää", + // "item.page.date": "Date", "item.page.date": "Päivämäärä", @@ -2634,6 +3568,12 @@ // "item.page.link.simple": "Simple item page", "item.page.link.simple": "Tietueen suppeat tiedot", + // "item.page.orcid.title": "ORCID", + "item.page.orcid.title": "ORCID-tunniste", + + // "item.page.orcid.tooltip": "Open ORCID setting page", + "item.page.orcid.tooltip": "Avaa ORCID-asetusten sivu", + // "item.page.person.search.title": "Articles by this author", "item.page.person.search.title": "Tekijän artikkelit", @@ -2667,12 +3607,27 @@ // "item.page.bitstreams.collapse": "Collapse", "item.page.bitstreams.collapse": "Sulje", - // "item.page.filesection.original.bundle" : "Original bundle", + // "item.page.filesection.original.bundle": "Original bundle", "item.page.filesection.original.bundle": "Alkuperäinen nippu", - // "item.page.filesection.license.bundle" : "License bundle", + // "item.page.filesection.license.bundle": "License bundle", "item.page.filesection.license.bundle": "Lisenssinippu", + // "item.page.return": "Back", + "item.page.return": "Paluu", + + // "item.page.version.create": "Create new version", + "item.page.version.create": "Luo uusi versio", + + // "item.page.version.hasDraft": "A new version cannot be created because there is an inprogress submission in the version history", + "item.page.version.hasDraft": "Uutta versiota ei voida luoda, koska versiohistoriassa on kesken oleva tallennus.", + + // "item.page.claim.button": "Claim", + "item.page.claim.button": "Ota itsellesi", + + // "item.page.claim.tooltip": "Claim this item as profile", + "item.page.claim.tooltip": "Ota tämä kohde profiiliksi", + // "item.preview.dc.identifier.uri": "Identifier:", "item.preview.dc.identifier.uri": "Tunnus:", @@ -2680,7 +3635,7 @@ "item.preview.dc.contributor.author": "Tekijät:", // "item.preview.dc.date.issued": "Published date:", - "item.preview.dc.date.issued": "Julkaisuajankohta:", + "item.preview.dc.date.issued": "Julkaisuaika:", // "item.preview.dc.description.abstract": "Abstract:", "item.preview.dc.description.abstract": "Tiivistelmä:", @@ -2697,6 +3652,33 @@ // "item.preview.dc.title": "Title:", "item.preview.dc.title": "Nimeke:", + // "item.preview.dc.type": "Type:", + "item.preview.dc.type": "Tyyppi:", + + // "item.preview.oaire.citation.issue": "Issue", + "item.preview.oaire.citation.issue": "Numero", + + // "item.preview.oaire.citation.volume": "Volume", + "item.preview.oaire.citation.volume": "Vuosikerta", + + // "item.preview.dc.relation.issn": "ISSN", + "item.preview.dc.relation.issn": "ISSN-tunnus", + + // "item.preview.dc.identifier.isbn": "ISBN", + "item.preview.dc.identifier.isbn": "ISBN", + + // "item.preview.dc.identifier": "Identifier:", + "item.preview.dc.identifier": "Tunnisteet:", + + // "item.preview.dc.relation.ispartof": "Journal or Serie", + "item.preview.dc.relation.ispartof": "Kausijulkaisu tai sarja", + + // "item.preview.dc.identifier.doi": "DOI", + "item.preview.dc.identifier.doi": "DOI", + + // "item.preview.dc.publisher": "Publisher:", + "item.preview.dc.publisher": "Julkaisija:", + // "item.preview.person.familyName": "Surname:", "item.preview.person.familyName": "Sukunimi:", @@ -2706,6 +3688,23 @@ // "item.preview.person.identifier.orcid": "ORCID:", "item.preview.person.identifier.orcid": "ORCID-tunniste:", + // "item.preview.project.funder.name": "Funder:", + "item.preview.project.funder.name": "Rahoittaja:", + + // "item.preview.project.funder.identifier": "Funder Identifier:", + "item.preview.project.funder.identifier": "Rahoittajan tunniste:", + + // "item.preview.oaire.awardNumber": "Funding ID:", + "item.preview.oaire.awardNumber": "Rahoitustunnus:", + + // "item.preview.dc.title.alternative": "Acronym:", + "item.preview.dc.title.alternative": "Kirjainlyhemme:", + + // "item.preview.dc.coverage.spatial": "Jurisdiction:", + "item.preview.dc.coverage.spatial": "Toimivalta:", + + // "item.preview.oaire.fundingStream": "Funding Stream:", + "item.preview.oaire.fundingStream": "Rahoituslähde:", // "item.select.confirm": "Confirm selected", "item.select.confirm": "Vahvista valinta", @@ -2722,19 +3721,21 @@ // "item.select.table.title": "Title", "item.select.table.title": "Nimeke", - // "item.version.history.empty": "There are no other versions for this item yet.", "item.version.history.empty": "Tietueesta ei ole muita versioita.", // "item.version.history.head": "Version History", "item.version.history.head": "Versiohistoria", - // "item.version.history.return": "Return", - "item.version.history.return": "Palaa", + // "item.version.history.return": "Back", + "item.version.history.return": "Paluu", // "item.version.history.selected": "Selected version", "item.version.history.selected": "Valittu versio", + // "item.version.history.selected.alert": "You are currently viewing version {{version}} of the item.", + "item.version.history.selected.alert": "Tarkastelet tietueen versiota {{version}}.", + // "item.version.history.table.version": "Version", "item.version.history.table.version": "Versio", @@ -2750,12 +3751,191 @@ // "item.version.history.table.summary": "Summary", "item.version.history.table.summary": "Yhteenveto", + // "item.version.history.table.workspaceItem": "Workspace item", + "item.version.history.table.workspaceItem": "Työtilan tietue", + + // "item.version.history.table.workflowItem": "Workflow item", + "item.version.history.table.workflowItem": "Työtilan tietue", + + // "item.version.history.table.actions": "Action", + "item.version.history.table.actions": "Toiminto", + + // "item.version.history.table.action.editWorkspaceItem": "Edit workspace item", + "item.version.history.table.action.editWorkspaceItem": "Muokkaa työtilan tietuetta", + + // "item.version.history.table.action.editSummary": "Edit summary", + "item.version.history.table.action.editSummary": "Muokkaa yhteenvetoa", + + // "item.version.history.table.action.saveSummary": "Save summary edits", + "item.version.history.table.action.saveSummary": "Tallenna yhteenvedon muokkaukset", + + // "item.version.history.table.action.discardSummary": "Discard summary edits", + "item.version.history.table.action.discardSummary": "Hylkää yhteenvedon muokkaukset", + + // "item.version.history.table.action.newVersion": "Create new version from this one", + "item.version.history.table.action.newVersion": "Luo tästä uusi versio", + + // "item.version.history.table.action.deleteVersion": "Delete version", + "item.version.history.table.action.deleteVersion": "Poista versio", + // "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": "Uutta versiota ei voida luoda, koska versiohistoriassa on kesken oleva tallennus.", // "item.version.notice": "This is not the latest version of this item. The latest version can be found <a href='{{destination}}'>here</a>.", "item.version.notice": "Tämä ei ole tietueen uusin versio. Uusin versio löytyy <a href='{{destination}}'>täältä</a>.", + // "item.version.create.modal.header": "New version", + "item.version.create.modal.header": "uusi versio", + + // "item.version.create.modal.text": "Create a new version for this item", + "item.version.create.modal.text": "Luodaan tietueesta uusi versio", + + // "item.version.create.modal.text.startingFrom": "starting from version {{version}}", + "item.version.create.modal.text.startingFrom": "alkaen versiosta {{version}}", + + // "item.version.create.modal.button.confirm": "Create", + "item.version.create.modal.button.confirm": "Luo", + + // "item.version.create.modal.button.confirm.tooltip": "Create new version", + "item.version.create.modal.button.confirm.tooltip": "Luo uusi versio", + + // "item.version.create.modal.button.cancel": "Cancel", + "item.version.create.modal.button.cancel": "Peruuta", + + // "item.version.create.modal.button.cancel.tooltip": "Do not create new version", + "item.version.create.modal.button.cancel.tooltip": "Älä luo uutta versiota", + + // "item.version.create.modal.form.summary.label": "Summary", + "item.version.create.modal.form.summary.label": "Yhteenveto", + + // "item.version.create.modal.form.summary.placeholder": "Insert the summary for the new version", + "item.version.create.modal.form.summary.placeholder": "Syötä uuden version yhteenveto", + + // "item.version.create.modal.submitted.header": "Creating new version...", + "item.version.create.modal.submitted.header": "Luodaan uutta versiota...", + + // "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": "Uutta versiota luodaan. Luonti voi kestää, jos tietueella on paljon yhteyksiä.", + + // "item.version.create.notification.success": "New version has been created with version number {{version}}", + "item.version.create.notification.success": "Uusi versio on luotu, sen versionumero on {{version}}", + + // "item.version.create.notification.failure": "New version has not been created", + "item.version.create.notification.failure": "Uutta versiota ei luotu", + + // "item.version.create.notification.inProgress": "A new version cannot be created because there is an inprogress submission in the version history", + "item.version.create.notification.inProgress": "Uutta versiota ei voida luoda, koska versiohistoriassa on kesken oleva tallennus.", + + // "item.version.delete.modal.header": "Delete version", + "item.version.delete.modal.header": "Poista versio", + + // "item.version.delete.modal.text": "Do you want to delete version {{version}}?", + "item.version.delete.modal.text": "Haluatko poistaa version {{version}}?", + + // "item.version.delete.modal.button.confirm": "Delete", + "item.version.delete.modal.button.confirm": "Poista", + // "item.version.delete.modal.button.confirm.tooltip": "Delete this version", + "item.version.delete.modal.button.confirm.tooltip": "Poista tämä versio", + + // "item.version.delete.modal.button.cancel": "Cancel", + "item.version.delete.modal.button.cancel": "Peruuta", + + // "item.version.delete.modal.button.cancel.tooltip": "Do not delete this version", + "item.version.delete.modal.button.cancel.tooltip": "Älä poista tätä versiota", + + // "item.version.delete.notification.success": "Version number {{version}} has been deleted", + "item.version.delete.notification.success": "Versio versionumerolla {{version}} poistettu", + + // "item.version.delete.notification.failure": "Version number {{version}} has not been deleted", + "item.version.delete.notification.failure": "Versiota versionumerolla {{version}} ei poistettu", + + // "item.version.edit.notification.success": "The summary of version number {{version}} has been changed", + "item.version.edit.notification.success": "Version versionumerolla {{version}} yhteenveto on muuttunut", + + // "item.version.edit.notification.failure": "The summary of version number {{version}} has not been changed", + "item.version.edit.notification.failure": "Version versionumerolla {{version}} yhteenvetoa ei ole muutettu", + + // "itemtemplate.edit.metadata.add-button": "Add", + "itemtemplate.edit.metadata.add-button": "Lisää", + + // "itemtemplate.edit.metadata.discard-button": "Discard", + "itemtemplate.edit.metadata.discard-button": "Hylkää", + + // "itemtemplate.edit.metadata.edit.buttons.confirm": "Confirm", + "itemtemplate.edit.metadata.edit.buttons.confirm": "Vahvista", + + // "itemtemplate.edit.metadata.edit.buttons.drag": "Drag to reorder", + "itemtemplate.edit.metadata.edit.buttons.drag": "Raahaa uudelleenjärjestääksesi", + + // "itemtemplate.edit.metadata.edit.buttons.edit": "Edit", + "itemtemplate.edit.metadata.edit.buttons.edit": "Muokkaa", + + // "itemtemplate.edit.metadata.edit.buttons.remove": "Remove", + "itemtemplate.edit.metadata.edit.buttons.remove": "Poista", + + // "itemtemplate.edit.metadata.edit.buttons.undo": "Undo changes", + "itemtemplate.edit.metadata.edit.buttons.undo": "Kumoa muutokset", + + // "itemtemplate.edit.metadata.edit.buttons.unedit": "Stop editing", + "itemtemplate.edit.metadata.edit.buttons.unedit": "Lopeta muokkaus", + + // "itemtemplate.edit.metadata.empty": "The item template currently doesn't contain any metadata. Click Add to start adding a metadata value.", + "itemtemplate.edit.metadata.empty": "Mallipohjassa ei ole metadataa. Napsauta Lisää lisätäksesi metadata-arvoja.", + + // "itemtemplate.edit.metadata.headers.edit": "Edit", + "itemtemplate.edit.metadata.headers.edit": "Muokkaa", + + // "itemtemplate.edit.metadata.headers.field": "Field", + "itemtemplate.edit.metadata.headers.field": "Kenttä", + + // "itemtemplate.edit.metadata.headers.language": "Lang", + "itemtemplate.edit.metadata.headers.language": "Kieli", + + // "itemtemplate.edit.metadata.headers.value": "Value", + "itemtemplate.edit.metadata.headers.value": "Arvo", + + // "itemtemplate.edit.metadata.metadatafield.error": "An error occurred validating the metadata field", + "itemtemplate.edit.metadata.metadatafield.error": "Virhe metadatakenttää validoitaessa", + + // "itemtemplate.edit.metadata.metadatafield.invalid": "Please choose a valid metadata field", + "itemtemplate.edit.metadata.metadatafield.invalid": "Valitse kelvollinen metadatakenttä ", + + // "itemtemplate.edit.metadata.notifications.discarded.content": "Your changes were discarded. To reinstate your changes click the 'Undo' button", + "itemtemplate.edit.metadata.notifications.discarded.content": "Muutoksesi hylättiin. Palauta muutokset napsauttamalla Kumoa-painiketta", + + // "itemtemplate.edit.metadata.notifications.discarded.title": "Changes discarded", + "itemtemplate.edit.metadata.notifications.discarded.title": "Muutokset peruttu", + + // "itemtemplate.edit.metadata.notifications.error.title": "An error occurred", + "itemtemplate.edit.metadata.notifications.error.title": "Tapahtui virhe", + + // "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.content": "Muutoksia ei tallennettu. Tarkista kaikkien kenttien oikeellisuus ennen tallennusta.", + + // "itemtemplate.edit.metadata.notifications.invalid.title": "Metadata invalid", + "itemtemplate.edit.metadata.notifications.invalid.title": "Virheellinen metadata", + + // "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.content": "Toinen käyttäjä on muokannut käsittelemääsi mallipohjaa. Muutoksesi on hylätty konfliktien välttämiseksi.", + + // "itemtemplate.edit.metadata.notifications.outdated.title": "Changes outdated", + "itemtemplate.edit.metadata.notifications.outdated.title": "Muutokset vanhentuneet", + + // "itemtemplate.edit.metadata.notifications.saved.content": "Your changes to this item template's metadata were saved.", + "itemtemplate.edit.metadata.notifications.saved.content": "Muutokset mallipohjan metadataan on tallennettu.", + + // "itemtemplate.edit.metadata.notifications.saved.title": "Metadata saved", + "itemtemplate.edit.metadata.notifications.saved.title": "Metadata tallennettu", + + // "itemtemplate.edit.metadata.reinstate-button": "Undo", + "itemtemplate.edit.metadata.reinstate-button": "Kumoa", + + // "itemtemplate.edit.metadata.reset-order-button": "Undo reorder", + "itemtemplate.edit.metadata.reset-order-button": "Kumoa uudelleenjärjestäminen", + + // "itemtemplate.edit.metadata.save-button": "Save", + "itemtemplate.edit.metadata.save-button": "Tallenna", // "journal.listelement.badge": "Journal", "journal.listelement.badge": "Kausijulkaisu", @@ -2781,10 +3961,11 @@ // "journal.search.results.head": "Journal Search Results", "journal.search.results.head": "Kausijulkaisuhaun tulokset", - // "journal.search.title": "DSpace Angular :: Journal Search", - "journal.search.title": "DSpace Angular :: Kausijulkaisuhaku", - + // "journal-relationships.search.results.head": "Journal Search Results", + "journal-relationships.search.results.head": "Kausijulkaisuhaun tulokset", + // "journal.search.title": "Journal Search", + "journal.search.title": "Kausijulkaisuhaku", // "journalissue.listelement.badge": "Journal Issue", "journalissue.listelement.badge": "Kausijulkaisun numero", @@ -2813,8 +3994,6 @@ // "journalissue.page.titleprefix": "Journal Issue: ", "journalissue.page.titleprefix": "Kausijulkaisun numero: ", - - // "journalvolume.listelement.badge": "Journal Volume", "journalvolume.listelement.badge": "Kausijulkaisun vuosikerta", @@ -2833,7 +4012,38 @@ // "journalvolume.page.volume": "Volume", "journalvolume.page.volume": "Vuosikerta", + // "iiifsearchable.listelement.badge": "Document Media", + "iiifsearchable.listelement.badge": "Dokumenttimedia", + + // "iiifsearchable.page.titleprefix": "Document: ", + "iiifsearchable.page.titleprefix": "Dokumentti: ", + + // "iiifsearchable.page.doi": "Permanent Link: ", + "iiifsearchable.page.doi": "Pysyvä linkki: ", + + // "iiifsearchable.page.issue": "Issue: ", + "iiifsearchable.page.issue": "Numero: ", + + // "iiifsearchable.page.description": "Description: ", + "iiifsearchable.page.description": "Kuvaus: ", + // "iiifviewer.fullscreen.notice": "Use full screen for better viewing.", + "iiifviewer.fullscreen.notice": "Käytä koko näytön tilaa nähdäksesi paremmin", + + // "iiif.listelement.badge": "Image Media", + "iiif.listelement.badge": "Kuvamedia", + + // "iiif.page.titleprefix": "Image: ", + "iiif.page.titleprefix": "Kuva: ", + + // "iiif.page.doi": "Permanent Link: ", + "iiif.page.doi": "Pysyvä linkki: ", + + // "iiif.page.issue": "Issue: ", + "iiif.page.issue": "Numero: ", + + // "iiif.page.description": "Description: ", + "iiif.page.description": "Kuvaus: ", // "loading.bitstream": "Loading bitstream...", "loading.bitstream": "Ladataan tiedostoa...", @@ -2889,8 +4099,6 @@ // "loading.top-level-communities": "Loading top-level communities...", "loading.top-level-communities": "Ladataan ylätason yhteisöjä...", - - // "login.form.email": "Email address", "login.form.email": "Sähköpostiosoite", @@ -2906,6 +4114,12 @@ // "login.form.or-divider": "or", "login.form.or-divider": "tai", + // "login.form.oidc": "Log in with OIDC", + "login.form.oidc": "Kirjaudu OIDC-tunnuksella", + + // "login.form.orcid": "Log in with ORCID", + "login.form.orcid": "Kirjaudu ORCID-tunnuksella", + // "login.form.password": "Password", "login.form.password": "Salasana", @@ -2921,8 +4135,6 @@ // "login.breadcrumbs": "Login", "login.breadcrumbs": "Sisäänkirjautuminen", - - // "logout.form.header": "Log out from DSpace", "logout.form.header": "Kirjaudu ulos", @@ -2932,15 +4144,14 @@ // "logout.title": "Logout", "logout.title": "Uloskirjautuminen", - - - // "menu.header.admin": "Admin", - "menu.header.admin": "Ylläpitäjä", + // "menu.header.admin": "Management", + "menu.header.admin": "Hallinto", // "menu.header.image.logo": "Repository logo", "menu.header.image.logo": "Arkiston logo", - + // "menu.header.admin.description": "Management menu", + "menu.header.admin.description": "Hallintovalikko", // "menu.section.access_control": "Access Control", "menu.section.access_control": "Pääsyoikeudet", @@ -2954,13 +4165,9 @@ // "menu.section.access_control_people": "People", "menu.section.access_control_people": "Käyttäjät", - - // "menu.section.admin_search": "Admin Search", "menu.section.admin_search": "Ylläpitäjän haku", - - // "menu.section.browse_community": "This Community", "menu.section.browse_community": "Tämä yhteisö", @@ -2968,7 +4175,7 @@ "menu.section.browse_community_by_author": "Tekijän mukaan", // "menu.section.browse_community_by_issue_date": "By Issue Date", - "menu.section.browse_community_by_issue_date": "Julkaisuajankohdan mukaan", + "menu.section.browse_community_by_issue_date": "Julkaisuajan mukaan", // "menu.section.browse_community_by_title": "By Title", "menu.section.browse_community_by_title": "Nimekkeen mukaan", @@ -2980,27 +4187,26 @@ "menu.section.browse_global_by_author": "Tekijän mukaan", // "menu.section.browse_global_by_dateissued": "By Issue Date", - "menu.section.browse_global_by_dateissued": "Julkaisuajankohdan mukaan", + "menu.section.browse_global_by_dateissued": "Julkaisuajan mukaan", // "menu.section.browse_global_by_subject": "By Subject", "menu.section.browse_global_by_subject": "Asiasanan mukaan", + // "menu.section.browse_global_by_srsc": "By Subject Category", + "menu.section.browse_global_by_srsc": "Aihekategorian mukaan", + // "menu.section.browse_global_by_title": "By Title", "menu.section.browse_global_by_title": "Nimekkeen mukaan", // "menu.section.browse_global_communities_and_collections": "Communities & Collections", "menu.section.browse_global_communities_and_collections": "Yhteisöt & kokoelmat", - - // "menu.section.control_panel": "Control Panel", "menu.section.control_panel": "Hallintapaneeli", // "menu.section.curation_task": "Curation Task", "menu.section.curation_task": "Kuratointitehtävä", - - // "menu.section.edit": "Edit", "menu.section.edit": "Muokkaa", @@ -3013,8 +4219,6 @@ // "menu.section.edit_item": "Item", "menu.section.edit_item": "Tietue", - - // "menu.section.export": "Export", "menu.section.export": "Eksportoi", @@ -3030,7 +4234,8 @@ // "menu.section.export_metadata": "Metadata", "menu.section.export_metadata": "Metadata", - + // "menu.section.export_batch": "Batch Export (ZIP)", + "menu.section.export_batch": "Erän eksportointi(ZIP)", // "menu.section.icon.access_control": "Access Control menu section", "menu.section.icon.access_control": "Pääsyoikeudet", @@ -3041,8 +4246,8 @@ // "menu.section.icon.control_panel": "Control Panel menu section", "menu.section.icon.control_panel": "Hallintapaneeli", - // "menu.section.icon.curation_task": "Curation Task menu section", - "menu.section.icon.curation_task": "Kuratointi", + // "menu.section.icon.curation_tasks": "Curation Task menu section", + "menu.section.icon.curation_tasks": "Kuratointitehtävä", // "menu.section.icon.edit": "Edit menu section", "menu.section.icon.edit": "Muokkaus", @@ -3053,6 +4258,9 @@ // "menu.section.icon.find": "Find menu section", "menu.section.icon.find": "Haku", + // "menu.section.icon.health": "Health check menu section", + "menu.section.icon.health": "Järjestelmän kunnon tarkistus", + // "menu.section.icon.import": "Import menu section", "menu.section.icon.import": "Importointi", @@ -3062,8 +4270,8 @@ // "menu.section.icon.pin": "Pin sidebar", "menu.section.icon.pin": "Kiinnitä sivupalkki", - // "menu.section.icon.processes": "Processes menu section", - "menu.section.icon.processes": "Prosessit", + // "menu.section.icon.processes": "Processes Health", + "menu.section.icon.processes": "Prosessien kunto", // "menu.section.icon.registries": "Registries menu section", "menu.section.icon.registries": "Rekisterit", @@ -3071,11 +4279,12 @@ // "menu.section.icon.statistics_task": "Statistics Task menu section", "menu.section.icon.statistics_task": "Tilastot", + // "menu.section.icon.workflow": "Administer workflow menu section", + "menu.section.icon.workflow": "Työnkulku hallinta", + // "menu.section.icon.unpin": "Unpin sidebar", "menu.section.icon.unpin": "Vapauta sivupalkki", - - // "menu.section.import": "Import", "menu.section.import": "Importoi", @@ -3085,8 +4294,6 @@ // "menu.section.import_metadata": "Metadata", "menu.section.import_metadata": "Metadata", - - // "menu.section.new": "New", "menu.section.new": "Uusi", @@ -3105,20 +4312,17 @@ // "menu.section.new_process": "Process", "menu.section.new_process": "Prosessi", - - // "menu.section.pin": "Pin sidebar", "menu.section.pin": "Kiinnitä sivupalkki", // "menu.section.unpin": "Unpin sidebar", "menu.section.unpin": "Vapauta sivupalkki", - - // "menu.section.processes": "Processes", "menu.section.processes": "Prosessit", - + // "menu.section.health": "Health", + "menu.section.health": "Järjestelmän kunto", // "menu.section.registries": "Registries", "menu.section.registries": "Rekisterit", @@ -3129,57 +4333,60 @@ // "menu.section.registries_metadata": "Metadata", "menu.section.registries_metadata": "Metadata", - - // "menu.section.statistics": "Statistics", "menu.section.statistics": "Tilastot", // "menu.section.statistics_task": "Statistics Task", "menu.section.statistics_task": "Tilastointitehtävä", - - // "menu.section.toggle.access_control": "Toggle Access Control section", - "menu.section.toggle.access_control": "Vaihda Pääsyoikeudet-osion tilaa", + "menu.section.toggle.access_control": "Näytä/piilota Pääsyoikeudet-osio", // "menu.section.toggle.control_panel": "Toggle Control Panel section", - "menu.section.toggle.control_panel": "Vaihda Hallintapaneeli-osion tilaa", + "menu.section.toggle.control_panel": "Näytä/piilota Hallintapaneeli-osio", // "menu.section.toggle.curation_task": "Toggle Curation Task section", - "menu.section.toggle.curation_task": "Vaihda Kuratointitehtävä-osion tilaa", + "menu.section.toggle.curation_task": "Näytä/piilota Kuratointitehtävä-osio", // "menu.section.toggle.edit": "Toggle Edit section", - "menu.section.toggle.edit": "Vaihda Muokkaus-osion tilaa", + "menu.section.toggle.edit": "Näytä/piilota Muokkaus-osio", // "menu.section.toggle.export": "Toggle Export section", - "menu.section.toggle.export": "Vaihda Eksportointi-osion tilaa", + "menu.section.toggle.export": "Näytä/piilota Eksportointi-osio", // "menu.section.toggle.find": "Toggle Find section", - "menu.section.toggle.find": "Vaihda Haku-osion tilaa", + "menu.section.toggle.find": "Näytä/piilota Haku-osio", // "menu.section.toggle.import": "Toggle Import section", - "menu.section.toggle.import": "Vaihda Importointi-osion tilaa", + "menu.section.toggle.import": "Näytä/piilota Importointi-osio", // "menu.section.toggle.new": "Toggle New section", - "menu.section.toggle.new": "Vaihda Uusi-osion tilaa", + "menu.section.toggle.new": "Näytä/piilota Uusi-osio", // "menu.section.toggle.registries": "Toggle Registries section", - "menu.section.toggle.registries": "Vaihda Rekisterit-osion tilaa", + "menu.section.toggle.registries": "Näytä/piilota Rekisterit-osio", // "menu.section.toggle.statistics_task": "Toggle Statistics Task section", - "menu.section.toggle.statistics_task": "Vaihda Tilastointitehtävä-osion tilaa", - + "menu.section.toggle.statistics_task": "Näytä/piilota Tilastointitehtävä-osio", // "menu.section.workflow": "Administer Workflow", "menu.section.workflow": "Hallinnoi työnkulkua", + // "metadata-export-search.tooltip": "Export search results as CSV", + "metadata-export-search.tooltip": "Eksportoi Hakutulokset CSV-tiedostona", + + // "metadata-export-search.submit.success": "The export was started successfully", + "metadata-export-search.submit.success": "Eksportointi aloitettu", + + // "metadata-export-search.submit.error": "Starting the export has failed", + "metadata-export-search.submit.error": "Eksportoinnin aloittaminen epäonnistui", + + // "mydspace.breadcrumbs": "MyDSpace", + "mydspace.breadcrumbs": "Oma DSpace", // "mydspace.description": "", "mydspace.description": "", - // "mydspace.general.text-here": "here", - "mydspace.general.text-here": "tässä", - // "mydspace.messages.controller-help": "Select this option to send a message to item's submitter.", "mydspace.messages.controller-help": "Valitse tämä, jos haluat lähettää viestin tietueen tallentajalle.", @@ -3255,26 +4462,32 @@ // "mydspace.results.no-uri": "No Uri", "mydspace.results.no-uri": "Ei URL-osoitetta", - // "mydspace.show.workflow": "All tasks", - "mydspace.show.workflow": "Kaikki tehtävät", + // "mydspace.search-form.placeholder": "Search in mydspace...", + "mydspace.search-form.placeholder": "Hae omasta DSpacesta...", + + // "mydspace.show.workflow": "Workflow tasks", + "mydspace.show.workflow": "Työnkulun tehtävät", // "mydspace.show.workspace": "Your Submissions", "mydspace.show.workspace": "Tallennuksesi", - // "mydspace.status.archived": "Archived", - "mydspace.status.archived": "Arkistoitu", + // "mydspace.show.supervisedWorkspace": "Supervised items", + "mydspace.show.supervisedWorkspace": "Valvotut tietueet", + + // "mydspace.status.mydspaceArchived": "Archived", + "mydspace.status.mydspaceArchived": "Arkistoitu", - // "mydspace.status.validation": "Validation", - "mydspace.status.validation": "Tarkastaminen", + // "mydspace.status.mydspaceValidation": "Validation", + "mydspace.status.mydspaceValidation": "Validointi", - // "mydspace.status.waiting-for-controller": "Waiting for controller", - "mydspace.status.waiting-for-controller": "Odotetaan tarkastajaa", + // "mydspace.status.mydspaceWaitingController": "Waiting for controller", + "mydspace.status.mydspaceWaitingController": "Odottaa tarkastajaa", - // "mydspace.status.workflow": "Workflow", - "mydspace.status.workflow": "Työnkulku", + // "mydspace.status.mydspaceWorkflow": "Workflow", + "mydspace.status.mydspaceWorkflow": "Työnkulku", - // "mydspace.status.workspace": "Workspace", - "mydspace.status.workspace": "Työtila", + // "mydspace.status.mydspaceWorkspace": "Workspace", + "mydspace.status.mydspaceWorkspace": "Työtila", // "mydspace.title": "MyDSpace", "mydspace.title": "Oma DSpace", @@ -3291,31 +4504,35 @@ // "mydspace.upload.upload-multiple-successful": "{{qty}} new workspace items created.", "mydspace.upload.upload-multiple-successful": "{{qty}} uutta työtilaa luotu.", - // "mydspace.upload.upload-successful": "New workspace item created. Click {{here}} for edit it.", - "mydspace.upload.upload-successful": "Uusi työtila luotu. Napauta tästä muokataksesi sitä.", - // "mydspace.view-btn": "View", "mydspace.view-btn": "Näytä", - - // "nav.browse.header": "All of DSpace", "nav.browse.header": "Koko julkaisuarkisto", // "nav.community-browse.header": "By Community", "nav.community-browse.header": "Yhteisön mukaan", + // "nav.context-help-toggle": "Toggle context help", + "nav.context-help-toggle": "Näytä/piilota tilannekohtainen ohje", + // "nav.language": "Language switch", "nav.language": "Kielivalinta", // "nav.login": "Log In", "nav.login": "Kirjaudu sisään", + // "nav.user-profile-menu-and-logout": "User profile menu and Log Out", + "nav.user-profile-menu-and-logout": "Käyttäjäprofiilivalikko ja uloskirjautuminen", + // "nav.logout": "Log Out", "nav.logout": "Kirjaudu ulos", + // "nav.main.description": "Main navigation bar", + "nav.main.description": "Päänavigointipalkki", + // "nav.mydspace": "MyDSpace", - "nav.mydspace": "Omat tiedot", + "nav.mydspace": "Oma DSpace", // "nav.profile": "Profile", "nav.profile": "Profiili", @@ -3323,17 +4540,33 @@ // "nav.search": "Search", "nav.search": "Hae", + // "nav.search.button": "Submit search", + "nav.search.button": "Lähetä haku", + // "nav.statistics.header": "Statistics", "nav.statistics.header": "Tilastot", // "nav.stop-impersonating": "Stop impersonating EPerson", "nav.stop-impersonating": "Lopeta käyttäjänä esiintyminen", + // "nav.subscriptions": "Subscriptions", + "nav.subscriptions": "Tilaukset", + + // "nav.toggle": "Toggle navigation", + "nav.toggle": "Näytä/piilota navigointi", + // "nav.user.description": "User profile bar", + "nav.user.description": "Käyttäjäprofiilipalkki", + + // "none.listelement.badge": "Item", + "none.listelement.badge": "Tietue", // "orgunit.listelement.badge": "Organizational Unit", "orgunit.listelement.badge": "Organisaatioyksikkö", + // "orgunit.listelement.no-title": "Untitled", + "orgunit.listelement.no-title": "Nimetön", + // "orgunit.page.city": "City", "orgunit.page.city": "Kaupunki", @@ -3355,7 +4588,8 @@ // "orgunit.page.titleprefix": "Organizational Unit: ", "orgunit.page.titleprefix": "Organisaatioyksikkö: ", - + // "pagination.options.description": "Pagination options", + "pagination.options.description": "Sivutusvaihtoehdot", // "pagination.results-per-page": "Results Per Page", "pagination.results-per-page": "Tuloksia sivulla", @@ -3369,8 +4603,6 @@ // "pagination.sort-direction": "Sort Options", "pagination.sort-direction": "Lajitteluvalinnat", - - // "person.listelement.badge": "Person", "person.listelement.badge": "Käyttäjä", @@ -3395,6 +4627,9 @@ // "person.page.lastname": "Last Name", "person.page.lastname": "Sukunimi", + // "person.page.name": "Name", + "person.page.name": "Nimi", + // "person.page.link.full": "Show all metadata", "person.page.link.full": "Näytä kaikki metadata", @@ -3408,12 +4643,13 @@ "person.page.titleprefix": "Käyttäjä: ", // "person.search.results.head": "Person Search Results", - "person.search.results.head": "Käyttäjähaun tulokset", - - // "person.search.title": "DSpace Angular :: Person Search", - "person.search.title": "DSpace Angular :: Käyttäjähaku", + "person.search.results.head": "Henkilöhaun tulokset", + // "person-relationships.search.results.head": "Person Search Results", + "person-relationships.search.results.head": "Henkilöhaun tulokset", + // "person.search.title": "Person Search", + "person.search.title": "Henkilöhaku", // "process.new.select-parameters": "Parameters", "process.new.select-parameters": "Parametrit", @@ -3421,8 +4657,8 @@ // "process.new.cancel": "Cancel", "process.new.cancel": "Peruuta", - // "process.new.submit": "Submit", - "process.new.submit": "Lähetä", + // "process.new.submit": "Save", + "process.new.submit": "Tallenna", // "process.new.select-script": "Script", "process.new.select-script": "Skripti", @@ -3463,6 +4699,9 @@ // "process.new.notification.error.content": "An error occurred while creating this process", "process.new.notification.error.content": "Virhe prosessia luotaessa", + // "process.new.notification.error.max-upload.content": "The file exceeds the maximum upload size", + "process.new.notification.error.max-upload.content": "Tiedoston koko ylittää latauksen maksimikoon", + // "process.new.header": "Create a new process", "process.new.header": "Luo uusi prosessi", @@ -3472,18 +4711,16 @@ // "process.new.breadcrumbs": "Create a new process", "process.new.breadcrumbs": "Luo uusi prosessi", + // "process.detail.arguments": "Arguments", + "process.detail.arguments": "Perustelut", + // "process.detail.arguments.empty": "This process doesn't contain any arguments", + "process.detail.arguments.empty": "Prosessiin ei liity perusteluja", - // "process.detail.arguments" : "Arguments", - "process.detail.arguments": "Muuttujat", - - // "process.detail.arguments.empty" : "This process doesn't contain any arguments", - "process.detail.arguments.empty": "Prosessiin ei liity muuttujia", - - // "process.detail.back" : "Back", + // "process.detail.back": "Back", "process.detail.back": "Paluu", - // "process.detail.output" : "Process Output", + // "process.detail.output": "Process Output", "process.detail.output": "Prosessin tulos", // "process.detail.logs.button": "Retrieve process output", @@ -3495,48 +4732,70 @@ // "process.detail.logs.none": "This process has no output", "process.detail.logs.none": "Prosessilla ei tulosta", - // "process.detail.output-files" : "Output Files", + // "process.detail.output-files": "Output Files", "process.detail.output-files": "Tulostiedostot", - // "process.detail.output-files.empty" : "This process doesn't contain any output files", + // "process.detail.output-files.empty": "This process doesn't contain any output files", "process.detail.output-files.empty": "Prosessilla ei ole tulostiedostoja", - // "process.detail.script" : "Script", + // "process.detail.script": "Script", "process.detail.script": "Skripti", - // "process.detail.title" : "Process: {{ id }} - {{ name }}", + // "process.detail.title": "Process: {{ id }} - {{ name }}", "process.detail.title": "Prosessi: {{ id }} - {{ name }}", - // "process.detail.start-time" : "Start time", + // "process.detail.start-time": "Start time", "process.detail.start-time": "Aloitusaika", - // "process.detail.end-time" : "Finish time", + // "process.detail.end-time": "Finish time", "process.detail.end-time": "Lopetusaika", - // "process.detail.status" : "Status", + // "process.detail.status": "Status", "process.detail.status": "Tila", - // "process.detail.create" : "Create similar process", + // "process.detail.create": "Create similar process", "process.detail.create": "Luo vastaava prosessi", + // "process.detail.actions": "Actions", + "process.detail.actions": "Toiminnot", + + // "process.detail.delete.button": "Delete process", + "process.detail.delete.button": "Poista prosessi", + + // "process.detail.delete.header": "Delete process", + "process.detail.delete.header": "Poista prosessi", + + // "process.detail.delete.body": "Are you sure you want to delete the current process?", + "process.detail.delete.body": "Haluatko varmasti poistaa nykyisen prosessin?", + + // "process.detail.delete.cancel": "Cancel", + "process.detail.delete.cancel": "Peruuta", + + // "process.detail.delete.confirm": "Delete process", + "process.detail.delete.confirm": "Poista prosessi", + + // "process.detail.delete.success": "The process was successfully deleted.", + "process.detail.delete.success": "Prosessi on poistettu.", + // "process.detail.delete.error": "Something went wrong when deleting the process", + "process.detail.delete.error": "Virhe prosessia poistettaessa", - // "process.overview.table.finish" : "Finish time", - "process.overview.table.finish": "Lopetusaika", + // "process.overview.table.finish": "Finish time (UTC)", + "process.overview.table.finish": "Lopetusaika (UTC)", - // "process.overview.table.id" : "Process ID", + // "process.overview.table.id": "Process ID", "process.overview.table.id": "Prosessin ID", - // "process.overview.table.name" : "Name", + // "process.overview.table.name": "Name", "process.overview.table.name": "Nimi", - // "process.overview.table.start" : "Start time", - "process.overview.table.start": "Aloitusaika", + // "process.overview.table.start": "Start time (UTC)", + "process.overview.table.start": "Aloitusaika (UTC)", - // "process.overview.table.status" : "Status", + // "process.overview.table.status": "Status", "process.overview.table.status": "Tila", - // "process.overview.table.user" : "User", + // "process.overview.table.user": "User", "process.overview.table.user": "Käyttäjä", // "process.overview.title": "Processes Overview", @@ -3548,6 +4807,32 @@ // "process.overview.new": "New", "process.overview.new": "Uusi", + // "process.overview.table.actions": "Actions", + "process.overview.table.actions": "Toiminnot", + + // "process.overview.delete": "Delete {{count}} processes", + "process.overview.delete": "Poista {{count}} prosessi(a)", + + // "process.overview.delete.clear": "Clear delete selection", + "process.overview.delete.clear": "Tyhjennä poistettavien valinta", + + // "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.processing": "{{count}} prosessi(a) poistetaan. Odota poiston päättymistä. Poisto saattaa kestää hetken.", + + // "process.overview.delete.body": "Are you sure you want to delete {{count}} process(es)?", + "process.overview.delete.body": "Haluatko varmasti poistaa {{count}} prosessin/prosessia?", + + // "process.overview.delete.header": "Delete processes", + "process.overview.delete.header": "Poista prosessi", + + // "process.bulk.delete.error.head": "Error on deleteing process", + "process.bulk.delete.error.head": "Virhe poistettaessa prosessia", + + // "process.bulk.delete.error.body": "The process with ID {{processId}} could not be deleted. The remaining processes will continue being deleted. ", + "process.bulk.delete.error.body": "Prosessia, jonka ID on {{processId}}, ei voitu poistaa. Muiden prosessien poistamista jatketaan.", + + // "process.bulk.delete.success": "{{count}} process(es) have been succesfully deleted", + "process.bulk.delete.success": "{{count}} prosessi(a) poistettu", // "profile.breadcrumbs": "Update Profile", "profile.breadcrumbs": "Päivitä profiili", @@ -3558,11 +4843,14 @@ // "profile.card.security": "Security", "profile.card.security": "Suojaus", - // "profile.form.submit": "Update Profile", - "profile.form.submit": "Päivitä profiili", + // "profile.form.submit": "Save", + "profile.form.submit": "Tallenna", // "profile.groups.head": "Authorization groups you belong to", - "profile.groups.head": "Ryhmät, joihin kuulut", + "profile.groups.head": "Käyttöoikeusryhmät, joihin kuulut", + + // "profile.special.groups.head": "Authorization special groups you belong to", + "profile.special.groups.head": "Erityiset käyttöoikeusryhmät, joihin kuulut", // "profile.head": "Update Profile", "profile.head": "Päivitä profiili", @@ -3603,11 +4891,8 @@ // "profile.security.form.error.matching-passwords": "The passwords do not match.", "profile.security.form.error.matching-passwords": "Salasanat eivät täsmää.", - // "profile.security.form.error.password-length": "The password should be at least 6 characters long.", - "profile.security.form.error.password-length": "Salasanan on oltava vähintään 6 merkkiä pitkä.", - - // "profile.security.form.info": "Optionally, you can enter a new password in the box below, and confirm it by typing it again into the second box. It should be at least six characters long.", - "profile.security.form.info": "Voit kirjoittaa uuden salasanan alla olevaan kenttään ja varmentaa sen kirjoittamalla sen uudelleen seuraavaan kenttään. Salasanan pituus on vähintään kuusi merkkiä.", + // "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.", + "profile.security.form.info": "Voit kirjoittaa uuden salasanan alla olevaan kenttään ja varmentaa sen kirjoittamalla sen uudelleen seuraavaan kenttään.", // "profile.security.form.label.password": "Password", "profile.security.form.label.password": "Salasana", @@ -3615,6 +4900,9 @@ // "profile.security.form.label.passwordrepeat": "Retype to confirm", "profile.security.form.label.passwordrepeat": "Kirjoita uudelleen", + // "profile.security.form.label.current-password": "Current password", + "profile.security.form.label.current-password": "Nykyinen salasana", + // "profile.security.form.notifications.success.content": "Your changes to the password were saved.", "profile.security.form.notifications.success.content": "Muuttunut salasana on tallennettu.", @@ -3624,16 +4912,20 @@ // "profile.security.form.notifications.error.title": "Error changing passwords", "profile.security.form.notifications.error.title": "Virhe salasanaa muutettaessa", - // "profile.security.form.notifications.error.not-long-enough": "The password has to be at least 6 characters long.", - "profile.security.form.notifications.error.not-long-enough": "Salasanan on oltava vähintään 6 merkkiä pitkä.", + // "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.change-failed": "Tapahtui virhe salasanaa muutettaessa. Tarkista, että nykyinen salasana on oikea.", // "profile.security.form.notifications.error.not-same": "The provided passwords are not the same.", "profile.security.form.notifications.error.not-same": "Annetut salasanat eivät täsmää.", + // "profile.security.form.notifications.error.general": "Please fill required fields of security form.", + "profile.security.form.notifications.error.general": "Täytä suojauslomakkeen vaaditut kentät.", + // "profile.title": "Update Profile", "profile.title": "Päivitä profiili", - + // "profile.card.researcher": "Researcher Profile", + "profile.card.researcher": "Tutkijaprofiili", // "project.listelement.badge": "Research Project", "project.listelement.badge": "Tutkimusprojekti", @@ -3668,7 +4960,8 @@ // "project.search.results.head": "Project Search Results", "project.search.results.head": "Projektihaun tulokset", - + // "project-relationships.search.results.head": "Project Search Results", + "project-relationships.search.results.head": "Projektihaun tulokset", // "publication.listelement.badge": "Publication", "publication.listelement.badge": "Julkaisu", @@ -3697,9 +4990,20 @@ // "publication.search.results.head": "Publication Search Results", "publication.search.results.head": "Aineistohaun tulokset", - // "publication.search.title": "DSpace Angular :: Publication Search", - "publication.search.title": "DSpace Angular :: Aineistohaku", + // "publication-relationships.search.results.head": "Publication Search Results", + "publication-relationships.search.results.head": "Aineistohaun tulokset", + + // "publication.search.title": "Publication Search", + "publication.search.title": "Aineistohaku", + // "media-viewer.next": "Next", + "media-viewer.next": "Seuraava", + + // "media-viewer.previous": "Previous", + "media-viewer.previous": "Edellinen", + + // "media-viewer.playlist": "Playlist", + "media-viewer.playlist": "Soittolista", // "register-email.title": "New user registration", "register-email.title": "Uuden käyttäjän rekisteröinti", @@ -3734,8 +5038,8 @@ // "register-page.create-profile.security.header": "Security", "register-page.create-profile.security.header": "Suojaus", - // "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. It should be at least six characters long.", - "register-page.create-profile.security.info": "Syötä salasana alla olevaan kenttään ja vahvista se kirjoittamalla salasana uudelleen seuraavaan kenttään. Salasanan on oltava vähintään kuusi merkkiä pitkä.", + // "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.", + "register-page.create-profile.security.info": "Syötä salasana alla olevaan kenttään ja vahvista se kirjoittamalla salasana uudelleen seuraavaan kenttään.", // "register-page.create-profile.security.label.password": "Password *", "register-page.create-profile.security.label.password": "Salasana *", @@ -3749,14 +5053,11 @@ // "register-page.create-profile.security.error.matching-passwords": "The passwords do not match.", "register-page.create-profile.security.error.matching-passwords": "Salasanat eivät täsmää.", - // "register-page.create-profile.security.error.password-length": "The password should be at least 6 characters long.", - "register-page.create-profile.security.error.password-length": "Salasanan on oltava vähintään 6 merkkiä pitkä.", - // "register-page.create-profile.submit": "Complete Registration", "register-page.create-profile.submit": "Viimeistele rekisteröinti", // "register-page.create-profile.submit.error.content": "Something went wrong while registering a new user.", - "register-page.create-profile.submit.error.content": "Tapahtui virhe uuden käyttäjän rekisteröinnissä.", + "register-page.create-profile.submit.error.content": "Virhe uuden käyttäjän rekisteröinnissä.", // "register-page.create-profile.submit.error.head": "Registration failed", "register-page.create-profile.submit.error.head": "Rekisteröinti epäonnistui", @@ -3767,7 +5068,6 @@ // "register-page.create-profile.submit.success.head": "Registration completed", "register-page.create-profile.submit.success.head": "Rekisteröinti valmis", - // "register-page.registration.header": "New user registration", "register-page.registration.header": "Uuden käyttäjän rekisteröinti", @@ -3780,8 +5080,11 @@ // "register-page.registration.email.error.required": "Please fill in an email address", "register-page.registration.email.error.required": "Anna sähköpostiosoite", - // "register-page.registration.email.error.pattern": "Please fill in a valid email address", - "register-page.registration.email.error.pattern": "Anna toimiva sähköpostiosoite, ole hyvä", + // "register-page.registration.email.error.not-email-form": "Please fill in a valid email address.", + "register-page.registration.email.error.not-email-form": "Anna toimiva sähköpostiosoite", + + // "register-page.registration.email.error.not-valid-domain": "Use email with allowed domains: {{ domains }}", + "register-page.registration.email.error.not-valid-domain": "Käytä sähköpostiosoitetta näillä verkkoalueilla: {{ domains }}", // "register-page.registration.email.hint": "This address will be verified and used as your login name.", "register-page.registration.email.hint": "Osoite varmistetaan, ja se toimii käyttäjätunnuksenasi kirjautumisessa.", @@ -3801,7 +5104,29 @@ // "register-page.registration.error.content": "An error occured when registering the following email address: {{ email }}", "register-page.registration.error.content": "Virhe rekisteröitäessä tätä sähköpostiosoitetta: {{ email }}", + // "register-page.registration.error.recaptcha": "Error when trying to authenticate with recaptcha", + "register-page.registration.error.recaptcha": "Virhe autentikoitaessa recaptcha-toiminnolla", + + // "register-page.registration.google-recaptcha.must-accept-cookies": "In order to register you must accept the <b>Registration and Password recovery</b> (Google reCaptcha) cookies.", + "register-page.registration.google-recaptcha.must-accept-cookies": "Rekisteröityäksesi sinun on hyväksyttävä <b>Rekisteröinnin ja salasanan palauttamisen</b> (Google reCaptcha) evästeet.", + + // "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.error.maildomain": "Annettu sähköpostiosoite ei ole rekisteröinnille sallittujen verkkoalueiden joukossa. Sallitut verkkoalueet ovat {{ domains }}", + + // "register-page.registration.google-recaptcha.open-cookie-settings": "Open cookie settings", + "register-page.registration.google-recaptcha.open-cookie-settings": "Avaa evästeasetukset", + // "register-page.registration.google-recaptcha.notification.title": "Google reCaptcha", + "register-page.registration.google-recaptcha.notification.title": "Google reCaptcha", + + // "register-page.registration.google-recaptcha.notification.message.error": "An error occurred during reCaptcha verification", + "register-page.registration.google-recaptcha.notification.message.error": "Virhe reCaptcha-todennuksessa", + + // "register-page.registration.google-recaptcha.notification.message.expired": "Verification expired. Please verify again.", + "register-page.registration.google-recaptcha.notification.message.expired": "Todentaminen vanhentunut. Todenna uudelleen.", + + // "register-page.registration.info.maildomain": "Accounts can be registered for mail addresses of the domains", + "register-page.registration.info.maildomain": "Tili voidaan rekisteröidä näiden verkkoalueiden sähköpostiosoitteille", // "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": "Ei {{ type }}-tyyppistä yhteysvastaavuutta kahden tietueen välillä", @@ -3857,7 +5182,23 @@ // "relationships.isContributorOf": "Contributors", "relationships.isContributorOf": "Muut tekijät", + // "relationships.isContributorOf.OrgUnit": "Contributor (Organizational Unit)", + "relationships.isContributorOf.OrgUnit": "Osallistuja (Organisaatioyksikkö)", + + // "relationships.isContributorOf.Person": "Contributor", + "relationships.isContributorOf.Person": "Osallistuja", + // "relationships.isFundingAgencyOf.OrgUnit": "Funder", + "relationships.isFundingAgencyOf.OrgUnit": "Rahoittaja", + + // "repository.image.logo": "Repository logo", + "repository.image.logo": "Julkaisuarkiston logo", + + // "repository.title": "DSpace Repository", + "repository.title": "Julkaisuarkisto", + + // "repository.title.prefix": "DSpace Repository :: ", + "repository.title.prefix": "Julkaisuarkisto :: ", // "resource-policies.add.button": "Add", "resource-policies.add.button": "Lisää", @@ -3910,6 +5251,12 @@ // "resource-policies.edit.page.failure.content": "An error occurred while editing the resource policy.", "resource-policies.edit.page.failure.content": "Virhe muokattaessa resurssikäytäntöä.", + // "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.target-failure.content": "Tapahtui virhe muokattaessa resurssikäytännön kohdetta (käyttäjä tai ryhmä).", + + // "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.other-failure.content": "Tapahtui virhe resurssikäytäntöä muokattaessa. Kohde (käyttäjä tai ryhmä) on päivitetty onnistuneesti.", + // "resource-policies.edit.page.success.content": "Operation successful", "resource-policies.edit.page.success.content": "Toiminto onnistui", @@ -3943,10 +5290,25 @@ // "resource-policies.form.eperson-group-list.table.headers.name": "Name", "resource-policies.form.eperson-group-list.table.headers.name": "Nimi", + // "resource-policies.form.eperson-group-list.modal.header": "Cannot change type", + "resource-policies.form.eperson-group-list.modal.header": "Tyypin muuttaminen ei onnistu", + + // "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.toGroup": "Käyttäjän korvaaminen ryhmällä ei ole mahdollista.", + + // "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.text1.toEPerson": "Ryhmän korvaaminen käyttäjällä ei ole mahdollista.", + + // "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.text2": "Poista nykyinen resurssikäytäntö ja luo uusi halutulla tyypillä.", + + // "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": "Loppupäivämäärä", - // "resource-policies.form.date.start.label": "Start Date + // "resource-policies.form.date.start.label": "Start Date", "resource-policies.form.date.start.label": "Alkupäivämäärä", // "resource-policies.form.description.label": "Description", @@ -4009,21 +5371,19 @@ // "resource-policies.table.headers.title.for.collection": "Policies for Collection", "resource-policies.table.headers.title.for.collection": "Kokoelmakäytännöt", - - // "search.description": "", "search.description": "", // "search.switch-configuration.title": "Show", "search.switch-configuration.title": "Näytä", - // "search.title": "DSpace Angular :: Search", - "search.title": "DSpace Angular :: Hae", + // "search.title": "Search", + "search.title": "Hae", // "search.breadcrumbs": "Search", "search.breadcrumbs": "Hae", - // "search.search-form.placeholder": "Search the repository ...", + // "search.search-form.placeholder": "Search the repository ...", "search.search-form.placeholder": "Hae julkaisuarkistosta ...", // "search.filters.applied.f.author": "Author", @@ -4038,7 +5398,7 @@ // "search.filters.applied.f.dateSubmitted": "Date submitted", "search.filters.applied.f.dateSubmitted": "Tallennusajankohta", - // "search.filters.applied.f.discoverable": "Private", + // "search.filters.applied.f.discoverable": "Non-discoverable", "search.filters.applied.f.discoverable": "Yksityinen", // "search.filters.applied.f.entityType": "Item Type", @@ -4068,28 +5428,41 @@ // "search.filters.applied.f.birthDate.min": "Start birth date", "search.filters.applied.f.birthDate.min": "Varhaisin syntymäaika", + // "search.filters.applied.f.supervisedBy": "Supervised by", + "search.filters.applied.f.supervisedBy": "Ohjaajana:", + // "search.filters.applied.f.withdrawn": "Withdrawn", "search.filters.applied.f.withdrawn": "Poistettu käytöstä", - - // "search.filters.filter.author.head": "Author", "search.filters.filter.author.head": "Tekijä", // "search.filters.filter.author.placeholder": "Author name", "search.filters.filter.author.placeholder": "Tekijän nimi", + // "search.filters.filter.author.label": "Search author name", + "search.filters.filter.author.label": "Hae tekijän nimellä", + // "search.filters.filter.birthDate.head": "Birth Date", "search.filters.filter.birthDate.head": "Syntymäaika", // "search.filters.filter.birthDate.placeholder": "Birth Date", "search.filters.filter.birthDate.placeholder": "Syntymäaika", + // "search.filters.filter.birthDate.label": "Search birth date", + "search.filters.filter.birthDate.label": "Hae syntymäajalla", + + // "search.filters.filter.collapse": "Collapse filter", + "search.filters.filter.collapse": "Sulje suodatin", + // "search.filters.filter.creativeDatePublished.head": "Date Published", - "search.filters.filter.creativeDatePublished.head": "Julkaisuajankohta", + "search.filters.filter.creativeDatePublished.head": "Julkaisuaika", // "search.filters.filter.creativeDatePublished.placeholder": "Date Published", - "search.filters.filter.creativeDatePublished.placeholder": "Julkaisuajankohta", + "search.filters.filter.creativeDatePublished.placeholder": "Julkaisuaika", + + // "search.filters.filter.creativeDatePublished.label": "Search date published", + "search.filters.filter.creativeDatePublished.label": "Hae julkaisuaikaa", // "search.filters.filter.creativeWorkEditor.head": "Editor", "search.filters.filter.creativeWorkEditor.head": "Toimittaja", @@ -4097,26 +5470,41 @@ // "search.filters.filter.creativeWorkEditor.placeholder": "Editor", "search.filters.filter.creativeWorkEditor.placeholder": "Toimittaja", + // "search.filters.filter.creativeWorkEditor.label": "Search editor", + "search.filters.filter.creativeWorkEditor.label": "Hae toimittajaa", + // "search.filters.filter.creativeWorkKeywords.head": "Subject", "search.filters.filter.creativeWorkKeywords.head": "Asiasana", // "search.filters.filter.creativeWorkKeywords.placeholder": "Subject", "search.filters.filter.creativeWorkKeywords.placeholder": "Asiasana", + // "search.filters.filter.creativeWorkKeywords.label": "Search subject", + "search.filters.filter.creativeWorkKeywords.label": "Hae asiasanaa", + // "search.filters.filter.creativeWorkPublisher.head": "Publisher", "search.filters.filter.creativeWorkPublisher.head": "Julkaisija", // "search.filters.filter.creativeWorkPublisher.placeholder": "Publisher", "search.filters.filter.creativeWorkPublisher.placeholder": "Julkaisija", + // "search.filters.filter.creativeWorkPublisher.label": "Search publisher", + "search.filters.filter.creativeWorkPublisher.label": "Hae julkaisijaa", + // "search.filters.filter.dateIssued.head": "Date", "search.filters.filter.dateIssued.head": "Päivämäärä", - // "search.filters.filter.dateIssued.max.placeholder": "Minimum Date", - "search.filters.filter.dateIssued.max.placeholder": "Alkupäivämäärä", + // "search.filters.filter.dateIssued.max.placeholder": "Maximum Date", + "search.filters.filter.dateIssued.max.placeholder": "Suurin päivämäärä", + + // "search.filters.filter.dateIssued.max.label": "End", + "search.filters.filter.dateIssued.max.label": "Loppu", - // "search.filters.filter.dateIssued.min.placeholder": "Maximum Date", - "search.filters.filter.dateIssued.min.placeholder": "Loppupäivämäärä", + // "search.filters.filter.dateIssued.min.placeholder": "Minimum Date", + "search.filters.filter.dateIssued.min.placeholder": "Pienin päivämäärä", + + // "search.filters.filter.dateIssued.min.label": "Start", + "search.filters.filter.dateIssued.min.label": "Alku", // "search.filters.filter.dateSubmitted.head": "Date submitted", "search.filters.filter.dateSubmitted.head": "Tallennusajankohta", @@ -4124,7 +5512,10 @@ // "search.filters.filter.dateSubmitted.placeholder": "Date submitted", "search.filters.filter.dateSubmitted.placeholder": "Tallennnusajankohta", - // "search.filters.filter.discoverable.head": "Private", + // "search.filters.filter.dateSubmitted.label": "Search date submitted", + "search.filters.filter.dateSubmitted.label": "Hakupäivä lähetetty", + + // "search.filters.filter.discoverable.head": "Non-discoverable", "search.filters.filter.discoverable.head": "Yksityinen", // "search.filters.filter.withdrawn.head": "Withdrawn", @@ -4136,6 +5527,12 @@ // "search.filters.filter.entityType.placeholder": "Item Type", "search.filters.filter.entityType.placeholder": "Tietueen tyyppi", + // "search.filters.filter.entityType.label": "Search item type", + "search.filters.filter.entityType.label": "Hae tietueen tyyppiä", + + // "search.filters.filter.expand": "Expand filter", + "search.filters.filter.expand": "Laajenna suodinta", + // "search.filters.filter.has_content_in_original_bundle.head": "Has files", "search.filters.filter.has_content_in_original_bundle.head": "On tiedostoja", @@ -4145,53 +5542,80 @@ // "search.filters.filter.itemtype.placeholder": "Type", "search.filters.filter.itemtype.placeholder": "Tyyppi", + // "search.filters.filter.itemtype.label": "Search type", + "search.filters.filter.itemtype.label": "Hakutyyppi", + // "search.filters.filter.jobTitle.head": "Job Title", "search.filters.filter.jobTitle.head": "Tehtävänimike", // "search.filters.filter.jobTitle.placeholder": "Job Title", "search.filters.filter.jobTitle.placeholder": "Tehtävänimike", + // "search.filters.filter.jobTitle.label": "Search job title", + "search.filters.filter.jobTitle.label": "Hae tehtävänimikettä", + // "search.filters.filter.knowsLanguage.head": "Known language", "search.filters.filter.knowsLanguage.head": "Tunnettu kieli", // "search.filters.filter.knowsLanguage.placeholder": "Known language", "search.filters.filter.knowsLanguage.placeholder": "Tunnettu kieli", + // "search.filters.filter.knowsLanguage.label": "Search known language", + "search.filters.filter.knowsLanguage.label": "Hae tunnettua kieltä", + // "search.filters.filter.namedresourcetype.head": "Status", "search.filters.filter.namedresourcetype.head": "Tila", // "search.filters.filter.namedresourcetype.placeholder": "Status", "search.filters.filter.namedresourcetype.placeholder": "Tila", + // "search.filters.filter.namedresourcetype.label": "Search status", + "search.filters.filter.namedresourcetype.label": "Haun tila", + // "search.filters.filter.objectpeople.head": "People", "search.filters.filter.objectpeople.head": "Käyttäjät", // "search.filters.filter.objectpeople.placeholder": "People", "search.filters.filter.objectpeople.placeholder": "Käyttäjät", + // "search.filters.filter.objectpeople.label": "Search people", + "search.filters.filter.objectpeople.label": "Hae ihmisiä", + // "search.filters.filter.organizationAddressCountry.head": "Country", "search.filters.filter.organizationAddressCountry.head": "Maa", // "search.filters.filter.organizationAddressCountry.placeholder": "Country", "search.filters.filter.organizationAddressCountry.placeholder": "Maa", + // "search.filters.filter.organizationAddressCountry.label": "Search country", + "search.filters.filter.organizationAddressCountry.label": "Hae maata", + // "search.filters.filter.organizationAddressLocality.head": "City", "search.filters.filter.organizationAddressLocality.head": "Kaupunki", // "search.filters.filter.organizationAddressLocality.placeholder": "City", "search.filters.filter.organizationAddressLocality.placeholder": "Kaupunki", + // "search.filters.filter.organizationAddressLocality.label": "Search city", + "search.filters.filter.organizationAddressLocality.label": "Hae kaupunkia", + // "search.filters.filter.organizationFoundingDate.head": "Date Founded", "search.filters.filter.organizationFoundingDate.head": "Perustamispäivämäärä", // "search.filters.filter.organizationFoundingDate.placeholder": "Date Founded", "search.filters.filter.organizationFoundingDate.placeholder": "Perustamispäivämäärä", + // "search.filters.filter.organizationFoundingDate.label": "Search date founded", + "search.filters.filter.organizationFoundingDate.label": "Hae perustamispäivämäärää", + // "search.filters.filter.scope.head": "Scope", "search.filters.filter.scope.head": "Rajaus", // "search.filters.filter.scope.placeholder": "Scope filter", - "search.filters.filter.scope.placeholder": "Haun tarkennus", + "search.filters.filter.scope.placeholder": "Hakusuodattimet", + + // "search.filters.filter.scope.label": "Search scope filter", + "search.filters.filter.scope.label": "Hae hakusuodatinta", // "search.filters.filter.show-less": "Collapse", "search.filters.filter.show-less": "Sulje", @@ -4205,13 +5629,29 @@ // "search.filters.filter.subject.placeholder": "Subject", "search.filters.filter.subject.placeholder": "Asiasana", + // "search.filters.filter.subject.label": "Search subject", + "search.filters.filter.subject.label": "Hae asiasanaa", + // "search.filters.filter.submitter.head": "Submitter", "search.filters.filter.submitter.head": "Tallentaja", // "search.filters.filter.submitter.placeholder": "Submitter", "search.filters.filter.submitter.placeholder": "Tallentaja", + // "search.filters.filter.submitter.label": "Search submitter", + "search.filters.filter.submitter.label": "Hae tallentajaa", + + // "search.filters.filter.show-tree": "Browse {{ name }} tree", + "search.filters.filter.show-tree": "Selaa {{ name }}-puuta", + + // "search.filters.filter.supervisedBy.head": "Supervised By", + "search.filters.filter.supervisedBy.head": "Ohjaajana:", + // "search.filters.filter.supervisedBy.placeholder": "Supervised By", + "search.filters.filter.supervisedBy.placeholder": "Ohjaajana:", + + // "search.filters.filter.supervisedBy.label": "Search Supervised By", + "search.filters.filter.supervisedBy.label": "Hae ohjaajan mukaan", // "search.filters.entityType.JournalIssue": "Journal Issue", "search.filters.entityType.JournalIssue": "Kausijulkaisun numero", @@ -4240,25 +5680,23 @@ // "search.filters.withdrawn.false": "No", "search.filters.withdrawn.false": "Ei", - // "search.filters.head": "Filters", "search.filters.head": "Suodattimet", // "search.filters.reset": "Reset filters", "search.filters.reset": "Tyhjennä suodattimet", - + // "search.filters.search.submit": "Submit", + "search.filters.search.submit": "Lähetä", // "search.form.search": "Search", "search.form.search": "Hae", - // "search.form.search_dspace": "Search DSpace", - "search.form.search_dspace": "Hae arkistosta", - - // "search.form.search_mydspace": "Search MyDSpace", - "search.form.search_mydspace": "Hae omista tiedoista", - + // "search.form.search_dspace": "All repository", + "search.form.search_dspace": "Koko julkaisuarkisto", + // "search.form.scope.all": "All of DSpace", + "search.form.scope.all": "Koko julkaisuarkisto", // "search.results.head": "Search Results", "search.results.head": "Hakutulokset", @@ -4272,7 +5710,17 @@ // "search.results.empty": "Your search returned no results.", "search.results.empty": "Ei hakutuloksia.", + // "search.results.view-result": "View", + "search.results.view-result": "Näytä", + + // "search.results.response.500": "An error occurred during query execution, please try again later", + "search.results.response.500": "Virhe hakua suoritettaessa, yritä myöhemmin uudelleen", + // "default.search.results.head": "Search Results", + "default.search.results.head": "Hakutulokset", + + // "default-relationships.search.results.head": "Search Results", + "default-relationships.search.results.head": "Hakutulokset", // "search.sidebar.close": "Back to results", "search.sidebar.close": "Paluu tuloksiin", @@ -4295,8 +5743,6 @@ // "search.sidebar.settings.title": "Settings", "search.sidebar.settings.title": "Asetukset", - - // "search.view-switch.show-detail": "Show detail", "search.view-switch.show-detail": "Näytä lisätiedot", @@ -4306,8 +5752,6 @@ // "search.view-switch.show-list": "Show as list", "search.view-switch.show-list": "Näytä luettelona", - - // "sorting.ASC": "Ascending", "sorting.ASC": "Laskeva", @@ -4320,10 +5764,29 @@ // "sorting.dc.title.DESC": "Title Descending", "sorting.dc.title.DESC": "Nimeke (Ö-A)", - // "sorting.score.DESC": "Relevance", - "sorting.score.DESC": "Relevanssi", + // "sorting.score.ASC": "Least Relevant", + "sorting.score.ASC": "Vähiten relevantti", + // "sorting.score.DESC": "Most Relevant", + "sorting.score.DESC": "Relevantein", + // "sorting.dc.date.issued.ASC": "Date Issued Ascending", + "sorting.dc.date.issued.ASC": "Julkaisuaika nouseva", + + // "sorting.dc.date.issued.DESC": "Date Issued Descending", + "sorting.dc.date.issued.DESC": "Julkaisuaika laskeva", + + // "sorting.dc.date.accessioned.ASC": "Accessioned Date Ascending", + "sorting.dc.date.accessioned.ASC": "Hyväksymispäivä nouseva", + + // "sorting.dc.date.accessioned.DESC": "Accessioned Date Descending", + "sorting.dc.date.accessioned.DESC": "Hyväksymispäivä laskeva", + + // "sorting.lastModified.ASC": "Last modified Ascending", + "sorting.lastModified.ASC": "Viimeksi muokattu nouseva", + + // "sorting.lastModified.DESC": "Last modified Descending", + "sorting.lastModified.DESC": "Viimeksi muokattu laskeva", // "statistics.title": "Statistics", "statistics.title": "Tilastot", @@ -4358,12 +5821,19 @@ // "statistics.table.header.views": "Views", "statistics.table.header.views": "Katseluita", + // "statistics.table.no-name": "(object name could not be loaded)", + "statistics.table.no-name": "(kohteen nimeä ei voitu ladata)", + // "submission.edit.breadcrumbs": "Edit Submission", + "submission.edit.breadcrumbs": "Muokkaa tallennusta", // "submission.edit.title": "Edit Submission", "submission.edit.title": "Muokkaa tallennusta", - // "submission.general.cannot_submit": "You have not the privilege to make a new submission.", + // "submission.general.cancel": "Cancel", + "submission.general.cancel": "Peruuta", + + // "submission.general.cannot_submit": "You don't have permission to make a new submission.", "submission.general.cannot_submit": "Sinulla ei ole oikeuksia aineiston tallentamiseen.", // "submission.general.deposit": "Deposit", @@ -4384,21 +5854,50 @@ // "submission.general.discard.submit": "Discard", "submission.general.discard.submit": "Hylkää", + // "submission.general.info.saved": "Saved", + "submission.general.info.saved": "Tallennettu", + + // "submission.general.info.pending-changes": "Unsaved changes", + "submission.general.info.pending-changes": "Tallentamattomat muutokset", + // "submission.general.save": "Save", "submission.general.save": "Tallenna", // "submission.general.save-later": "Save for later", "submission.general.save-later": "Tallenna myöhemmäksi", - // "submission.import-external.page.title": "Import metadata from an external source", "submission.import-external.page.title": "Importoi metadata ulkoisesta lähteestä", // "submission.import-external.title": "Import metadata from an external source", "submission.import-external.title": "Importoi metadata ulkoisesta lähteestä", + // "submission.import-external.title.Journal": "Import a journal from an external source", + "submission.import-external.title.Journal": "Importoi Muokkaa kausijulkaisu ulkoisesta lähteestä", + + // "submission.import-external.title.JournalIssue": "Import a journal issue from an external source", + "submission.import-external.title.JournalIssue": "Importoi kausijulkaisun numero ulkoisesta lähteestä", + + // "submission.import-external.title.JournalVolume": "Import a journal volume from an external source", + "submission.import-external.title.JournalVolume": "Importoi kausijulkaisun vuosikerta ulkoisesta lähteestä", + + // "submission.import-external.title.OrgUnit": "Import a publisher from an external source", + "submission.import-external.title.OrgUnit": "Importoi julkaisija ulkoisesta lähteestä", + + // "submission.import-external.title.Person": "Import a person from an external source", + "submission.import-external.title.Person": "Importoi käyttäjä ulkoisesta lähteestä", + + // "submission.import-external.title.Project": "Import a project from an external source", + "submission.import-external.title.Project": "Importoi projekti ulkoisesta lähteestä", + + // "submission.import-external.title.Publication": "Import a publication from an external source", + "submission.import-external.title.Publication": "Importoi julkaisu ulkoisesta lähteestä", + + // "submission.import-external.title.none": "Import metadata from an external source", + "submission.import-external.title.none": "Importoi metadata ulkoisesta lähteestä", + // "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": "Anna hakulauseke etsiäksesi verkosta arkistoon importoitavia tietueita.", + "submission.import-external.page.hint": "Anna hakulauseke etsiäksesi verkosta julkaisuarkistoon importoitavia tietueita.", // "submission.import-external.back-to-my-dspace": "Back to MyDSpace", "submission.import-external.back-to-my-dspace": "Paluu omiin tietoihin", @@ -4418,27 +5917,84 @@ // "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", + "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": "Euroopan patenttivirasto (EPO)", + // "submission.import-external.source.loading": "Loading ...", "submission.import-external.source.loading": "Ladataan ...", // "submission.import-external.source.sherpaJournal": "SHERPA Journals", "submission.import-external.source.sherpaJournal": "SHERPA-kausijulkaisut", + // "submission.import-external.source.sherpaJournalIssn": "SHERPA Journals by ISSN", + "submission.import-external.source.sherpaJournalIssn": "SHERPA-kausijulkaisut ISSN-tunnuksen mukaan", + // "submission.import-external.source.sherpaPublisher": "SHERPA Publishers", "submission.import-external.source.sherpaPublisher": "SHERPA-kustantajat", + // "submission.import-external.source.openAIREFunding": "Funding OpenAIRE API", + "submission.import-external.source.openAIREFunding": "OpenAIRE API-rahoitus", + // "submission.import-external.source.orcid": "ORCID", "submission.import-external.source.orcid": "ORCID-tunniste", // "submission.import-external.source.pubmed": "Pubmed", "submission.import-external.source.pubmed": "Pubmed", + // "submission.import-external.source.pubmedeu": "Pubmed Europe", + "submission.import-external.source.pubmedeu": "Euroopan Pubmed", + // "submission.import-external.source.lcname": "Library of Congress Names", "submission.import-external.source.lcname": "Library of Congress -nimet", // "submission.import-external.preview.title": "Item Preview", "submission.import-external.preview.title": "Tietueen esikatselu", + // "submission.import-external.preview.title.Publication": "Publication Preview", + "submission.import-external.preview.title.Publication": "Julkaisun esikatselu", + + // "submission.import-external.preview.title.none": "Item Preview", + "submission.import-external.preview.title.none": "Tietueen esikatselu", + + // "submission.import-external.preview.title.Journal": "Journal Preview", + "submission.import-external.preview.title.Journal": "Kausijulkaisun esikatselu", + + // "submission.import-external.preview.title.OrgUnit": "Organizational Unit Preview", + "submission.import-external.preview.title.OrgUnit": "Organisaatioyksikön esikatselu", + + // "submission.import-external.preview.title.Person": "Person Preview", + "submission.import-external.preview.title.Person": "Käyttäjän esikatselu", + + // "submission.import-external.preview.title.Project": "Project Preview", + "submission.import-external.preview.title.Project": "Projektin esikatselu", + // "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": "Alla oleva metadata importoitiin ulkoisesta lähteestä. Sillä esitäytetään metadata, kun aloitat tallennuksen.", @@ -4469,6 +6025,48 @@ // "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": "Importoi kausijulkaisun vuosikerta ulkoisesta lähteestä", + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.isProjectOfPublication": "Project", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.isProjectOfPublication": "Projekti", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.none": "Import remote item", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.none": "Importoi tietue ulkoisesta lähteestä", + + // "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": "Importoi tapahtuma ulkoisesta lähteestä", + + // "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": "Importoi tuote ulkoisesta lähteestä", + + // "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": "Importoi laite ulkoisesta lähteestä", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.OrgUnit": "Import remote organizational unit", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.OrgUnit": "Importoi organisaatioyksikkö ulkoisesta lähteestä", + + // "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": "Importoi rahoitus ulkoisesta lähteestä", + + // "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": "Importoi käyttäjä ulkoisesta lähteestä", + + // "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": "Importoi patentti ulkoisesta lähteestä", + + // "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": "Importoi projekti ulkoisesta lähteestä", + + // "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": "Importoi julkaisu ulkoisesta lähteestä", + + // "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": "Uusi entiteetti lisätty", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.title": "Project", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.title": "Projekti", + + // "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": "Funding OpenAIRE API-rahoitus", + // "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": "Importoi tekijä ulkoisesta lähteestä", @@ -4562,6 +6160,9 @@ // "submission.sections.describe.relationship-lookup.search-tab.search": "Go", "submission.sections.describe.relationship-lookup.search-tab.search": "Ok", + // "submission.sections.describe.relationship-lookup.search-tab.search-form.placeholder": "Search...", + "submission.sections.describe.relationship-lookup.search-tab.search-form.placeholder": "Haetaan...", + // "submission.sections.describe.relationship-lookup.search-tab.select-all": "Select all", "submission.sections.describe.relationship-lookup.search-tab.select-all": "Valitse kaikki", @@ -4637,13 +6238,39 @@ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isChildOrgUnitOf": "Search for Organizational Units", "submission.sections.describe.relationship-lookup.search-tab.tab-title.isChildOrgUnitOf": "Hae organisaatioyksiköitä", + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.openAIREFunding": "Funding OpenAIRE API", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.openAIREFunding": "OpenAIRE API -rahoitus", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isProjectOfPublication": "Projects", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isProjectOfPublication": "Projektit", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfProject": "Funder of the Project", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfProject": "Projektin rahoittaja", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isPublicationOfAuthor": "Publication of the Author", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isPublicationOfAuthor": "Tekijän julkaisu", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.openAIREFunding": "Funding OpenAIRE API", + "submission.sections.describe.relationship-lookup.selection-tab.title.openAIREFunding": "OpenAIRE API API-rahoitus", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.isProjectOfPublication": "Project", + "submission.sections.describe.relationship-lookup.selection-tab.title.isProjectOfPublication": "Projekti", + + // "submission.sections.describe.relationship-lookup.title.isProjectOfPublication": "Projects", + "submission.sections.describe.relationship-lookup.title.isProjectOfPublication": "Projektit", + + // "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfProject": "Funder of the Project", + "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfProject": "Projektin rahoittaja", + + // "submission.sections.describe.relationship-lookup.selection-tab.search-form.placeholder": "Search...", + "submission.sections.describe.relationship-lookup.selection-tab.search-form.placeholder": "Haetaan...", + // "submission.sections.describe.relationship-lookup.selection-tab.tab-title": "Current Selection ({{ count }})", "submission.sections.describe.relationship-lookup.selection-tab.tab-title": "Nykyinen valinta ({{ count }})", // "submission.sections.describe.relationship-lookup.title.isJournalIssueOfPublication": "Journal Issues", "submission.sections.describe.relationship-lookup.title.isJournalIssueOfPublication": "Kausijulkaisun numerot", - // "submission.sections.describe.relationship-lookup.title.JournalIssue": "Journal Issues", "submission.sections.describe.relationship-lookup.title.JournalIssue": "Kausijulkaisun numerot", @@ -4689,8 +6316,11 @@ // "submission.sections.describe.relationship-lookup.title.isChildOrgUnitOf": "Parent Organizational Unit", "submission.sections.describe.relationship-lookup.title.isChildOrgUnitOf": "Ylempi organisaatioyksikkö", + // "submission.sections.describe.relationship-lookup.title.isPublicationOfAuthor": "Publication", + "submission.sections.describe.relationship-lookup.title.isPublicationOfAuthor": "Julkaisu", + // "submission.sections.describe.relationship-lookup.search-tab.toggle-dropdown": "Toggle dropdown", - "submission.sections.describe.relationship-lookup.search-tab.toggle-dropdown": "Vaihda valikon tilaa", + "submission.sections.describe.relationship-lookup.search-tab.toggle-dropdown": "Näytä/piilota pudotusvalikko", // "submission.sections.describe.relationship-lookup.selection-tab.settings": "Settings", "submission.sections.describe.relationship-lookup.selection-tab.settings": "Asetukset", @@ -4767,6 +6397,24 @@ // "submission.sections.describe.relationship-lookup.selection-tab.title.arxiv": "Search Results", "submission.sections.describe.relationship-lookup.selection-tab.title.arxiv": "Hakutulokset", + // "submission.sections.describe.relationship-lookup.selection-tab.title.crossref": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.crossref": "Hakutulokset", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.epo": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.epo": "Hakutulokset", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.scopus": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.scopus": "Hakutulokset", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.scielo": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.scielo": "Hakutulokset", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.wos": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.wos": "Hakutulokset", + + // "submission.sections.describe.relationship-lookup.selection-tab.title": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title": "Hakutulokset", + // "submission.sections.describe.relationship-lookup.name-variant.notification.content": "Would you like to save \"{{ value }}\" as a name variant for this person so you and others can reuse it for future submissions? If you don't you can still use it for this submission.", "submission.sections.describe.relationship-lookup.name-variant.notification.content": "Haluatko tallentaa nimen \"{{ value }}\" käyttäjän vaihtoehtoiseksi nimeksi, jota muutkin voivat käyttää uudelleen myös tulevissa tallennuksissa? Ellet tallenna nimeä, voit silti käyttää sitä tässä tallennuksessa.", @@ -4792,14 +6440,17 @@ "submission.sections.ccLicense.option.select": "Valitse vaihtoehto…", // "submission.sections.ccLicense.link": "You’ve selected the following license:", - "submission.sections.ccLicense.link": "Olet valinunt seuraavan lisenssin:", + "submission.sections.ccLicense.link": "Olet valinnut seuraavan lisenssin:", // "submission.sections.ccLicense.confirmation": "I grant the license above", - "submission.sections.ccLicense.confirmation": "Myönnän yllä olevan lisenssin", + "submission.sections.ccLicense.confirmation": "Hyväksyn yllä olevan lisenssin", // "submission.sections.general.add-more": "Add more", "submission.sections.general.add-more": "Lisää enemmän", + // "submission.sections.general.cannot_deposit": "Deposit cannot be completed due to errors in the form.<br>Please fill out all required fields to complete the deposit.", + "submission.sections.general.cannot_deposit": "Tallennus ei onnistu, koska lomakkeella on virheitä.<br>Täytä kaikki pakolliset kentät viimeistelläksesi tallennuksen.", + // "submission.sections.general.collection": "Collection", "submission.sections.general.collection": "Kokoelma", @@ -4839,7 +6490,26 @@ // "submission.sections.general.sections_not_valid": "There are incomplete sections.", "submission.sections.general.sections_not_valid": "Tallennuksessa keskeneräisiä osioita.", + // "submission.sections.identifiers.info": "The following identifiers will be created for your item:", + "submission.sections.identifiers.info": "Tietueellesi luodaan seuraavat tunnisteet:", + + // "submission.sections.identifiers.no_handle": "No handles have been minted for this item.", + "submission.sections.identifiers.no_handle": "Tietueelle ei ole luotu handleja.", + // "submission.sections.identifiers.no_doi": "No DOIs have been minted for this item.", + "submission.sections.identifiers.no_doi": "Tietueelle ei ole luotu DOI-tunnuksia.", + + // "submission.sections.identifiers.handle_label": "Handle: ", + "submission.sections.identifiers.handle_label": "Handle: ", + + // "submission.sections.identifiers.doi_label": "DOI: ", + "submission.sections.identifiers.doi_label": "DOI: ", + + // "submission.sections.identifiers.otherIdentifiers_label": "Other identifiers: ", + "submission.sections.identifiers.otherIdentifiers_label": "Muut tunnisteet: ", + + // "submission.sections.submit.progressbar.accessCondition": "Item access conditions", + "submission.sections.submit.progressbar.accessCondition": "Tietueen pääsyoikeudet", // "submission.sections.submit.progressbar.CClicense": "Creative commons license", "submission.sections.submit.progressbar.CClicense": "Creative commons -lisenssi", @@ -4859,19 +6529,65 @@ // "submission.sections.submit.progressbar.detect-duplicate": "Potential duplicates", "submission.sections.submit.progressbar.detect-duplicate": "Mahdollisia kaksoiskappaleita", + // "submission.sections.submit.progressbar.identifiers": "Identifiers", + "submission.sections.submit.progressbar.identifiers": "Tunnisteet", + // "submission.sections.submit.progressbar.license": "Deposit license", "submission.sections.submit.progressbar.license": "Tallennuslisenssi", + // "submission.sections.submit.progressbar.sherpapolicy": "Sherpa policies", + "submission.sections.submit.progressbar.sherpapolicy": "Sherpa-käytännöt", + // "submission.sections.submit.progressbar.upload": "Upload files", "submission.sections.submit.progressbar.upload": "Lataa tiedostoja", + // "submission.sections.submit.progressbar.sherpaPolicies": "Publisher open access policy information", + "submission.sections.submit.progressbar.sherpaPolicies": "Tietoa julkaisijan open access -käytännöistä", + + // "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.sherpa-policy.title-empty": "Ei tietoa julkausijan käytännöistä. Jos työlläsi on ISSN-tunnus, syötä se alapuolella olevan kenttään nähdäksesi siihen liittyvät julkaisijan open access -käytännöt.", + + // "submission.sections.status.errors.title": "Errors", + "submission.sections.status.errors.title": "Virheet", + // "submission.sections.status.valid.title": "Valid", + "submission.sections.status.valid.title": "Hyväksytty", + + // "submission.sections.status.warnings.title": "Warnings", + "submission.sections.status.warnings.title": "Varoitukset", + + // "submission.sections.status.errors.aria": "has errors", + "submission.sections.status.errors.aria": "sisältää virheitä", + + // "submission.sections.status.valid.aria": "is valid", + "submission.sections.status.valid.aria": "on validi", + + // "submission.sections.status.warnings.aria": "has warnings", + "submission.sections.status.warnings.aria": "sisältää varoituksia", + + // "submission.sections.status.info.title": "Additional Information", + "submission.sections.status.info.title": "Lisätiedot", + + // "submission.sections.status.info.aria": "Additional Information", + "submission.sections.status.info.aria": "Lisätiedot", + + // "submission.sections.toggle.open": "Open section", + "submission.sections.toggle.open": "Avaa osio", + + // "submission.sections.toggle.close": "Close section", + "submission.sections.toggle.close": "Sulje osio", + + // "submission.sections.toggle.aria.open": "Expand {{sectionHeader}} section", + "submission.sections.toggle.aria.open": "Laajenna {{sectionHeader}}-osio", + + // "submission.sections.toggle.aria.close": "Collapse {{sectionHeader}} section", + "submission.sections.toggle.aria.close": "Sulje {{sectionHeader}}-osio", // "submission.sections.upload.delete.confirm.cancel": "Cancel", "submission.sections.upload.delete.confirm.cancel": "Peruuta", // "submission.sections.upload.delete.confirm.info": "This operation can't be undone. Are you sure?", - "submission.sections.upload.delete.confirm.info": "Tätä toimintoa ei voi peruuttaa. Oletko varma?", + "submission.sections.upload.delete.confirm.info": "Tätä toimintoa ei voi perua. Oletko varma?", // "submission.sections.upload.delete.confirm.submit": "Yes, I'm sure", "submission.sections.upload.delete.confirm.submit": "Kyllä, olen varma", @@ -4882,18 +6598,36 @@ // "submission.sections.upload.delete.submit": "Delete", "submission.sections.upload.delete.submit": "Poista", + // "submission.sections.upload.download.title": "Download bitstream", + "submission.sections.upload.download.title": "Lataa tiedosto", + // "submission.sections.upload.drop-message": "Drop files to attach them to the item", "submission.sections.upload.drop-message": "Pudota tiedostot liittääksesi ne tietueeseen", + // "submission.sections.upload.edit.title": "Edit bitstream", + "submission.sections.upload.edit.title": "Muokkaa tiedostoa", + // "submission.sections.upload.form.access-condition-label": "Access condition type", "submission.sections.upload.form.access-condition-label": "Pääsyoikeustyyppi", + // "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": "Valitse pääsyoikeus, jota sovelletaan tiedostoon tietueen tallentamisen jälkeen", + // "submission.sections.upload.form.date-required": "Date is required.", "submission.sections.upload.form.date-required": "Päivämäärä on pakollinen tieto.", + // "submission.sections.upload.form.date-required-from": "Grant access from date is required.", + "submission.sections.upload.form.date-required-from": "Pääsyoikeuden alkupäivä on pakollinen tieto.", + + // "submission.sections.upload.form.date-required-until": "Grant access until date is required.", + "submission.sections.upload.form.date-required-until": "Pääsyoikeuden loppupäivä on pakollinen tieto.", + // "submission.sections.upload.form.from-label": "Grant access from", "submission.sections.upload.form.from-label": "Pääsyoikeus alkaa", + // "submission.sections.upload.form.from-hint": "Select the date from which the related access condition is applied", + "submission.sections.upload.form.from-hint": "Valitse päivämäärä josta lukien pääsyoikeutta sovelletaan", + // "submission.sections.upload.form.from-placeholder": "From", "submission.sections.upload.form.from-placeholder": "Alkaen", @@ -4906,6 +6640,9 @@ // "submission.sections.upload.form.until-label": "Grant access until", "submission.sections.upload.form.until-label": "Pääsyoikeus päättyy", + // "submission.sections.upload.form.until-hint": "Select the date until which the related access condition is applied", + "submission.sections.upload.form.until-hint": "Valitse päivämäärä, johon asti pääsyoikeus on voimassa", + // "submission.sections.upload.form.until-placeholder": "Until", "submission.sections.upload.form.until-placeholder": "Asti", @@ -4915,7 +6652,7 @@ // "submission.sections.upload.header.policy.default.withlist": "Please note that uploaded files in the {{collectionName}} collection will be accessible, in addition to what is explicitly decided for the single file, with the following group(s):", "submission.sections.upload.header.policy.default.withlist": "Yksittäisten tiedostojen pääsyrajoitusten lisäksi {{collectionName}}-kokoelmaan ladatut tiedostot ovat seuraavien ryhmien saatavilla:", - // "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 <strong>upload additional files just dragging & dropping them everywhere in the page</strong>", + // "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 <strong>upload additional files by dragging & dropping them anywhere on the page.</strong>", "submission.sections.upload.info": "Tietueen kaikki tiedostot on lueteltu tässä. Voit päivittää tiedoston metadataa ja pääsyehtoja tai <strong>ladata lisää tiedostoja raahaamalla ne mihin hyvänsä sivun kohtaan.</strong>", // "submission.sections.upload.no-entry": "No", @@ -4936,18 +6673,149 @@ // "submission.sections.upload.upload-successful": "Upload successful", "submission.sections.upload.upload-successful": "Lataus valmis", + // "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": "Kun tämä on valittu, tietue on löydettävissä haussa ja selailtaessa. Kun tätä ei ole valittu, tietue on saatavilla vain suoran linkin kautta, eikä se näy haussa tai selailtaessa.", + + // "submission.sections.accesses.form.discoverable-label": "Discoverable", + "submission.sections.accesses.form.discoverable-label": "Löydettävissä", + + // "submission.sections.accesses.form.access-condition-label": "Access condition type", + "submission.sections.accesses.form.access-condition-label": "Pääsyoikeustyyppi", + + // "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": "Valitse pääsyoikeus, jota sovelletaan tietueeseen tallentamisen jälkeen", + + // "submission.sections.accesses.form.date-required": "Date is required.", + "submission.sections.accesses.form.date-required": "Päivämäärä on pakollinen tieto.", + + // "submission.sections.accesses.form.date-required-from": "Grant access from date is required.", + "submission.sections.accesses.form.date-required-from": "Pääsyoikeuden alkupäivä on pakollinen tieto.", + + // "submission.sections.accesses.form.date-required-until": "Grant access until date is required.", + "submission.sections.accesses.form.date-required-until": "Pääsyoikeuden loppupäivä on pakollinen tieto.", + + // "submission.sections.accesses.form.from-label": "Grant access from", + "submission.sections.accesses.form.from-label": "Pääsyoikeus alkaa", + + // "submission.sections.accesses.form.from-hint": "Select the date from which the related access condition is applied", + "submission.sections.accesses.form.from-hint": "Valitse päivämäärä, josta alkaen pääsyoikeutta sovelletaan", + + // "submission.sections.accesses.form.from-placeholder": "From", + "submission.sections.accesses.form.from-placeholder": "Alkaen", + + // "submission.sections.accesses.form.group-label": "Group", + "submission.sections.accesses.form.group-label": "Ryhmä", + + // "submission.sections.accesses.form.group-required": "Group is required.", + "submission.sections.accesses.form.group-required": "Ryhmä on pakollinen tieto.", + + // "submission.sections.accesses.form.until-label": "Grant access until", + "submission.sections.accesses.form.until-label": "Pääsyoikeus päättyy", + + // "submission.sections.accesses.form.until-hint": "Select the date until which the related access condition is applied", + "submission.sections.accesses.form.until-hint": "Valitse päivämäärä, johon asti pääsyoikeutta sovelletaan", + + // "submission.sections.accesses.form.until-placeholder": "Until", + "submission.sections.accesses.form.until-placeholder": "Asti", + + // "submission.sections.license.granted-label": "I confirm the license above", + "submission.sections.license.granted-label": "Vahvistan edellä olevan lisenssin", + + // "submission.sections.license.required": "You must accept the license", + "submission.sections.license.required": "Sinun on hyväksyttävä lisenssi", + + // "submission.sections.license.notgranted": "You must accept the license", + "submission.sections.license.notgranted": "Sinun on hyväksyttävä lisenssi", + + // "submission.sections.sherpa.publication.information": "Publication information", + "submission.sections.sherpa.publication.information": "Julkaisun tiedot", + + // "submission.sections.sherpa.publication.information.title": "Title", + "submission.sections.sherpa.publication.information.title": "Nimeke", + + // "submission.sections.sherpa.publication.information.issns": "ISSNs", + "submission.sections.sherpa.publication.information.issns": "ISSN-tunnukset", + + // "submission.sections.sherpa.publication.information.url": "URL", + "submission.sections.sherpa.publication.information.url": "URL", + + // "submission.sections.sherpa.publication.information.publishers": "Publisher", + "submission.sections.sherpa.publication.information.publishers": "Julkaisija", + + // "submission.sections.sherpa.publication.information.romeoPub": "Romeo Pub", + "submission.sections.sherpa.publication.information.romeoPub": "Romeo Pub", + + // "submission.sections.sherpa.publication.information.zetoPub": "Zeto Pub", + "submission.sections.sherpa.publication.information.zetoPub": "Zeto Pub", + + // "submission.sections.sherpa.publisher.policy": "Publisher Policy", + "submission.sections.sherpa.publisher.policy": "Julkaisukäytännöt", + + // "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.description": "Alla olevat tiedot on noudettu Sherpa Romeosta. Julkaisijan käytännöt määrittävät, vaaditaanko embargoa ja mitkä tiedostoista ovat ladattavissa. Jos sinulla on kysyttävää, ota yhteyttä ylläpitäjään.", + + // "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.openaccess": "Tämän kausijulkaisun käytäntöjen sallimat Open Access -reitit on lueteltu alla artikkeliversioittain. Napsauttamalla polkua saat yksityiskohtaisempia tietoja", + + // "submission.sections.sherpa.publisher.policy.more.information": "For more information, please see the following links:", + "submission.sections.sherpa.publisher.policy.more.information": "Lisätietoa saat seuraavista linkeistä:", + + // "submission.sections.sherpa.publisher.policy.version": "Version", + "submission.sections.sherpa.publisher.policy.version": "Versio", + // "submission.sections.sherpa.publisher.policy.embargo": "Embargo", + "submission.sections.sherpa.publisher.policy.embargo": "Embargo", - // "submission.submit.title": "Tallennus", - "submission.submit.title": "Julkaisu", + // "submission.sections.sherpa.publisher.policy.noembargo": "No Embargo", + "submission.sections.sherpa.publisher.policy.noembargo": "Ei embargoa", + // "submission.sections.sherpa.publisher.policy.nolocation": "None", + "submission.sections.sherpa.publisher.policy.nolocation": "Ei mitään", + // "submission.sections.sherpa.publisher.policy.license": "License", + "submission.sections.sherpa.publisher.policy.license": "Lisenssi", + + // "submission.sections.sherpa.publisher.policy.prerequisites": "Prerequisites", + "submission.sections.sherpa.publisher.policy.prerequisites": "Vaatimukset", + + // "submission.sections.sherpa.publisher.policy.location": "Location", + "submission.sections.sherpa.publisher.policy.location": "Sijainti", + + // "submission.sections.sherpa.publisher.policy.conditions": "Conditions", + "submission.sections.sherpa.publisher.policy.conditions": "Ehdot", + + // "submission.sections.sherpa.publisher.policy.refresh": "Refresh", + "submission.sections.sherpa.publisher.policy.refresh": "Päivitä", + + // "submission.sections.sherpa.record.information": "Record Information", + "submission.sections.sherpa.record.information": "Tietueen tiedot", + + // "submission.sections.sherpa.record.information.id": "ID", + "submission.sections.sherpa.record.information.id": "ID", + + // "submission.sections.sherpa.record.information.date.created": "Date Created", + "submission.sections.sherpa.record.information.date.created": "Luontipäivä", + + // "submission.sections.sherpa.record.information.date.modified": "Last Modified", + "submission.sections.sherpa.record.information.date.modified": "Viimeksi muokattu", + + // "submission.sections.sherpa.record.information.uri": "URI", + "submission.sections.sherpa.record.information.uri": "URI", + + // "submission.sections.sherpa.error.message": "There was an error retrieving sherpa informations", + "submission.sections.sherpa.error.message": "Virhe haettaessa Sherpa-tietoja", + + // "submission.submit.breadcrumbs": "New submission", + "submission.submit.breadcrumbs": "Uusi tallennus", + + // "submission.submit.title": "New submission", + "submission.submit.title": "Uusi tallennus", // "submission.workflow.generic.delete": "Delete", "submission.workflow.generic.delete": "Poista", - // "submission.workflow.generic.delete-help": "If you would to discard this item, select \"Delete\". You will then be asked to confirm it.", - "submission.workflow.generic.delete-help": "Valitse \"Poista\" hylätäksesi tietueen. Poisto pyydetään vielä vahvistamaan.", + // "submission.workflow.generic.delete-help": "Select this option to discard this item. You will then be asked to confirm it.", + "submission.workflow.generic.delete-help": "Valitse hylätäksesi tietueen. Poisto pyydetään vielä vahvistamaan.", // "submission.workflow.generic.edit": "Edit", "submission.workflow.generic.edit": "Muokkaa", @@ -4961,7 +6829,17 @@ // "submission.workflow.generic.view-help": "Select this option to view the item's metadata.", "submission.workflow.generic.view-help": "Valitse tämä katsoaksesi tietueen metadataa.", + // "submission.workflow.generic.submit_select_reviewer": "Select Reviewer", + "submission.workflow.generic.submit_select_reviewer": "Valitse tarkastaja", + // "submission.workflow.generic.submit_select_reviewer-help": "", + "submission.workflow.generic.submit_select_reviewer-help": "", + + // "submission.workflow.generic.submit_score": "Rate", + "submission.workflow.generic.submit_score": "Arvioi", + + // "submission.workflow.generic.submit_score-help": "", + "submission.workflow.generic.submit_score-help": "", // "submission.workflow.tasks.claimed.approve": "Approve", "submission.workflow.tasks.claimed.approve": "Hyväksy", @@ -4975,6 +6853,12 @@ // "submission.workflow.tasks.claimed.edit_help": "Select this option to change the item's metadata.", "submission.workflow.tasks.claimed.edit_help": "Valitse tämä muuttaaksesi tietueen metadataa.", + // "submission.workflow.tasks.claimed.decline": "Decline", + "submission.workflow.tasks.claimed.decline": "Hylkää", + + // "submission.workflow.tasks.claimed.decline_help": "", + "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": "Syötä kenttään syy tallennuksen hylkäämiselle. Kerro myös, voiko tallentaja korjata ongelman ja lähettää aineiston uudelleen.", @@ -4999,8 +6883,6 @@ // "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": "Palauta tehtävä tehtäväjonoon, jotta toinen käyttäjä voi suorittaa tehtävän.", - - // "submission.workflow.tasks.generic.error": "Error occurred during operation...", "submission.workflow.tasks.generic.error": "Virhe toimintoa suoritettaessa...", @@ -5013,8 +6895,6 @@ // "submission.workflow.tasks.generic.success": "Operation successful", "submission.workflow.tasks.generic.success": "Toiminto onnistui", - - // "submission.workflow.tasks.pool.claim": "Claim", "submission.workflow.tasks.pool.claim": "Ota itsellesi", @@ -5027,12 +6907,146 @@ // "submission.workflow.tasks.pool.show-detail": "Show detail", "submission.workflow.tasks.pool.show-detail": "Näytä lisätiedot", + // "submission.workspace.generic.view": "View", + "submission.workspace.generic.view": "NäytÃ¥", + // "submission.workspace.generic.view-help": "Select this option to view the item's metadata.", + "submission.workspace.generic.view-help": "Valitse tarkastellaksesi tietueen metadataa.", - // "title": "DSpace", - "title": "Julkaisuarkisto", + // "submitter.empty": "N/A", + "submitter.empty": "Ei saatavilla", + + // "subscriptions.title": "Subscriptions", + "subscriptions.title": "Tilaukset", + + // "subscriptions.item": "Subscriptions for items", + "subscriptions.item": "Tietueiden tilaukset", + + // "subscriptions.collection": "Subscriptions for collections", + "subscriptions.collection": "Kokoelmien tilaukset", + + // "subscriptions.community": "Subscriptions for communities", + "subscriptions.community": "Yhteisöjen tilaukset", + + // "subscriptions.subscription_type": "Subscription type", + "subscriptions.subscription_type": "Tilaustyyppi", + + // "subscriptions.frequency": "Subscription frequency", + "subscriptions.frequency": "Tilaustiheys", + + // "subscriptions.frequency.D": "Daily", + "subscriptions.frequency.D": "Päivittäin", + + // "subscriptions.frequency.M": "Monthly", + "subscriptions.frequency.M": "Kuukausittain", + + // "subscriptions.frequency.W": "Weekly", + "subscriptions.frequency.W": "Viikoittain", + + // "subscriptions.tooltip": "Subscribe", + "subscriptions.tooltip": "Tilaa", + + // "subscriptions.modal.title": "Subscriptions", + "subscriptions.modal.title": "Tilaukset", + + // "subscriptions.modal.type-frequency": "Type and frequency", + "subscriptions.modal.type-frequency": "Tyyppi ja tiheys", + + // "subscriptions.modal.close": "Close", + "subscriptions.modal.close": "Sulje", + + // "subscriptions.modal.delete-info": "To remove this subscription, please visit the \"Subscriptions\" page under your user profile", + "subscriptions.modal.delete-info": "Voit poistaa tilauksen käyttäjäprofiilisi \"Tilaukset\"-sivulla ", + + // "subscriptions.modal.new-subscription-form.type.content": "Content", + "subscriptions.modal.new-subscription-form.type.content": "Sisältö", + + // "subscriptions.modal.new-subscription-form.frequency.D": "Daily", + "subscriptions.modal.new-subscription-form.frequency.D": "Päivittäin", + + // "subscriptions.modal.new-subscription-form.frequency.W": "Weekly", + "subscriptions.modal.new-subscription-form.frequency.W": "Viikottain", + + // "subscriptions.modal.new-subscription-form.frequency.M": "Monthly", + "subscriptions.modal.new-subscription-form.frequency.M": "Kuukausittain", + + // "subscriptions.modal.new-subscription-form.submit": "Submit", + "subscriptions.modal.new-subscription-form.submit": "Lähetä", + + // "subscriptions.modal.new-subscription-form.processing": "Processing...", + "subscriptions.modal.new-subscription-form.processing": "Käsitellään...", + + // "subscriptions.modal.create.success": "Subscribed to {{ type }} successfully.", + "subscriptions.modal.create.success": "Tilaus {{ type }} onnistui.", + + // "subscriptions.modal.delete.success": "Subscription deleted successfully", + "subscriptions.modal.delete.success": "Tilaus poistettu", + + // "subscriptions.modal.update.success": "Subscription to {{ type }} updated successfully", + "subscriptions.modal.update.success": "Tilaus {{ type }} päivitetty", + + // "subscriptions.modal.create.error": "An error occurs during the subscription creation", + "subscriptions.modal.create.error": "Virhe tilausta luotaessa", + + // "subscriptions.modal.delete.error": "An error occurs during the subscription delete", + "subscriptions.modal.delete.error": "Virhe tilausta poistettaessa", + + // "subscriptions.modal.update.error": "An error occurs during the subscription update", + "subscriptions.modal.update.error": "Virhe tilausta päivitettäessä", + + // "subscriptions.table.dso": "Subject", + "subscriptions.table.dso": "Asiasana", + + // "subscriptions.table.subscription_type": "Subscription Type", + "subscriptions.table.subscription_type": "Tilaustyyppi", + + // "subscriptions.table.subscription_frequency": "Subscription Frequency", + "subscriptions.table.subscription_frequency": "Tilaustiheys", + + // "subscriptions.table.action": "Action", + "subscriptions.table.action": "Toiminto", + + // "subscriptions.table.edit": "Edit", + "subscriptions.table.edit": "Muokkaa", + + // "subscriptions.table.delete": "Delete", + "subscriptions.table.delete": "Poista", + + // "subscriptions.table.not-available": "Not available", + "subscriptions.table.not-available": "Ei saatavilla", + + // "subscriptions.table.not-available-message": "The subscribed item has been deleted, or you don't currently have the permission to view it", + "subscriptions.table.not-available-message": "Tilattu tietue on poistettu, tai sinulla ei ole oikeuksia nähdä sitä", + + // "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.", + "subscriptions.table.empty.message": "Sinulla ei tällä hetkellä ole tilauksia. Voit tilata yhteisön tai kokoelman sähköposti-ilmoitukset kohteen sivulla olevalla tilauspainikkeella.", + + // "thumbnail.default.alt": "Thumbnail Image", + "thumbnail.default.alt": "Pienoiskuva", + + // "thumbnail.default.placeholder": "No Thumbnail Available", + "thumbnail.default.placeholder": "Ei pienoiskuvaa saatavilla", + + // "thumbnail.project.alt": "Project Logo", + "thumbnail.project.alt": "Projektin logo", + + // "thumbnail.project.placeholder": "Project Placeholder Image", + "thumbnail.project.placeholder": "Projektin paikkamerkin kuva", + + // "thumbnail.orgunit.alt": "OrgUnit Logo", + "thumbnail.orgunit.alt": "Organisaatioykiskön logo", + + // "thumbnail.orgunit.placeholder": "OrgUnit Placeholder Image", + "thumbnail.orgunit.placeholder": "Organisaatioyksikön paikkamerkin kuva", + // "thumbnail.person.alt": "Profile Picture", + "thumbnail.person.alt": "Profiilikuva", + // "thumbnail.person.placeholder": "No Profile Picture Available", + "thumbnail.person.placeholder": "Ei profiilikuva saatavilla", + + // "title": "DSpace", + "title": "Julkaisuarkisto", // "vocabulary-treeview.header": "Hierarchical tree view", "vocabulary-treeview.header": "Hierarkkinen puunäkymä", @@ -5055,7 +7069,8 @@ // "vocabulary-treeview.tree.description.srsc": "Research Subject Categories", "vocabulary-treeview.tree.description.srsc": "Tutkimusaiheiden kategoriat", - + // "vocabulary-treeview.info": "Select a subject to add as search filter", + "vocabulary-treeview.info": "Valitse asiasana hakusuodattimeksi", // "uploader.browse": "browse", "uploader.browse": "selaa", @@ -5063,6 +7078,9 @@ // "uploader.drag-message": "Drag & Drop your files here", "uploader.drag-message": "Raahaa tiedostot tähän", + // "uploader.delete.btn-title": "Delete", + "uploader.delete.btn-title": "Poista", + // "uploader.or": ", or ", "uploader.or": " tai", @@ -5081,30 +7099,44 @@ // "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": "Valitse tietueet, joiden virtuaalisen metadatan haluat tallentaa varsinaiseksi metadataksi", + // "supervisedWorkspace.search.results.head": "Supervised Items", + "supervisedWorkspace.search.results.head": "Valvotut tietueet", + // "workspace.search.results.head": "Your submissions", + "workspace.search.results.head": "Tallennuksesi", // "workflowAdmin.search.results.head": "Administer Workflow", "workflowAdmin.search.results.head": "Hallinnoi työnkulkua", + // "workflow.search.results.head": "Workflow tasks", + "workflow.search.results.head": "Työnkulun tehtävät", + + // "supervision.search.results.head": "Workflow and Workspace tasks", + "supervision.search.results.head": "Työnkulun ja työtilan tehtävät", + // "workflow-item.edit.breadcrumbs": "Edit workflowitem", + "workflow-item.edit.breadcrumbs": "Muokkaa työnkulun tietuetta", + + // "workflow-item.edit.title": "Edit workflowitem", + "workflow-item.edit.title": "Muokkaa työnkulun tietuetta", // "workflow-item.delete.notification.success.title": "Deleted", "workflow-item.delete.notification.success.title": "Poistettu", // "workflow-item.delete.notification.success.content": "This workflow item was successfully deleted", - "workflow-item.delete.notification.success.content": "Tarkastamaton tietue poistettu", + "workflow-item.delete.notification.success.content": "Työnkulun tietue poistettu", // "workflow-item.delete.notification.error.title": "Something went wrong", "workflow-item.delete.notification.error.title": "Tapahtui virhe", // "workflow-item.delete.notification.error.content": "The workflow item could not be deleted", - "workflow-item.delete.notification.error.content": "Tarkastamatonta tietuetta ei voitu poistaa", + "workflow-item.delete.notification.error.content": "Työnkulun tietuetta ei voitu poistaa", // "workflow-item.delete.title": "Delete workflow item", - "workflow-item.delete.title": "Poista tarkastamaton tietue", + "workflow-item.delete.title": "Poista työnkulkuun tietue", // "workflow-item.delete.header": "Delete workflow item", - "workflow-item.delete.header": "Poista tarkastamaton tietue", + "workflow-item.delete.header": "Poista työnkulkuun tietue", // "workflow-item.delete.button.cancel": "Cancel", "workflow-item.delete.button.cancel": "Peruuta", @@ -5112,30 +7144,566 @@ // "workflow-item.delete.button.confirm": "Delete", "workflow-item.delete.button.confirm": "Poista", - // "workflow-item.send-back.notification.success.title": "Sent back to submitter", "workflow-item.send-back.notification.success.title": "Lähetetty takaisin tallentajalle", // "workflow-item.send-back.notification.success.content": "This workflow item was successfully sent back to the submitter", - "workflow-item.send-back.notification.success.content": "Tarkastamaton tietue lähetetty takaisin tallentajalle", + "workflow-item.send-back.notification.success.content": "Työnkulun tietue lähetetty takaisin tallentajalle", // "workflow-item.send-back.notification.error.title": "Something went wrong", "workflow-item.send-back.notification.error.title": "Tapahtui virhe", // "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": "Tarkastamatonta tietuetta ei voitu lähettää takaisin tallentajalle", + "workflow-item.send-back.notification.error.content": "Työnkulun tietuetta ei voitu lähettää takaisin tallentajalle", // "workflow-item.send-back.title": "Send workflow item back to submitter", - "workflow-item.send-back.title": "Lähetä tarkastamaton tietue takaisin tallentajalle", + "workflow-item.send-back.title": "Lähetä työnkulkuun tietue takaisin tallentajalle", // "workflow-item.send-back.header": "Send workflow item back to submitter", - "workflow-item.send-back.header": "Lähetä tarkastamaton tietue takaisin tallentajalle", + "workflow-item.send-back.header": "Lähetä työnkulun tietue takaisin tallentajalle", // "workflow-item.send-back.button.cancel": "Cancel", "workflow-item.send-back.button.cancel": "Peruuta", - // "workflow-item.send-back.button.confirm": "Send back" + // "workflow-item.send-back.button.confirm": "Send back", "workflow-item.send-back.button.confirm": "Lähetä takaisin", + // "workflow-item.view.breadcrumbs": "Workflow View", + "workflow-item.view.breadcrumbs": "Työnkulkunäkymä", + + // "workspace-item.view.breadcrumbs": "Workspace View", + "workspace-item.view.breadcrumbs": "Työnkulkunäkymä", + + // "workspace-item.view.title": "Workspace View", + "workspace-item.view.title": "Työnkulkunäkymä", + + // "workspace-item.delete.breadcrumbs": "Workspace Delete", + "workspace-item.delete.breadcrumbs": "Työnkulku - poisto", + + // "workspace-item.delete.header": "Delete workspace item", + "workspace-item.delete.header": "Poista työnkulun tietue", + + // "workspace-item.delete.button.confirm": "Delete", + "workspace-item.delete.button.confirm": "Poista", + + // "workspace-item.delete.button.cancel": "Cancel", + "workspace-item.delete.button.cancel": "Peruuta", + + // "workspace-item.delete.notification.success.title": "Deleted", + "workspace-item.delete.notification.success.title": "Poistettu", + + // "workspace-item.delete.title": "This workspace item was successfully deleted", + "workspace-item.delete.title": "Työnkulun tietue poistettu", + + // "workspace-item.delete.notification.error.title": "Something went wrong", + "workspace-item.delete.notification.error.title": "Tapahtui virhe", + + // "workspace-item.delete.notification.error.content": "The workspace item could not be deleted", + "workspace-item.delete.notification.error.content": "Työnkulun tietuetta ei voitu poistaa", + + // "workflow-item.advanced.title": "Advanced workflow", + "workflow-item.advanced.title": "Laajennettu työnkulku", + + // "workflow-item.selectrevieweraction.notification.success.title": "Selected reviewer", + "workflow-item.selectrevieweraction.notification.success.title": "Valittu tarkastaja", + + // "workflow-item.selectrevieweraction.notification.success.content": "The reviewer for this workflow item has been successfully selected", + "workflow-item.selectrevieweraction.notification.success.content": "Työnkulun tarkastaja on valittu", + + // "workflow-item.selectrevieweraction.notification.error.title": "Something went wrong", + "workflow-item.selectrevieweraction.notification.error.title": "Tapahtui virhe", + + // "workflow-item.selectrevieweraction.notification.error.content": "Couldn't select the reviewer for this workflow item", + "workflow-item.selectrevieweraction.notification.error.content": "Työnkulun tietueelle ei voitu valita tarkastajaa", + + // "workflow-item.selectrevieweraction.title": "Select Reviewer", + "workflow-item.selectrevieweraction.title": "Valitse tarkastaja", + + // "workflow-item.selectrevieweraction.header": "Select Reviewer", + "workflow-item.selectrevieweraction.header": "Valitse tarkastaja", + + // "workflow-item.selectrevieweraction.button.cancel": "Cancel", + "workflow-item.selectrevieweraction.button.cancel": "Peruuta", + + // "workflow-item.selectrevieweraction.button.confirm": "Confirm", + "workflow-item.selectrevieweraction.button.confirm": "Vahvista", + + // "workflow-item.scorereviewaction.notification.success.title": "Rating review", + "workflow-item.scorereviewaction.notification.success.title": "Arviointikatselmus", + + // "workflow-item.scorereviewaction.notification.success.content": "The rating for this item workflow item has been successfully submitted", + "workflow-item.scorereviewaction.notification.success.content": "Tietueen arviointi on lähetetty", + + // "workflow-item.scorereviewaction.notification.error.title": "Something went wrong", + "workflow-item.scorereviewaction.notification.error.title": "Tapahtui virhe", + + // "workflow-item.scorereviewaction.notification.error.content": "Couldn't rate this item", + "workflow-item.scorereviewaction.notification.error.content": "Tietueen arviointi epäonnistui", + + // "workflow-item.scorereviewaction.title": "Rate this item", + "workflow-item.scorereviewaction.title": "Arvioi tietue", + + // "workflow-item.scorereviewaction.header": "Rate this item", + "workflow-item.scorereviewaction.header": "Arvioi tietue", + + // "workflow-item.scorereviewaction.button.cancel": "Cancel", + "workflow-item.scorereviewaction.button.cancel": "Peruuta", + + // "workflow-item.scorereviewaction.button.confirm": "Confirm", + "workflow-item.scorereviewaction.button.confirm": "Vahvista", + + // "idle-modal.header": "Session will expire soon", + "idle-modal.header": "Istunto vanhenee pian", + + // "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": "Turvallisuussyistä käyttäjän istunto vanhenee, kun käyttäjä on ollut epäaktiivinen {{ timeToExpire }} minuuttia. Istuntosi vanhenee pian. Haluatko pidentää istuntoasi vai kirjautua ulos?", + + // "idle-modal.log-out": "Log out", + "idle-modal.log-out": "Kirjaudu ulos", + + // "idle-modal.extend-session": "Extend session", + "idle-modal.extend-session": "Pidennä istuntoa", + + // "researcher.profile.action.processing": "Processing...", + "researcher.profile.action.processing": "Käsitellään...", + + // "researcher.profile.associated": "Researcher profile associated", + "researcher.profile.associated": "Tutkijaprofiili liitetty", + + // "researcher.profile.change-visibility.fail": "An unexpected error occurs while changing the profile visibility", + "researcher.profile.change-visibility.fail": "Odottamaton virhe muutettaessa profiilin näkyvyyttä", + + // "researcher.profile.create.new": "Create new", + "researcher.profile.create.new": "Luo uusi", + + // "researcher.profile.create.success": "Researcher profile created successfully", + "researcher.profile.create.success": "Tutkijaprofiili luotu", + + // "researcher.profile.create.fail": "An error occurs during the researcher profile creation", + "researcher.profile.create.fail": "Virhe luotaessa tutkijaprofiilia", + + // "researcher.profile.delete": "Delete", + "researcher.profile.delete": "Poista", + + // "researcher.profile.expose": "Expose", + "researcher.profile.expose": "Paljasta", + + // "researcher.profile.hide": "Hide", + "researcher.profile.hide": "Piilota", + + // "researcher.profile.not.associated": "Researcher profile not yet associated", + "researcher.profile.not.associated": "Tutkijaprofiilia ei ole vielä liitetty", + + // "researcher.profile.view": "View", + "researcher.profile.view": "Näytä", + + // "researcher.profile.private.visibility": "PRIVATE", + "researcher.profile.private.visibility": "YKSITYINEN", + + // "researcher.profile.public.visibility": "PUBLIC", + "researcher.profile.public.visibility": "JULKINEN", + + // "researcher.profile.status": "Status:", + "researcher.profile.status": "Tila :", + + // "researcherprofile.claim.not-authorized": "You are not authorized to claim this item. For more details contact the administrator(s).", + "researcherprofile.claim.not-authorized": "Sinulla ei ole valtuuksia ottaa itsellesi tätä tietuetta. Lisätietoa saat ylläpitäjiltä.", + + // "researcherprofile.error.claim.body": "An error occurred while claiming the profile, please try again later", + "researcherprofile.error.claim.body": "Tapahtui virhe profiilia haettaessa, yritä myöhemmin uudelleen", + + // "researcherprofile.error.claim.title": "Error", + "researcherprofile.error.claim.title": "Virhe", + + // "researcherprofile.success.claim.body": "Profile claimed with success", + "researcherprofile.success.claim.body": "Profiili haettu", + + // "researcherprofile.success.claim.title": "Success", + "researcherprofile.success.claim.title": "Valmis", + + // "person.page.orcid.create": "Create an ORCID ID", + "person.page.orcid.create": "Luo ORCID-tunniste", + + // "person.page.orcid.granted-authorizations": "Granted authorizations", + "person.page.orcid.granted-authorizations": "Myönnetyt valtuudet", + + // "person.page.orcid.grant-authorizations": "Grant authorizations", + "person.page.orcid.grant-authorizations": "Myönnä valtuuksia", + + // "person.page.orcid.link": "Connect to ORCID ID", + "person.page.orcid.link": "Yhdistä ORCID-tunniste", + + // "person.page.orcid.link.processing": "Linking profile to ORCID...", + "person.page.orcid.link.processing": "Liitetään profiilia ORCID-tunnisteeseen...", + + // "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": "Virhe yhdistettäessä profiilia ORCID-tunnisteeseen. Jos virhe jatkuu, ota yhteyttä ylläpitäjään.", + + // "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": "Tämän profiilin ORCID-tunnistetta ({{ orcid }}) ei ole vielä yhdistetty tiliin ORCID-rekisterissä tai yhteys on vanhentunut.", + + // "person.page.orcid.unlink": "Disconnect from ORCID", + "person.page.orcid.unlink": "Katkaise yhteys ORCIDiin", + + // "person.page.orcid.unlink.processing": "Processing...", + "person.page.orcid.unlink.processing": "Käsitellään...", + + // "person.page.orcid.missing-authorizations": "Missing authorizations", + "person.page.orcid.missing-authorizations": "Puuttuvia valtuuksia", + + // "person.page.orcid.missing-authorizations-message": "The following authorizations are missing:", + "person.page.orcid.missing-authorizations-message": "Seuraavat valtuudet puuttuvat:", + + // "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": "Hyvä! Tämä laatikko on tyhjä, joten olet myöntänyt kaikki käyttöoikeudet instituutiosi tarjoamiin toimintoihin.", + + // "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": "ORCID-tunnistetta ei ole vielä liitetty. Painamalla alapuolella olevaa painiketta voit yhdistää tämän profiilin ORCID-tiliin.", + + // "person.page.orcid.profile-preferences": "Profile preferences", + "person.page.orcid.profile-preferences": "Profiiliasetukset", + + // "person.page.orcid.funding-preferences": "Funding preferences", + "person.page.orcid.funding-preferences": "Rahoitusasetukset", + + // "person.page.orcid.publications-preferences": "Publication preferences", + "person.page.orcid.publications-preferences": "Julkaisuasetukset", + + // "person.page.orcid.remove-orcid-message": "If you need to remove your ORCID, please contact the repository administrator", + "person.page.orcid.remove-orcid-message": "Jos haluat poistaa ORCID-tunnuksesi, ota yhteyttä julkaisuarkiston ylläpitäjään", + + // "person.page.orcid.save.preference.changes": "Update settings", + "person.page.orcid.save.preference.changes": "Muokkaa asetuksia", + + // "person.page.orcid.sync-profile.affiliation": "Affiliation", + "person.page.orcid.sync-profile.affiliation": "Affiliaatio", + + // "person.page.orcid.sync-profile.biographical": "Biographical data", + "person.page.orcid.sync-profile.biographical": "Elämäkerralliset tiedot", + + // "person.page.orcid.sync-profile.education": "Education", + "person.page.orcid.sync-profile.education": "Koulutus", + + // "person.page.orcid.sync-profile.identifiers": "Identifiers", + "person.page.orcid.sync-profile.identifiers": "Tunnisteet", + + // "person.page.orcid.sync-fundings.all": "All fundings", + "person.page.orcid.sync-fundings.all": "Kaikki rahoitukset", + + // "person.page.orcid.sync-fundings.mine": "My fundings", + "person.page.orcid.sync-fundings.mine": "Omat rahoitukset", + + // "person.page.orcid.sync-fundings.my_selected": "Selected fundings", + "person.page.orcid.sync-fundings.my_selected": "Valitut rahoitukset", + + // "person.page.orcid.sync-fundings.disabled": "Disabled", + "person.page.orcid.sync-fundings.disabled": "Poistettu käytöstä", + + // "person.page.orcid.sync-publications.all": "All publications", + "person.page.orcid.sync-publications.all": "Kaikki julkaisut", + + // "person.page.orcid.sync-publications.mine": "My publications", + "person.page.orcid.sync-publications.mine": "Omat julkaisut", + + // "person.page.orcid.sync-publications.my_selected": "Selected publications", + "person.page.orcid.sync-publications.my_selected": "Valitut julkaisut", + + // "person.page.orcid.sync-publications.disabled": "Disabled", + "person.page.orcid.sync-publications.disabled": "Poistettu käytöstä", + + // "person.page.orcid.sync-queue.discard": "Discard the change and do not synchronize with the ORCID registry", + "person.page.orcid.sync-queue.discard": "Hylkää muutos. Älä synkronoi ORCID-rekisterin kanssa.", + + // "person.page.orcid.sync-queue.discard.error": "The discarding of the ORCID queue record failed", + "person.page.orcid.sync-queue.discard.error": "ORCID-jonotietueen hylkääminen epäonnistui", + + // "person.page.orcid.sync-queue.discard.success": "The ORCID queue record have been discarded successfully", + "person.page.orcid.sync-queue.discard.success": "ORCID-jonotietue hylätty", + + // "person.page.orcid.sync-queue.empty-message": "The ORCID queue registry is empty", + "person.page.orcid.sync-queue.empty-message": "ORCID-jonorekisteri on tyhjä", + + // "person.page.orcid.sync-queue.table.header.type": "Type", + "person.page.orcid.sync-queue.table.header.type": "Tyyppi", + + // "person.page.orcid.sync-queue.table.header.description": "Description", + "person.page.orcid.sync-queue.table.header.description": "Kuvaus", + + // "person.page.orcid.sync-queue.table.header.action": "Action", + "person.page.orcid.sync-queue.table.header.action": "Toiminto", + + // "person.page.orcid.sync-queue.description.affiliation": "Affiliations", + "person.page.orcid.sync-queue.description.affiliation": "Affiliaatiot", + + // "person.page.orcid.sync-queue.description.country": "Country", + "person.page.orcid.sync-queue.description.country": "Maa", + + // "person.page.orcid.sync-queue.description.education": "Educations", + "person.page.orcid.sync-queue.description.education": "Koulutukset", + + // "person.page.orcid.sync-queue.description.external_ids": "External ids", + "person.page.orcid.sync-queue.description.external_ids": "Ulkoiset tunnisteet", + + // "person.page.orcid.sync-queue.description.other_names": "Other names", + "person.page.orcid.sync-queue.description.other_names": "Muut nimet", + + // "person.page.orcid.sync-queue.description.qualification": "Qualifications", + "person.page.orcid.sync-queue.description.qualification": "Pätevyydet", + + // "person.page.orcid.sync-queue.description.researcher_urls": "Researcher urls", + "person.page.orcid.sync-queue.description.researcher_urls": "Tutkijan URL-osoitteet", + + // "person.page.orcid.sync-queue.description.keywords": "Keywords", + "person.page.orcid.sync-queue.description.keywords": "Avainsanat", + + // "person.page.orcid.sync-queue.tooltip.insert": "Add a new entry in the ORCID registry", + "person.page.orcid.sync-queue.tooltip.insert": "Lisää uusi kohde ORCID-rekisteriin", + + // "person.page.orcid.sync-queue.tooltip.update": "Update this entry on the ORCID registry", + "person.page.orcid.sync-queue.tooltip.update": "Päivitä tämä kohde ORCID-rekisterissä", + + // "person.page.orcid.sync-queue.tooltip.delete": "Remove this entry from the ORCID registry", + "person.page.orcid.sync-queue.tooltip.delete": "Poista tämä kohde ORCID-rekisteristä", + + // "person.page.orcid.sync-queue.tooltip.publication": "Publication", + "person.page.orcid.sync-queue.tooltip.publication": "Julkaisu", + + // "person.page.orcid.sync-queue.tooltip.project": "Project", + "person.page.orcid.sync-queue.tooltip.project": "Projekti", + + // "person.page.orcid.sync-queue.tooltip.affiliation": "Affiliation", + "person.page.orcid.sync-queue.tooltip.affiliation": "Affiliaatio", + + // "person.page.orcid.sync-queue.tooltip.education": "Education", + "person.page.orcid.sync-queue.tooltip.education": "Koulutus", + + // "person.page.orcid.sync-queue.tooltip.qualification": "Qualification", + "person.page.orcid.sync-queue.tooltip.qualification": "Pätevyys", + + // "person.page.orcid.sync-queue.tooltip.other_names": "Other name", + "person.page.orcid.sync-queue.tooltip.other_names": "Toinen nimi", + + // "person.page.orcid.sync-queue.tooltip.country": "Country", + "person.page.orcid.sync-queue.tooltip.country": "Maa", + + // "person.page.orcid.sync-queue.tooltip.keywords": "Keyword", + "person.page.orcid.sync-queue.tooltip.keywords": "Asiasana", + + // "person.page.orcid.sync-queue.tooltip.external_ids": "External identifier", + "person.page.orcid.sync-queue.tooltip.external_ids": "Ulkoinen tunniste", + + // "person.page.orcid.sync-queue.tooltip.researcher_urls": "Researcher url", + "person.page.orcid.sync-queue.tooltip.researcher_urls": "Tutkijan URL-osoite", + + // "person.page.orcid.sync-queue.send": "Synchronize with ORCID registry", + "person.page.orcid.sync-queue.send": "Synkronoi ORCID-rekisterin kanssa", + + // "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": "ORCID-tunnisteen lähettäminen epäonnistui puuttuvien käyttöoikeuksien takia.", + + // "person.page.orcid.sync-queue.send.unauthorized-error.content": "Click <a href='{{orcid}}'>here</a> to grant again the required permissions. If the problem persists, contact the administrator", + "person.page.orcid.sync-queue.send.unauthorized-error.content": "Napsauta <a href='{{orcid}}'>tästä</a> myöntääksesi vaaditut käyttöoikeudet. Jos virhe jatkuu, ota yhteyttä ylläpitäjään.", + + // "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": "ORCID-lähetys epäonnistui, koska ORCID-rekisteriin lähetetty resurssi ei ole kelvollinen", + + // "person.page.orcid.sync-queue.send.error": "The submission to ORCID failed", + "person.page.orcid.sync-queue.send.error": "ORCID-lähetys epäonnistui", + + // "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": "ORCID-lähetys epäonnistui, koska lähetetty resurssi on jo ORCID-rekisterissä", + + // "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": "Resurssia ei enää ole ORCID-rekisterissä..", + + // "person.page.orcid.sync-queue.send.success": "The submission to ORCID was completed successfully", + "person.page.orcid.sync-queue.send.success": "ORCID-lähetys onnistui", + + // "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": "ORCIDin kanssa synkronoitava data ei ole kelvollista", + + // "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": "Valuutta on pakollinen tieto", + + // "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": "Lähetettävällä resurssilla on oltava ainakin yksi tunniste", + + // "person.page.orcid.sync-queue.send.validation-error.title.required": "The title is required", + "person.page.orcid.sync-queue.send.validation-error.title.required": "Nimeke on pakollinen tieto", + + // "person.page.orcid.sync-queue.send.validation-error.type.required": "The dc.type is required", + "person.page.orcid.sync-queue.send.validation-error.type.required": "dc.type on pakollinen tieto", + + // "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": "Alkupäivämäärä on pakollinen tieto", + + // "person.page.orcid.sync-queue.send.validation-error.funder.required": "The funder is required", + "person.page.orcid.sync-queue.send.validation-error.funder.required": "Rahoittaja on pakollinen tieto", + + // "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": "Virheelliset kaksi merkkiä ISO 3166 -maatunnisteessa", + + // "person.page.orcid.sync-queue.send.validation-error.organization.required": "The organization is required", + "person.page.orcid.sync-queue.send.validation-error.organization.required": "Organisaatio on pakollinen tieto", + + // "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": "Organisaation nimi on pakollinen tieto", + + // "person.page.orcid.sync-queue.send.validation-error.publication.date-invalid": "The publication date must be one year after 1900", + "person.page.orcid.sync-queue.send.validation-error.publication.date-invalid": "Julkaisuajan on oltava vuoden 1900 jälkeen", + + // "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": "Organisaatiolla on oltava osoite", + + // "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": "Organisaation osoitteessa on oltava kaupunki", + + // "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", + "person.page.orcid.sync-queue.send.validation-error.organization.country-required": "Organisaation osoitteessa on oltava oikeelliset kaksi ISO 3166 -maatunnisteen merkkiä", + + // "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": "Tunniste vaaditaan organisaatioiden erottelemiseksi. Tuetut tunnisteet ovat GRID, Ringgold, Legal Entity identifier -tunnisteet (LEIt) ja Crossrefin rahoittaharekisterin tunnisteet (FUNDREF)", + + // "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": "Organisaation tunnisteilla on oltava arvo", + + // "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": "Organisaation tunnisteilla on oltava lähde", + + // "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": "Organisaation tunnisteen lähde ei ole validi. Tuetut lähteet ovat RINGGOLD, GRID, LEI ja FUNDREF", + + // "person.page.orcid.synchronization-mode": "Synchronization mode", + "person.page.orcid.synchronization-mode": "Synkronointimoodi", + + // "person.page.orcid.synchronization-mode.batch": "Batch", + "person.page.orcid.synchronization-mode.batch": "Erä", + + // "person.page.orcid.synchronization-mode.label": "Synchronization mode", + "person.page.orcid.synchronization-mode.label": "Synkronointimoodi", + + // "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).", + "person.page.orcid.synchronization-mode-message": "Valitse, miten haluat synkronoinnin ORCIDiin tapahtuvan. Vaihtoehdot ovat \"Manuaalinen\" (sinun on lähetettävä tietosi ORCIDiin manuaalisesti) tai \"Erä\" (järjestelmä lähettää tietosi ORCIDiin ajastetun skriptin avulla).", + + // "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": "Valitse, lähetetäänkö linkitetyt projektisi ORCID-rekisterin rahoitustietoluetteloon.", + + // "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": "Valitse, lähetetäänkö linkitetyt julkaisusi ORCID-rekisterin luetteloon.", + + // "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": "Valitse, lähetetäänkö elämäkerralliset tietosi tai henkilökohtaiset tunnisteesi ORCID-rekisteriin.", + + // "person.page.orcid.synchronization-settings-update.success": "The synchronization settings have been updated successfully", + "person.page.orcid.synchronization-settings-update.success": "Synkronisointiasetukset päivitetty", + + // "person.page.orcid.synchronization-settings-update.error": "The update of the synchronization settings failed", + "person.page.orcid.synchronization-settings-update.error": "Synkronisointiasetusten päivittäminen epäonnistui", + + // "person.page.orcid.synchronization-mode.manual": "Manual", + "person.page.orcid.synchronization-mode.manual": "Manuaalinen", + + // "person.page.orcid.scope.authenticate": "Get your ORCID iD", + "person.page.orcid.scope.authenticate": "Hae ORCID-tunnisteesi", + + // "person.page.orcid.scope.read-limited": "Read your information with visibility set to Trusted Parties", + // TODO New key - Add a translation + "person.page.orcid.scope.read-limited": "Read your information with visibility set to Trusted Parties", + + // "person.page.orcid.scope.activities-update": "Add/update your research activities", + "person.page.orcid.scope.activities-update": "Lisää/päivitä tutkimustoimiasi", + + // "person.page.orcid.scope.person-update": "Add/update other information about you", + "person.page.orcid.scope.person-update": "Lisää/päivitä muita tietojasi", + + // "person.page.orcid.unlink.success": "The disconnection between the profile and the ORCID registry was successful", + "person.page.orcid.unlink.success": "Yhteys katkaistu profiilin ja ORCID-rekisterin välillä", + + // "person.page.orcid.unlink.error": "An error occurred while disconnecting between the profile and the ORCID registry. Try again", + "person.page.orcid.unlink.error": "Tapahtui virhe katkaistaessa yhteyttä profiilin ja ORCID-rekisterin välillä. Yritä uudelleen", + + // "person.orcid.sync.setting": "ORCID Synchronization settings", + "person.orcid.sync.setting": "ORCIDin synkronisointiasetukset", + + // "person.orcid.registry.queue": "ORCID Registry Queue", + "person.orcid.registry.queue": "ORCIDin rekisteröintijono", + + // "person.orcid.registry.auth": "ORCID Authorizations", + "person.orcid.registry.auth": "ORCID-käyttöoikeudet", + + // "home.recent-submissions.head": "Recent Submissions", + "home.recent-submissions.head": "Viimeksi tallennetut", + + // "listable-notification-object.default-message": "This object couldn't be retrieved", + "listable-notification-object.default-message": "Kohdetta ei voitu noutaa", + + // "system-wide-alert-banner.retrieval.error": "Something went wrong retrieving the system-wide alert banner", + "system-wide-alert-banner.retrieval.error": "Virhe noudettaessa järjestelmänlaajuista hälytysbanneria", + + // "system-wide-alert-banner.countdown.prefix": "In", + "system-wide-alert-banner.countdown.prefix": "Aikaa", + + // "system-wide-alert-banner.countdown.days": "{{days}} day(s),", + "system-wide-alert-banner.countdown.days": "{{days}} päivää(ä),", + + // "system-wide-alert-banner.countdown.hours": "{{hours}} hour(s) and", + "system-wide-alert-banner.countdown.hours": "{{hours}} tunti(a) and", + + // "system-wide-alert-banner.countdown.minutes": "{{minutes}} minute(s):", + "system-wide-alert-banner.countdown.minutes": "{{minutes}} minuutti(a):", + + // "menu.section.system-wide-alert": "System-wide Alert", + "menu.section.system-wide-alert": "Järjestelmänlaajuinen hälytys", + + // "system-wide-alert.form.header": "System-wide Alert", + "system-wide-alert.form.header": "Järjestelmänlaajuinen hälytys", + + // "system-wide-alert-form.retrieval.error": "Something went wrong retrieving the system-wide alert", + "system-wide-alert-form.retrieval.error": "Virhe noudettaessa järjestelmänlaajuista hälytystä", + + // "system-wide-alert.form.cancel": "Cancel", + "system-wide-alert.form.cancel": "Peruuta", + + // "system-wide-alert.form.save": "Save", + "system-wide-alert.form.save": "Tallenna", + + // "system-wide-alert.form.label.active": "ACTIVE", + "system-wide-alert.form.label.active": "AKTIIVINEN", + + // "system-wide-alert.form.label.inactive": "INACTIVE", + "system-wide-alert.form.label.inactive": "EI-AKTIIVINEN", + + // "system-wide-alert.form.error.message": "The system wide alert must have a message", + "system-wide-alert.form.error.message": "Järjestelmänlaajuisessa hälytyksessä on oltava viesti", + + // "system-wide-alert.form.label.message": "Alert message", + "system-wide-alert.form.label.message": "Hälytysviesti", + + // "system-wide-alert.form.label.countdownTo.enable": "Enable a countdown timer", + "system-wide-alert.form.label.countdownTo.enable": "Ota käyttöön lähtölaskennan ajastin", + + // "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.countdownTo.hint": "Vinkki: Aseta lähtölaskennan ajastin. Kun se on käytössä, voidaan päivämäärä asettaa tulevaisuuteen, jolloin järjestelmänlaajuinen hälytysbanneri suorittaa lähtölaskennan asetettuun päivämäärään. Kun ajastin päättyy, hälytys katoaa. Palvelinta EI pysäytetä automaattisesti.", + + // "system-wide-alert.form.label.preview": "System-wide alert preview", + "system-wide-alert.form.label.preview": "Järjestelmänlaajuisen hälytyksen esikatselu", + + // "system-wide-alert.form.update.success": "The system-wide alert was successfully updated", + "system-wide-alert.form.update.success": "Järjestelmänlaajuinen hälytys päivitetty", + + // "system-wide-alert.form.update.error": "Something went wrong when updating the system-wide alert", + "system-wide-alert.form.update.error": "Virhe päivitettäessä järjestelmänlaajuista hälytystä", + + // "system-wide-alert.form.create.success": "The system-wide alert was successfully created", + "system-wide-alert.form.create.success": "Järjestelmänlaajuinen hälytys luotu", + + // "system-wide-alert.form.create.error": "Something went wrong when creating the system-wide alert", + "system-wide-alert.form.create.error": "Virhe luotaessa järjestelmänlaajuista hälytystä", + + // "admin.system-wide-alert.breadcrumbs": "System-wide Alerts", + "admin.system-wide-alert.breadcrumbs": "Järjestelmänlaajuiset hälytykset", + + // "admin.system-wide-alert.title": "System-wide Alerts", + "admin.system-wide-alert.title": "Järjestelmänlaajuiset hälytykset", -} +} \ No newline at end of file -- GitLab From 71cf66ecf491870d8abe578408af3a1f7b5077c9 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Wed, 2 Aug 2023 00:00:37 +0200 Subject: [PATCH 020/183] Fix display order of authentication methods --- src/app/core/auth/auth.interceptor.ts | 6 +-- src/app/core/auth/auth.reducer.spec.ts | 8 ++-- src/app/core/auth/auth.reducer.ts | 2 +- src/app/core/auth/models/auth.method.ts | 5 ++- .../log-in-container.component.spec.ts | 12 ++++-- src/app/shared/log-in/log-in.component.html | 14 +++---- .../shared/log-in/log-in.component.spec.ts | 2 +- src/app/shared/log-in/log-in.component.ts | 34 +++++++-------- .../methods/oidc/log-in-oidc.component.html | 4 +- .../oidc/log-in-oidc.component.spec.ts | 42 ++++--------------- .../methods/orcid/log-in-orcid.component.html | 4 +- .../orcid/log-in-orcid.component.spec.ts | 39 +++-------------- .../password/log-in-password.component.html | 9 ++++ .../password/log-in-password.component.scss | 4 ++ .../log-in-password.component.spec.ts | 20 ++++----- .../password/log-in-password.component.ts | 25 +++++++---- .../log-in-shibboleth.component.html | 2 +- .../log-in-shibboleth.component.spec.ts | 39 +++-------------- src/app/shared/testing/auth-service.stub.ts | 7 ++-- src/assets/i18n/en.json5 | 2 - 20 files changed, 107 insertions(+), 173 deletions(-) diff --git a/src/app/core/auth/auth.interceptor.ts b/src/app/core/auth/auth.interceptor.ts index e55d0c0ff9..47ef0b11a5 100644 --- a/src/app/core/auth/auth.interceptor.ts +++ b/src/app/core/auth/auth.interceptor.ts @@ -152,12 +152,12 @@ export class AuthInterceptor implements HttpInterceptor { let authMethodModel: AuthMethod; if (splittedRealm.length === 1) { - authMethodModel = new AuthMethod(methodName); + authMethodModel = new AuthMethod(methodName, Number(j)); authMethodModels.push(authMethodModel); } else if (splittedRealm.length > 1) { let location = splittedRealm[1]; location = this.parseLocation(location); - authMethodModel = new AuthMethod(methodName, location); + authMethodModel = new AuthMethod(methodName, Number(j), location); authMethodModels.push(authMethodModel); } } @@ -165,7 +165,7 @@ export class AuthInterceptor implements HttpInterceptor { // make sure the email + password login component gets rendered first authMethodModels = this.sortAuthMethods(authMethodModels); } else { - authMethodModels.push(new AuthMethod(AuthMethodType.Password)); + authMethodModels.push(new AuthMethod(AuthMethodType.Password, 0)); } return authMethodModels; diff --git a/src/app/core/auth/auth.reducer.spec.ts b/src/app/core/auth/auth.reducer.spec.ts index 8ebc9f6cb0..770bcc8691 100644 --- a/src/app/core/auth/auth.reducer.spec.ts +++ b/src/app/core/auth/auth.reducer.spec.ts @@ -575,9 +575,9 @@ describe('authReducer', () => { authMethods: [], idle: false }; - const authMethods = [ - new AuthMethod(AuthMethodType.Password), - new AuthMethod(AuthMethodType.Shibboleth, 'location') + const authMethods: AuthMethod[] = [ + new AuthMethod(AuthMethodType.Password, 0), + new AuthMethod(AuthMethodType.Shibboleth, 1, 'location'), ]; const action = new RetrieveAuthMethodsSuccessAction(authMethods); const newState = authReducer(initialState, action); @@ -609,7 +609,7 @@ describe('authReducer', () => { loaded: false, blocking: false, loading: false, - authMethods: [new AuthMethod(AuthMethodType.Password)], + authMethods: [new AuthMethod(AuthMethodType.Password, 0)], idle: false }; expect(newState).toEqual(state); diff --git a/src/app/core/auth/auth.reducer.ts b/src/app/core/auth/auth.reducer.ts index acdb8ef812..d09777c60f 100644 --- a/src/app/core/auth/auth.reducer.ts +++ b/src/app/core/auth/auth.reducer.ts @@ -228,7 +228,7 @@ export function authReducer(state: any = initialState, action: AuthActions): Aut return Object.assign({}, state, { loading: false, blocking: false, - authMethods: [new AuthMethod(AuthMethodType.Password)] + authMethods: [new AuthMethod(AuthMethodType.Password, 0)] }); case AuthActionTypes.SET_REDIRECT_URL: diff --git a/src/app/core/auth/models/auth.method.ts b/src/app/core/auth/models/auth.method.ts index 0579ae0cd1..b84e7a308a 100644 --- a/src/app/core/auth/models/auth.method.ts +++ b/src/app/core/auth/models/auth.method.ts @@ -2,11 +2,12 @@ import { AuthMethodType } from './auth.method-type'; export class AuthMethod { authMethodType: AuthMethodType; + position: number; location?: string; - // isStandalonePage? = true; + constructor(authMethodName: string, position: number, location?: string) { + this.position = position; - constructor(authMethodName: string, location?: string) { switch (authMethodName) { case 'ip': { this.authMethodType = AuthMethodType.Ip; diff --git a/src/app/shared/log-in/container/log-in-container.component.spec.ts b/src/app/shared/log-in/container/log-in-container.component.spec.ts index 29598e422e..4700cf9307 100644 --- a/src/app/shared/log-in/container/log-in-container.component.spec.ts +++ b/src/app/shared/log-in/container/log-in-container.component.spec.ts @@ -13,13 +13,17 @@ import { AuthMethod } from '../../../core/auth/models/auth.method'; import { AuthServiceStub } from '../../testing/auth-service.stub'; import { createTestComponent } from '../../testing/utils.test'; import { HardRedirectService } from '../../../core/services/hard-redirect.service'; +import { AuthMethodType } from '../../../core/auth/models/auth.method-type'; +import { AuthorizationDataService } from '../../../core/data/feature-authorization/authorization-data.service'; +import { AuthorizationDataServiceStub } from '../../testing/authorization-service.stub'; +import { RouterTestingModule } from '@angular/router/testing'; describe('LogInContainerComponent', () => { let component: LogInContainerComponent; let fixture: ComponentFixture<LogInContainerComponent>; - const authMethod = new AuthMethod('password'); + const authMethod = new AuthMethod(AuthMethodType.Password, 0); let hardRedirectService: HardRedirectService; @@ -35,13 +39,15 @@ describe('LogInContainerComponent', () => { ReactiveFormsModule, StoreModule.forRoot(authReducer), SharedModule, - TranslateModule.forRoot() + TranslateModule.forRoot(), + RouterTestingModule, ], declarations: [ TestComponent ], providers: [ { provide: AuthService, useClass: AuthServiceStub }, + { provide: AuthorizationDataService, useClass: AuthorizationDataServiceStub }, { provide: HardRedirectService, useValue: hardRedirectService }, LogInContainerComponent ], @@ -113,6 +119,6 @@ describe('LogInContainerComponent', () => { class TestComponent { isStandalonePage = true; - authMethod = new AuthMethod('password'); + authMethod = new AuthMethod(AuthMethodType.Password, 0); } diff --git a/src/app/shared/log-in/log-in.component.html b/src/app/shared/log-in/log-in.component.html index 6e4685a07b..173e0f8e30 100644 --- a/src/app/shared/log-in/log-in.component.html +++ b/src/app/shared/log-in/log-in.component.html @@ -1,13 +1,11 @@ <ds-themed-loading *ngIf="(loading | async) || (isAuthenticated | async)" class="m-5"></ds-themed-loading> <div *ngIf="!(loading | async) && !(isAuthenticated | async)" class="px-4 py-3 login-container"> - <ng-container *ngFor="let authMethod of (authMethods | async); let i = index"> - <div *ngIf="i === 1" class="text-center mt-2"> - <span class="align-middle">{{"login.form.or-divider" | translate}}</span> + <ng-container *ngFor="let authMethod of getOrderedAuthMethods(authMethods | async); let last = last"> + <div [class.d-none]="contentRef.innerText.trim().length === 0"> + <div #contentRef> + <ds-log-in-container [authMethod]="authMethod" [isStandalonePage]="isStandalonePage"></ds-log-in-container> + </div> + <div *ngIf="!last" class="dropdown-divider my-2"></div> </div> - <ds-log-in-container [authMethod]="authMethod" [isStandalonePage]="isStandalonePage"></ds-log-in-container> </ng-container> - - <div class="dropdown-divider"></div> - <a class="dropdown-item" *ngIf="canRegister$ | async" [routerLink]="[getRegisterRoute()]" [attr.data-test]="'register' | dsBrowserOnly">{{"login.form.new-user" | translate}}</a> - <a class="dropdown-item" [routerLink]="[getForgotRoute()]" [attr.data-test]="'forgot' | dsBrowserOnly">{{"login.form.forgot-password" | translate}}</a> </div> diff --git a/src/app/shared/log-in/log-in.component.spec.ts b/src/app/shared/log-in/log-in.component.spec.ts index 0a13e8b701..57ed3e4694 100644 --- a/src/app/shared/log-in/log-in.component.spec.ts +++ b/src/app/shared/log-in/log-in.component.spec.ts @@ -50,7 +50,7 @@ describe('LogInComponent', () => { }); // refine the test module by declaring the test component - TestBed.configureTestingModule({ + void TestBed.configureTestingModule({ imports: [ FormsModule, ReactiveFormsModule, diff --git a/src/app/shared/log-in/log-in.component.ts b/src/app/shared/log-in/log-in.component.ts index 120f3ac4fa..9cc466dcfe 100644 --- a/src/app/shared/log-in/log-in.component.ts +++ b/src/app/shared/log-in/log-in.component.ts @@ -1,4 +1,4 @@ -import { Component, Input, OnInit } from '@angular/core'; +import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'; import { Observable } from 'rxjs'; import { select, Store } from '@ngrx/store'; import { AuthMethod } from '../../core/auth/models/auth.method'; @@ -8,11 +8,8 @@ import { isAuthenticated, isAuthenticationLoading } from '../../core/auth/selectors'; -import { getForgotPasswordRoute, getRegisterRoute } from '../../app-routing-paths'; import { hasValue } from '../empty.util'; import { AuthService } from '../../core/auth/auth.service'; -import { AuthorizationDataService } from '../../core/data/feature-authorization/authorization-data.service'; -import { FeatureID } from '../../core/data/feature-authorization/feature-id'; import { CoreState } from '../../core/core-state.model'; /** @@ -22,7 +19,8 @@ import { CoreState } from '../../core/core-state.model'; @Component({ selector: 'ds-log-in', templateUrl: './log-in.component.html', - styleUrls: ['./log-in.component.scss'] + styleUrls: ['./log-in.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, }) export class LogInComponent implements OnInit { @@ -50,14 +48,9 @@ export class LogInComponent implements OnInit { */ public loading: Observable<boolean>; - /** - * Whether or not the current user (or anonymous) is authorized to register an account - */ - canRegister$: Observable<boolean>; - constructor(private store: Store<CoreState>, private authService: AuthService, - private authorizationService: AuthorizationDataService) { + ) { } ngOnInit(): void { @@ -78,15 +71,18 @@ export class LogInComponent implements OnInit { this.authService.clearRedirectUrl(); } }); - - this.canRegister$ = this.authorizationService.isAuthorized(FeatureID.EPersonRegistration); } - getRegisterRoute() { - return getRegisterRoute(); - } - - getForgotRoute() { - return getForgotPasswordRoute(); + /** + * Returns an ordered list of {@link AuthMethod}s based on their position. + * + * @param authMethods The {@link AuthMethod}s to sort + */ + getOrderedAuthMethods(authMethods: AuthMethod[] | null): AuthMethod[] { + if (hasValue(authMethods)) { + return [...authMethods].sort((method1: AuthMethod, method2: AuthMethod) => method1.position - method2.position); + } else { + return []; + } } } diff --git a/src/app/shared/log-in/methods/oidc/log-in-oidc.component.html b/src/app/shared/log-in/methods/oidc/log-in-oidc.component.html index 7e78834305..5719a4838f 100644 --- a/src/app/shared/log-in/methods/oidc/log-in-oidc.component.html +++ b/src/app/shared/log-in/methods/oidc/log-in-oidc.component.html @@ -1,3 +1,3 @@ -<button class="btn btn-lg btn-primary btn-block mt-2 text-white" (click)="redirectToOidc()"> +<button class="btn btn-lg btn-primary btn-block text-white" (click)="redirectToOidc()"> <i class="fas fa-sign-in-alt"></i> {{"login.form.oidc" | translate}} -</button> \ No newline at end of file +</button> diff --git a/src/app/shared/log-in/methods/oidc/log-in-oidc.component.spec.ts b/src/app/shared/log-in/methods/oidc/log-in-oidc.component.spec.ts index 078a58dd5a..93559689e8 100644 --- a/src/app/shared/log-in/methods/oidc/log-in-oidc.component.spec.ts +++ b/src/app/shared/log-in/methods/oidc/log-in-oidc.component.spec.ts @@ -3,11 +3,8 @@ import { ActivatedRoute, Router } from '@angular/router'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { provideMockStore } from '@ngrx/store/testing'; -import { Store, StoreModule } from '@ngrx/store'; +import { StoreModule } from '@ngrx/store'; import { TranslateModule } from '@ngx-translate/core'; - -import { EPerson } from '../../../../core/eperson/models/eperson.model'; -import { EPersonMock } from '../../../testing/eperson.mock'; import { authReducer } from '../../../../core/auth/auth.reducer'; import { AuthService } from '../../../../core/auth/auth.service'; import { AuthServiceStub } from '../../../testing/auth-service.stub'; @@ -20,23 +17,22 @@ import { RouterStub } from '../../../testing/router.stub'; import { ActivatedRouteStub } from '../../../testing/active-router.stub'; import { NativeWindowMockFactory } from '../../../mocks/mock-native-window-ref'; import { HardRedirectService } from '../../../../core/services/hard-redirect.service'; +import { AuthorizationDataService } from '../../../../core/data/feature-authorization/authorization-data.service'; +import { AuthorizationDataServiceStub } from '../../../testing/authorization-service.stub'; describe('LogInOidcComponent', () => { let component: LogInOidcComponent; let fixture: ComponentFixture<LogInOidcComponent>; - let page: Page; - let user: EPerson; let componentAsAny: any; let setHrefSpy; - let oidcBaseUrl; - let location; + let oidcBaseUrl: string; + let location: string; let initialState: any; let hardRedirectService: HardRedirectService; beforeEach(() => { - user = EPersonMock; oidcBaseUrl = 'dspace-rest.test/oidc?redirectUrl='; location = oidcBaseUrl + 'http://dspace-angular.test/home'; @@ -60,7 +56,7 @@ describe('LogInOidcComponent', () => { beforeEach(waitForAsync(() => { // refine the test module by declaring the test component - TestBed.configureTestingModule({ + void TestBed.configureTestingModule({ imports: [ StoreModule.forRoot({ auth: authReducer }, storeModuleConfig), TranslateModule.forRoot() @@ -70,7 +66,8 @@ describe('LogInOidcComponent', () => { ], providers: [ { provide: AuthService, useClass: AuthServiceStub }, - { provide: 'authMethodProvider', useValue: new AuthMethod(AuthMethodType.Oidc, location) }, + { provide: AuthorizationDataService, useClass: AuthorizationDataServiceStub }, + { provide: 'authMethodProvider', useValue: new AuthMethod(AuthMethodType.Oidc, 0, location) }, { provide: 'isStandalonePage', useValue: true }, { provide: NativeWindowService, useFactory: NativeWindowMockFactory }, { provide: Router, useValue: new RouterStub() }, @@ -95,7 +92,6 @@ describe('LogInOidcComponent', () => { componentAsAny = component; // create page - page = new Page(component, fixture); setHrefSpy = spyOnProperty(componentAsAny._window.nativeWindow.location, 'href', 'set').and.callThrough(); }); @@ -131,25 +127,3 @@ describe('LogInOidcComponent', () => { }); }); - -/** - * I represent the DOM elements and attach spies. - * - * @class Page - */ -class Page { - - public emailInput: HTMLInputElement; - public navigateSpy: jasmine.Spy; - public passwordInput: HTMLInputElement; - - constructor(private component: LogInOidcComponent, private fixture: ComponentFixture<LogInOidcComponent>) { - // use injector to get services - const injector = fixture.debugElement.injector; - const store = injector.get(Store); - - // add spies - this.navigateSpy = spyOn(store, 'dispatch'); - } - -} diff --git a/src/app/shared/log-in/methods/orcid/log-in-orcid.component.html b/src/app/shared/log-in/methods/orcid/log-in-orcid.component.html index 6f5453fd60..2260197ab4 100644 --- a/src/app/shared/log-in/methods/orcid/log-in-orcid.component.html +++ b/src/app/shared/log-in/methods/orcid/log-in-orcid.component.html @@ -1,3 +1,3 @@ -<button class="btn btn-lg btn-primary btn-block mt-2 text-white" (click)="redirectToOrcid()"> +<button class="btn btn-lg btn-primary btn-block text-white" (click)="redirectToOrcid()"> <i class="fas fa-sign-in-alt"></i> {{"login.form.orcid" | translate}} -</button> \ No newline at end of file +</button> diff --git a/src/app/shared/log-in/methods/orcid/log-in-orcid.component.spec.ts b/src/app/shared/log-in/methods/orcid/log-in-orcid.component.spec.ts index 001f0a4959..0782f15720 100644 --- a/src/app/shared/log-in/methods/orcid/log-in-orcid.component.spec.ts +++ b/src/app/shared/log-in/methods/orcid/log-in-orcid.component.spec.ts @@ -3,11 +3,8 @@ import { ActivatedRoute, Router } from '@angular/router'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { provideMockStore } from '@ngrx/store/testing'; -import { Store, StoreModule } from '@ngrx/store'; +import { StoreModule } from '@ngrx/store'; import { TranslateModule } from '@ngx-translate/core'; - -import { EPerson } from '../../../../core/eperson/models/eperson.model'; -import { EPersonMock } from '../../../testing/eperson.mock'; import { authReducer } from '../../../../core/auth/auth.reducer'; import { AuthService } from '../../../../core/auth/auth.service'; import { AuthServiceStub } from '../../../testing/auth-service.stub'; @@ -26,17 +23,14 @@ describe('LogInOrcidComponent', () => { let component: LogInOrcidComponent; let fixture: ComponentFixture<LogInOrcidComponent>; - let page: Page; - let user: EPerson; let componentAsAny: any; let setHrefSpy; - let orcidBaseUrl; - let location; + let orcidBaseUrl: string; + let location: string; let initialState: any; let hardRedirectService: HardRedirectService; beforeEach(() => { - user = EPersonMock; orcidBaseUrl = 'dspace-rest.test/orcid?redirectUrl='; location = orcidBaseUrl + 'http://dspace-angular.test/home'; @@ -60,7 +54,7 @@ describe('LogInOrcidComponent', () => { beforeEach(waitForAsync(() => { // refine the test module by declaring the test component - TestBed.configureTestingModule({ + void TestBed.configureTestingModule({ imports: [ StoreModule.forRoot({ auth: authReducer }, storeModuleConfig), TranslateModule.forRoot() @@ -70,7 +64,7 @@ describe('LogInOrcidComponent', () => { ], providers: [ { provide: AuthService, useClass: AuthServiceStub }, - { provide: 'authMethodProvider', useValue: new AuthMethod(AuthMethodType.Orcid, location) }, + { provide: 'authMethodProvider', useValue: new AuthMethod(AuthMethodType.Orcid, 0, location) }, { provide: 'isStandalonePage', useValue: true }, { provide: NativeWindowService, useFactory: NativeWindowMockFactory }, { provide: Router, useValue: new RouterStub() }, @@ -95,7 +89,6 @@ describe('LogInOrcidComponent', () => { componentAsAny = component; // create page - page = new Page(component, fixture); setHrefSpy = spyOnProperty(componentAsAny._window.nativeWindow.location, 'href', 'set').and.callThrough(); }); @@ -131,25 +124,3 @@ describe('LogInOrcidComponent', () => { }); }); - -/** - * I represent the DOM elements and attach spies. - * - * @class Page - */ -class Page { - - public emailInput: HTMLInputElement; - public navigateSpy: jasmine.Spy; - public passwordInput: HTMLInputElement; - - constructor(private component: LogInOrcidComponent, private fixture: ComponentFixture<LogInOrcidComponent>) { - // use injector to get services - const injector = fixture.debugElement.injector; - const store = injector.get(Store); - - // add spies - this.navigateSpy = spyOn(store, 'dispatch'); - } - -} diff --git a/src/app/shared/log-in/methods/password/log-in-password.component.html b/src/app/shared/log-in/methods/password/log-in-password.component.html index c1f1016cb8..60477d141d 100644 --- a/src/app/shared/log-in/methods/password/log-in-password.component.html +++ b/src/app/shared/log-in/methods/password/log-in-password.component.html @@ -28,3 +28,12 @@ <button class="btn btn-lg btn-primary btn-block mt-3" type="submit" [attr.data-test]="'login-button' | dsBrowserOnly" [disabled]="!form.valid"><i class="fas fa-sign-in-alt"></i> {{"login.form.submit" | translate}}</button> </form> + +<div class="mt-2"> + <a class="dropdown-item" *ngIf="canRegister$ | async" [routerLink]="[getRegisterRoute()]" [attr.data-test]="'register' | dsBrowserOnly"> + {{ 'login.form.new-user' | translate }} + </a> + <a class="dropdown-item" [routerLink]="[getForgotRoute()]" [attr.data-test]="'forgot' | dsBrowserOnly"> + {{ 'login.form.forgot-password' | translate }} + </a> +</div> diff --git a/src/app/shared/log-in/methods/password/log-in-password.component.scss b/src/app/shared/log-in/methods/password/log-in-password.component.scss index 0eda382c0a..955252b51e 100644 --- a/src/app/shared/log-in/methods/password/log-in-password.component.scss +++ b/src/app/shared/log-in/methods/password/log-in-password.component.scss @@ -11,3 +11,7 @@ border-top-right-radius: 0; } +.dropdown-item { + white-space: normal; + padding: .25rem .75rem; +} diff --git a/src/app/shared/log-in/methods/password/log-in-password.component.spec.ts b/src/app/shared/log-in/methods/password/log-in-password.component.spec.ts index 5238482770..94d18fe768 100644 --- a/src/app/shared/log-in/methods/password/log-in-password.component.spec.ts +++ b/src/app/shared/log-in/methods/password/log-in-password.component.spec.ts @@ -8,8 +8,6 @@ import { Store, StoreModule } from '@ngrx/store'; import { TranslateModule } from '@ngx-translate/core'; import { LogInPasswordComponent } from './log-in-password.component'; -import { EPerson } from '../../../../core/eperson/models/eperson.model'; -import { EPersonMock } from '../../../testing/eperson.mock'; import { authReducer } from '../../../../core/auth/auth.reducer'; import { AuthService } from '../../../../core/auth/auth.service'; import { AuthServiceStub } from '../../../testing/auth-service.stub'; @@ -18,19 +16,18 @@ import { AuthMethod } from '../../../../core/auth/models/auth.method'; import { AuthMethodType } from '../../../../core/auth/models/auth.method-type'; import { HardRedirectService } from '../../../../core/services/hard-redirect.service'; import { BrowserOnlyMockPipe } from '../../../testing/browser-only-mock.pipe'; +import { AuthorizationDataService } from '../../../../core/data/feature-authorization/authorization-data.service'; +import { AuthorizationDataServiceStub } from '../../../testing/authorization-service.stub'; describe('LogInPasswordComponent', () => { let component: LogInPasswordComponent; let fixture: ComponentFixture<LogInPasswordComponent>; let page: Page; - let user: EPerson; let initialState: any; let hardRedirectService: HardRedirectService; beforeEach(() => { - user = EPersonMock; - hardRedirectService = jasmine.createSpyObj('hardRedirectService', { getCurrentRoute: {} }); @@ -50,7 +47,7 @@ describe('LogInPasswordComponent', () => { beforeEach(waitForAsync(() => { // refine the test module by declaring the test component - TestBed.configureTestingModule({ + void TestBed.configureTestingModule({ imports: [ FormsModule, ReactiveFormsModule, @@ -63,7 +60,8 @@ describe('LogInPasswordComponent', () => { ], providers: [ { provide: AuthService, useClass: AuthServiceStub }, - { provide: 'authMethodProvider', useValue: new AuthMethod(AuthMethodType.Password) }, + { provide: AuthorizationDataService, useClass: AuthorizationDataServiceStub }, + { provide: 'authMethodProvider', useValue: new AuthMethod(AuthMethodType.Password, 0) }, { provide: 'isStandalonePage', useValue: true }, { provide: HardRedirectService, useValue: hardRedirectService }, provideMockStore({ initialState }), @@ -76,7 +74,7 @@ describe('LogInPasswordComponent', () => { })); - beforeEach(() => { + beforeEach(async () => { // create component and test fixture fixture = TestBed.createComponent(LogInPasswordComponent); @@ -87,10 +85,8 @@ describe('LogInPasswordComponent', () => { page = new Page(component, fixture); // verify the fixture is stable (no pending tasks) - fixture.whenStable().then(() => { - page.addPageElements(); - }); - + await fixture.whenStable(); + page.addPageElements(); }); it('should create a FormGroup comprised of FormControls', () => { diff --git a/src/app/shared/log-in/methods/password/log-in-password.component.ts b/src/app/shared/log-in/methods/password/log-in-password.component.ts index e4a92ded29..e2fe92fafb 100644 --- a/src/app/shared/log-in/methods/password/log-in-password.component.ts +++ b/src/app/shared/log-in/methods/password/log-in-password.component.ts @@ -15,6 +15,9 @@ import { AuthMethod } from '../../../../core/auth/models/auth.method'; import { AuthService } from '../../../../core/auth/auth.service'; import { HardRedirectService } from '../../../../core/services/hard-redirect.service'; import { CoreState } from '../../../../core/core-state.model'; +import { getForgotPasswordRoute, getRegisterRoute } from '../../../../app-routing-paths'; +import { FeatureID } from '../../../../core/data/feature-authorization/feature-id'; +import { AuthorizationDataService } from '../../../../core/data/feature-authorization/authorization-data.service'; /** * /users/sign-in @@ -66,21 +69,18 @@ export class LogInPasswordComponent implements OnInit { public form: FormGroup; /** - * @constructor - * @param {AuthMethod} injectedAuthMethodModel - * @param {boolean} isStandalonePage - * @param {AuthService} authService - * @param {HardRedirectService} hardRedirectService - * @param {FormBuilder} formBuilder - * @param {Store<State>} store + * Whether the current user (or anonymous) is authorized to register an account */ + public canRegister$: Observable<boolean>; + constructor( @Inject('authMethodProvider') public injectedAuthMethodModel: AuthMethod, @Inject('isStandalonePage') public isStandalonePage: boolean, private authService: AuthService, private hardRedirectService: HardRedirectService, private formBuilder: FormBuilder, - private store: Store<CoreState> + protected store: Store<CoreState>, + protected authorizationService: AuthorizationDataService, ) { this.authMethod = injectedAuthMethodModel; } @@ -115,6 +115,15 @@ export class LogInPasswordComponent implements OnInit { }) ); + this.canRegister$ = this.authorizationService.isAuthorized(FeatureID.EPersonRegistration); + } + + getRegisterRoute() { + return getRegisterRoute(); + } + + getForgotRoute() { + return getForgotPasswordRoute(); } /** diff --git a/src/app/shared/log-in/methods/shibboleth/log-in-shibboleth.component.html b/src/app/shared/log-in/methods/shibboleth/log-in-shibboleth.component.html index 3a3b935cfa..fca514b83d 100644 --- a/src/app/shared/log-in/methods/shibboleth/log-in-shibboleth.component.html +++ b/src/app/shared/log-in/methods/shibboleth/log-in-shibboleth.component.html @@ -1,3 +1,3 @@ -<button class="btn btn-lg btn-primary btn-block mt-2 text-white" (click)="redirectToShibboleth()"> +<button class="btn btn-lg btn-primary btn-block text-white" (click)="redirectToShibboleth()"> <i class="fas fa-sign-in-alt"></i> {{"login.form.shibboleth" | translate}} </button> diff --git a/src/app/shared/log-in/methods/shibboleth/log-in-shibboleth.component.spec.ts b/src/app/shared/log-in/methods/shibboleth/log-in-shibboleth.component.spec.ts index 075d33d98e..afb0f2092a 100644 --- a/src/app/shared/log-in/methods/shibboleth/log-in-shibboleth.component.spec.ts +++ b/src/app/shared/log-in/methods/shibboleth/log-in-shibboleth.component.spec.ts @@ -3,11 +3,8 @@ import { ActivatedRoute, Router } from '@angular/router'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { provideMockStore } from '@ngrx/store/testing'; -import { Store, StoreModule } from '@ngrx/store'; +import { StoreModule } from '@ngrx/store'; import { TranslateModule } from '@ngx-translate/core'; - -import { EPerson } from '../../../../core/eperson/models/eperson.model'; -import { EPersonMock } from '../../../testing/eperson.mock'; import { authReducer } from '../../../../core/auth/auth.reducer'; import { AuthService } from '../../../../core/auth/auth.service'; import { AuthServiceStub } from '../../../testing/auth-service.stub'; @@ -26,17 +23,14 @@ describe('LogInShibbolethComponent', () => { let component: LogInShibbolethComponent; let fixture: ComponentFixture<LogInShibbolethComponent>; - let page: Page; - let user: EPerson; let componentAsAny: any; let setHrefSpy; - let shibbolethBaseUrl; - let location; + let shibbolethBaseUrl: string; + let location: string; let initialState: any; let hardRedirectService: HardRedirectService; beforeEach(() => { - user = EPersonMock; shibbolethBaseUrl = 'dspace-rest.test/shibboleth?redirectUrl='; location = shibbolethBaseUrl + 'http://dspace-angular.test/home'; @@ -60,7 +54,7 @@ describe('LogInShibbolethComponent', () => { beforeEach(waitForAsync(() => { // refine the test module by declaring the test component - TestBed.configureTestingModule({ + void TestBed.configureTestingModule({ imports: [ StoreModule.forRoot({ auth: authReducer }, storeModuleConfig), TranslateModule.forRoot() @@ -70,7 +64,7 @@ describe('LogInShibbolethComponent', () => { ], providers: [ { provide: AuthService, useClass: AuthServiceStub }, - { provide: 'authMethodProvider', useValue: new AuthMethod(AuthMethodType.Shibboleth, location) }, + { provide: 'authMethodProvider', useValue: new AuthMethod(AuthMethodType.Shibboleth, 0, location) }, { provide: 'isStandalonePage', useValue: true }, { provide: NativeWindowService, useFactory: NativeWindowMockFactory }, { provide: Router, useValue: new RouterStub() }, @@ -95,7 +89,6 @@ describe('LogInShibbolethComponent', () => { componentAsAny = component; // create page - page = new Page(component, fixture); setHrefSpy = spyOnProperty(componentAsAny._window.nativeWindow.location, 'href', 'set').and.callThrough(); }); @@ -131,25 +124,3 @@ describe('LogInShibbolethComponent', () => { }); }); - -/** - * I represent the DOM elements and attach spies. - * - * @class Page - */ -class Page { - - public emailInput: HTMLInputElement; - public navigateSpy: jasmine.Spy; - public passwordInput: HTMLInputElement; - - constructor(private component: LogInShibbolethComponent, private fixture: ComponentFixture<LogInShibbolethComponent>) { - // use injector to get services - const injector = fixture.debugElement.injector; - const store = injector.get(Store); - - // add spies - this.navigateSpy = spyOn(store, 'dispatch'); - } - -} diff --git a/src/app/shared/testing/auth-service.stub.ts b/src/app/shared/testing/auth-service.stub.ts index b8d822252d..e974c5ca9e 100644 --- a/src/app/shared/testing/auth-service.stub.ts +++ b/src/app/shared/testing/auth-service.stub.ts @@ -6,10 +6,11 @@ import { EPerson } from '../../core/eperson/models/eperson.model'; import { createSuccessfulRemoteDataObject$ } from '../remote-data.utils'; import { AuthMethod } from '../../core/auth/models/auth.method'; import { hasValue } from '../empty.util'; +import { AuthMethodType } from '../../core/auth/models/auth.method-type'; -export const authMethodsMock = [ - new AuthMethod('password'), - new AuthMethod('shibboleth', 'dspace.test/shibboleth') +export const authMethodsMock: AuthMethod[] = [ + new AuthMethod(AuthMethodType.Password, 0), + new AuthMethod(AuthMethodType.Shibboleth, 1, 'dspace.test/shibboleth'), ]; export class AuthServiceStub { diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 597f226cc7..4e875d61f2 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -2560,8 +2560,6 @@ "login.form.new-user": "New user? Click here to register.", - "login.form.or-divider": "or", - "login.form.oidc": "Log in with OIDC", "login.form.orcid": "Log in with ORCID", -- GitLab From 3dc73f90214bc9fd288aaf0e0a06bc5912aadfbb Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Wed, 2 Aug 2023 21:25:58 +0200 Subject: [PATCH 021/183] Properly handle AuthMethod subscription in LogInComponent --- src/app/shared/log-in/log-in.component.ts | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/app/shared/log-in/log-in.component.ts b/src/app/shared/log-in/log-in.component.ts index f47ea2d77e..4bfae18332 100644 --- a/src/app/shared/log-in/log-in.component.ts +++ b/src/app/shared/log-in/log-in.component.ts @@ -1,5 +1,5 @@ import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'; -import { Observable } from 'rxjs'; +import { map, Observable } from 'rxjs'; import { select, Store } from '@ngrx/store'; import { AuthMethod } from '../../core/auth/models/auth.method'; import { @@ -35,7 +35,7 @@ export class LogInComponent implements OnInit { * The list of authentication methods available * @type {AuthMethod[]} */ - public authMethods: AuthMethod[]; + public authMethods: Observable<AuthMethod[]>; /** * Whether user is authenticated. @@ -55,13 +55,11 @@ export class LogInComponent implements OnInit { } ngOnInit(): void { - - this.store.pipe( + this.authMethods = this.store.pipe( select(getAuthenticationMethods), - ).subscribe(methods => { // ignore the ip authentication method when it's returned by the backend - this.authMethods = methods.filter(a => a.authMethodType !== AuthMethodType.Ip); - }); + map((methods: AuthMethod[]) => methods.filter((authMethod: AuthMethod) => authMethod.authMethodType !== AuthMethodType.Ip)), + ); // set loading this.loading = this.store.pipe(select(isAuthenticationLoading)); -- GitLab From 7c379db7eec9196e1fcbd5eacbcbd67246c4546f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Aug 2023 21:23:09 +0000 Subject: [PATCH 022/183] Bump semver from 5.7.1 to 5.7.2 Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2. - [Release notes](https://github.com/npm/node-semver/releases) - [Changelog](https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md) - [Commits](https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2) --- updated-dependencies: - dependency-name: semver dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> (cherry picked from commit 0b0c60e38c1aecb690f15b1af20df655bd028c5f) --- yarn.lock | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/yarn.lock b/yarn.lock index 730966fcdb..21de68a480 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10114,33 +10114,33 @@ selfsigned@^2.1.1: dependencies: node-forge "^1" -semver@7.3.8, semver@^7.3.5, semver@^7.3.8: +semver@7.3.8: version "7.3.8" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== dependencies: lru-cache "^6.0.0" semver@^5.3.0, semver@^5.6.0, semver@^5.7.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.0.0, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.7: - version "7.4.0" - resolved "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz" - integrity sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw== +semver@^7.0.0, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" semver@~7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== send@0.16.2: -- GitLab From 0dc74165dc58bbeb36bd95ef86b6666e5245997f Mon Sep 17 00:00:00 2001 From: Mirko Scherf <mscherf@uni-mainz.de> Date: Thu, 20 Jul 2023 14:53:28 +0200 Subject: [PATCH 023/183] refactor: rename aletr-type.ts to alert-type.ts --- .../group-registry/group-form/group-form.component.ts | 2 +- .../edit-item-template-page.component.ts | 2 +- .../dso-shared/dso-edit-metadata/dso-edit-metadata.component.ts | 2 +- .../health-panel/health-component/health-component.component.ts | 2 +- src/app/item-page/alerts/item-alerts.component.ts | 2 +- .../item-version-history/item-version-history.component.ts | 2 +- .../item-page/orcid-page/orcid-queue/orcid-queue.component.ts | 2 +- src/app/item-page/versions/item-versions.component.ts | 2 +- .../item-page/versions/notice/item-versions-notice.component.ts | 2 +- src/app/process-page/detail/process-detail.component.ts | 2 +- src/app/register-email-form/register-email-form.component.ts | 2 +- .../access-control-form-container.component.ts | 2 +- src/app/shared/alert/{aletr-type.ts => alert-type.ts} | 0 src/app/shared/alert/alert.component.spec.ts | 2 +- src/app/shared/alert/alert.component.ts | 2 +- src/app/shared/error/error.component.ts | 2 +- .../sections/container/section-container.component.ts | 2 +- .../sections/identifiers/section-identifiers.component.ts | 2 +- .../publisher-policy/publisher-policy.component.ts | 2 +- .../sherpa-policies/section-sherpa-policies.component.ts | 2 +- src/app/submission/sections/upload/section-upload.component.ts | 2 +- 21 files changed, 20 insertions(+), 20 deletions(-) rename src/app/shared/alert/{aletr-type.ts => alert-type.ts} (100%) diff --git a/src/app/access-control/group-registry/group-form/group-form.component.ts b/src/app/access-control/group-registry/group-form/group-form.component.ts index 3c0547cca5..693e283b4a 100644 --- a/src/app/access-control/group-registry/group-form/group-form.component.ts +++ b/src/app/access-control/group-registry/group-form/group-form.component.ts @@ -37,7 +37,7 @@ import { getFirstCompletedRemoteData, getFirstSucceededRemoteDataPayload } from '../../../core/shared/operators'; -import { AlertType } from '../../../shared/alert/aletr-type'; +import { AlertType } from '../../../shared/alert/alert-type'; import { ConfirmationModalComponent } from '../../../shared/confirmation-modal/confirmation-modal.component'; import { hasValue, isNotEmpty, hasValueOperator } from '../../../shared/empty.util'; import { FormBuilderService } from '../../../shared/form/builder/form-builder.service'; diff --git a/src/app/collection-page/edit-item-template-page/edit-item-template-page.component.ts b/src/app/collection-page/edit-item-template-page/edit-item-template-page.component.ts index 6425996fd2..238ec5e37a 100644 --- a/src/app/collection-page/edit-item-template-page/edit-item-template-page.component.ts +++ b/src/app/collection-page/edit-item-template-page/edit-item-template-page.component.ts @@ -8,7 +8,7 @@ import { ItemTemplateDataService } from '../../core/data/item-template-data.serv import { getCollectionEditRoute } from '../collection-page-routing-paths'; import { Item } from '../../core/shared/item.model'; import { getFirstSucceededRemoteDataPayload } from '../../core/shared/operators'; -import { AlertType } from '../../shared/alert/aletr-type'; +import { AlertType } from '../../shared/alert/alert-type'; import { DSONameService } from '../../core/breadcrumbs/dso-name.service'; @Component({ diff --git a/src/app/dso-shared/dso-edit-metadata/dso-edit-metadata.component.ts b/src/app/dso-shared/dso-edit-metadata/dso-edit-metadata.component.ts index d67a7ea738..d44817be84 100644 --- a/src/app/dso-shared/dso-edit-metadata/dso-edit-metadata.component.ts +++ b/src/app/dso-shared/dso-edit-metadata/dso-edit-metadata.component.ts @@ -1,5 +1,5 @@ import { Component, Inject, Injector, Input, OnDestroy, OnInit, ViewChild } from '@angular/core'; -import { AlertType } from '../../shared/alert/aletr-type'; +import { AlertType } from '../../shared/alert/alert-type'; import { DSpaceObject } from '../../core/shared/dspace-object.model'; import { DsoEditMetadataForm } from './dso-edit-metadata-form'; import { map } from 'rxjs/operators'; diff --git a/src/app/health-page/health-panel/health-component/health-component.component.ts b/src/app/health-page/health-panel/health-component/health-component.component.ts index e212a07289..f2391c9c4c 100644 --- a/src/app/health-page/health-panel/health-component/health-component.component.ts +++ b/src/app/health-page/health-panel/health-component/health-component.component.ts @@ -3,7 +3,7 @@ import { Component, Input } from '@angular/core'; import { TranslateService } from '@ngx-translate/core'; import { HealthComponent } from '../../models/health-component.model'; -import { AlertType } from '../../../shared/alert/aletr-type'; +import { AlertType } from '../../../shared/alert/alert-type'; /** * A component to render a "health component" object. diff --git a/src/app/item-page/alerts/item-alerts.component.ts b/src/app/item-page/alerts/item-alerts.component.ts index d7a84db015..2b1df58c9f 100644 --- a/src/app/item-page/alerts/item-alerts.component.ts +++ b/src/app/item-page/alerts/item-alerts.component.ts @@ -1,6 +1,6 @@ import { Component, Input } from '@angular/core'; import { Item } from '../../core/shared/item.model'; -import { AlertType } from '../../shared/alert/aletr-type'; +import { AlertType } from '../../shared/alert/alert-type'; @Component({ selector: 'ds-item-alerts', diff --git a/src/app/item-page/edit-item-page/item-version-history/item-version-history.component.ts b/src/app/item-page/edit-item-page/item-version-history/item-version-history.component.ts index 18878109c2..3845c03578 100644 --- a/src/app/item-page/edit-item-page/item-version-history/item-version-history.component.ts +++ b/src/app/item-page/edit-item-page/item-version-history/item-version-history.component.ts @@ -5,7 +5,7 @@ import { Item } from '../../../core/shared/item.model'; import { map } from 'rxjs/operators'; import { getFirstSucceededRemoteData } from '../../../core/shared/operators'; import { ActivatedRoute } from '@angular/router'; -import { AlertType } from '../../../shared/alert/aletr-type'; +import { AlertType } from '../../../shared/alert/alert-type'; @Component({ selector: 'ds-item-version-history', diff --git a/src/app/item-page/orcid-page/orcid-queue/orcid-queue.component.ts b/src/app/item-page/orcid-page/orcid-queue/orcid-queue.component.ts index 6079287f71..3e88826952 100644 --- a/src/app/item-page/orcid-page/orcid-queue/orcid-queue.component.ts +++ b/src/app/item-page/orcid-page/orcid-queue/orcid-queue.component.ts @@ -15,7 +15,7 @@ import { getFirstCompletedRemoteData } from '../../../core/shared/operators'; import { hasValue } from '../../../shared/empty.util'; import { NotificationsService } from '../../../shared/notifications/notifications.service'; import { PaginationComponentOptions } from '../../../shared/pagination/pagination-component-options.model'; -import { AlertType } from '../../../shared/alert/aletr-type'; +import { AlertType } from '../../../shared/alert/alert-type'; import { Item } from '../../../core/shared/item.model'; import { OrcidAuthService } from '../../../core/orcid/orcid-auth.service'; diff --git a/src/app/item-page/versions/item-versions.component.ts b/src/app/item-page/versions/item-versions.component.ts index 700a35552c..e7ee9d5ea2 100644 --- a/src/app/item-page/versions/item-versions.component.ts +++ b/src/app/item-page/versions/item-versions.component.ts @@ -23,7 +23,7 @@ import { PaginatedList } from '../../core/data/paginated-list.model'; import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model'; import { VersionHistoryDataService } from '../../core/data/version-history-data.service'; import { PaginatedSearchOptions } from '../../shared/search/models/paginated-search-options.model'; -import { AlertType } from '../../shared/alert/aletr-type'; +import { AlertType } from '../../shared/alert/alert-type'; import { followLink } from '../../shared/utils/follow-link-config.model'; import { hasValue, hasValueOperator } from '../../shared/empty.util'; import { PaginationService } from '../../core/pagination/pagination.service'; diff --git a/src/app/item-page/versions/notice/item-versions-notice.component.ts b/src/app/item-page/versions/notice/item-versions-notice.component.ts index 8a8f5ff76f..0e5e45806b 100644 --- a/src/app/item-page/versions/notice/item-versions-notice.component.ts +++ b/src/app/item-page/versions/notice/item-versions-notice.component.ts @@ -12,7 +12,7 @@ import { } from '../../../core/shared/operators'; import { map, startWith, switchMap } from 'rxjs/operators'; import { VersionHistoryDataService } from '../../../core/data/version-history-data.service'; -import { AlertType } from '../../../shared/alert/aletr-type'; +import { AlertType } from '../../../shared/alert/alert-type'; import { getItemPageRoute } from '../../item-page-routing-paths'; @Component({ diff --git a/src/app/process-page/detail/process-detail.component.ts b/src/app/process-page/detail/process-detail.component.ts index a379dfe337..be0b6ad0f6 100644 --- a/src/app/process-page/detail/process-detail.component.ts +++ b/src/app/process-page/detail/process-detail.component.ts @@ -17,7 +17,7 @@ import { getFirstSucceededRemoteDataPayload } from '../../core/shared/operators'; import { URLCombiner } from '../../core/url-combiner/url-combiner'; -import { AlertType } from '../../shared/alert/aletr-type'; +import { AlertType } from '../../shared/alert/alert-type'; import { hasValue } from '../../shared/empty.util'; import { ProcessStatus } from '../processes/process-status.model'; import { Process } from '../processes/process.model'; diff --git a/src/app/register-email-form/register-email-form.component.ts b/src/app/register-email-form/register-email-form.component.ts index ddb77b669c..df7e9bea5e 100644 --- a/src/app/register-email-form/register-email-form.component.ts +++ b/src/app/register-email-form/register-email-form.component.ts @@ -13,7 +13,7 @@ import {isNotEmpty} from '../shared/empty.util'; import {BehaviorSubject, combineLatest, Observable, of, switchMap} from 'rxjs'; import {map, startWith, take} from 'rxjs/operators'; import {CAPTCHA_NAME, GoogleRecaptchaService} from '../core/google-recaptcha/google-recaptcha.service'; -import {AlertType} from '../shared/alert/aletr-type'; +import {AlertType} from '../shared/alert/alert-type'; import {KlaroService} from '../shared/cookies/klaro.service'; import {CookieService} from '../core/services/cookie.service'; import { Subscription } from 'rxjs'; diff --git a/src/app/shared/access-control-form-container/access-control-form-container.component.ts b/src/app/shared/access-control-form-container/access-control-form-container.component.ts index 69a598f7ce..cddd1b1a29 100644 --- a/src/app/shared/access-control-form-container/access-control-form-container.component.ts +++ b/src/app/shared/access-control-form-container/access-control-form-container.component.ts @@ -15,7 +15,7 @@ import { import { BulkAccessConfigDataService } from '../../core/config/bulk-access-config-data.service'; import { getFirstCompletedRemoteData } from '../../core/shared/operators'; import { BulkAccessConditionOptions } from '../../core/config/models/bulk-access-condition-options.model'; -import { AlertType } from '../alert/aletr-type'; +import { AlertType } from '../alert/alert-type'; import { createAccessControlInitialFormState } from './access-control-form-container-intial-state'; diff --git a/src/app/shared/alert/aletr-type.ts b/src/app/shared/alert/alert-type.ts similarity index 100% rename from src/app/shared/alert/aletr-type.ts rename to src/app/shared/alert/alert-type.ts diff --git a/src/app/shared/alert/alert.component.spec.ts b/src/app/shared/alert/alert.component.spec.ts index 21e4d197b7..11411c7de0 100644 --- a/src/app/shared/alert/alert.component.spec.ts +++ b/src/app/shared/alert/alert.component.spec.ts @@ -8,7 +8,7 @@ import { TranslateModule } from '@ngx-translate/core'; import { AlertComponent } from './alert.component'; import { createTestComponent } from '../testing/utils.test'; -import { AlertType } from './aletr-type'; +import { AlertType } from './alert-type'; describe('AlertComponent test suite', () => { diff --git a/src/app/shared/alert/alert.component.ts b/src/app/shared/alert/alert.component.ts index 93535d2057..07a8efbd7d 100644 --- a/src/app/shared/alert/alert.component.ts +++ b/src/app/shared/alert/alert.component.ts @@ -1,7 +1,7 @@ import { ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core'; import { trigger } from '@angular/animations'; -import { AlertType } from './aletr-type'; +import { AlertType } from './alert-type'; import { fadeOutLeave, fadeOutState } from '../animations/fade'; /** diff --git a/src/app/shared/error/error.component.ts b/src/app/shared/error/error.component.ts index 9a6b0660bb..6572598c8b 100644 --- a/src/app/shared/error/error.component.ts +++ b/src/app/shared/error/error.component.ts @@ -3,7 +3,7 @@ import { Component, Input } from '@angular/core'; import { TranslateService } from '@ngx-translate/core'; import { Subscription } from 'rxjs'; -import { AlertType } from '../alert/aletr-type'; +import { AlertType } from '../alert/alert-type'; @Component({ selector: 'ds-error', diff --git a/src/app/submission/sections/container/section-container.component.ts b/src/app/submission/sections/container/section-container.component.ts index 8f9ebfbfda..3331629f33 100644 --- a/src/app/submission/sections/container/section-container.component.ts +++ b/src/app/submission/sections/container/section-container.component.ts @@ -3,7 +3,7 @@ import { Component, Injector, Input, OnInit, ViewChild } from '@angular/core'; import { SectionsDirective } from '../sections.directive'; import { SectionDataObject } from '../models/section-data.model'; import { rendersSectionType } from '../sections-decorator'; -import { AlertType } from '../../../shared/alert/aletr-type'; +import { AlertType } from '../../../shared/alert/alert-type'; /** * This component represents a section that contains the submission license form. diff --git a/src/app/submission/sections/identifiers/section-identifiers.component.ts b/src/app/submission/sections/identifiers/section-identifiers.component.ts index 2dc70f668e..ac4af63adb 100644 --- a/src/app/submission/sections/identifiers/section-identifiers.component.ts +++ b/src/app/submission/sections/identifiers/section-identifiers.component.ts @@ -7,7 +7,7 @@ import { SectionModelComponent } from '../models/section.model'; import { renderSectionFor } from '../sections-decorator'; import { SectionDataObject } from '../models/section-data.model'; import { SubmissionService } from '../../submission.service'; -import { AlertType } from '../../../shared/alert/aletr-type'; +import { AlertType } from '../../../shared/alert/alert-type'; import { SectionsService } from '../sections.service'; import { WorkspaceitemSectionIdentifiersObject } from '../../../core/submission/models/workspaceitem-section-identifiers.model'; diff --git a/src/app/submission/sections/sherpa-policies/publisher-policy/publisher-policy.component.ts b/src/app/submission/sections/sherpa-policies/publisher-policy/publisher-policy.component.ts index 96ada3904c..25407f5a7b 100644 --- a/src/app/submission/sections/sherpa-policies/publisher-policy/publisher-policy.component.ts +++ b/src/app/submission/sections/sherpa-policies/publisher-policy/publisher-policy.component.ts @@ -1,7 +1,7 @@ import { Component, Input } from '@angular/core'; import { Policy } from '../../../../core/submission/models/sherpa-policies-details.model'; -import { AlertType } from '../../../../shared/alert/aletr-type'; +import { AlertType } from '../../../../shared/alert/alert-type'; /** * This component represents a section that contains the publisher policy informations. diff --git a/src/app/submission/sections/sherpa-policies/section-sherpa-policies.component.ts b/src/app/submission/sections/sherpa-policies/section-sherpa-policies.component.ts index e55b75146f..eb273a8420 100644 --- a/src/app/submission/sections/sherpa-policies/section-sherpa-policies.component.ts +++ b/src/app/submission/sections/sherpa-policies/section-sherpa-policies.component.ts @@ -1,4 +1,4 @@ -import { AlertType } from '../../../shared/alert/aletr-type'; +import { AlertType } from '../../../shared/alert/alert-type'; import { Component, Inject } from '@angular/core'; import { BehaviorSubject, Observable, of, Subscription } from 'rxjs'; diff --git a/src/app/submission/sections/upload/section-upload.component.ts b/src/app/submission/sections/upload/section-upload.component.ts index eefed8a36b..10203adbc0 100644 --- a/src/app/submission/sections/upload/section-upload.component.ts +++ b/src/app/submission/sections/upload/section-upload.component.ts @@ -21,7 +21,7 @@ import { SectionsType } from '../sections-type'; import { renderSectionFor } from '../sections-decorator'; import { SectionDataObject } from '../models/section-data.model'; import { SubmissionObjectEntry } from '../../objects/submission-objects.reducer'; -import { AlertType } from '../../../shared/alert/aletr-type'; +import { AlertType } from '../../../shared/alert/alert-type'; import { RemoteData } from '../../../core/data/remote-data'; import { Group } from '../../../core/eperson/models/group.model'; import { SectionsService } from '../sections.service'; -- GitLab From a7ed053d152df6ec45df02fd458928b2e39bb0b0 Mon Sep 17 00:00:00 2001 From: Kim Shepherd <kim@shepherd.nz> Date: Thu, 29 Jun 2023 16:09:54 +0200 Subject: [PATCH 024/183] catch and handle unsuccessful "convert rels to items" responses (cherry picked from commit a35b7d8356e17f4cdd8568389695b1685b27eb84) --- .../shared/item-relationships-utils.ts | 41 +++++++++++++------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/src/app/item-page/simple/item-types/shared/item-relationships-utils.ts b/src/app/item-page/simple/item-types/shared/item-relationships-utils.ts index b4c3da2cdc..0c4e82178f 100644 --- a/src/app/item-page/simple/item-types/shared/item-relationships-utils.ts +++ b/src/app/item-page/simple/item-types/shared/item-relationships-utils.ts @@ -5,8 +5,7 @@ import { RemoteData } from '../../../../core/data/remote-data'; import { Relationship } from '../../../../core/shared/item-relationships/relationship.model'; import { Item } from '../../../../core/shared/item.model'; import { - getFirstSucceededRemoteDataPayload, - getFirstSucceededRemoteData + getFirstCompletedRemoteData } from '../../../../core/shared/operators'; import { hasValue } from '../../../../shared/empty.util'; import { InjectionToken } from '@angular/core'; @@ -77,24 +76,42 @@ export const relationsToItems = (thisId: string) => * @param {string} thisId The item's id of which the relations belong to * @returns {(source: Observable<Relationship[]>) => Observable<Item[]>} */ -export const paginatedRelationsToItems = (thisId: string) => - (source: Observable<RemoteData<PaginatedList<Relationship>>>): Observable<RemoteData<PaginatedList<Item>>> => +export const paginatedRelationsToItems = (thisId: string) => (source: Observable<RemoteData<PaginatedList<Relationship>>>): Observable<RemoteData<PaginatedList<Item>>> => source.pipe( - getFirstSucceededRemoteData(), + getFirstCompletedRemoteData(), switchMap((relationshipsRD: RemoteData<PaginatedList<Relationship>>) => { return observableCombineLatest( relationshipsRD.payload.page.map((rel: Relationship) => observableCombineLatest([ - rel.leftItem.pipe(getFirstSucceededRemoteDataPayload()), - rel.rightItem.pipe(getFirstSucceededRemoteDataPayload())] + rel.leftItem.pipe( + getFirstCompletedRemoteData(), + map((rd: RemoteData<Item>) => { + if (rd.hasSucceeded) { + return rd.payload; + } else { + return null; + } + }) + ), + rel.rightItem.pipe( + getFirstCompletedRemoteData(), + map((rd: RemoteData<Item>) => { + if (rd.hasSucceeded) { + return rd.payload; + } else { + return null; + } + }) + ), + ] ) - )).pipe( + ) + ).pipe( map((arr) => - arr - .map(([leftItem, rightItem]) => { - if (leftItem.id === thisId) { + arr.map(([leftItem, rightItem]) => { + if (hasValue(leftItem) && leftItem.id === thisId) { return rightItem; - } else if (rightItem.id === thisId) { + } else if (hasValue(rightItem) && rightItem.id === thisId) { return leftItem; } }) -- GitLab From f746d45ac153f64c27a5e080083f11137dd1dccf Mon Sep 17 00:00:00 2001 From: milanmajchrak <milan.majchrak@dataquest.sk> Date: Thu, 20 Jul 2023 12:46:30 +0200 Subject: [PATCH 025/183] Show error message from the error response (cherry picked from commit e6546b4499fe87a9308dab7ff2c6767f9f256c67) --- src/app/profile-page/profile-page.component.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/app/profile-page/profile-page.component.ts b/src/app/profile-page/profile-page.component.ts index 343314999b..d49bdedb83 100644 --- a/src/app/profile-page/profile-page.component.ts +++ b/src/app/profile-page/profile-page.component.ts @@ -161,7 +161,7 @@ export class ProfilePageComponent implements OnInit { } else { this.notificationsService.error( this.translate.instant(this.PASSWORD_NOTIFICATIONS_PREFIX + 'error.title'), - this.translate.instant(this.PASSWORD_NOTIFICATIONS_PREFIX + 'error.change-failed') + this.getPasswordErrorMessage(response) ); } }); @@ -199,4 +199,18 @@ export class ProfilePageComponent implements OnInit { return this.isResearcherProfileEnabled$.asObservable(); } + /** + * Returns an error message from a password validation request with a specific reason or + * a default message without specific reason. + * @param response from the validation password patch request. + */ + getPasswordErrorMessage(response) { + if (response.hasFailed && isNotEmpty(response.errorMessage)) { + // Response has a specific error message. Show this message in the error notification. + return this.translate.instant(response.errorMessage); + } + // Show default error message notification. + return this.translate.instant(this.PASSWORD_NOTIFICATIONS_PREFIX + 'error.change-failed'); + } + } -- GitLab From c3b9a1d5c6ed98fadb53b95eb5ca4de7174bca54 Mon Sep 17 00:00:00 2001 From: Mirko Scherf <mscherf@uni-mainz.de> Date: Fri, 21 Jul 2023 10:43:13 +0200 Subject: [PATCH 026/183] fix(i18n): add and update missing status strings New strings for status filter entries: search.filters.namedresourcetype.* Refactored strings introduced with #2068 (refactor badged), e.g. mydspace.status.archived -> mydspace.status.mydspaceArchived --- src/assets/i18n/ar.json5 | 20 ++++++++++---------- src/assets/i18n/bn.json5 | 20 ++++++++++---------- src/assets/i18n/ca.json5 | 20 ++++++++++---------- src/assets/i18n/cs.json5 | 20 ++++++++++---------- src/assets/i18n/de.json5 | 35 +++++++++++++++++++++++++---------- src/assets/i18n/el.json5 | 10 +++++----- src/assets/i18n/en.json5 | 10 ++++++++++ src/assets/i18n/es.json5 | 20 ++++++++++---------- src/assets/i18n/fr.json5 | 20 ++++++++++---------- src/assets/i18n/gd.json5 | 20 ++++++++++---------- src/assets/i18n/hi.json5 | 10 +++++----- src/assets/i18n/hu.json5 | 20 ++++++++++---------- src/assets/i18n/it.json5 | 20 ++++++++++---------- src/assets/i18n/ja.json5 | 20 ++++++++++---------- src/assets/i18n/kk.json5 | 20 ++++++++++---------- src/assets/i18n/lv.json5 | 20 ++++++++++---------- src/assets/i18n/nl.json5 | 20 ++++++++++---------- src/assets/i18n/pl.json5 | 10 +++++----- src/assets/i18n/pt-BR.json5 | 20 ++++++++++---------- src/assets/i18n/pt-PT.json5 | 20 ++++++++++---------- src/assets/i18n/sv.json5 | 20 ++++++++++---------- src/assets/i18n/sw.json5 | 20 ++++++++++---------- src/assets/i18n/tr.json5 | 20 ++++++++++---------- src/assets/i18n/uk.json5 | 20 ++++++++++---------- src/assets/i18n/vi.json5 | 10 +++++----- 25 files changed, 245 insertions(+), 220 deletions(-) diff --git a/src/assets/i18n/ar.json5 b/src/assets/i18n/ar.json5 index 70f5fdadb1..3069104dd9 100644 --- a/src/assets/i18n/ar.json5 +++ b/src/assets/i18n/ar.json5 @@ -4276,25 +4276,25 @@ // TODO New key - Add a translation "mydspace.show.workspace": "Your Submissions", - // "mydspace.status.archived": "Archived", + // "mydspace.status.mydspaceArchived": "Archived", // TODO New key - Add a translation - "mydspace.status.archived": "Archived", + "mydspace.status.mydspaceArchived": "Archived", - // "mydspace.status.validation": "Validation", + // "mydspace.status.mydspaceValidation": "Validation", // TODO New key - Add a translation - "mydspace.status.validation": "Validation", + "mydspace.status.mydspaceValidation": "Validation", - // "mydspace.status.waiting-for-controller": "Waiting for controller", + // "mydspace.status.mydspaceWaitingController": "Waiting for controller", // TODO New key - Add a translation - "mydspace.status.waiting-for-controller": "Waiting for controller", + "mydspace.status.mydspaceWaitingController": "Waiting for controller", - // "mydspace.status.workflow": "Workflow", + // "mydspace.status.mydspaceWorkflow": "Workflow", // TODO New key - Add a translation - "mydspace.status.workflow": "Workflow", + "mydspace.status.mydspaceWorkflow": "Workflow", - // "mydspace.status.workspace": "Workspace", + // "mydspace.status.mydspaceWorkspace": "Workspace", // TODO New key - Add a translation - "mydspace.status.workspace": "Workspace", + "mydspace.status.mydspaceWorkspace": "Workspace", // "mydspace.title": "MyDSpace", // TODO New key - Add a translation diff --git a/src/assets/i18n/bn.json5 b/src/assets/i18n/bn.json5 index cc05d12828..c70cc6f459 100644 --- a/src/assets/i18n/bn.json5 +++ b/src/assets/i18n/bn.json5 @@ -3880,20 +3880,20 @@ // "mydspace.show.workspace": "Your Submissions", "mydspace.show.workspace": "আপনার জমাগà§à¦²à§‹", - // "mydspace.status.archived": "Archived", - "mydspace.status.archived": "সংরকà§à¦·à¦£à¦¾à¦—ারà¦à§à¦•à§à¦¤", + // "mydspace.status.mydspaceArchived": "Archived", + "mydspace.status.mydspaceArchived": "সংরকà§à¦·à¦£à¦¾à¦—ারà¦à§à¦•à§à¦¤", - // "mydspace.status.validation": "Validation", - "mydspace.status.validation": "বৈধতা", + // "mydspace.status.mydspaceValidation": "Validation", + "mydspace.status.mydspaceValidation": "বৈধতা", - // "mydspace.status.waiting-for-controller": "Waiting for controller", - "mydspace.status.waiting-for-controller": "নিয়ামক জনà§à¦¯ অপেকà§à¦·à¦¾ করছে", + // "mydspace.status.mydspaceWaitingController": "Waiting for controller", + "mydspace.status.mydspaceWaitingController": "নিয়ামক জনà§à¦¯ অপেকà§à¦·à¦¾ করছে", - // "mydspace.status.workflow": "Workflow", - "mydspace.status.workflow": "ওয়ারà§à¦•à¦«à§à¦²à§‹", + // "mydspace.status.mydspaceWorkflow": "Workflow", + "mydspace.status.mydspaceWorkflow": "ওয়ারà§à¦•à¦«à§à¦²à§‹", - // "mydspace.status.workspace": "Workspace", - "mydspace.status.workspace": "করà§à¦®à¦•à§à¦·à§‡à¦¤à§à¦°", + // "mydspace.status.mydspaceWorkspace": "Workspace", + "mydspace.status.mydspaceWorkspace": "করà§à¦®à¦•à§à¦·à§‡à¦¤à§à¦°", // "mydspace.title": "MyDSpace", "mydspace.title": "আমার ডিসà§à¦ªà§‡à¦¸", diff --git a/src/assets/i18n/ca.json5 b/src/assets/i18n/ca.json5 index 34279548bb..ad8fe49424 100644 --- a/src/assets/i18n/ca.json5 +++ b/src/assets/i18n/ca.json5 @@ -4190,20 +4190,20 @@ // "mydspace.show.workspace": "Your Submissions", "mydspace.show.workspace": "Els seus enviaments", - // "mydspace.status.archived": "Archived", - "mydspace.status.archived": "Arxivat", + // "mydspace.status.mydspaceArchived": "Archived", + "mydspace.status.mydspaceArchived": "Arxivat", - // "mydspace.status.validation": "Validation", - "mydspace.status.validation": "Validació", + // "mydspace.status.mydspaceValidation": "Validation", + "mydspace.status.mydspaceValidation": "Validació", - // "mydspace.status.waiting-for-controller": "Waiting for controller", - "mydspace.status.waiting-for-controller": "Esperant el controlador", + // "mydspace.status.mydspaceWaitingController": "Waiting for controller", + "mydspace.status.mydspaceWaitingController": "Esperant el controlador", - // "mydspace.status.workflow": "Workflow", - "mydspace.status.workflow": "Flux de treball", + // "mydspace.status.mydspaceWorkflow": "Workflow", + "mydspace.status.mydspaceWorkflow": "Flux de treball", - // "mydspace.status.workspace": "Workspace", - "mydspace.status.workspace": "Espai de treball", + // "mydspace.status.mydspaceWorkspace": "Workspace", + "mydspace.status.mydspaceWorkspace": "Espai de treball", // "mydspace.title": "MyDSpace", "mydspace.title": "El meu DSpace", diff --git a/src/assets/i18n/cs.json5 b/src/assets/i18n/cs.json5 index f3155e9f57..7f9583a50e 100644 --- a/src/assets/i18n/cs.json5 +++ b/src/assets/i18n/cs.json5 @@ -4187,25 +4187,25 @@ // TODO New key - Add a translation "mydspace.show.workspace": "Your Submissions", - // "mydspace.status.archived": "Archived", + // "mydspace.status.mydspaceArchived": "Archived", // TODO New key - Add a translation - "mydspace.status.archived": "Archived", + "mydspace.status.mydspaceArchived": "Archived", - // "mydspace.status.validation": "Validation", + // "mydspace.status.mydspaceValidation": "Validation", // TODO New key - Add a translation - "mydspace.status.validation": "Validation", + "mydspace.status.mydspaceValidation": "Validation", - // "mydspace.status.waiting-for-controller": "Waiting for controller", + // "mydspace.status.mydspaceWaitingController": "Waiting for controller", // TODO New key - Add a translation - "mydspace.status.waiting-for-controller": "Waiting for controller", + "mydspace.status.mydspaceWaitingController": "Waiting for controller", - // "mydspace.status.workflow": "Workflow", + // "mydspace.status.mydspaceWorkflow": "Workflow", // TODO New key - Add a translation - "mydspace.status.workflow": "Workflow", + "mydspace.status.mydspaceWorkflow": "Workflow", - // "mydspace.status.workspace": "Workspace", + // "mydspace.status.mydspaceWorkspace": "Workspace", // TODO New key - Add a translation - "mydspace.status.workspace": "Workspace", + "mydspace.status.mydspaceWorkspace": "Workspace", // "mydspace.title": "MyDSpace", // TODO New key - Add a translation diff --git a/src/assets/i18n/de.json5 b/src/assets/i18n/de.json5 index b03dc21e5a..4ebce8012d 100644 --- a/src/assets/i18n/de.json5 +++ b/src/assets/i18n/de.json5 @@ -3484,20 +3484,20 @@ // "mydspace.show.workspace": "Your Submissions", "mydspace.show.workspace": "Ihre Veröffentlichungen", - // "mydspace.status.archived": "Archived", - "mydspace.status.archived": "Archiviert", + // "mydspace.status.mydspaceArchived": "Archived", + "mydspace.status.mydspaceArchived": "Archiviert", - // "mydspace.status.validation": "Validation", - "mydspace.status.validation": "Validierung", + // "mydspace.status.mydspaceValidation": "Validation", + "mydspace.status.mydspaceValidation": "Validierung", - // "mydspace.status.waiting-for-controller": "Waiting for controller", - "mydspace.status.waiting-for-controller": "Warten auf die Ãœberprüfung", + // "mydspace.status.mydspaceWaitingController": "Waiting for controller", + "mydspace.status.mydspaceWaitingController": "Warten auf die Ãœberprüfung", - // "mydspace.status.workflow": "Workflow", - "mydspace.status.workflow": "Geschäftsgang", + // "mydspace.status.mydspaceWorkflow": "Workflow", + "mydspace.status.mydspaceWorkflow": "Geschäftsgang", - // "mydspace.status.workspace": "Workspace", - "mydspace.status.workspace": "Arbeitsbereich", + // "mydspace.status.mydspaceWorkspace": "Workspace", + "mydspace.status.mydspaceWorkspace": "Arbeitsbereich", // "mydspace.title": "MyDSpace", "mydspace.title": "Mein DSpace", @@ -4487,6 +4487,21 @@ // "search.filters.discoverable.false": "Yes", "search.filters.discoverable.false": "Ja", + // "search.filters.namedresourcetype.Archived": "Archived", + "search.filters.namedresourcetype.Archived": "Archiviert", + + // "search.filters.namedresourcetype.Validation": "Validation", + "search.filters.namedresourcetype.Validation": "Validierung", + + // "search.filters.namedresourcetype.Waiting for Controller": "Waiting for Controller", + "search.filters.namedresourcetype.Waiting for Controller": "Warten auf die Ãœberprüfung", + + // "search.filters.namedresourcetype.Workflow": "Workflow", + "search.filters.namedresourcetype.Workflow": "Geschäftsgang", + + // "search.filters.namedresourcetype.Workspace": "Workspace", + "search.filters.namedresourcetype.Workspace": "Arbeitsbereich", + // "search.filters.withdrawn.true": "Yes", "search.filters.withdrawn.true": "Ja", diff --git a/src/assets/i18n/el.json5 b/src/assets/i18n/el.json5 index af8a4fce49..176eadff62 100644 --- a/src/assets/i18n/el.json5 +++ b/src/assets/i18n/el.json5 @@ -1315,11 +1315,11 @@ "mydspace.search-form.placeholder": "Αναζήτηση στο mydspace...", "mydspace.show.workflow": "ΕÏγασίες Ïοής εÏγασιών", "mydspace.show.workspace": "Οι ΥποβολÎÏ‚ σας", - "mydspace.status.archived": "ΑÏχειοθετημÎνα", - "mydspace.status.validation": "ΕπικÏÏωση", - "mydspace.status.waiting-for-controller": "Αναμονή για τον ελεγκτή", - "mydspace.status.workflow": "Ροή εÏγασιών", - "mydspace.status.workspace": "ΧώÏος εÏγασίας", + "mydspace.status.mydspaceArchived": "ΑÏχειοθετημÎνα", + "mydspace.status.mydspaceValidation": "ΕπικÏÏωση", + "mydspace.status.mydspaceWaitingController": "Αναμονή για τον ελεγκτή", + "mydspace.status.mydspaceWorkflow": "Ροή εÏγασιών", + "mydspace.status.mydspaceWorkspace": "ΧώÏος εÏγασίας", "mydspace.title": "MyDSpace", "mydspace.upload.upload-failed": "Σφάλμα κατά τη δημιουÏγία νÎου χώÏου εÏγασίας. ΕπαληθεÏστε το πεÏιεχόμενο που ανεβάσατε Ï€Ïιν δοκιμάσετε ξανά.", "mydspace.upload.upload-failed-manyentries": "Μη επεξεÏγάσιμο αÏχείο. Εντοπίστηκαν πάÏα πολλÎÏ‚ καταχωÏίσεις, αλλά επιτÏÎπεται μόνο μία για αÏχείο.", diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 6c91bae4c1..5c17fc8e42 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -3812,6 +3812,16 @@ "search.filters.discoverable.false": "Yes", + "search.filters.namedresourcetype.Archived": "Archived", + + "search.filters.namedresourcetype.Validation": "Validation", + + "search.filters.namedresourcetype.Waiting for Controller": "Waiting for Controller", + + "search.filters.namedresourcetype.Workflow": "Workflow", + + "search.filters.namedresourcetype.Workspace": "Workspace", + "search.filters.withdrawn.true": "Yes", "search.filters.withdrawn.false": "No", diff --git a/src/assets/i18n/es.json5 b/src/assets/i18n/es.json5 index 7a2f2fa3db..5a0e40af42 100644 --- a/src/assets/i18n/es.json5 +++ b/src/assets/i18n/es.json5 @@ -4560,20 +4560,20 @@ // "mydspace.show.supervisedWorkspace": "Supervised items", "mydspace.show.supervisedWorkspace": "Ãtems supervisados", - // "mydspace.status.archived": "Archived", - "mydspace.status.archived": "Archivado", + // "mydspace.status.mydspaceArchived": "Archived", + "mydspace.status.mydspaceArchived": "Archivado", - // "mydspace.status.validation": "Validation", - "mydspace.status.validation": "Validación", + // "mydspace.status.mydspaceValidation": "Validation", + "mydspace.status.mydspaceValidation": "Validación", - // "mydspace.status.waiting-for-controller": "Waiting for controller", - "mydspace.status.waiting-for-controller": "Esperando al controlador", + // "mydspace.status.mydspaceWaitingController": "Waiting for controller", + "mydspace.status.mydspaceWaitingController": "Esperando al controlador", - // "mydspace.status.workflow": "Workflow", - "mydspace.status.workflow": "Flujo de trabajo", + // "mydspace.status.mydspaceWorkflow": "Workflow", + "mydspace.status.mydspaceWorkflow": "Flujo de trabajo", - // "mydspace.status.workspace": "Workspace", - "mydspace.status.workspace": "Espacio de trabajo", + // "mydspace.status.mydspaceWorkspace": "Workspace", + "mydspace.status.mydspaceWorkspace": "Espacio de trabajo", // "mydspace.title": "MyDSpace", "mydspace.title": "Mi DSpace", diff --git a/src/assets/i18n/fr.json5 b/src/assets/i18n/fr.json5 index 8ee4dc7d22..699ca5cc27 100644 --- a/src/assets/i18n/fr.json5 +++ b/src/assets/i18n/fr.json5 @@ -3822,20 +3822,20 @@ //"mydspace.show.supervisedWorkspace": "Supervised items", "mydspace.show.supervisedWorkspace": "Items supervisés", - // "mydspace.status.archived": "Archived", - "mydspace.status.archived": "Archivés", + // "mydspace.status.mydspaceArchived": "Archived", + "mydspace.status.mydspaceArchived": "Archivés", - // "mydspace.status.validation": "Validation", - "mydspace.status.validation": "En cours de validation", + // "mydspace.status.mydspaceValidation": "Validation", + "mydspace.status.mydspaceValidation": "En cours de validation", - // "mydspace.status.waiting-for-controller": "Waiting for controller", - "mydspace.status.waiting-for-controller": "En attente d'assignation", + // "mydspace.status.mydspaceWaitingController": "Waiting for controller", + "mydspace.status.mydspaceWaitingController": "En attente d'assignation", - // "mydspace.status.workflow": "Workflow", - "mydspace.status.workflow": "En traitement", + // "mydspace.status.mydspaceWorkflow": "Workflow", + "mydspace.status.mydspaceWorkflow": "En traitement", - // "mydspace.status.workspace": "Workspace", - "mydspace.status.workspace": "Dépôts en cours", + // "mydspace.status.mydspaceWorkspace": "Workspace", + "mydspace.status.mydspaceWorkspace": "Dépôts en cours", // "mydspace.title": "MyDSpace", "mydspace.title": "Mon compte DSpace", diff --git a/src/assets/i18n/gd.json5 b/src/assets/i18n/gd.json5 index 6096073d56..55a53bc6f1 100644 --- a/src/assets/i18n/gd.json5 +++ b/src/assets/i18n/gd.json5 @@ -3867,20 +3867,20 @@ // "mydspace.show.workspace": "Your Submissions", "mydspace.show.workspace": "Do Chur-a-steachan", - // "mydspace.status.archived": "Archived", - "mydspace.status.archived": "San Tasglann", + // "mydspace.status.mydspaceArchived": "Archived", + "mydspace.status.mydspaceArchived": "San Tasglann", - // "mydspace.status.validation": "Validation", - "mydspace.status.validation": "Dearbhadh", + // "mydspace.status.mydspaceValidation": "Validation", + "mydspace.status.mydspaceValidation": "Dearbhadh", - // "mydspace.status.waiting-for-controller": "Waiting for controller", - "mydspace.status.waiting-for-controller": "A' feitheamh riaghladair", + // "mydspace.status.mydspaceWaitingController": "Waiting for controller", + "mydspace.status.mydspaceWaitingController": "A' feitheamh riaghladair", - // "mydspace.status.workflow": "Workflow", - "mydspace.status.workflow": "Sruth-obrach", + // "mydspace.status.mydspaceWorkflow": "Workflow", + "mydspace.status.mydspaceWorkflow": "Sruth-obrach", - // "mydspace.status.workspace": "Workspace", - "mydspace.status.workspace": "Raon-obrach", + // "mydspace.status.mydspaceWorkspace": "Workspace", + "mydspace.status.mydspaceWorkspace": "Raon-obrach", // "mydspace.title": "MyDSpace", "mydspace.title": "MoDSpace", diff --git a/src/assets/i18n/hi.json5 b/src/assets/i18n/hi.json5 index 53fc106187..68eb6c1f12 100644 --- a/src/assets/i18n/hi.json5 +++ b/src/assets/i18n/hi.json5 @@ -2677,15 +2677,15 @@ "mydspace.show.workspace": "आपकी पà¥à¤°à¤¸à¥à¤¤à¥à¤¤à¤¿à¤¯à¤¾à¤‚", - "mydspace.status.archived": "संगà¥à¤°à¤¹à¥€à¤¤", + "mydspace.status.mydspaceArchived": "संगà¥à¤°à¤¹à¥€à¤¤", - "mydspace.status.validation": "सतà¥à¤¯à¤¾à¤ªà¤¨", + "mydspace.status.mydspaceValidation": "सतà¥à¤¯à¤¾à¤ªà¤¨", - "mydspace.status.waiting-for-controller": "नियंतà¥à¤°à¤• की पà¥à¤°à¤¤à¥€à¤•à¥à¤·à¤¾ कर रहा है", + "mydspace.status.mydspaceWaitingController": "नियंतà¥à¤°à¤• की पà¥à¤°à¤¤à¥€à¤•à¥à¤·à¤¾ कर रहा है", - "mydspace.status.workflow": "कारà¥à¤¯à¤ªà¥à¤°à¤µà¤¾à¤¹", + "mydspace.status.mydspaceWorkflow": "कारà¥à¤¯à¤ªà¥à¤°à¤µà¤¾à¤¹", - "mydspace.status.workspace": "कारà¥à¤¯à¤¸à¥à¤¥à¤¾à¤¨", + "mydspace.status.mydspaceWorkspace": "कारà¥à¤¯à¤¸à¥à¤¥à¤¾à¤¨", "mydspace.title": "मेरा डीसà¥à¤ªà¥‡à¤¸", diff --git a/src/assets/i18n/hu.json5 b/src/assets/i18n/hu.json5 index 373d73aec5..e1076c7512 100644 --- a/src/assets/i18n/hu.json5 +++ b/src/assets/i18n/hu.json5 @@ -4983,20 +4983,20 @@ // TODO New key - Add a translation "mydspace.show.supervisedWorkspace": "Supervised items", - // "mydspace.status.archived": "Archived", - "mydspace.status.archived": "Tárolva", + // "mydspace.status.mydspaceArchived": "Archived", + "mydspace.status.mydspaceArchived": "Tárolva", - // "mydspace.status.validation": "Validation", - "mydspace.status.validation": "ÉrvényesÃtés", + // "mydspace.status.mydspaceValidation": "Validation", + "mydspace.status.mydspaceValidation": "ÉrvényesÃtés", - // "mydspace.status.waiting-for-controller": "Waiting for controller", - "mydspace.status.waiting-for-controller": "Várakozás a kontrollerre", + // "mydspace.status.mydspaceWaitingController": "Waiting for controller", + "mydspace.status.mydspaceWaitingController": "Várakozás a kontrollerre", - // "mydspace.status.workflow": "Workflow", - "mydspace.status.workflow": "Munkafolyamat", + // "mydspace.status.mydspaceWorkflow": "Workflow", + "mydspace.status.mydspaceWorkflow": "Munkafolyamat", - // "mydspace.status.workspace": "Workspace", - "mydspace.status.workspace": "Munkafelület", + // "mydspace.status.mydspaceWorkspace": "Workspace", + "mydspace.status.mydspaceWorkspace": "Munkafelület", // "mydspace.title": "MyDSpace", "mydspace.title": "MyDSpace", diff --git a/src/assets/i18n/it.json5 b/src/assets/i18n/it.json5 index 4131d0bee6..1a97eca501 100644 --- a/src/assets/i18n/it.json5 +++ b/src/assets/i18n/it.json5 @@ -4813,20 +4813,20 @@ // TODO New key - Add a translation "mydspace.show.supervisedWorkspace": "Supervised items", - // "mydspace.status.archived": "Archived", - "mydspace.status.archived": "Archiviati", + // "mydspace.status.mydspaceArchived": "Archived", + "mydspace.status.mydspaceArchived": "Archiviati", - // "mydspace.status.validation": "Validation", - "mydspace.status.validation": "Convalida", + // "mydspace.status.mydspaceValidation": "Validation", + "mydspace.status.mydspaceValidation": "Convalida", - // "mydspace.status.waiting-for-controller": "Waiting for controller", - "mydspace.status.waiting-for-controller": "In attesa del controllo", + // "mydspace.status.mydspaceWaitingController": "Waiting for controller", + "mydspace.status.mydspaceWaitingController": "In attesa del controllo", - // "mydspace.status.workflow": "Workflow", - "mydspace.status.workflow": "Workflow", + // "mydspace.status.mydspaceWorkflow": "Workflow", + "mydspace.status.mydspaceWorkflow": "Workflow", - // "mydspace.status.workspace": "Workspace", - "mydspace.status.workspace": "Workspace", + // "mydspace.status.mydspaceWorkspace": "Workspace", + "mydspace.status.mydspaceWorkspace": "Workspace", // "mydspace.title": "MyDSpace", "mydspace.title": "MyDSpace", diff --git a/src/assets/i18n/ja.json5 b/src/assets/i18n/ja.json5 index 94dfc9aa98..da2385fd62 100644 --- a/src/assets/i18n/ja.json5 +++ b/src/assets/i18n/ja.json5 @@ -4276,25 +4276,25 @@ // TODO New key - Add a translation "mydspace.show.workspace": "Your Submissions", - // "mydspace.status.archived": "Archived", + // "mydspace.status.mydspaceArchived": "Archived", // TODO New key - Add a translation - "mydspace.status.archived": "Archived", + "mydspace.status.mydspaceArchived": "Archived", - // "mydspace.status.validation": "Validation", + // "mydspace.status.mydspaceValidation": "Validation", // TODO New key - Add a translation - "mydspace.status.validation": "Validation", + "mydspace.status.mydspaceValidation": "Validation", - // "mydspace.status.waiting-for-controller": "Waiting for controller", + // "mydspace.status.mydspaceWaitingController": "Waiting for controller", // TODO New key - Add a translation - "mydspace.status.waiting-for-controller": "Waiting for controller", + "mydspace.status.mydspaceWaitingController": "Waiting for controller", - // "mydspace.status.workflow": "Workflow", + // "mydspace.status.mydspaceWorkflow": "Workflow", // TODO New key - Add a translation - "mydspace.status.workflow": "Workflow", + "mydspace.status.mydspaceWorkflow": "Workflow", - // "mydspace.status.workspace": "Workspace", + // "mydspace.status.mydspaceWorkspace": "Workspace", // TODO New key - Add a translation - "mydspace.status.workspace": "Workspace", + "mydspace.status.mydspaceWorkspace": "Workspace", // "mydspace.title": "MyDSpace", // TODO New key - Add a translation diff --git a/src/assets/i18n/kk.json5 b/src/assets/i18n/kk.json5 index 354eb1104a..d23dc23c47 100644 --- a/src/assets/i18n/kk.json5 +++ b/src/assets/i18n/kk.json5 @@ -4139,20 +4139,20 @@ // "mydspace.show.workspace": "Your Submissions", "mydspace.show.workspace": "Сіздің өтініштеріңіз", - // "mydspace.status.archived": "Archived", - "mydspace.status.archived": "Мұрағатталған", + // "mydspace.status.mydspaceArchived": "Archived", + "mydspace.status.mydspaceArchived": "Мұрағатталған", - // "mydspace.status.validation": "Validation", - "mydspace.status.validation": "ВалидациÑ", + // "mydspace.status.mydspaceValidation": "Validation", + "mydspace.status.mydspaceValidation": "ВалидациÑ", - // "mydspace.status.waiting-for-controller": "Waiting for controller", - "mydspace.status.waiting-for-controller": "Контроллерді күтуде", + // "mydspace.status.mydspaceWaitingController": "Waiting for controller", + "mydspace.status.mydspaceWaitingController": "Контроллерді күтуде", - // "mydspace.status.workflow": "Workflow", - "mydspace.status.workflow": "Ð–Ò±Ð¼Ñ‹Ñ Ð±Ð°Ñ€Ñ‹ÑÑ‹", + // "mydspace.status.mydspaceWorkflow": "Workflow", + "mydspace.status.mydspaceWorkflow": "Ð–Ò±Ð¼Ñ‹Ñ Ð±Ð°Ñ€Ñ‹ÑÑ‹", - // "mydspace.status.workspace": "Workspace", - "mydspace.status.workspace": "Ð–Ò±Ð¼Ñ‹Ñ ÐºÐµÒ£Ñ–Ñтігі", + // "mydspace.status.mydspaceWorkspace": "Workspace", + "mydspace.status.mydspaceWorkspace": "Ð–Ò±Ð¼Ñ‹Ñ ÐºÐµÒ£Ñ–Ñтігі", // "mydspace.title": "MyDSpace", "mydspace.title": "MyDSpace", diff --git a/src/assets/i18n/lv.json5 b/src/assets/i18n/lv.json5 index 9b4058a3e6..81e2383a1f 100644 --- a/src/assets/i18n/lv.json5 +++ b/src/assets/i18n/lv.json5 @@ -3492,20 +3492,20 @@ // "mydspace.show.workspace": "Your Submissions", "mydspace.show.workspace": "JÅ«su Iesniegumi", - // "mydspace.status.archived": "Archived", - "mydspace.status.archived": "ArhivÄ“ts", + // "mydspace.status.mydspaceArchived": "Archived", + "mydspace.status.mydspaceArchived": "ArhivÄ“ts", - // "mydspace.status.validation": "Validation", - "mydspace.status.validation": "ValidÄcija", + // "mydspace.status.mydspaceValidation": "Validation", + "mydspace.status.mydspaceValidation": "ValidÄcija", - // "mydspace.status.waiting-for-controller": "Waiting for controller", - "mydspace.status.waiting-for-controller": "Gaida kontrolieri", + // "mydspace.status.mydspaceWaitingController": "Waiting for controller", + "mydspace.status.mydspaceWaitingController": "Gaida kontrolieri", - // "mydspace.status.workflow": "Workflow", - "mydspace.status.workflow": "Darba plÅ«sma", + // "mydspace.status.mydspaceWorkflow": "Workflow", + "mydspace.status.mydspaceWorkflow": "Darba plÅ«sma", - // "mydspace.status.workspace": "Workspace", - "mydspace.status.workspace": "Darbavieta", + // "mydspace.status.mydspaceWorkspace": "Workspace", + "mydspace.status.mydspaceWorkspace": "Darbavieta", // "mydspace.title": "MyDSpace", "mydspace.title": "Mans DSpace", diff --git a/src/assets/i18n/nl.json5 b/src/assets/i18n/nl.json5 index 520a8ca427..280a87b96f 100644 --- a/src/assets/i18n/nl.json5 +++ b/src/assets/i18n/nl.json5 @@ -3764,20 +3764,20 @@ // "mydspace.show.workspace": "Your Submissions", "mydspace.show.workspace": "Uw Submissions", - // "mydspace.status.archived": "Archived", - "mydspace.status.archived": "Opgeslagen", + // "mydspace.status.mydspaceArchived": "Archived", + "mydspace.status.mydspaceArchived": "Opgeslagen", - // "mydspace.status.validation": "Validation", - "mydspace.status.validation": "Validatie", + // "mydspace.status.mydspaceValidation": "Validation", + "mydspace.status.mydspaceValidation": "Validatie", - // "mydspace.status.waiting-for-controller": "Waiting for controller", - "mydspace.status.waiting-for-controller": "Wachten op controlleur", + // "mydspace.status.mydspaceWaitingController": "Waiting for controller", + "mydspace.status.mydspaceWaitingController": "Wachten op controlleur", - // "mydspace.status.workflow": "Workflow", - "mydspace.status.workflow": "Workflow", + // "mydspace.status.mydspaceWorkflow": "Workflow", + "mydspace.status.mydspaceWorkflow": "Workflow", - // "mydspace.status.workspace": "Workspace", - "mydspace.status.workspace": "Workspace", + // "mydspace.status.mydspaceWorkspace": "Workspace", + "mydspace.status.mydspaceWorkspace": "Workspace", // "mydspace.title": "MyDSpace", "mydspace.title": "MyDSpace", diff --git a/src/assets/i18n/pl.json5 b/src/assets/i18n/pl.json5 index d748b94888..3512653705 100644 --- a/src/assets/i18n/pl.json5 +++ b/src/assets/i18n/pl.json5 @@ -1207,11 +1207,11 @@ "mydspace.search-form.placeholder": "Wyszukaj w mydspace...", "mydspace.show.workflow": "Wszystkie zadania", "mydspace.show.workspace": "Twoje zadania", - "mydspace.status.archived": "Zarchiwizowano", - "mydspace.status.validation": "Walidacja", - "mydspace.status.waiting-for-controller": "Oczekiwanie na redaktora", - "mydspace.status.workflow": "Workflow", - "mydspace.status.workspace": "Wersja robocza", + "mydspace.status.mydspaceArchived": "Zarchiwizowano", + "mydspace.status.mydspaceValidation": "Walidacja", + "mydspace.status.mydspaceWaitingController": "Oczekiwanie na redaktora", + "mydspace.status.mydspaceWorkflow": "Workflow", + "mydspace.status.mydspaceWorkspace": "Wersja robocza", "mydspace.title": "Mój DSpace", "mydspace.upload.upload-failed": "BÅ‚ad podczas tworzenia nowej wersji roboczej. Sprawdź poprawność plików i spróbuj ponownie.", "mydspace.upload.upload-failed-manyentries": "Plik jest niemożliwy do przetworzenia. Wykryto wiele wejść, a dopuszczalne jest tylko jedno dla jednego pliku.", diff --git a/src/assets/i18n/pt-BR.json5 b/src/assets/i18n/pt-BR.json5 index 25f1e0fb7c..5d852129bc 100644 --- a/src/assets/i18n/pt-BR.json5 +++ b/src/assets/i18n/pt-BR.json5 @@ -3972,20 +3972,20 @@ // "mydspace.show.workspace": "Your Submissions", "mydspace.show.workspace": "Minhas Submissões", - // "mydspace.status.archived": "Archived", - "mydspace.status.archived": "Arquivado", + // "mydspace.status.mydspaceArchived": "Archived", + "mydspace.status.mydspaceArchived": "Arquivado", - // "mydspace.status.validation": "Validation", - "mydspace.status.validation": "Validação", + // "mydspace.status.mydspaceValidation": "Validation", + "mydspace.status.mydspaceValidation": "Validação", - // "mydspace.status.waiting-for-controller": "Waiting for controller", - "mydspace.status.waiting-for-controller": "Esperando pelo controlador", + // "mydspace.status.mydspaceWaitingController": "Waiting for controller", + "mydspace.status.mydspaceWaitingController": "Esperando pelo controlador", - // "mydspace.status.workflow": "Workflow", - "mydspace.status.workflow": "Fluxo de trabalho", + // "mydspace.status.mydspaceWorkflow": "Workflow", + "mydspace.status.mydspaceWorkflow": "Fluxo de trabalho", - // "mydspace.status.workspace": "Workspace", - "mydspace.status.workspace": "Espaço de trabalho", + // "mydspace.status.mydspaceWorkspace": "Workspace", + "mydspace.status.mydspaceWorkspace": "Espaço de trabalho", // "mydspace.title": "MyDSpace", "mydspace.title": "MeuDSpace", diff --git a/src/assets/i18n/pt-PT.json5 b/src/assets/i18n/pt-PT.json5 index a187ff927c..622f8cc48b 100644 --- a/src/assets/i18n/pt-PT.json5 +++ b/src/assets/i18n/pt-PT.json5 @@ -7713,20 +7713,20 @@ // "browse.metadata.srsc": "Subject Category", "browse.metadata.srsc": "vocabulário controlado (SRSC)", - // "mydspace.status.archived": "Archived", - "mydspace.status.archived": "Depositado", + // "mydspace.status.mydspaceArchived": "Archived", + "mydspace.status.mydspaceArchived": "Depositado", - // "mydspace.status.validation": "Validation", - "mydspace.status.validation": "Em validação", + // "mydspace.status.mydspaceValidation": "Validation", + "mydspace.status.mydspaceValidation": "Em validação", - // "mydspace.status.waiting-for-controller": "Waiting for Controller", - "mydspace.status.waiting-for-controller": "Aguarda validador", + // "mydspace.status.mydspaceWaitingController": "Waiting for Controller", + "mydspace.status.mydspaceWaitingController": "Aguarda validador", - // "mydspace.status.workflow": "Workflow", - "mydspace.status.workflow": "Em fluxo de trabalho", + // "mydspace.status.mydspaceWorkflow": "Workflow", + "mydspace.status.mydspaceWorkflow": "Em fluxo de trabalho", - // "mydspace.status.workspace": "Workspace", - "mydspace.status.workspace": "Depósito por terminar", + // "mydspace.status.mydspaceWorkspace": "Workspace", + "mydspace.status.mydspaceWorkspace": "Depósito por terminar", // "search.filters.namedresourcetype.Archived": "Archived", "search.filters.namedresourcetype.Archived": "Depositado", diff --git a/src/assets/i18n/sv.json5 b/src/assets/i18n/sv.json5 index c988577c92..4e3576ccfc 100644 --- a/src/assets/i18n/sv.json5 +++ b/src/assets/i18n/sv.json5 @@ -3934,20 +3934,20 @@ // "mydspace.show.workspace": "Your Submissions", "mydspace.show.workspace": "Dina registreringar", - // "mydspace.status.archived": "Archived", - "mydspace.status.archived": "I arkivet", + // "mydspace.status.mydspaceArchived": "Archived", + "mydspace.status.mydspaceArchived": "I arkivet", - // "mydspace.status.validation": "Validation", - "mydspace.status.validation": "Validering", + // "mydspace.status.mydspaceValidation": "Validation", + "mydspace.status.mydspaceValidation": "Validering", - // "mydspace.status.waiting-for-controller": "Waiting for controller", - "mydspace.status.waiting-for-controller": "Väntar pÃ¥ kontrollant", + // "mydspace.status.mydspaceWaitingController": "Waiting for controller", + "mydspace.status.mydspaceWaitingController": "Väntar pÃ¥ kontrollant", - // "mydspace.status.workflow": "Workflow", - "mydspace.status.workflow": "Arbetsflöde", + // "mydspace.status.mydspaceWorkflow": "Workflow", + "mydspace.status.mydspaceWorkflow": "Arbetsflöde", - // "mydspace.status.workspace": "Workspace", - "mydspace.status.workspace": "I arbetsflödet", + // "mydspace.status.mydspaceWorkspace": "Workspace", + "mydspace.status.mydspaceWorkspace": "I arbetsflödet", // "mydspace.title": "MyDSpace", "mydspace.title": "Mitt DSpace", diff --git a/src/assets/i18n/sw.json5 b/src/assets/i18n/sw.json5 index 47253dea9f..a470ee4b58 100644 --- a/src/assets/i18n/sw.json5 +++ b/src/assets/i18n/sw.json5 @@ -4276,25 +4276,25 @@ // TODO New key - Add a translation "mydspace.show.workspace": "Your Submissions", - // "mydspace.status.archived": "Archived", + // "mydspace.status.mydspaceArchived": "Archived", // TODO New key - Add a translation - "mydspace.status.archived": "Archived", + "mydspace.status.mydspaceArchived": "Archived", - // "mydspace.status.validation": "Validation", + // "mydspace.status.mydspaceValidation": "Validation", // TODO New key - Add a translation - "mydspace.status.validation": "Validation", + "mydspace.status.mydspaceValidation": "Validation", - // "mydspace.status.waiting-for-controller": "Waiting for controller", + // "mydspace.status.mydspaceWaitingController": "Waiting for controller", // TODO New key - Add a translation - "mydspace.status.waiting-for-controller": "Waiting for controller", + "mydspace.status.mydspaceWaitingController": "Waiting for controller", - // "mydspace.status.workflow": "Workflow", + // "mydspace.status.mydspaceWorkflow": "Workflow", // TODO New key - Add a translation - "mydspace.status.workflow": "Workflow", + "mydspace.status.mydspaceWorkflow": "Workflow", - // "mydspace.status.workspace": "Workspace", + // "mydspace.status.mydspaceWorkspace": "Workspace", // TODO New key - Add a translation - "mydspace.status.workspace": "Workspace", + "mydspace.status.mydspaceWorkspace": "Workspace", // "mydspace.title": "MyDSpace", // TODO New key - Add a translation diff --git a/src/assets/i18n/tr.json5 b/src/assets/i18n/tr.json5 index e9869e0019..153eaa1281 100644 --- a/src/assets/i18n/tr.json5 +++ b/src/assets/i18n/tr.json5 @@ -3257,20 +3257,20 @@ // "mydspace.show.workspace": "Your Submissions", "mydspace.show.workspace": "Gönderimleriniz", - // "mydspace.status.archived": "Archived", - "mydspace.status.archived": "ArÅŸivlendi", + // "mydspace.status.mydspaceArchived": "Archived", + "mydspace.status.mydspaceArchived": "ArÅŸivlendi", - // "mydspace.status.validation": "Validation", - "mydspace.status.validation": "DoÄŸrulama", + // "mydspace.status.mydspaceValidation": "Validation", + "mydspace.status.mydspaceValidation": "DoÄŸrulama", - // "mydspace.status.waiting-for-controller": "Waiting for controller", - "mydspace.status.waiting-for-controller": "Kontrolör bekleniyor", + // "mydspace.status.mydspaceWaitingController": "Waiting for controller", + "mydspace.status.mydspaceWaitingController": "Kontrolör bekleniyor", - // "mydspace.status.workflow": "Workflow", - "mydspace.status.workflow": "Ä°ÅŸ akışı", + // "mydspace.status.mydspaceWorkflow": "Workflow", + "mydspace.status.mydspaceWorkflow": "Ä°ÅŸ akışı", - // "mydspace.status.workspace": "Workspace", - "mydspace.status.workspace": "Çalışma alanı", + // "mydspace.status.mydspaceWorkspace": "Workspace", + "mydspace.status.mydspaceWorkspace": "Çalışma alanı", // "mydspace.title": "MyDSpace", "mydspace.title": "MyDSpace", diff --git a/src/assets/i18n/uk.json5 b/src/assets/i18n/uk.json5 index 5cbb480179..7df55fa236 100644 --- a/src/assets/i18n/uk.json5 +++ b/src/assets/i18n/uk.json5 @@ -3383,20 +3383,20 @@ // "mydspace.show.workspace": "Your Submissions", "mydspace.show.workspace": "Ваші надіÑлані документи ", - // "mydspace.status.archived": "Archived", - "mydspace.status.archived": "Заархівовані", + // "mydspace.status.mydspaceArchived": "Archived", + "mydspace.status.mydspaceArchived": "Заархівовані", - // "mydspace.status.validation": "Validation", - "mydspace.status.validation": "Перевірка", + // "mydspace.status.mydspaceValidation": "Validation", + "mydspace.status.mydspaceValidation": "Перевірка", - // "mydspace.status.waiting-for-controller": "Waiting for controller", - "mydspace.status.waiting-for-controller": "Чекаємо контролера", + // "mydspace.status.mydspaceWaitingController": "Waiting for controller", + "mydspace.status.mydspaceWaitingController": "Чекаємо контролера", - // "mydspace.status.workflow": "Workflow", - "mydspace.status.workflow": "Робочий процеÑ", + // "mydspace.status.mydspaceWorkflow": "Workflow", + "mydspace.status.mydspaceWorkflow": "Робочий процеÑ", - // "mydspace.status.workspace": "Workspace", - "mydspace.status.workspace": "Робоче Ñередовище", + // "mydspace.status.mydspaceWorkspace": "Workspace", + "mydspace.status.mydspaceWorkspace": "Робоче Ñередовище", // "mydspace.title": "MyDSpace", "mydspace.title": "Моє Ñередовище", diff --git a/src/assets/i18n/vi.json5 b/src/assets/i18n/vi.json5 index 7627818978..f254df34fe 100644 --- a/src/assets/i18n/vi.json5 +++ b/src/assets/i18n/vi.json5 @@ -1449,11 +1449,11 @@ "mydspace.search-form.placeholder": "Tìm kiếm trong trang cá nhân của tôi...", "mydspace.show.workflow": "Tất cả nhiệm vụ", "mydspace.show.workspace": "Tà i liệu của tôi", - "mydspace.status.archived": "Äã lÆ°u trữ", - "mydspace.status.validation": "Äang kiểm tra", - "mydspace.status.waiting-for-controller": "Äợi nháºn nhiệm vụ", - "mydspace.status.workflow": "Äang kiểm duyệt", - "mydspace.status.workspace": "Äang biên mục", + "mydspace.status.mydspaceArchived": "Äã lÆ°u trữ", + "mydspace.status.mydspaceValidation": "Äang kiểm tra", + "mydspace.status.mydspaceWaitingController": "Äợi nháºn nhiệm vụ", + "mydspace.status.mydspaceWorkflow": "Äang kiểm duyệt", + "mydspace.status.mydspaceWorkspace": "Äang biên mục", "mydspace.title": "Trang cá nhân", "mydspace.upload.upload-failed": "Có lá»—i xảy ra khi tạo tà i liệu má»›i. Vui lòng xác minh ná»™i dung đã tải lên trÆ°á»›c khi thá» lại.", "mydspace.upload.upload-failed-manyentries": "Không thể xá» lý tệp tin. Có quá nhiá»u mục trong khi hệ thống chỉ cho phép má»™t mục trong tệp tin.", -- GitLab From cfcf93ecf8bee2a22b1b0d3ddc791d092f27ef94 Mon Sep 17 00:00:00 2001 From: Kristof De Langhe <kristof.delanghe@atmire.com> Date: Mon, 17 Jul 2023 15:08:54 +0200 Subject: [PATCH 027/183] 104126: ProcessDetailComponent test improvement --- .../detail/process-detail.component.spec.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/app/process-page/detail/process-detail.component.spec.ts b/src/app/process-page/detail/process-detail.component.spec.ts index 9552f9a092..9a0d89a882 100644 --- a/src/app/process-page/detail/process-detail.component.spec.ts +++ b/src/app/process-page/detail/process-detail.component.spec.ts @@ -147,7 +147,7 @@ describe('ProcessDetailComponent', () => { providers: [ { provide: ActivatedRoute, - useValue: { data: observableOf({ process: createSuccessfulRemoteDataObject(process) }) } + useValue: { data: observableOf({ process: createSuccessfulRemoteDataObject(process) }), snapshot: { params: { id: 1 } } }, }, { provide: ProcessDataService, useValue: processService }, { provide: BitstreamDataService, useValue: bitstreamDataService }, @@ -310,10 +310,11 @@ describe('ProcessDetailComponent', () => { }); it('should call refresh method every 5 seconds, until process is completed', fakeAsync(() => { - spyOn(component, 'refresh'); - spyOn(component, 'stopRefreshTimer'); + spyOn(component, 'refresh').and.callThrough(); + spyOn(component, 'stopRefreshTimer').and.callThrough(); - process.processStatus = ProcessStatus.COMPLETED; + // start off with a running process in order for the refresh counter starts counting up + process.processStatus = ProcessStatus.RUNNING; // set findbyId to return a completed process (processService.findById as jasmine.Spy).and.returnValue(observableOf(createSuccessfulRemoteDataObject(process))); @@ -336,6 +337,10 @@ describe('ProcessDetailComponent', () => { tick(1001); // 1 second + 1 ms by the setTimeout expect(component.refreshCounter$.value).toBe(0); // 1 - 1 + // set the process to completed right before the counter checks the process + process.processStatus = ProcessStatus.COMPLETED; + (processService.findById as jasmine.Spy).and.returnValue(observableOf(createSuccessfulRemoteDataObject(process))); + tick(1000); // 1 second expect(component.refresh).toHaveBeenCalledTimes(1); -- GitLab From bbb50f2858f9c0fc6b6cd9ddf15ed54c7dc10e30 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Aug 2023 21:28:22 +0000 Subject: [PATCH 028/183] Bump word-wrap from 1.2.3 to 1.2.5 Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.5. - [Release notes](https://github.com/jonschlinkert/word-wrap/releases) - [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.5) --- updated-dependencies: - dependency-name: word-wrap dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> (cherry picked from commit 2fec33e70af5de3a2533f4ff33aabaff4aae03fc) --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 21de68a480..e53a070d16 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11743,9 +11743,9 @@ wildcard@^2.0.0: integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== word-wrap@^1.2.3, word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== wrap-ansi@^6.2.0: version "6.2.0" -- GitLab From 2fd53c7ad21382fa822ef92343f90dd8ae5a1da7 Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Tue, 22 Aug 2023 16:32:55 -0500 Subject: [PATCH 029/183] Replace mentions of demo7.dspace.org and api7.dspace.org with demo or sandbox --- README.md | 6 +++--- config/config.example.yml | 2 +- config/config.yml | 2 +- docker/README.md | 4 ++-- docker/docker-compose-dist.yml | 2 +- docs/Configuration.md | 4 ++-- src/app/core/services/browser-hard-redirect.service.ts | 4 ++-- src/app/core/services/hard-redirect.service.ts | 4 ++-- src/app/core/services/server-hard-redirect.service.ts | 4 ++-- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 689c64a292..ebc24f8b91 100644 --- a/README.md +++ b/README.md @@ -157,8 +157,8 @@ DSPACE_UI_SSL => DSPACE_SSL The same settings can also be overwritten by setting system environment variables instead, E.g.: ```bash -export DSPACE_HOST=api7.dspace.org -export DSPACE_UI_PORT=4200 +export DSPACE_HOST=demo.dspace.org +export DSPACE_UI_PORT=4000 ``` The priority works as follows: **environment variable** overrides **variable in `.env` file** overrides external config set by `DSPACE_APP_CONFIG_PATH` overrides **`config.(prod or dev).yml`** @@ -288,7 +288,7 @@ E2E tests (aka integration tests) use [Cypress.io](https://www.cypress.io/). Con The test files can be found in the `./cypress/integration/` folder. Before you can run e2e tests, two things are REQUIRED: -1. You MUST be running the DSpace backend (i.e. REST API) locally. The e2e tests will *NOT* succeed if run against our demo REST API (https://api7.dspace.org/server/), as that server is uncontrolled and may have content added/removed at any time. +1. You MUST be running the DSpace backend (i.e. REST API) locally. The e2e tests will *NOT* succeed if run against our demo/sandbox REST API (https://demo.dspace.org/server/ or https://sandbox.dspace.org/server/), as those sites may have content added/removed at any time. * After starting up your backend on localhost, make sure either your `config.prod.yml` or `config.dev.yml` has its `rest` settings defined to use that localhost backend. * If you'd prefer, you may instead use environment variables as described at [Configuring](#configuring). For example: ``` diff --git a/config/config.example.yml b/config/config.example.yml index ea38303fa3..b7ea190c55 100644 --- a/config/config.example.yml +++ b/config/config.example.yml @@ -22,7 +22,7 @@ ui: # 'synced' with the 'dspace.server.url' setting in your backend's local.cfg. rest: ssl: true - host: api7.dspace.org + host: sandbox.dspace.org port: 443 # NOTE: Space is capitalized because 'namespace' is a reserved string in TypeScript nameSpace: /server diff --git a/config/config.yml b/config/config.yml index b5eecd112f..109db60ca9 100644 --- a/config/config.yml +++ b/config/config.yml @@ -1,5 +1,5 @@ rest: ssl: true - host: api7.dspace.org + host: sandbox.dspace.org port: 443 nameSpace: /server diff --git a/docker/README.md b/docker/README.md index 42deb793f9..37d071a86f 100644 --- a/docker/README.md +++ b/docker/README.md @@ -101,8 +101,8 @@ and the backend at http://localhost:8080/server/ ## Run DSpace Angular dist build with DSpace Demo site backend -This allows you to run the Angular UI in *production* mode, pointing it at the demo backend -(https://api7.dspace.org/server/). +This allows you to run the Angular UI in *production* mode, pointing it at the demo or sandbox backend +(https://demo.dspace.org/server/ or https://sandbox.dspace.org/server/). ``` docker-compose -f docker/docker-compose-dist.yml pull diff --git a/docker/docker-compose-dist.yml b/docker/docker-compose-dist.yml index 1c75539da9..3d57174b13 100644 --- a/docker/docker-compose-dist.yml +++ b/docker/docker-compose-dist.yml @@ -24,7 +24,7 @@ services: # This is because Server Side Rendering (SSR) currently requires a public URL, # see this bug: https://github.com/DSpace/dspace-angular/issues/1485 DSPACE_REST_SSL: 'true' - DSPACE_REST_HOST: api7.dspace.org + DSPACE_REST_HOST: sandbox.dspace.org DSPACE_REST_PORT: 443 DSPACE_REST_NAMESPACE: /server image: dspace/dspace-angular:dspace-7_x-dist diff --git a/docs/Configuration.md b/docs/Configuration.md index 62fa444cc0..01fd83c94d 100644 --- a/docs/Configuration.md +++ b/docs/Configuration.md @@ -48,7 +48,7 @@ dspace-angular connects to your DSpace installation by using its REST endpoint. ```yaml rest: ssl: true - host: api7.dspace.org + host: demo.dspace.org port: 443 nameSpace: /server } @@ -57,7 +57,7 @@ rest: Alternately you can set the following environment variables. If any of these are set, it will override all configuration files: ``` DSPACE_REST_SSL=true - DSPACE_REST_HOST=api7.dspace.org + DSPACE_REST_HOST=demo.dspace.org DSPACE_REST_PORT=443 DSPACE_REST_NAMESPACE=/server ``` diff --git a/src/app/core/services/browser-hard-redirect.service.ts b/src/app/core/services/browser-hard-redirect.service.ts index 4ef9548899..827e83f0b7 100644 --- a/src/app/core/services/browser-hard-redirect.service.ts +++ b/src/app/core/services/browser-hard-redirect.service.ts @@ -38,8 +38,8 @@ export class BrowserHardRedirectService extends HardRedirectService { /** * Get the origin of the current URL * i.e. <scheme> "://" <hostname> [ ":" <port> ] - * e.g. if the URL is https://demo7.dspace.org/search?query=test, - * the origin would be https://demo7.dspace.org + * e.g. if the URL is https://demo.dspace.org/search?query=test, + * the origin would be https://demo.dspace.org */ getCurrentOrigin(): string { return this.location.origin; diff --git a/src/app/core/services/hard-redirect.service.ts b/src/app/core/services/hard-redirect.service.ts index 826c7e4fa9..e6104cefb9 100644 --- a/src/app/core/services/hard-redirect.service.ts +++ b/src/app/core/services/hard-redirect.service.ts @@ -25,8 +25,8 @@ export abstract class HardRedirectService { /** * Get the origin of the current URL * i.e. <scheme> "://" <hostname> [ ":" <port> ] - * e.g. if the URL is https://demo7.dspace.org/search?query=test, - * the origin would be https://demo7.dspace.org + * e.g. if the URL is https://demo.dspace.org/search?query=test, + * the origin would be https://demo.dspace.org */ abstract getCurrentOrigin(): string; } diff --git a/src/app/core/services/server-hard-redirect.service.ts b/src/app/core/services/server-hard-redirect.service.ts index 8c45cc864b..d71318d7b8 100644 --- a/src/app/core/services/server-hard-redirect.service.ts +++ b/src/app/core/services/server-hard-redirect.service.ts @@ -69,8 +69,8 @@ export class ServerHardRedirectService extends HardRedirectService { /** * Get the origin of the current URL * i.e. <scheme> "://" <hostname> [ ":" <port> ] - * e.g. if the URL is https://demo7.dspace.org/search?query=test, - * the origin would be https://demo7.dspace.org + * e.g. if the URL is https://demo.dspace.org/search?query=test, + * the origin would be https://demo.dspace.org */ getCurrentOrigin(): string { return this.req.protocol + '://' + this.req.headers.host; -- GitLab From 5853e49bd05eba84141d2bc1aa3f4ff94fabdf04 Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Tue, 22 Aug 2023 16:44:10 -0500 Subject: [PATCH 030/183] Update default configs to use https://demo.dspace.org/server/ --- config/config.example.yml | 2 +- config/config.yml | 2 +- docker/docker-compose-dist.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config/config.example.yml b/config/config.example.yml index b7ea190c55..7e61155916 100644 --- a/config/config.example.yml +++ b/config/config.example.yml @@ -22,7 +22,7 @@ ui: # 'synced' with the 'dspace.server.url' setting in your backend's local.cfg. rest: ssl: true - host: sandbox.dspace.org + host: demo.dspace.org port: 443 # NOTE: Space is capitalized because 'namespace' is a reserved string in TypeScript nameSpace: /server diff --git a/config/config.yml b/config/config.yml index 109db60ca9..dcf5389378 100644 --- a/config/config.yml +++ b/config/config.yml @@ -1,5 +1,5 @@ rest: ssl: true - host: sandbox.dspace.org + host: demo.dspace.org port: 443 nameSpace: /server diff --git a/docker/docker-compose-dist.yml b/docker/docker-compose-dist.yml index 3d57174b13..00225e8052 100644 --- a/docker/docker-compose-dist.yml +++ b/docker/docker-compose-dist.yml @@ -24,7 +24,7 @@ services: # This is because Server Side Rendering (SSR) currently requires a public URL, # see this bug: https://github.com/DSpace/dspace-angular/issues/1485 DSPACE_REST_SSL: 'true' - DSPACE_REST_HOST: sandbox.dspace.org + DSPACE_REST_HOST: demo.dspace.org DSPACE_REST_PORT: 443 DSPACE_REST_NAMESPACE: /server image: dspace/dspace-angular:dspace-7_x-dist -- GitLab From 36868c06f0fb5fd66c21a5a7d39c1f45928afe55 Mon Sep 17 00:00:00 2001 From: Hardy Pottinger <hardy.pottinger@gmail.com> Date: Tue, 15 Aug 2023 10:16:50 -0500 Subject: [PATCH 031/183] 2437 Correct and clarify commented-out code in several custom components - Correct the path in commented-out code in the custom theme's components - Clarify that the workflow-item-sen-back.component.scss file is a stub - It has no corresponding SCSS file in the base theme (cherry picked from commit 0906234a293a3dbe9057ef13cc4c5b690b1cf25b) --- src/themes/custom/app/footer/footer.component.ts | 4 ++-- .../header-nav-wrapper/header-navbar-wrapper.component.ts | 4 ++-- .../app/shared/auth-nav-menu/auth-nav-menu.component.ts | 4 ++-- .../custom/app/shared/object-list/object-list.component.ts | 2 +- .../workflow-item-send-back.component.ts | 5 ++++- 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/themes/custom/app/footer/footer.component.ts b/src/themes/custom/app/footer/footer.component.ts index de80ceb311..81286fb662 100644 --- a/src/themes/custom/app/footer/footer.component.ts +++ b/src/themes/custom/app/footer/footer.component.ts @@ -3,9 +3,9 @@ import { FooterComponent as BaseComponent } from '../../../../app/footer/footer. @Component({ selector: 'ds-footer', - // styleUrls: ['footer.component.scss'], + // styleUrls: ['./footer.component.scss'], styleUrls: ['../../../../app/footer/footer.component.scss'], - // templateUrl: 'footer.component.html' + // templateUrl: './footer.component.html' templateUrl: '../../../../app/footer/footer.component.html' }) export class FooterComponent extends BaseComponent { diff --git a/src/themes/custom/app/header-nav-wrapper/header-navbar-wrapper.component.ts b/src/themes/custom/app/header-nav-wrapper/header-navbar-wrapper.component.ts index 875b5f69b8..e049543630 100644 --- a/src/themes/custom/app/header-nav-wrapper/header-navbar-wrapper.component.ts +++ b/src/themes/custom/app/header-nav-wrapper/header-navbar-wrapper.component.ts @@ -6,9 +6,9 @@ import { HeaderNavbarWrapperComponent as BaseComponent } from '../../../../app/h */ @Component({ selector: 'ds-header-navbar-wrapper', - // styleUrls: ['header-navbar-wrapper.component.scss'], + // styleUrls: ['./header-navbar-wrapper.component.scss'], styleUrls: ['../../../../app/header-nav-wrapper/header-navbar-wrapper.component.scss'], - // templateUrl: 'header-navbar-wrapper.component.html', + // templateUrl: './header-navbar-wrapper.component.html', templateUrl: '../../../../app/header-nav-wrapper/header-navbar-wrapper.component.html', }) export class HeaderNavbarWrapperComponent extends BaseComponent { diff --git a/src/themes/custom/app/shared/auth-nav-menu/auth-nav-menu.component.ts b/src/themes/custom/app/shared/auth-nav-menu/auth-nav-menu.component.ts index af54aacd44..ff5f09eb76 100644 --- a/src/themes/custom/app/shared/auth-nav-menu/auth-nav-menu.component.ts +++ b/src/themes/custom/app/shared/auth-nav-menu/auth-nav-menu.component.ts @@ -9,9 +9,9 @@ import { fadeInOut, fadeOut } from '../../../../../app/shared/animations/fade'; */ @Component({ selector: 'ds-auth-nav-menu', - // templateUrl: 'auth-nav-menu.component.html', + // templateUrl: './auth-nav-menu.component.html', templateUrl: '../../../../../app/shared/auth-nav-menu/auth-nav-menu.component.html', - // styleUrls: ['auth-nav-menu.component.scss'], + // styleUrls: ['./auth-nav-menu.component.scss'], styleUrls: ['../../../../../app/shared/auth-nav-menu/auth-nav-menu.component.scss'], animations: [fadeInOut, fadeOut] }) diff --git a/src/themes/custom/app/shared/object-list/object-list.component.ts b/src/themes/custom/app/shared/object-list/object-list.component.ts index 49f464610f..a376336870 100644 --- a/src/themes/custom/app/shared/object-list/object-list.component.ts +++ b/src/themes/custom/app/shared/object-list/object-list.component.ts @@ -9,7 +9,7 @@ import { ObjectListComponent as BaseComponent} from '../../../../../app/shared/o selector: 'ds-object-list', // styleUrls: ['./object-list.component.scss'], styleUrls: ['../../../../../app/shared/object-list/object-list.component.scss'], - // templateUrl: 'object-list.component.html' + // templateUrl: './object-list.component.html' templateUrl: '../../../../../app/shared/object-list/object-list.component.html' }) diff --git a/src/themes/custom/app/workflowitems-edit-page/workflow-item-send-back/workflow-item-send-back.component.ts b/src/themes/custom/app/workflowitems-edit-page/workflow-item-send-back/workflow-item-send-back.component.ts index 49121e64b9..ac8ffc99a9 100644 --- a/src/themes/custom/app/workflowitems-edit-page/workflow-item-send-back/workflow-item-send-back.component.ts +++ b/src/themes/custom/app/workflowitems-edit-page/workflow-item-send-back/workflow-item-send-back.component.ts @@ -3,7 +3,10 @@ import { WorkflowItemSendBackComponent as BaseComponent } from '../../../../../a @Component({ selector: 'ds-workflow-item-send-back', - // styleUrls: ['workflow-item-send-back.component.scss'], + // NOTE: the SCSS file for workflow-item-action-page does not have a corresponding file in the original + // implementation, so this commented out line below is a stub, here if you + // need it, but you probably don't need it. + // styleUrls: ['./workflow-item-send-back.component.scss'], // templateUrl: './workflow-item-send-back.component.html' templateUrl: '../../../../../app/workflowitems-edit-page/workflow-item-action-page.component.html' }) -- GitLab From 3292222e47bbea25232a34166b31f048087c1398 Mon Sep 17 00:00:00 2001 From: Hardy Pottinger <hardy.pottinger@gmail.com> Date: Tue, 15 Aug 2023 10:26:38 -0500 Subject: [PATCH 032/183] fix lint error in workflow-item-send-back.component.ts (cherry picked from commit 518cc714f2286889d2e66a4f013b954660e7ba5c) --- .../workflow-item-send-back.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/themes/custom/app/workflowitems-edit-page/workflow-item-send-back/workflow-item-send-back.component.ts b/src/themes/custom/app/workflowitems-edit-page/workflow-item-send-back/workflow-item-send-back.component.ts index ac8ffc99a9..022c46ef22 100644 --- a/src/themes/custom/app/workflowitems-edit-page/workflow-item-send-back/workflow-item-send-back.component.ts +++ b/src/themes/custom/app/workflowitems-edit-page/workflow-item-send-back/workflow-item-send-back.component.ts @@ -6,7 +6,7 @@ import { WorkflowItemSendBackComponent as BaseComponent } from '../../../../../a // NOTE: the SCSS file for workflow-item-action-page does not have a corresponding file in the original // implementation, so this commented out line below is a stub, here if you // need it, but you probably don't need it. - // styleUrls: ['./workflow-item-send-back.component.scss'], + // styleUrls: ['./workflow-item-send-back.component.scss'], // templateUrl: './workflow-item-send-back.component.html' templateUrl: '../../../../../app/workflowitems-edit-page/workflow-item-action-page.component.html' }) -- GitLab From fe8429ebbe0e7733478157cf22a0f25820d79e87 Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Wed, 23 Aug 2023 17:05:42 -0500 Subject: [PATCH 033/183] Enable new skip merge commit feature --- .github/workflows/port_merged_pull_request.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/port_merged_pull_request.yml b/.github/workflows/port_merged_pull_request.yml index 50faf3f886..109835d14d 100644 --- a/.github/workflows/port_merged_pull_request.yml +++ b/.github/workflows/port_merged_pull_request.yml @@ -39,6 +39,8 @@ jobs: # Copy all labels from original PR to (newly created) port PR # NOTE: The labels matching 'label_pattern' are automatically excluded copy_labels_pattern: '.*' + # Skip any merge commits in the ported PR. This means only non-merge commits are cherry-picked to the new PR + merge_commits: 'skip' # Use a personal access token (PAT) to create PR as 'dspace-bot' user. # A PAT is required in order for the new PR to trigger its own actions (for CI checks) github_token: ${{ secrets.PR_PORT_TOKEN }} \ No newline at end of file -- GitLab From 2078b7593a707f4dace81c78c1f049d86b841e98 Mon Sep 17 00:00:00 2001 From: Koen Pauwels <koen.pauwels@atmire.com> Date: Fri, 4 Aug 2023 12:25:20 +0200 Subject: [PATCH 034/183] 103818 Add warning tooltip to "Inherit policies" checkbox on item move page --- .../edit-item-page/item-move/item-move.component.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/app/item-page/edit-item-page/item-move/item-move.component.html b/src/app/item-page/edit-item-page/item-move/item-move.component.html index 589aac655f..475d36fb6f 100644 --- a/src/app/item-page/edit-item-page/item-move/item-move.component.html +++ b/src/app/item-page/edit-item-page/item-move/item-move.component.html @@ -21,7 +21,11 @@ <div class="col-12"> <p> <label for="inheritPoliciesCheckbox"> - <input type="checkbox" name="tc" [(ngModel)]="inheritPolicies" id="inheritPoliciesCheckbox"> + <ng-template #tooltipContent> + The original item read access policy for this item will be replaced by the collection’s one + </ng-template> + <input type="checkbox" name="tc" [(ngModel)]="inheritPolicies" id="inheritPoliciesCheckbox" [ngbTooltip]="tooltipContent" + > {{'item.edit.move.inheritpolicies.checkbox' |translate}} </label> </p> -- GitLab From a5b30ea3c2bebd4a4522078a05938940da7444a3 Mon Sep 17 00:00:00 2001 From: Koen Pauwels <koen.pauwels@atmire.com> Date: Fri, 4 Aug 2023 17:10:06 +0200 Subject: [PATCH 035/183] 103818 Adjusted "Inherit policies" tooltip --- .../item-page/edit-item-page/item-move/item-move.component.html | 2 +- src/assets/i18n/en.json5 | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/app/item-page/edit-item-page/item-move/item-move.component.html b/src/app/item-page/edit-item-page/item-move/item-move.component.html index 475d36fb6f..c1a4a5b9a9 100644 --- a/src/app/item-page/edit-item-page/item-move/item-move.component.html +++ b/src/app/item-page/edit-item-page/item-move/item-move.component.html @@ -22,7 +22,7 @@ <p> <label for="inheritPoliciesCheckbox"> <ng-template #tooltipContent> - The original item read access policy for this item will be replaced by the collection’s one + {{ 'item.edit.move.inheritpolicies.tooltip' | translate }} </ng-template> <input type="checkbox" name="tc" [(ngModel)]="inheritPolicies" id="inheritPoliciesCheckbox" [ngbTooltip]="tooltipContent" > diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 5c17fc8e42..1029e9546b 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -2162,6 +2162,8 @@ "item.edit.move.inheritpolicies.description": "Inherit the default policies of the destination collection", + "item.edit.move.inheritpolicies.tooltip" : "Warning: When enabled, the read access policy for the item and any files associated with the item will be replaced by the default read access policy of the collection. This cannot be undone.", + "item.edit.move.move": "Move", "item.edit.move.processing": "Moving...", -- GitLab From 22db36f9383f60bf02d0f7eca24cfdb1545e2884 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Dykas?= <96572102+michdyk@users.noreply.github.com> Date: Tue, 22 Aug 2023 13:32:16 +0200 Subject: [PATCH 036/183] Update pl.json5 Update from 7.4 to 7.6 version (cherry picked from commit b439ab4484d864a4cdcf8c17541cf9d00b62b68b) --- src/assets/i18n/pl.json5 | 4916 ++++++++++++++++++++------------------ 1 file changed, 2619 insertions(+), 2297 deletions(-) diff --git a/src/assets/i18n/pl.json5 b/src/assets/i18n/pl.json5 index 3512653705..7e6ef92c22 100644 --- a/src/assets/i18n/pl.json5 +++ b/src/assets/i18n/pl.json5 @@ -1,2299 +1,2621 @@ { - "401.help": "Nie masz uprawnieÅ„ do dostÄ™pu do tej strony. Możesz użyć przycisku poniżej, aby powrócić do strony głównej.", - "401.link.home-page": "Zabierz mnie na stronÄ™ głównÄ…", - "401.unauthorized": "nieautoryzowany", - "403.help": "Nie masz uprawnieÅ„ do dostÄ™pu do tej strony. Możesz użyć przycisku poniżej, aby wrócić do strony głównej.", - "403.link.home-page": "Zabierz mnie na stronÄ™ głównÄ…", - "403.forbidden": "zabroniony", - "404.help": "Nie możemy znaleźć strony, której szukasz. Strona mogÅ‚a zostać przeniesiona lub usuniÄ™ta. Możesz użyć przycisku poniżej, aby powrócić do strony głównej. ", - "404.link.home-page": "Zabierz mnie na stronÄ™ głównÄ…", - "404.page-not-found": "strona nie zostaÅ‚a znaleziona", - "admin.curation-tasks.breadcrumbs": "Systemowe zadania administracyjne", - "admin.curation-tasks.title": "Systemowe zadania administracyjne", - "admin.curation-tasks.header": "Systemowe zadania administracyjne", - "admin.registries.bitstream-formats.breadcrumbs": "Rejestr formatów", - "admin.registries.bitstream-formats.create.breadcrumbs": "Format strumienia bitów", - "admin.registries.bitstream-formats.create.failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia nowego formatu strumienia bitów.", - "admin.registries.bitstream-formats.create.failure.head": "Nie udaÅ‚o siÄ™", - "admin.registries.bitstream-formats.create.head": "Utwórz nowy format", - "admin.registries.bitstream-formats.create.new": "Dodaj nowy format", - "admin.registries.bitstream-formats.create.success.content": "Nowy format strumienia bitów zostaÅ‚ pomyÅ›lnie utworzony.", - "admin.registries.bitstream-formats.create.success.head": "UdaÅ‚o siÄ™", - "admin.registries.bitstream-formats.delete.failure.amount": "Nie udaÅ‚o siÄ™ usunąć {{ amount }} formatu(ów)", - "admin.registries.bitstream-formats.delete.failure.head": "Nie udaÅ‚o siÄ™", - "admin.registries.bitstream-formats.delete.success.amount": "UdaÅ‚o siÄ™ usunąć {{ amount }} formatu(ów)", - "admin.registries.bitstream-formats.delete.success.head": "UdaÅ‚o siÄ™", - "admin.registries.bitstream-formats.description": "Na liÅ›cie formatów wyÅ›wietlono informacje o obsÅ‚ugiwanych formatach i czy sÄ… one wspierane przez system.", - "admin.registries.bitstream-formats.edit.breadcrumbs": "Format strumienia bitów", - "admin.registries.bitstream-formats.edit.description.hint": "", - "admin.registries.bitstream-formats.edit.description.label": "Opis", - "admin.registries.bitstream-formats.edit.extensions.hint": "Rozszerzenia to rozszerzenia plików, które sÄ… używane do automatycznej identyfikacji formatu przesyÅ‚anych plików. Możesz wprowadzić kilka rozszerzeÅ„ dla każdego formatu.", - "admin.registries.bitstream-formats.edit.extensions.label": "Rozszerzenia plików", - "admin.registries.bitstream-formats.edit.extensions.placeholder": "Wprowadź rozszerzenie pliku bez kropki", - "admin.registries.bitstream-formats.edit.failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas edycji formatu pliku.", - "admin.registries.bitstream-formats.edit.failure.head": "Nie udaÅ‚o siÄ™", - "admin.registries.bitstream-formats.edit.head": "Format plików: {{ format }}", - "admin.registries.bitstream-formats.edit.internal.hint": "Formaty oznaczone jako wewnÄ™trzne sÄ… ukryte przed użytkownikiem i wykorzystywane do celów administracyjnych.", - "admin.registries.bitstream-formats.edit.internal.label": "WewnÄ™trzny", - "admin.registries.bitstream-formats.edit.mimetype.hint": "Typ MIME powiÄ…zany z tym formatem, nie musi być unikalny.", - "admin.registries.bitstream-formats.edit.mimetype.label": "Typ MIME", - "admin.registries.bitstream-formats.edit.shortDescription.hint": "Unikalna nazwa dla tego formatu, (np. Microsoft Word XP lub Microsoft Word 2000)", - "admin.registries.bitstream-formats.edit.shortDescription.label": "Nazwa", - "admin.registries.bitstream-formats.edit.success.content": "Format strumienia bitów zostaÅ‚ pomyÅ›lnie edytowany.", - "admin.registries.bitstream-formats.edit.success.head": "UdaÅ‚o siÄ™", - "admin.registries.bitstream-formats.edit.supportLevel.hint": "Poziom wsparcia, jaki Twoja instytucja deklaruje dla tego formatu.", - "admin.registries.bitstream-formats.edit.supportLevel.label": "ObsÅ‚ugiwany format", - "admin.registries.bitstream-formats.head": "Rejestr formatów", - "admin.registries.bitstream-formats.no-items": "Brak formatów plików do wyÅ›wietlenia.", - "admin.registries.bitstream-formats.table.delete": "UsuÅ„ zaznaczone", - "admin.registries.bitstream-formats.table.deselect-all": "Odznacz wszystkie", - "admin.registries.bitstream-formats.table.internal": "wewnÄ™trzne", - "admin.registries.bitstream-formats.table.mimetype": "Typ MIME", - "admin.registries.bitstream-formats.table.name": "Nazwa", - "admin.registries.bitstream-formats.table.return": "Powrót", - "admin.registries.bitstream-formats.table.supportLevel.KNOWN": "Znane", - "admin.registries.bitstream-formats.table.supportLevel.SUPPORTED": "Wspierane", - "admin.registries.bitstream-formats.table.supportLevel.UNKNOWN": "Nieznane", - "admin.registries.bitstream-formats.table.supportLevel.head": "ObsÅ‚ugiwany format", - "admin.registries.bitstream-formats.title": "Rejestr formatów plików", - "admin.registries.metadata.breadcrumbs": "Rejestr metadanych", - "admin.registries.metadata.description": "W rejestrze metadanych przechowywana jest lista wszystkich pól metadanych dostÄ™pnych w repozytorium. Przechowywane pola sÄ… przechowywane w kilku rejestrach. DSpace wymaga kwalifikowanego rejestru metadanych Dublin Core.", - "admin.registries.metadata.form.create": "Utwórz schemat metadanych", - "admin.registries.metadata.form.edit": "Edytuj schemat metadanych", - "admin.registries.metadata.form.name": "Nazwa", - "admin.registries.metadata.form.namespace": "Nazwa schematu", - "admin.registries.metadata.head": "Rejestr metadanych", - "admin.registries.metadata.schemas.no-items": "Brak rejestrów metadanych do pokazania.", - "admin.registries.metadata.schemas.table.delete": "UsuÅ„ zaznaczone", - "admin.registries.metadata.schemas.table.id": "ID", - "admin.registries.metadata.schemas.table.name": "Nazwa", - "admin.registries.metadata.schemas.table.namespace": "Nazwa schematu", - "admin.registries.metadata.title": "Rejestr metadanych", - "admin.registries.schema.breadcrumbs": "Schemat metadanych", - "admin.registries.schema.description": "Ten schemat metadanych jest stworzony na podstawie \"{{namespace}}\".", - "admin.registries.schema.fields.head": "Pola schematu metadanych", - "admin.registries.schema.fields.no-items": "Brak pól metadanych do pokazania.", - "admin.registries.schema.fields.table.delete": "UsuÅ„ zaznaczone", - "admin.registries.schema.fields.table.field": "Pole", - "admin.registries.schema.fields.table.scopenote": "Uwagi", - "admin.registries.schema.form.create": "Stwórz pole metadanych", - "admin.registries.schema.form.edit": "Edytuj pole metadanych", - "admin.registries.schema.form.element": "Element", - "admin.registries.schema.form.qualifier": "Kwalifikator", - "admin.registries.schema.form.scopenote": "Uwagi", - "admin.registries.schema.head": "Schemat metadanych", - "admin.registries.schema.notification.created": "UdaÅ‚o siÄ™ utworzyć schemat metdanych \"{{prefix}}\"", - "admin.registries.schema.notification.deleted.failure": "Nie udaÅ‚o siÄ™ usunąć {{amount}} schematów metadanych", - "admin.registries.schema.notification.deleted.success": "UdaÅ‚o siÄ™ usunąć {{amount}} schematów metadanych", - "admin.registries.schema.notification.edited": "UdaÅ‚o siÄ™ edytować schemat metadanych \"{{prefix}}\"", - "admin.registries.schema.notification.failure": "BÅ‚Ä…d", - "admin.registries.schema.notification.field.created": "UdaÅ‚o siÄ™ utworzyć pole metadanych \"{{field}}\"", - "admin.registries.schema.notification.field.deleted.failure": "Nie udaÅ‚o siÄ™ usunąć {{amount}} pól metadanych", - "admin.registries.schema.notification.field.deleted.success": "UdaÅ‚o siÄ™ usunąć {{amount}} pól metadanych", - "admin.registries.schema.notification.field.edited": "SUdaÅ‚o siÄ™ edytować pole metadanych \"{{field}}\"", - "admin.registries.schema.notification.success": "UdaÅ‚o siÄ™", - "admin.registries.schema.return": "Powrót", - "admin.registries.schema.title": "Rejestr schematów metadanych", - "admin.access-control.epeople.actions.delete": "UsuÅ„ użytkownika", - "admin.access-control.epeople.actions.impersonate": "Personifikuj użytkownika", - "admin.access-control.epeople.actions.reset": "Zresetuj hasÅ‚o", - "admin.access-control.epeople.actions.stop-impersonating": "PrzestaÅ„ personifikować użytkownika", - "admin.access-control.epeople.breadcrumbs": "Użytkownicy", - "admin.access-control.epeople.title": "Użytkownicy", - "admin.access-control.epeople.head": "Użytkownicy", - "admin.access-control.epeople.search.head": "Wyszukaj", - "admin.access-control.epeople.button.see-all": "PrzeglÄ…daj wszystko", - "admin.access-control.epeople.search.scope.metadata": "Metadane", - "admin.access-control.epeople.search.scope.email": "E-mail", - "admin.access-control.epeople.search.button": "Wyszukaj", - "admin.access-control.epeople.search.placeholder": "Wyszukaj użytkownika...", - "admin.access-control.epeople.button.add": "Dodaj użytkownika", - "admin.access-control.epeople.table.id": "ID", - "admin.access-control.epeople.table.name": "Nazwa", - "admin.access-control.epeople.table.email": "E-mail", - "admin.access-control.epeople.table.edit": "Edytuj", - "admin.access-control.epeople.table.edit.buttons.edit": "Edytuj \"{{name}}\"", - "admin.access-control.epeople.table.edit.buttons.edit-disabled": "Brak uprawnieÅ„ do edycji wybranej grupy", - "admin.access-control.epeople.table.edit.buttons.remove": "UsuÅ„ \"{{name}}\"", - "admin.access-control.epeople.no-items": "Brak użytkowników do wyÅ›wietlenia.", - "admin.access-control.epeople.form.create": "Utwórz użytkownika", - "admin.access-control.epeople.form.edit": "Edytuj użytkownika", - "admin.access-control.epeople.form.firstName": "ImiÄ™", - "admin.access-control.epeople.form.lastName": "Nazwisko", - "admin.access-control.epeople.form.email": "E-mail", - "admin.access-control.epeople.form.emailHint": "Adres e-mail musi być poprawny", - "admin.access-control.epeople.form.canLogIn": "Możliwość zalogowania", - "admin.access-control.epeople.form.requireCertificate": "Wymagany certyfikat", - "admin.access-control.epeople.form.return": "Powrót", - "admin.access-control.epeople.form.notification.created.success": "UdaÅ‚o siÄ™ utworzyć użytkownika \"{{name}}\"", - "admin.access-control.epeople.form.notification.created.failure": "Nie udaÅ‚o siÄ™ utworzyć użytkownika \"{{name}}\"", - "admin.access-control.epeople.form.notification.created.failure.emailInUse": "Nie udaÅ‚o siÄ™ utworzyć użytkownika \"{{name}}\", email \"{{email}}\" już w użyciu.", - "admin.access-control.epeople.form.notification.edited.failure.emailInUse": "Nie udaÅ‚o siÄ™ utworzyć użytkownika \"{{name}}\", email \"{{email}}\" już w użyciu.", - "admin.access-control.epeople.form.notification.edited.success": "UdaÅ‚o siÄ™ edytować użytkownika \"{{name}}\"", - "admin.access-control.epeople.form.notification.edited.failure": "Nie udaÅ‚o siÄ™ edytować użytkownika \"{{name}}\"", - "admin.access-control.epeople.form.notification.deleted.success": "UdaÅ‚o siÄ™ usunąć użytkownika \"{{name}}\"", - "admin.access-control.epeople.form.notification.deleted.failure": "Nie udaÅ‚o siÄ™ usunąć użytkownika \"{{name}}\"", - "admin.access-control.epeople.form.groupsEPersonIsMemberOf": "CzÅ‚onek grup:", - "admin.access-control.epeople.form.table.id": "ID", - "admin.access-control.epeople.form.table.name": "Nazwa", - "admin.access-control.epeople.form.table.collectionOrCommunity": "Zbiór/kolekcja", - "admin.access-control.epeople.form.memberOfNoGroups": "Ten użytkownik nie jest czÅ‚onkiem żadnej grupy", - "admin.access-control.epeople.form.goToGroups": "Dodaj do grup", - "admin.access-control.epeople.notification.deleted.failure": "Nie udaÅ‚o siÄ™ usunąć użytkownika: \"{{name}}\"", - "admin.access-control.epeople.notification.deleted.success": "UdaÅ‚o siÄ™ usunąć użytkownika: \"{{name}}\"", - "admin.access-control.groups.title": "Grupy", - "admin.access-control.groups.breadcrumbs": "Grupy", - "admin.access-control.groups.singleGroup.breadcrumbs": "Edytuj grupÄ™", - "admin.access-control.groups.title.singleGroup": "Edytuj grupÄ™", - "admin.access-control.groups.title.addGroup": "Nowa grupa", - "admin.access-control.groups.addGroup.breadcrumbs": "Nowa grupa", - "admin.access-control.groups.head": "Grupy/role", - "admin.access-control.groups.button.add": "Dodaj grupÄ™", - "admin.access-control.groups.search.head": "Szukaj grup", - "admin.access-control.groups.button.see-all": "Przeszukaj wszystko", - "admin.access-control.groups.search.button": "Wyszukaj", - "admin.access-control.groups.search.placeholder": "Wyszukaj grupy...", - "admin.access-control.groups.table.id": "ID", - "admin.access-control.groups.table.name": "Nazwa", - "admin.access-control.groups.table.collectionOrCommunity": "Zbiór/kolekcja", - "admin.access-control.groups.table.members": "CzÅ‚onkowie", - "admin.access-control.groups.table.edit": "Edytuj", - "admin.access-control.groups.table.edit.buttons.edit": "Edytuj \"{{name}}\"", - "admin.access-control.groups.no-items": "Nie znaleziono grup z podanÄ… frazÄ… lub podanym UUID", - "admin.access-control.groups.notification.deleted.success": "UdaÅ‚o siÄ™ usunąć grupÄ™ \"{{name}}\"", - "admin.access-control.groups.notification.deleted.failure.title": "Nie udaÅ‚o siÄ™ usunąć grupy \"{{name}}\"", - "admin.access-control.groups.notification.deleted.failure.content": "Powód: \"{{cause}}\"", - "admin.access-control.groups.form.alert.permanent": "Ta grupa jest staÅ‚a, wiÄ™c nie może być edytowana ani usuniÄ™ta. Nadal możesz dodawać i usuwać czÅ‚onków grupy za pomocÄ… tej strony.", - "admin.access-control.groups.form.alert.workflowGroup": "Ta grupa nie może być edytowana lub usuniÄ™ta, ponieważ odnosi siÄ™ do roli lub bierze udziaÅ‚ w procesie \"{{name}}\" {{comcol}}. Możesz jÄ… usunąć ze strony <a href='{{comcolEditRolesRoute}}'>\"assign roles\"</a> edycji {{comcol}}. Wciąż może dodawać i usuwać czÅ‚onków tej grupy, korzystajÄ…c z tej strony.", - "admin.access-control.groups.form.head.create": "Utwórz grupÄ™", - "admin.access-control.groups.form.head.edit": "Edytuj grupÄ™", - "admin.access-control.groups.form.groupName": "Nazwa grupy", - "admin.access-control.groups.form.groupCommunity": "Zbiór lub kolekcja", - "admin.access-control.groups.form.groupDescription": "Opis", - "admin.access-control.groups.form.notification.created.success": "UdaÅ‚o siÄ™ utworzyć grupÄ™ \"{{name}}\"", - "admin.access-control.groups.form.notification.created.failure": "Nie udaÅ‚o siÄ™ utworzyć grupy \"{{name}}\"", - "admin.access-control.groups.form.notification.created.failure.groupNameInUse": "Nie udaÅ‚o siÄ™ utworzyć grupy o nazwie: \"{{name}}\", upewnij siÄ™, że nazwa nie jest już używana.", - "admin.access-control.groups.form.notification.edited.failure": "Nie udaÅ‚o siÄ™ edytować grupy \"{{name}}\"", - "admin.access-control.groups.form.notification.edited.failure.groupNameInUse": "Nazwa \"{{name}}\" już w użyciu!", - "admin.access-control.groups.form.notification.edited.success": "UdaÅ‚o siÄ™ edytować grupÄ™ \"{{name}}\"", - "admin.access-control.groups.form.actions.delete": "UsuÅ„ grupÄ™", - "admin.access-control.groups.form.delete-group.modal.header": "UsuÅ„ grupÄ™ \"{{ dsoName }}\"", - "admin.access-control.groups.form.delete-group.modal.info": "Czy na pewno chcesz usunąć grupÄ™ \"{{ dsoName }}\"", - "admin.access-control.groups.form.delete-group.modal.cancel": "Anuluj", - "admin.access-control.groups.form.delete-group.modal.confirm": "UsuÅ„", - "admin.access-control.groups.form.notification.deleted.success": "UdaÅ‚o siÄ™ usunąć grupÄ™ \"{{ name }}\"", - "admin.access-control.groups.form.notification.deleted.failure.title": "Nie udaÅ‚o siÄ™ usunąć grupy \"{{ name }}\"", - "admin.access-control.groups.form.notification.deleted.failure.content": "Powód: \"{{ cause }}\"", - "admin.access-control.groups.form.members-list.head": "Użytkownik", - "admin.access-control.groups.form.members-list.search.head": "Dodaj użytkownika", - "admin.access-control.groups.form.members-list.button.see-all": "Pokaż wszystkich", - "admin.access-control.groups.form.members-list.headMembers": "Aktualni czÅ‚onkowie", - "admin.access-control.groups.form.members-list.search.scope.metadata": "Metadane", - "admin.access-control.groups.form.members-list.search.scope.email": "E-mail", - "admin.access-control.groups.form.members-list.search.button": "Wyszukaj", - "admin.access-control.groups.form.members-list.table.id": "ID", - "admin.access-control.groups.form.members-list.table.name": "Nazwa", - "admin.access-control.groups.form.members-list.table.identity": "Tożsamość", - "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.edit": "UsuÅ„ / Dodaj", - "admin.access-control.groups.form.members-list.table.edit.buttons.remove": "UsuÅ„ użytkownika o nazwie \"{{name}}\"", - "admin.access-control.groups.form.members-list.notification.success.addMember": "UdaÅ‚o siÄ™ dodać użytkownika o nazwie: \"{{name}}\"", - "admin.access-control.groups.form.members-list.notification.failure.addMember": "Nie udaÅ‚o siÄ™ dodać użytkownika o nazwie: \"{{name}}\"", - "admin.access-control.groups.form.members-list.notification.success.deleteMember": "UdaÅ‚o siÄ™ usunąć użytkownika o nazwie: \"{{name}}\"", - "admin.access-control.groups.form.members-list.notification.failure.deleteMember": "Nie udaÅ‚o siÄ™ usunąć użytkownika o nazwie: \"{{name}}\"", - "admin.access-control.groups.form.members-list.table.edit.buttons.add": "Dodaj użytkownika o nazwie \"{{name}}\"", - "admin.access-control.groups.form.members-list.notification.failure.noActiveGroup": "Brak aktywnej grupy, najpierw wpisz nazwÄ™ grupy.", - "admin.access-control.groups.form.members-list.no-members-yet": "Brak użytkowników w grupie, wyszukaj ich i dodaj.", - "admin.access-control.groups.form.members-list.no-items": "Nie znaleziono użytkowników podczas wyszukiwania", - "admin.access-control.groups.form.subgroups-list.notification.failure": "CoÅ› poszÅ‚o nie tak: \"{{cause}}\"", - "admin.access-control.groups.form.subgroups-list.head": "Grupy", - "admin.access-control.groups.form.subgroups-list.search.head": "Dodaj podgrupÄ™", - "admin.access-control.groups.form.subgroups-list.button.see-all": "PrzeglÄ…daj wszystkie", - "admin.access-control.groups.form.subgroups-list.headSubgroups": "Aktualne podgrupy", - "admin.access-control.groups.form.subgroups-list.search.button": "Wyszukaj", - "admin.access-control.groups.form.subgroups-list.table.id": "ID", - "admin.access-control.groups.form.subgroups-list.table.name": "Nazwa", - "admin.access-control.groups.form.subgroups-list.table.collectionOrCommunity": "Zbiór/kolekcja", - "admin.access-control.groups.form.subgroups-list.table.edit": "UsuÅ„ / Dodaj", - "admin.access-control.groups.form.subgroups-list.table.edit.buttons.remove": "UsuÅ„ podgrupÄ™ o nazwie \"{{name}}\"", - "admin.access-control.groups.form.subgroups-list.table.edit.buttons.add": "Dodaj podgrupÄ™ o nazwie \"{{name}}\"", - "admin.access-control.groups.form.subgroups-list.table.edit.currentGroup": "Aktualna grupa", - "admin.access-control.groups.form.subgroups-list.notification.success.addSubgroup": "UdaÅ‚o siÄ™ dodać podgrupÄ™: \"{{name}}\"", - "admin.access-control.groups.form.subgroups-list.notification.failure.addSubgroup": "Nie udaÅ‚o siÄ™ dodać podgrupy: \"{{name}}\"", - "admin.access-control.groups.form.subgroups-list.notification.success.deleteSubgroup": "UdaÅ‚o siÄ™ usunąć podgrupÄ™: \"{{name}}\"", - "admin.access-control.groups.form.subgroups-list.notification.failure.deleteSubgroup": "Nie udaÅ‚o siÄ™ usunąć podgrupy: \"{{name}}\"", - "admin.access-control.groups.form.subgroups-list.notification.failure.noActiveGroup": "Brak aktywnej grupy, najpierw wpisz nazwÄ™ grupy.", - "admin.access-control.groups.form.subgroups-list.notification.failure.subgroupToAddIsActiveGroup": "Ta grupa jest już stworzona i nie może zostać dodana pononwie.", - "admin.access-control.groups.form.subgroups-list.no-items": "Nie znaleziono grup z tÄ… nazwÄ… lub UUID", - "admin.access-control.groups.form.subgroups-list.no-subgroups-yet": "Brak podgrup w grupie.", - "admin.access-control.groups.form.return": "Powrót", - "admin.search.breadcrumbs": "Wyszukiwanie administracyjne", - "admin.search.collection.edit": "Edytuj", - "admin.search.community.edit": "Edytuj", - "admin.search.item.delete": "UsuÅ„", - "admin.search.item.edit": "Edytuj", - "admin.search.item.make-private": "Ukryj", - "admin.search.item.make-public": "Upublicznij", - "admin.search.item.move": "PrzenieÅ›", - "admin.search.item.reinstate": "ZmieÅ„ instancjÄ™", - "admin.search.item.withdraw": "Wycofane", - "admin.search.title": "Wyszukiwanie administracyjne", - "administrativeView.search.results.head": "Wyszukiwanie administracyjne", - "admin.workflow.breadcrumbs": "ZarzÄ…dzaj procesem", - "admin.workflow.title": "ZarzÄ…dzaj procesem", - "admin.workflow.item.workflow": "Proces", - "admin.workflow.item.delete": "UsuÅ„", - "admin.workflow.item.send-back": "OdeÅ›lij z powrotem", - "admin.metadata-import.breadcrumbs": "Importuj metadane", - "admin.metadata-import.title": "Importuj metadane", - "admin.metadata-import.page.header": "Importuj metadane", - "admin.metadata-import.page.help": "Tutaj możesz zaimportować pliki CSV, w których znajdujÄ… siÄ™ metadane do operacji wsadowej. Zaimportuj je poprzez upuszczenie ich lub znajdź je na swoim komputerze", - "admin.metadata-import.page.dropMsg": "Upuść plik w formacie CSV", - "admin.metadata-import.page.dropMsgReplace": "Upuść, aby zastÄ…pić metadane w formacie CSV do importu", - "admin.metadata-import.page.button.return": "Powrót", - "admin.metadata-import.page.button.proceed": "Zastosuj", - "admin.metadata-import.page.error.addFile": "Najpierw wybierz plik!", - "auth.errors.invalid-user": "NiewÅ‚aÅ›ciwy adres e-mail lub hasÅ‚o.", - "auth.messages.expired": "Twoja sesja wygasÅ‚a. Zaloguj siÄ™ ponownie.", - "auth.messages.token-refresh-failed": "OdÅ›wieżenie sesji nie powiodÅ‚o siÄ™. Zaloguj siÄ™ ponownie.", - "bitstream.download.page": "Pobieranie {{bitstream}}...", - "bitstream.download.page.back": "Powrót", - "bitstream.edit.authorizations.link": "Edytuj polityki plików", - "bitstream.edit.authorizations.title": "Edytuj polityki plików", - "bitstream.edit.return": "Powrót", - "bitstream.edit.bitstream": "Pliki: ", - "bitstream.edit.form.description.hint": "Opcjonalnie wprowadź krótki opis pliku, np.: \"<i>Główna część artykuÅ‚u</i>\" lub \"<i>Dane z eksperymentu</i>\".", - "bitstream.edit.form.description.label": "Opis", - "bitstream.edit.form.embargo.hint": "Pierwszy dzieÅ„, od kiedy dostÄ™p zostanie udzielony. <b>Tej daty nie może być edytować w tym formularzu.</b> Aby wybrać okres embarga czasowego, wybierz <i>Status pozycji</i> tab, kliknij <i>Autoryzacje...</i>, stwórz lub edytuj plik <i>PRZEYCZTAJ</i> zasady i wybierz okreÅ›lonÄ… <i>DatÄ™ poczÄ…tkowÄ…</i>.", - "bitstream.edit.form.embargo.label": "Embargo do wybranej daty", - "bitstream.edit.form.fileName.hint": "Zmiana nazwy pliku dla strumienia bitów. Zauważ, że zmieni to wyÅ›wietlany adres URL strumienia bitów, ale stare linki nadal bÄ™dÄ… dziaÅ‚ać, o ile nie zmieni siÄ™ identyfikator sekwencji.", - "bitstream.edit.form.fileName.label": "Nazwa pliku", - "bitstream.edit.form.newFormat.label": "Opisz nowy format", - "bitstream.edit.form.newFormat.hint": "Program, którego użyto do stworzenia pliku i numer wersji (np.: \"<i>ACMESoft SuperApp version 1.5</i>\").", - "bitstream.edit.form.primaryBitstream.label": "Pierwotny plik", - "bitstream.edit.form.selectedFormat.hint": "JeÅ›li formatu nie ma na powyższej liÅ›cie, <b>wybierz \"format not in list\" above</b> i opisz jako \"Describe new format\".", - "bitstream.edit.form.selectedFormat.label": "Wybrany format", - "bitstream.edit.form.selectedFormat.unknown": "Tego formatu nie ma na liÅ›cie", - "bitstream.edit.notifications.error.format.title": "WystÄ…piÅ‚ bÅ‚Ä…d podczas zapisu formatu pliku", - "bitstream.edit.notifications.saved.content": "Zmiany w pliku zostaÅ‚y zapisane.", - "bitstream.edit.notifications.saved.title": "Plik zostaÅ‚ zapisany", - "bitstream.edit.title": "Edytuj plik", - "bitstream-request-a-copy.alert.canDownload1": "Masz już dostÄ™p do tego pliki. JeÅ›li chcesz go pobrać, kliknij ", - "bitstream-request-a-copy.alert.canDownload2": "tutaj", - "bitstream-request-a-copy.header": "WystÄ…p o kopiÄ™ wybranego pliku", - "bitstream-request-a-copy.intro": "Wpisz nastÄ™pujÄ…ce informacje, aby wystÄ…pić o kopiÄ™ tej pozycji: ", - "bitstream-request-a-copy.intro.bitstream.one": "WystÄ…pienie o dostÄ™p do nastÄ™pujÄ…cych plików: ", - "bitstream-request-a-copy.intro.bitstream.all": "WystÄ…pienie o dostÄ™p do wszystkich plików. ", - "bitstream-request-a-copy.name.label": "ImiÄ™ *", - "bitstream-request-a-copy.name.error": "ImiÄ™ jest wymagane", - "bitstream-request-a-copy.email.label": "Adres e-mail *", - "bitstream-request-a-copy.email.hint": "Plik zostanie przesÅ‚any na podany adres e-mail", - "bitstream-request-a-copy.email.error": "ProszÄ™ wprowadzić prawidÅ‚owy adres e-mail", - "bitstream-request-a-copy.allfiles.label": "Pliki", - "bitstream-request-a-copy.files-all-false.label": "Tylko plik, dla którego wystÄ…piono o dostÄ™p", - "bitstream-request-a-copy.files-all-true.label": "Wszystkie pliki (w tej pozycji) z ograniczonym dostÄ™pem", - "bitstream-request-a-copy.message.label": "Wiadomość", - "bitstream-request-a-copy.return": "Powrót", - "bitstream-request-a-copy.submit": "WystÄ…p o kopiÄ™", - "bitstream-request-a-copy.submit.success": "WystÄ…pienie o dostÄ™p do pliku zostaÅ‚o przesÅ‚ane.", - "bitstream-request-a-copy.submit.error": "CoÅ› poszÅ‚o nie tak podczas wysyÅ‚ania wystÄ…pienia o dostÄ™p do pliku", - "browse.comcol.by.author": "wg autorów", - "browse.comcol.by.dateissued": "wg daty wydania", - "browse.comcol.by.subject": "wg tematu", - "browse.comcol.by.title": "wg tytuÅ‚u", - "browse.comcol.head": "PrzeglÄ…daj", - "browse.empty": "Brak rekordów do wyÅ›wietlenia.", - "browse.metadata.author": "Autor", - "browse.metadata.dateissued": "Data wydania", - "browse.metadata.subject": "Temat", - "browse.metadata.title": "TytuÅ‚", - "browse.metadata.author.breadcrumbs": "PrzeglÄ…daj wg autorów", - "browse.metadata.dateissued.breadcrumbs": "PrzeglÄ…daj wg daty wydania", - "browse.metadata.subject.breadcrumbs": "PrzeglÄ…daj wg tematów", - "browse.metadata.title.breadcrumbs": "PrzeglÄ…daj wg tytułów", - "browse.startsWith.choose_start": "(Wybierz start)", - "browse.startsWith.choose_year": "(Wybierz rok)", - "browse.startsWith.choose_year.label": "Wybierz rok wydania", - "browse.startsWith.jump": "Przejdź do miejsca w indeksie:", - "browse.startsWith.months.april": "kwiecieÅ„", - "browse.startsWith.months.august": "sierpieÅ„", - "browse.startsWith.months.december": "grudzieÅ„", - "browse.startsWith.months.february": "luty", - "browse.startsWith.months.january": "styczeÅ„", - "browse.startsWith.months.july": "lipiec", - "browse.startsWith.months.june": "czerwiec", - "browse.startsWith.months.march": "marzec", - "browse.startsWith.months.may": "maj", - "browse.startsWith.months.none": "(wybierz miesiÄ…c)", - "browse.startsWith.months.none.label": "Wybierz miesiÄ…c wydania", - "browse.startsWith.months.november": "listopad", - "browse.startsWith.months.october": "październik", - "browse.startsWith.months.september": "wrzesieÅ„", - "browse.startsWith.submit": "Zastosuj", - "browse.startsWith.type_date": "Lub wybierz datÄ™ (rok-miesiÄ…c) i kliknij 'PrzeglÄ…daj'", - "browse.startsWith.type_date.label": "Lub wybierz datÄ™ (rok-miesiÄ…c) i kliknij przycisk przeglÄ…dania", - "browse.startsWith.type_text": "Wpisz kilka pierwszych liter i kliknij przycisk przeglÄ…dania", - "browse.title": "PrzeglÄ…daj {{ collection }} wg {{ field }} {{ value }}", - "chips.remove": "UsuÅ„ chip", - "collection.create.head": "Utwórz kolekcjÄ™", - "collection.create.notifications.success": "UdaÅ‚o siÄ™ utworzyć kolekcjÄ™", - "collection.create.sub-head": "UdaÅ‚o siÄ™ utworzyć kolekcjÄ™ dla zbioru {{ parent }}", - "collection.curate.header": "Administrator kolekcji: {{collection}}", - "collection.delete.cancel": "Anuluj", - "collection.delete.confirm": "Zatwierdź", - "collection.delete.processing": "Usuwanie", - "collection.delete.head": "UsuÅ„ kolekcjÄ™", - "collection.delete.notification.fail": "Kolekcja nie może być usuniÄ™t", - "collection.delete.notification.success": "UdaÅ‚o siÄ™ usunąć kolekcjÄ™", - "collection.delete.text": "Czy na pewno chcesz usunąć kolekcjÄ™ \"{{ dso }}\"", - "collection.edit.delete": "UsuÅ„ kolekcjÄ™", - "collection.edit.head": "Edytuj kolekcjÄ™", - "collection.edit.breadcrumbs": "Edytuj kolekcjÄ™", - "collection.edit.tabs.mapper.head": "Item Mapper", - "collection.edit.tabs.item-mapper.title": "Edytuj kolekcjÄ™ - Item Mapper", - "collection.edit.item-mapper.cancel": "Anuluj", - "collection.edit.item-mapper.collection": "Kolekcja: \"<b>{{name}}</b>\"", - "collection.edit.item-mapper.confirm": "Mapuj wybrane elementy", - "collection.edit.item-mapper.description": "To jest narzÄ™dzie mapowania elementów, które pozwala administratorom kolekcji mapować elementy z innych kolekcji do tej kolekcji. Możesz wyszukiwać elementy z innych kolekcji i mapować je lub przeglÄ…dać listÄ™ aktualnie zmapowanych elementów.", - "collection.edit.item-mapper.head": "Item Mapper - Mapuj pozycje z innych kolekcji", - "collection.edit.item-mapper.no-search": "Wpisz co chcesz wyszukać", - "collection.edit.item-mapper.notifications.map.error.content": "WystÄ…piÅ‚y bÅ‚Ä™dy podczas mapowania {{amount}} pozycji.", - "collection.edit.item-mapper.notifications.map.error.head": "Mapowanie bÅ‚Ä™dów", - "collection.edit.item-mapper.notifications.map.success.content": "UdaÅ‚o siÄ™ zmapować {{amount}} pozycji.", - "collection.edit.item-mapper.notifications.map.success.head": "Mapowanie zakoÅ„czone", - "collection.edit.item-mapper.notifications.unmap.error.content": "BÅ‚Ä™dy wystÄ…piÅ‚y podczas usuwania mapowania z {{amount}} elementów.", - "collection.edit.item-mapper.notifications.unmap.error.head": "UsuÅ„ bÅ‚Ä™dy mapowania", - "collection.edit.item-mapper.notifications.unmap.success.content": "UdaÅ‚o siÄ™ usunąć bÅ‚Ä™dy mapowania z {{amount}} elementów.", - "collection.edit.item-mapper.notifications.unmap.success.head": "Usuwanie mapowania zakoÅ„czone", - "collection.edit.item-mapper.remove": "UsuÅ„ wybrane mapowanie elementów", - "collection.edit.item-mapper.search-form.placeholder": "Wyszukaj pozycje...", - "collection.edit.item-mapper.tabs.browse": "Wyszukaj mapowane elementy", - "collection.edit.item-mapper.tabs.map": "Mapuj nowe elementy", - "collection.edit.logo.delete.title": "UsuÅ„", - "collection.edit.logo.delete-undo.title": "Cofnij usuniÄ™cie", - "collection.edit.logo.label": "Logo kolekcji", - "collection.edit.logo.notifications.add.error": "PrzesyÅ‚anie logo kolekcji nie powiodÅ‚o siÄ™. ProszÄ™ zweryfikować zawartość przed ponownÄ… ", - "collection.edit.logo.notifications.add.success": "UdaÅ‚o siÄ™ przesÅ‚ać logo kolekcji.", - "collection.edit.logo.notifications.delete.success.title": "Logo usuniÄ™te", - "collection.edit.logo.notifications.delete.success.content": "UdaÅ‚o siÄ™ usunąć logo kolekcji", - "collection.edit.logo.notifications.delete.error.title": "BÅ‚Ä…d podczas usuwania loga", - "collection.edit.logo.upload": "Upuść logo kolekcji, aby je wgrać", - "collection.edit.notifications.success": "UdaÅ‚o siÄ™ edytować kolekcjÄ™", - "collection.edit.return": "Powrót", - "collection.edit.tabs.curate.head": "Kurator", - "collection.edit.tabs.curate.title": "Edytowanie kolekcji - kurator", - "collection.edit.tabs.authorizations.head": "Autoryzacje", - "collection.edit.tabs.authorizations.title": "Edytowanie kolekcji - autoryzacje", - "collection.edit.tabs.metadata.head": "Edytuj metadane", - "collection.edit.tabs.metadata.title": "Edytowanie kolekcji - metadane", - "collection.edit.tabs.roles.head": "Przypisz role", - "collection.edit.tabs.roles.title": "Edytowanie kolekcji - role", - "collection.edit.tabs.source.external": "Ta kolekcja pobiera swojÄ… zawartość z zewnÄ™trznego źródÅ‚a", - "collection.edit.tabs.source.form.errors.oaiSource.required": "Musisz wskazać id docelowej kolekcji.", - "collection.edit.tabs.source.form.harvestType": "Odczytywanie zawartoÅ›ci", - "collection.edit.tabs.source.form.head": "Skonfiguruj zewnÄ™trzne źródÅ‚o", - "collection.edit.tabs.source.form.metadataConfigId": "Format metadanych", - "collection.edit.tabs.source.form.oaiSetId": "OkreÅ›lony zestaw ID OAI", - "collection.edit.tabs.source.form.oaiSource": "Dostawca OAI", - "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_BITSTREAMS": "Odczytaj metadane i pliki (wymaga wsparcia ORE)", - "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_REF": "Odczytaj metadane i bibliografiÄ™ (wymaga wsparcia ORE)", - "collection.edit.tabs.source.form.options.harvestType.METADATA_ONLY": "Odczytaj tylko metadane", - "collection.edit.tabs.source.head": "ŹródÅ‚o treÅ›ci", - "collection.edit.tabs.source.notifications.discarded.content": "Twoje zmiany zostaÅ‚y odrzucone. Aby odzyskać swoje zmiany wybierz 'Powrót'", - "collection.edit.tabs.source.notifications.discarded.title": "Zmiany odrzucone", - "collection.edit.tabs.source.notifications.invalid.content": "Zmiany nie zostaÅ‚y zapisane. Sprawdź czy wszystkie pola sÄ… wypeÅ‚nione poprawne przed zapisem.", - "collection.edit.tabs.source.notifications.invalid.title": "NieprawidÅ‚owe metadane", - "collection.edit.tabs.source.notifications.saved.content": "Zmiany wprowadzone w kolekcji zostaÅ‚y zapisane.", - "collection.edit.tabs.source.notifications.saved.title": "ŹródÅ‚o treÅ›ci zapisane", - "collection.edit.tabs.source.title": "Collection Edit - ŹródÅ‚o treÅ›ci", - "collection.edit.template.add-button": "Dodaj", - "collection.edit.template.breadcrumbs": "Szablon pozycji", - "collection.edit.template.cancel": "Anuluj", - "collection.edit.template.delete-button": "UsuÅ„", - "collection.edit.template.edit-button": "Edytuj", - "collection.edit.template.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas odzyskiwania szablonu pozycji", - "collection.edit.template.head": "Edytuj szablon dla kolekcji \"{{ collection }}\"", - "collection.edit.template.label": "Szablon pozycji", - "collection.edit.template.loading": "Å‚adowanie szablonu pozycji...", - "collection.edit.template.notifications.delete.error": "Nie udaÅ‚o siÄ™ usunąć szablonu pozycji", - "collection.edit.template.notifications.delete.success": "UdaÅ‚o siÄ™ usunąć szablon pozycji", - "collection.edit.template.title": "Edytuj szablon pozycji", - "collection.form.abstract": "Opis skrócony", - "collection.form.description": "Tekst powitalny (HTML)", - "collection.form.errors.title.required": "Wpisz nazwÄ™ kolekcji", - "collection.form.license": "Licencja", - "collection.form.provenance": "Pochodzenie", - "collection.form.rights": "Tekst praw autorskich (HTML)", - "collection.form.tableofcontents": "WiadomoÅ›ci (HTML)", - "collection.form.title": "Nazwa", - "collection.form.entityType": "Typ danych", - "collection.page.browse.recent.head": "Ostatnie zgÅ‚oszenia", - "collection.page.browse.recent.empty": "Brak pozycji do wyÅ›wietlenia", - "collection.page.edit": "Edytuj kolekcjÄ™", - "collection.page.handle": "StaÅ‚y URI dla kolekcji", - "collection.page.license": "Licencja", - "collection.page.news": "WiadomoÅ›ci", - "collection.select.confirm": "Zaakceptuj zaznaczone", - "collection.select.empty": "Brak kolekcji do wyÅ›wietlenia", - "collection.select.table.title": "TytuÅ‚", - "collection.source.controls.head": "Kontrolki odczytywania", - "collection.source.controls.test.submit.error": "CoÅ› poszÅ‚o nie tak podczas rozpoczynania testów ustawieÅ„", - "collection.source.controls.test.failed": "Scenariusz testowy ustawieÅ„ nie zadziaÅ‚aÅ‚", - "collection.source.controls.test.completed": "Scenariusz testowy ustawieÅ„ zostaÅ‚ zakoÅ„czony", - "collection.source.controls.test.submit": "Konfiguracja testowa", - "collection.source.controls.test.running": "Testowanie konfiguracji...", - "collection.source.controls.import.submit.success": "Import zostaÅ‚ rozpoczÄ™ty", - "collection.source.controls.import.submit.error": "CoÅ› poszÅ‚o nie tak podczas rozpoczynania importu", - "collection.source.controls.import.submit": "Importuj teraz", - "collection.source.controls.import.running": "Importowanie...", - "collection.source.controls.import.failed": "WystÄ…piÅ‚ bÅ‚Ä…d podczas importu", - "collection.source.controls.import.completed": "Import zakoÅ„czony", - "collection.source.controls.reset.submit.success": "Reset ustawieÅ„ i powtórny import zostaÅ‚y rozpoczÄ™te poprawnie", - "collection.source.controls.reset.submit.error": "CoÅ› poszÅ‚o nie tak podczas rozpoczynania zresetowanego, powtórnego importu", - "collection.source.controls.reset.failed": "WystÄ…piÅ‚ bÅ‚Ä…d podczas resetowania ustawieÅ„ i ponownego importu", - "collection.source.controls.reset.completed": "Reset ustawieÅ„ i powtórny import zostaÅ‚y zakoÅ„czone", - "collection.source.controls.reset.submit": "Resetowanie i powtórny import", - "collection.source.controls.reset.running": "Resetowanie i powtórny import...", - "collection.source.controls.harvest.status": "Status odczytywania:", - "collection.source.controls.harvest.start": "Czas rozpoczÄ™cia odczytywania:", - "collection.source.controls.harvest.last": "Czas ostatniego odczytywania:", - "collection.source.controls.harvest.message": "Informacje nt. odczytywania:", - "collection.source.controls.harvest.no-information": "bd.", - "collection.source.update.notifications.error.content": "Te ustawienia zostaÅ‚y przetestowane i nie dziaÅ‚ajÄ….", - "collection.source.update.notifications.error.title": "BÅ‚Ä…d serwera", - "communityList.breadcrumbs": "Lista zbiorów", - "communityList.tabTitle": "Lista zbiorów", - "communityList.title": "Lista zbiorów", - "communityList.showMore": "Pokaż wiÄ™cej", - "community.create.head": "Utwórz zbiór", - "community.create.notifications.success": "UdaÅ‚o siÄ™ utworzyć zbiór", - "community.create.sub-head": "Utwórz podzbiór dla zbioru {{ parent }}", - "community.curate.header": "ZarzÄ…dzaj zbiorem: {{community}}", - "community.delete.cancel": "Anuluj", - "community.delete.confirm": "Potwierdź", - "community.delete.processing": "Usuwanie...", - "community.delete.head": "UsuÅ„ zbiór", - "community.delete.notification.fail": "Zbiór nie może być usuniÄ™ty", - "community.delete.notification.success": "UdaÅ‚o siÄ™ usunąć zbiór", - "community.delete.text": "Czy na pewno chcesz usunąć zbiór \"{{ dso }}\"", - "community.edit.delete": "UsuÅ„ ten zbiór", - "community.edit.head": "Edytuj zbiór", - "community.edit.breadcrumbs": "Edytuj zbiór", - "community.edit.logo.delete.title": "UsuÅ„ logo", - "community.edit.logo.delete-undo.title": "Cofnij usuniÄ™cie", - "community.edit.logo.label": "Logo zbioru", - "community.edit.logo.notifications.add.error": "PrzesÅ‚anie loga zbioru nie powiodÅ‚o siÄ™. Sprawdź czy wszystkie parametry sÄ… odpowiednie przed próbÄ… ponownego przesÅ‚ania.", - "community.edit.logo.notifications.add.success": "PrzesÅ‚anie loga powiodÅ‚o siÄ™.", - "community.edit.logo.notifications.delete.success.title": "Logo usuniÄ™te", - "community.edit.logo.notifications.delete.success.content": "UsuniÄ™cie loga zbioru powiodÅ‚o siÄ™", - "community.edit.logo.notifications.delete.error.title": "BÅ‚Ä…d podczas usuwania loga", - "community.edit.logo.upload": "Upuść logo zbioru, aby je przesÅ‚ać", - "community.edit.notifications.success": "UdaÅ‚o siÄ™ edytować zbiór", - "community.edit.notifications.unauthorized": "Nie masz uprawnieÅ„, aby wykonać te zmiany", - "community.edit.notifications.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas edycji zbioru", - "community.edit.return": "Cofnij", - "community.edit.tabs.curate.head": "Administruj", - "community.edit.tabs.curate.title": "Edycja zbioru - administrator", - "community.edit.tabs.metadata.head": "Edytuj metadane", - "community.edit.tabs.metadata.title": "Edycja zbioru - metadane", - "community.edit.tabs.roles.head": "Przypisz role", - "community.edit.tabs.roles.title": "Edycja zbioru - role", - "community.edit.tabs.authorizations.head": "Uprawnienia", - "community.edit.tabs.authorizations.title": "Edycja zbioru - uprawnienia", - "community.listelement.badge": "Zbiór", - "comcol-role.edit.no-group": "Brak", - "comcol-role.edit.create": "Utwórz", - "comcol-role.edit.restrict": "Ogranicz", - "comcol-role.edit.delete": "UsuÅ„", - "comcol-role.edit.community-admin.name": "Administratorzy", - "comcol-role.edit.collection-admin.name": "Administratorzy", - "comcol-role.edit.community-admin.description": "Administratorzy zbioru mogÄ… tworzyć podzbiory lub kolekcje i zarzÄ…dzać nimi lub przydzielać zarzÄ…dzanie tymi podzbiorami lub kolekcji innym użytkownikom. Ponadto decydujÄ…, kto może przesyÅ‚ać elementy do dowolnych podkolekcji, edytować metadane pozycji (po przesÅ‚aniu) i dodawać (mapować) istniejÄ…ce pozycje z innych kolekcji (z zastrzeżeniem autoryzacji).", - "comcol-role.edit.collection-admin.description": "Administratorzy kolekcji decydujÄ… o tym, kto może przesyÅ‚ać pozycje do kolekcji, edytować metadane pozycji (po ich przesÅ‚aniu) oraz dodawać (mapować) istniejÄ…ce elementy z innych kolekcji do tej kolekcji (z zastrzeżeniem uprawnieÅ„ dla danej kolekcji).", - "comcol-role.edit.submitters.name": "ZgÅ‚aszajÄ…cy", - "comcol-role.edit.submitters.description": "Użytkownicy i grupy, którzy majÄ… uprawnienia do przesyÅ‚ania nowych pozycji do tej kolekcji.", - "comcol-role.edit.item_read.name": "DomyÅ›lny dostÄ™p do odczytu pozycji", - "comcol-role.edit.item_read.description": "Użytkownicy i grupy, które mogÄ… odczytywać nowe pozycje zgÅ‚oszone do tej kolekcji. Zmiany w tej roli nie dziaÅ‚ajÄ… wstecz. IstniejÄ…ce pozycje w systemie bÄ™dÄ… nadal widoczne dla osób, które miaÅ‚y dostÄ™p do odczytu w momencie ich dodania.", - "comcol-role.edit.item_read.anonymous-group": "DomyÅ›lny odczyt dla nowych pozycji jest obecnie ustawiony na Anonimowy.", - "comcol-role.edit.bitstream_read.name": "DomyÅ›lny dostÄ™p do oczytu plików", - "comcol-role.edit.bitstream_read.description": "Administratorzy zbiorów mogÄ… tworzyć podzbiory lub kolekcje, a także zarzÄ…dzać nimi. Ponadto decydujÄ… o tym, kto może przesyÅ‚ać elementy do podkolekcji, edytować metadane pozycji (po ich przesÅ‚aniu) oraz dodawać (mapować) istniejÄ…ce pozycje z innych kolekcji (pod warunkiem posiadania odpowiednich uprawnieÅ„).", - "comcol-role.edit.bitstream_read.anonymous-group": "DomyÅ›lny status odczytu dla nowych plików to Anonimowy.", - "comcol-role.edit.editor.name": "Redaktorzy", - "comcol-role.edit.editor.description": "Redaktorzy mogÄ… edytować metadane nowych pozycji, a nastÄ™pnie akceptować je lub odrzucać.", - "comcol-role.edit.finaleditor.name": "Redaktorzy koÅ„cowi", - "comcol-role.edit.finaleditor.description": "Redaktorzy koÅ„cowi mogÄ… edytować metadane nowych pozycji, ale nie mogÄ™ odrzucać pozycji.", - "comcol-role.edit.reviewer.name": "Recenzenci", - "comcol-role.edit.reviewer.description": "Recenzenci mogÄ… akceptować lub odrzucać nowe pozycje, ale nie mogÄ™ edytować ich metadanych.", - "community.form.abstract": "Opis skrócony", - "community.form.description": "WstÄ™p (HTML)", - "community.form.errors.title.required": "Wprowadź nazwÄ™ zbioru", - "community.form.rights": "Prawa autoskie (HTML)", - "community.form.tableofcontents": "WiadomoÅ›ci (HTML)", - "community.form.title": "Nazwa", - "community.page.edit": "Edytuj ten zbiór", - "community.page.handle": "StaÅ‚y URI zbioru", - "community.page.license": "Licencja", - "community.page.news": "WiadomoÅ›ci", - "community.all-lists.head": "Podzbiory i kolekcje", - "community.sub-collection-list.head": "Kolekcje w tym zbiorze", - "community.sub-community-list.head": "Kolekcje w tym zbiorze", - "cookies.consent.accept-all": "Zaakceptuj wszystko", - "cookies.consent.accept-selected": "Zaakceptuj wybrane", - "cookies.consent.app.opt-out.description": "Aplikacja jest domyÅ›lnie wÅ‚Ä…czona (możesz jÄ… wyÅ‚Ä…czyć)", - "cookies.consent.app.opt-out.title": "(możesz jÄ… wyÅ‚aczyć)", - "cookies.consent.app.purpose": "cel", - "cookies.consent.app.required.description": "Ta aplikacja jest zawsze wymagana", - "cookies.consent.app.required.title": "(zawsze wymagana)", - "cookies.consent.update": "Od ostatniej wizyty zostaÅ‚y wprowadzone zmiany. Zweryfikuj swoje zgody.", - "cookies.consent.close": "Zamknij", - "cookies.consent.decline": "Odrzuć", - "cookies.consent.content-notice.description": "Zbieramy i przetwarzamy Twoje dane do nastÄ™pujÄ…cych celów: <strong>weryfikacja, preferencje, zgody i statystyka</strong>. <br/> JeÅ›li chcesz siÄ™ dowiedzieć wiÄ™cej, przycztaj naszÄ… {privacyPolicy}.", - "cookies.consent.content-notice.learnMore": "Dostosuj", - "cookies.consent.content-modal.description": "Tutaj sÄ… wyÅ›wietlane informacje, które zbieramy o Tobie. Możesz je dostosować wedÅ‚ug swojego uznania.", - "cookies.consent.content-modal.privacy-policy.name": "polityka prywatnoÅ›ci", - "cookies.consent.content-modal.privacy-policy.text": "Aby dowiedzieć siÄ™ wiÄ™cej przeczytaj naszÄ… {privacyPolicy}.", - "cookies.consent.content-modal.title": "Informacje, które zbieramy", - "cookies.consent.app.title.authentication": "Logowanie", - "cookies.consent.app.description.authentication": "Musisz siÄ™ zalogować", - "cookies.consent.app.title.preferences": "Preferencje", - "cookies.consent.app.description.preferences": "Wymagane, aby zapisać Twoje preferencje", - "cookies.consent.app.title.acknowledgement": "Zgody", - "cookies.consent.app.description.acknowledgement": "Wymagane, aby zapisać Twoje preferencje", - "cookies.consent.app.title.google-analytics": "Google Analytics", - "cookies.consent.app.description.google-analytics": "Pozwól na Å›ledzenie do celów statystycznych", - "cookies.consent.purpose.functional": "Funkcjonalne", - "cookies.consent.purpose.statistical": "Statystyczne", - "curation-task.task.checklinks.label": "Sprawdź odnoÅ›niki w metadanych", - "curation-task.task.noop.label": "NOOP", - "curation-task.task.profileformats.label": "Profil formatów plików", - "curation-task.task.requiredmetadata.label": "Sprawdź poprawność wymaganych metadanych", - "curation-task.task.translate.label": "Microsoft Translator", - "curation-task.task.vscan.label": "Skan antywirusowy", - "curation.form.task-select.label": "Zadanie:", - "curation.form.submit": "Start", - "curation.form.submit.success.head": "UdaÅ‚o siÄ™ rozpocząć zadanie administratora", - "curation.form.submit.success.content": "Zostaniesz przeniesiony na stronÄ™ procesu.", - "curation.form.submit.error.head": "Nie udaÅ‚o siÄ™ siÄ™ zakoÅ„czyć zadania administratora", - "curation.form.submit.error.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas rozpoczynania zadania administracyjnego.", - "curation.form.handle.label": "Automatyzacja:", - "curation.form.handle.hint": "Wskazówka: Wpisz [prefix swojego identyfikatora]/0, aby zautomatyzować zadanie (nie wszystkie zadania mogÄ… wspierać tÄ™ funkcjÄ™)", - "deny-request-copy.email.message": "Drogi użytkowniku {{ recipientName }},\nW odpowiedzi na PaÅ„stwa zapytanie, przykro mi poinformować, że to niemożliwe, aby przestać kopiÄ™ pliku, o który PaÅ„stwo prosili: \"{{ itemUrl }}\" ({{ itemName }}), którego jestem autorem.\n\nPozdrawiam serdecznie,\n{{ authorName }} <{{ authorEmail }}>", - "deny-request-copy.email.subject": "WystÄ…p o kopiÄ™ dokumentu", - "deny-request-copy.error": "WystÄ…piÅ‚ bÅ‚Ä…d", - "deny-request-copy.header": "Odrzuć proÅ›bÄ™ o przesÅ‚anie kopii dokumentu", - "deny-request-copy.intro": "Ta wiadomość zostanie przesÅ‚ana do osoby, która wystÄ…piÅ‚a o dostÄ™p", - "deny-request-copy.success": "Z powodzeniem odrzucono proÅ›bÄ™ o udostÄ™pnienie pozycji", - "dso.name.untitled": "Brak tytuÅ‚u", - "dso-selector.claim.item.head": "Wskazówki profilu", - "dso-selector.claim.item.body": "IstniejÄ… profile, które mogÄ… odnosić siÄ™ do Ciebie. JeÅ›li, któryÅ› z tych profilów jest Twój, wybierz go i przejdź do szczegółów, z opcji wybierz opcjÄ™ przypisania profilu. W innym przypadku możesz utworzyć nowy profil z szablonu, wybierajÄ…c przycisk poniżej.", - "dso-selector.claim.item.create-from-scratch": "Utwórz nowy", - "dso-selector.claim.item.not-mine-label": "Å»aden nie jest mój", - "dso-selector.create.collection.head": "Nowa kolekcja", - "dso-selector.create.collection.sub-level": "Utwórz nowÄ… kolekcjÄ™ w", - "dso-selector.create.community.head": "Nowy zbiór", - "dso-selector.create.community.sub-level": "Utwórz nowy zbiór", - "dso-selector.create.community.top-level": "Utwórz nowy nadrzÄ™dny zbiór", - "dso-selector.create.item.head": "Nowa pozycja", - "dso-selector.create.item.sub-level": "Utwórz nowÄ… pozycjÄ™ w", - "dso-selector.create.submission.head": "Nowe zgÅ‚oszenie", - "dso-selector.edit.collection.head": "Edytuj kolekcjÄ™", - "dso-selector.edit.community.head": "Edytuj zbiór", - "dso-selector.edit.item.head": "Edytuj pozycjÄ™", - "dso-selector.error.title": "WystÄ…piÅ‚ bÅ‚Ä…d podczas wyszukiwania typu {{ type }}", - "dso-selector.export-metadata.dspaceobject.head": "Eksportuj metadane z", - "dso-selector.no-results": "Nie znaleziono {{ type }}", - "dso-selector.placeholder": "Wyszukaj {{ type }}", - "dso-selector.select.collection.head": "Wybierz kolekcjÄ™", - "dso-selector.set-scope.community.head": "Wybierz wyszukiwanie zakresu", - "dso-selector.set-scope.community.button": "Wyszukaj w caÅ‚ym DSpace", - "dso-selector.set-scope.community.input-header": "Wyszukaj zbiór lub kolekcjÄ™", - "confirmation-modal.export-metadata.header": "Eksportuj metadane z {{ dsoName }}", - "confirmation-modal.export-metadata.info": "Czy na pewno chcesz eksportować metadane z {{ dsoName }}", - "confirmation-modal.export-metadata.cancel": "Anuluj", - "confirmation-modal.export-metadata.confirm": "Eksportuj", - "confirmation-modal.delete-eperson.header": "UsuÅ„ użytkownika \"{{ dsoName }}\"", - "confirmation-modal.delete-eperson.info": "Czy na pewno chcesz usunąć użytkownika \"{{ dsoName }}\"", - "confirmation-modal.delete-eperson.cancel": "Anuluj", - "confirmation-modal.delete-eperson.confirm": "UsuÅ„", - "error.bitstream": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia plików", - "error.browse-by": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia pozycji", - "error.collection": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia kolekcji", - "error.collections": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia kolekcji", - "error.community": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia ziboru", - "error.identifier": "Nie znaleziono pozycji z podanym identyfikatorem", - "error.default": "BÅ‚Ä…d", - "error.item": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia pozycji", - "error.items": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia pozycji", - "error.objects": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia obiektów", - "error.recent-submissions": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia ostatniego zgÅ‚oszenia", - "error.search-results": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia wyników wyszukiwania", - "error.sub-collections": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia podkolekcji", - "error.sub-communities": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia podzbiorów", - "error.submission.sections.init-form-error": "WystÄ…piÅ‚ bÅ‚Ä…d w czasie inicjalizacji sekcji, sprawdź konfiguracjÄ™. Szczegóły poniżej: <br> <br>", - "error.top-level-communities": "BÅ‚Ä…d podczas pobierania nadrzÄ™dnego zbioru", - "error.validation.license.notgranted": "Musisz wyrazić tÄ™ zgodÄ™, aby przesÅ‚ać swoje zgÅ‚oszenie. JeÅ›li nie możesz wyrazić zgody w tym momencie, możesz zapisać swojÄ… pracÄ™ i wrócić do niej później lub usunąć zgÅ‚oszenie.", - "error.validation.pattern": "Te dane wejÅ›ciowe sÄ… ograniczone przez aktualny wzór: {{ pattern }}.", - "error.validation.filerequired": "PrzesÅ‚anie pliku jest obowiÄ…zkowe", - "error.validation.required": "Pole jest wymagane", - "error.validation.NotValidEmail": "E-mail nie jest poprawny", - "error.validation.emailTaken": "E-mail jest już zarejestrowany", - "error.validation.groupExists": "Ta grupa już istnieje", - "file-section.error.header": "BÅ‚Ä…d podczas uzyskiwania plików dla tej pozycji", - "footer.copyright": "copyright © 2002-{{ year }}", - "footer.link.dspace": "oprogramowanie DSpace", - "footer.link.lyrasis": "LYRASIS", - "footer.link.cookies": "Ustawienia plików cookies", - "footer.link.privacy-policy": "Polityka prywatnoÅ›ci", - "footer.link.end-user-agreement": "Umowa użytkownika", - "forgot-email.form.header": "Nie pamiÄ™tam hasÅ‚a", - "forgot-email.form.info": "Zarejestruj siÄ™, aby otrzymywać wiadomoÅ›ci o nowych pozycjach w obserowanych kolekcjach, a także przesyÅ‚ać nowe pozycje do repozytorium.", - "forgot-email.form.email": "Adres e-mail *", - "forgot-email.form.email.error.required": "UzupeÅ‚nij adres e-mail", - "forgot-email.form.email.error.pattern": "UzupeÅ‚nij prawidÅ‚owy adres e-mail", - "forgot-email.form.email.hint": "Ten adres e-mail bÄ™dzie zweryfikowany i bÄ™dziesz go używać jako swój login.", - "forgot-email.form.submit": "WyÅ›lij", - "forgot-email.form.success.head": "WysÅ‚ano wiadomość weryfikacyjnÄ…", - "forgot-email.form.success.content": "Wiadomość zostaÅ‚a wysÅ‚ana na adres e-mail {{ email }}. Zawiera ona unikatowy link i dalsze instrukcje postÄ™powania.", - "forgot-email.form.error.head": "BÅ‚Ä…d podczas rejestracji adresu e-mail", - "forgot-email.form.error.content": "WystÄ…piÅ‚ bÅ‚Ä…d poczas próby rejestracji tego adresu e-mail: {{ email }}", - "forgot-password.title": "Nie pamiÄ™tam hasÅ‚a", - "forgot-password.form.head": "Nie pamiÄ™tam hasÅ‚a", - "forgot-password.form.info": "Wpisz nowe hasÅ‚o w polu poniżej i potwierdź je wpisujÄ…c je ponownie w drugim polu. HasÅ‚o powinno mieć co najmniej sześć znaków.", - "forgot-password.form.card.security": "BezpieczeÅ„stwo", - "forgot-password.form.identification.header": "Identifikacja", - "forgot-password.form.identification.email": "Adres e-mail: ", - "forgot-password.form.label.password": "HasÅ‚o", - "forgot-password.form.label.passwordrepeat": "Potwierdź hasÅ‚o", - "forgot-password.form.error.empty-password": "Wpisz hasÅ‚o poniżej.", - "forgot-password.form.error.matching-passwords": "HasÅ‚a nie sÄ… identyczne.", - "forgot-password.form.notification.error.title": "BÅ‚Ä…d podczas próby ustawienia nowego hasÅ‚a", - "forgot-password.form.notification.success.content": "Resetowanie hasÅ‚a udaÅ‚o siÄ™. Zalogowano jako stworzony przed momemntem użytkownik.", - "forgot-password.form.notification.success.title": "Resetowanie hasÅ‚a udane", - "forgot-password.form.submit": "Wpisz hasÅ‚o", - "form.add": "Dodaj", - "form.add-help": "Wybierz ten przycisk, aby dodać aktualny wpis lub dodać nastÄ™pny", - "form.cancel": "Anuluj", - "form.clear": "Wyczyść", - "form.clear-help": "Kliknij tutaj, aby usunąć wybranÄ… wartość", - "form.discard": "Odrzuć", - "form.drag": "PrzeciÄ…gnij", - "form.edit": "Edytuj", - "form.edit-help": "Kliknij tutaj, aby edytować wybranÄ… wartość", - "form.first-name": "ImiÄ™", - "form.last-name": "Nazwisko", - "form.loading": "Åadowanie...", - "form.lookup": "PrzeglÄ…daj", - "form.lookup-help": "Kliknij tutaj, aby zobaczyć istniejÄ…ce powiÄ…zania", - "form.no-results": "Nie znaleziono rezultatów", - "form.no-value": "Nie wprowadzono wartoÅ›ci", - "form.remove": "UsuÅ„", - "form.save": "Zapisz", - "form.save-help": "Zapisz zmiany", - "form.search": "Wyszukaj", - "form.search-help": "Kliknij tutaj, aby wyszukać w istniejÄ…cych komentarzach", - "form.submit": "Zapisz", - "form.repeatable.sort.tip": "Upuść nowÄ… pozycjÄ™ w nowym miejscu", - "grant-deny-request-copy.deny": "Nie przesyÅ‚aj kopii", - "grant-deny-request-copy.email.back": "Cofnij", - "grant-deny-request-copy.email.message": "WiadomoÅ›ci", - "grant-deny-request-copy.email.message.empty": "ProszÄ™ wprowadzić wiadomość", - "grant-deny-request-copy.email.permissions.info": "W tym miejscu możesz przemyÅ›leć ograniczenie dostÄ™pu do dokumentu, aby odpowiadać na mniej próśb o dostÄ™p. JeÅ›li chcesz wystÄ…pić do administratorów reposytorium o zniesienie restrykcji, zaznacz okienko poniżej.", - "grant-deny-request-copy.email.permissions.label": "Ustaw jako otwarty dostÄ™p", - "grant-deny-request-copy.email.send": "WyÅ›lij", - "grant-deny-request-copy.email.subject": "Temat", - "grant-deny-request-copy.email.subject.empty": "Wpisz temat", - "grant-deny-request-copy.grant": "WyÅ›lij kopiÄ™", - "grant-deny-request-copy.header": "ProÅ›ba o przesÅ‚anie kopii dokumentu", - "grant-deny-request-copy.home-page": "Zabierz mnie na stronÄ™ głównÄ…", - "grant-deny-request-copy.intro1": "JeÅ›li jesteÅ› jednym z autorów dokumentu <a href='{{ url }}'>{{ name }}</a>, wybierz jednÄ… z poniższych opcji, aby odpowiedzieć zapytaniu użytkownika.", - "grant-deny-request-copy.intro2": "Po wybraniu opcji, zostanÄ… wyÅ›wietlone sugerowane odpowiedzi, które można edytować.", - "grant-deny-request-copy.processed": "Ta proÅ›ba jest już procesowana. Możesz użyć przycisku poniżej, aby wrócić do strony głównej.", - "grant-request-copy.email.message": "Drogi użytkowniku {{ recipientName }},\nW odpowiedzi na PaÅ„stwa zapytanie, miÅ‚o mi poinformować, że w zaÅ‚Ä…czniku przesyÅ‚am kopiÄ™ dokumentu, o który PaÅ„stwo prosili: \"{{ itemUrl }}\" ({{ itemName }}), którego jestem autorem.\n\nPozdrawiam serdecznie,\n{{ authorName }} <{{ authorEmail }}>", - "grant-request-copy.email.subject": "ProÅ›ba o kopiÄ™ dokumentu", - "grant-request-copy.error": "WystÄ…piÅ‚ bÅ‚Ä…d", - "grant-request-copy.header": "Zezwól na wysÅ‚anie kopii dokumentu", - "grant-request-copy.intro": "To wiadomość zostanie wysÅ‚ana do osoby, która wystÄ…piÅ‚a o dostÄ™p. Wskazane dokumenty zostanÄ… doÅ‚Ä…czone jako zaÅ‚Ä…cznik.", - "grant-request-copy.success": "ProÅ›ba o dostÄ™p do dokumentu zostaÅ‚a przyjÄ™ta", - "home.description": "", - "home.breadcrumbs": "Strona główna", - "home.search-form.placeholder": "Przeszukaj repozytorium...", - "home.title": "Strona główna", - "home.top-level-communities.head": "Zbiory w DSpace", - "home.top-level-communities.help": "Przeszukaj kolekcje", - "info.end-user-agreement.accept": "PrzeczytaÅ‚em/am i akceptujÄ™ umowÄ™ użytkownika", - "info.end-user-agreement.accept.error": "BÅ‚Ä…d wystÄ…piÅ‚ podczas akceptowania umowy użytkownika", - "info.end-user-agreement.accept.success": "UdaÅ‚o siÄ™ zaktualizować umowÄ™ użytkownika", - "info.end-user-agreement.breadcrumbs": "Umowa użytkownika", - "info.end-user-agreement.buttons.cancel": "Anuluj", - "info.end-user-agreement.buttons.save": "Zapisz", - "info.end-user-agreement.head": "Umowa użytkownika", - "info.end-user-agreement.title": "Umowa użytkownika", - "info.privacy.breadcrumbs": "OÅ›wiadczenie polityki prywatnoÅ›ci", - "info.privacy.head": "OÅ›wiadczenie polityki prywatnoÅ›ci", - "info.privacy.title": "OÅ›wiadczenie polityki prywatnoÅ›ci", - "item.alerts.private": "Ta pozycja jest prywatna", - "item.alerts.withdrawn": "Ta pozycja zostaÅ‚a wycofana", - "item.edit.authorizations.heading": "Za pomocÄ… tego edytora możesz przeglÄ…dać i zmieniać polityki dla danej pozycji, a także zmieniać polityki dla poszczególnych części pozycji: paczek i strumieni bitów. W skrócie, pozycja jest kontenerem pakietów, a pakiety sÄ… kontenerami strumieni bitów. Kontenery zazwyczaj majÄ… polityki ADD/REMOVE/READ/WRITE, natomiast strumienie bitów majÄ… tylko polityki READ/WRITE.", - "item.edit.authorizations.title": "Edytuj politykÄ™ tej pozycji", - "item.badge.private": "Prywatny status publikacji", - "item.badge.withdrawn": "Wycofane publikacje", - "item.bitstreams.upload.bundle": "Pakiet", - "item.bitstreams.upload.bundle.placeholder": "Wybierz pakiet", - "item.bitstreams.upload.bundle.new": "Utworz pakiet", - "item.bitstreams.upload.bundles.empty": "Ta pozycja nie zawiera żadnych pakietów, do których można przesÅ‚ać strumieÅ„ bitów.", - "item.bitstreams.upload.cancel": "Anuluj", - "item.bitstreams.upload.drop-message": "Upuść plik, aby przesÅ‚ać", - "item.bitstreams.upload.item": "Pozycja: ", - "item.bitstreams.upload.notifications.bundle.created.content": "UdaÅ‚o siÄ™ utworzyć nowy pakiet.", - "item.bitstreams.upload.notifications.bundle.created.title": "Utwórz pakiet", - "item.bitstreams.upload.notifications.upload.failed": "Zweryfikuj pliki przed spróbowaniem ponownie.", - "item.bitstreams.upload.title": "PrzeÅ›lij strumieÅ„ bitów", - "item.edit.bitstreams.bundle.edit.buttons.upload": "PrzeÅ›lij", - "item.edit.bitstreams.bundle.displaying": "Obecnie wyÅ›wietlono {{ amount }} plików z {{ total }}.", - "item.edit.bitstreams.bundle.load.all": "ZaÅ‚aduj wszystkie ({{ total }})", - "item.edit.bitstreams.bundle.load.more": "ZaÅ‚aduj wiÄ™cej", - "item.edit.bitstreams.bundle.name": "PACZKA: {{ name }}", - "item.edit.bitstreams.discard-button": "Odrzuć", - "item.edit.bitstreams.edit.buttons.download": "Pobierz", - "item.edit.bitstreams.edit.buttons.drag": "PrzeciÄ…gnij", - "item.edit.bitstreams.edit.buttons.edit": "Edytuj", - "item.edit.bitstreams.edit.buttons.remove": "UsuÅ„", - "item.edit.bitstreams.edit.buttons.undo": "Cofnij zmiany", - "item.edit.bitstreams.empty": "Ta pozycja nie zawiera żadnych strumieni bitów. Wybierz strumienie do zaÅ‚adowania, aby je utworzyć.", - "item.edit.bitstreams.headers.actions": "Akcje", - "item.edit.bitstreams.headers.bundle": "Paczka", - "item.edit.bitstreams.headers.description": "Opis", - "item.edit.bitstreams.headers.format": "Format", - "item.edit.bitstreams.headers.name": "Nazwa", - "item.edit.bitstreams.notifications.discarded.content": "Twoje zmiany zostaÅ‚y odrzucone. Aby je przywrócić, wybierz przycisk 'Cofnij'", - "item.edit.bitstreams.notifications.discarded.title": "Zmiany odrzucone", - "item.edit.bitstreams.notifications.move.failed.title": "BÅ‚Ä…d podczas przenoszenia plików", - "item.edit.bitstreams.notifications.move.saved.content": "Zmiany pozycji dla pliku tej pozycji oraz jego paczki zostaÅ‚y zapisane.", - "item.edit.bitstreams.notifications.move.saved.title": "Zmiana pozycji zostaÅ‚a zapisana", - "item.edit.bitstreams.notifications.outdated.content": "Pozycja zostaÅ‚a w miÄ™dzyczasie zmieniona przez innego użytkownika. Twoje zmiany zostaÅ‚y cofniÄ™te, aby uniknąć ewentualnych konfliktów", - "item.edit.bitstreams.notifications.outdated.title": "Zmiany nieaktualne", - "item.edit.bitstreams.notifications.remove.failed.title": "BÅ‚Ä…d podczas usuwania pliku", - "item.edit.bitstreams.notifications.remove.saved.content": "Twoje zmiany dotyczÄ…ce usuniÄ™cia plików z tej pozycji zostaÅ‚y zapisane.", - "item.edit.bitstreams.notifications.remove.saved.title": "Zmiany dotyczÄ…ce usuniÄ™cia zapisane", - "item.edit.bitstreams.reinstate-button": "Cofnij", - "item.edit.bitstreams.save-button": "Zapisz", - "item.edit.bitstreams.upload-button": "PrzeÅ›lij", - "item.edit.delete.cancel": "Anuluj", - "item.edit.delete.confirm": "UsuÅ„", - "item.edit.delete.description": "Czy jesteÅ› pewien, że ta pozycja powinna zostać caÅ‚kowicie usuniÄ™ta? Ostrożnie: Teraz nie pozostanie po tej pozycji żaden Å›lad.", - "item.edit.delete.error": "BÅ‚Ä…d wystÄ…piÅ‚ podczas usuwania pozycji", - "item.edit.delete.header": "UsuÅ„ pozycjÄ™: {{ id }}", - "item.edit.delete.success": "Ta pozycja zostaÅ‚a usuniÄ™ta", - "item.edit.head": "Edytuj pozycjÄ™", - "item.edit.breadcrumbs": "Edytuj pozycjÄ™", - "item.edit.tabs.disabled.tooltip": "Nie masz dostÄ™pu do tej strony", - "item.edit.tabs.mapper.head": "Mapper kolekcji", - "item.edit.tabs.item-mapper.title": "Edytowanie pozycji - Mapper kolekcji", - "item.edit.item-mapper.buttons.add": "Mapowanie pozycji do wybranych kolekcji", - "item.edit.item-mapper.buttons.remove": "UsuÅ„ mapowanie pozycji do wybranych kolekcji", - "item.edit.item-mapper.cancel": "Anuluj", - "item.edit.item-mapper.description": "To jest narzÄ™dzie do mapowania elementów, które pozwala administratorom mapować tÄ™ pozycjÄ™ do innych kolekcji. Możesz wyszukiwać kolekcje i je mapować lub przeglÄ…dać listÄ™ kolekcji, do których dana pozycja jest aktualnie zmapowana.", - "item.edit.item-mapper.head": "Mapper pozycji - Mapowanie pozycji do kolekcji", - "item.edit.item-mapper.item": "Pozycja: \"<b>{{name}}</b>\"", - "item.edit.item-mapper.no-search": "Wpisz zapytanie, które chcesz wyszukać", - "item.edit.item-mapper.notifications.add.error.content": "WystÄ…piÅ‚y bÅ‚Ä™dy dla mapowania pozycji w {{amount}} kolekcjach.", - "item.edit.item-mapper.notifications.add.error.head": "BÅ‚Ä™dy mapowania", - "item.edit.item-mapper.notifications.add.success.content": "UdaÅ‚o siÄ™ zmapować elementy dla {{amount}} kolekcji.", - "item.edit.item-mapper.notifications.add.success.head": "Mapowanie zakoÅ„czone", - "item.edit.item-mapper.notifications.remove.error.content": "WystÄ…piÅ‚y bÅ‚Ä™dy podczas usuwania mapowania do {{amount}} kolekcji.", - "item.edit.item-mapper.notifications.remove.error.head": "UsuniÄ™cie mapowania bÅ‚Ä™dów", - "item.edit.item-mapper.notifications.remove.success.content": "UdaÅ‚o siÄ™ usunąć mapowanie pozycji w {{amount}} kolekcjach.", - "item.edit.item-mapper.notifications.remove.success.head": "Usuwanie mapowania zakoÅ„czone", - "item.edit.item-mapper.search-form.placeholder": "Przeszukaj kolekcje...", - "item.edit.item-mapper.tabs.browse": "PrzeglÄ…daj zmapowane kolekcje", - "item.edit.item-mapper.tabs.map": "Mapuj nowe kolekcje", - "item.edit.metadata.add-button": "Dodaj", - "item.edit.metadata.discard-button": "Odrzuć", - "item.edit.metadata.edit.buttons.edit": "Edytuj", - "item.edit.metadata.edit.buttons.remove": "UsuÅ„", - "item.edit.metadata.edit.buttons.undo": "Cofnij zmiany", - "item.edit.metadata.edit.buttons.unedit": "Zatrzymaj edycjÄ™", - "item.edit.metadata.empty": "Ta pozycja nie zawiera żadnych metadanych. Wybierz Dodaj, aby dodać metadane.", - "item.edit.metadata.headers.edit": "Edytuj", - "item.edit.metadata.headers.field": "Pole", - "item.edit.metadata.headers.language": "JÄ™zyk", - "item.edit.metadata.headers.value": "Wartość", - "item.edit.metadata.metadatafield.invalid": "Wybierz aktualne pole metadanych", - "item.edit.metadata.notifications.discarded.content": "Twoje zmiany zostaÅ‚y odrzucone. Aby wgrać je ponownie wybierz przycisk 'Cofnij'", - "item.edit.metadata.notifications.discarded.title": "Zmiany odrzucone", - "item.edit.metadata.notifications.error.title": "WystÄ…piÅ‚ bÅ‚Ä…d", - "item.edit.metadata.notifications.invalid.content": "Twoje zmiany nie zostaÅ‚y zapisane. Przed zapisaniem upewnij siÄ™, że wszystkie pola sÄ… wypeÅ‚nione prawidÅ‚owo.", - "item.edit.metadata.notifications.invalid.title": "NieprawidÅ‚owe metadane", - "item.edit.metadata.notifications.outdated.content": "Pozycja zostaÅ‚a w miÄ™dzyczasie zmieniona przez innego użytkownika. Twoje zmiany zostaÅ‚y cofniÄ™te, aby zapobiec ewentualnym konfliktom", - "item.edit.metadata.notifications.outdated.title": "Zmiany nieaktualne", - "item.edit.metadata.notifications.saved.content": "Twoje zmiany metadanych tej pozycji zostaÅ‚y zapisane.", - "item.edit.metadata.notifications.saved.title": "Metadane zostaÅ‚y zapisane", - "item.edit.metadata.reinstate-button": "Cofnij", - "item.edit.metadata.save-button": "Zapisz", - "item.edit.modify.overview.field": "Pole", - "item.edit.modify.overview.language": "JÄ™zyk", - "item.edit.modify.overview.value": "Wartość", - "item.edit.move.cancel": "Anuluj", - "item.edit.move.save-button": "Zapisz", - "item.edit.move.discard-button": "Odrzuć", - "item.edit.move.description": "Wybierz kolekcjÄ™, do której chcesz przenieść tÄ™ pozycjÄ™. Aby zawÄ™zić listÄ™ wyÅ›wietlanych kolekcji, możesz wprowadzić zapytanie w polu wyszukiwania.", - "item.edit.move.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas przenoszenia pozycji", - "item.edit.move.head": "PrzenieÅ› pozycjÄ™: {{id}}", - "item.edit.move.inheritpolicies.checkbox": "Dziedziczenie polityk", - "item.edit.move.inheritpolicies.description": "Dziedzczenie domyÅ›lnych polityk z kolekcji docelowej", - "item.edit.move.move": "PrzenieÅ›", - "item.edit.move.processing": "Przenoszenie...", - "item.edit.move.search.placeholder": "Wpisz zapytanie, aby wyszukać w kolekcjach", - "item.edit.move.success": "Pozycja zostaÅ‚a przeniesiona", - "item.edit.move.title": "PrzenieÅ› pozycjÄ™", - "item.edit.private.cancel": "Anuluj", - "item.edit.private.confirm": "Ukryj", - "item.edit.private.description": "Czy chcesz ukryć tÄ™ pozycjÄ™?", - "item.edit.private.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas ukrywania pozycji", - "item.edit.private.header": "Ukryj pozycjÄ™: {{ id }}", - "item.edit.private.success": "Pozycja jest teraz ukryta", - "item.edit.public.cancel": "Anuluj", - "item.edit.public.confirm": "Upublicznij", - "item.edit.public.description": "Czy chcesz upublicznić tÄ™ pozycjÄ™?", - "item.edit.public.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas upubliczniania pozycji", - "item.edit.public.header": "Upublicznij pozycjÄ™: {{ id }}", - "item.edit.public.success": "Pozycja jest teraz publiczna", - "item.edit.reinstate.cancel": "Anuluj", - "item.edit.reinstate.confirm": "Przywróć", - "item.edit.reinstate.description": "Czy chcesz przywrócić tÄ™ pozycjÄ™?", - "item.edit.reinstate.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas przywracania pozycji", - "item.edit.reinstate.header": "Przywróć pozycjÄ™: {{ id }}", - "item.edit.reinstate.success": "Pozycja zostaÅ‚a przywrócona", - "item.edit.relationships.discard-button": "Odrzuć", - "item.edit.relationships.edit.buttons.add": "Dodaj", - "item.edit.relationships.edit.buttons.remove": "UsuÅ„", - "item.edit.relationships.edit.buttons.undo": "Cofnij zmiany", - "item.edit.relationships.no-relationships": "Brak relacji", - "item.edit.relationships.notifications.discarded.content": "Twoje zmiany zostaÅ‚y cofniÄ™te. Aby przywrócić zmiany wybierz przycisk 'Cofnij'", - "item.edit.relationships.notifications.discarded.title": "Zmiany zostaÅ‚y cofniÄ™te", - "item.edit.relationships.notifications.failed.title": "WystÄ…piÅ‚ bÅ‚Ä…d podczas edytowania relacji", - "item.edit.relationships.notifications.outdated.content": "Ta pozycja zostaÅ‚a wÅ‚aÅ›nie zmieniona przez innego użytkownika. Twoje zmiany zostaÅ‚y cofniÄ™te, aby uniknąć konfliktów", - "item.edit.relationships.notifications.outdated.title": "Zmiany sÄ… nieaktualne", - "item.edit.relationships.notifications.saved.content": "Twoje zmiany w relacjach tej pozycji zostaÅ‚y zapisane.", - "item.edit.relationships.notifications.saved.title": "Relacje zostaÅ‚y zapisane", - "item.edit.relationships.reinstate-button": "Cofnij", - "item.edit.relationships.save-button": "Zapisz", - "item.edit.relationships.no-entity-type": "Dodaj metadanÄ… 'dspace.entity.type', aby umożliwić dodawanie relacji do pozycji", - "item.edit.return": "Cofnij", - "item.edit.tabs.bitstreams.head": "Pliki", - "item.edit.tabs.bitstreams.title": "Edycja pozycji - pliki", - "item.edit.tabs.curate.head": "Administruj", - "item.edit.tabs.curate.title": "Edytowanie pozycji - administruj", - "item.edit.tabs.metadata.head": "Metadane", - "item.edit.tabs.metadata.title": "Edycja pozycji - metadane", - "item.edit.tabs.relationships.head": "Relacje", - "item.edit.tabs.relationships.title": "Edycja pozycja - relacje", - "item.edit.tabs.status.buttons.authorizations.button": "DostÄ™py...", - "item.edit.tabs.status.buttons.authorizations.label": "OkreÅ›lu dostÄ™p do pozycji", - "item.edit.tabs.status.buttons.delete.button": "UsuÅ„ permanentnie", - "item.edit.tabs.status.buttons.delete.label": "UsuÅ„ pozycjÄ™ permanentnie", - "item.edit.tabs.status.buttons.mappedCollections.button": "Zmapowane kolekcje", - "item.edit.tabs.status.buttons.mappedCollections.label": "ZarzÄ…dzaj mapowanymi kolekcjami", - "item.edit.tabs.status.buttons.move.button": "PrzenieÅ›...", - "item.edit.tabs.status.buttons.move.label": "PrzenieÅ› pozycjÄ™ do innej kolekcji", - "item.edit.tabs.status.buttons.private.button": "Ukryj...", - "item.edit.tabs.status.buttons.private.label": "Ukry pozycjÄ™", - "item.edit.tabs.status.buttons.public.button": "Upublicznij...", - "item.edit.tabs.status.buttons.public.label": "Upublicznij pozycjÄ™", - "item.edit.tabs.status.buttons.reinstate.button": "Przywróć...", - "item.edit.tabs.status.buttons.reinstate.label": "Przywróć pozycjÄ™", - "item.edit.tabs.status.buttons.unauthorized": "You're not authorized to perform this action", - "item.edit.tabs.status.buttons.withdraw.button": "Wycofaj...", - "item.edit.tabs.status.buttons.withdraw.label": "Wycofaj z repozytorium", - "item.edit.tabs.status.description": "Witamy na stronie zarzÄ…dzania pozycjami. Z tego miejsca możesz wycofać, przywrócić, przenieść lub usunąć danÄ… pozycjÄ™. Możesz również aktualizować lub dodawać nowe metadane lub pliki..", - "item.edit.tabs.status.head": "Status", - "item.edit.tabs.status.labels.handle": "Identyfikator", - "item.edit.tabs.status.labels.id": "ID pozycji", - "item.edit.tabs.status.labels.itemPage": "Strona pozycji", - "item.edit.tabs.status.labels.lastModified": "Ostatnia modyfikacja", - "item.edit.tabs.status.title": "Edycja pozycji - Status", - "item.edit.tabs.versionhistory.head": "Historia wersji", - "item.edit.tabs.versionhistory.title": "Edycja pozycji - historia wersji", - "item.edit.tabs.versionhistory.under-construction": "Edytowanie lub dodawanie nowych wersji jest niedostÄ™pne w tego poziomu interfejsu.", - "item.edit.tabs.view.head": "Widok pozycji", - "item.edit.tabs.view.title": "Edycja pozycji - widok", - "item.edit.withdraw.cancel": "Anuluj", - "item.edit.withdraw.confirm": "Wycofaj", - "item.edit.withdraw.description": "Czy na pewno chcesz wycofać pozycjÄ™?", - "item.edit.withdraw.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas wycofywania pozycji", - "item.edit.withdraw.header": "Wycofaj pozycjÄ™: {{ id }}", - "item.edit.withdraw.success": "Pozycja zostaÅ‚a wycofana", - "item.listelement.badge": "Pozycja", - "item.page.description": "Opis", - "item.page.journal-issn": "ISSN czasopisma", - "item.page.journal-title": "TytuÅ‚ czasopisma", - "item.page.publisher": "Wydawca", - "item.page.titleprefix": "Pozycja: ", - "item.page.volume-title": "TytuÅ‚ tomu", - "item.search.results.head": "Wyniki wyszukiwania pozycji", - "item.search.title": "Wyszukiwanie pozycji", - "item.page.abstract": "Abstrakt", - "item.page.author": "Autorzy", - "item.page.citation": "Cytowanie", - "item.page.collections": "Kolekcje", - "item.page.collections.loading": "Åadowanie...", - "item.page.collections.load-more": "ZaÅ‚aduj wiÄ™cej", - "item.page.date": "Data", - "item.page.edit": "Edytuj pozycjÄ™", - "item.page.files": "Pliki", - "item.page.filesection.description": "Opis:", - "item.page.filesection.download": "Pobierz", - "item.page.filesection.format": "Format:", - "item.page.filesection.name": "Nazwa:", - "item.page.filesection.size": "Rozmiar:", - "item.page.journal.search.title": "ArtykuÅ‚y w czasopiÅ›mie", - "item.page.link.full": "Zobacz szczegóły", - "item.page.link.simple": "Uproszczony widok", - "item.page.person.search.title": "ArtykuÅ‚y tego autora", - "item.page.related-items.view-more": "Pokaż o {{ amount }} wiÄ™cej", - "item.page.related-items.view-less": "Ukryj {{ amount }}", - "item.page.relationships.isAuthorOfPublication": "Publikacje", - "item.page.relationships.isJournalOfPublication": "Publikacje", - "item.page.relationships.isOrgUnitOfPerson": "Autorzy", - "item.page.relationships.isOrgUnitOfProject": "Projekty naukowe", - "item.page.subject": "SÅ‚owa kluczowe", - "item.page.uri": "URI", - "item.page.bitstreams.view-more": "Pokaż wiÄ™cej", - "item.page.bitstreams.collapse": "Pokaż mniej", - "item.page.filesection.original.bundle": "Oryginalne pliki", - "item.page.filesection.license.bundle": "Licencja", - "item.page.return": "Powrót", - "item.page.version.create": "Utwórz nowÄ… wersjÄ™", - "item.page.version.hasDraft": "Nowa wersja nie może zostać utworzona, ponieważ istnieje już oczekujÄ…ce na akceptacjÄ™ zgÅ‚oszenie dokumentu tego pliku", - "item.preview.dc.identifier.doi": "DOI", - "item.preview.dc.relation.ispartof": "Czasopismo lub seria", - "item.preview.dc.identifier.isbn": "ISBN", - "item.preview.dc.identifier.uri": "Identyfikator:", - "item.preview.dc.contributor.author": "Autorzy:", - "item.preview.dc.date.issued": "Data publikacji:", - "item.preview.dc.description.abstract": "Abstrakt:", - "item.preview.dc.identifier.other": "Inny identyfikator:", - "item.preview.dc.language.iso": "JÄ™zyk:", - "item.preview.dc.title": "TytuÅ‚:", - "item.preview.dc.title.alternative": "TytuÅ‚ alternatywny", - "item.preview.dc.type": "Typ:", - "item.preview.dc.identifier": "Identyfikator:", - "item.preview.dc.relation.issn": "ISSN", - "item.preview.oaire.citation.issue": "Numer wydania", - "item.preview.oaire.citation.volume": "Numer tomu", - "item.preview.person.familyName": "Nazwisko:", - "item.preview.person.givenName": "Nazwa:", - "item.preview.person.identifier.orcid": "ORCID:", - "item.preview.project.funder.name": "Fundator:", - "item.preview.project.funder.identifier": "Identyfikator fundatora:", - "item.preview.oaire.awardNumber": "ID finansowania:", - "item.preview.dc.coverage.spatial": "Jurysdykcja:", - "item.preview.oaire.fundingStream": "ŹródÅ‚o finansowania:", - "item.select.confirm": "Potwierdź zaznaczone", - "item.select.empty": "Brak pozycji do wyÅ›wietlenia", - "item.select.table.author": "Autor", - "item.select.table.collection": "Kolekcja", - "item.select.table.title": "TytuÅ‚", - "item.version.history.empty": "Jeszcze nie ma innych wersji tej pozycji.", - "item.version.history.head": "Poprzednie wersje", - "item.version.history.return": "Powrót", - "item.version.history.selected": "Wybrane wersje", - "item.version.history.selected.alert": "W tym momencie wyÅ›wietlono wersjÄ™ {{version}} pozycji.", - "item.version.history.table.version": "Wersja", - "item.version.history.table.item": "Pozycja", - "item.version.history.table.editor": "Redaktor", - "item.version.history.table.date": "Data", - "item.version.history.table.summary": "Podsumowanie", - "item.version.history.table.workspaceItem": "Wersja robocza", - "item.version.history.table.workflowItem": "Pozycja workflow", - "item.version.history.table.actions": "Akcja", - "item.version.history.table.action.editWorkspaceItem": "Edytuj wersjÄ™ roboczÄ… pozycji", - "item.version.history.table.action.editSummary": "Edytuj podsumowanie", - "item.version.history.table.action.saveSummary": "Zapisz edycje podsumowania", - "item.version.history.table.action.discardSummary": "Odrzuć edycje podsumowania", - "item.version.history.table.action.newVersion": "Utwórz nowÄ… wersjÄ™ z tej wersji", - "item.version.history.table.action.deleteVersion": "Wersja usuniÄ™ta", - "item.version.history.table.action.hasDraft": "Nowa wersja nie może zostać utworzona, ponieważ istnieje już oczekujÄ…ce na akceptacjÄ™ zgÅ‚oszenie dokumentu tego pliku", - "item.version.notice": "To nie jest najnowsza wersja tej pozycji. Najnowsza wersja jest dostÄ™pna <a href='{{destination}}'>tutaj</a>.", - "item.version.create.modal.header": "Nowa wersja", - "item.version.create.modal.text": "Utwórz nowÄ… wersjÄ™ tej pozycji", - "item.version.create.modal.text.startingFrom": "zaczynajÄ…c od wersji {{version}}", - "item.version.create.modal.button.confirm": "Utwórz", - "item.version.create.modal.button.confirm.tooltip": "Utwórz nowÄ… wersjÄ™", - "item.version.create.modal.button.cancel": "Anuluj", - "item.version.create.modal.button.cancel.tooltip": "Nie stwarzaj nowej wersji", - "item.version.create.modal.form.summary.label": "Podsumowanie", - "item.version.create.modal.form.summary.placeholder": "Wprowadź podsumowanie nowej wersji", - "item.version.create.notification.success": "Nowa wersja zostaÅ‚a utworzona z numerem {{version}}", - "item.version.create.notification.failure": "Nowa wersja nie zostaÅ‚a utworzona", - "item.version.create.notification.inProgress": "Nowa wersja nie może być utworzona, ponieważ propozycja innej wersji jest już zÅ‚ożona do zaakceptowania", - "item.version.delete.modal.header": "UsuÅ„ wersjÄ™", - "item.version.delete.modal.text": "Czy chcesz usunąć wersjÄ™ {{version}}?", - "item.version.delete.modal.button.confirm": "UsuÅ„", - "item.version.delete.modal.button.confirm.tooltip": "UsuÅ„ wersjÄ™", - "item.version.delete.modal.button.cancel": "Anuluj", - "item.version.delete.modal.button.cancel.tooltip": "Nie usuwaj tej wersji", - "item.version.delete.notification.success": "Wersja {{version}} zostaÅ‚a usuniÄ™ta", - "item.version.delete.notification.failure": "Wersja {{version}} nie zostaÅ‚a usuniÄ™ta", - "item.version.edit.notification.success": "Podsumowanie wersji {{version}} zostaÅ‚o zmienione", - "item.version.edit.notification.failure": "Podsumowanie wersji {{version}} nie zostaÅ‚o zmienione", - "journal.listelement.badge": "Czasopismo", - "journal.page.description": "Opis", - "journal.page.edit": "Edytuj tÄ™ pozycjÄ™", - "journal.page.editor": "Redaktor naczelny", - "journal.page.issn": "ISSN", - "journal.page.publisher": "Wydawca", - "journal.page.titleprefix": "Czasopismo: ", - "journal.search.results.head": "Wyniki wyszukiwania czasopism", - "journal.search.title": "Wyszukiwanie czasopism", - "journalissue.listelement.badge": "Numer czasopisma", - "journalissue.page.description": "Opis", - "journalissue.page.edit": "Edytuj pozycjÄ™", - "journalissue.page.issuedate": "Data wydania", - "journalissue.page.journal-issn": "ISSN czasopisma", - "journalissue.page.journal-title": "TytuÅ‚ czasopisma", - "journalissue.page.keyword": "SÅ‚owa kluczowe", - "journalissue.page.number": "Numer", - "journalissue.page.titleprefix": "Wydanie czasopisma: ", - "journalvolume.listelement.badge": "Numer tomu czasopisma", - "journalvolume.page.description": "Opis", - "journalvolume.page.edit": "Edytuj pozycjÄ™", - "journalvolume.page.issuedate": "Data wydania", - "journalvolume.page.titleprefix": "Numer tomu czasopisma: ", - "journalvolume.page.volume": "Numer wydania", - "iiifsearchable.listelement.badge": "Multimedia dokumentu", - "iiifsearchable.page.titleprefix": "Dokument: ", - "iiifsearchable.page.doi": "StaÅ‚y link: ", - "iiifsearchable.page.issue": "Wydanie: ", - "iiifsearchable.page.description": "Opis: ", - "iiifviewer.fullscreen.notice": "WyÅ›wietl na peÅ‚nym ekranie dla lepszego widoku.", - "iiif.listelement.badge": "Multimedia obrazu", - "iiif.page.titleprefix": "Obraz: ", - "iiif.page.doi": "StaÅ‚y link: ", - "iiif.page.issue": "Numer wydania: ", - "iiif.page.description": "Opis: ", - "loading.bitstream": "Åadowanie pliku...", - "loading.bitstreams": "Åadowanie plików...", - "loading.browse-by": "Åadowanie pozycji...", - "loading.browse-by-page": "Åadowanie strony...", - "loading.collection": "Åadowanie kolekcji...", - "loading.collections": "Åadowanie kolekcji...", - "loading.content-source": "Åadowanie źródÅ‚a treÅ›ci...", - "loading.community": "Åadowanie zbioru...", - "loading.default": "Åadowanie...", - "loading.item": "Åadowanie pozycji...", - "loading.items": "Åadowanie pozycji...", - "loading.mydspace-results": "Åadowanie pozycji...", - "loading.objects": "Åadowanie...", - "loading.recent-submissions": "Åadowanie ostatnich zgÅ‚oszeÅ„...", - "loading.search-results": "Åadowanie wyników wyszukiwania...", - "loading.sub-collections": "Åadowanie podkolekcji...", - "loading.sub-communities": "Åadowanie podzbioru...", - "loading.top-level-communities": "Åadowanie zbioru wyszego szczebla...", - "login.form.email": "Adres e-mail", - "login.form.forgot-password": "Nie pamiÄ™tasz hasÅ‚a?", - "login.form.header": "Zaloguj siÄ™ do DSpace", - "login.form.new-user": "Nie masz konta? Zarejestruj siÄ™.", - "login.form.or-divider": "lub", - "login.form.orcid": "Zaloguj za pomocÄ… ORCID", - "login.form.oidc": "Zaloguj za pomocÄ… OIDC", - "login.form.password": "HasÅ‚o", - "login.form.shibboleth": "Zaloguj za pomocÄ… Shibboleth", - "login.form.submit": "Zaloguj siÄ™", - "login.title": "Zaloguj", - "login.breadcrumbs": "Zaloguj", - "logout.form.header": "Wyloguj siÄ™ z DSpace", - "logout.form.submit": "Wyloguj siÄ™", - "logout.title": "Wylogowywanie", - "menu.header.admin": "Panel administracyjny", - "menu.header.image.logo": "Logo repozytorium", - "menu.header.admin.description": "Menu administratora", - "menu.section.access_control": "Uprawnienia", - "menu.section.access_control_authorizations": "DostÄ™py", - "menu.section.access_control_groups": "Grupy", - "menu.section.access_control_people": "Użytkownicy", - "menu.section.admin_search": "Wyszukiwanie administracyjne", - "menu.section.browse_community": "Ten zbiór", - "menu.section.browse_community_by_author": "Wg autorów", - "menu.section.browse_community_by_issue_date": "Wg daty wydania", - "menu.section.browse_community_by_title": "Wg tytułów", - "menu.section.browse_global": "Wszystko na DSpace", - "menu.section.browse_global_by_author": "Wg autorów", - "menu.section.browse_global_by_dateissued": "Wg daty wydania", - "menu.section.browse_global_by_subject": "Wg tematu", - "menu.section.browse_global_by_title": "Wg tytuÅ‚u", - "menu.section.browse_global_communities_and_collections": "Zbiory i kolekcje", - "menu.section.control_panel": "Panel sterowania", - "menu.section.curation_task": "Zadanie administracyjne", - "menu.section.edit": "Edytuj", - "menu.section.edit_collection": "Kolekcja", - "menu.section.edit_community": "Zbiór", - "menu.section.edit_item": "Pozycja", - "menu.section.export": "Eksport", - "menu.section.export_collection": "Kolekcja", - "menu.section.export_community": "Zbiór", - "menu.section.export_item": "Pozycja", - "menu.section.export_metadata": "Metadane", - "menu.section.icon.access_control": "Sekcja menu Uprawnienia", - "menu.section.icon.admin_search": "Sekcja menu Wyszukiwanie administracyjne", - "menu.section.icon.control_panel": "Sekcja menu Panel sterowania", - "menu.section.icon.curation_tasks": "Sekcja menu Zadanie administracyjne", - "menu.section.icon.edit": "Sekcja menu Edycja", - "menu.section.icon.export": "Sekcja menu Eksport", - "menu.section.icon.find": "Sekcja menu Wyszukiwanie", - "menu.section.icon.import": "Sekcja menu Import", - "menu.section.icon.new": "Sekcja menu Dodaj", - "menu.section.icon.pin": "Przypnij boczny pasek", - "menu.section.icon.processes": "Sekcja menu Procesy", - "menu.section.icon.registries": "Sekcja menu Rejestry", - "menu.section.icon.statistics_task": "Sekcja menu Zadanie statystyczne", - "menu.section.icon.workflow": "Sekcja menu ZarzÄ…dzanie workflow", - "menu.section.icon.unpin": "Odepnij boczny pasek", - "menu.section.import": "Import", - "menu.section.import_batch": "Import masowy (ZIP)", - "menu.section.import_metadata": "Metadane", - "menu.section.new": "Dodaj", - "menu.section.new_collection": "Kolekcja", - "menu.section.new_community": "Zbiór", - "menu.section.new_item": "Pozycja", - "menu.section.new_item_version": "Wersja pozycji", - "menu.section.new_process": "Proces", - "menu.section.pin": "Przypnij pasek boczny", - "menu.section.unpin": "Odepnij pasek boczny", - "menu.section.processes": "Procesy", - "menu.section.registries": "Rejestry", - "menu.section.registries_format": "Formaty", - "menu.section.registries_metadata": "Metadane", - "menu.section.statistics": "Statystyki", - "menu.section.statistics_task": "Zadanie statystyczne", - "menu.section.toggle.access_control": "PrzeÅ‚Ä…cz sekcjÄ™ Uprawnienia", - "menu.section.toggle.control_panel": "PrzeÅ‚Ä…cz sekcjÄ™ Panel sterowania", - "menu.section.toggle.curation_task": "PrzeÅ‚Ä…cz sekcjÄ™ Zadanie kuratora", - "menu.section.toggle.edit": "PrzeÅ‚Ä…cz sekcjÄ™ Edytuj", - "menu.section.toggle.export": "PrzeÅ‚Ä…cz sekcjÄ™ Eksport", - "menu.section.toggle.find": "PrzeÅ‚Ä…cz sekcjÄ™ Wyszukiwanie", - "menu.section.toggle.import": "PrzeÅ‚Ä…cz sekcjÄ™ Import", - "menu.section.toggle.new": "PrzeÅ‚Ä…cz nowÄ… sekcjÄ™", - "menu.section.toggle.registries": "PrzeÅ‚Ä…cz sekcjÄ™ Rejestry", - "menu.section.toggle.statistics_task": "PrzeÅ‚Ä…cz sekcjÄ™ Zadanie statystyczne", - "menu.section.workflow": "ZarzÄ…dzaj Workflow", - "mydspace.breadcrumbs": "Mój DSpace", - "mydspace.description": "", - "mydspace.messages.controller-help": "Wybierz tÄ™ opcjÄ™, aby przesÅ‚ać wiadomość do zgÅ‚aszajÄ…cego.", - "mydspace.messages.description-placeholder": "Wpisz swojÄ… wiadomość tutaj...", - "mydspace.messages.hide-msg": "Ukryj wiadomość", - "mydspace.messages.mark-as-read": "Oznacz jako przeczytane", - "mydspace.messages.mark-as-unread": "Oznacz jako nieprzeczytane", - "mydspace.messages.no-content": "Brak treÅ›ci.", - "mydspace.messages.no-messages": "Brak wiadomoÅ›ci.", - "mydspace.messages.send-btn": "WysÅ‚ano", - "mydspace.messages.show-msg": "Pokaż wiadomość", - "mydspace.messages.subject-placeholder": "Temat...", - "mydspace.messages.submitter-help": "Wybierz tÄ™ opcjÄ™, aby przesÅ‚ać wiadomość do osoby kontrolujÄ…cej.", - "mydspace.messages.title": "WiadomoÅ›ci", - "mydspace.messages.to": "Do", - "mydspace.new-submission": "Nowe zgÅ‚oszenie", - "mydspace.new-submission-external": "Import medatanych z zewnÄ™trznego źródÅ‚a", - "mydspace.new-submission-external-short": "Import metadanych", - "mydspace.results.head": "Twoje zadania", - "mydspace.results.no-abstract": "Brak abstraktu", - "mydspace.results.no-authors": "Brak autorów", - "mydspace.results.no-collections": "Brak kolekcji", - "mydspace.results.no-date": "Brak daty", - "mydspace.results.no-files": "Brak plików", - "mydspace.results.no-results": "Brak pozycji do wyÅ›wietlenia", - "mydspace.results.no-title": "Brak tytuÅ‚u", - "mydspace.results.no-uri": "Brak Uri", - "mydspace.search-form.placeholder": "Wyszukaj w mydspace...", - "mydspace.show.workflow": "Wszystkie zadania", - "mydspace.show.workspace": "Twoje zadania", - "mydspace.status.mydspaceArchived": "Zarchiwizowano", - "mydspace.status.mydspaceValidation": "Walidacja", - "mydspace.status.mydspaceWaitingController": "Oczekiwanie na redaktora", - "mydspace.status.mydspaceWorkflow": "Workflow", - "mydspace.status.mydspaceWorkspace": "Wersja robocza", - "mydspace.title": "Mój DSpace", - "mydspace.upload.upload-failed": "BÅ‚ad podczas tworzenia nowej wersji roboczej. Sprawdź poprawność plików i spróbuj ponownie.", - "mydspace.upload.upload-failed-manyentries": "Plik jest niemożliwy do przetworzenia. Wykryto wiele wejść, a dopuszczalne jest tylko jedno dla jednego pliku.", - "mydspace.upload.upload-failed-moreonefile": "Zapytanie niemożliwe do przetworzenia. Tylko jeden plik jest dopuszczalny.", - "mydspace.upload.upload-multiple-successful": "Utworzono {{qty}} przestrzeni roboczych.", - "mydspace.view-btn": "Widok", - "nav.browse.header": "CaÅ‚y DSpace", - "nav.community-browse.header": "Wg zbiorów", - "nav.language": "ZmieÅ„ jÄ™zyk", - "nav.login": "Zaloguj", - "nav.logout": "Menu profilu użytkownika i wylogowywanie", - "nav.main.description": "Główny pasek nawigacji", - "nav.mydspace": "Mój DSpace", - "nav.profile": "Profil", - "nav.search": "Wyszukiwanie", - "nav.statistics.header": "Statystyki", - "nav.stop-impersonating": "PrzestaÅ„ impersonifikować użytkownika", - "nav.toggle": "PrzeÅ‚Ä…cz nawigacjÄ™", - "nav.user.description": "Pasek profilu użytkownika", - "none.listelement.badge": "Pozycja", - "person.listelement.badge": "Osoba", - "person.listelement.no-title": "Nie znaleziono imienia", - "person.page.birthdate": "Data urodzenia", - "person.page.edit": "Edytuj pozycjÄ™", - "person.page.email": "Adres e-mail", - "person.page.firstname": "ImiÄ™", - "person.page.jobtitle": "Stanowisko", - "person.page.lastname": "Nazwisko", - "person.page.link.full": "Pokaż wszystkie metadane", - "person.page.orcid": "ORCID", - "person.page.orcid.create": "Utwórz ORCID ID", - "person.page.orcid.granted-authorizations": "Udzielone dostÄ™py", - "person.page.orcid.grant-authorizations": "Udziel dostÄ™pu", - "person.page.orcid.link": "PoÅ‚Ä…cz z ORCID ID", - "person.page.orcid.orcid-not-linked-message": "ORCID iD tego profilu ({{ orcid }}) nie jest poÅ‚Ä…czony z bazÄ… ORCID lub poÅ‚Ä…czenie wygasÅ‚o.", - "person.page.orcid.unlink": "Odepnij z ORCID", - "person.page.orcid.unlink.processing": "Procesowanie...", - "person.page.orcid.missing-authorizations": "Brak dostÄ™pów", - "person.page.orcid.missing-authorizations-message": "Brakuj nastÄ™pujÄ…cych dostÄ™pów:", - "person.page.orcid.no-missing-authorizations-message": "Åšwietnie! To miejsce jest puste, co oznacza, że masz dostÄ™p do wszystkich uprawnieÅ„, które sÄ… dostÄ™pne w Twojej instytucji.", - "person.page.orcid.no-orcid-message": "Brak przypisanego ORCID iD. Poprez wybranie przycisku poniżej możesz powiÄ…zać ten profil wraz z kontem ORCID.", - "person.page.orcid.profile-preferences": "Preferencje profilu", - "person.page.orcid.funding-preferences": "Preferencje finansowania", - "person.page.orcid.publications-preferences": "Preferencje publikacji", - "person.page.orcid.remove-orcid-message": "JeÅ›li chcesz usunąć Twój ORCID, skontaktuj siÄ™ z administratorem repozytorium", - "person.page.orcid.save.preference.changes": "Aktualizuj ustawienia", - "person.page.orcid.sync-profile.affiliation": "Afiliacja", - "person.page.orcid.sync-profile.biographical": "Biografia", - "person.page.orcid.sync-profile.education": "Edukacja", - "person.page.orcid.sync-profile.identifiers": "Identyfikatory", - "person.page.orcid.sync-fundings.all": "Wszystkie źrodÅ‚a finansowania", - "person.page.orcid.sync-fundings.mine": "Moje źrodÅ‚a finansowania", - "person.page.orcid.sync-fundings.my_selected": "Wybrane źródÅ‚a finansowania", - "person.page.orcid.sync-fundings.disabled": "Nieaktywne", - "person.page.orcid.sync-publications.all": "Wszystkie publikacje", - "person.page.orcid.sync-publications.mine": "Moje publikacje", - "person.page.orcid.sync-publications.my_selected": "Wybrane publikacje", - "person.page.orcid.sync-publications.disabled": "Nieaktywne", - "person.page.orcid.sync-queue.discard": "Odrzuć zmianÄ™ i nie synchronizuj z ORCID", - "person.page.orcid.sync-queue.discard.error": "Rekord kolejki ORCID nie zostaÅ‚ odrzucony", - "person.page.orcid.sync-queue.discard.success": "Rekord kolejki ORCID zostaÅ‚ odrzucony", - "person.page.orcid.sync-queue.empty-message": "Rejestr kolejki w ORCID jest pusty", - "person.page.orcid.sync-queue.description.affiliation": "Afiliacje", - "person.page.orcid.sync-queue.description.country": "Kraj", - "person.page.orcid.sync-queue.description.education": "Edukacja", - "person.page.orcid.sync-queue.description.external_ids": "ZewnÄ™trzne identyfikatory", - "person.page.orcid.sync-queue.description.other_names": "Inne imiona", - "person.page.orcid.sync-queue.description.qualification": "Kwalifikacje", - "person.page.orcid.sync-queue.description.researcher_urls": "URL naukowca", - "person.page.orcid.sync-queue.description.keywords": "SÅ‚owa kluczowe", - "person.page.orcid.sync-queue.tooltip.insert": "Dodaj nowy wpis w rejestrze ORCID", - "person.page.orcid.sync-queue.tooltip.update": "Aktualizuj ten wpis w rejestrze ORCID", - "person.page.orcid.sync-queue.tooltip.delete": "UsuÅ„ ten wpis z rejestru ORCID", - "person.page.orcid.sync-queue.tooltip.publication": "Publikacja", - "person.page.orcid.sync-queue.tooltip.affiliation": "Afiliacja", - "person.page.orcid.sync-queue.tooltip.education": "Edukacja", - "person.page.orcid.sync-queue.tooltip.qualification": "Kwalifikacje", - "person.page.orcid.sync-queue.tooltip.other_names": "Inna nazwa", - "person.page.orcid.sync-queue.tooltip.country": "Kraj", - "person.page.orcid.sync-queue.tooltip.keywords": "SÅ‚owa kluczowe", - "person.page.orcid.sync-queue.tooltip.external_ids": "ZewnÄ™trzny identyfikator", - "person.page.orcid.sync-queue.tooltip.researcher_urls": "URL naukowca", - "person.page.orcid.sync-queue.send": "Synchronizuj z rejestrem ORCID", - "person.page.orcid.sync-queue.send.unauthorized-error.title": "WysÅ‚anie zgÅ‚oszenia do ORCID nieudane z powodu braku uprawnieÅ„.", - "person.page.orcid.sync-queue.send.unauthorized-error.content": "Wybierz <a href='{{orcid}}'>here</a>, aby wystÄ…pić o niezbÄ™dne uprawnienia. JeÅ›li problem wciąż wystÄ™puje, skontaktuj siÄ™ z administratorem", - "person.page.orcid.sync-queue.send.bad-request-error": "WysÅ‚anie zgÅ‚oszenia do ORCID nie powiodÅ‚o siÄ™ ponieważ źródÅ‚a wysÅ‚ane do rejestru ORCID nie jest poprawne", - "person.page.orcid.sync-queue.send.error": "WysÅ‚anie zgÅ‚oszenia do ORCID nie powiodÅ‚o siÄ™", - "person.page.orcid.sync-queue.send.conflict-error": "ZgÅ‚oszenie do ORCID nie powiodÅ‚o siÄ™, ponieważ ta pozycja jest już dodana do rejestru ORCID", - "person.page.orcid.sync-queue.send.not-found-warning": "Pozycja nie istnieje już w rejestrze ORCID.", - "person.page.orcid.sync-queue.send.success": "ZgÅ‚oszenie do ORCID zostaÅ‚o zakoÅ„czone pomyÅ›lnie", - "person.page.orcid.sync-queue.send.validation-error": "Dane, które chcesz zsynchronizować z ORCID nie sÄ… poprawne", - "person.page.orcid.sync-queue.send.validation-error.amount-currency.required": "Waluta jest wymagana", - "person.page.orcid.sync-queue.send.validation-error.external-id.required": "Aby wysÅ‚ać pozycjÄ™, należy podać przynajmniej jeden identyfikator", - "person.page.orcid.sync-queue.send.validation-error.title.required": "TytuÅ‚ jest wymagany", - "person.page.orcid.sync-queue.send.validation-error.type.required": "Typ jest wymagany", - "person.page.orcid.sync-queue.send.validation-error.start-date.required": "Data poczÄ…tkowa jest wymagana", - "person.page.orcid.sync-queue.send.validation-error.funder.required": "Instytucja finansujÄ…ca jest wymagana", - "person.page.orcid.sync-queue.send.validation-error.organization.required": "Instytucja jest wymagana", - "person.page.orcid.sync-queue.send.validation-error.organization.name-required": "Nazwa instytucji jest wymagana", - "person.page.orcid.sync-queue.send.validation-error.organization.address-required": "Aby wysÅ‚ać instytucjÄ™, należy podać adres", - "person.page.orcid.sync-queue.send.validation-error.organization.city-required": "Aby wysÅ‚ać adres, należy podać miasto", - "person.page.orcid.sync-queue.send.validation-error.organization.country-required": "Aby wysÅ‚ać adres, należy podać kraj", - "person.page.orcid.sync-queue.send.validation-error.disambiguated-organization.required": "Wymagany jest identyfikator umożliwiajÄ…cy rozróżnienie instytucji. ObsÅ‚ugiwane identyfikatory to GRID, Ringgold, kod LEI oraz identyfikatory z rejestru instytucji finansujÄ…cych Crossref.", - "person.page.orcid.sync-queue.send.validation-error.disambiguated-organization.value-required": "Należy uzupeÅ‚nić wartość w identyfikatorze instytucji", - "person.page.orcid.sync-queue.send.validation-error.disambiguation-source.required": "Należy uzupeÅ‚nić źródÅ‚o w identyfikatorze instytucji", - "person.page.orcid.sync-queue.send.validation-error.disambiguation-source.invalid": "ŹródÅ‚o jednego z identyfikatorów organizcji jest niepoprawne. Wspierane źródÅ‚a to RINGGOLD, GRID, LEI and FUNDREF", - "person.page.orcid.synchronization-mode": "Tryb synchronizacji", - "person.page.orcid.synchronization-mode.batch": "Wsad", - "person.page.orcid.synchronization-mode.label": "Tryb synchronizacji", - "person.page.orcid.synchronization-mode-message": "WÅ‚Ä…cz tryb 'Manual' synchronizacja, aby wyÅ‚aczyć tryb synchronizacji wsadowej, wtedy dane do rejestru ORCID bÄ™dÄ… musiaÅ‚y zostać wysÅ‚ane rÄ™cznie", - "person.page.orcid.synchronization-settings-update.success": "Opcje synchronizacji zostaÅ‚y zaktualizowane", - "person.page.orcid.synchronization-settings-update.error": "Opcje synchronizacji nie zostaÅ‚y zaktualizowane", - "person.page.orcid.synchronization-mode.manual": "RÄ™czna", - "person.page.orcid.scope.authenticate": "Uzyskaj swój ORCID iD", - "person.page.orcid.scope.read-limited": "Przeczytaj informacje o ustawieniach widocznoÅ›ci z firmami trzeciami", - "person.page.orcid.scope.activities-update": "Dodaj/aktualizuj swoje aktywnoÅ›ci naukowe", - "person.page.orcid.scope.person-update": "Dodaj/aktualizuj inne informacje o Tobie", - "person.page.orcid.unlink.success": "OdÅ‚Ä…czenie Twojego profilu od rejestru ORCID powiodÅ‚o siÄ™", - "person.page.orcid.unlink.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas odÅ‚Ä…czania Twojego profilu od rejestru ORCID. Spróbuj ponownie", - "person.page.staffid": "ID pracownika", - "person.page.titleprefix": "Osoba: ", - "person.search.results.head": "Wyniki wyszukiwania użytkowników", - "person.search.title": "Wyniki wyszukiwania użytkowników", - "process.new.select-parameters": "Parametry", - "process.new.cancel": "Anuluj", - "process.new.submit": "Zapisz", - "process.new.select-script": "Skrypt", - "process.new.select-script.placeholder": "Wybierz skrypt...", - "process.new.select-script.required": "Skrypt jest wymagany", - "process.new.parameter.file.upload-button": "Wybierz plik...", - "process.new.parameter.file.required": "ProszÄ™ wybrać plik", - "process.new.parameter.string.required": "Wartość parametru jest wymagana", - "process.new.parameter.type.value": "wartość", - "process.new.parameter.type.file": "plik", - "process.new.parameter.required.missing": "Te parametry sÄ… wymagane, ale nie zostaÅ‚y uzupeÅ‚nione:", - "process.new.notification.success.title": "UdaÅ‚o siÄ™", - "process.new.notification.success.content": "UdaÅ‚o siÄ™ stworzyć proces", - "process.new.notification.error.title": "BÅ‚Ä…d", - "process.new.notification.error.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia procesu", - "process.new.header": "Utwórz nowy proces", - "process.new.title": "Utwórz nowy proces", - "process.new.breadcrumbs": "Utwórz nowy proces", - "process.detail.arguments": "Argumenty", - "process.detail.arguments.empty": "Do tego procesu nie zostaÅ‚y przypisane żadne argumenty", - "process.detail.back": "Cofnij", - "process.detail.output": "Dane wyjÅ›ciowe procesu", - "process.detail.logs.button": "Odzyskaj dane wyjÅ›ciowe procesu", - "process.detail.logs.loading": "Odzyskiwanie", - "process.detail.logs.none": "Ten proces nie ma danych wyjÅ›ciowych", - "process.detail.output-files": "Pliki", - "process.detail.output-files.empty": "Ten proces nie ma żadnych plików danych wyjÅ›ciowych", - "process.detail.script": "Skrypt", - "process.detail.title": "Proces: {{ id }} - {{ name }}", - "process.detail.start-time": "Czas rozpoczÄ™cia procesu", - "process.detail.end-time": "Czas zakoÅ„czenia procesu", - "process.detail.status": "Status", - "process.detail.create": "Stwórz podobny proces", - "process.overview.table.finish": "Czas zakoÅ„czenia (UTC)", - "process.overview.table.id": "Identyfikator procesu", - "process.overview.table.name": "Nazwa", - "process.overview.table.start": "Czas rozpoczÄ™cia (UTC)", - "process.overview.table.status": "Status", - "process.overview.table.user": "Użytkownik", - "process.overview.title": "PrzeglÄ…d procesów", - "process.overview.breadcrumbs": "PrzeglÄ…d procesów", - "process.overview.new": "Nowy", - "profile.breadcrumbs": "Zaktualizuj profil", - "profile.card.identify": "Dane", - "profile.card.security": "BezpieczeÅ„stwo", - "profile.form.submit": "Zaktualizuj profil", - "profile.groups.head": "Posiadane uprawnienia do kolekcji", - "profile.head": "Zaktualizuj profil", - "profile.metadata.form.error.firstname.required": "ImiÄ™ jest wymagane", - "profile.metadata.form.error.lastname.required": "Nazwisko jest wymagane", - "profile.metadata.form.label.email": "Adres e-mail", - "profile.metadata.form.label.firstname": "ImiÄ™", - "profile.metadata.form.label.language": "JÄ™zyk", - "profile.metadata.form.label.lastname": "Nazwisko", - "profile.metadata.form.label.phone": "Telefon kontaktowy", - "profile.metadata.form.notifications.success.content": "Zmiany w profilu zostaÅ‚y zapisane.", - "profile.metadata.form.notifications.success.title": "Profil zapisany", - "profile.notifications.warning.no-changes.content": "Nie dokonano żadnych zmian w profilu.", - "profile.notifications.warning.no-changes.title": "Brak zmian", - "profile.security.form.error.matching-passwords": "HasÅ‚a nie sÄ… identyczne.", - "profile.security.form.info": "Możesz wprowadzić nowe hasÅ‚o w polu poniżej i zatwierdzić poprzez ponowne wpisanie. HasÅ‚o musi mieć przynajmniej 6 znaków.", - "profile.security.form.label.password": "HasÅ‚o", - "profile.security.form.label.passwordrepeat": "Potwierdź hasÅ‚o", - "profile.security.form.notifications.success.content": "Twoje zmiany w haÅ›le zostaÅ‚y zapisane.", - "profile.security.form.notifications.success.title": "HasÅ‚o zapisane", - "profile.security.form.notifications.error.title": "BÅ‚Ä…d podczas próby zmiany hasÅ‚a", - "profile.security.form.notifications.error.not-same": "HasÅ‚a nie sÄ… identyczne.", - "profile.title": "Zaktualizuj profil", - "profile.card.researcher": "Profil naukowca", - "project.listelement.badge": "Projekt badawczy", - "project.page.contributor": "Autorzy", - "project.page.description": "Opis", - "project.page.edit": "Edytuj pozycjÄ™", - "project.page.expectedcompletion": "Spodziewany termin zakoÅ„czenia", - "project.page.funder": "Instytucje finansujÄ…ce", - "project.page.id": "ID", - "project.page.keyword": "SÅ‚owa kluczowe", - "project.page.status": "Status", - "project.page.titleprefix": "Projekt badawczy: ", - "project.search.results.head": "Wyniki wyszukiwania projektów", - "publication.listelement.badge": "Publikacja", - "publication.page.description": "Opis", - "publication.page.edit": "Edytuj pozycjÄ™", - "publication.page.journal-issn": "ISSN czasopisma", - "publication.page.journal-title": "TytuÅ‚ czasopisma", - "publication.page.publisher": "Wydawca", - "publication.page.titleprefix": "Publikacja: ", - "publication.page.volume-title": "TytuÅ‚ tomu", - "publication.search.results.head": "Wyniki wyszukiwania publikacji", - "publication.search.title": "Wyszukiwanie publikacji", - "media-viewer.next": "Nowy", - "media-viewer.previous": "Poprzedni", - "media-viewer.playlist": "Playlista", - "register-email.title": "Rejestracja nowego użytkownika", - "register-page.create-profile.header": "Stwórz profil", - "register-page.create-profile.identification.header": "Dane", - "register-page.create-profile.identification.email": "Adres e-mail", - "register-page.create-profile.identification.first-name": "ImiÄ™ *", - "register-page.create-profile.identification.first-name.error": "Wpisz imiÄ™", - "register-page.create-profile.identification.last-name": "Nazwisko *", - "register-page.create-profile.identification.last-name.error": "Wpisz nazwisko", - "register-page.create-profile.identification.contact": "Telefon kontaktowy", - "register-page.create-profile.identification.language": "JÄ™zyk", - "register-page.create-profile.security.header": "BezpieczeÅ„stwo", - "register-page.create-profile.security.info": "Wprowadź nowe hasÅ‚o w polu poniżej i zatwierdź poprzez ponowne wpisanie w drugim polu. HasÅ‚o musi mieć przynajmniej 6 znaków.", - "register-page.create-profile.security.label.password": "HasÅ‚o *", - "register-page.create-profile.security.label.passwordrepeat": "Potwierdź hasÅ‚o *", - "register-page.create-profile.security.error.empty-password": "Wprowadź hasÅ‚o w polu poniżej.", - "register-page.create-profile.security.error.matching-passwords": "HasÅ‚a nie sÄ… identyczne.", - "register-page.create-profile.submit": "Rejestracja zakoÅ„czona", - "register-page.create-profile.submit.error.content": "CoÅ› siÄ™ nie udaÅ‚o podczas rejestracji nowego użytkownika.", - "register-page.create-profile.submit.error.head": "Rejestracja nie powiodÅ‚a siÄ™", - "register-page.create-profile.submit.success.content": "Rejestracja powiodÅ‚a siÄ™. Zalogowano jako stworzony użytkownik.", - "register-page.create-profile.submit.success.head": "Rejestracja zakoÅ„czona", - "register-page.registration.header": "Rejestracja nowego użytkownika", - "register-page.registration.info": "Zarejestruj siÄ™, aby otrzymywać wiadomoÅ›ci o nowych pozycjach w obserowanych kolekcjach, a także przesyÅ‚ać nowe pozycje do repozytorium.", - "register-page.registration.email": "Adres e-mail *", - "register-page.registration.email.error.required": "WypeÅ‚nij adres e-mail", - "register-page.registration.email.error.pattern": "WypeÅ‚nij poprawny adres e-mail", - "register-page.registration.email.hint": "Ten adres e-mail bÄ™dzie zweryfikowany i bÄ™dziesz go używać jako swój login.", - "register-page.registration.submit": "Zarejestruj siÄ™", - "register-page.registration.success.head": "Wiadomość weryfikacyjna zostaÅ‚Ä… wysÅ‚ana", - "register-page.registration.success.content": "Wiadomość zostaÅ‚a wysÅ‚ana na adres e-mail {{ email }}. Zawiera ona unikatowy link i dalsze instrukcje postÄ™powania.", - "register-page.registration.error.head": "BÅ‚Ä…d podczas próby rejestracji adresu e-mail", - "register-page.registration.error.content": "BÅ‚Ä…d podczas próby rejestracji adresu e-mail: {{ email }}", - "relationships.add.error.relationship-type.content": "Nie znaleziono dopasowania dla typu relacji {{ type }} pomiÄ™dzy dwoma pozycjami", - "relationships.add.error.server.content": "BÅ‚Ä…d serwera", - "relationships.add.error.title": "Nie można dodać relacji", - "relationships.isAuthorOf": "Autorzy", - "relationships.isAuthorOf.Person": "Autorzy (osoby)", - "relationships.isAuthorOf.OrgUnit": "Autorzy (jednostki organizacyjne)", - "relationships.isIssueOf": "Numery czasopisma", - "relationships.isJournalIssueOf": "Numer czasopisma", - "relationships.isJournalOf": "Czasopisma", - "relationships.isOrgUnitOf": "Jednostki organizacyjne", - "relationships.isPersonOf": "Autorzy", - "relationships.isProjectOf": "Projekty badawcze", - "relationships.isPublicationOf": "Publikacje", - "relationships.isPublicationOfJournalIssue": "ArtykuÅ‚y", - "relationships.isSingleJournalOf": "Czasopismo", - "relationships.isSingleVolumeOf": "Tom czasopisma", - "relationships.isVolumeOf": "Tomy czasopisma", - "relationships.isContributorOf": "Autorzy", - "relationships.isContributorOf.OrgUnit": "Autor (Jednostka organizacyjna)", - "relationships.isContributorOf.Person": "Autor", - "relationships.isFundingAgencyOf.OrgUnit": "Instytucja finansujÄ…ca", - "repository.image.logo": "Logo repozytorium", - "repository.title.prefix": "DSpace Angular :: ", - "researcher.profile.action.processing": "Procesowanie...", - "researcher.profile.associated": "Przypisanie profilu badacza", - "researcher.profile.create.new": "Utwórz nowy", - "researcher.profile.create.success": "Profil badacza zostaÅ‚ utworzony", - "researcher.profile.create.fail": "WystÄ…piÅ‚ bÅ‚Ä…d poczas tworzenia profilu badacza.", - "researcher.profile.delete": "UsuÅ„", - "researcher.profile.expose": "Ujawnij", - "researcher.profile.hide": "Ukryj", - "researcher.profile.not.associated": "Profil badacza nie zostaÅ‚ jeszcze przypisany", - "researcher.profile.view": "Widok", - "researcher.profile.private.visibility": "PRYWATNY", - "researcher.profile.public.visibility": "PUBLICZNY", - "researcher.profile.status": "Status:", - "researcherprofile.claim.not-authorized": "Nie masz uprawnieÅ„, aby wystÄ…pić o tÄ™ pozycjÄ™. Aby otrzymać wiÄ™cej szczegółów, skontaktuj siÄ™ z administratorami.", - "researcherprofile.error.claim.body": "WystÄ…piÅ‚ bÅ‚Ä…d podczas wystÄ…pienia z proÅ›bÄ… o przypisanie profilu. Spróbuj ponownie później.", - "researcherprofile.error.claim.title": "BÅ‚Ä…d", - "researcherprofile.success.claim.body": "WystÄ…pienie z proÅ›bÄ… o przypisanie profilu udane", - "researcherprofile.success.claim.title": "Sukces", - "repository.title.prefixDSpace": "DSpace Angular ::", - "resource-policies.add.button": "Dodaj", - "resource-policies.add.for.": "Dodaj nowÄ… politykÄ™", - "resource-policies.add.for.bitstream": "Dodaj nowÄ… politykÄ™ dla plików", - "resource-policies.add.for.bundle": "Dodaj nowÄ… politykÄ™ paczek", - "resource-policies.add.for.item": "Dodaj nowÄ… politykÄ™ pozycji", - "resource-policies.add.for.community": "Dodaj nowÄ… politykÄ™ zbioru", - "resource-policies.add.for.collection": "Dodaj nowÄ… politykÄ™ kolekcji", - "resource-policies.create.page.heading": "Utwórz nowÄ… politykÄ™ zasobu dla ", - "resource-policies.create.page.failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas dodawania polityki zasobów.", - "resource-policies.create.page.success.content": "DziaÅ‚anie powiodÅ‚o siÄ™", - "resource-policies.create.page.title": "Utwórz nowÄ… politykÄ™ zasobu", - "resource-policies.delete.btn": "UsuÅ„ zaznaczone", - "resource-policies.delete.btn.title": "UsuÅ„ zaznaczone polityki zasobów", - "resource-policies.delete.failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas usuwania wybranych polityk zasobów.", - "resource-policies.delete.success.content": "DziaÅ‚anie powiodÅ‚o siÄ™", - "resource-policies.edit.page.heading": "Edytuj politykÄ™ zasobu ", - "resource-policies.edit.page.failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d poczas edytowania polityki zasobu.", - "resource-policies.edit.page.success.content": "DziaÅ‚anie udaÅ‚o siÄ™", - "resource-policies.edit.page.title": "Edytuj politykÄ™ zasobu", - "resource-policies.form.action-type.label": "Wybierz ten typ akcji", - "resource-policies.form.action-type.required": "Musisz wybrać akcjÄ™ polityki zasobu.", - "resource-policies.form.eperson-group-list.label": "Użytkownik lub grupa, która otrzyma uprawnienia.", - "resource-policies.form.eperson-group-list.select.btn": "Wybierz", - "resource-policies.form.eperson-group-list.tab.eperson": "Wyszukaj użytkownika", - "resource-policies.form.eperson-group-list.tab.group": "Wyszukaj grupÄ™", - "resource-policies.form.eperson-group-list.table.headers.action": "Akcja", - "resource-policies.form.eperson-group-list.table.headers.id": "ID", - "resource-policies.form.eperson-group-list.table.headers.name": "Nazwa", - "resource-policies.form.date.end.label": "Data zakoÅ„czenia", - "resource-policies.form.date.start.label": "Data rozpoczÄ™cia", - "resource-policies.form.description.label": "Opis", - "resource-policies.form.name.label": "Nazwa", - "resource-policies.form.policy-type.label": "Wybierz typ polityki", - "resource-policies.form.policy-type.required": "Musisz wybrać typ polityki zasobu.", - "resource-policies.table.headers.action": "Akcja", - "resource-policies.table.headers.date.end": "Data zakoÅ„czenia", - "resource-policies.table.headers.date.start": "Data rozpoczÄ™cia", - "resource-policies.table.headers.edit": "Edytuj", - "resource-policies.table.headers.edit.group": "Edytuj grupÄ™", - "resource-policies.table.headers.edit.policy": "Edytuj politykÄ™", - "resource-policies.table.headers.eperson": "Użytkownik", - "resource-policies.table.headers.group": "Grupa", - "resource-policies.table.headers.id": "ID", - "resource-policies.table.headers.name": "Nazwa", - "resource-policies.table.headers.policyType": "typ", - "resource-policies.table.headers.title.for.bitstream": "Polityki dla plików", - "resource-policies.table.headers.title.for.bundle": "Polityki dla paczek", - "resource-policies.table.headers.title.for.item": "Polityki dla pozycji", - "resource-policies.table.headers.title.for.community": "Polityki dla zbioru", - "resource-policies.table.headers.title.for.collection": "Polityki dla kolekcji", - "search.description": "", - "search.switch-configuration.title": "Pokaż", - "search.title": "Szukaj", - "search.breadcrumbs": "Szukaj", - "search.search-form.placeholder": "Szukaj w repozytorium...", - "search.filters.applied.f.author": "Autor", - "search.filters.applied.f.dateIssued.max": "Data zakoÅ„czenia", - "search.filters.applied.f.dateIssued.min": "Data rozpoczÄ™cia", - "search.filters.applied.f.dateSubmitted": "Data zgÅ‚oszenia", - "search.filters.applied.f.discoverable": "Ukryty", - "search.filters.applied.f.entityType": "Typ pozycji", - "search.filters.applied.f.has_content_in_original_bundle": "Ma przypisane pliki", - "search.filters.applied.f.itemtype": "Typ", - "search.filters.applied.f.namedresourcetype": "Status", - "search.filters.applied.f.subject": "Temat", - "search.filters.applied.f.submitter": "ZgÅ‚aszajÄ…cy", - "search.filters.applied.f.jobTitle": "Stanowisko", - "search.filters.applied.f.birthDate.max": "Data zakoÅ„czenia tworzenia", - "search.filters.applied.f.birthDate.min": "Data rozpoczÄ™cia tworzenia", - "search.filters.applied.f.withdrawn": "Wycofane", - "search.filters.filter.author.head": "Autor", - "search.filters.filter.author.placeholder": "Autor", - "search.filters.filter.author.label": "Wyszukaj autora", - "search.filters.filter.birthDate.head": "Data urodzenia", - "search.filters.filter.birthDate.placeholder": "Data urodzenia", - "search.filters.filter.birthDate.label": "Wyszukaj datÄ™ urodzenia", - "search.filters.filter.collapse": "Ukryj filtr", - "search.filters.filter.creativeDatePublished.head": "Data opublikowania", - "search.filters.filter.creativeDatePublished.placeholder": "Data opublikowania", - "search.filters.filter.creativeDatePublished.label": "Wyszukaj datÄ™ opublikowania", - "search.filters.filter.creativeWorkEditor.head": "Redaktor", - "search.filters.filter.creativeWorkEditor.placeholder": "Redaktor", - "search.filters.filter.creativeWorkEditor.label": "Wyszukaj redaktora", - "search.filters.filter.creativeWorkKeywords.head": "SÅ‚owo kluczowe", - "search.filters.filter.creativeWorkKeywords.placeholder": "SÅ‚owo kluczowe", - "search.filters.filter.creativeWorkKeywords.label": "Wyszukaj temat", - "search.filters.filter.creativeWorkPublisher.head": "Wydawca", - "search.filters.filter.creativeWorkPublisher.placeholder": "Wydawca", - "search.filters.filter.creativeWorkPublisher.label": "Wyszukaj wydawcÄ™", - "search.filters.filter.dateIssued.head": "Data", - "search.filters.filter.dateIssued.max.placeholder": "Data maksymalna", - "search.filters.filter.dateIssued.max.label": "Koniec", - "search.filters.filter.dateIssued.min.placeholder": "Data minimalna", - "search.filters.filter.dateIssued.min.label": "Start", - "search.filters.filter.dateSubmitted.head": "Data zgÅ‚oszenia", - "search.filters.filter.dateSubmitted.placeholder": "Data zgÅ‚oszenia", - "search.filters.filter.dateSubmitted.label": "Wyszukaj datÄ™ zgÅ‚oszenia", - "search.filters.filter.discoverable.head": "Ukryty", - "search.filters.filter.withdrawn.head": "Wycofane", - "search.filters.filter.entityType.head": "Typ pozycji", - "search.filters.filter.entityType.placeholder": "Typ pozycji", - "search.filters.filter.entityType.label": "Wyszukaj typ pozycji", - "search.filters.filter.expand": "RozwiÅ„ filtr", - "search.filters.filter.has_content_in_original_bundle.head": "Ma przypisane pliki", - "search.filters.filter.itemtype.head": "Typ", - "search.filters.filter.itemtype.placeholder": "Typ", - "search.filters.filter.itemtype.label": "Wyszukaj typ", - "search.filters.filter.jobTitle.head": "Stanowisko", - "search.filters.filter.jobTitle.placeholder": "Stanowisko", - "search.filters.filter.jobTitle.label": "Wyszukaj stanowisko", - "search.filters.filter.knowsLanguage.head": "Znajomość jÄ™zyka", - "search.filters.filter.knowsLanguage.placeholder": "Znajomość jÄ™zyka", - "search.filters.filter.knowsLanguage.label": "Wyszukaj wg znajomoÅ›ci jÄ™zyka", - "search.filters.filter.namedresourcetype.head": "Status", - "search.filters.filter.namedresourcetype.placeholder": "Status", - "search.filters.filter.namedresourcetype.label": "Wyszukaj status", - "search.filters.filter.objectpeople.head": "Osoby", - "search.filters.filter.objectpeople.placeholder": "Osoby", - "search.filters.filter.objectpeople.label": "Wyszukaj użytkowników", - "search.filters.filter.organizationAddressCountry.head": "Kraj", - "search.filters.filter.organizationAddressCountry.placeholder": "Kraj", - "search.filters.filter.organizationAddressCountry.label": "Wyszukaj kraj", - "search.filters.filter.organizationAddressLocality.head": "Miasto", - "search.filters.filter.organizationAddressLocality.placeholder": "Miasto", - "search.filters.filter.organizationAddressLocality.label": "Wyszukaj miasto", - "search.filters.filter.organizationFoundingDate.head": "Data zaÅ‚ożenia", - "search.filters.filter.organizationFoundingDate.placeholder": "Data zaÅ‚ożenia", - "search.filters.filter.organizationFoundingDate.label": "Wyszukaj datÄ™ zaÅ‚ożenia", - "search.filters.filter.scope.head": "Zakres", - "search.filters.filter.scope.placeholder": "Filtr zakresu", - "search.filters.filter.scope.label": "Wyszukaj filtr zakresu", - "search.filters.filter.show-less": "Pokaż mniej", - "search.filters.filter.show-more": "Pokaż wiÄ™cej", - "search.filters.filter.subject.head": "Temat", - "search.filters.filter.subject.placeholder": "Temat", - "search.filters.filter.subject.label": "Wyszukaj temat", - "search.filters.filter.submitter.head": "ZgÅ‚aszajÄ…cy", - "search.filters.filter.submitter.placeholder": "ZgÅ‚aszajÄ…cy", - "search.filters.filter.submitter.label": "Wyszukaj zgÅ‚aszajÄ…cego", - "search.filters.entityType.JournalIssue": "Numer czasopisma", - "search.filters.entityType.JournalVolume": "Tom czasopisma", - "search.filters.entityType.OrgUnit": "Jednostka organizacyjna", - "search.filters.has_content_in_original_bundle.true": "Tak", - "search.filters.has_content_in_original_bundle.false": "Nie", - "search.filters.discoverable.true": "Nie", - "search.filters.discoverable.false": "Tak", - "search.filters.withdrawn.true": "Tak", - "search.filters.withdrawn.false": "Nie", - "search.filters.head": "Filtry", - "search.filters.reset": "Resetuj filtry", - "search.filters.search.submit": "Zastosuj", - "search.form.search": "Wyszukaj", - "search.form.search_dspace": "W repozytorium", - "search.form.scope.all": "W caÅ‚ym DSpace", - "search.results.head": "Wyniki wyszukiwania", - "default.search.results.head": "Wyniki wyszukiwania", - "search.results.no-results": "Twoj wyszukiwanie nie zwróciÅ‚o żadnych rezultatów. Masz problem ze znalezieniem tego czego szukasz? Spróbuj użyć", - "search.results.no-results-link": "fraz podobnych do Twojego wyszukiwania", - "search.results.empty": "Twoje wyszukiwanie nie zwróciÅ‚o żadnych rezultatów.", - "search.sidebar.close": "Wróć do wyników wyszukiwania", - "search.sidebar.filters.title": "Filtry", - "search.sidebar.open": "NarzÄ™dzia wyszukiwania", - "search.sidebar.results": "wyniki", - "search.sidebar.settings.rpp": "Wyników na stronie", - "search.sidebar.settings.sort-by": "Sortuj wedÅ‚ug", - "search.sidebar.settings.title": "Ustawienia", - "search.view-switch.show-detail": "WyÅ›wietl widok szczegółowy", - "search.view-switch.show-grid": "WyÅ›wietl jako siatkÄ™", - "search.view-switch.show-list": "WyÅ›wietl jako listÄ™", - "sorting.ASC": "RosnÄ…co", - "sorting.DESC": "MalejÄ…co", - "sorting.dc.title.ASC": "TytuÅ‚ami rosnÄ…co", - "sorting.dc.title.DESC": "TytuÅ‚ami malejÄ…co", - "sorting.score.ASC": "Najmniej trafne", - "sorting.score.DESC": "Najbardziej trafne", - "sorting.dc.date.issued.ASC": "Data wydania rosnÄ…co", - "sorting.dc.date.issued.DESC": "Data wydania malejÄ…co", - "sorting.dc.date.accessioned.ASC": "Data dostÄ™pu rosnÄ…co", - "sorting.dc.date.accessioned.DESC": "Data dostÄ™pu malejÄ…co", - "sorting.lastModified.ASC": "Ostatnia modyfikacja rosnÄ…co", - "sorting.lastModified.DESC": "Ostatnia modyfikacja malejÄ…co", - "statistics.title": "Statystyki", - "statistics.header": "Statystyki dla {{ scope }}", - "statistics.breadcrumbs": "Statystyki", - "statistics.page.no-data": "Brak dostÄ™pnych danych", - "statistics.table.no-data": "Brak dostÄ™pnych danych", - "statistics.table.header.views": "WyÅ›wietlenia", - "submission.edit.breadcrumbs": "Edytuj zgÅ‚oszenie", - "submission.edit.title": "Edytuj zgÅ‚oszenie", - "submission.general.cancel": "Anuluj", - "submission.general.cannot_submit": "Nie masz uprawnieÅ„, aby utworzyć nowe zgÅ‚oszenie.", - "submission.general.deposit": "Deponuj", - "submission.general.discard.confirm.cancel": "Anuluj", - "submission.general.discard.confirm.info": "Czy na pewno? To dziaÅ‚anie nie może zostać cofniÄ™te.", - "submission.general.discard.confirm.submit": "Tak, na pewno", - "submission.general.discard.confirm.title": "Odrzuć zgÅ‚oszenie", - "submission.general.discard.submit": "Odrzuć", - "submission.general.info.saved": "Zapisane", - "submission.general.info.pending-changes": "Niezapisane zmiany", - "submission.general.save": "Zapisz", - "submission.general.save-later": "Zapisz wersjÄ™ roboczÄ…", - "submission.import-external.page.title": "Importuj metdane z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title": "Importuj metadane z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title.Journal": "Importuj czasopismo z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title.JournalIssue": "Importuj numer czasopisma z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title.JournalVolume": "Importuj tom czasopisma z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title.OrgUnit": "Importuj wydawcÄ™ z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title.Person": "Importuj osobÄ™ z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title.Project": "Importuj projekt z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title.Publication": "Importuj publikacjÄ™ z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title.none": "Importuj metadane z zewnÄ™trznego źródÅ‚a", - "submission.import-external.page.hint": "Enter a query above to find items from the web to import in to DSpace.", - "submission.import-external.back-to-my-dspace": "Powrót do MyDSpace", - "submission.import-external.search.placeholder": "Wyszukaj zewnÄ™trzne źródÅ‚a danych", - "submission.import-external.search.button": "Szukaj", - "submission.import-external.search.button.hint": "Zacznij wpisywać frazÄ™, aby wyszukać", - "submission.import-external.search.source.hint": "Wybierz zewnÄ™trzne źródÅ‚o", - "submission.import-external.source.ads": "NASA/ADS", - "submission.import-external.source.arxiv": "arXiv", - "submission.import-external.source.cinii": "CiNii", - "submission.import-external.source.crossref": "CrossRef", - "submission.import-external.source.loading": "Å‚adowanie...", - "submission.import-external.source.sherpaJournal": "Czasopisma w SHERPA", - "submission.import-external.source.sherpaJournalIssn": "Czasopisma w SHERPA wg ISSN", - "submission.import-external.source.sherpaPublisher": "Wydawcy w SHERPA", - "submission.import-external.source.openAIREFunding": "Finansowanie OpenAIRE API", - "submission.import-external.source.orcid": "ORCID", - "submission.import-external.source.orcidWorks": "ORCID", - "submission.import-external.source.pubmed": "Pubmed", - "submission.import-external.source.pubmedeu": "Pubmed Europe", - "submission.import-external.source.lcname": "Nazwy Biblioteki Kongresu", - "submission.import-external.source.scielo": "SciELO", - "submission.import-external.source.scopus": "Scopus", - "submission.import-external.source.vufind": "VuFind", - "submission.import-external.source.wos": "Web Of Science", - "submission.import-external.source.epo": "Europejski UrzÄ…d Patentowy (EPO)", - "submission.import-external.preview.title.Journal": "PodglÄ…d czasopisma", - "submission.import-external.preview.title.OrgUnit": "PodglÄ…d organizacji", - "submission.import-external.preview.title.Person": "PodglÄ…d osoby", - "submission.import-external.preview.title.Project": "PodglÄ…d projektu", - "submission.import-external.preview.title.Publication": "PodglÄ…d publikacji", - "submission.import-external.preview.subtitle": "Metadane poniżej zostaÅ‚y zaimportowane z zewnÄ™trznego źródÅ‚a. Niektóre pola zostanÄ… uzupeÅ‚nione automatycznie, kiedy rozpoczniesz zgÅ‚aszanie pozycji.", - "submission.import-external.preview.button.import": "Rozpocznij zgÅ‚oszenie", - "submission.import-external.preview.error.import.title": "BÅ‚Ä…d zgÅ‚oszenia", - "submission.import-external.preview.error.import.body": "WystÄ…piÅ‚ bÅ‚Ä…d podczas procesu importowania pozycji z zewnÄ™trznego źródÅ‚a.", - "submission.sections.describe.relationship-lookup.close": "Zamknij", - "submission.sections.describe.relationship-lookup.external-source.added": "UdaÅ‚o siÄ™ dodać wpis do selekcji", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.isAuthorOfPublication": "Importuj zdalnego autora", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal": "Importuj zdalne czasopismo", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Issue": "Importuj zdalny numer czasopisma", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Volume": "Importuj zdalny tom czasopisma", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.isProjectOfPublication": "Projekt", - "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.added.new-entity": "Nowy typ danych dodany!", - "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.title": "Projekt", - "submission.sections.describe.relationship-lookup.external-source.import-modal.head.openAIREFunding": "Finansowanie OpenAIRE API", - "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.title": "Importuj zdalnego autora", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Person": "Importuj zdalnÄ… osobÄ™", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Product": "Importuj zdalny produkt", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Equipment": "Importuj zdalnÄ… aparaturÄ™ badawczÄ…", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Event": "Importuj zdalne wydarzenie", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Funding": "Importuj zdalnÄ… instytucjÄ™ finansujÄ…cÄ…", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.OrgUnit": "Importuj zdalnego wydawcÄ™", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Patent": "Importuj zdalnie patent", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Project": "Importuj zdalnie projekt", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Publication": "Importuj zdalnie publikacjÄ™", - "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.added.local-entity": "UdaÅ‚o siÄ™ dodać autora do selekcji", - "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.added.new-entity": "UdaÅ‚o siÄ™ zaimportować i dodać zewnÄ™trznego autora do selekcji", - "submission.sections.describe.relationship-lookup.external-source.import-modal.authority": "NadrzÄ™dność", - "submission.sections.describe.relationship-lookup.external-source.import-modal.authority.new": "Importuj jako nowÄ…, lokalnÄ…, nadrzÄ™dnÄ… pozycjÄ™", - "submission.sections.describe.relationship-lookup.external-source.import-modal.cancel": "Anuluj", - "submission.sections.describe.relationship-lookup.external-source.import-modal.collection": "Wybierz kolekcjÄ™ do zaimportowania nowych pozycji", - "submission.sections.describe.relationship-lookup.external-source.import-modal.entities": "Typ danych", - "submission.sections.describe.relationship-lookup.external-source.import-modal.entities.new": "Importuj jako nowy lokalny typ danych", - "submission.sections.describe.relationship-lookup.external-source.import-modal.head.lcname": "Importuj z LC Name", - "submission.sections.describe.relationship-lookup.external-source.import-modal.head.orcid": "Importuj z ORCID", - "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaJournal": "Importuj z Sherpa Journal", - "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaPublisher": "Importuj z Sherpa Publisher", - "submission.sections.describe.relationship-lookup.external-source.import-modal.head.pubmed": "Importuj z PubMed", - "submission.sections.describe.relationship-lookup.external-source.import-modal.head.arxiv": "Importuj z arXiv", - "submission.sections.describe.relationship-lookup.external-source.import-modal.import": "Import", - "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.title": "Importuj zdalne czasopismo", - "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.new-entity": "Successfully imported and added external journal to the selection", - "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.title": "Importuj zdalny numer czasopisma", - "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.local-entity": "UdaÅ‚o siÄ™ dodać lokalne czasopismo do zaznaczenia", - "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.new-entity": "UdaÅ‚o siÄ™ zaimportować i dodać czasopismo zewnÄ™trzne do zaznaczenia", - "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.title": "Importuj zdalny numer czasopisma", - "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.local-entity": "UdaÅ‚o siÄ™ dodać lokalny numer czasopismo do zaznaczenia", - "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.new-entity": "UdaÅ‚o siÄ™ zaimportować i dodać zewnÄ™trzny numer czasopisma do zaznaczenia", - "submission.sections.describe.relationship-lookup.external-source.import-modal.select": "Wybierz lokalne powiÄ…zanie:", - "submission.sections.describe.relationship-lookup.search-tab.deselect-all": "Odznacz wszystko", - "submission.sections.describe.relationship-lookup.search-tab.deselect-page": "Odznacz stronÄ™", - "submission.sections.describe.relationship-lookup.search-tab.loading": "Åadowanie...", - "submission.sections.describe.relationship-lookup.search-tab.placeholder": "Wyszukaj zapytanie", - "submission.sections.describe.relationship-lookup.search-tab.search": "Zastosuj", - "submission.sections.describe.relationship-lookup.search-tab.search-form.placeholder": "Wyszukaj...", - "submission.sections.describe.relationship-lookup.search-tab.select-all": "Zaznacz wszystko", - "submission.sections.describe.relationship-lookup.search-tab.select-page": "Zaznacz stronÄ™", - "submission.sections.describe.relationship-lookup.selected": "Zaznacz {{ size }} pozycji", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isAuthorOfPublication": "Autorzy lokalni ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalOfPublication": "Czasopisma lokalne ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.Project": "Projekty lokalne ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.Publication": "Publikacje lokalne ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.Person": "Autorzy lokalni ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.OrgUnit": "Lokalne jednostki organizacyjne ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.DataPackage": "Lokalne paczki danych ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.DataFile": "Lokalne pliki danych ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.Journal": "Lokalne czasopisma ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalIssueOfPublication": "Lokalne numery czasopism ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.JournalIssue": "Lokalne numery czasopism ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalVolumeOfPublication": "Lokalne tomy czasopism ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.JournalVolume": "Lokalne tomy czasopism ({{ 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.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.pubmed": "PubMed ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.arxiv": "arXiv ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfPublication": "Wyszukaj instytucje finansujÄ…ce", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingOfPublication": "Wyszukaj finansowanie", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isChildOrgUnitOf": "Wyszukaj jednostki organizacyjne", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.openAIREFunding": "Finansowanie OpenAIRE API", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isProjectOfPublication": "Projekty", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfProject": "Instytucja finansujÄ…ca projekt", - "submission.sections.describe.relationship-lookup.selection-tab.title.openAIREFunding": "Finansowanie OpenAIRE API", - "submission.sections.describe.relationship-lookup.selection-tab.title.isProjectOfPublication": "Projekt", - "submission.sections.describe.relationship-lookup.title.isProjectOfPublication": "Projekty", - "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfProject": "Instytucja finansujÄ…ca projekt", - "submission.sections.describe.relationship-lookup.selection-tab.search-form.placeholder": "Wyszukaj...", - "submission.sections.describe.relationship-lookup.selection-tab.tab-title": "Aktualne zaznaczenie ({{ count }})", - "submission.sections.describe.relationship-lookup.title.isJournalIssueOfPublication": "Numery czasopisma", - "submission.sections.describe.relationship-lookup.title.JournalIssue": "Numery czasopisma", - "submission.sections.describe.relationship-lookup.title.isJournalVolumeOfPublication": "Tomy czasopisma", - "submission.sections.describe.relationship-lookup.title.JournalVolume": "Tomy czasopisma", - "submission.sections.describe.relationship-lookup.title.isJournalOfPublication": "Czasopisma", - "submission.sections.describe.relationship-lookup.title.isAuthorOfPublication": "Autorzy", - "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfPublication": "Instytucja finansujÄ…ca", - "submission.sections.describe.relationship-lookup.title.Project": "Projekty", - "submission.sections.describe.relationship-lookup.title.Publication": "Publikacje", - "submission.sections.describe.relationship-lookup.title.Person": "Autorzy", - "submission.sections.describe.relationship-lookup.title.OrgUnit": "Jednostki organizacyjne", - "submission.sections.describe.relationship-lookup.title.DataPackage": "Paczki danych", - "submission.sections.describe.relationship-lookup.title.DataFile": "Pliki danych", - "submission.sections.describe.relationship-lookup.title.Funding Agency": "Instytucja finansujÄ…ca", - "submission.sections.describe.relationship-lookup.title.isFundingOfPublication": "Finansowanie", - "submission.sections.describe.relationship-lookup.title.isChildOrgUnitOf": "NadrzÄ™dna jednostka organizacyjna", - "submission.sections.describe.relationship-lookup.search-tab.toggle-dropdown": "PrzeÅ‚Ä…cz na listÄ™ rozwijanÄ…", - "submission.sections.describe.relationship-lookup.selection-tab.settings": "Ustawienia", - "submission.sections.describe.relationship-lookup.selection-tab.no-selection": "Twoje zaznaczenie jest puste.", - "submission.sections.describe.relationship-lookup.selection-tab.title.isAuthorOfPublication": "Wybrani autorzy", - "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalOfPublication": "Wybrane czasopisma", - "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalVolumeOfPublication": "Wybrane tomy czasopisma", - "submission.sections.describe.relationship-lookup.selection-tab.title.Project": "Wybrane projekty", - "submission.sections.describe.relationship-lookup.selection-tab.title.Publication": "Wybrane publikacje", - "submission.sections.describe.relationship-lookup.selection-tab.title.Person": "Wybrani autorzy", - "submission.sections.describe.relationship-lookup.selection-tab.title.OrgUnit": "Wybrane jednostki organizacyjne", - "submission.sections.describe.relationship-lookup.selection-tab.title.DataPackage": "Wybrane pakiety danych", - "submission.sections.describe.relationship-lookup.selection-tab.title.DataFile": "Wybrane pliki danych", - "submission.sections.describe.relationship-lookup.selection-tab.title.Journal": "Wybrane czasopisma", - "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalIssueOfPublication": "Wybrany numer wydania", - "submission.sections.describe.relationship-lookup.selection-tab.title.JournalVolume": "Wybrany tom czasopisma", - "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingAgencyOfPublication": "Wybrane instytucje finansujÄ…ce", - "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingOfPublication": "Wybrane finansowanie", - "submission.sections.describe.relationship-lookup.selection-tab.title.JournalIssue": "Wybrany numer wydania", - "submission.sections.describe.relationship-lookup.selection-tab.title.isChildOrgUnitOf": "Wybrana jednostka organizacyjna", - "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaJournal": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.crossref": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaPublisher": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.orcid": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.orcidv2": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.lcname": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.pubmed": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.arxiv": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.epo": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.scopus": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.scielo": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.wos": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.name-variant.notification.content": "Czy chcesz zapisać \"{{ value }}\" jako wariant imienia dla tego użytkownika, aby Ty lub inni użytkownicy mogli używać tego wariantu w przyszÅ‚ych zgÅ‚oszeniach?. JeÅ›li nie, nadal możesz użyć tego wariantu w tym zgÅ‚oszeniu.", - "submission.sections.describe.relationship-lookup.name-variant.notification.confirm": "Zapisz nowy wariant imienia", - "submission.sections.describe.relationship-lookup.name-variant.notification.decline": "Użyj tylko w tym zgÅ‚oszeniu", - "submission.sections.ccLicense.type": "Typ licencji", - "submission.sections.ccLicense.select": "Wybierz typ licencji…", - "submission.sections.ccLicense.change": "ZmieÅ„ typ licencji…", - "submission.sections.ccLicense.none": "Brak dostÄ™pnych licencji", - "submission.sections.ccLicense.option.select": "Wybierz opcję…", - "submission.sections.ccLicense.link": "Wybrano licencjÄ™:", - "submission.sections.ccLicense.confirmation": "Udzielam powyższej licencji", - "submission.sections.general.add-more": "Dodaj wiÄ™cej", - "submission.sections.general.collection": "Kolekcja", - "submission.sections.general.deposit_error_notice": "WystÄ…piÅ‚ bÅ‚Ä…d podczas zgÅ‚aszania pozycji. Spróbuj ponownie później.", - "submission.sections.general.deposit_success_notice": "UdaÅ‚o siÄ™ wprowadzić pozycjÄ™.", - "submission.sections.general.discard_error_notice": "WystÄ…piÅ‚ bÅ‚Ä…d podczas odrzucania pozycji. Spróbuj ponownie później.", - "submission.sections.general.discard_success_notice": "UdaÅ‚o siÄ™ odrzucić pozycjÄ™.", - "submission.sections.general.metadata-extracted": "Nowe metadane zostany rozpakowane i dodane do sekcji <strong>{{sectionId}}</strong>.", - "submission.sections.general.metadata-extracted-new-section": "Nowa sekcja <strong>{{sectionId}}</strong> zostaÅ‚a dodana do zgÅ‚oszenia.", - "submission.sections.general.no-collection": "Nie znaleziono kolekcji", - "submission.sections.general.no-sections": "Opcje niedostÄ™pne", - "submission.sections.general.save_error_notice": "WystÄ…piÅ‚ bÅ‚Ä…d podczas zapisywania numeru. Spróbuj ponownie później. Po odÅ›wieżeniu strony niezapisane zmiany mogÄ… zostać utracone.", - "submission.sections.general.save_success_notice": "UdaÅ‚o siÄ™ zapisać zgÅ‚oszenie.", - "submission.sections.general.search-collection": "Szukaj kolekcji", - "submission.sections.general.sections_not_valid": "Niektóre sekcje sÄ… niekompletne.", - "submission.sections.submit.progressbar.CClicense": "Licencja Creative Commons", - "submission.sections.submit.progressbar.describe.recycle": "Odzyskaj", - "submission.sections.submit.progressbar.describe.stepcustom": "Opisz", - "submission.sections.submit.progressbar.describe.stepone": "Opisz", - "submission.sections.submit.progressbar.describe.steptwo": "Opisz", - "submission.sections.submit.progressbar.detect-duplicate": "Potencjalne duplikaty", - "submission.sections.submit.progressbar.license": "Zdeponuj licencjÄ™", - "submission.sections.submit.progressbar.upload": "PrzeÅ›lij pliki", - "submission.sections.status.errors.title": "BÅ‚Ä™dy", - "submission.sections.status.valid.title": "Poprawność", - "submission.sections.status.warnings.title": "Ostrzeżenia", - "submission.sections.status.errors.aria": "ma bÅ‚Ä™dy", - "submission.sections.status.valid.aria": "jest poprawne", - "submission.sections.status.warnings.aria": "ma ostrzeżenia", - "submission.sections.toggle.open": "Otwórz sekcjÄ™", - "submission.sections.toggle.close": "Zamknij sekcjÄ™", - "submission.sections.toggle.aria.open": "RozwiÅ„ sekcjÄ™ {{sectionHeader}}", - "submission.sections.toggle.aria.close": "ZwiÅ„ sekcjÄ™ {{sectionHeader}}", - "submission.sections.upload.delete.confirm.cancel": "Anuluj", - "submission.sections.upload.delete.confirm.info": "Czy na pewno? To dziaÅ‚anie nie może zostać cofniÄ™te.", - "submission.sections.upload.delete.confirm.submit": "Tak, na pewno", - "submission.sections.upload.delete.confirm.title": "UsuÅ„ plik", - "submission.sections.upload.delete.submit": "UsuÅ„", - "submission.sections.upload.download.title": "Pobierz plik", - "submission.sections.upload.drop-message": "Upuść pliki, aby zaÅ‚Ä…czyć je do tej pozycji", - "submission.sections.upload.edit.title": "Edytuj plik", - "submission.sections.upload.form.access-condition-label": "Typ dostÄ™pu", - "submission.sections.upload.form.date-required": "Data jest wymagana.", - "submission.sections.upload.form.date-required-from": "Data przyznania dostÄ™pu od jest wymagana.", - "submission.sections.upload.form.date-required-until": "Data przyznania dostÄ™pu do jest wymagana.", - "submission.sections.upload.form.from-label": "Pozwól na dostÄ™p od", - "submission.sections.upload.form.from-placeholder": "Od", - "submission.sections.upload.form.group-label": "Grupa", - "submission.sections.upload.form.group-required": "Grupa jest wymagana", - "submission.sections.upload.form.until-label": "Pozwól na dostÄ™p do", - "submission.sections.upload.form.until-placeholder": "Do", - "submission.sections.upload.header.policy.default.nolist": "Pliki wgrane do kolekcji {{collectionName}} bÄ™dÄ… dostÄ™pne dla poniższych grup:", - "submission.sections.upload.header.policy.default.withlist": "Zwróć uwagÄ™ na to, że pliki w kolekcji {{collectionName}} bÄ™dÄ… dostÄ™pne dla poniższych grup, z wyjÄ…tkiem tych, które zostaÅ‚y wyÅ‚Ä…czone z dostÄ™pu:", - "submission.sections.upload.info": "Tutaj znajdujÄ… siÄ™ wszystkie pliki dodane w tym momencie do pozycji. Możesz zaktualizować metadane pliku i warunki dostÄ™pu lub <strong>przesÅ‚ać dodatkowe pliki, przeciÄ…gajÄ…c i opuszczajÄ…c je gdziekolwiek na tej stronie</strong>", - "submission.sections.upload.no-entry": "Nie", - "submission.sections.upload.no-file-uploaded": "Pliki nie zostaÅ‚y jeszcze wgrane.", - "submission.sections.upload.save-metadata": "Zapisz metadane", - "submission.sections.upload.undo": "Anuluj", - "submission.sections.upload.upload-failed": "PrzesyÅ‚anie nieudane", - "submission.sections.upload.upload-successful": "PrzesyÅ‚anie udane", - "submission.submit.breadcrumbs": "Nowe zgÅ‚oszenie", - "submission.submit.title": "Nowe zgÅ‚oszenie", - "submission.workflow.generic.delete": "UsuÅ„", - "submission.workflow.generic.delete-help": "JeÅ›li chcesz odrzucić tÄ™ pozycjÄ™, wybierz \"Delete\". BÄ™dzie wymagane potwierdzenie tej decyzji.", - "submission.workflow.generic.edit": "Edytuj", - "submission.workflow.generic.edit-help": "Wybierz tÄ™ opcjÄ™, aby zmienić metadane pozycji.", - "submission.workflow.generic.view": "PodglÄ…d", - "submission.workflow.generic.view-help": "Wybierz tÄ™ opcjÄ™, aby wyÅ›wietlić metadane pozycji.", - "submission.workflow.tasks.claimed.approve": "Zatwierdź", - "submission.workflow.tasks.claimed.approve_help": "JeÅ›li ta pozycja ma zostać zatwierdzona i wprowadzona do kolekcji, wybierz \"Approve\".", - "submission.workflow.tasks.claimed.edit": "Edytuj", - "submission.workflow.tasks.claimed.edit_help": "Wybierz tÄ™ opcjÄ™, aby zmienić metadane pozycji.", - "submission.workflow.tasks.claimed.reject.reason.info": "ProszÄ™ wpisać powód odrzucenia zgÅ‚oszenia w poniższe pole, wskazujÄ…c, czy zgÅ‚aszajÄ…cy może poprawić problem i ponownie przesÅ‚ać zgÅ‚oszenie.", - "submission.workflow.tasks.claimed.reject.reason.placeholder": "Opisz powód odrzucenia zgÅ‚oszenia", - "submission.workflow.tasks.claimed.reject.reason.submit": "Odrzuć pozycjÄ™", - "submission.workflow.tasks.claimed.reject.reason.title": "Powód", - "submission.workflow.tasks.claimed.reject.submit": "Odrzuć", - "submission.workflow.tasks.claimed.reject_help": "JeÅ›li po przejrzeniu pozycji stwierdzono, że nie nadaje siÄ™ ona do wÅ‚Ä…czenia do kolekcji, wybierz opcjÄ™ \"Reject\". Zostaniesz wtedy poproszony o okreÅ›lenie powodu odrzucenia, i wskazanie czy zgÅ‚aszajÄ…cy powinien wprowadzić zmiany i przesÅ‚ać ponownie pozycjÄ™.", - "submission.workflow.tasks.claimed.return": "Cofnij do puli zadaÅ„", - "submission.workflow.tasks.claimed.return_help": "Cofnij zadanie do puli, aby inny użytkownik mógÅ‚ siÄ™ go podjąć.", - "submission.workflow.tasks.generic.error": "Podczas dziaÅ‚ania wystÄ…piÅ‚ bÅ‚Ä…d...", - "submission.workflow.tasks.generic.processing": "Procesowanie...", - "submission.workflow.tasks.generic.submitter": "ZgÅ‚aszajÄ…cy", - "submission.workflow.tasks.generic.success": "UdaÅ‚o siÄ™", - "submission.workflow.tasks.pool.claim": "Podejmij pracÄ™", - "submission.workflow.tasks.pool.claim_help": "Przypisz to zadanie do siebie.", - "submission.workflow.tasks.pool.hide-detail": "Ukryj szczegóły", - "submission.workflow.tasks.pool.show-detail": "Pokaż szczegóły", - "thumbnail.default.alt": "Miniatura", - "thumbnail.default.placeholder": "Brak miniatury", - "thumbnail.project.alt": "Logo projektu", - "thumbnail.project.placeholder": "Obraz zastÄ™pczy projketu", - "thumbnail.orgunit.alt": "Logo jednostki organizacyjnej", - "thumbnail.orgunit.placeholder": "Obraz zastÄ™pczy jednostki organizacyjnej", - "thumbnail.person.alt": "ZdjÄ™cie profilowe", - "thumbnail.person.placeholder": "Brak zdjÄ™cia profilowego", - "title": "DSpace", - "vocabulary-treeview.header": "Widok drzewka", - "vocabulary-treeview.load-more": "Pokaż wiÄ™cej", - "vocabulary-treeview.search.form.reset": "Resetuj", - "vocabulary-treeview.search.form.search": "Szukaj", - "vocabulary-treeview.search.no-result": "Brak pozycji do wyÅ›wietlenia", - "vocabulary-treeview.tree.description.nsi": "The Norwegian Science Index", - "vocabulary-treeview.tree.description.srsc": "Kategorie tematów badaÅ„", - "uploader.browse": "wyszukaj na swoim urzÄ…dzeniu", - "uploader.drag-message": "PrzeciÄ…gnij i upuść pliki tutaj", - "uploader.delete.btn-title": "UsuÅ„", - "uploader.or": ", lub ", - "uploader.processing": "Procesowanie", - "uploader.queue-length": "DÅ‚ugość kolejki", - "virtual-metadata.delete-item.info": "Wybierz typy, dla których chcesz zapisać wirtualne metadane jako rzeczywiste metadane", - "virtual-metadata.delete-item.modal-head": "Wirtualne metadane tego powiÄ…zania", - "virtual-metadata.delete-relationship.modal-head": "Wybierz pozycje, dla których chcesz zapisać wirtualne metadane jako rzeczywiste metadane", - "workflowAdmin.search.results.head": "ZarzÄ…dzaj procesami", - "workflow-item.edit.breadcrumbs": "Edytuj pozycjÄ™ procesu", - "workflow-item.edit.title": "Edytuj pozycjÄ™ procesu", - "workflow-item.delete.notification.success.title": "UsuniÄ™te", - "workflow-item.delete.notification.success.content": "Ten element procesu zostaÅ‚ usuniÄ™ty", - "workflow-item.delete.notification.error.title": "CoÅ› poszÅ‚o nie tak", - "workflow-item.delete.notification.error.content": "Ten element procesu nie mógÅ‚ zostać usuniÄ™ty", - "workflow-item.delete.title": "UsuÅ„ element procesu", - "workflow-item.delete.header": "UsuÅ„ element procesu", - "workflow-item.delete.button.cancel": "Anuluj", - "workflow-item.delete.button.confirm": "UsuÅ„", - "workflow-item.send-back.notification.success.title": "SOdeÅ›lij do zgÅ‚aszajÄ…cego", - "workflow-item.send-back.notification.success.content": "Ten element procesu zostaÅ‚ odesÅ‚any do zgÅ‚aszajÄ…cego", - "workflow-item.send-back.notification.error.title": "CoÅ› poszÅ‚o nie tak", - "workflow-item.send-back.notification.error.content": "Ten element procesu nie mógÅ‚ zostać odesÅ‚any do zgÅ‚aszajÄ…cego", - "workflow-item.send-back.title": "OdeÅ›lij element procesu do zgÅ‚aszajÄ…cego", - "workflow-item.send-back.header": "OdeÅ›lij element procesu do zgÅ‚aszajÄ…cego", - "workflow-item.send-back.button.cancel": "Anuluj", - "workflow-item.send-back.button.confirm": "OdeÅ›lij", - "workflow-item.view.breadcrumbs": "Widok procesu", - "idle-modal.header": "Sesja wkrótce wygaÅ›nie", - "idle-modal.info": "Ze wzglÄ™dów bezpieczeÅ„stwa sesja wygaÅ›nie po {{ timeToExpire }} minutach nieaktywnoÅ›ci. Twoja sesja wkrótce wygaÅ›nie. Czy chcesz jÄ… przedÅ‚użyć albo wylogować siÄ™?", - "idle-modal.log-out": "Wyloguj", - "idle-modal.extend-session": "WydÅ‚uż sesjÄ™", - "workspace.search.results.head": "Twoje zadania", - "orgunit.listelement.badge": "Jednostka organizacyjna", - "orgunit.page.city": "Miasto", - "orgunit.page.country": "Kraj", - "orgunit.page.dateestablished": "Data zaÅ‚ożenia", - "orgunit.page.description": "Opis", - "orgunit.page.edit": "Edytuj pozycjÄ™", - "orgunit.page.id": "ID", - "orgunit.page.titleprefix": "Jednostka organizacyjna: ", - "pagination.options.description": "Opcje strony", - "pagination.results-per-page": "Wyników na stronÄ™", - "pagination.showing.detail": "{{ range }} z {{ total }}", - "pagination.showing.label": "Teraz wyÅ›wietlane ", - "pagination.sort-direction": "Opcje sortowania", - "cookies.consent.purpose.sharing": "UdostÄ™pnianie", - "item.preview.dc.identifier.issn": "ISSN", - "500.page-internal-server-error": "UsÅ‚uga niedostÄ™pna", - "500.help": "Serwer jest tymczasowo niezdolny do obsÅ‚ugi Twojego żądania z powodu przestoju konserwacyjnego lub problemów z przepustowoÅ›ciÄ…. Prosimy spróbować ponownie później.", - "500.link.home-page": "Zabierz mnie na stronÄ™ głównÄ…", - "error-page.description.401": "brak autoryzacji", - "error-page.description.403": "brak dostÄ™pu", - "error-page.description.500": "usÅ‚uga niedostÄ™pna", - "error-page.description.404": "nie znaleziono strony", - "error-page.orcid.generic-error": "Podczas logowania za pomocÄ… ORCID wystÄ…piÅ‚ bÅ‚Ä…d. Upewnij siÄ™, że udostÄ™pniÅ‚eÅ› DSpace adres e-mail swojego konta ORCID. JeÅ›li bÅ‚Ä…d nadal wystÄ™puje, skontaktuj siÄ™ z administratorem", - "access-status.embargo.listelement.badge": "Embargo", - "access-status.metadata.only.listelement.badge": "Tylko metadane", - "access-status.open.access.listelement.badge": "Open Access", - "access-status.restricted.listelement.badge": "Brak dostÄ™pu", - "access-status.unknown.listelement.badge": "Nieznane", - "admin.access-control.groups.table.edit.buttons.remove": "UsuÅ„ \"{{name}}\"", - "admin.metadata-import.page.validateOnly": "Tylko waliduj", - "admin.metadata-import.page.validateOnly.hint": "Po wybraniu tej opcji przesÅ‚any plik CSV zostanie poddany walidacji. Otrzymasz raport o wykrytych zmianach, ale żadne zmiany nie zostanÄ… zapisane.", - "bitstream.edit.form.iiifLabel.label": "Etykieta canvyIIIF", - "bitstream.edit.form.iiifLabel.hint": "Etykieta dla tego obrazu. JeÅ›li nie zostaÅ‚a dostarczona, zostanie użyta domyÅ›lna etykieta.", - "bitstream.edit.form.iiifToc.label": "Spis treÅ›ci IIIF", - "bitstream.edit.form.iiifToc.hint": "Dodanie tekstu tutaj zapoczÄ…tkuje nowy zakres spisu treÅ›ci.", - "bitstream.edit.form.iiifWidth.label": "Szerokość canvy IIIF", - "bitstream.edit.form.iiifWidth.hint": "Szerokość canvy jest zwykle równa szerokoÅ›ci obrazu.", - "bitstream.edit.form.iiifHeight.label": "Wysokość canvy IIIF", - "bitstream.edit.form.iiifHeight.hint": "Wysokość canvy jest zwykle równa szerokoÅ›ci obrazu.", - "browse.back.all-results": "Wszystkie wyniki wyszukiwania", - "pagination.next.button": "NastÄ™pny", - "pagination.previous.button": "Poprzedni", - "pagination.next.button.disabled.tooltip": "Brak wiÄ™cej stron z wynikami wyszukiwania", - "browse.startsWith": ", zaczyna siÄ™ od {{ startsWith }}", - "browse.title.page": "Przeszukiwanie {{ collection }} wg {{ field }} {{ value }}", - "collection.edit.item.authorizations.load-bundle-button": "ZaÅ‚aduj wiÄ™cej paczek", - "collection.edit.item.authorizations.load-more-button": "ZaÅ‚aduj wiÄ™cej", - "collection.edit.item.authorizations.show-bitstreams-button": "Pokaż polityki plików dla paczek", - "comcol-role.edit.create.error.title": "Nie udaÅ‚o siÄ™ utworzyć grupy dla roli '{{ role }}'", - "curation.form.submit.error.invalid-handle": "Nie ustalono identyfikatora dla tego obiektu", - "confirmation-modal.delete-profile.header": "UsuÅ„ profil", - "confirmation-modal.delete-profile.info": "Czy na pewno chcesz usunąć profil", - "confirmation-modal.delete-profile.cancel": "Anuluj", - "confirmation-modal.delete-profile.confirm": "UsuÅ„", - "error.invalid-search-query": "Zapytanie nie jest poprawne. Wejdź na <a href=\"https://solr.apache.org/guide/query-syntax-and-parsing.html\" target=\"_blank\">Solr query syntax</a>, aby dowiedzieć siÄ™ o najlepszych praktykach i dodatkowych informacjach o tym bÅ‚Ä™dzie.", - "feed.description": "AktualnoÅ›ci", - "footer.link.feedback": "PrzeÅ›lij uwagi", - "form.group-collapse": "ZwiÅ„", - "form.group-collapse-help": "Kliknij tutaj, aby zwinąć", - "form.group-expand": "RozwiÅ„", - "form.group-expand-help": "Kliknij tutaj, aby rozwinąć", - "health.breadcrumbs": "Stan systemu", - "health-page.heading": "Stan systemu", - "health-page.info-tab": "Informacje", - "health-page.status-tab": "Status", - "health-page.error.msg": "Serwis stanu systemu jest tymczasowo niedostÄ™pny", - "health-page.property.status": "Kod statusu", - "health-page.section.db.title": "Baza danych", - "health-page.section.geoIp.title": "GeoIp", - "health-page.section.solrAuthorityCore.title": "Autentykacja", - "health-page.section.solrOaiCore.title": "OAI", - "health-page.section.solrSearchCore.title": "Wyszukiwarka", - "health-page.section.solrStatisticsCore.title": "Statystyki", - "health-page.section-info.app.title": "Backend aplikacji", - "health-page.section-info.java.title": "Java", - "health-page.status": "Status", - "health-page.status.ok.info": "operacyjny", - "health-page.status.error.info": "Wykryte problemy", - "health-page.status.warning.info": "Wykryte potencjalne problemy", - "health-page.title": "Stan systemu", - "health-page.section.no-issues": "Nie wykryto żadnych problemów", - "info.feedback.breadcrumbs": "Uwagi", - "info.feedback.head": "Uwagi", - "info.feedback.title": "Uwagi", - "info.feedback.info": "DziÄ™kujemy za podzielenie siÄ™ opiniÄ… na temat systemu DSpace. Doceniamy Twój wkÅ‚ad w lepsze dziaÅ‚anie systemu!", - "info.feedback.email_help": "Ten adres zostanie użyty, aby przesÅ‚ać odpowiedź na uwagi.", - "info.feedback.send": "PrzeÅ›lij uwagi", - "info.feedback.comments": "Komentarz", - "info.feedback.email-label": "Twoj adres e-mail", - "info.feedback.create.success": "Uwagi przesÅ‚ane!", - "info.feedback.error.email.required": "Poprawny adres e-mail jest wymagany", - "info.feedback.error.message.required": "Treść komentarza jest wymagana", - "info.feedback.page-label": "Strona", - "info.feedback.page_help": "Ta strona odnosi siÄ™ do uwag.", - "item.orcid.return": "Powrót", - "item.truncatable-part.show-more": "Pokaż wiÄ™cej", - "item.truncatable-part.show-less": "Pokaż mniej", - "item.page.orcid.title": "ORCID", - "item.page.orcid.tooltip": "Otwórz ustawienia ORCID", - "item.page.claim.button": "Podejmij pracÄ™", - "item.page.claim.tooltip": "Podejmij pracÄ™ jako profil", - "item.version.create.modal.submitted.header": "Tworzenie nowej wersji...", - "item.version.create.modal.submitted.text": "Nowa wersja zostaÅ‚a utworzona. MogÅ‚o to trwać chwilÄ™, jeÅ›li pozycja ma wiele powiÄ…zaÅ„.", - "journal-relationships.search.results.head": "Wyniki wyszukiwania czasopism", - "menu.section.icon.health": "Sekcja menu Stan systemu", - "menu.section.health": "Stan systemu", - "metadata-export-search.tooltip": "Eksportuj wyniki wyszukiwania w formacie CSV", - "metadata-export-search.submit.success": "Eksport rozpoczÄ…Å‚ siÄ™", - "metadata-export-search.submit.error": "Eksport nie rozpoczÄ…Å‚ siÄ™", - "person.page.name": "Nazwa", - "person-relationships.search.results.head": "Wyniki wyszukiwania osób", - "profile.special.groups.head": "Autoryzacja do specjalnych grup, do których należysz", - "project-relationships.search.results.head": "Wyniki wyszukiwania projektów", - "publication-relationships.search.results.head": "Wyniki wyszukiwania publikacji", - "resource-policies.edit.page.target-failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas edycji (użytkownika lub grupy) zwiÄ…zany z politykÄ… zasobu.", - "resource-policies.edit.page.other-failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas edycji polityki zasobu. Użytkownik lub grupa zostaÅ‚y zaktualizowane pomyÅ›lnie.", - "resource-policies.form.eperson-group-list.modal.header": "Nie można zmienić typu", - "resource-policies.form.eperson-group-list.modal.text1.toGroup": "Nie można zastÄ…pić użytkownika grupÄ….", - "resource-policies.form.eperson-group-list.modal.text1.toEPerson": "Nie można zastÄ…pić grupy użytkownikiem.", - "resource-policies.form.eperson-group-list.modal.text2": "UsuÅ„ obecnÄ… polityke zasobu i stwórz nowÄ… o okreÅ›lonym typie.", - "resource-policies.form.eperson-group-list.modal.close": "Ok", - "search.results.view-result": "Widok", - "default-relationships.search.results.head": "Wyniki wyszukiwania", - "statistics.table.title.TotalVisits": "WyÅ›wietlnia ogółem", - "statistics.table.title.TotalVisitsPerMonth": "WyÅ›wietlenia w miesiÄ…cu", - "statistics.table.title.TotalDownloads": "Pobrania", - "statistics.table.title.TopCountries": "WyÅ›wietlenia wg krajów", - "statistics.table.title.TopCities": "WyÅ›wietlenia wg miast", - "submission.import-external.preview.title": "PodglÄ…d pozycji", - "submission.import-external.preview.title.none": "PodglÄ…d pozycji", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.none": "Import pozycji zdalnie", - "submission.sections.general.cannot_deposit": "Nie można zakoÅ„czyć deponowania, ponieważ w formularzu wystÄ…piÅ‚y bÅ‚Ä™dy.<br>Aby zakoÅ„czyć deponowanie, wypeÅ‚nij wszystkie obowiÄ…zkowe pola.", - "submission.sections.submit.progressbar.accessCondition": "Warunki dostÄ™pu do pozycji", - "submission.sections.submit.progressbar.sherpapolicy": "Polityki Sherpa", - "submission.sections.submit.progressbar.sherpaPolicies": "Informacje o polityce open access wydawcy.", - "submission.sections.status.info.title": "Dodatkowe informacje", - "submission.sections.status.info.aria": "Dodatkowe informacje", - "submission.sections.upload.form.access-condition-hint": "Wybierz w jaki sposób pliki dla tej pozycji po jest zdeponowaniu bÄ™dÄ… mogÅ‚y być udostÄ™pnione", - "submission.sections.upload.form.from-hint": "Wybierz datÄ™, od której ma zostać zastosowany warunek dostÄ™pu", - "submission.sections.upload.form.until-hint": "Wybierz datÄ™, do której ma zostać zastosowany warunek dostÄ™pu", - "submission.sections.accesses.form.discoverable-description": "JeÅ›li checkbox jest zaznaczony, pozycja bÄ™dzie wyÅ›wietlana w wynikach wyszukiwania. JeÅ›li checkbox jest odznaczony, dostÄ™p do pozycji bÄ™dzie dostÄ™pny tylko przez bezpoÅ›redni link, pozycja nie bÄ™dzie wyÅ›wietlana w wynikach wyszukiwania.", - "submission.sections.accesses.form.discoverable-label": "Niemożliwe do wyszukania", - "submission.sections.accesses.form.access-condition-label": "Typ warunku dostÄ™pu", - "submission.sections.accesses.form.access-condition-hint": "Wybierz warunek dostÄ™pu, aby przypisać go do pozycji, kiedy zostanie zdeponowany.", - "submission.sections.accesses.form.date-required": "Data jest wymagana.", - "submission.sections.accesses.form.date-required-from": "PoczÄ…tkowa data przyznania dostÄ™pu jest wymagana.", - "submission.sections.accesses.form.date-required-until": "KoÅ„cowa data przyznania dostÄ™pu jest wymagana.", - "submission.sections.accesses.form.from-label": "Udziel dostÄ™pu od", - "submission.sections.accesses.form.from-hint": "Wybierz datÄ™, od kiedy zostanie przyznany dostÄ™p do tej pozycji", - "submission.sections.accesses.form.from-placeholder": "Od", - "submission.sections.accesses.form.group-label": "Grupa", - "submission.sections.accesses.form.group-required": "Grupa jest wymagana.", - "submission.sections.accesses.form.until-label": "Udziel dostÄ™pu do", - "submission.sections.accesses.form.until-hint": "Wybierz datÄ™, do kiedy zostanie przyznany dostÄ™p do tej pozycji", - "submission.sections.accesses.form.until-placeholder": "Do", - "submission.sections.sherpa.publication.information": "Informacje o publikacji", - "submission.sections.sherpa.publication.information.title": "TytuÅ‚", - "submission.sections.sherpa.publication.information.issns": "Numery ISSN", - "submission.sections.sherpa.publication.information.url": "URL", - "submission.sections.sherpa.publication.information.publishers": "Wydawca", - "submission.sections.sherpa.publication.information.romeoPub": "Wydawca Romeo", - "submission.sections.sherpa.publication.information.zetoPub": "Wydawca Zeto", - "submission.sections.sherpa.publisher.policy": "Polityka wydawnicza", - "submission.sections.sherpa.publisher.policy.description": "Poniższe informacje zostaÅ‚y znalezione za poÅ›rednictwem Sherpa Romeo. W oparciu o politykÄ™ Twojego wydawcy, zawiera ona porady dotyczÄ…ce tego, czy embargo może być konieczne i/lub jakie pliki możesz przesÅ‚ać. JeÅ›li masz pytania, skontaktuj siÄ™ z administratorem strony poprzez formularz.", - "submission.sections.sherpa.publisher.policy.openaccess": "Rodzaje Open Access dozwolone przez politykÄ™ wydawniczÄ… tego czasopisma sÄ… wymienione poniżej. Kliknij na wybrany rodzaj, aby przejść do szczegółowego widoku", - "submission.sections.sherpa.publisher.policy.more.information": "Aby uzuyskać wiÄ™cej informacji, kliknij tutaj:", - "submission.sections.sherpa.publisher.policy.version": "Wersja", - "submission.sections.sherpa.publisher.policy.embargo": "Embargo", - "submission.sections.sherpa.publisher.policy.noembargo": "Brak embargo", - "submission.sections.sherpa.publisher.policy.nolocation": "Brak", - "submission.sections.sherpa.publisher.policy.license": "Licencja", - "submission.sections.sherpa.publisher.policy.prerequisites": "Wymagania wstÄ™pne", - "submission.sections.sherpa.publisher.policy.location": "Lokalizacja", - "submission.sections.sherpa.publisher.policy.conditions": "Wymagania", - "submission.sections.sherpa.publisher.policy.refresh": "OdÅ›wież", - "submission.sections.sherpa.record.information": "Informacje o rekordzie", - "submission.sections.sherpa.record.information.id": "ID", - "submission.sections.sherpa.record.information.date.created": "Data utworzenia", - "submission.sections.sherpa.record.information.date.modified": "Ostatnia modyfikacja", - "submission.sections.sherpa.record.information.uri": "URI", - "submission.sections.sherpa.error.message": "WystÄ…piÅ‚ bÅ‚Ä…d podczas pobierania informacji z Sherpa", - "submission.workspace.generic.view": "PodglÄ…d", - "submission.workspace.generic.view-help": "Wybierz tÄ™ opcje, aby zobaczyć metadane.", - "workflow.search.results.head": "Zadania na workflow", - "workspace-item.view.breadcrumbs": "Widok wersji roboczej", - "workspace-item.view.title": "Widok wersji roboczej", - "researcher.profile.change-visibility.fail": "WystÄ…piÅ‚ niespodziewany bÅ‚Ä…d podczas zmiany widocznoÅ›ci profilu", - "person.page.orcid.link.processing": "ÅÄ…czenie profilu z ORCID...", - "person.page.orcid.link.error.message": "CoÅ› poszÅ‚o nie tak podczas Å‚Ä…czenia z ORCID. JeÅ›li problem bÄ™dzie siÄ™ powtarzaÅ‚, skontaktuj siÄ™ z administratorem.", - "person.page.orcid.sync-queue.table.header.type": "Typ", - "person.page.orcid.sync-queue.table.header.description": "Opis", - "person.page.orcid.sync-queue.table.header.action": "Akcja", - "person.page.orcid.sync-queue.tooltip.project": "Projekt", - "person.page.orcid.sync-queue.send.validation-error.country.invalid": "NiewÅ‚aÅ›ciwy dwuznakowy kod kraju ISO 3166", - "person.page.orcid.sync-queue.send.validation-error.publication.date-invalid": "Wymagana data publikacji to co najmniej rok po 1900", - "person.page.orcid.synchronization-mode-funding-message": "Wybierz, czy chcesz wysÅ‚ać swoje projekty na swojÄ… listÄ™ informacji o projektach w profilu ORCID.", - "person.page.orcid.synchronization-mode-publication-message": "Wybierz, czy chcesz wysÅ‚ać swoje publikacje na swojÄ… listÄ™ informacji o publikacjach w profilu ORCID.", - "person.page.orcid.synchronization-mode-profile-message": "Wybierz, czy chcesz wysÅ‚ać swoje dane bibliograficzne lub osobiste identyfikatory do swojego profilu ORCID.", - "person.orcid.sync.setting": "Ustawienia synchronizacji z ORCID", - "person.orcid.registry.queue": "Kolejka rejestru z ORCID", - "person.orcid.registry.auth": "Autoryzacje z ORCID", - "home.recent-submissions.head": "Najnowsze publikacje", - "submission.sections.sherpa-policy.title-empty": "Nie wybrano ISSN i informacje o polityce wydawniczej czasopisma sÄ… niedostÄ™pne", - "admin.batch-import.breadcrumbs": "Import zbiorczy", - "admin.batch-import.page.dropMsg": "Drop a batch ZIP to import", - "admin.batch-import.page.dropMsgReplace": "Drop to replace the batch ZIP to import", - "admin.batch-import.page.error.addFile": "Najpierw wybierz plik (ZIP)", - "admin.batch-import.page.header": "Import masowy", - "admin.batch-import.page.help": "Wybierz kolekcjÄ™ do zaimportowania kolekcji. Potem, upuść lub przeszukaj plik SAF, który zawiera pozycje do importu", - "admin.batch-import.page.remove": "usuÅ„", - "admin.batch-import.page.validateOnly.hint": "JeÅ›li wybrano, importowany plik ZIP bÄ™dzie walidowany. Otrzymasz raport ze zmianami, ale żadne zmiany nie zostanÄ… wykonane zapisane.", - "collection.form.correctionSubmissionDefinition": "Wzór zgÅ‚oszenia do proÅ›by o korektÄ™", - "comcol-role.edit.delete.error.title": "Nie udaÅ‚o siÄ™ usunąć roli '{{ role }}' dla grup", - "confirmation-modal.export-batch.header": "Eksport maasowy (ZIP) {{ dsoName }}", - "confirmation-modal.export-batch.info": "Czy na pewno chcesz wyeksportować plik ZIP z {{ dsoName }}", - "dso-selector.export-batch.dspaceobject.head": "Eksport masowy (ZIP) z", - "menu.section.export_batch": "Eksport masowy (ZIP)", - "nav.user-profile-menu-and-logout": "Profil użytkownika i wylogowywanie", - "process.detail.actions": "Akcje", - "process.detail.delete.body": "Czy na pewno chcesz usunąć bieżący proces?", - "process.detail.delete.button": "UsuÅ„ proces", - "process.detail.delete.cancel": "Anuluj", - "process.detail.delete.confirm": "UsuÅ„ proces", - "process.detail.delete.error": "Nie udaÅ‚o siÄ™ usunąć procesu", - "process.detail.delete.header": "UsuÅ„ proces", - "process.detail.delete.success": "Proces zostaÅ‚ usuniÄ™ty.", - "admin.batch-import.title": "Masowy import", - "admin.metadata-import.page.button.select-collection": "Wybierz kolekcjÄ™", - "admin.registries.bitstream-formats.table.id": "ID", - "admin.registries.schema.fields.table.id": "ID", - "cookies.consent.app.description.google-recaptcha": "Podczas rejestracji i odzyskiwania hasÅ‚a używamy narzÄ™dzia google reCAPTCHA", - "cookies.consent.app.disable-all.description": "PrzeÅ‚Ä…cz, aby zaakceptować lub odrzucić wszystkie", - "cookies.consent.app.disable-all.title": "Akceptowacja lub odrzucenie wszystkich", - "cookies.consent.app.title.google-recaptcha": "Google reCaptcha", - "cookies.consent.content-modal.service": "usÅ‚uga", - "cookies.consent.content-modal.services": "usÅ‚ugi", - "cookies.consent.content-notice.description.no-privacy": "Zbieramy i przetwarzamy Twoje dane w celu: <strong>autentykacji, ustawieÅ„ preferencji i zgód oraz do celów statystycznych</strong>.", - "cookies.consent.content-notice.title": "Zgoda na ciasteczka", - "cookies.consent.ok": "Zgadzam siÄ™", - "cookies.consent.purpose.registration-password-recovery": "Rejestracja i odzyskiwanie hasÅ‚a", - "cookies.consent.save": "Zapisz", - "curation-task.task.citationpage.label": "Generuj stronÄ™ z cytowaniem", - "dso-selector.import-batch.dspaceobject.head": "Import masowy z", - "orgunit.listelement.no-title": "Brak tytyÅ‚u", - "process.bulk.delete.error.body": "Proces z ID {{processId}} nie może być usuniÄ™ty. PozostaÅ‚e procesy zostanÄ… usuniÄ™te.", - "process.bulk.delete.error.head": "BÅ‚Ä…d podczas usuwania procesu", - "process.bulk.delete.success": "{{count}} proces/y zostaÅ‚/y usuniÄ™te", - "process.overview.delete": "UsuÅ„ {{count}} proces/y", - "process.overview.delete.body": "Czy na pewno usunąć {{count}} proces/y?", - "process.overview.delete.clear": "Wyczyść selekcjÄ™ procesów do usuniÄ™cia", - "process.overview.delete.header": "UsuÅ„ procesy", - "process.overview.delete.processing": "{{count}} procesów zostanie usuniÄ™tych. Poczekaj, gdy usuwanie siÄ™ zakoÅ„czy. Może to zająć chwilÄ™.", - "process.overview.table.actions": "Akcje", - "profile.security.form.label.current-password": "Aktualne hasÅ‚o", - "profile.security.form.notifications.error.change-failed": "WystÄ…piÅ‚ bÅ‚Ä…d podczas próby zmiany hasÅ‚a. Sprawdź czy aktualne hasÅ‚o jest prawidÅ‚owe.", - "profile.security.form.notifications.error.general": "UzupeÅ‚nij wymagane pola dla bezpieczeÅ„stwa na formularzu", - "register-page.registration.error.recaptcha": "WystÄ…piÅ‚ bÅ‚Ä…d podczas próby autentykacji przez reCAPTCHA", - "register-page.registration.google-recaptcha.must-accept-cookies": "Aby siÄ™ zarejestrować, musisz zaakceptować ciasteczka dla <b>rejestracji i odzyskiwania hasÅ‚a</b> (Google reCaptcha).", - "register-page.registration.google-recaptcha.notification.message.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas weryfikacji reCaptcha", - "register-page.registration.google-recaptcha.notification.message.expired": "Weryfikacja wygasÅ‚a. Zweryfikuj ponownie.", - "register-page.registration.google-recaptcha.notification.title": "Google reCaptcha", - "register-page.registration.google-recaptcha.open-cookie-settings": "Otwórz ustawienia plików cookies", - "search.results.response.500": "WystÄ…piÅ‚ bÅ‚Ä…d podczas wysyÅ‚ania zapytania. Spróbuj ponownie później", - "submission.sections.license.granted-label": "Potwierdzam akceptacjÄ™ powyższej licencji", - "submission.sections.license.notgranted": "Najpierw musisz zaakceptować licencjÄ™", - "submission.sections.license.required": "Najpierw musisz zaakceptować licencjÄ™", - "confirmation-modal.export-batch.confirm": "Eksportuj", - "confirmation-modal.export-batch.cancel": "Anuluj", + "401.help":"Nie masz uprawnieÅ„ do dostÄ™pu do tej strony. Możesz użyć przycisku poniżej, aby powrócić do strony głównej.", + "401.link.home-page":"Zabierz mnie na stronÄ™ głównÄ…", + "401.unauthorized":"nieautoryzowany", + "403.help":"Nie masz uprawnieÅ„ do dostÄ™pu do tej strony. Możesz użyć przycisku poniżej, aby wrócić do strony głównej.", + "403.link.home-page":"Zabierz mnie na stronÄ™ głównÄ…", + "403.forbidden":"zabroniony", + "404.help":"Nie możemy znaleźć strony, której szukasz. Strona mogÅ‚a zostać przeniesiona lub usuniÄ™ta. Możesz użyć przycisku poniżej, aby powrócić do strony głównej. ", + "404.link.home-page":"Zabierz mnie na stronÄ™ głównÄ…", + "404.page-not-found":"strona nie zostaÅ‚a znaleziona", + "admin.curation-tasks.breadcrumbs":"Systemowe zadania administracyjne", + "admin.curation-tasks.title":"Systemowe zadania administracyjne", + "admin.curation-tasks.header":"Systemowe zadania administracyjne", + "admin.registries.bitstream-formats.breadcrumbs":"Rejestr formatów", + "admin.registries.bitstream-formats.create.breadcrumbs":"Format strumienia bitów", + "admin.registries.bitstream-formats.create.failure.content":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia nowego formatu strumienia bitów.", + "admin.registries.bitstream-formats.create.failure.head":"Nie udaÅ‚o siÄ™", + "admin.registries.bitstream-formats.create.head":"Utwórz nowy format", + "admin.registries.bitstream-formats.create.new":"Dodaj nowy format", + "admin.registries.bitstream-formats.create.success.content":"Nowy format strumienia bitów zostaÅ‚ pomyÅ›lnie utworzony.", + "admin.registries.bitstream-formats.create.success.head":"UdaÅ‚o siÄ™", + "admin.registries.bitstream-formats.delete.failure.amount":"Nie udaÅ‚o siÄ™ usunąć {{ amount }} formatu(ów)", + "admin.registries.bitstream-formats.delete.failure.head":"Nie udaÅ‚o siÄ™", + "admin.registries.bitstream-formats.delete.success.amount":"UdaÅ‚o siÄ™ usunąć {{ amount }} formatu(ów)", + "admin.registries.bitstream-formats.delete.success.head":"UdaÅ‚o siÄ™", + "admin.registries.bitstream-formats.description":"Na liÅ›cie formatów wyÅ›wietlono informacje o obsÅ‚ugiwanych formatach i czy sÄ… one wspierane przez system.", + "admin.registries.bitstream-formats.edit.breadcrumbs":"Format strumienia bitów", + "admin.registries.bitstream-formats.edit.description.hint":"", + "admin.registries.bitstream-formats.edit.description.label":"Opis", + "admin.registries.bitstream-formats.edit.extensions.hint":"Rozszerzenia to rozszerzenia plików, które sÄ… używane do automatycznej identyfikacji formatu przesyÅ‚anych plików. Możesz wprowadzić kilka rozszerzeÅ„ dla każdego formatu.", + "admin.registries.bitstream-formats.edit.extensions.label":"Rozszerzenia plików", + "admin.registries.bitstream-formats.edit.extensions.placeholder":"Wprowadź rozszerzenie pliku bez kropki", + "admin.registries.bitstream-formats.edit.failure.content":"WystÄ…piÅ‚ bÅ‚Ä…d podczas edycji formatu pliku.", + "admin.registries.bitstream-formats.edit.failure.head":"Nie udaÅ‚o siÄ™", + "admin.registries.bitstream-formats.edit.head":"Format plików: {{ format }}", + "admin.registries.bitstream-formats.edit.internal.hint":"Formaty oznaczone jako wewnÄ™trzne sÄ… ukryte przed użytkownikiem i wykorzystywane do celów administracyjnych.", + "admin.registries.bitstream-formats.edit.internal.label":"WewnÄ™trzny", + "admin.registries.bitstream-formats.edit.mimetype.hint":"Typ MIME powiÄ…zany z tym formatem, nie musi być unikalny.", + "admin.registries.bitstream-formats.edit.mimetype.label":"Typ MIME", + "admin.registries.bitstream-formats.edit.shortDescription.hint":"Unikalna nazwa dla tego formatu, (np. Microsoft Word XP lub Microsoft Word 2000)", + "admin.registries.bitstream-formats.edit.shortDescription.label":"Nazwa", + "admin.registries.bitstream-formats.edit.success.content":"Format strumienia bitów zostaÅ‚ pomyÅ›lnie edytowany.", + "admin.registries.bitstream-formats.edit.success.head":"UdaÅ‚o siÄ™", + "admin.registries.bitstream-formats.edit.supportLevel.hint":"Poziom wsparcia, jaki Twoja instytucja deklaruje dla tego formatu.", + "admin.registries.bitstream-formats.edit.supportLevel.label":"ObsÅ‚ugiwany format", + "admin.registries.bitstream-formats.head":"Rejestr formatów", + "admin.registries.bitstream-formats.no-items":"Brak formatów plików do wyÅ›wietlenia.", + "admin.registries.bitstream-formats.table.delete":"UsuÅ„ zaznaczone", + "admin.registries.bitstream-formats.table.deselect-all":"Odznacz wszystkie", + "admin.registries.bitstream-formats.table.internal":"wewnÄ™trzne", + "admin.registries.bitstream-formats.table.mimetype":"Typ MIME", + "admin.registries.bitstream-formats.table.name":"Nazwa", + "admin.registries.bitstream-formats.table.return":"Powrót", + "admin.registries.bitstream-formats.table.supportLevel.KNOWN":"Znane", + "admin.registries.bitstream-formats.table.supportLevel.SUPPORTED":"Wspierane", + "admin.registries.bitstream-formats.table.supportLevel.UNKNOWN":"Nieznane", + "admin.registries.bitstream-formats.table.supportLevel.head":"ObsÅ‚ugiwany format", + "admin.registries.bitstream-formats.title":"Rejestr formatów plików", + "admin.registries.metadata.breadcrumbs":"Rejestr metadanych", + "admin.registries.metadata.description":"W rejestrze metadanych przechowywana jest lista wszystkich pól metadanych dostÄ™pnych w repozytorium. Przechowywane pola sÄ… przechowywane w kilku rejestrach. DSpace wymaga kwalifikowanego rejestru metadanych Dublin Core.", + "admin.registries.metadata.form.create":"Utwórz schemat metadanych", + "admin.registries.metadata.form.edit":"Edytuj schemat metadanych", + "admin.registries.metadata.form.name":"Nazwa", + "admin.registries.metadata.form.namespace":"Nazwa schematu", + "admin.registries.metadata.head":"Rejestr metadanych", + "admin.registries.metadata.schemas.no-items":"Brak rejestrów metadanych do pokazania.", + "admin.registries.metadata.schemas.table.delete":"UsuÅ„ zaznaczone", + "admin.registries.metadata.schemas.table.id":"ID", + "admin.registries.metadata.schemas.table.name":"Nazwa", + "admin.registries.metadata.schemas.table.namespace":"Nazwa schematu", + "admin.registries.metadata.title":"Rejestr metadanych", + "admin.registries.schema.breadcrumbs":"Schemat metadanych", + "admin.registries.schema.description":"Ten schemat metadanych jest stworzony na podstawie \"{{namespace}}\".", + "admin.registries.schema.fields.head":"Pola schematu metadanych", + "admin.registries.schema.fields.no-items":"Brak pól metadanych do pokazania.", + "admin.registries.schema.fields.table.delete":"UsuÅ„ zaznaczone", + "admin.registries.schema.fields.table.field":"Pole", + "admin.registries.schema.fields.table.scopenote":"Uwagi", + "admin.registries.schema.form.create":"Stwórz pole metadanych", + "admin.registries.schema.form.edit":"Edytuj pole metadanych", + "admin.registries.schema.form.element":"Element", + "admin.registries.schema.form.qualifier":"Kwalifikator", + "admin.registries.schema.form.scopenote":"Uwagi", + "admin.registries.schema.head":"Schemat metadanych", + "admin.registries.schema.notification.created":"UdaÅ‚o siÄ™ utworzyć schemat metdanych \"{{prefix}}\"", + "admin.registries.schema.notification.deleted.failure":"Nie udaÅ‚o siÄ™ usunąć {{amount}} schematów metadanych", + "admin.registries.schema.notification.deleted.success":"UdaÅ‚o siÄ™ usunąć {{amount}} schematów metadanych", + "admin.registries.schema.notification.edited":"UdaÅ‚o siÄ™ edytować schemat metadanych \"{{prefix}}\"", + "admin.registries.schema.notification.failure":"BÅ‚Ä…d", + "admin.registries.schema.notification.field.created":"UdaÅ‚o siÄ™ utworzyć pole metadanych \"{{field}}\"", + "admin.registries.schema.notification.field.deleted.failure":"Nie udaÅ‚o siÄ™ usunąć {{amount}} pól metadanych", + "admin.registries.schema.notification.field.deleted.success":"UdaÅ‚o siÄ™ usunąć {{amount}} pól metadanych", + "admin.registries.schema.notification.field.edited":"SUdaÅ‚o siÄ™ edytować pole metadanych \"{{field}}\"", + "admin.registries.schema.notification.success":"UdaÅ‚o siÄ™", + "admin.registries.schema.return":"Powrót", + "admin.registries.schema.title":"Rejestr schematów metadanych", + "admin.access-control.epeople.actions.delete":"UsuÅ„ użytkownika", + "admin.access-control.epeople.actions.impersonate":"Personifikuj użytkownika", + "admin.access-control.epeople.actions.reset":"Zresetuj hasÅ‚o", + "admin.access-control.epeople.actions.stop-impersonating":"PrzestaÅ„ personifikować użytkownika", + "admin.access-control.epeople.breadcrumbs":"Użytkownicy", + "admin.access-control.epeople.title":"Użytkownicy", + "admin.access-control.epeople.head":"Użytkownicy", + "admin.access-control.epeople.search.head":"Wyszukaj", + "admin.access-control.epeople.button.see-all":"PrzeglÄ…daj wszystko", + "admin.access-control.epeople.search.scope.metadata":"Metadane", + "admin.access-control.epeople.search.scope.email":"E-mail", + "admin.access-control.epeople.search.button":"Wyszukaj", + "admin.access-control.epeople.search.placeholder":"Wyszukaj użytkownika...", + "admin.access-control.epeople.button.add":"Dodaj użytkownika", + "admin.access-control.epeople.table.id":"ID", + "admin.access-control.epeople.table.name":"Nazwa", + "admin.access-control.epeople.table.email":"E-mail", + "admin.access-control.epeople.table.edit":"Edytuj", + "admin.access-control.epeople.table.edit.buttons.edit":"Edytuj \"{{name}}\"", + "admin.access-control.epeople.table.edit.buttons.edit-disabled":"Brak uprawnieÅ„ do edycji wybranej grupy", + "admin.access-control.epeople.table.edit.buttons.remove":"UsuÅ„ \"{{name}}\"", + "admin.access-control.epeople.no-items":"Brak użytkowników do wyÅ›wietlenia.", + "admin.access-control.epeople.form.create":"Utwórz użytkownika", + "admin.access-control.epeople.form.edit":"Edytuj użytkownika", + "admin.access-control.epeople.form.firstName":"ImiÄ™", + "admin.access-control.epeople.form.lastName":"Nazwisko", + "admin.access-control.epeople.form.email":"E-mail", + "admin.access-control.epeople.form.emailHint":"Adres e-mail musi być poprawny", + "admin.access-control.epeople.form.canLogIn":"Możliwość zalogowania", + "admin.access-control.epeople.form.requireCertificate":"Wymagany certyfikat", + "admin.access-control.epeople.form.return":"Powrót", + "admin.access-control.epeople.form.notification.created.success":"UdaÅ‚o siÄ™ utworzyć użytkownika \"{{name}}\"", + "admin.access-control.epeople.form.notification.created.failure":"Nie udaÅ‚o siÄ™ utworzyć użytkownika \"{{name}}\"", + "admin.access-control.epeople.form.notification.created.failure.emailInUse":"Nie udaÅ‚o siÄ™ utworzyć użytkownika \"{{name}}\", email \"{{email}}\" już w użyciu.", + "admin.access-control.epeople.form.notification.edited.failure.emailInUse":"Nie udaÅ‚o siÄ™ utworzyć użytkownika \"{{name}}\", email \"{{email}}\" już w użyciu.", + "admin.access-control.epeople.form.notification.edited.success":"UdaÅ‚o siÄ™ edytować użytkownika \"{{name}}\"", + "admin.access-control.epeople.form.notification.edited.failure":"Nie udaÅ‚o siÄ™ edytować użytkownika \"{{name}}\"", + "admin.access-control.epeople.form.notification.deleted.success":"UdaÅ‚o siÄ™ usunąć użytkownika \"{{name}}\"", + "admin.access-control.epeople.form.notification.deleted.failure":"Nie udaÅ‚o siÄ™ usunąć użytkownika \"{{name}}\"", + "admin.access-control.epeople.form.groupsEPersonIsMemberOf":"CzÅ‚onek grup:", + "admin.access-control.epeople.form.table.id":"ID", + "admin.access-control.epeople.form.table.name":"Nazwa", + "admin.access-control.epeople.form.table.collectionOrCommunity":"Zbiór/kolekcja", + "admin.access-control.epeople.form.memberOfNoGroups":"Ten użytkownik nie jest czÅ‚onkiem żadnej grupy", + "admin.access-control.epeople.form.goToGroups":"Dodaj do grup", + "admin.access-control.epeople.notification.deleted.failure":"Nie udaÅ‚o siÄ™ usunąć użytkownika: \"{{name}}\"", + "admin.access-control.epeople.notification.deleted.success":"UdaÅ‚o siÄ™ usunąć użytkownika: \"{{name}}\"", + "admin.access-control.groups.title":"Grupy", + "admin.access-control.groups.breadcrumbs":"Grupy", + "admin.access-control.groups.singleGroup.breadcrumbs":"Edytuj grupÄ™", + "admin.access-control.groups.title.singleGroup":"Edytuj grupÄ™", + "admin.access-control.groups.title.addGroup":"Nowa grupa", + "admin.access-control.groups.addGroup.breadcrumbs":"Nowa grupa", + "admin.access-control.groups.head":"Grupy/role", + "admin.access-control.groups.button.add":"Dodaj grupÄ™", + "admin.access-control.groups.search.head":"Szukaj grup", + "admin.access-control.groups.button.see-all":"Przeszukaj wszystko", + "admin.access-control.groups.search.button":"Wyszukaj", + "admin.access-control.groups.search.placeholder":"Wyszukaj grupy...", + "admin.access-control.groups.table.id":"ID", + "admin.access-control.groups.table.name":"Nazwa", + "admin.access-control.groups.table.collectionOrCommunity":"Zbiór/kolekcja", + "admin.access-control.groups.table.members":"CzÅ‚onkowie", + "admin.access-control.groups.table.edit":"Edytuj", + "admin.access-control.groups.table.edit.buttons.edit":"Edytuj \"{{name}}\"", + "admin.access-control.groups.no-items":"Nie znaleziono grup z podanÄ… frazÄ… lub podanym UUID", + "admin.access-control.groups.notification.deleted.success":"UdaÅ‚o siÄ™ usunąć grupÄ™ \"{{name}}\"", + "admin.access-control.groups.notification.deleted.failure.title":"Nie udaÅ‚o siÄ™ usunąć grupy \"{{name}}\"", + "admin.access-control.groups.notification.deleted.failure.content":"Powód: \"{{cause}}\"", + "admin.access-control.groups.form.alert.permanent":"Ta grupa jest staÅ‚a, wiÄ™c nie może być edytowana ani usuniÄ™ta. Nadal możesz dodawać i usuwać czÅ‚onków grupy za pomocÄ… tej strony.", + "admin.access-control.groups.form.alert.workflowGroup":"Ta grupa nie może być edytowana lub usuniÄ™ta, ponieważ odnosi siÄ™ do roli lub bierze udziaÅ‚ w procesie \"{{name}}\" {{comcol}}. Możesz jÄ… usunąć ze strony <a href='{{comcolEditRolesRoute}}'>\"assign roles\"</a> edycji {{comcol}}. Wciąż może dodawać i usuwać czÅ‚onków tej grupy, korzystajÄ…c z tej strony.", + "admin.access-control.groups.form.head.create":"Utwórz grupÄ™", + "admin.access-control.groups.form.head.edit":"Edytuj grupÄ™", + "admin.access-control.groups.form.groupName":"Nazwa grupy", + "admin.access-control.groups.form.groupCommunity":"Zbiór lub kolekcja", + "admin.access-control.groups.form.groupDescription":"Opis", + "admin.access-control.groups.form.notification.created.success":"UdaÅ‚o siÄ™ utworzyć grupÄ™ \"{{name}}\"", + "admin.access-control.groups.form.notification.created.failure":"Nie udaÅ‚o siÄ™ utworzyć grupy \"{{name}}\"", + "admin.access-control.groups.form.notification.created.failure.groupNameInUse":"Nie udaÅ‚o siÄ™ utworzyć grupy o nazwie: \"{{name}}\", upewnij siÄ™, że nazwa nie jest już używana.", + "admin.access-control.groups.form.notification.edited.failure":"Nie udaÅ‚o siÄ™ edytować grupy \"{{name}}\"", + "admin.access-control.groups.form.notification.edited.failure.groupNameInUse":"Nazwa \"{{name}}\" już w użyciu!", + "admin.access-control.groups.form.notification.edited.success":"UdaÅ‚o siÄ™ edytować grupÄ™ \"{{name}}\"", + "admin.access-control.groups.form.actions.delete":"UsuÅ„ grupÄ™", + "admin.access-control.groups.form.delete-group.modal.header":"UsuÅ„ grupÄ™ \"{{ dsoName }}\"", + "admin.access-control.groups.form.delete-group.modal.info":"Czy na pewno chcesz usunąć grupÄ™ \"{{ dsoName }}\"", + "admin.access-control.groups.form.delete-group.modal.cancel":"Anuluj", + "admin.access-control.groups.form.delete-group.modal.confirm":"UsuÅ„", + "admin.access-control.groups.form.notification.deleted.success":"UdaÅ‚o siÄ™ usunąć grupÄ™ \"{{ name }}\"", + "admin.access-control.groups.form.notification.deleted.failure.title":"Nie udaÅ‚o siÄ™ usunąć grupy \"{{ name }}\"", + "admin.access-control.groups.form.notification.deleted.failure.content":"Powód: \"{{ cause }}\"", + "admin.access-control.groups.form.members-list.head":"Użytkownik", + "admin.access-control.groups.form.members-list.search.head":"Dodaj użytkownika", + "admin.access-control.groups.form.members-list.button.see-all":"Pokaż wszystkich", + "admin.access-control.groups.form.members-list.headMembers":"Aktualni czÅ‚onkowie", + "admin.access-control.groups.form.members-list.search.scope.metadata":"Metadane", + "admin.access-control.groups.form.members-list.search.scope.email":"E-mail", + "admin.access-control.groups.form.members-list.search.button":"Wyszukaj", + "admin.access-control.groups.form.members-list.table.id":"ID", + "admin.access-control.groups.form.members-list.table.name":"Nazwa", + "admin.access-control.groups.form.members-list.table.identity":"Tożsamość", + "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.edit":"UsuÅ„ / Dodaj", + "admin.access-control.groups.form.members-list.table.edit.buttons.remove":"UsuÅ„ użytkownika o nazwie \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.success.addMember":"UdaÅ‚o siÄ™ dodać użytkownika o nazwie: \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.failure.addMember":"Nie udaÅ‚o siÄ™ dodać użytkownika o nazwie: \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.success.deleteMember":"UdaÅ‚o siÄ™ usunąć użytkownika o nazwie: \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.failure.deleteMember":"Nie udaÅ‚o siÄ™ usunąć użytkownika o nazwie: \"{{name}}\"", + "admin.access-control.groups.form.members-list.table.edit.buttons.add":"Dodaj użytkownika o nazwie \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.failure.noActiveGroup":"Brak aktywnej grupy, najpierw wpisz nazwÄ™ grupy.", + "admin.access-control.groups.form.members-list.no-members-yet":"Brak użytkowników w grupie, wyszukaj ich i dodaj.", + "admin.access-control.groups.form.members-list.no-items":"Nie znaleziono użytkowników podczas wyszukiwania", + "admin.access-control.groups.form.subgroups-list.notification.failure":"CoÅ› poszÅ‚o nie tak: \"{{cause}}\"", + "admin.access-control.groups.form.subgroups-list.head":"Grupy", + "admin.access-control.groups.form.subgroups-list.search.head":"Dodaj podgrupÄ™", + "admin.access-control.groups.form.subgroups-list.button.see-all":"PrzeglÄ…daj wszystkie", + "admin.access-control.groups.form.subgroups-list.headSubgroups":"Aktualne podgrupy", + "admin.access-control.groups.form.subgroups-list.search.button":"Wyszukaj", + "admin.access-control.groups.form.subgroups-list.table.id":"ID", + "admin.access-control.groups.form.subgroups-list.table.name":"Nazwa", + "admin.access-control.groups.form.subgroups-list.table.collectionOrCommunity":"Zbiór/kolekcja", + "admin.access-control.groups.form.subgroups-list.table.edit":"UsuÅ„ / Dodaj", + "admin.access-control.groups.form.subgroups-list.table.edit.buttons.remove":"UsuÅ„ podgrupÄ™ o nazwie \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.table.edit.buttons.add":"Dodaj podgrupÄ™ o nazwie \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.table.edit.currentGroup":"Aktualna grupa", + "admin.access-control.groups.form.subgroups-list.notification.success.addSubgroup":"UdaÅ‚o siÄ™ dodać podgrupÄ™: \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.notification.failure.addSubgroup":"Nie udaÅ‚o siÄ™ dodać podgrupy: \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.notification.success.deleteSubgroup":"UdaÅ‚o siÄ™ usunąć podgrupÄ™: \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.notification.failure.deleteSubgroup":"Nie udaÅ‚o siÄ™ usunąć podgrupy: \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.notification.failure.noActiveGroup":"Brak aktywnej grupy, najpierw wpisz nazwÄ™ grupy.", + "admin.access-control.groups.form.subgroups-list.notification.failure.subgroupToAddIsActiveGroup":"Ta grupa jest już stworzona i nie może zostać dodana pononwie.", + "admin.access-control.groups.form.subgroups-list.no-items":"Nie znaleziono grup z tÄ… nazwÄ… lub UUID", + "admin.access-control.groups.form.subgroups-list.no-subgroups-yet":"Brak podgrup w grupie.", + "admin.access-control.groups.form.return":"Powrót", + "admin.search.breadcrumbs":"Wyszukiwanie administracyjne", + "admin.search.collection.edit":"Edytuj", + "admin.search.community.edit":"Edytuj", + "admin.search.item.delete":"UsuÅ„", + "admin.search.item.edit":"Edytuj", + "admin.search.item.make-private":"Ukryj", + "admin.search.item.make-public":"Upublicznij", + "admin.search.item.move":"PrzenieÅ›", + "admin.search.item.reinstate":"ZmieÅ„ instancjÄ™", + "admin.search.item.withdraw":"Wycofane", + "admin.search.title":"Wyszukiwanie administracyjne", + "administrativeView.search.results.head":"Wyszukiwanie administracyjne", + "admin.workflow.breadcrumbs":"ZarzÄ…dzaj procesem", + "admin.workflow.title":"ZarzÄ…dzaj procesem", + "admin.workflow.item.workflow":"Proces", + "admin.workflow.item.delete":"UsuÅ„", + "admin.workflow.item.send-back":"OdeÅ›lij z powrotem", + "admin.metadata-import.breadcrumbs":"Importuj metadane", + "admin.metadata-import.title":"Importuj metadane", + "admin.metadata-import.page.header":"Importuj metadane", + "admin.metadata-import.page.help":"Tutaj możesz zaimportować pliki CSV, w których znajdujÄ… siÄ™ metadane do operacji wsadowej. Zaimportuj je poprzez upuszczenie ich lub znajdź je na swoim komputerze", + "admin.metadata-import.page.dropMsg":"Upuść plik w formacie CSV", + "admin.metadata-import.page.dropMsgReplace":"Upuść, aby zastÄ…pić metadane w formacie CSV do importu", + "admin.metadata-import.page.button.return":"Powrót", + "admin.metadata-import.page.button.proceed":"Zastosuj", + "admin.metadata-import.page.error.addFile":"Najpierw wybierz plik!", + "auth.errors.invalid-user":"NiewÅ‚aÅ›ciwy adres e-mail lub hasÅ‚o.", + "auth.messages.expired":"Twoja sesja wygasÅ‚a. Zaloguj siÄ™ ponownie.", + "auth.messages.token-refresh-failed":"OdÅ›wieżenie sesji nie powiodÅ‚o siÄ™. Zaloguj siÄ™ ponownie.", + "bitstream.download.page":"Pobieranie {{bitstream}}...", + "bitstream.download.page.back":"Powrót", + "bitstream.edit.authorizations.link":"Edytuj polityki plików", + "bitstream.edit.authorizations.title":"Edytuj polityki plików", + "bitstream.edit.return":"Powrót", + "bitstream.edit.bitstream":"Pliki: ", + "bitstream.edit.form.description.hint":"Opcjonalnie wprowadź krótki opis pliku, np.: \"<i>Główna część artykuÅ‚u</i>\" lub \"<i>Dane z eksperymentu</i>\".", + "bitstream.edit.form.description.label":"Opis", + "bitstream.edit.form.embargo.hint":"Pierwszy dzieÅ„, od kiedy dostÄ™p zostanie udzielony. <b>Tej daty nie może być edytować w tym formularzu.</b> Aby wybrać okres embarga czasowego, wybierz <i>Status pozycji</i> tab, kliknij <i>Autoryzacje...</i>, stwórz lub edytuj plik <i>PRZEYCZTAJ</i> zasady i wybierz okreÅ›lonÄ… <i>DatÄ™ poczÄ…tkowÄ…</i>.", + "bitstream.edit.form.embargo.label":"Embargo do wybranej daty", + "bitstream.edit.form.fileName.hint":"Zmiana nazwy pliku dla strumienia bitów. Zauważ, że zmieni to wyÅ›wietlany adres URL strumienia bitów, ale stare linki nadal bÄ™dÄ… dziaÅ‚ać, o ile nie zmieni siÄ™ identyfikator sekwencji.", + "bitstream.edit.form.fileName.label":"Nazwa pliku", + "bitstream.edit.form.newFormat.label":"Opisz nowy format", + "bitstream.edit.form.newFormat.hint":"Program, którego użyto do stworzenia pliku i numer wersji (np.: \"<i>ACMESoft SuperApp version 1.5</i>\").", + "bitstream.edit.form.primaryBitstream.label":"Pierwotny plik", + "bitstream.edit.form.selectedFormat.hint":"JeÅ›li formatu nie ma na powyższej liÅ›cie, <b>wybierz \"format not in list\" above</b> i opisz jako \"Describe new format\".", + "bitstream.edit.form.selectedFormat.label":"Wybrany format", + "bitstream.edit.form.selectedFormat.unknown":"Tego formatu nie ma na liÅ›cie", + "bitstream.edit.notifications.error.format.title":"WystÄ…piÅ‚ bÅ‚Ä…d podczas zapisu formatu pliku", + "bitstream.edit.notifications.saved.content":"Zmiany w pliku zostaÅ‚y zapisane.", + "bitstream.edit.notifications.saved.title":"Plik zostaÅ‚ zapisany", + "bitstream.edit.title":"Edytuj plik", + "bitstream-request-a-copy.alert.canDownload1":"Masz już dostÄ™p do tego pliki. JeÅ›li chcesz go pobrać, kliknij ", + "bitstream-request-a-copy.alert.canDownload2":"tutaj", + "bitstream-request-a-copy.header":"WystÄ…p o kopiÄ™ wybranego pliku", + "bitstream-request-a-copy.intro":"Wpisz nastÄ™pujÄ…ce informacje, aby wystÄ…pić o kopiÄ™ tej pozycji: ", + "bitstream-request-a-copy.intro.bitstream.one":"WystÄ…pienie o dostÄ™p do nastÄ™pujÄ…cych plików: ", + "bitstream-request-a-copy.intro.bitstream.all":"WystÄ…pienie o dostÄ™p do wszystkich plików. ", + "bitstream-request-a-copy.name.label":"ImiÄ™ *", + "bitstream-request-a-copy.name.error":"ImiÄ™ jest wymagane", + "bitstream-request-a-copy.email.label":"Adres e-mail *", + "bitstream-request-a-copy.email.hint":"Plik zostanie przesÅ‚any na podany adres e-mail", + "bitstream-request-a-copy.email.error":"ProszÄ™ wprowadzić prawidÅ‚owy adres e-mail", + "bitstream-request-a-copy.allfiles.label":"Pliki", + "bitstream-request-a-copy.files-all-false.label":"Tylko plik, dla którego wystÄ…piono o dostÄ™p", + "bitstream-request-a-copy.files-all-true.label":"Wszystkie pliki (w tej pozycji) z ograniczonym dostÄ™pem", + "bitstream-request-a-copy.message.label":"Wiadomość", + "bitstream-request-a-copy.return":"Powrót", + "bitstream-request-a-copy.submit":"WystÄ…p o kopiÄ™", + "bitstream-request-a-copy.submit.success":"WystÄ…pienie o dostÄ™p do pliku zostaÅ‚o przesÅ‚ane.", + "bitstream-request-a-copy.submit.error":"CoÅ› poszÅ‚o nie tak podczas wysyÅ‚ania wystÄ…pienia o dostÄ™p do pliku", + "browse.comcol.by.author":"wg autorów", + "browse.comcol.by.dateissued":"wg daty wydania", + "browse.comcol.by.subject":"wg tematu", + "browse.comcol.by.title":"wg tytuÅ‚u", + "browse.comcol.head":"PrzeglÄ…daj", + "browse.empty":"Brak rekordów do wyÅ›wietlenia.", + "browse.metadata.author":"Autor", + "browse.metadata.dateissued":"Data wydania", + "browse.metadata.subject":"Temat", + "browse.metadata.title":"TytuÅ‚", + "browse.metadata.author.breadcrumbs":"PrzeglÄ…daj wg autorów", + "browse.metadata.dateissued.breadcrumbs":"PrzeglÄ…daj wg daty wydania", + "browse.metadata.subject.breadcrumbs":"PrzeglÄ…daj wg tematów", + "browse.metadata.title.breadcrumbs":"PrzeglÄ…daj wg tytułów", + "browse.startsWith.choose_start":"(Wybierz start)", + "browse.startsWith.choose_year":"(Wybierz rok)", + "browse.startsWith.choose_year.label":"Wybierz rok wydania", + "browse.startsWith.jump":"Przejdź do miejsca w indeksie:", + "browse.startsWith.months.april":"kwiecieÅ„", + "browse.startsWith.months.august":"sierpieÅ„", + "browse.startsWith.months.december":"grudzieÅ„", + "browse.startsWith.months.february":"luty", + "browse.startsWith.months.january":"styczeÅ„", + "browse.startsWith.months.july":"lipiec", + "browse.startsWith.months.june":"czerwiec", + "browse.startsWith.months.march":"marzec", + "browse.startsWith.months.may":"maj", + "browse.startsWith.months.none":"(wybierz miesiÄ…c)", + "browse.startsWith.months.none.label":"Wybierz miesiÄ…c wydania", + "browse.startsWith.months.november":"listopad", + "browse.startsWith.months.october":"październik", + "browse.startsWith.months.september":"wrzesieÅ„", + "browse.startsWith.submit":"Zastosuj", + "browse.startsWith.type_date":"Lub wybierz datÄ™ (rok-miesiÄ…c) i kliknij 'PrzeglÄ…daj'", + "browse.startsWith.type_date.label":"Lub wybierz datÄ™ (rok-miesiÄ…c) i kliknij przycisk przeglÄ…dania", + "browse.startsWith.type_text":"Wpisz kilka pierwszych liter i kliknij przycisk przeglÄ…dania", + "browse.title":"PrzeglÄ…daj {{ collection }} wg {{ field }} {{ value }}", + "chips.remove":"UsuÅ„ chip", + "collection.create.head":"Utwórz kolekcjÄ™", + "collection.create.notifications.success":"UdaÅ‚o siÄ™ utworzyć kolekcjÄ™", + "collection.create.sub-head":"UdaÅ‚o siÄ™ utworzyć kolekcjÄ™ dla zbioru {{ parent }}", + "collection.curate.header":"Administrator kolekcji: {{collection}}", + "collection.delete.cancel":"Anuluj", + "collection.delete.confirm":"Zatwierdź", + "collection.delete.processing":"Usuwanie", + "collection.delete.head":"UsuÅ„ kolekcjÄ™", + "collection.delete.notification.fail":"Kolekcja nie może być usuniÄ™t", + "collection.delete.notification.success":"UdaÅ‚o siÄ™ usunąć kolekcjÄ™", + "collection.delete.text":"Czy na pewno chcesz usunąć kolekcjÄ™ \"{{ dso }}\"", + "collection.edit.delete":"UsuÅ„ kolekcjÄ™", + "collection.edit.head":"Edytuj kolekcjÄ™", + "collection.edit.breadcrumbs":"Edytuj kolekcjÄ™", + "collection.edit.tabs.mapper.head":"Item Mapper", + "collection.edit.tabs.item-mapper.title":"Edytuj kolekcjÄ™ - Item Mapper", + "collection.edit.item-mapper.cancel":"Anuluj", + "collection.edit.item-mapper.collection":"Kolekcja: \"<b>{{name}}</b>\"", + "collection.edit.item-mapper.confirm":"Mapuj wybrane elementy", + "collection.edit.item-mapper.description":"To jest narzÄ™dzie mapowania elementów, które pozwala administratorom kolekcji mapować elementy z innych kolekcji do tej kolekcji. Możesz wyszukiwać elementy z innych kolekcji i mapować je lub przeglÄ…dać listÄ™ aktualnie zmapowanych elementów.", + "collection.edit.item-mapper.head":"Item Mapper - Mapuj pozycje z innych kolekcji", + "collection.edit.item-mapper.no-search":"Wpisz co chcesz wyszukać", + "collection.edit.item-mapper.notifications.map.error.content":"WystÄ…piÅ‚y bÅ‚Ä™dy podczas mapowania {{amount}} pozycji.", + "collection.edit.item-mapper.notifications.map.error.head":"Mapowanie bÅ‚Ä™dów", + "collection.edit.item-mapper.notifications.map.success.content":"UdaÅ‚o siÄ™ zmapować {{amount}} pozycji.", + "collection.edit.item-mapper.notifications.map.success.head":"Mapowanie zakoÅ„czone", + "collection.edit.item-mapper.notifications.unmap.error.content":"BÅ‚Ä™dy wystÄ…piÅ‚y podczas usuwania mapowania z {{amount}} elementów.", + "collection.edit.item-mapper.notifications.unmap.error.head":"UsuÅ„ bÅ‚Ä™dy mapowania", + "collection.edit.item-mapper.notifications.unmap.success.content":"UdaÅ‚o siÄ™ usunąć bÅ‚Ä™dy mapowania z {{amount}} elementów.", + "collection.edit.item-mapper.notifications.unmap.success.head":"Usuwanie mapowania zakoÅ„czone", + "collection.edit.item-mapper.remove":"UsuÅ„ wybrane mapowanie elementów", + "collection.edit.item-mapper.search-form.placeholder":"Wyszukaj pozycje...", + "collection.edit.item-mapper.tabs.browse":"Wyszukaj mapowane elementy", + "collection.edit.item-mapper.tabs.map":"Mapuj nowe elementy", + "collection.edit.logo.delete.title":"UsuÅ„", + "collection.edit.logo.delete-undo.title":"Cofnij usuniÄ™cie", + "collection.edit.logo.label":"Logo kolekcji", + "collection.edit.logo.notifications.add.error":"PrzesyÅ‚anie logo kolekcji nie powiodÅ‚o siÄ™. ProszÄ™ zweryfikować zawartość przed ponownÄ… ", + "collection.edit.logo.notifications.add.success":"UdaÅ‚o siÄ™ przesÅ‚ać logo kolekcji.", + "collection.edit.logo.notifications.delete.success.title":"Logo usuniÄ™te", + "collection.edit.logo.notifications.delete.success.content":"UdaÅ‚o siÄ™ usunąć logo kolekcji", + "collection.edit.logo.notifications.delete.error.title":"BÅ‚Ä…d podczas usuwania loga", + "collection.edit.logo.upload":"Upuść logo kolekcji, aby je wgrać", + "collection.edit.notifications.success":"UdaÅ‚o siÄ™ edytować kolekcjÄ™", + "collection.edit.return":"Powrót", + "collection.edit.tabs.curate.head":"Kurator", + "collection.edit.tabs.curate.title":"Edytowanie kolekcji - kurator", + "collection.edit.tabs.authorizations.head":"Autoryzacje", + "collection.edit.tabs.authorizations.title":"Edytowanie kolekcji - autoryzacje", + "collection.edit.tabs.metadata.head":"Edytuj metadane", + "collection.edit.tabs.metadata.title":"Edytowanie kolekcji - metadane", + "collection.edit.tabs.roles.head":"Przypisz role", + "collection.edit.tabs.roles.title":"Edytowanie kolekcji - role", + "collection.edit.tabs.source.external":"Ta kolekcja pobiera swojÄ… zawartość z zewnÄ™trznego źródÅ‚a", + "collection.edit.tabs.source.form.errors.oaiSource.required":"Musisz wskazać id docelowej kolekcji.", + "collection.edit.tabs.source.form.harvestType":"Odczytywanie zawartoÅ›ci", + "collection.edit.tabs.source.form.head":"Skonfiguruj zewnÄ™trzne źródÅ‚o", + "collection.edit.tabs.source.form.metadataConfigId":"Format metadanych", + "collection.edit.tabs.source.form.oaiSetId":"OkreÅ›lony zestaw ID OAI", + "collection.edit.tabs.source.form.oaiSource":"Dostawca OAI", + "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_BITSTREAMS":"Odczytaj metadane i pliki (wymaga wsparcia ORE)", + "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_REF":"Odczytaj metadane i bibliografiÄ™ (wymaga wsparcia ORE)", + "collection.edit.tabs.source.form.options.harvestType.METADATA_ONLY":"Odczytaj tylko metadane", + "collection.edit.tabs.source.head":"ŹródÅ‚o treÅ›ci", + "collection.edit.tabs.source.notifications.discarded.content":"Twoje zmiany zostaÅ‚y odrzucone. Aby odzyskać swoje zmiany wybierz 'Powrót'", + "collection.edit.tabs.source.notifications.discarded.title":"Zmiany odrzucone", + "collection.edit.tabs.source.notifications.invalid.content":"Zmiany nie zostaÅ‚y zapisane. Sprawdź czy wszystkie pola sÄ… wypeÅ‚nione poprawne przed zapisem.", + "collection.edit.tabs.source.notifications.invalid.title":"NieprawidÅ‚owe metadane", + "collection.edit.tabs.source.notifications.saved.content":"Zmiany wprowadzone w kolekcji zostaÅ‚y zapisane.", + "collection.edit.tabs.source.notifications.saved.title":"ŹródÅ‚o treÅ›ci zapisane", + "collection.edit.tabs.source.title":"Collection Edit - ŹródÅ‚o treÅ›ci", + "collection.edit.template.add-button":"Dodaj", + "collection.edit.template.breadcrumbs":"Szablon pozycji", + "collection.edit.template.cancel":"Anuluj", + "collection.edit.template.delete-button":"UsuÅ„", + "collection.edit.template.edit-button":"Edytuj", + "collection.edit.template.error":"WystÄ…piÅ‚ bÅ‚Ä…d podczas odzyskiwania szablonu pozycji", + "collection.edit.template.head":"Edytuj szablon dla kolekcji \"{{ collection }}\"", + "collection.edit.template.label":"Szablon pozycji", + "collection.edit.template.loading":"Å‚adowanie szablonu pozycji...", + "collection.edit.template.notifications.delete.error":"Nie udaÅ‚o siÄ™ usunąć szablonu pozycji", + "collection.edit.template.notifications.delete.success":"UdaÅ‚o siÄ™ usunąć szablon pozycji", + "collection.edit.template.title":"Edytuj szablon pozycji", + "collection.form.abstract":"Opis skrócony", + "collection.form.description":"Tekst powitalny (HTML)", + "collection.form.errors.title.required":"Wpisz nazwÄ™ kolekcji", + "collection.form.license":"Licencja", + "collection.form.provenance":"Pochodzenie", + "collection.form.rights":"Tekst praw autorskich (HTML)", + "collection.form.tableofcontents":"WiadomoÅ›ci (HTML)", + "collection.form.title":"Nazwa", + "collection.form.entityType":"Typ danych", + "collection.page.browse.recent.head":"Ostatnie zgÅ‚oszenia", + "collection.page.browse.recent.empty":"Brak pozycji do wyÅ›wietlenia", + "collection.page.edit":"Edytuj kolekcjÄ™", + "collection.page.handle":"StaÅ‚y URI dla kolekcji", + "collection.page.license":"Licencja", + "collection.page.news":"WiadomoÅ›ci", + "collection.select.confirm":"Zaakceptuj zaznaczone", + "collection.select.empty":"Brak kolekcji do wyÅ›wietlenia", + "collection.select.table.title":"TytuÅ‚", + "collection.source.controls.head":"Kontrolki odczytywania", + "collection.source.controls.test.submit.error":"CoÅ› poszÅ‚o nie tak podczas rozpoczynania testów ustawieÅ„", + "collection.source.controls.test.failed":"Scenariusz testowy ustawieÅ„ nie zadziaÅ‚aÅ‚", + "collection.source.controls.test.completed":"Scenariusz testowy ustawieÅ„ zostaÅ‚ zakoÅ„czony", + "collection.source.controls.test.submit":"Konfiguracja testowa", + "collection.source.controls.test.running":"Testowanie konfiguracji...", + "collection.source.controls.import.submit.success":"Import zostaÅ‚ rozpoczÄ™ty", + "collection.source.controls.import.submit.error":"CoÅ› poszÅ‚o nie tak podczas rozpoczynania importu", + "collection.source.controls.import.submit":"Importuj teraz", + "collection.source.controls.import.running":"Importowanie...", + "collection.source.controls.import.failed":"WystÄ…piÅ‚ bÅ‚Ä…d podczas importu", + "collection.source.controls.import.completed":"Import zakoÅ„czony", + "collection.source.controls.reset.submit.success":"Reset ustawieÅ„ i powtórny import zostaÅ‚y rozpoczÄ™te poprawnie", + "collection.source.controls.reset.submit.error":"CoÅ› poszÅ‚o nie tak podczas rozpoczynania zresetowanego, powtórnego importu", + "collection.source.controls.reset.failed":"WystÄ…piÅ‚ bÅ‚Ä…d podczas resetowania ustawieÅ„ i ponownego importu", + "collection.source.controls.reset.completed":"Reset ustawieÅ„ i powtórny import zostaÅ‚y zakoÅ„czone", + "collection.source.controls.reset.submit":"Resetowanie i powtórny import", + "collection.source.controls.reset.running":"Resetowanie i powtórny import...", + "collection.source.controls.harvest.status":"Status odczytywania:", + "collection.source.controls.harvest.start":"Czas rozpoczÄ™cia odczytywania:", + "collection.source.controls.harvest.last":"Czas ostatniego odczytywania:", + "collection.source.controls.harvest.message":"Informacje nt. odczytywania:", + "collection.source.controls.harvest.no-information":"bd.", + "collection.source.update.notifications.error.content":"Te ustawienia zostaÅ‚y przetestowane i nie dziaÅ‚ajÄ….", + "collection.source.update.notifications.error.title":"BÅ‚Ä…d serwera", + "communityList.breadcrumbs":"Lista zbiorów", + "communityList.tabTitle":"Lista zbiorów", + "communityList.title":"Lista zbiorów", + "communityList.showMore":"Pokaż wiÄ™cej", + "community.create.head":"Utwórz zbiór", + "community.create.notifications.success":"UdaÅ‚o siÄ™ utworzyć zbiór", + "community.create.sub-head":"Utwórz podzbiór dla zbioru {{ parent }}", + "community.curate.header":"ZarzÄ…dzaj zbiorem: {{community}}", + "community.delete.cancel":"Anuluj", + "community.delete.confirm":"Potwierdź", + "community.delete.processing":"Usuwanie...", + "community.delete.head":"UsuÅ„ zbiór", + "community.delete.notification.fail":"Zbiór nie może być usuniÄ™ty", + "community.delete.notification.success":"UdaÅ‚o siÄ™ usunąć zbiór", + "community.delete.text":"Czy na pewno chcesz usunąć zbiór \"{{ dso }}\"", + "community.edit.delete":"UsuÅ„ ten zbiór", + "community.edit.head":"Edytuj zbiór", + "community.edit.breadcrumbs":"Edytuj zbiór", + "community.edit.logo.delete.title":"UsuÅ„ logo", + "community.edit.logo.delete-undo.title":"Cofnij usuniÄ™cie", + "community.edit.logo.label":"Logo zbioru", + "community.edit.logo.notifications.add.error":"PrzesÅ‚anie loga zbioru nie powiodÅ‚o siÄ™. Sprawdź czy wszystkie parametry sÄ… odpowiednie przed próbÄ… ponownego przesÅ‚ania.", + "community.edit.logo.notifications.add.success":"PrzesÅ‚anie loga powiodÅ‚o siÄ™.", + "community.edit.logo.notifications.delete.success.title":"Logo usuniÄ™te", + "community.edit.logo.notifications.delete.success.content":"UsuniÄ™cie loga zbioru powiodÅ‚o siÄ™", + "community.edit.logo.notifications.delete.error.title":"BÅ‚Ä…d podczas usuwania loga", + "community.edit.logo.upload":"Upuść logo zbioru, aby je przesÅ‚ać", + "community.edit.notifications.success":"UdaÅ‚o siÄ™ edytować zbiór", + "community.edit.notifications.unauthorized":"Nie masz uprawnieÅ„, aby wykonać te zmiany", + "community.edit.notifications.error":"WystÄ…piÅ‚ bÅ‚Ä…d podczas edycji zbioru", + "community.edit.return":"Cofnij", + "community.edit.tabs.curate.head":"Administruj", + "community.edit.tabs.curate.title":"Edycja zbioru - administrator", + "community.edit.tabs.metadata.head":"Edytuj metadane", + "community.edit.tabs.metadata.title":"Edycja zbioru - metadane", + "community.edit.tabs.roles.head":"Przypisz role", + "community.edit.tabs.roles.title":"Edycja zbioru - role", + "community.edit.tabs.authorizations.head":"Uprawnienia", + "community.edit.tabs.authorizations.title":"Edycja zbioru - uprawnienia", + "community.listelement.badge":"Zbiór", + "comcol-role.edit.no-group":"Brak", + "comcol-role.edit.create":"Utwórz", + "comcol-role.edit.restrict":"Ogranicz", + "comcol-role.edit.delete":"UsuÅ„", + "comcol-role.edit.community-admin.name":"Administratorzy", + "comcol-role.edit.collection-admin.name":"Administratorzy", + "comcol-role.edit.community-admin.description":"Administratorzy zbioru mogÄ… tworzyć podzbiory lub kolekcje i zarzÄ…dzać nimi lub przydzielać zarzÄ…dzanie tymi podzbiorami lub kolekcji innym użytkownikom. Ponadto decydujÄ…, kto może przesyÅ‚ać elementy do dowolnych podkolekcji, edytować metadane pozycji (po przesÅ‚aniu) i dodawać (mapować) istniejÄ…ce pozycje z innych kolekcji (z zastrzeżeniem autoryzacji).", + "comcol-role.edit.collection-admin.description":"Administratorzy kolekcji decydujÄ… o tym, kto może przesyÅ‚ać pozycje do kolekcji, edytować metadane pozycji (po ich przesÅ‚aniu) oraz dodawać (mapować) istniejÄ…ce elementy z innych kolekcji do tej kolekcji (z zastrzeżeniem uprawnieÅ„ dla danej kolekcji).", + "comcol-role.edit.submitters.name":"ZgÅ‚aszajÄ…cy", + "comcol-role.edit.submitters.description":"Użytkownicy i grupy, którzy majÄ… uprawnienia do przesyÅ‚ania nowych pozycji do tej kolekcji.", + "comcol-role.edit.item_read.name":"DomyÅ›lny dostÄ™p do odczytu pozycji", + "comcol-role.edit.item_read.description":"Użytkownicy i grupy, które mogÄ… odczytywać nowe pozycje zgÅ‚oszone do tej kolekcji. Zmiany w tej roli nie dziaÅ‚ajÄ… wstecz. IstniejÄ…ce pozycje w systemie bÄ™dÄ… nadal widoczne dla osób, które miaÅ‚y dostÄ™p do odczytu w momencie ich dodania.", + "comcol-role.edit.item_read.anonymous-group":"DomyÅ›lny odczyt dla nowych pozycji jest obecnie ustawiony na Anonimowy.", + "comcol-role.edit.bitstream_read.name":"DomyÅ›lny dostÄ™p do oczytu plików", + "comcol-role.edit.bitstream_read.description":"Administratorzy zbiorów mogÄ… tworzyć podzbiory lub kolekcje, a także zarzÄ…dzać nimi. Ponadto decydujÄ… o tym, kto może przesyÅ‚ać elementy do podkolekcji, edytować metadane pozycji (po ich przesÅ‚aniu) oraz dodawać (mapować) istniejÄ…ce pozycje z innych kolekcji (pod warunkiem posiadania odpowiednich uprawnieÅ„).", + "comcol-role.edit.bitstream_read.anonymous-group":"DomyÅ›lny status odczytu dla nowych plików to Anonimowy.", + "comcol-role.edit.editor.name":"Redaktorzy", + "comcol-role.edit.editor.description":"Redaktorzy mogÄ… edytować metadane nowych pozycji, a nastÄ™pnie akceptować je lub odrzucać.", + "comcol-role.edit.finaleditor.name":"Redaktorzy koÅ„cowi", + "comcol-role.edit.finaleditor.description":"Redaktorzy koÅ„cowi mogÄ… edytować metadane nowych pozycji, ale nie mogÄ™ odrzucać pozycji.", + "comcol-role.edit.reviewer.name":"Recenzenci", + "comcol-role.edit.reviewer.description":"Recenzenci mogÄ… akceptować lub odrzucać nowe pozycje, ale nie mogÄ™ edytować ich metadanych.", + "community.form.abstract":"Opis skrócony", + "community.form.description":"WstÄ™p (HTML)", + "community.form.errors.title.required":"Wprowadź nazwÄ™ zbioru", + "community.form.rights":"Prawa autoskie (HTML)", + "community.form.tableofcontents":"WiadomoÅ›ci (HTML)", + "community.form.title":"Nazwa", + "community.page.edit":"Edytuj ten zbiór", + "community.page.handle":"StaÅ‚y URI zbioru", + "community.page.license":"Licencja", + "community.page.news":"WiadomoÅ›ci", + "community.all-lists.head":"Podzbiory i kolekcje", + "community.sub-collection-list.head":"Kolekcje w tym zbiorze", + "community.sub-community-list.head":"Kolekcje w tym zbiorze", + "cookies.consent.accept-all":"Zaakceptuj wszystko", + "cookies.consent.accept-selected":"Zaakceptuj wybrane", + "cookies.consent.app.opt-out.description":"Aplikacja jest domyÅ›lnie wÅ‚Ä…czona (możesz jÄ… wyÅ‚Ä…czyć)", + "cookies.consent.app.opt-out.title":"(możesz jÄ… wyÅ‚aczyć)", + "cookies.consent.app.purpose":"cel", + "cookies.consent.app.required.description":"Ta aplikacja jest zawsze wymagana", + "cookies.consent.app.required.title":"(zawsze wymagana)", + "cookies.consent.update":"Od ostatniej wizyty zostaÅ‚y wprowadzone zmiany. Zweryfikuj swoje zgody.", + "cookies.consent.close":"Zamknij", + "cookies.consent.decline":"Odrzuć", + "cookies.consent.content-notice.description":"Zbieramy i przetwarzamy Twoje dane do nastÄ™pujÄ…cych celów: <strong>weryfikacja, preferencje, zgody i statystyka</strong>. <br/> JeÅ›li chcesz siÄ™ dowiedzieć wiÄ™cej, przycztaj naszÄ… {privacyPolicy}.", + "cookies.consent.content-notice.learnMore":"Dostosuj", + "cookies.consent.content-modal.description":"Tutaj sÄ… wyÅ›wietlane informacje, które zbieramy o Tobie. Możesz je dostosować wedÅ‚ug swojego uznania.", + "cookies.consent.content-modal.privacy-policy.name":"polityka prywatnoÅ›ci", + "cookies.consent.content-modal.privacy-policy.text":"Aby dowiedzieć siÄ™ wiÄ™cej przeczytaj naszÄ… {privacyPolicy}.", + "cookies.consent.content-modal.title":"Informacje, które zbieramy", + "cookies.consent.app.title.authentication":"Logowanie", + "cookies.consent.app.description.authentication":"Musisz siÄ™ zalogować", + "cookies.consent.app.title.preferences":"Preferencje", + "cookies.consent.app.description.preferences":"Wymagane, aby zapisać Twoje preferencje", + "cookies.consent.app.title.acknowledgement":"Zgody", + "cookies.consent.app.description.acknowledgement":"Wymagane, aby zapisać Twoje preferencje", + "cookies.consent.app.title.google-analytics":"Google Analytics", + "cookies.consent.app.description.google-analytics":"Pozwól na Å›ledzenie do celów statystycznych", + "cookies.consent.purpose.functional":"Funkcjonalne", + "cookies.consent.purpose.statistical":"Statystyczne", + "curation-task.task.checklinks.label":"Sprawdź odnoÅ›niki w metadanych", + "curation-task.task.noop.label":"NOOP", + "curation-task.task.profileformats.label":"Profil formatów plików", + "curation-task.task.requiredmetadata.label":"Sprawdź poprawność wymaganych metadanych", + "curation-task.task.translate.label":"Microsoft Translator", + "curation-task.task.vscan.label":"Skan antywirusowy", + "curation.form.task-select.label":"Zadanie:", + "curation.form.submit":"Start", + "curation.form.submit.success.head":"UdaÅ‚o siÄ™ rozpocząć zadanie administratora", + "curation.form.submit.success.content":"Zostaniesz przeniesiony na stronÄ™ procesu.", + "curation.form.submit.error.head":"Nie udaÅ‚o siÄ™ siÄ™ zakoÅ„czyć zadania administratora", + "curation.form.submit.error.content":"WystÄ…piÅ‚ bÅ‚Ä…d podczas rozpoczynania zadania administracyjnego.", + "curation.form.handle.label":"Automatyzacja:", + "curation.form.handle.hint":"Wskazówka: Wpisz [prefix swojego identyfikatora]/0, aby zautomatyzować zadanie (nie wszystkie zadania mogÄ… wspierać tÄ™ funkcjÄ™)", + "deny-request-copy.email.message":"Drogi użytkowniku {{ recipientName }},\nW odpowiedzi na PaÅ„stwa zapytanie, przykro mi poinformować, że to niemożliwe, aby przestać kopiÄ™ pliku, o który PaÅ„stwo prosili: \"{{ itemUrl }}\" ({{ itemName }}), którego jestem autorem.\n\nPozdrawiam serdecznie,\n{{ authorName }} <{{ authorEmail }}>", + "deny-request-copy.email.subject":"WystÄ…p o kopiÄ™ dokumentu", + "deny-request-copy.error":"WystÄ…piÅ‚ bÅ‚Ä…d", + "deny-request-copy.header":"Odrzuć proÅ›bÄ™ o przesÅ‚anie kopii dokumentu", + "deny-request-copy.intro":"Ta wiadomość zostanie przesÅ‚ana do osoby, która wystÄ…piÅ‚a o dostÄ™p", + "deny-request-copy.success":"Z powodzeniem odrzucono proÅ›bÄ™ o udostÄ™pnienie pozycji", + "dso.name.untitled":"Brak tytuÅ‚u", + "dso-selector.claim.item.head":"Wskazówki profilu", + "dso-selector.claim.item.body":"IstniejÄ… profile, które mogÄ… odnosić siÄ™ do Ciebie. JeÅ›li, któryÅ› z tych profilów jest Twój, wybierz go i przejdź do szczegółów, z opcji wybierz opcjÄ™ przypisania profilu. W innym przypadku możesz utworzyć nowy profil z szablonu, wybierajÄ…c przycisk poniżej.", + "dso-selector.claim.item.create-from-scratch":"Utwórz nowy", + "dso-selector.claim.item.not-mine-label":"Å»aden nie jest mój", + "dso-selector.create.collection.head":"Nowa kolekcja", + "dso-selector.create.collection.sub-level":"Utwórz nowÄ… kolekcjÄ™ w", + "dso-selector.create.community.head":"Nowy zbiór", + "dso-selector.create.community.sub-level":"Utwórz nowy zbiór", + "dso-selector.create.community.top-level":"Utwórz nowy nadrzÄ™dny zbiór", + "dso-selector.create.item.head":"Nowa pozycja", + "dso-selector.create.item.sub-level":"Utwórz nowÄ… pozycjÄ™ w", + "dso-selector.create.submission.head":"Nowe zgÅ‚oszenie", + "dso-selector.edit.collection.head":"Edytuj kolekcjÄ™", + "dso-selector.edit.community.head":"Edytuj zbiór", + "dso-selector.edit.item.head":"Edytuj pozycjÄ™", + "dso-selector.error.title":"WystÄ…piÅ‚ bÅ‚Ä…d podczas wyszukiwania typu {{ type }}", + "dso-selector.export-metadata.dspaceobject.head":"Eksportuj metadane z", + "dso-selector.no-results":"Nie znaleziono {{ type }}", + "dso-selector.placeholder":"Wyszukaj {{ type }}", + "dso-selector.select.collection.head":"Wybierz kolekcjÄ™", + "dso-selector.set-scope.community.head":"Wybierz wyszukiwanie zakresu", + "dso-selector.set-scope.community.button":"Wyszukaj w caÅ‚ym DSpace", + "dso-selector.set-scope.community.input-header":"Wyszukaj zbiór lub kolekcjÄ™", + "confirmation-modal.export-metadata.header":"Eksportuj metadane z {{ dsoName }}", + "confirmation-modal.export-metadata.info":"Czy na pewno chcesz eksportować metadane z {{ dsoName }}", + "confirmation-modal.export-metadata.cancel":"Anuluj", + "confirmation-modal.export-metadata.confirm":"Eksportuj", + "confirmation-modal.delete-eperson.header":"UsuÅ„ użytkownika \"{{ dsoName }}\"", + "confirmation-modal.delete-eperson.info":"Czy na pewno chcesz usunąć użytkownika \"{{ dsoName }}\"", + "confirmation-modal.delete-eperson.cancel":"Anuluj", + "confirmation-modal.delete-eperson.confirm":"UsuÅ„", + "error.bitstream":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia plików", + "error.browse-by":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia pozycji", + "error.collection":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia kolekcji", + "error.collections":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia kolekcji", + "error.community":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia ziboru", + "error.identifier":"Nie znaleziono pozycji z podanym identyfikatorem", + "error.default":"BÅ‚Ä…d", + "error.item":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia pozycji", + "error.items":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia pozycji", + "error.objects":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia obiektów", + "error.recent-submissions":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia ostatniego zgÅ‚oszenia", + "error.search-results":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia wyników wyszukiwania", + "error.sub-collections":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia podkolekcji", + "error.sub-communities":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia podzbiorów", + "error.submission.sections.init-form-error":"WystÄ…piÅ‚ bÅ‚Ä…d w czasie inicjalizacji sekcji, sprawdź konfiguracjÄ™. Szczegóły poniżej: <br> <br>", + "error.top-level-communities":"BÅ‚Ä…d podczas pobierania nadrzÄ™dnego zbioru", + "error.validation.license.notgranted":"Musisz wyrazić tÄ™ zgodÄ™, aby przesÅ‚ać swoje zgÅ‚oszenie. JeÅ›li nie możesz wyrazić zgody w tym momencie, możesz zapisać swojÄ… pracÄ™ i wrócić do niej później lub usunąć zgÅ‚oszenie.", + "error.validation.pattern":"Te dane wejÅ›ciowe sÄ… ograniczone przez aktualny wzór: {{ pattern }}.", + "error.validation.filerequired":"PrzesÅ‚anie pliku jest obowiÄ…zkowe", + "error.validation.required":"Pole jest wymagane", + "error.validation.NotValidEmail":"E-mail nie jest poprawny", + "error.validation.emailTaken":"E-mail jest już zarejestrowany", + "error.validation.groupExists":"Ta grupa już istnieje", + "file-section.error.header":"BÅ‚Ä…d podczas uzyskiwania plików dla tej pozycji", + "footer.copyright":"copyright © 2002-{{ year }}", + "footer.link.dspace":"oprogramowanie DSpace", + "footer.link.lyrasis":"LYRASIS", + "footer.link.cookies":"Ustawienia plików cookies", + "footer.link.privacy-policy":"Polityka prywatnoÅ›ci", + "footer.link.end-user-agreement":"Umowa użytkownika", + "forgot-email.form.header":"Nie pamiÄ™tam hasÅ‚a", + "forgot-email.form.info":"Zarejestruj siÄ™, aby otrzymywać wiadomoÅ›ci o nowych pozycjach w obserowanych kolekcjach, a także przesyÅ‚ać nowe pozycje do repozytorium.", + "forgot-email.form.email":"Adres e-mail *", + "forgot-email.form.email.error.required":"UzupeÅ‚nij adres e-mail", + "forgot-email.form.email.error.pattern":"UzupeÅ‚nij prawidÅ‚owy adres e-mail", + "forgot-email.form.email.hint":"Ten adres e-mail bÄ™dzie zweryfikowany i bÄ™dziesz go używać jako swój login.", + "forgot-email.form.submit":"WyÅ›lij", + "forgot-email.form.success.head":"WysÅ‚ano wiadomość weryfikacyjnÄ…", + "forgot-email.form.success.content":"Wiadomość zostaÅ‚a wysÅ‚ana na adres e-mail {{ email }}. Zawiera ona unikatowy link i dalsze instrukcje postÄ™powania.", + "forgot-email.form.error.head":"BÅ‚Ä…d podczas rejestracji adresu e-mail", + "forgot-email.form.error.content":"WystÄ…piÅ‚ bÅ‚Ä…d poczas próby rejestracji tego adresu e-mail: {{ email }}", + "forgot-password.title":"Nie pamiÄ™tam hasÅ‚a", + "forgot-password.form.head":"Nie pamiÄ™tam hasÅ‚a", + "forgot-password.form.info":"Wpisz nowe hasÅ‚o w polu poniżej i potwierdź je wpisujÄ…c je ponownie w drugim polu. HasÅ‚o powinno mieć co najmniej sześć znaków.", + "forgot-password.form.card.security":"BezpieczeÅ„stwo", + "forgot-password.form.identification.header":"Identifikacja", + "forgot-password.form.identification.email":"Adres e-mail: ", + "forgot-password.form.label.password":"HasÅ‚o", + "forgot-password.form.label.passwordrepeat":"Potwierdź hasÅ‚o", + "forgot-password.form.error.empty-password":"Wpisz hasÅ‚o poniżej.", + "forgot-password.form.error.matching-passwords":"HasÅ‚a nie sÄ… identyczne.", + "forgot-password.form.notification.error.title":"BÅ‚Ä…d podczas próby ustawienia nowego hasÅ‚a", + "forgot-password.form.notification.success.content":"Resetowanie hasÅ‚a udaÅ‚o siÄ™. Zalogowano jako stworzony przed momemntem użytkownik.", + "forgot-password.form.notification.success.title":"Resetowanie hasÅ‚a udane", + "forgot-password.form.submit":"Wpisz hasÅ‚o", + "form.add":"Dodaj", + "form.add-help":"Wybierz ten przycisk, aby dodać aktualny wpis lub dodać nastÄ™pny", + "form.cancel":"Anuluj", + "form.clear":"Wyczyść", + "form.clear-help":"Kliknij tutaj, aby usunąć wybranÄ… wartość", + "form.discard":"Odrzuć", + "form.drag":"PrzeciÄ…gnij", + "form.edit":"Edytuj", + "form.edit-help":"Kliknij tutaj, aby edytować wybranÄ… wartość", + "form.first-name":"ImiÄ™", + "form.last-name":"Nazwisko", + "form.loading":"Åadowanie...", + "form.lookup":"PrzeglÄ…daj", + "form.lookup-help":"Kliknij tutaj, aby zobaczyć istniejÄ…ce powiÄ…zania", + "form.no-results":"Nie znaleziono rezultatów", + "form.no-value":"Nie wprowadzono wartoÅ›ci", + "form.remove":"UsuÅ„", + "form.save":"Zapisz", + "form.save-help":"Zapisz zmiany", + "form.search":"Wyszukaj", + "form.search-help":"Kliknij tutaj, aby wyszukać w istniejÄ…cych komentarzach", + "form.submit":"Zapisz", + "form.repeatable.sort.tip":"Upuść nowÄ… pozycjÄ™ w nowym miejscu", + "grant-deny-request-copy.deny":"Nie przesyÅ‚aj kopii", + "grant-deny-request-copy.email.back":"Cofnij", + "grant-deny-request-copy.email.message":"WiadomoÅ›ci", + "grant-deny-request-copy.email.message.empty":"ProszÄ™ wprowadzić wiadomość", + "grant-deny-request-copy.email.permissions.info":"W tym miejscu możesz przemyÅ›leć ograniczenie dostÄ™pu do dokumentu, aby odpowiadać na mniej próśb o dostÄ™p. JeÅ›li chcesz wystÄ…pić do administratorów reposytorium o zniesienie restrykcji, zaznacz okienko poniżej.", + "grant-deny-request-copy.email.permissions.label":"Ustaw jako otwarty dostÄ™p", + "grant-deny-request-copy.email.send":"WyÅ›lij", + "grant-deny-request-copy.email.subject":"Temat", + "grant-deny-request-copy.email.subject.empty":"Wpisz temat", + "grant-deny-request-copy.grant":"WyÅ›lij kopiÄ™", + "grant-deny-request-copy.header":"ProÅ›ba o przesÅ‚anie kopii dokumentu", + "grant-deny-request-copy.home-page":"Zabierz mnie na stronÄ™ głównÄ…", + "grant-deny-request-copy.intro1":"JeÅ›li jesteÅ› jednym z autorów dokumentu <a href='{{ url }}'>{{ name }}</a>, wybierz jednÄ… z poniższych opcji, aby odpowiedzieć zapytaniu użytkownika.", + "grant-deny-request-copy.intro2":"Po wybraniu opcji, zostanÄ… wyÅ›wietlone sugerowane odpowiedzi, które można edytować.", + "grant-deny-request-copy.processed":"Ta proÅ›ba jest już procesowana. Możesz użyć przycisku poniżej, aby wrócić do strony głównej.", + "grant-request-copy.email.message":"Drogi użytkowniku {{ recipientName }},\nW odpowiedzi na PaÅ„stwa zapytanie, miÅ‚o mi poinformować, że w zaÅ‚Ä…czniku przesyÅ‚am kopiÄ™ dokumentu, o który PaÅ„stwo prosili: \"{{ itemUrl }}\" ({{ itemName }}), którego jestem autorem.\n\nPozdrawiam serdecznie,\n{{ authorName }} <{{ authorEmail }}>", + "grant-request-copy.email.subject":"ProÅ›ba o kopiÄ™ dokumentu", + "grant-request-copy.error":"WystÄ…piÅ‚ bÅ‚Ä…d", + "grant-request-copy.header":"Zezwól na wysÅ‚anie kopii dokumentu", + "grant-request-copy.intro":"To wiadomość zostanie wysÅ‚ana do osoby, która wystÄ…piÅ‚a o dostÄ™p. Wskazane dokumenty zostanÄ… doÅ‚Ä…czone jako zaÅ‚Ä…cznik.", + "grant-request-copy.success":"ProÅ›ba o dostÄ™p do dokumentu zostaÅ‚a przyjÄ™ta", + "home.description":"", + "home.breadcrumbs":"Strona główna", + "home.search-form.placeholder":"Przeszukaj repozytorium...", + "home.title":"Strona główna", + "home.top-level-communities.head":"Zbiory w DSpace", + "home.top-level-communities.help":"Przeszukaj kolekcje", + "info.end-user-agreement.accept":"PrzeczytaÅ‚em/am i akceptujÄ™ umowÄ™ użytkownika", + "info.end-user-agreement.accept.error":"BÅ‚Ä…d wystÄ…piÅ‚ podczas akceptowania umowy użytkownika", + "info.end-user-agreement.accept.success":"UdaÅ‚o siÄ™ zaktualizować umowÄ™ użytkownika", + "info.end-user-agreement.breadcrumbs":"Umowa użytkownika", + "info.end-user-agreement.buttons.cancel":"Anuluj", + "info.end-user-agreement.buttons.save":"Zapisz", + "info.end-user-agreement.head":"Umowa użytkownika", + "info.end-user-agreement.title":"Umowa użytkownika", + "info.privacy.breadcrumbs":"OÅ›wiadczenie polityki prywatnoÅ›ci", + "info.privacy.head":"OÅ›wiadczenie polityki prywatnoÅ›ci", + "info.privacy.title":"OÅ›wiadczenie polityki prywatnoÅ›ci", + "item.alerts.private":"Ta pozycja jest prywatna", + "item.alerts.withdrawn":"Ta pozycja zostaÅ‚a wycofana", + "item.edit.authorizations.heading":"Za pomocÄ… tego edytora możesz przeglÄ…dać i zmieniać polityki dla danej pozycji, a także zmieniać polityki dla poszczególnych części pozycji: paczek i strumieni bitów. W skrócie, pozycja jest kontenerem pakietów, a pakiety sÄ… kontenerami strumieni bitów. Kontenery zazwyczaj majÄ… polityki ADD/REMOVE/READ/WRITE, natomiast strumienie bitów majÄ… tylko polityki READ/WRITE.", + "item.edit.authorizations.title":"Edytuj politykÄ™ tej pozycji", + "item.badge.private":"Prywatny status publikacji", + "item.badge.withdrawn":"Wycofane publikacje", + "item.bitstreams.upload.bundle":"Pakiet", + "item.bitstreams.upload.bundle.placeholder":"Wybierz pakiet", + "item.bitstreams.upload.bundle.new":"Utworz pakiet", + "item.bitstreams.upload.bundles.empty":"Ta pozycja nie zawiera żadnych pakietów, do których można przesÅ‚ać strumieÅ„ bitów.", + "item.bitstreams.upload.cancel":"Anuluj", + "item.bitstreams.upload.drop-message":"Upuść plik, aby przesÅ‚ać", + "item.bitstreams.upload.item":"Pozycja: ", + "item.bitstreams.upload.notifications.bundle.created.content":"UdaÅ‚o siÄ™ utworzyć nowy pakiet.", + "item.bitstreams.upload.notifications.bundle.created.title":"Utwórz pakiet", + "item.bitstreams.upload.notifications.upload.failed":"Zweryfikuj pliki przed spróbowaniem ponownie.", + "item.bitstreams.upload.title":"PrzeÅ›lij strumieÅ„ bitów", + "item.edit.bitstreams.bundle.edit.buttons.upload":"PrzeÅ›lij", + "item.edit.bitstreams.bundle.displaying":"Obecnie wyÅ›wietlono {{ amount }} plików z {{ total }}.", + "item.edit.bitstreams.bundle.load.all":"ZaÅ‚aduj wszystkie ({{ total }})", + "item.edit.bitstreams.bundle.load.more":"ZaÅ‚aduj wiÄ™cej", + "item.edit.bitstreams.bundle.name":"PACZKA: {{ name }}", + "item.edit.bitstreams.discard-button":"Odrzuć", + "item.edit.bitstreams.edit.buttons.download":"Pobierz", + "item.edit.bitstreams.edit.buttons.drag":"PrzeciÄ…gnij", + "item.edit.bitstreams.edit.buttons.edit":"Edytuj", + "item.edit.bitstreams.edit.buttons.remove":"UsuÅ„", + "item.edit.bitstreams.edit.buttons.undo":"Cofnij zmiany", + "item.edit.bitstreams.empty":"Ta pozycja nie zawiera żadnych strumieni bitów. Wybierz strumienie do zaÅ‚adowania, aby je utworzyć.", + "item.edit.bitstreams.headers.actions":"Akcje", + "item.edit.bitstreams.headers.bundle":"Paczka", + "item.edit.bitstreams.headers.description":"Opis", + "item.edit.bitstreams.headers.format":"Format", + "item.edit.bitstreams.headers.name":"Nazwa", + "item.edit.bitstreams.notifications.discarded.content":"Twoje zmiany zostaÅ‚y odrzucone. Aby je przywrócić, wybierz przycisk 'Cofnij'", + "item.edit.bitstreams.notifications.discarded.title":"Zmiany odrzucone", + "item.edit.bitstreams.notifications.move.failed.title":"BÅ‚Ä…d podczas przenoszenia plików", + "item.edit.bitstreams.notifications.move.saved.content":"Zmiany pozycji dla pliku tej pozycji oraz jego paczki zostaÅ‚y zapisane.", + "item.edit.bitstreams.notifications.move.saved.title":"Zmiana pozycji zostaÅ‚a zapisana", + "item.edit.bitstreams.notifications.outdated.content":"Pozycja zostaÅ‚a w miÄ™dzyczasie zmieniona przez innego użytkownika. Twoje zmiany zostaÅ‚y cofniÄ™te, aby uniknąć ewentualnych konfliktów", + "item.edit.bitstreams.notifications.outdated.title":"Zmiany nieaktualne", + "item.edit.bitstreams.notifications.remove.failed.title":"BÅ‚Ä…d podczas usuwania pliku", + "item.edit.bitstreams.notifications.remove.saved.content":"Twoje zmiany dotyczÄ…ce usuniÄ™cia plików z tej pozycji zostaÅ‚y zapisane.", + "item.edit.bitstreams.notifications.remove.saved.title":"Zmiany dotyczÄ…ce usuniÄ™cia zapisane", + "item.edit.bitstreams.reinstate-button":"Cofnij", + "item.edit.bitstreams.save-button":"Zapisz", + "item.edit.bitstreams.upload-button":"PrzeÅ›lij", + "item.edit.delete.cancel":"Anuluj", + "item.edit.delete.confirm":"UsuÅ„", + "item.edit.delete.description":"Czy jesteÅ› pewien, że ta pozycja powinna zostać caÅ‚kowicie usuniÄ™ta? Ostrożnie: Teraz nie pozostanie po tej pozycji żaden Å›lad.", + "item.edit.delete.error":"BÅ‚Ä…d wystÄ…piÅ‚ podczas usuwania pozycji", + "item.edit.delete.header":"UsuÅ„ pozycjÄ™: {{ id }}", + "item.edit.delete.success":"Ta pozycja zostaÅ‚a usuniÄ™ta", + "item.edit.head":"Edytuj pozycjÄ™", + "item.edit.breadcrumbs":"Edytuj pozycjÄ™", + "item.edit.tabs.disabled.tooltip":"Nie masz dostÄ™pu do tej strony", + "item.edit.tabs.mapper.head":"Mapper kolekcji", + "item.edit.tabs.item-mapper.title":"Edytowanie pozycji - Mapper kolekcji", + "item.edit.item-mapper.buttons.add":"Mapowanie pozycji do wybranych kolekcji", + "item.edit.item-mapper.buttons.remove":"UsuÅ„ mapowanie pozycji do wybranych kolekcji", + "item.edit.item-mapper.cancel":"Anuluj", + "item.edit.item-mapper.description":"To jest narzÄ™dzie do mapowania elementów, które pozwala administratorom mapować tÄ™ pozycjÄ™ do innych kolekcji. Możesz wyszukiwać kolekcje i je mapować lub przeglÄ…dać listÄ™ kolekcji, do których dana pozycja jest aktualnie zmapowana.", + "item.edit.item-mapper.head":"Mapper pozycji - Mapowanie pozycji do kolekcji", + "item.edit.item-mapper.item":"Pozycja: \"<b>{{name}}</b>\"", + "item.edit.item-mapper.no-search":"Wpisz zapytanie, które chcesz wyszukać", + "item.edit.item-mapper.notifications.add.error.content":"WystÄ…piÅ‚y bÅ‚Ä™dy dla mapowania pozycji w {{amount}} kolekcjach.", + "item.edit.item-mapper.notifications.add.error.head":"BÅ‚Ä™dy mapowania", + "item.edit.item-mapper.notifications.add.success.content":"UdaÅ‚o siÄ™ zmapować elementy dla {{amount}} kolekcji.", + "item.edit.item-mapper.notifications.add.success.head":"Mapowanie zakoÅ„czone", + "item.edit.item-mapper.notifications.remove.error.content":"WystÄ…piÅ‚y bÅ‚Ä™dy podczas usuwania mapowania do {{amount}} kolekcji.", + "item.edit.item-mapper.notifications.remove.error.head":"UsuniÄ™cie mapowania bÅ‚Ä™dów", + "item.edit.item-mapper.notifications.remove.success.content":"UdaÅ‚o siÄ™ usunąć mapowanie pozycji w {{amount}} kolekcjach.", + "item.edit.item-mapper.notifications.remove.success.head":"Usuwanie mapowania zakoÅ„czone", + "item.edit.item-mapper.search-form.placeholder":"Przeszukaj kolekcje...", + "item.edit.item-mapper.tabs.browse":"PrzeglÄ…daj zmapowane kolekcje", + "item.edit.item-mapper.tabs.map":"Mapuj nowe kolekcje", + "item.edit.metadata.add-button":"Dodaj", + "item.edit.metadata.discard-button":"Odrzuć", + "item.edit.metadata.edit.buttons.edit":"Edytuj", + "item.edit.metadata.edit.buttons.remove":"UsuÅ„", + "item.edit.metadata.edit.buttons.undo":"Cofnij zmiany", + "item.edit.metadata.edit.buttons.unedit":"Zatrzymaj edycjÄ™", + "item.edit.metadata.empty":"Ta pozycja nie zawiera żadnych metadanych. Wybierz Dodaj, aby dodać metadane.", + "item.edit.metadata.headers.edit":"Edytuj", + "item.edit.metadata.headers.field":"Pole", + "item.edit.metadata.headers.language":"JÄ™zyk", + "item.edit.metadata.headers.value":"Wartość", + "item.edit.metadata.metadatafield.invalid":"Wybierz aktualne pole metadanych", + "item.edit.metadata.notifications.discarded.content":"Twoje zmiany zostaÅ‚y odrzucone. Aby wgrać je ponownie wybierz przycisk 'Cofnij'", + "item.edit.metadata.notifications.discarded.title":"Zmiany odrzucone", + "item.edit.metadata.notifications.error.title":"WystÄ…piÅ‚ bÅ‚Ä…d", + "item.edit.metadata.notifications.invalid.content":"Twoje zmiany nie zostaÅ‚y zapisane. Przed zapisaniem upewnij siÄ™, że wszystkie pola sÄ… wypeÅ‚nione prawidÅ‚owo.", + "item.edit.metadata.notifications.invalid.title":"NieprawidÅ‚owe metadane", + "item.edit.metadata.notifications.outdated.content":"Pozycja zostaÅ‚a w miÄ™dzyczasie zmieniona przez innego użytkownika. Twoje zmiany zostaÅ‚y cofniÄ™te, aby zapobiec ewentualnym konfliktom", + "item.edit.metadata.notifications.outdated.title":"Zmiany nieaktualne", + "item.edit.metadata.notifications.saved.content":"Twoje zmiany metadanych tej pozycji zostaÅ‚y zapisane.", + "item.edit.metadata.notifications.saved.title":"Metadane zostaÅ‚y zapisane", + "item.edit.metadata.reinstate-button":"Cofnij", + "item.edit.metadata.save-button":"Zapisz", + "item.edit.modify.overview.field":"Pole", + "item.edit.modify.overview.language":"JÄ™zyk", + "item.edit.modify.overview.value":"Wartość", + "item.edit.move.cancel":"Anuluj", + "item.edit.move.save-button":"Zapisz", + "item.edit.move.discard-button":"Odrzuć", + "item.edit.move.description":"Wybierz kolekcjÄ™, do której chcesz przenieść tÄ™ pozycjÄ™. Aby zawÄ™zić listÄ™ wyÅ›wietlanych kolekcji, możesz wprowadzić zapytanie w polu wyszukiwania.", + "item.edit.move.error":"WystÄ…piÅ‚ bÅ‚Ä…d podczas przenoszenia pozycji", + "item.edit.move.head":"PrzenieÅ› pozycjÄ™: {{id}}", + "item.edit.move.inheritpolicies.checkbox":"Dziedziczenie polityk", + "item.edit.move.inheritpolicies.description":"Dziedzczenie domyÅ›lnych polityk z kolekcji docelowej", + "item.edit.move.move":"PrzenieÅ›", + "item.edit.move.processing":"Przenoszenie...", + "item.edit.move.search.placeholder":"Wpisz zapytanie, aby wyszukać w kolekcjach", + "item.edit.move.success":"Pozycja zostaÅ‚a przeniesiona", + "item.edit.move.title":"PrzenieÅ› pozycjÄ™", + "item.edit.private.cancel":"Anuluj", + "item.edit.private.confirm":"Ukryj", + "item.edit.private.description":"Czy chcesz ukryć tÄ™ pozycjÄ™?", + "item.edit.private.error":"WystÄ…piÅ‚ bÅ‚Ä…d podczas ukrywania pozycji", + "item.edit.private.header":"Ukryj pozycjÄ™: {{ id }}", + "item.edit.private.success":"Pozycja jest teraz ukryta", + "item.edit.public.cancel":"Anuluj", + "item.edit.public.confirm":"Upublicznij", + "item.edit.public.description":"Czy chcesz upublicznić tÄ™ pozycjÄ™?", + "item.edit.public.error":"WystÄ…piÅ‚ bÅ‚Ä…d podczas upubliczniania pozycji", + "item.edit.public.header":"Upublicznij pozycjÄ™: {{ id }}", + "item.edit.public.success":"Pozycja jest teraz publiczna", + "item.edit.reinstate.cancel":"Anuluj", + "item.edit.reinstate.confirm":"Przywróć", + "item.edit.reinstate.description":"Czy chcesz przywrócić tÄ™ pozycjÄ™?", + "item.edit.reinstate.error":"WystÄ…piÅ‚ bÅ‚Ä…d podczas przywracania pozycji", + "item.edit.reinstate.header":"Przywróć pozycjÄ™: {{ id }}", + "item.edit.reinstate.success":"Pozycja zostaÅ‚a przywrócona", + "item.edit.relationships.discard-button":"Odrzuć", + "item.edit.relationships.edit.buttons.add":"Dodaj", + "item.edit.relationships.edit.buttons.remove":"UsuÅ„", + "item.edit.relationships.edit.buttons.undo":"Cofnij zmiany", + "item.edit.relationships.no-relationships":"Brak relacji", + "item.edit.relationships.notifications.discarded.content":"Twoje zmiany zostaÅ‚y cofniÄ™te. Aby przywrócić zmiany wybierz przycisk 'Cofnij'", + "item.edit.relationships.notifications.discarded.title":"Zmiany zostaÅ‚y cofniÄ™te", + "item.edit.relationships.notifications.failed.title":"WystÄ…piÅ‚ bÅ‚Ä…d podczas edytowania relacji", + "item.edit.relationships.notifications.outdated.content":"Ta pozycja zostaÅ‚a wÅ‚aÅ›nie zmieniona przez innego użytkownika. Twoje zmiany zostaÅ‚y cofniÄ™te, aby uniknąć konfliktów", + "item.edit.relationships.notifications.outdated.title":"Zmiany sÄ… nieaktualne", + "item.edit.relationships.notifications.saved.content":"Twoje zmiany w relacjach tej pozycji zostaÅ‚y zapisane.", + "item.edit.relationships.notifications.saved.title":"Relacje zostaÅ‚y zapisane", + "item.edit.relationships.reinstate-button":"Cofnij", + "item.edit.relationships.save-button":"Zapisz", + "item.edit.relationships.no-entity-type":"Dodaj metadanÄ… 'dspace.entity.type', aby umożliwić dodawanie relacji do pozycji", + "item.edit.return":"Cofnij", + "item.edit.tabs.bitstreams.head":"Pliki", + "item.edit.tabs.bitstreams.title":"Edycja pozycji - pliki", + "item.edit.tabs.curate.head":"Administruj", + "item.edit.tabs.curate.title":"Edytowanie pozycji - administruj", + "item.edit.tabs.metadata.head":"Metadane", + "item.edit.tabs.metadata.title":"Edycja pozycji - metadane", + "item.edit.tabs.relationships.head":"Relacje", + "item.edit.tabs.relationships.title":"Edycja pozycja - relacje", + "item.edit.tabs.status.buttons.authorizations.button":"DostÄ™py...", + "item.edit.tabs.status.buttons.authorizations.label":"OkreÅ›lu dostÄ™p do pozycji", + "item.edit.tabs.status.buttons.delete.button":"UsuÅ„ permanentnie", + "item.edit.tabs.status.buttons.delete.label":"UsuÅ„ pozycjÄ™ permanentnie", + "item.edit.tabs.status.buttons.mappedCollections.button":"Zmapowane kolekcje", + "item.edit.tabs.status.buttons.mappedCollections.label":"ZarzÄ…dzaj mapowanymi kolekcjami", + "item.edit.tabs.status.buttons.move.button":"PrzenieÅ›...", + "item.edit.tabs.status.buttons.move.label":"PrzenieÅ› pozycjÄ™ do innej kolekcji", + "item.edit.tabs.status.buttons.private.button":"Ukryj...", + "item.edit.tabs.status.buttons.private.label":"Ukry pozycjÄ™", + "item.edit.tabs.status.buttons.public.button":"Upublicznij...", + "item.edit.tabs.status.buttons.public.label":"Upublicznij pozycjÄ™", + "item.edit.tabs.status.buttons.reinstate.button":"Przywróć...", + "item.edit.tabs.status.buttons.reinstate.label":"Przywróć pozycjÄ™", + "item.edit.tabs.status.buttons.unauthorized":"You're not authorized to perform this action", + "item.edit.tabs.status.buttons.withdraw.button":"Wycofaj...", + "item.edit.tabs.status.buttons.withdraw.label":"Wycofaj z repozytorium", + "item.edit.tabs.status.description":"Witamy na stronie zarzÄ…dzania pozycjami. Z tego miejsca możesz wycofać, przywrócić, przenieść lub usunąć danÄ… pozycjÄ™. Możesz również aktualizować lub dodawać nowe metadane lub pliki..", + "item.edit.tabs.status.head":"Status", + "item.edit.tabs.status.labels.handle":"Identyfikator", + "item.edit.tabs.status.labels.id":"ID pozycji", + "item.edit.tabs.status.labels.itemPage":"Strona pozycji", + "item.edit.tabs.status.labels.lastModified":"Ostatnia modyfikacja", + "item.edit.tabs.status.title":"Edycja pozycji - Status", + "item.edit.tabs.versionhistory.head":"Historia wersji", + "item.edit.tabs.versionhistory.title":"Edycja pozycji - historia wersji", + "item.edit.tabs.versionhistory.under-construction":"Edytowanie lub dodawanie nowych wersji jest niedostÄ™pne w tego poziomu interfejsu.", + "item.edit.tabs.view.head":"Widok pozycji", + "item.edit.tabs.view.title":"Edycja pozycji - widok", + "item.edit.withdraw.cancel":"Anuluj", + "item.edit.withdraw.confirm":"Wycofaj", + "item.edit.withdraw.description":"Czy na pewno chcesz wycofać pozycjÄ™?", + "item.edit.withdraw.error":"WystÄ…piÅ‚ bÅ‚Ä…d podczas wycofywania pozycji", + "item.edit.withdraw.header":"Wycofaj pozycjÄ™: {{ id }}", + "item.edit.withdraw.success":"Pozycja zostaÅ‚a wycofana", + "item.listelement.badge":"Pozycja", + "item.page.description":"Opis", + "item.page.journal-issn":"ISSN czasopisma", + "item.page.journal-title":"TytuÅ‚ czasopisma", + "item.page.publisher":"Wydawca", + "item.page.titleprefix":"Pozycja: ", + "item.page.volume-title":"TytuÅ‚ tomu", + "item.search.results.head":"Wyniki wyszukiwania pozycji", + "item.search.title":"Wyszukiwanie pozycji", + "item.page.abstract":"Abstrakt", + "item.page.author":"Autorzy", + "item.page.citation":"Cytowanie", + "item.page.collections":"Kolekcje", + "item.page.collections.loading":"Åadowanie...", + "item.page.collections.load-more":"ZaÅ‚aduj wiÄ™cej", + "item.page.date":"Data", + "item.page.edit":"Edytuj pozycjÄ™", + "item.page.files":"Pliki", + "item.page.filesection.description":"Opis:", + "item.page.filesection.download":"Pobierz", + "item.page.filesection.format":"Format:", + "item.page.filesection.name":"Nazwa:", + "item.page.filesection.size":"Rozmiar:", + "item.page.journal.search.title":"ArtykuÅ‚y w czasopiÅ›mie", + "item.page.link.full":"Zobacz szczegóły", + "item.page.link.simple":"Uproszczony widok", + "item.page.person.search.title":"ArtykuÅ‚y tego autora", + "item.page.related-items.view-more":"Pokaż o {{ amount }} wiÄ™cej", + "item.page.related-items.view-less":"Ukryj {{ amount }}", + "item.page.relationships.isAuthorOfPublication":"Publikacje", + "item.page.relationships.isJournalOfPublication":"Publikacje", + "item.page.relationships.isOrgUnitOfPerson":"Autorzy", + "item.page.relationships.isOrgUnitOfProject":"Projekty naukowe", + "item.page.subject":"SÅ‚owa kluczowe", + "item.page.uri":"URI", + "item.page.bitstreams.view-more":"Pokaż wiÄ™cej", + "item.page.bitstreams.collapse":"Pokaż mniej", + "item.page.filesection.original.bundle":"Oryginalne pliki", + "item.page.filesection.license.bundle":"Licencja", + "item.page.return":"Powrót", + "item.page.version.create":"Utwórz nowÄ… wersjÄ™", + "item.page.version.hasDraft":"Nowa wersja nie może zostać utworzona, ponieważ istnieje już oczekujÄ…ce na akceptacjÄ™ zgÅ‚oszenie dokumentu tego pliku", + "item.preview.dc.identifier.doi":"DOI", + "item.preview.dc.relation.ispartof":"Czasopismo lub seria", + "item.preview.dc.identifier.isbn":"ISBN", + "item.preview.dc.identifier.uri":"Identyfikator:", + "item.preview.dc.contributor.author":"Autorzy:", + "item.preview.dc.date.issued":"Data publikacji:", + "item.preview.dc.description.abstract":"Abstrakt:", + "item.preview.dc.identifier.other":"Inny identyfikator:", + "item.preview.dc.language.iso":"JÄ™zyk:", + "item.preview.dc.title":"TytuÅ‚:", + "item.preview.dc.title.alternative":"TytuÅ‚ alternatywny", + "item.preview.dc.type":"Typ:", + "item.preview.dc.identifier":"Identyfikator:", + "item.preview.dc.relation.issn":"ISSN", + "item.preview.oaire.citation.issue":"Numer wydania", + "item.preview.oaire.citation.volume":"Numer tomu", + "item.preview.person.familyName":"Nazwisko:", + "item.preview.person.givenName":"Nazwa:", + "item.preview.person.identifier.orcid":"ORCID:", + "item.preview.project.funder.name":"Fundator:", + "item.preview.project.funder.identifier":"Identyfikator fundatora:", + "item.preview.oaire.awardNumber":"ID finansowania:", + "item.preview.dc.coverage.spatial":"Jurysdykcja:", + "item.preview.oaire.fundingStream":"ŹródÅ‚o finansowania:", + "item.select.confirm":"Potwierdź zaznaczone", + "item.select.empty":"Brak pozycji do wyÅ›wietlenia", + "item.select.table.author":"Autor", + "item.select.table.collection":"Kolekcja", + "item.select.table.title":"TytuÅ‚", + "item.version.history.empty":"Jeszcze nie ma innych wersji tej pozycji.", + "item.version.history.head":"Poprzednie wersje", + "item.version.history.return":"Powrót", + "item.version.history.selected":"Wybrane wersje", + "item.version.history.selected.alert":"W tym momencie wyÅ›wietlono wersjÄ™ {{version}} pozycji.", + "item.version.history.table.version":"Wersja", + "item.version.history.table.item":"Pozycja", + "item.version.history.table.editor":"Redaktor", + "item.version.history.table.date":"Data", + "item.version.history.table.summary":"Podsumowanie", + "item.version.history.table.workspaceItem":"Wersja robocza", + "item.version.history.table.workflowItem":"Pozycja workflow", + "item.version.history.table.actions":"Akcja", + "item.version.history.table.action.editWorkspaceItem":"Edytuj wersjÄ™ roboczÄ… pozycji", + "item.version.history.table.action.editSummary":"Edytuj podsumowanie", + "item.version.history.table.action.saveSummary":"Zapisz edycje podsumowania", + "item.version.history.table.action.discardSummary":"Odrzuć edycje podsumowania", + "item.version.history.table.action.newVersion":"Utwórz nowÄ… wersjÄ™ z tej wersji", + "item.version.history.table.action.deleteVersion":"Wersja usuniÄ™ta", + "item.version.history.table.action.hasDraft":"Nowa wersja nie może zostać utworzona, ponieważ istnieje już oczekujÄ…ce na akceptacjÄ™ zgÅ‚oszenie dokumentu tego pliku", + "item.version.notice":"To nie jest najnowsza wersja tej pozycji. Najnowsza wersja jest dostÄ™pna <a href='{{destination}}'>tutaj</a>.", + "item.version.create.modal.header":"Nowa wersja", + "item.version.create.modal.text":"Utwórz nowÄ… wersjÄ™ tej pozycji", + "item.version.create.modal.text.startingFrom":"zaczynajÄ…c od wersji {{version}}", + "item.version.create.modal.button.confirm":"Utwórz", + "item.version.create.modal.button.confirm.tooltip":"Utwórz nowÄ… wersjÄ™", + "item.version.create.modal.button.cancel":"Anuluj", + "item.version.create.modal.button.cancel.tooltip":"Nie stwarzaj nowej wersji", + "item.version.create.modal.form.summary.label":"Podsumowanie", + "item.version.create.modal.form.summary.placeholder":"Wprowadź podsumowanie nowej wersji", + "item.version.create.notification.success":"Nowa wersja zostaÅ‚a utworzona z numerem {{version}}", + "item.version.create.notification.failure":"Nowa wersja nie zostaÅ‚a utworzona", + "item.version.create.notification.inProgress":"Nowa wersja nie może być utworzona, ponieważ propozycja innej wersji jest już zÅ‚ożona do zaakceptowania", + "item.version.delete.modal.header":"UsuÅ„ wersjÄ™", + "item.version.delete.modal.text":"Czy chcesz usunąć wersjÄ™ {{version}}?", + "item.version.delete.modal.button.confirm":"UsuÅ„", + "item.version.delete.modal.button.confirm.tooltip":"UsuÅ„ wersjÄ™", + "item.version.delete.modal.button.cancel":"Anuluj", + "item.version.delete.modal.button.cancel.tooltip":"Nie usuwaj tej wersji", + "item.version.delete.notification.success":"Wersja {{version}} zostaÅ‚a usuniÄ™ta", + "item.version.delete.notification.failure":"Wersja {{version}} nie zostaÅ‚a usuniÄ™ta", + "item.version.edit.notification.success":"Podsumowanie wersji {{version}} zostaÅ‚o zmienione", + "item.version.edit.notification.failure":"Podsumowanie wersji {{version}} nie zostaÅ‚o zmienione", + "journal.listelement.badge":"Czasopismo", + "journal.page.description":"Opis", + "journal.page.edit":"Edytuj tÄ™ pozycjÄ™", + "journal.page.editor":"Redaktor naczelny", + "journal.page.issn":"ISSN", + "journal.page.publisher":"Wydawca", + "journal.page.titleprefix":"Czasopismo: ", + "journal.search.results.head":"Wyniki wyszukiwania czasopism", + "journal.search.title":"Wyszukiwanie czasopism", + "journalissue.listelement.badge":"Numer czasopisma", + "journalissue.page.description":"Opis", + "journalissue.page.edit":"Edytuj pozycjÄ™", + "journalissue.page.issuedate":"Data wydania", + "journalissue.page.journal-issn":"ISSN czasopisma", + "journalissue.page.journal-title":"TytuÅ‚ czasopisma", + "journalissue.page.keyword":"SÅ‚owa kluczowe", + "journalissue.page.number":"Numer", + "journalissue.page.titleprefix":"Wydanie czasopisma: ", + "journalvolume.listelement.badge":"Numer tomu czasopisma", + "journalvolume.page.description":"Opis", + "journalvolume.page.edit":"Edytuj pozycjÄ™", + "journalvolume.page.issuedate":"Data wydania", + "journalvolume.page.titleprefix":"Numer tomu czasopisma: ", + "journalvolume.page.volume":"Numer wydania", + "iiifsearchable.listelement.badge":"Multimedia dokumentu", + "iiifsearchable.page.titleprefix":"Dokument: ", + "iiifsearchable.page.doi":"StaÅ‚y link: ", + "iiifsearchable.page.issue":"Wydanie: ", + "iiifsearchable.page.description":"Opis: ", + "iiifviewer.fullscreen.notice":"WyÅ›wietl na peÅ‚nym ekranie dla lepszego widoku.", + "iiif.listelement.badge":"Multimedia obrazu", + "iiif.page.titleprefix":"Obraz: ", + "iiif.page.doi":"StaÅ‚y link: ", + "iiif.page.issue":"Numer wydania: ", + "iiif.page.description":"Opis: ", + "loading.bitstream":"Åadowanie pliku...", + "loading.bitstreams":"Åadowanie plików...", + "loading.browse-by":"Åadowanie pozycji...", + "loading.browse-by-page":"Åadowanie strony...", + "loading.collection":"Åadowanie kolekcji...", + "loading.collections":"Åadowanie kolekcji...", + "loading.content-source":"Åadowanie źródÅ‚a treÅ›ci...", + "loading.community":"Åadowanie zbioru...", + "loading.default":"Åadowanie...", + "loading.item":"Åadowanie pozycji...", + "loading.items":"Åadowanie pozycji...", + "loading.mydspace-results":"Åadowanie pozycji...", + "loading.objects":"Åadowanie...", + "loading.recent-submissions":"Åadowanie ostatnich zgÅ‚oszeÅ„...", + "loading.search-results":"Åadowanie wyników wyszukiwania...", + "loading.sub-collections":"Åadowanie podkolekcji...", + "loading.sub-communities":"Åadowanie podzbioru...", + "loading.top-level-communities":"Åadowanie zbioru wyszego szczebla...", + "login.form.email":"Adres e-mail", + "login.form.forgot-password":"Nie pamiÄ™tasz hasÅ‚a?", + "login.form.header":"Zaloguj siÄ™ do DSpace", + "login.form.new-user":"Nie masz konta? Zarejestruj siÄ™.", + "login.form.or-divider":"lub", + "login.form.orcid":"Zaloguj za pomocÄ… ORCID", + "login.form.oidc":"Zaloguj za pomocÄ… OIDC", + "login.form.password":"HasÅ‚o", + "login.form.shibboleth":"Zaloguj za pomocÄ… Shibboleth", + "login.form.submit":"Zaloguj siÄ™", + "login.title":"Zaloguj", + "login.breadcrumbs":"Zaloguj", + "logout.form.header":"Wyloguj siÄ™ z DSpace", + "logout.form.submit":"Wyloguj siÄ™", + "logout.title":"Wylogowywanie", + "menu.header.admin":"Panel administracyjny", + "menu.header.image.logo":"Logo repozytorium", + "menu.header.admin.description":"Menu administratora", + "menu.section.access_control":"Uprawnienia", + "menu.section.access_control_authorizations":"DostÄ™py", + "menu.section.access_control_groups":"Grupy", + "menu.section.access_control_people":"Użytkownicy", + "menu.section.admin_search":"Wyszukiwanie administracyjne", + "menu.section.browse_community":"Ten zbiór", + "menu.section.browse_community_by_author":"Wg autorów", + "menu.section.browse_community_by_issue_date":"Wg daty wydania", + "menu.section.browse_community_by_title":"Wg tytułów", + "menu.section.browse_global":"Wszystko na DSpace", + "menu.section.browse_global_by_author":"Wg autorów", + "menu.section.browse_global_by_dateissued":"Wg daty wydania", + "menu.section.browse_global_by_subject":"Wg tematu", + "menu.section.browse_global_by_title":"Wg tytuÅ‚u", + "menu.section.browse_global_communities_and_collections":"Zbiory i kolekcje", + "menu.section.control_panel":"Panel sterowania", + "menu.section.curation_task":"Zadanie administracyjne", + "menu.section.edit":"Edytuj", + "menu.section.edit_collection":"Kolekcja", + "menu.section.edit_community":"Zbiór", + "menu.section.edit_item":"Pozycja", + "menu.section.export":"Eksport", + "menu.section.export_collection":"Kolekcja", + "menu.section.export_community":"Zbiór", + "menu.section.export_item":"Pozycja", + "menu.section.export_metadata":"Metadane", + "menu.section.icon.access_control":"Sekcja menu Uprawnienia", + "menu.section.icon.admin_search":"Sekcja menu Wyszukiwanie administracyjne", + "menu.section.icon.control_panel":"Sekcja menu Panel sterowania", + "menu.section.icon.curation_tasks":"Sekcja menu Zadanie administracyjne", + "menu.section.icon.edit":"Sekcja menu Edycja", + "menu.section.icon.export":"Sekcja menu Eksport", + "menu.section.icon.find":"Sekcja menu Wyszukiwanie", + "menu.section.icon.import":"Sekcja menu Import", + "menu.section.icon.new":"Sekcja menu Dodaj", + "menu.section.icon.pin":"Przypnij boczny pasek", + "menu.section.icon.processes":"Sekcja menu Procesy", + "menu.section.icon.registries":"Sekcja menu Rejestry", + "menu.section.icon.statistics_task":"Sekcja menu Zadanie statystyczne", + "menu.section.icon.workflow":"Sekcja menu ZarzÄ…dzanie workflow", + "menu.section.icon.unpin":"Odepnij boczny pasek", + "menu.section.import":"Import", + "menu.section.import_batch":"Import masowy (ZIP)", + "menu.section.import_metadata":"Metadane", + "menu.section.new":"Dodaj", + "menu.section.new_collection":"Kolekcja", + "menu.section.new_community":"Zbiór", + "menu.section.new_item":"Pozycja", + "menu.section.new_item_version":"Wersja pozycji", + "menu.section.new_process":"Proces", + "menu.section.pin":"Przypnij pasek boczny", + "menu.section.unpin":"Odepnij pasek boczny", + "menu.section.processes":"Procesy", + "menu.section.registries":"Rejestry", + "menu.section.registries_format":"Formaty", + "menu.section.registries_metadata":"Metadane", + "menu.section.statistics":"Statystyki", + "menu.section.statistics_task":"Zadanie statystyczne", + "menu.section.toggle.access_control":"PrzeÅ‚Ä…cz sekcjÄ™ Uprawnienia", + "menu.section.toggle.control_panel":"PrzeÅ‚Ä…cz sekcjÄ™ Panel sterowania", + "menu.section.toggle.curation_task":"PrzeÅ‚Ä…cz sekcjÄ™ Zadanie kuratora", + "menu.section.toggle.edit":"PrzeÅ‚Ä…cz sekcjÄ™ Edytuj", + "menu.section.toggle.export":"PrzeÅ‚Ä…cz sekcjÄ™ Eksport", + "menu.section.toggle.find":"PrzeÅ‚Ä…cz sekcjÄ™ Wyszukiwanie", + "menu.section.toggle.import":"PrzeÅ‚Ä…cz sekcjÄ™ Import", + "menu.section.toggle.new":"PrzeÅ‚Ä…cz nowÄ… sekcjÄ™", + "menu.section.toggle.registries":"PrzeÅ‚Ä…cz sekcjÄ™ Rejestry", + "menu.section.toggle.statistics_task":"PrzeÅ‚Ä…cz sekcjÄ™ Zadanie statystyczne", + "menu.section.workflow":"ZarzÄ…dzaj Workflow", + "mydspace.breadcrumbs":"Mój DSpace", + "mydspace.description":"", + "mydspace.messages.controller-help":"Wybierz tÄ™ opcjÄ™, aby przesÅ‚ać wiadomość do zgÅ‚aszajÄ…cego.", + "mydspace.messages.description-placeholder":"Wpisz swojÄ… wiadomość tutaj...", + "mydspace.messages.hide-msg":"Ukryj wiadomość", + "mydspace.messages.mark-as-read":"Oznacz jako przeczytane", + "mydspace.messages.mark-as-unread":"Oznacz jako nieprzeczytane", + "mydspace.messages.no-content":"Brak treÅ›ci.", + "mydspace.messages.no-messages":"Brak wiadomoÅ›ci.", + "mydspace.messages.send-btn":"WysÅ‚ano", + "mydspace.messages.show-msg":"Pokaż wiadomość", + "mydspace.messages.subject-placeholder":"Temat...", + "mydspace.messages.submitter-help":"Wybierz tÄ™ opcjÄ™, aby przesÅ‚ać wiadomość do osoby kontrolujÄ…cej.", + "mydspace.messages.title":"WiadomoÅ›ci", + "mydspace.messages.to":"Do", + "mydspace.new-submission":"Nowe zgÅ‚oszenie", + "mydspace.new-submission-external":"Import medatanych z zewnÄ™trznego źródÅ‚a", + "mydspace.new-submission-external-short":"Import metadanych", + "mydspace.results.head":"Twoje zadania", + "mydspace.results.no-abstract":"Brak abstraktu", + "mydspace.results.no-authors":"Brak autorów", + "mydspace.results.no-collections":"Brak kolekcji", + "mydspace.results.no-date":"Brak daty", + "mydspace.results.no-files":"Brak plików", + "mydspace.results.no-results":"Brak pozycji do wyÅ›wietlenia", + "mydspace.results.no-title":"Brak tytuÅ‚u", + "mydspace.results.no-uri":"Brak Uri", + "mydspace.search-form.placeholder":"Wyszukaj w mydspace...", + "mydspace.show.workflow":"Wszystkie zadania", + "mydspace.show.workspace":"Twoje zadania", + "mydspace.status.mydspaceArchived":"Zarchiwizowano", + "mydspace.status.mydspaceValidation":"Walidacja", + "mydspace.status.mydspaceWaitingController":"Oczekiwanie na redaktora", + "mydspace.status.mydspaceWorkflow":"Workflow", + "mydspace.status.mydspaceWorkspace":"Wersja robocza", + "mydspace.title":"Mój DSpace", + "mydspace.upload.upload-failed":"BÅ‚ad podczas tworzenia nowej wersji roboczej. Sprawdź poprawność plików i spróbuj ponownie.", + "mydspace.upload.upload-failed-manyentries":"Plik jest niemożliwy do przetworzenia. Wykryto wiele wejść, a dopuszczalne jest tylko jedno dla jednego pliku.", + "mydspace.upload.upload-failed-moreonefile":"Zapytanie niemożliwe do przetworzenia. Tylko jeden plik jest dopuszczalny.", + "mydspace.upload.upload-multiple-successful":"Utworzono {{qty}} przestrzeni roboczych.", + "mydspace.view-btn":"Widok", + "nav.browse.header":"CaÅ‚y DSpace", + "nav.community-browse.header":"Wg zbiorów", + "nav.language":"ZmieÅ„ jÄ™zyk", + "nav.login":"Zaloguj", + "nav.logout":"Menu profilu użytkownika i wylogowywanie", + "nav.main.description":"Główny pasek nawigacji", + "nav.mydspace":"Mój DSpace", + "nav.profile":"Profil", + "nav.search":"Wyszukiwanie", + "nav.statistics.header":"Statystyki", + "nav.stop-impersonating":"PrzestaÅ„ impersonifikować użytkownika", + "nav.toggle":"PrzeÅ‚Ä…cz nawigacjÄ™", + "nav.user.description":"Pasek profilu użytkownika", + "none.listelement.badge":"Pozycja", + "person.listelement.badge":"Osoba", + "person.listelement.no-title":"Nie znaleziono imienia", + "person.page.birthdate":"Data urodzenia", + "person.page.edit":"Edytuj pozycjÄ™", + "person.page.email":"Adres e-mail", + "person.page.firstname":"ImiÄ™", + "person.page.jobtitle":"Stanowisko", + "person.page.lastname":"Nazwisko", + "person.page.link.full":"Pokaż wszystkie metadane", + "person.page.orcid":"ORCID", + "person.page.orcid.create":"Utwórz ORCID ID", + "person.page.orcid.granted-authorizations":"Udzielone dostÄ™py", + "person.page.orcid.grant-authorizations":"Udziel dostÄ™pu", + "person.page.orcid.link":"PoÅ‚Ä…cz z ORCID ID", + "person.page.orcid.orcid-not-linked-message":"ORCID iD tego profilu ({{ orcid }}) nie jest poÅ‚Ä…czony z bazÄ… ORCID lub poÅ‚Ä…czenie wygasÅ‚o.", + "person.page.orcid.unlink":"Odepnij z ORCID", + "person.page.orcid.unlink.processing":"Procesowanie...", + "person.page.orcid.missing-authorizations":"Brak dostÄ™pów", + "person.page.orcid.missing-authorizations-message":"Brakuj nastÄ™pujÄ…cych dostÄ™pów:", + "person.page.orcid.no-missing-authorizations-message":"Åšwietnie! To miejsce jest puste, co oznacza, że masz dostÄ™p do wszystkich uprawnieÅ„, które sÄ… dostÄ™pne w Twojej instytucji.", + "person.page.orcid.no-orcid-message":"Brak przypisanego ORCID iD. Poprez wybranie przycisku poniżej możesz powiÄ…zać ten profil wraz z kontem ORCID.", + "person.page.orcid.profile-preferences":"Preferencje profilu", + "person.page.orcid.funding-preferences":"Preferencje finansowania", + "person.page.orcid.publications-preferences":"Preferencje publikacji", + "person.page.orcid.remove-orcid-message":"JeÅ›li chcesz usunąć Twój ORCID, skontaktuj siÄ™ z administratorem repozytorium", + "person.page.orcid.save.preference.changes":"Aktualizuj ustawienia", + "person.page.orcid.sync-profile.affiliation":"Afiliacja", + "person.page.orcid.sync-profile.biographical":"Biografia", + "person.page.orcid.sync-profile.education":"Edukacja", + "person.page.orcid.sync-profile.identifiers":"Identyfikatory", + "person.page.orcid.sync-fundings.all":"Wszystkie źrodÅ‚a finansowania", + "person.page.orcid.sync-fundings.mine":"Moje źrodÅ‚a finansowania", + "person.page.orcid.sync-fundings.my_selected":"Wybrane źródÅ‚a finansowania", + "person.page.orcid.sync-fundings.disabled":"Nieaktywne", + "person.page.orcid.sync-publications.all":"Wszystkie publikacje", + "person.page.orcid.sync-publications.mine":"Moje publikacje", + "person.page.orcid.sync-publications.my_selected":"Wybrane publikacje", + "person.page.orcid.sync-publications.disabled":"Nieaktywne", + "person.page.orcid.sync-queue.discard":"Odrzuć zmianÄ™ i nie synchronizuj z ORCID", + "person.page.orcid.sync-queue.discard.error":"Rekord kolejki ORCID nie zostaÅ‚ odrzucony", + "person.page.orcid.sync-queue.discard.success":"Rekord kolejki ORCID zostaÅ‚ odrzucony", + "person.page.orcid.sync-queue.empty-message":"Rejestr kolejki w ORCID jest pusty", + "person.page.orcid.sync-queue.description.affiliation":"Afiliacje", + "person.page.orcid.sync-queue.description.country":"Kraj", + "person.page.orcid.sync-queue.description.education":"Edukacja", + "person.page.orcid.sync-queue.description.external_ids":"ZewnÄ™trzne identyfikatory", + "person.page.orcid.sync-queue.description.other_names":"Inne imiona", + "person.page.orcid.sync-queue.description.qualification":"Kwalifikacje", + "person.page.orcid.sync-queue.description.researcher_urls":"URL naukowca", + "person.page.orcid.sync-queue.description.keywords":"SÅ‚owa kluczowe", + "person.page.orcid.sync-queue.tooltip.insert":"Dodaj nowy wpis w rejestrze ORCID", + "person.page.orcid.sync-queue.tooltip.update":"Aktualizuj ten wpis w rejestrze ORCID", + "person.page.orcid.sync-queue.tooltip.delete":"UsuÅ„ ten wpis z rejestru ORCID", + "person.page.orcid.sync-queue.tooltip.publication":"Publikacja", + "person.page.orcid.sync-queue.tooltip.affiliation":"Afiliacja", + "person.page.orcid.sync-queue.tooltip.education":"Edukacja", + "person.page.orcid.sync-queue.tooltip.qualification":"Kwalifikacje", + "person.page.orcid.sync-queue.tooltip.other_names":"Inna nazwa", + "person.page.orcid.sync-queue.tooltip.country":"Kraj", + "person.page.orcid.sync-queue.tooltip.keywords":"SÅ‚owa kluczowe", + "person.page.orcid.sync-queue.tooltip.external_ids":"ZewnÄ™trzny identyfikator", + "person.page.orcid.sync-queue.tooltip.researcher_urls":"URL naukowca", + "person.page.orcid.sync-queue.send":"Synchronizuj z rejestrem ORCID", + "person.page.orcid.sync-queue.send.unauthorized-error.title":"WysÅ‚anie zgÅ‚oszenia do ORCID nieudane z powodu braku uprawnieÅ„.", + "person.page.orcid.sync-queue.send.unauthorized-error.content":"Wybierz <a href='{{orcid}}'>here</a>, aby wystÄ…pić o niezbÄ™dne uprawnienia. JeÅ›li problem wciąż wystÄ™puje, skontaktuj siÄ™ z administratorem", + "person.page.orcid.sync-queue.send.bad-request-error":"WysÅ‚anie zgÅ‚oszenia do ORCID nie powiodÅ‚o siÄ™ ponieważ źródÅ‚a wysÅ‚ane do rejestru ORCID nie jest poprawne", + "person.page.orcid.sync-queue.send.error":"WysÅ‚anie zgÅ‚oszenia do ORCID nie powiodÅ‚o siÄ™", + "person.page.orcid.sync-queue.send.conflict-error":"ZgÅ‚oszenie do ORCID nie powiodÅ‚o siÄ™, ponieważ ta pozycja jest już dodana do rejestru ORCID", + "person.page.orcid.sync-queue.send.not-found-warning":"Pozycja nie istnieje już w rejestrze ORCID.", + "person.page.orcid.sync-queue.send.success":"ZgÅ‚oszenie do ORCID zostaÅ‚o zakoÅ„czone pomyÅ›lnie", + "person.page.orcid.sync-queue.send.validation-error":"Dane, które chcesz zsynchronizować z ORCID nie sÄ… poprawne", + "person.page.orcid.sync-queue.send.validation-error.amount-currency.required":"Waluta jest wymagana", + "person.page.orcid.sync-queue.send.validation-error.external-id.required":"Aby wysÅ‚ać pozycjÄ™, należy podać przynajmniej jeden identyfikator", + "person.page.orcid.sync-queue.send.validation-error.title.required":"TytuÅ‚ jest wymagany", + "person.page.orcid.sync-queue.send.validation-error.type.required":"Typ jest wymagany", + "person.page.orcid.sync-queue.send.validation-error.start-date.required":"Data poczÄ…tkowa jest wymagana", + "person.page.orcid.sync-queue.send.validation-error.funder.required":"Instytucja finansujÄ…ca jest wymagana", + "person.page.orcid.sync-queue.send.validation-error.organization.required":"Instytucja jest wymagana", + "person.page.orcid.sync-queue.send.validation-error.organization.name-required":"Nazwa instytucji jest wymagana", + "person.page.orcid.sync-queue.send.validation-error.organization.address-required":"Aby wysÅ‚ać instytucjÄ™, należy podać adres", + "person.page.orcid.sync-queue.send.validation-error.organization.city-required":"Aby wysÅ‚ać adres, należy podać miasto", + "person.page.orcid.sync-queue.send.validation-error.organization.country-required":"Aby wysÅ‚ać adres, należy podać kraj", + "person.page.orcid.sync-queue.send.validation-error.disambiguated-organization.required":"Wymagany jest identyfikator umożliwiajÄ…cy rozróżnienie instytucji. ObsÅ‚ugiwane identyfikatory to GRID, Ringgold, kod LEI oraz identyfikatory z rejestru instytucji finansujÄ…cych Crossref.", + "person.page.orcid.sync-queue.send.validation-error.disambiguated-organization.value-required":"Należy uzupeÅ‚nić wartość w identyfikatorze instytucji", + "person.page.orcid.sync-queue.send.validation-error.disambiguation-source.required":"Należy uzupeÅ‚nić źródÅ‚o w identyfikatorze instytucji", + "person.page.orcid.sync-queue.send.validation-error.disambiguation-source.invalid":"ŹródÅ‚o jednego z identyfikatorów organizcji jest niepoprawne. Wspierane źródÅ‚a to RINGGOLD, GRID, LEI and FUNDREF", + "person.page.orcid.synchronization-mode":"Tryb synchronizacji", + "person.page.orcid.synchronization-mode.batch":"Wsad", + "person.page.orcid.synchronization-mode.label":"Tryb synchronizacji", + "person.page.orcid.synchronization-mode-message":"WÅ‚Ä…cz tryb 'Manual' synchronizacja, aby wyÅ‚aczyć tryb synchronizacji wsadowej, wtedy dane do rejestru ORCID bÄ™dÄ… musiaÅ‚y zostać wysÅ‚ane rÄ™cznie", + "person.page.orcid.synchronization-settings-update.success":"Opcje synchronizacji zostaÅ‚y zaktualizowane", + "person.page.orcid.synchronization-settings-update.error":"Opcje synchronizacji nie zostaÅ‚y zaktualizowane", + "person.page.orcid.synchronization-mode.manual":"RÄ™czna", + "person.page.orcid.scope.authenticate":"Uzyskaj swój ORCID iD", + "person.page.orcid.scope.read-limited":"Przeczytaj informacje o ustawieniach widocznoÅ›ci z firmami trzeciami", + "person.page.orcid.scope.activities-update":"Dodaj/aktualizuj swoje aktywnoÅ›ci naukowe", + "person.page.orcid.scope.person-update":"Dodaj/aktualizuj inne informacje o Tobie", + "person.page.orcid.unlink.success":"OdÅ‚Ä…czenie Twojego profilu od rejestru ORCID powiodÅ‚o siÄ™", + "person.page.orcid.unlink.error":"WystÄ…piÅ‚ bÅ‚Ä…d podczas odÅ‚Ä…czania Twojego profilu od rejestru ORCID. Spróbuj ponownie", + "person.page.staffid":"ID pracownika", + "person.page.titleprefix":"Osoba: ", + "person.search.results.head":"Wyniki wyszukiwania użytkowników", + "person.search.title":"Wyniki wyszukiwania użytkowników", + "process.new.select-parameters":"Parametry", + "process.new.cancel":"Anuluj", + "process.new.submit":"Zapisz", + "process.new.select-script":"Skrypt", + "process.new.select-script.placeholder":"Wybierz skrypt...", + "process.new.select-script.required":"Skrypt jest wymagany", + "process.new.parameter.file.upload-button":"Wybierz plik...", + "process.new.parameter.file.required":"ProszÄ™ wybrać plik", + "process.new.parameter.string.required":"Wartość parametru jest wymagana", + "process.new.parameter.type.value":"wartość", + "process.new.parameter.type.file":"plik", + "process.new.parameter.required.missing":"Te parametry sÄ… wymagane, ale nie zostaÅ‚y uzupeÅ‚nione:", + "process.new.notification.success.title":"UdaÅ‚o siÄ™", + "process.new.notification.success.content":"UdaÅ‚o siÄ™ stworzyć proces", + "process.new.notification.error.title":"BÅ‚Ä…d", + "process.new.notification.error.content":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia procesu", + "process.new.header":"Utwórz nowy proces", + "process.new.title":"Utwórz nowy proces", + "process.new.breadcrumbs":"Utwórz nowy proces", + "process.detail.arguments":"Argumenty", + "process.detail.arguments.empty":"Do tego procesu nie zostaÅ‚y przypisane żadne argumenty", + "process.detail.back":"Cofnij", + "process.detail.output":"Dane wyjÅ›ciowe procesu", + "process.detail.logs.button":"Odzyskaj dane wyjÅ›ciowe procesu", + "process.detail.logs.loading":"Odzyskiwanie", + "process.detail.logs.none":"Ten proces nie ma danych wyjÅ›ciowych", + "process.detail.output-files":"Pliki", + "process.detail.output-files.empty":"Ten proces nie ma żadnych plików danych wyjÅ›ciowych", + "process.detail.script":"Skrypt", + "process.detail.title":"Proces: {{ id }} - {{ name }}", + "process.detail.start-time":"Czas rozpoczÄ™cia procesu", + "process.detail.end-time":"Czas zakoÅ„czenia procesu", + "process.detail.status":"Status", + "process.detail.create":"Stwórz podobny proces", + "process.overview.table.finish":"Czas zakoÅ„czenia (UTC)", + "process.overview.table.id":"Identyfikator procesu", + "process.overview.table.name":"Nazwa", + "process.overview.table.start":"Czas rozpoczÄ™cia (UTC)", + "process.overview.table.status":"Status", + "process.overview.table.user":"Użytkownik", + "process.overview.title":"PrzeglÄ…d procesów", + "process.overview.breadcrumbs":"PrzeglÄ…d procesów", + "process.overview.new":"Nowy", + "profile.breadcrumbs":"Zaktualizuj profil", + "profile.card.identify":"Dane", + "profile.card.security":"BezpieczeÅ„stwo", + "profile.form.submit":"Zaktualizuj profil", + "profile.groups.head":"Posiadane uprawnienia do kolekcji", + "profile.head":"Zaktualizuj profil", + "profile.metadata.form.error.firstname.required":"ImiÄ™ jest wymagane", + "profile.metadata.form.error.lastname.required":"Nazwisko jest wymagane", + "profile.metadata.form.label.email":"Adres e-mail", + "profile.metadata.form.label.firstname":"ImiÄ™", + "profile.metadata.form.label.language":"JÄ™zyk", + "profile.metadata.form.label.lastname":"Nazwisko", + "profile.metadata.form.label.phone":"Telefon kontaktowy", + "profile.metadata.form.notifications.success.content":"Zmiany w profilu zostaÅ‚y zapisane.", + "profile.metadata.form.notifications.success.title":"Profil zapisany", + "profile.notifications.warning.no-changes.content":"Nie dokonano żadnych zmian w profilu.", + "profile.notifications.warning.no-changes.title":"Brak zmian", + "profile.security.form.error.matching-passwords":"HasÅ‚a nie sÄ… identyczne.", + "profile.security.form.info":"Możesz wprowadzić nowe hasÅ‚o w polu poniżej i zatwierdzić poprzez ponowne wpisanie. HasÅ‚o musi mieć przynajmniej 6 znaków.", + "profile.security.form.label.password":"HasÅ‚o", + "profile.security.form.label.passwordrepeat":"Potwierdź hasÅ‚o", + "profile.security.form.notifications.success.content":"Twoje zmiany w haÅ›le zostaÅ‚y zapisane.", + "profile.security.form.notifications.success.title":"HasÅ‚o zapisane", + "profile.security.form.notifications.error.title":"BÅ‚Ä…d podczas próby zmiany hasÅ‚a", + "profile.security.form.notifications.error.not-same":"HasÅ‚a nie sÄ… identyczne.", + "profile.title":"Zaktualizuj profil", + "profile.card.researcher":"Profil naukowca", + "project.listelement.badge":"Projekt badawczy", + "project.page.contributor":"Autorzy", + "project.page.description":"Opis", + "project.page.edit":"Edytuj pozycjÄ™", + "project.page.expectedcompletion":"Spodziewany termin zakoÅ„czenia", + "project.page.funder":"Instytucje finansujÄ…ce", + "project.page.id":"ID", + "project.page.keyword":"SÅ‚owa kluczowe", + "project.page.status":"Status", + "project.page.titleprefix":"Projekt badawczy: ", + "project.search.results.head":"Wyniki wyszukiwania projektów", + "publication.listelement.badge":"Publikacja", + "publication.page.description":"Opis", + "publication.page.edit":"Edytuj pozycjÄ™", + "publication.page.journal-issn":"ISSN czasopisma", + "publication.page.journal-title":"TytuÅ‚ czasopisma", + "publication.page.publisher":"Wydawca", + "publication.page.titleprefix":"Publikacja: ", + "publication.page.volume-title":"TytuÅ‚ tomu", + "publication.search.results.head":"Wyniki wyszukiwania publikacji", + "publication.search.title":"Wyszukiwanie publikacji", + "media-viewer.next":"Nowy", + "media-viewer.previous":"Poprzedni", + "media-viewer.playlist":"Playlista", + "register-email.title":"Rejestracja nowego użytkownika", + "register-page.create-profile.header":"Stwórz profil", + "register-page.create-profile.identification.header":"Dane", + "register-page.create-profile.identification.email":"Adres e-mail", + "register-page.create-profile.identification.first-name":"ImiÄ™ *", + "register-page.create-profile.identification.first-name.error":"Wpisz imiÄ™", + "register-page.create-profile.identification.last-name":"Nazwisko *", + "register-page.create-profile.identification.last-name.error":"Wpisz nazwisko", + "register-page.create-profile.identification.contact":"Telefon kontaktowy", + "register-page.create-profile.identification.language":"JÄ™zyk", + "register-page.create-profile.security.header":"BezpieczeÅ„stwo", + "register-page.create-profile.security.info":"Wprowadź nowe hasÅ‚o w polu poniżej i zatwierdź poprzez ponowne wpisanie w drugim polu. HasÅ‚o musi mieć przynajmniej 6 znaków.", + "register-page.create-profile.security.label.password":"HasÅ‚o *", + "register-page.create-profile.security.label.passwordrepeat":"Potwierdź hasÅ‚o *", + "register-page.create-profile.security.error.empty-password":"Wprowadź hasÅ‚o w polu poniżej.", + "register-page.create-profile.security.error.matching-passwords":"HasÅ‚a nie sÄ… identyczne.", + "register-page.create-profile.submit":"Rejestracja zakoÅ„czona", + "register-page.create-profile.submit.error.content":"CoÅ› siÄ™ nie udaÅ‚o podczas rejestracji nowego użytkownika.", + "register-page.create-profile.submit.error.head":"Rejestracja nie powiodÅ‚a siÄ™", + "register-page.create-profile.submit.success.content":"Rejestracja powiodÅ‚a siÄ™. Zalogowano jako stworzony użytkownik.", + "register-page.create-profile.submit.success.head":"Rejestracja zakoÅ„czona", + "register-page.registration.header":"Rejestracja nowego użytkownika", + "register-page.registration.info":"Zarejestruj siÄ™, aby otrzymywać wiadomoÅ›ci o nowych pozycjach w obserowanych kolekcjach, a także przesyÅ‚ać nowe pozycje do repozytorium.", + "register-page.registration.email":"Adres e-mail *", + "register-page.registration.email.error.required":"WypeÅ‚nij adres e-mail", + "register-page.registration.email.error.pattern":"WypeÅ‚nij poprawny adres e-mail", + "register-page.registration.email.hint":"Ten adres e-mail bÄ™dzie zweryfikowany i bÄ™dziesz go używać jako swój login.", + "register-page.registration.submit":"Zarejestruj siÄ™", + "register-page.registration.success.head":"Wiadomość weryfikacyjna zostaÅ‚Ä… wysÅ‚ana", + "register-page.registration.success.content":"Wiadomość zostaÅ‚a wysÅ‚ana na adres e-mail {{ email }}. Zawiera ona unikatowy link i dalsze instrukcje postÄ™powania.", + "register-page.registration.error.head":"BÅ‚Ä…d podczas próby rejestracji adresu e-mail", + "register-page.registration.error.content":"BÅ‚Ä…d podczas próby rejestracji adresu e-mail: {{ email }}", + "relationships.add.error.relationship-type.content":"Nie znaleziono dopasowania dla typu relacji {{ type }} pomiÄ™dzy dwoma pozycjami", + "relationships.add.error.server.content":"BÅ‚Ä…d serwera", + "relationships.add.error.title":"Nie można dodać relacji", + "relationships.isAuthorOf":"Autorzy", + "relationships.isAuthorOf.Person":"Autorzy (osoby)", + "relationships.isAuthorOf.OrgUnit":"Autorzy (jednostki organizacyjne)", + "relationships.isIssueOf":"Numery czasopisma", + "relationships.isJournalIssueOf":"Numer czasopisma", + "relationships.isJournalOf":"Czasopisma", + "relationships.isOrgUnitOf":"Jednostki organizacyjne", + "relationships.isPersonOf":"Autorzy", + "relationships.isProjectOf":"Projekty badawcze", + "relationships.isPublicationOf":"Publikacje", + "relationships.isPublicationOfJournalIssue":"ArtykuÅ‚y", + "relationships.isSingleJournalOf":"Czasopismo", + "relationships.isSingleVolumeOf":"Tom czasopisma", + "relationships.isVolumeOf":"Tomy czasopisma", + "relationships.isContributorOf":"Autorzy", + "relationships.isContributorOf.OrgUnit":"Autor (Jednostka organizacyjna)", + "relationships.isContributorOf.Person":"Autor", + "relationships.isFundingAgencyOf.OrgUnit":"Instytucja finansujÄ…ca", + "repository.image.logo":"Logo repozytorium", + "repository.title.prefix":"DSpace Angular :: ", + "researcher.profile.action.processing":"Procesowanie...", + "researcher.profile.associated":"Przypisanie profilu badacza", + "researcher.profile.create.new":"Utwórz nowy", + "researcher.profile.create.success":"Profil badacza zostaÅ‚ utworzony", + "researcher.profile.create.fail":"WystÄ…piÅ‚ bÅ‚Ä…d poczas tworzenia profilu badacza.", + "researcher.profile.delete":"UsuÅ„", + "researcher.profile.expose":"Ujawnij", + "researcher.profile.hide":"Ukryj", + "researcher.profile.not.associated":"Profil badacza nie zostaÅ‚ jeszcze przypisany", + "researcher.profile.view":"Widok", + "researcher.profile.private.visibility":"PRYWATNY", + "researcher.profile.public.visibility":"PUBLICZNY", + "researcher.profile.status":"Status:", + "researcherprofile.claim.not-authorized":"Nie masz uprawnieÅ„, aby wystÄ…pić o tÄ™ pozycjÄ™. Aby otrzymać wiÄ™cej szczegółów, skontaktuj siÄ™ z administratorami.", + "researcherprofile.error.claim.body":"WystÄ…piÅ‚ bÅ‚Ä…d podczas wystÄ…pienia z proÅ›bÄ… o przypisanie profilu. Spróbuj ponownie później.", + "researcherprofile.error.claim.title":"BÅ‚Ä…d", + "researcherprofile.success.claim.body":"WystÄ…pienie z proÅ›bÄ… o przypisanie profilu udane", + "researcherprofile.success.claim.title":"Sukces", + "repository.title.prefixDSpace":"DSpace Angular ::", + "resource-policies.add.button":"Dodaj", + "resource-policies.add.for.":"Dodaj nowÄ… politykÄ™", + "resource-policies.add.for.bitstream":"Dodaj nowÄ… politykÄ™ dla plików", + "resource-policies.add.for.bundle":"Dodaj nowÄ… politykÄ™ paczek", + "resource-policies.add.for.item":"Dodaj nowÄ… politykÄ™ pozycji", + "resource-policies.add.for.community":"Dodaj nowÄ… politykÄ™ zbioru", + "resource-policies.add.for.collection":"Dodaj nowÄ… politykÄ™ kolekcji", + "resource-policies.create.page.heading":"Utwórz nowÄ… politykÄ™ zasobu dla ", + "resource-policies.create.page.failure.content":"WystÄ…piÅ‚ bÅ‚Ä…d podczas dodawania polityki zasobów.", + "resource-policies.create.page.success.content":"DziaÅ‚anie powiodÅ‚o siÄ™", + "resource-policies.create.page.title":"Utwórz nowÄ… politykÄ™ zasobu", + "resource-policies.delete.btn":"UsuÅ„ zaznaczone", + "resource-policies.delete.btn.title":"UsuÅ„ zaznaczone polityki zasobów", + "resource-policies.delete.failure.content":"WystÄ…piÅ‚ bÅ‚Ä…d podczas usuwania wybranych polityk zasobów.", + "resource-policies.delete.success.content":"DziaÅ‚anie powiodÅ‚o siÄ™", + "resource-policies.edit.page.heading":"Edytuj politykÄ™ zasobu ", + "resource-policies.edit.page.failure.content":"WystÄ…piÅ‚ bÅ‚Ä…d poczas edytowania polityki zasobu.", + "resource-policies.edit.page.success.content":"DziaÅ‚anie udaÅ‚o siÄ™", + "resource-policies.edit.page.title":"Edytuj politykÄ™ zasobu", + "resource-policies.form.action-type.label":"Wybierz ten typ akcji", + "resource-policies.form.action-type.required":"Musisz wybrać akcjÄ™ polityki zasobu.", + "resource-policies.form.eperson-group-list.label":"Użytkownik lub grupa, która otrzyma uprawnienia.", + "resource-policies.form.eperson-group-list.select.btn":"Wybierz", + "resource-policies.form.eperson-group-list.tab.eperson":"Wyszukaj użytkownika", + "resource-policies.form.eperson-group-list.tab.group":"Wyszukaj grupÄ™", + "resource-policies.form.eperson-group-list.table.headers.action":"Akcja", + "resource-policies.form.eperson-group-list.table.headers.id":"ID", + "resource-policies.form.eperson-group-list.table.headers.name":"Nazwa", + "resource-policies.form.date.end.label":"Data zakoÅ„czenia", + "resource-policies.form.date.start.label":"Data rozpoczÄ™cia", + "resource-policies.form.description.label":"Opis", + "resource-policies.form.name.label":"Nazwa", + "resource-policies.form.policy-type.label":"Wybierz typ polityki", + "resource-policies.form.policy-type.required":"Musisz wybrać typ polityki zasobu.", + "resource-policies.table.headers.action":"Akcja", + "resource-policies.table.headers.date.end":"Data zakoÅ„czenia", + "resource-policies.table.headers.date.start":"Data rozpoczÄ™cia", + "resource-policies.table.headers.edit":"Edytuj", + "resource-policies.table.headers.edit.group":"Edytuj grupÄ™", + "resource-policies.table.headers.edit.policy":"Edytuj politykÄ™", + "resource-policies.table.headers.eperson":"Użytkownik", + "resource-policies.table.headers.group":"Grupa", + "resource-policies.table.headers.id":"ID", + "resource-policies.table.headers.name":"Nazwa", + "resource-policies.table.headers.policyType":"typ", + "resource-policies.table.headers.title.for.bitstream":"Polityki dla plików", + "resource-policies.table.headers.title.for.bundle":"Polityki dla paczek", + "resource-policies.table.headers.title.for.item":"Polityki dla pozycji", + "resource-policies.table.headers.title.for.community":"Polityki dla zbioru", + "resource-policies.table.headers.title.for.collection":"Polityki dla kolekcji", + "search.description":"", + "search.switch-configuration.title":"Pokaż", + "search.title":"Szukaj", + "search.breadcrumbs":"Szukaj", + "search.search-form.placeholder":"Szukaj w repozytorium...", + "search.filters.applied.f.author":"Autor", + "search.filters.applied.f.dateIssued.max":"Data zakoÅ„czenia", + "search.filters.applied.f.dateIssued.min":"Data rozpoczÄ™cia", + "search.filters.applied.f.dateSubmitted":"Data zgÅ‚oszenia", + "search.filters.applied.f.discoverable":"Ukryty", + "search.filters.applied.f.entityType":"Typ pozycji", + "search.filters.applied.f.has_content_in_original_bundle":"Ma przypisane pliki", + "search.filters.applied.f.itemtype":"Typ", + "search.filters.applied.f.namedresourcetype":"Status", + "search.filters.applied.f.subject":"Temat", + "search.filters.applied.f.submitter":"ZgÅ‚aszajÄ…cy", + "search.filters.applied.f.jobTitle":"Stanowisko", + "search.filters.applied.f.birthDate.max":"Data zakoÅ„czenia tworzenia", + "search.filters.applied.f.birthDate.min":"Data rozpoczÄ™cia tworzenia", + "search.filters.applied.f.withdrawn":"Wycofane", + "search.filters.filter.author.head":"Autor", + "search.filters.filter.author.placeholder":"Autor", + "search.filters.filter.author.label":"Wyszukaj autora", + "search.filters.filter.birthDate.head":"Data urodzenia", + "search.filters.filter.birthDate.placeholder":"Data urodzenia", + "search.filters.filter.birthDate.label":"Wyszukaj datÄ™ urodzenia", + "search.filters.filter.collapse":"Ukryj filtr", + "search.filters.filter.creativeDatePublished.head":"Data opublikowania", + "search.filters.filter.creativeDatePublished.placeholder":"Data opublikowania", + "search.filters.filter.creativeDatePublished.label":"Wyszukaj datÄ™ opublikowania", + "search.filters.filter.creativeWorkEditor.head":"Redaktor", + "search.filters.filter.creativeWorkEditor.placeholder":"Redaktor", + "search.filters.filter.creativeWorkEditor.label":"Wyszukaj redaktora", + "search.filters.filter.creativeWorkKeywords.head":"SÅ‚owo kluczowe", + "search.filters.filter.creativeWorkKeywords.placeholder":"SÅ‚owo kluczowe", + "search.filters.filter.creativeWorkKeywords.label":"Wyszukaj temat", + "search.filters.filter.creativeWorkPublisher.head":"Wydawca", + "search.filters.filter.creativeWorkPublisher.placeholder":"Wydawca", + "search.filters.filter.creativeWorkPublisher.label":"Wyszukaj wydawcÄ™", + "search.filters.filter.dateIssued.head":"Data", + "search.filters.filter.dateIssued.max.placeholder":"Data maksymalna", + "search.filters.filter.dateIssued.max.label":"Koniec", + "search.filters.filter.dateIssued.min.placeholder":"Data minimalna", + "search.filters.filter.dateIssued.min.label":"Start", + "search.filters.filter.dateSubmitted.head":"Data zgÅ‚oszenia", + "search.filters.filter.dateSubmitted.placeholder":"Data zgÅ‚oszenia", + "search.filters.filter.dateSubmitted.label":"Wyszukaj datÄ™ zgÅ‚oszenia", + "search.filters.filter.discoverable.head":"Ukryty", + "search.filters.filter.withdrawn.head":"Wycofane", + "search.filters.filter.entityType.head":"Typ pozycji", + "search.filters.filter.entityType.placeholder":"Typ pozycji", + "search.filters.filter.entityType.label":"Wyszukaj typ pozycji", + "search.filters.filter.expand":"RozwiÅ„ filtr", + "search.filters.filter.has_content_in_original_bundle.head":"Ma przypisane pliki", + "search.filters.filter.itemtype.head":"Typ", + "search.filters.filter.itemtype.placeholder":"Typ", + "search.filters.filter.itemtype.label":"Wyszukaj typ", + "search.filters.filter.jobTitle.head":"Stanowisko", + "search.filters.filter.jobTitle.placeholder":"Stanowisko", + "search.filters.filter.jobTitle.label":"Wyszukaj stanowisko", + "search.filters.filter.knowsLanguage.head":"Znajomość jÄ™zyka", + "search.filters.filter.knowsLanguage.placeholder":"Znajomość jÄ™zyka", + "search.filters.filter.knowsLanguage.label":"Wyszukaj wg znajomoÅ›ci jÄ™zyka", + "search.filters.filter.namedresourcetype.head":"Status", + "search.filters.filter.namedresourcetype.placeholder":"Status", + "search.filters.filter.namedresourcetype.label":"Wyszukaj status", + "search.filters.filter.objectpeople.head":"Osoby", + "search.filters.filter.objectpeople.placeholder":"Osoby", + "search.filters.filter.objectpeople.label":"Wyszukaj użytkowników", + "search.filters.filter.organizationAddressCountry.head":"Kraj", + "search.filters.filter.organizationAddressCountry.placeholder":"Kraj", + "search.filters.filter.organizationAddressCountry.label":"Wyszukaj kraj", + "search.filters.filter.organizationAddressLocality.head":"Miasto", + "search.filters.filter.organizationAddressLocality.placeholder":"Miasto", + "search.filters.filter.organizationAddressLocality.label":"Wyszukaj miasto", + "search.filters.filter.organizationFoundingDate.head":"Data zaÅ‚ożenia", + "search.filters.filter.organizationFoundingDate.placeholder":"Data zaÅ‚ożenia", + "search.filters.filter.organizationFoundingDate.label":"Wyszukaj datÄ™ zaÅ‚ożenia", + "search.filters.filter.scope.head":"Zakres", + "search.filters.filter.scope.placeholder":"Filtr zakresu", + "search.filters.filter.scope.label":"Wyszukaj filtr zakresu", + "search.filters.filter.show-less":"Pokaż mniej", + "search.filters.filter.show-more":"Pokaż wiÄ™cej", + "search.filters.filter.subject.head":"Temat", + "search.filters.filter.subject.placeholder":"Temat", + "search.filters.filter.subject.label":"Wyszukaj temat", + "search.filters.filter.submitter.head":"ZgÅ‚aszajÄ…cy", + "search.filters.filter.submitter.placeholder":"ZgÅ‚aszajÄ…cy", + "search.filters.filter.submitter.label":"Wyszukaj zgÅ‚aszajÄ…cego", + "search.filters.entityType.JournalIssue":"Numer czasopisma", + "search.filters.entityType.JournalVolume":"Tom czasopisma", + "search.filters.entityType.OrgUnit":"Jednostka organizacyjna", + "search.filters.has_content_in_original_bundle.true":"Tak", + "search.filters.has_content_in_original_bundle.false":"Nie", + "search.filters.discoverable.true":"Nie", + "search.filters.discoverable.false":"Tak", + "search.filters.withdrawn.true":"Tak", + "search.filters.withdrawn.false":"Nie", + "search.filters.head":"Filtry", + "search.filters.reset":"Resetuj filtry", + "search.filters.search.submit":"Zastosuj", + "search.form.search":"Wyszukaj", + "search.form.search_dspace":"W repozytorium", + "search.form.scope.all":"W caÅ‚ym DSpace", + "search.results.head":"Wyniki wyszukiwania", + "default.search.results.head":"Wyniki wyszukiwania", + "search.results.no-results":"Twoj wyszukiwanie nie zwróciÅ‚o żadnych rezultatów. Masz problem ze znalezieniem tego czego szukasz? Spróbuj użyć", + "search.results.no-results-link":"fraz podobnych do Twojego wyszukiwania", + "search.results.empty":"Twoje wyszukiwanie nie zwróciÅ‚o żadnych rezultatów.", + "search.sidebar.close":"Wróć do wyników wyszukiwania", + "search.sidebar.filters.title":"Filtry", + "search.sidebar.open":"NarzÄ™dzia wyszukiwania", + "search.sidebar.results":"wyniki", + "search.sidebar.settings.rpp":"Wyników na stronie", + "search.sidebar.settings.sort-by":"Sortuj wedÅ‚ug", + "search.sidebar.settings.title":"Ustawienia", + "search.view-switch.show-detail":"WyÅ›wietl widok szczegółowy", + "search.view-switch.show-grid":"WyÅ›wietl jako siatkÄ™", + "search.view-switch.show-list":"WyÅ›wietl jako listÄ™", + "sorting.ASC":"RosnÄ…co", + "sorting.DESC":"MalejÄ…co", + "sorting.dc.title.ASC":"TytuÅ‚ami rosnÄ…co", + "sorting.dc.title.DESC":"TytuÅ‚ami malejÄ…co", + "sorting.score.ASC":"Najmniej trafne", + "sorting.score.DESC":"Najbardziej trafne", + "sorting.dc.date.issued.ASC":"Data wydania rosnÄ…co", + "sorting.dc.date.issued.DESC":"Data wydania malejÄ…co", + "sorting.dc.date.accessioned.ASC":"Data dostÄ™pu rosnÄ…co", + "sorting.dc.date.accessioned.DESC":"Data dostÄ™pu malejÄ…co", + "sorting.lastModified.ASC":"Ostatnia modyfikacja rosnÄ…co", + "sorting.lastModified.DESC":"Ostatnia modyfikacja malejÄ…co", + "statistics.title":"Statystyki", + "statistics.header":"Statystyki dla {{ scope }}", + "statistics.breadcrumbs":"Statystyki", + "statistics.page.no-data":"Brak dostÄ™pnych danych", + "statistics.table.no-data":"Brak dostÄ™pnych danych", + "statistics.table.header.views":"WyÅ›wietlenia", + "submission.edit.breadcrumbs":"Edytuj zgÅ‚oszenie", + "submission.edit.title":"Edytuj zgÅ‚oszenie", + "submission.general.cancel":"Anuluj", + "submission.general.cannot_submit":"Nie masz uprawnieÅ„, aby utworzyć nowe zgÅ‚oszenie.", + "submission.general.deposit":"Deponuj", + "submission.general.discard.confirm.cancel":"Anuluj", + "submission.general.discard.confirm.info":"Czy na pewno? To dziaÅ‚anie nie może zostać cofniÄ™te.", + "submission.general.discard.confirm.submit":"Tak, na pewno", + "submission.general.discard.confirm.title":"Odrzuć zgÅ‚oszenie", + "submission.general.discard.submit":"Odrzuć", + "submission.general.info.saved":"Zapisane", + "submission.general.info.pending-changes":"Niezapisane zmiany", + "submission.general.save":"Zapisz", + "submission.general.save-later":"Zapisz wersjÄ™ roboczÄ…", + "submission.import-external.page.title":"Importuj metdane z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title":"Importuj metadane z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title.Journal":"Importuj czasopismo z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title.JournalIssue":"Importuj numer czasopisma z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title.JournalVolume":"Importuj tom czasopisma z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title.OrgUnit":"Importuj wydawcÄ™ z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title.Person":"Importuj osobÄ™ z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title.Project":"Importuj projekt z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title.Publication":"Importuj publikacjÄ™ z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title.none":"Importuj metadane z zewnÄ™trznego źródÅ‚a", + "submission.import-external.page.hint":"Enter a query above to find items from the web to import in to DSpace.", + "submission.import-external.back-to-my-dspace":"Powrót do MyDSpace", + "submission.import-external.search.placeholder":"Wyszukaj zewnÄ™trzne źródÅ‚a danych", + "submission.import-external.search.button":"Szukaj", + "submission.import-external.search.button.hint":"Zacznij wpisywać frazÄ™, aby wyszukać", + "submission.import-external.search.source.hint":"Wybierz zewnÄ™trzne źródÅ‚o", + "submission.import-external.source.ads":"NASA/ADS", + "submission.import-external.source.arxiv":"arXiv", + "submission.import-external.source.cinii":"CiNii", + "submission.import-external.source.crossref":"CrossRef", + "submission.import-external.source.loading":"Å‚adowanie...", + "submission.import-external.source.sherpaJournal":"Czasopisma w SHERPA", + "submission.import-external.source.sherpaJournalIssn":"Czasopisma w SHERPA wg ISSN", + "submission.import-external.source.sherpaPublisher":"Wydawcy w SHERPA", + "submission.import-external.source.openAIREFunding":"Finansowanie OpenAIRE API", + "submission.import-external.source.orcid":"ORCID", + "submission.import-external.source.orcidWorks":"ORCID", + "submission.import-external.source.pubmed":"Pubmed", + "submission.import-external.source.pubmedeu":"Pubmed Europe", + "submission.import-external.source.lcname":"Nazwy Biblioteki Kongresu", + "submission.import-external.source.scielo":"SciELO", + "submission.import-external.source.scopus":"Scopus", + "submission.import-external.source.vufind":"VuFind", + "submission.import-external.source.wos":"Web Of Science", + "submission.import-external.source.epo":"Europejski UrzÄ…d Patentowy (EPO)", + "submission.import-external.preview.title.Journal":"PodglÄ…d czasopisma", + "submission.import-external.preview.title.OrgUnit":"PodglÄ…d organizacji", + "submission.import-external.preview.title.Person":"PodglÄ…d osoby", + "submission.import-external.preview.title.Project":"PodglÄ…d projektu", + "submission.import-external.preview.title.Publication":"PodglÄ…d publikacji", + "submission.import-external.preview.subtitle":"Metadane poniżej zostaÅ‚y zaimportowane z zewnÄ™trznego źródÅ‚a. Niektóre pola zostanÄ… uzupeÅ‚nione automatycznie, kiedy rozpoczniesz zgÅ‚aszanie pozycji.", + "submission.import-external.preview.button.import":"Rozpocznij zgÅ‚oszenie", + "submission.import-external.preview.error.import.title":"BÅ‚Ä…d zgÅ‚oszenia", + "submission.import-external.preview.error.import.body":"WystÄ…piÅ‚ bÅ‚Ä…d podczas procesu importowania pozycji z zewnÄ™trznego źródÅ‚a.", + "submission.sections.describe.relationship-lookup.close":"Zamknij", + "submission.sections.describe.relationship-lookup.external-source.added":"UdaÅ‚o siÄ™ dodać wpis do selekcji", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.isAuthorOfPublication":"Importuj zdalnego autora", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal":"Importuj zdalne czasopismo", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Issue":"Importuj zdalny numer czasopisma", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Volume":"Importuj zdalny tom czasopisma", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.isProjectOfPublication":"Projekt", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.added.new-entity":"Nowy typ danych dodany!", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.title":"Projekt", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.openAIREFunding":"Finansowanie OpenAIRE API", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.title":"Importuj zdalnego autora", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Person":"Importuj zdalnÄ… osobÄ™", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Product":"Importuj zdalny produkt", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Equipment":"Importuj zdalnÄ… aparaturÄ™ badawczÄ…", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Event":"Importuj zdalne wydarzenie", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Funding":"Importuj zdalnÄ… instytucjÄ™ finansujÄ…cÄ…", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.OrgUnit":"Importuj zdalnego wydawcÄ™", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Patent":"Importuj zdalnie patent", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Project":"Importuj zdalnie projekt", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Publication":"Importuj zdalnie publikacjÄ™", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.added.local-entity":"UdaÅ‚o siÄ™ dodać autora do selekcji", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.added.new-entity":"UdaÅ‚o siÄ™ zaimportować i dodać zewnÄ™trznego autora do selekcji", + "submission.sections.describe.relationship-lookup.external-source.import-modal.authority":"NadrzÄ™dność", + "submission.sections.describe.relationship-lookup.external-source.import-modal.authority.new":"Importuj jako nowÄ…, lokalnÄ…, nadrzÄ™dnÄ… pozycjÄ™", + "submission.sections.describe.relationship-lookup.external-source.import-modal.cancel":"Anuluj", + "submission.sections.describe.relationship-lookup.external-source.import-modal.collection":"Wybierz kolekcjÄ™ do zaimportowania nowych pozycji", + "submission.sections.describe.relationship-lookup.external-source.import-modal.entities":"Typ danych", + "submission.sections.describe.relationship-lookup.external-source.import-modal.entities.new":"Importuj jako nowy lokalny typ danych", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.lcname":"Importuj z LC Name", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.orcid":"Importuj z ORCID", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaJournal":"Importuj z Sherpa Journal", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaPublisher":"Importuj z Sherpa Publisher", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.pubmed":"Importuj z PubMed", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.arxiv":"Importuj z arXiv", + "submission.sections.describe.relationship-lookup.external-source.import-modal.import":"Import", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.title":"Importuj zdalne czasopismo", + "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.new-entity":"Successfully imported and added external journal to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.title":"Importuj zdalny numer czasopisma", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.local-entity":"UdaÅ‚o siÄ™ dodać lokalne czasopismo do zaznaczenia", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.new-entity":"UdaÅ‚o siÄ™ zaimportować i dodać czasopismo zewnÄ™trzne do zaznaczenia", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.title":"Importuj zdalny numer czasopisma", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.local-entity":"UdaÅ‚o siÄ™ dodać lokalny numer czasopismo do zaznaczenia", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.new-entity":"UdaÅ‚o siÄ™ zaimportować i dodać zewnÄ™trzny numer czasopisma do zaznaczenia", + "submission.sections.describe.relationship-lookup.external-source.import-modal.select":"Wybierz lokalne powiÄ…zanie:", + "submission.sections.describe.relationship-lookup.search-tab.deselect-all":"Odznacz wszystko", + "submission.sections.describe.relationship-lookup.search-tab.deselect-page":"Odznacz stronÄ™", + "submission.sections.describe.relationship-lookup.search-tab.loading":"Åadowanie...", + "submission.sections.describe.relationship-lookup.search-tab.placeholder":"Wyszukaj zapytanie", + "submission.sections.describe.relationship-lookup.search-tab.search":"Zastosuj", + "submission.sections.describe.relationship-lookup.search-tab.search-form.placeholder":"Wyszukaj...", + "submission.sections.describe.relationship-lookup.search-tab.select-all":"Zaznacz wszystko", + "submission.sections.describe.relationship-lookup.search-tab.select-page":"Zaznacz stronÄ™", + "submission.sections.describe.relationship-lookup.selected":"Zaznacz {{ size }} pozycji", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isAuthorOfPublication":"Autorzy lokalni ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalOfPublication":"Czasopisma lokalne ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Project":"Projekty lokalne ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Publication":"Publikacje lokalne ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Person":"Autorzy lokalni ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.OrgUnit":"Lokalne jednostki organizacyjne ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.DataPackage":"Lokalne paczki danych ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.DataFile":"Lokalne pliki danych ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Journal":"Lokalne czasopisma ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalIssueOfPublication":"Lokalne numery czasopism ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.JournalIssue":"Lokalne numery czasopism ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalVolumeOfPublication":"Lokalne tomy czasopism ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.JournalVolume":"Lokalne tomy czasopism ({{ 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.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.pubmed":"PubMed ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.arxiv":"arXiv ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfPublication":"Wyszukaj instytucje finansujÄ…ce", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingOfPublication":"Wyszukaj finansowanie", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isChildOrgUnitOf":"Wyszukaj jednostki organizacyjne", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.openAIREFunding":"Finansowanie OpenAIRE API", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isProjectOfPublication":"Projekty", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfProject":"Instytucja finansujÄ…ca projekt", + "submission.sections.describe.relationship-lookup.selection-tab.title.openAIREFunding":"Finansowanie OpenAIRE API", + "submission.sections.describe.relationship-lookup.selection-tab.title.isProjectOfPublication":"Projekt", + "submission.sections.describe.relationship-lookup.title.isProjectOfPublication":"Projekty", + "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfProject":"Instytucja finansujÄ…ca projekt", + "submission.sections.describe.relationship-lookup.selection-tab.search-form.placeholder":"Wyszukaj...", + "submission.sections.describe.relationship-lookup.selection-tab.tab-title":"Aktualne zaznaczenie ({{ count }})", + "submission.sections.describe.relationship-lookup.title.isJournalIssueOfPublication":"Numery czasopisma", + "submission.sections.describe.relationship-lookup.title.JournalIssue":"Numery czasopisma", + "submission.sections.describe.relationship-lookup.title.isJournalVolumeOfPublication":"Tomy czasopisma", + "submission.sections.describe.relationship-lookup.title.JournalVolume":"Tomy czasopisma", + "submission.sections.describe.relationship-lookup.title.isJournalOfPublication":"Czasopisma", + "submission.sections.describe.relationship-lookup.title.isAuthorOfPublication":"Autorzy", + "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfPublication":"Instytucja finansujÄ…ca", + "submission.sections.describe.relationship-lookup.title.Project":"Projekty", + "submission.sections.describe.relationship-lookup.title.Publication":"Publikacje", + "submission.sections.describe.relationship-lookup.title.Person":"Autorzy", + "submission.sections.describe.relationship-lookup.title.OrgUnit":"Jednostki organizacyjne", + "submission.sections.describe.relationship-lookup.title.DataPackage":"Paczki danych", + "submission.sections.describe.relationship-lookup.title.DataFile":"Pliki danych", + "submission.sections.describe.relationship-lookup.title.Funding Agency":"Instytucja finansujÄ…ca", + "submission.sections.describe.relationship-lookup.title.isFundingOfPublication":"Finansowanie", + "submission.sections.describe.relationship-lookup.title.isChildOrgUnitOf":"NadrzÄ™dna jednostka organizacyjna", + "submission.sections.describe.relationship-lookup.search-tab.toggle-dropdown":"PrzeÅ‚Ä…cz na listÄ™ rozwijanÄ…", + "submission.sections.describe.relationship-lookup.selection-tab.settings":"Ustawienia", + "submission.sections.describe.relationship-lookup.selection-tab.no-selection":"Twoje zaznaczenie jest puste.", + "submission.sections.describe.relationship-lookup.selection-tab.title.isAuthorOfPublication":"Wybrani autorzy", + "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalOfPublication":"Wybrane czasopisma", + "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalVolumeOfPublication":"Wybrane tomy czasopisma", + "submission.sections.describe.relationship-lookup.selection-tab.title.Project":"Wybrane projekty", + "submission.sections.describe.relationship-lookup.selection-tab.title.Publication":"Wybrane publikacje", + "submission.sections.describe.relationship-lookup.selection-tab.title.Person":"Wybrani autorzy", + "submission.sections.describe.relationship-lookup.selection-tab.title.OrgUnit":"Wybrane jednostki organizacyjne", + "submission.sections.describe.relationship-lookup.selection-tab.title.DataPackage":"Wybrane pakiety danych", + "submission.sections.describe.relationship-lookup.selection-tab.title.DataFile":"Wybrane pliki danych", + "submission.sections.describe.relationship-lookup.selection-tab.title.Journal":"Wybrane czasopisma", + "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalIssueOfPublication":"Wybrany numer wydania", + "submission.sections.describe.relationship-lookup.selection-tab.title.JournalVolume":"Wybrany tom czasopisma", + "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingAgencyOfPublication":"Wybrane instytucje finansujÄ…ce", + "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingOfPublication":"Wybrane finansowanie", + "submission.sections.describe.relationship-lookup.selection-tab.title.JournalIssue":"Wybrany numer wydania", + "submission.sections.describe.relationship-lookup.selection-tab.title.isChildOrgUnitOf":"Wybrana jednostka organizacyjna", + "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaJournal":"Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.crossref":"Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaPublisher":"Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.orcid":"Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.orcidv2":"Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.lcname":"Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.pubmed":"Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.arxiv":"Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.epo":"Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.scopus":"Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.scielo":"Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.wos":"Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title":"Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.name-variant.notification.content":"Czy chcesz zapisać \"{{ value }}\" jako wariant imienia dla tego użytkownika, aby Ty lub inni użytkownicy mogli używać tego wariantu w przyszÅ‚ych zgÅ‚oszeniach?. JeÅ›li nie, nadal możesz użyć tego wariantu w tym zgÅ‚oszeniu.", + "submission.sections.describe.relationship-lookup.name-variant.notification.confirm":"Zapisz nowy wariant imienia", + "submission.sections.describe.relationship-lookup.name-variant.notification.decline":"Użyj tylko w tym zgÅ‚oszeniu", + "submission.sections.ccLicense.type":"Typ licencji", + "submission.sections.ccLicense.select":"Wybierz typ licencji…", + "submission.sections.ccLicense.change":"ZmieÅ„ typ licencji…", + "submission.sections.ccLicense.none":"Brak dostÄ™pnych licencji", + "submission.sections.ccLicense.option.select":"Wybierz opcję…", + "submission.sections.ccLicense.link":"Wybrano licencjÄ™:", + "submission.sections.ccLicense.confirmation":"Udzielam powyższej licencji", + "submission.sections.general.add-more":"Dodaj wiÄ™cej", + "submission.sections.general.collection":"Kolekcja", + "submission.sections.general.deposit_error_notice":"WystÄ…piÅ‚ bÅ‚Ä…d podczas zgÅ‚aszania pozycji. Spróbuj ponownie później.", + "submission.sections.general.deposit_success_notice":"UdaÅ‚o siÄ™ wprowadzić pozycjÄ™.", + "submission.sections.general.discard_error_notice":"WystÄ…piÅ‚ bÅ‚Ä…d podczas odrzucania pozycji. Spróbuj ponownie później.", + "submission.sections.general.discard_success_notice":"UdaÅ‚o siÄ™ odrzucić pozycjÄ™.", + "submission.sections.general.metadata-extracted":"Nowe metadane zostany rozpakowane i dodane do sekcji <strong>{{sectionId}}</strong>.", + "submission.sections.general.metadata-extracted-new-section":"Nowa sekcja <strong>{{sectionId}}</strong> zostaÅ‚a dodana do zgÅ‚oszenia.", + "submission.sections.general.no-collection":"Nie znaleziono kolekcji", + "submission.sections.general.no-sections":"Opcje niedostÄ™pne", + "submission.sections.general.save_error_notice":"WystÄ…piÅ‚ bÅ‚Ä…d podczas zapisywania numeru. Spróbuj ponownie później. Po odÅ›wieżeniu strony niezapisane zmiany mogÄ… zostać utracone.", + "submission.sections.general.save_success_notice":"UdaÅ‚o siÄ™ zapisać zgÅ‚oszenie.", + "submission.sections.general.search-collection":"Szukaj kolekcji", + "submission.sections.general.sections_not_valid":"Niektóre sekcje sÄ… niekompletne.", + "submission.sections.submit.progressbar.CClicense":"Licencja Creative Commons", + "submission.sections.submit.progressbar.describe.recycle":"Odzyskaj", + "submission.sections.submit.progressbar.describe.stepcustom":"Opisz", + "submission.sections.submit.progressbar.describe.stepone":"Opisz", + "submission.sections.submit.progressbar.describe.steptwo":"Opisz", + "submission.sections.submit.progressbar.detect-duplicate":"Potencjalne duplikaty", + "submission.sections.submit.progressbar.license":"Zdeponuj licencjÄ™", + "submission.sections.submit.progressbar.upload":"PrzeÅ›lij pliki", + "submission.sections.status.errors.title":"BÅ‚Ä™dy", + "submission.sections.status.valid.title":"Poprawność", + "submission.sections.status.warnings.title":"Ostrzeżenia", + "submission.sections.status.errors.aria":"ma bÅ‚Ä™dy", + "submission.sections.status.valid.aria":"jest poprawne", + "submission.sections.status.warnings.aria":"ma ostrzeżenia", + "submission.sections.toggle.open":"Otwórz sekcjÄ™", + "submission.sections.toggle.close":"Zamknij sekcjÄ™", + "submission.sections.toggle.aria.open":"RozwiÅ„ sekcjÄ™ {{sectionHeader}}", + "submission.sections.toggle.aria.close":"ZwiÅ„ sekcjÄ™ {{sectionHeader}}", + "submission.sections.upload.delete.confirm.cancel":"Anuluj", + "submission.sections.upload.delete.confirm.info":"Czy na pewno? To dziaÅ‚anie nie może zostać cofniÄ™te.", + "submission.sections.upload.delete.confirm.submit":"Tak, na pewno", + "submission.sections.upload.delete.confirm.title":"UsuÅ„ plik", + "submission.sections.upload.delete.submit":"UsuÅ„", + "submission.sections.upload.download.title":"Pobierz plik", + "submission.sections.upload.drop-message":"Upuść pliki, aby zaÅ‚Ä…czyć je do tej pozycji", + "submission.sections.upload.edit.title":"Edytuj plik", + "submission.sections.upload.form.access-condition-label":"Typ dostÄ™pu", + "submission.sections.upload.form.date-required":"Data jest wymagana.", + "submission.sections.upload.form.date-required-from":"Data przyznania dostÄ™pu od jest wymagana.", + "submission.sections.upload.form.date-required-until":"Data przyznania dostÄ™pu do jest wymagana.", + "submission.sections.upload.form.from-label":"Pozwól na dostÄ™p od", + "submission.sections.upload.form.from-placeholder":"Od", + "submission.sections.upload.form.group-label":"Grupa", + "submission.sections.upload.form.group-required":"Grupa jest wymagana", + "submission.sections.upload.form.until-label":"Pozwól na dostÄ™p do", + "submission.sections.upload.form.until-placeholder":"Do", + "submission.sections.upload.header.policy.default.nolist":"Pliki wgrane do kolekcji {{collectionName}} bÄ™dÄ… dostÄ™pne dla poniższych grup:", + "submission.sections.upload.header.policy.default.withlist":"Zwróć uwagÄ™ na to, że pliki w kolekcji {{collectionName}} bÄ™dÄ… dostÄ™pne dla poniższych grup, z wyjÄ…tkiem tych, które zostaÅ‚y wyÅ‚Ä…czone z dostÄ™pu:", + "submission.sections.upload.info":"Tutaj znajdujÄ… siÄ™ wszystkie pliki dodane w tym momencie do pozycji. Możesz zaktualizować metadane pliku i warunki dostÄ™pu lub <strong>przesÅ‚ać dodatkowe pliki, przeciÄ…gajÄ…c i opuszczajÄ…c je gdziekolwiek na tej stronie</strong>", + "submission.sections.upload.no-entry":"Nie", + "submission.sections.upload.no-file-uploaded":"Pliki nie zostaÅ‚y jeszcze wgrane.", + "submission.sections.upload.save-metadata":"Zapisz metadane", + "submission.sections.upload.undo":"Anuluj", + "submission.sections.upload.upload-failed":"PrzesyÅ‚anie nieudane", + "submission.sections.upload.upload-successful":"PrzesyÅ‚anie udane", + "submission.submit.breadcrumbs":"Nowe zgÅ‚oszenie", + "submission.submit.title":"Nowe zgÅ‚oszenie", + "submission.workflow.generic.delete":"UsuÅ„", + "submission.workflow.generic.delete-help":"JeÅ›li chcesz odrzucić tÄ™ pozycjÄ™, wybierz \"Delete\". BÄ™dzie wymagane potwierdzenie tej decyzji.", + "submission.workflow.generic.edit":"Edytuj", + "submission.workflow.generic.edit-help":"Wybierz tÄ™ opcjÄ™, aby zmienić metadane pozycji.", + "submission.workflow.generic.view":"PodglÄ…d", + "submission.workflow.generic.view-help":"Wybierz tÄ™ opcjÄ™, aby wyÅ›wietlić metadane pozycji.", + "submission.workflow.tasks.claimed.approve":"Zatwierdź", + "submission.workflow.tasks.claimed.approve_help":"JeÅ›li ta pozycja ma zostać zatwierdzona i wprowadzona do kolekcji, wybierz \"Approve\".", + "submission.workflow.tasks.claimed.edit":"Edytuj", + "submission.workflow.tasks.claimed.edit_help":"Wybierz tÄ™ opcjÄ™, aby zmienić metadane pozycji.", + "submission.workflow.tasks.claimed.reject.reason.info":"ProszÄ™ wpisać powód odrzucenia zgÅ‚oszenia w poniższe pole, wskazujÄ…c, czy zgÅ‚aszajÄ…cy może poprawić problem i ponownie przesÅ‚ać zgÅ‚oszenie.", + "submission.workflow.tasks.claimed.reject.reason.placeholder":"Opisz powód odrzucenia zgÅ‚oszenia", + "submission.workflow.tasks.claimed.reject.reason.submit":"Odrzuć pozycjÄ™", + "submission.workflow.tasks.claimed.reject.reason.title":"Powód", + "submission.workflow.tasks.claimed.reject.submit":"Odrzuć", + "submission.workflow.tasks.claimed.reject_help":"JeÅ›li po przejrzeniu pozycji stwierdzono, że nie nadaje siÄ™ ona do wÅ‚Ä…czenia do kolekcji, wybierz opcjÄ™ \"Reject\". Zostaniesz wtedy poproszony o okreÅ›lenie powodu odrzucenia, i wskazanie czy zgÅ‚aszajÄ…cy powinien wprowadzić zmiany i przesÅ‚ać ponownie pozycjÄ™.", + "submission.workflow.tasks.claimed.return":"Cofnij do puli zadaÅ„", + "submission.workflow.tasks.claimed.return_help":"Cofnij zadanie do puli, aby inny użytkownik mógÅ‚ siÄ™ go podjąć.", + "submission.workflow.tasks.generic.error":"Podczas dziaÅ‚ania wystÄ…piÅ‚ bÅ‚Ä…d...", + "submission.workflow.tasks.generic.processing":"Procesowanie...", + "submission.workflow.tasks.generic.submitter":"ZgÅ‚aszajÄ…cy", + "submission.workflow.tasks.generic.success":"UdaÅ‚o siÄ™", + "submission.workflow.tasks.pool.claim":"Podejmij pracÄ™", + "submission.workflow.tasks.pool.claim_help":"Przypisz to zadanie do siebie.", + "submission.workflow.tasks.pool.hide-detail":"Ukryj szczegóły", + "submission.workflow.tasks.pool.show-detail":"Pokaż szczegóły", + "thumbnail.default.alt":"Miniatura", + "thumbnail.default.placeholder":"Brak miniatury", + "thumbnail.project.alt":"Logo projektu", + "thumbnail.project.placeholder":"Obraz zastÄ™pczy projketu", + "thumbnail.orgunit.alt":"Logo jednostki organizacyjnej", + "thumbnail.orgunit.placeholder":"Obraz zastÄ™pczy jednostki organizacyjnej", + "thumbnail.person.alt":"ZdjÄ™cie profilowe", + "thumbnail.person.placeholder":"Brak zdjÄ™cia profilowego", + "title":"DSpace", + "vocabulary-treeview.header":"Widok drzewka", + "vocabulary-treeview.load-more":"Pokaż wiÄ™cej", + "vocabulary-treeview.search.form.reset":"Resetuj", + "vocabulary-treeview.search.form.search":"Szukaj", + "vocabulary-treeview.search.no-result":"Brak pozycji do wyÅ›wietlenia", + "vocabulary-treeview.tree.description.nsi":"The Norwegian Science Index", + "vocabulary-treeview.tree.description.srsc":"Kategorie tematów badaÅ„", + "uploader.browse":"wyszukaj na swoim urzÄ…dzeniu", + "uploader.drag-message":"PrzeciÄ…gnij i upuść pliki tutaj", + "uploader.delete.btn-title":"UsuÅ„", + "uploader.or":", lub ", + "uploader.processing":"Procesowanie", + "uploader.queue-length":"DÅ‚ugość kolejki", + "virtual-metadata.delete-item.info":"Wybierz typy, dla których chcesz zapisać wirtualne metadane jako rzeczywiste metadane", + "virtual-metadata.delete-item.modal-head":"Wirtualne metadane tego powiÄ…zania", + "virtual-metadata.delete-relationship.modal-head":"Wybierz pozycje, dla których chcesz zapisać wirtualne metadane jako rzeczywiste metadane", + "workflowAdmin.search.results.head":"ZarzÄ…dzaj procesami", + "workflow-item.edit.breadcrumbs":"Edytuj pozycjÄ™ procesu", + "workflow-item.edit.title":"Edytuj pozycjÄ™ procesu", + "workflow-item.delete.notification.success.title":"UsuniÄ™te", + "workflow-item.delete.notification.success.content":"Ten element procesu zostaÅ‚ usuniÄ™ty", + "workflow-item.delete.notification.error.title":"CoÅ› poszÅ‚o nie tak", + "workflow-item.delete.notification.error.content":"Ten element procesu nie mógÅ‚ zostać usuniÄ™ty", + "workflow-item.delete.title":"UsuÅ„ element procesu", + "workflow-item.delete.header":"UsuÅ„ element procesu", + "workflow-item.delete.button.cancel":"Anuluj", + "workflow-item.delete.button.confirm":"UsuÅ„", + "workflow-item.send-back.notification.success.title":"SOdeÅ›lij do zgÅ‚aszajÄ…cego", + "workflow-item.send-back.notification.success.content":"Ten element procesu zostaÅ‚ odesÅ‚any do zgÅ‚aszajÄ…cego", + "workflow-item.send-back.notification.error.title":"CoÅ› poszÅ‚o nie tak", + "workflow-item.send-back.notification.error.content":"Ten element procesu nie mógÅ‚ zostać odesÅ‚any do zgÅ‚aszajÄ…cego", + "workflow-item.send-back.title":"OdeÅ›lij element procesu do zgÅ‚aszajÄ…cego", + "workflow-item.send-back.header":"OdeÅ›lij element procesu do zgÅ‚aszajÄ…cego", + "workflow-item.send-back.button.cancel":"Anuluj", + "workflow-item.send-back.button.confirm":"OdeÅ›lij", + "workflow-item.view.breadcrumbs":"Widok procesu", + "idle-modal.header":"Sesja wkrótce wygaÅ›nie", + "idle-modal.info":"Ze wzglÄ™dów bezpieczeÅ„stwa sesja wygaÅ›nie po {{ timeToExpire }} minutach nieaktywnoÅ›ci. Twoja sesja wkrótce wygaÅ›nie. Czy chcesz jÄ… przedÅ‚użyć albo wylogować siÄ™?", + "idle-modal.log-out":"Wyloguj", + "idle-modal.extend-session":"WydÅ‚uż sesjÄ™", + "workspace.search.results.head":"Twoje zadania", + "orgunit.listelement.badge":"Jednostka organizacyjna", + "orgunit.page.city":"Miasto", + "orgunit.page.country":"Kraj", + "orgunit.page.dateestablished":"Data zaÅ‚ożenia", + "orgunit.page.description":"Opis", + "orgunit.page.edit":"Edytuj pozycjÄ™", + "orgunit.page.id":"ID", + "orgunit.page.titleprefix":"Jednostka organizacyjna: ", + "pagination.options.description":"Opcje strony", + "pagination.results-per-page":"Wyników na stronÄ™", + "pagination.showing.detail":"{{ range }} z {{ total }}", + "pagination.showing.label":"Teraz wyÅ›wietlane ", + "pagination.sort-direction":"Opcje sortowania", + "cookies.consent.purpose.sharing":"UdostÄ™pnianie", + "item.preview.dc.identifier.issn":"ISSN", + "500.page-internal-server-error":"UsÅ‚uga niedostÄ™pna", + "500.help":"Serwer jest tymczasowo niezdolny do obsÅ‚ugi Twojego żądania z powodu przestoju konserwacyjnego lub problemów z przepustowoÅ›ciÄ…. Prosimy spróbować ponownie później.", + "500.link.home-page":"Zabierz mnie na stronÄ™ głównÄ…", + "error-page.description.401":"brak autoryzacji", + "error-page.description.403":"brak dostÄ™pu", + "error-page.description.500":"usÅ‚uga niedostÄ™pna", + "error-page.description.404":"nie znaleziono strony", + "error-page.orcid.generic-error":"Podczas logowania za pomocÄ… ORCID wystÄ…piÅ‚ bÅ‚Ä…d. Upewnij siÄ™, że udostÄ™pniÅ‚eÅ› DSpace adres e-mail swojego konta ORCID. JeÅ›li bÅ‚Ä…d nadal wystÄ™puje, skontaktuj siÄ™ z administratorem", + "access-status.embargo.listelement.badge":"Embargo", + "access-status.metadata.only.listelement.badge":"Tylko metadane", + "access-status.open.access.listelement.badge":"Open Access", + "access-status.restricted.listelement.badge":"Brak dostÄ™pu", + "access-status.unknown.listelement.badge":"Nieznane", + "admin.access-control.groups.table.edit.buttons.remove":"UsuÅ„ \"{{name}}\"", + "admin.metadata-import.page.validateOnly":"Tylko waliduj", + "admin.metadata-import.page.validateOnly.hint":"Po wybraniu tej opcji przesÅ‚any plik CSV zostanie poddany walidacji. Otrzymasz raport o wykrytych zmianach, ale żadne zmiany nie zostanÄ… zapisane.", + "bitstream.edit.form.iiifLabel.label":"Etykieta canvyIIIF", + "bitstream.edit.form.iiifLabel.hint":"Etykieta dla tego obrazu. JeÅ›li nie zostaÅ‚a dostarczona, zostanie użyta domyÅ›lna etykieta.", + "bitstream.edit.form.iiifToc.label":"Spis treÅ›ci IIIF", + "bitstream.edit.form.iiifToc.hint":"Dodanie tekstu tutaj zapoczÄ…tkuje nowy zakres spisu treÅ›ci.", + "bitstream.edit.form.iiifWidth.label":"Szerokość canvy IIIF", + "bitstream.edit.form.iiifWidth.hint":"Szerokość canvy jest zwykle równa szerokoÅ›ci obrazu.", + "bitstream.edit.form.iiifHeight.label":"Wysokość canvy IIIF", + "bitstream.edit.form.iiifHeight.hint":"Wysokość canvy jest zwykle równa szerokoÅ›ci obrazu.", + "browse.back.all-results":"Wszystkie wyniki wyszukiwania", + "pagination.next.button":"NastÄ™pny", + "pagination.previous.button":"Poprzedni", + "pagination.next.button.disabled.tooltip":"Brak wiÄ™cej stron z wynikami wyszukiwania", + "browse.startsWith":", zaczyna siÄ™ od {{ startsWith }}", + "browse.title.page":"Przeszukiwanie {{ collection }} wg {{ field }} {{ value }}", + "collection.edit.item.authorizations.load-bundle-button":"ZaÅ‚aduj wiÄ™cej paczek", + "collection.edit.item.authorizations.load-more-button":"ZaÅ‚aduj wiÄ™cej", + "collection.edit.item.authorizations.show-bitstreams-button":"Pokaż polityki plików dla paczek", + "comcol-role.edit.create.error.title":"Nie udaÅ‚o siÄ™ utworzyć grupy dla roli '{{ role }}'", + "curation.form.submit.error.invalid-handle":"Nie ustalono identyfikatora dla tego obiektu", + "confirmation-modal.delete-profile.header":"UsuÅ„ profil", + "confirmation-modal.delete-profile.info":"Czy na pewno chcesz usunąć profil", + "confirmation-modal.delete-profile.cancel":"Anuluj", + "confirmation-modal.delete-profile.confirm":"UsuÅ„", + "error.invalid-search-query":"Zapytanie nie jest poprawne. Wejdź na <a href=\"https://solr.apache.org/guide/query-syntax-and-parsing.html\" target=\"_blank\">Solr query syntax</a>, aby dowiedzieć siÄ™ o najlepszych praktykach i dodatkowych informacjach o tym bÅ‚Ä™dzie.", + "feed.description":"AktualnoÅ›ci", + "footer.link.feedback":"PrzeÅ›lij uwagi", + "form.group-collapse":"ZwiÅ„", + "form.group-collapse-help":"Kliknij tutaj, aby zwinąć", + "form.group-expand":"RozwiÅ„", + "form.group-expand-help":"Kliknij tutaj, aby rozwinąć", + "health.breadcrumbs":"Stan systemu", + "health-page.heading":"Stan systemu", + "health-page.info-tab":"Informacje", + "health-page.status-tab":"Status", + "health-page.error.msg":"Serwis stanu systemu jest tymczasowo niedostÄ™pny", + "health-page.property.status":"Kod statusu", + "health-page.section.db.title":"Baza danych", + "health-page.section.geoIp.title":"GeoIp", + "health-page.section.solrAuthorityCore.title":"Autentykacja", + "health-page.section.solrOaiCore.title":"OAI", + "health-page.section.solrSearchCore.title":"Wyszukiwarka", + "health-page.section.solrStatisticsCore.title":"Statystyki", + "health-page.section-info.app.title":"Backend aplikacji", + "health-page.section-info.java.title":"Java", + "health-page.status":"Status", + "health-page.status.ok.info":"operacyjny", + "health-page.status.error.info":"Wykryte problemy", + "health-page.status.warning.info":"Wykryte potencjalne problemy", + "health-page.title":"Stan systemu", + "health-page.section.no-issues":"Nie wykryto żadnych problemów", + "info.feedback.breadcrumbs":"Uwagi", + "info.feedback.head":"Uwagi", + "info.feedback.title":"Uwagi", + "info.feedback.info":"DziÄ™kujemy za podzielenie siÄ™ opiniÄ… na temat systemu DSpace. Doceniamy Twój wkÅ‚ad w lepsze dziaÅ‚anie systemu!", + "info.feedback.email_help":"Ten adres zostanie użyty, aby przesÅ‚ać odpowiedź na uwagi.", + "info.feedback.send":"PrzeÅ›lij uwagi", + "info.feedback.comments":"Komentarz", + "info.feedback.email-label":"Twoj adres e-mail", + "info.feedback.create.success":"Uwagi przesÅ‚ane!", + "info.feedback.error.email.required":"Poprawny adres e-mail jest wymagany", + "info.feedback.error.message.required":"Treść komentarza jest wymagana", + "info.feedback.page-label":"Strona", + "info.feedback.page_help":"Ta strona odnosi siÄ™ do uwag.", + "item.orcid.return":"Powrót", + "item.truncatable-part.show-more":"Pokaż wiÄ™cej", + "item.truncatable-part.show-less":"Pokaż mniej", + "item.page.orcid.title":"ORCID", + "item.page.orcid.tooltip":"Otwórz ustawienia ORCID", + "item.page.claim.button":"Podejmij pracÄ™", + "item.page.claim.tooltip":"Podejmij pracÄ™ jako profil", + "item.version.create.modal.submitted.header":"Tworzenie nowej wersji...", + "item.version.create.modal.submitted.text":"Nowa wersja zostaÅ‚a utworzona. MogÅ‚o to trwać chwilÄ™, jeÅ›li pozycja ma wiele powiÄ…zaÅ„.", + "journal-relationships.search.results.head":"Wyniki wyszukiwania czasopism", + "menu.section.icon.health":"Sekcja menu Stan systemu", + "menu.section.health":"Stan systemu", + "metadata-export-search.tooltip":"Eksportuj wyniki wyszukiwania w formacie CSV", + "metadata-export-search.submit.success":"Eksport rozpoczÄ…Å‚ siÄ™", + "metadata-export-search.submit.error":"Eksport nie rozpoczÄ…Å‚ siÄ™", + "person.page.name":"Nazwa", + "person-relationships.search.results.head":"Wyniki wyszukiwania osób", + "profile.special.groups.head":"Autoryzacja do specjalnych grup, do których należysz", + "project-relationships.search.results.head":"Wyniki wyszukiwania projektów", + "publication-relationships.search.results.head":"Wyniki wyszukiwania publikacji", + "resource-policies.edit.page.target-failure.content":"WystÄ…piÅ‚ bÅ‚Ä…d podczas edycji (użytkownika lub grupy) zwiÄ…zany z politykÄ… zasobu.", + "resource-policies.edit.page.other-failure.content":"WystÄ…piÅ‚ bÅ‚Ä…d podczas edycji polityki zasobu. Użytkownik lub grupa zostaÅ‚y zaktualizowane pomyÅ›lnie.", + "resource-policies.form.eperson-group-list.modal.header":"Nie można zmienić typu", + "resource-policies.form.eperson-group-list.modal.text1.toGroup":"Nie można zastÄ…pić użytkownika grupÄ….", + "resource-policies.form.eperson-group-list.modal.text1.toEPerson":"Nie można zastÄ…pić grupy użytkownikiem.", + "resource-policies.form.eperson-group-list.modal.text2":"UsuÅ„ obecnÄ… polityke zasobu i stwórz nowÄ… o okreÅ›lonym typie.", + "resource-policies.form.eperson-group-list.modal.close":"Ok", + "search.results.view-result":"Widok", + "default-relationships.search.results.head":"Wyniki wyszukiwania", + "statistics.table.title.TotalVisits":"WyÅ›wietlnia ogółem", + "statistics.table.title.TotalVisitsPerMonth":"WyÅ›wietlenia w miesiÄ…cu", + "statistics.table.title.TotalDownloads":"Pobrania", + "statistics.table.title.TopCountries":"WyÅ›wietlenia wg krajów", + "statistics.table.title.TopCities":"WyÅ›wietlenia wg miast", + "submission.import-external.preview.title":"PodglÄ…d pozycji", + "submission.import-external.preview.title.none":"PodglÄ…d pozycji", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.none":"Import pozycji zdalnie", + "submission.sections.general.cannot_deposit":"Nie można zakoÅ„czyć deponowania, ponieważ w formularzu wystÄ…piÅ‚y bÅ‚Ä™dy.<br>Aby zakoÅ„czyć deponowanie, wypeÅ‚nij wszystkie obowiÄ…zkowe pola.", + "submission.sections.submit.progressbar.accessCondition":"Warunki dostÄ™pu do pozycji", + "submission.sections.submit.progressbar.sherpapolicy":"Polityki Sherpa", + "submission.sections.submit.progressbar.sherpaPolicies":"Informacje o polityce open access wydawcy.", + "submission.sections.status.info.title":"Dodatkowe informacje", + "submission.sections.status.info.aria":"Dodatkowe informacje", + "submission.sections.upload.form.access-condition-hint":"Wybierz w jaki sposób pliki dla tej pozycji po jest zdeponowaniu bÄ™dÄ… mogÅ‚y być udostÄ™pnione", + "submission.sections.upload.form.from-hint":"Wybierz datÄ™, od której ma zostać zastosowany warunek dostÄ™pu", + "submission.sections.upload.form.until-hint":"Wybierz datÄ™, do której ma zostać zastosowany warunek dostÄ™pu", + "submission.sections.accesses.form.discoverable-description":"JeÅ›li checkbox jest zaznaczony, pozycja bÄ™dzie wyÅ›wietlana w wynikach wyszukiwania. JeÅ›li checkbox jest odznaczony, dostÄ™p do pozycji bÄ™dzie dostÄ™pny tylko przez bezpoÅ›redni link, pozycja nie bÄ™dzie wyÅ›wietlana w wynikach wyszukiwania.", + "submission.sections.accesses.form.discoverable-label":"Niemożliwe do wyszukania", + "submission.sections.accesses.form.access-condition-label":"Typ warunku dostÄ™pu", + "submission.sections.accesses.form.access-condition-hint":"Wybierz warunek dostÄ™pu, aby przypisać go do pozycji, kiedy zostanie zdeponowany.", + "submission.sections.accesses.form.date-required":"Data jest wymagana.", + "submission.sections.accesses.form.date-required-from":"PoczÄ…tkowa data przyznania dostÄ™pu jest wymagana.", + "submission.sections.accesses.form.date-required-until":"KoÅ„cowa data przyznania dostÄ™pu jest wymagana.", + "submission.sections.accesses.form.from-label":"Udziel dostÄ™pu od", + "submission.sections.accesses.form.from-hint":"Wybierz datÄ™, od kiedy zostanie przyznany dostÄ™p do tej pozycji", + "submission.sections.accesses.form.from-placeholder":"Od", + "submission.sections.accesses.form.group-label":"Grupa", + "submission.sections.accesses.form.group-required":"Grupa jest wymagana.", + "submission.sections.accesses.form.until-label":"Udziel dostÄ™pu do", + "submission.sections.accesses.form.until-hint":"Wybierz datÄ™, do kiedy zostanie przyznany dostÄ™p do tej pozycji", + "submission.sections.accesses.form.until-placeholder":"Do", + "submission.sections.sherpa.publication.information":"Informacje o publikacji", + "submission.sections.sherpa.publication.information.title":"TytuÅ‚", + "submission.sections.sherpa.publication.information.issns":"Numery ISSN", + "submission.sections.sherpa.publication.information.url":"URL", + "submission.sections.sherpa.publication.information.publishers":"Wydawca", + "submission.sections.sherpa.publication.information.romeoPub":"Wydawca Romeo", + "submission.sections.sherpa.publication.information.zetoPub":"Wydawca Zeto", + "submission.sections.sherpa.publisher.policy":"Polityka wydawnicza", + "submission.sections.sherpa.publisher.policy.description":"Poniższe informacje zostaÅ‚y znalezione za poÅ›rednictwem Sherpa Romeo. W oparciu o politykÄ™ Twojego wydawcy, zawiera ona porady dotyczÄ…ce tego, czy embargo może być konieczne i/lub jakie pliki możesz przesÅ‚ać. JeÅ›li masz pytania, skontaktuj siÄ™ z administratorem strony poprzez formularz.", + "submission.sections.sherpa.publisher.policy.openaccess":"Rodzaje Open Access dozwolone przez politykÄ™ wydawniczÄ… tego czasopisma sÄ… wymienione poniżej. Kliknij na wybrany rodzaj, aby przejść do szczegółowego widoku", + "submission.sections.sherpa.publisher.policy.more.information":"Aby uzuyskać wiÄ™cej informacji, kliknij tutaj:", + "submission.sections.sherpa.publisher.policy.version":"Wersja", + "submission.sections.sherpa.publisher.policy.embargo":"Embargo", + "submission.sections.sherpa.publisher.policy.noembargo":"Brak embargo", + "submission.sections.sherpa.publisher.policy.nolocation":"Brak", + "submission.sections.sherpa.publisher.policy.license":"Licencja", + "submission.sections.sherpa.publisher.policy.prerequisites":"Wymagania wstÄ™pne", + "submission.sections.sherpa.publisher.policy.location":"Lokalizacja", + "submission.sections.sherpa.publisher.policy.conditions":"Wymagania", + "submission.sections.sherpa.publisher.policy.refresh":"OdÅ›wież", + "submission.sections.sherpa.record.information":"Informacje o rekordzie", + "submission.sections.sherpa.record.information.id":"ID", + "submission.sections.sherpa.record.information.date.created":"Data utworzenia", + "submission.sections.sherpa.record.information.date.modified":"Ostatnia modyfikacja", + "submission.sections.sherpa.record.information.uri":"URI", + "submission.sections.sherpa.error.message":"WystÄ…piÅ‚ bÅ‚Ä…d podczas pobierania informacji z Sherpa", + "submission.workspace.generic.view":"PodglÄ…d", + "submission.workspace.generic.view-help":"Wybierz tÄ™ opcje, aby zobaczyć metadane.", + "workflow.search.results.head":"Zadania na workflow", + "workspace-item.view.breadcrumbs":"Widok wersji roboczej", + "workspace-item.view.title":"Widok wersji roboczej", + "researcher.profile.change-visibility.fail":"WystÄ…piÅ‚ niespodziewany bÅ‚Ä…d podczas zmiany widocznoÅ›ci profilu", + "person.page.orcid.link.processing":"ÅÄ…czenie profilu z ORCID...", + "person.page.orcid.link.error.message":"CoÅ› poszÅ‚o nie tak podczas Å‚Ä…czenia z ORCID. JeÅ›li problem bÄ™dzie siÄ™ powtarzaÅ‚, skontaktuj siÄ™ z administratorem.", + "person.page.orcid.sync-queue.table.header.type":"Typ", + "person.page.orcid.sync-queue.table.header.description":"Opis", + "person.page.orcid.sync-queue.table.header.action":"Akcja", + "person.page.orcid.sync-queue.tooltip.project":"Projekt", + "person.page.orcid.sync-queue.send.validation-error.country.invalid":"NiewÅ‚aÅ›ciwy dwuznakowy kod kraju ISO 3166", + "person.page.orcid.sync-queue.send.validation-error.publication.date-invalid":"Wymagana data publikacji to co najmniej rok po 1900", + "person.page.orcid.synchronization-mode-funding-message":"Wybierz, czy chcesz wysÅ‚ać swoje projekty na swojÄ… listÄ™ informacji o projektach w profilu ORCID.", + "person.page.orcid.synchronization-mode-publication-message":"Wybierz, czy chcesz wysÅ‚ać swoje publikacje na swojÄ… listÄ™ informacji o publikacjach w profilu ORCID.", + "person.page.orcid.synchronization-mode-profile-message":"Wybierz, czy chcesz wysÅ‚ać swoje dane bibliograficzne lub osobiste identyfikatory do swojego profilu ORCID.", + "person.orcid.sync.setting":"Ustawienia synchronizacji z ORCID", + "person.orcid.registry.queue":"Kolejka rejestru z ORCID", + "person.orcid.registry.auth":"Autoryzacje z ORCID", + "home.recent-submissions.head":"Najnowsze publikacje", + "submission.sections.sherpa-policy.title-empty":"Nie wybrano ISSN i informacje o polityce wydawniczej czasopisma sÄ… niedostÄ™pne", + "admin.batch-import.breadcrumbs":"Import zbiorczy", + "admin.batch-import.page.dropMsg":"Drop a batch ZIP to import", + "admin.batch-import.page.dropMsgReplace":"Drop to replace the batch ZIP to import", + "admin.batch-import.page.error.addFile":"Najpierw wybierz plik (ZIP)", + "admin.batch-import.page.header":"Import masowy", + "admin.batch-import.page.help":"Wybierz kolekcjÄ™ do zaimportowania kolekcji. Potem, upuść lub przeszukaj plik SAF, który zawiera pozycje do importu", + "admin.batch-import.page.remove":"usuÅ„", + "admin.batch-import.page.validateOnly.hint":"JeÅ›li wybrano, importowany plik ZIP bÄ™dzie walidowany. Otrzymasz raport ze zmianami, ale żadne zmiany nie zostanÄ… wykonane zapisane.", + "collection.form.correctionSubmissionDefinition":"Wzór zgÅ‚oszenia do proÅ›by o korektÄ™", + "comcol-role.edit.delete.error.title":"Nie udaÅ‚o siÄ™ usunąć roli '{{ role }}' dla grup", + "confirmation-modal.export-batch.header":"Eksport maasowy (ZIP) {{ dsoName }}", + "confirmation-modal.export-batch.info":"Czy na pewno chcesz wyeksportować plik ZIP z {{ dsoName }}", + "dso-selector.export-batch.dspaceobject.head":"Eksport masowy (ZIP) z", + "menu.section.export_batch":"Eksport masowy (ZIP)", + "nav.user-profile-menu-and-logout":"Profil użytkownika i wylogowywanie", + "process.detail.actions":"Akcje", + "process.detail.delete.body":"Czy na pewno chcesz usunąć bieżący proces?", + "process.detail.delete.button":"UsuÅ„ proces", + "process.detail.delete.cancel":"Anuluj", + "process.detail.delete.confirm":"UsuÅ„ proces", + "process.detail.delete.error":"Nie udaÅ‚o siÄ™ usunąć procesu", + "process.detail.delete.header":"UsuÅ„ proces", + "process.detail.delete.success":"Proces zostaÅ‚ usuniÄ™ty.", + "admin.batch-import.title":"Masowy import", + "admin.metadata-import.page.button.select-collection":"Wybierz kolekcjÄ™", + "admin.registries.bitstream-formats.table.id":"ID", + "admin.registries.schema.fields.table.id":"ID", + "cookies.consent.app.description.google-recaptcha":"Podczas rejestracji i odzyskiwania hasÅ‚a używamy narzÄ™dzia google reCAPTCHA", + "cookies.consent.app.disable-all.description":"PrzeÅ‚Ä…cz, aby zaakceptować lub odrzucić wszystkie", + "cookies.consent.app.disable-all.title":"Akceptowacja lub odrzucenie wszystkich", + "cookies.consent.app.title.google-recaptcha":"Google reCaptcha", + "cookies.consent.content-modal.service":"usÅ‚uga", + "cookies.consent.content-modal.services":"usÅ‚ugi", + "cookies.consent.content-notice.description.no-privacy":"Zbieramy i przetwarzamy Twoje dane w celu: <strong>autentykacji, ustawieÅ„ preferencji i zgód oraz do celów statystycznych</strong>.", + "cookies.consent.content-notice.title":"Zgoda na ciasteczka", + "cookies.consent.ok":"Zgadzam siÄ™", + "cookies.consent.purpose.registration-password-recovery":"Rejestracja i odzyskiwanie hasÅ‚a", + "cookies.consent.save":"Zapisz", + "curation-task.task.citationpage.label":"Generuj stronÄ™ z cytowaniem", + "dso-selector.import-batch.dspaceobject.head":"Import masowy z", + "orgunit.listelement.no-title":"Brak tytyÅ‚u", + "process.bulk.delete.error.body":"Proces z ID {{processId}} nie może być usuniÄ™ty. PozostaÅ‚e procesy zostanÄ… usuniÄ™te.", + "process.bulk.delete.error.head":"BÅ‚Ä…d podczas usuwania procesu", + "process.bulk.delete.success":"{{count}} proces/y zostaÅ‚/y usuniÄ™te", + "process.overview.delete":"UsuÅ„ {{count}} proces/y", + "process.overview.delete.body":"Czy na pewno usunąć {{count}} proces/y?", + "process.overview.delete.clear":"Wyczyść selekcjÄ™ procesów do usuniÄ™cia", + "process.overview.delete.header":"UsuÅ„ procesy", + "process.overview.delete.processing":"{{count}} procesów zostanie usuniÄ™tych. Poczekaj, gdy usuwanie siÄ™ zakoÅ„czy. Może to zająć chwilÄ™.", + "process.overview.table.actions":"Akcje", + "profile.security.form.label.current-password":"Aktualne hasÅ‚o", + "profile.security.form.notifications.error.change-failed":"WystÄ…piÅ‚ bÅ‚Ä…d podczas próby zmiany hasÅ‚a. Sprawdź czy aktualne hasÅ‚o jest prawidÅ‚owe.", + "profile.security.form.notifications.error.general":"UzupeÅ‚nij wymagane pola dla bezpieczeÅ„stwa na formularzu", + "register-page.registration.error.recaptcha":"WystÄ…piÅ‚ bÅ‚Ä…d podczas próby autentykacji przez reCAPTCHA", + "register-page.registration.google-recaptcha.must-accept-cookies":"Aby siÄ™ zarejestrować, musisz zaakceptować ciasteczka dla <b>rejestracji i odzyskiwania hasÅ‚a</b> (Google reCaptcha).", + "register-page.registration.google-recaptcha.notification.message.error":"WystÄ…piÅ‚ bÅ‚Ä…d podczas weryfikacji reCaptcha", + "register-page.registration.google-recaptcha.notification.message.expired":"Weryfikacja wygasÅ‚a. Zweryfikuj ponownie.", + "register-page.registration.google-recaptcha.notification.title":"Google reCaptcha", + "register-page.registration.google-recaptcha.open-cookie-settings":"Otwórz ustawienia plików cookies", + "search.results.response.500":"WystÄ…piÅ‚ bÅ‚Ä…d podczas wysyÅ‚ania zapytania. Spróbuj ponownie później", + "submission.sections.license.granted-label":"Potwierdzam akceptacjÄ™ powyższej licencji", + "submission.sections.license.notgranted":"Najpierw musisz zaakceptować licencjÄ™", + "submission.sections.license.required":"Najpierw musisz zaakceptować licencjÄ™", + "confirmation-modal.export-batch.confirm":"Eksportuj", + "confirmation-modal.export-batch.cancel":"Anuluj", + "admin.access-control.bulk-access.breadcrumbs":"Zbiorcza edycja dostÄ™pu do osiÄ…gnięć", + "administrativeBulkAccess.search.results.head":"Wyniki wyszukiwania", + "admin.access-control.bulk-access":"Zbiorcza edycja dostÄ™pu do osiÄ…gnięć", + "admin.access-control.bulk-access.title":"Zbiorcza edycja dostÄ™pu do osiÄ…gnięć", + "admin.access-control.bulk-access-browse.header":"Krok 1: Wybierz pozycje", + "admin.access-control.bulk-access-browse.search.header":"Wyszukaj", + "admin.access-control.bulk-access-browse.selected.header":"Obecny wybór({{number}})", + "admin.access-control.bulk-access-settings.header":"Krok 2: DziaÅ‚anie do wykonania", + "admin.access-control.groups.form.tooltip.editGroupPage":"Na tej stronie można edytować opcje grupy i przypisane do niej osoby. W górnej sekcji można edytować nazwÄ™ i opis grupy, chyba że jest to grupa administratorów dla zbioru i kolekcji. W tym przypadku nazwa i opis grupy sÄ… generowane automatycznie i nie można ich edytować. W kolejnych sekcjach można edytować przypisanie użytkowników do grupy. Szczegóły na [stronie](https://wiki.lyrasis.org/display/DSDOC7x/Create+or+manage+a+user+group).", + "admin.access-control.groups.form.tooltip.editGroup.addEpeople":"Aby dodać lub usunąć użytkownika do/z tej grupy, kliknij przycisk 'PrzeglÄ…daj wszystko' lub użyj paska wyszukiwania poniżej, aby wyszukać użytkowników (użyj listy rozwijanej po lewej stronie paska wyszukiwania, aby wybrać, czy chcesz wyszukiwać wedÅ‚ug imienia i nazwiska, czy wedÅ‚ug adresu e-mail). NastÄ™pnie kliknij ikonÄ™ plusa przy każdym użytkowniku, którego chcesz dodać do poniższej listy, lub ikonÄ™ kosza przy każdym użytkowniku, którego chcesz usunąć. Poniższa lista może mieć kilka stron: użyj strzaÅ‚ek pod listÄ…, aby przejść do kolejnych stron. Gdy wszystkie zmiany zostanÄ… wprowadzone, zapisz je, klikajÄ…c przycisk 'Zapisz' w górnej sekcji.", + "admin.access-control.groups.form.tooltip.editGroup.addSubgroups":"Aby dodać lub usunąć podgrupÄ™ do/z tej grupy, kliknij przycisk 'PrzeglÄ…daj wszystko' lub użyj wyszukiwarki poniżej, aby wyszukać użytkowników. NastÄ™pnie kliknij ikonÄ™ plusa przy każdym użytkowniku, którego chcesz dodać do poniższej listy, lub ikonÄ™ kosza przy każdym użytkowniku, którego chcesz usunąć. Poniższa lista może skÅ‚adać siÄ™ z kilku stron: użyj przycisków pod listÄ…, aby przejść do kolejnych stron. Gdy wszystkie zmiany zostanÄ… wprowadzone, zapisz je, klikajÄ…c przycisk 'Zapisz' w górnej sekcji.", + "admin.workflow.item.workspace":"PrzestrzeÅ„ robocza", + "admin.workflow.item.policies":"Polityki", + "admin.workflow.item.supervision":"Recenzja", + "admin.batch-import.page.toggle.help":"It is possible to perform import either with file upload or via URL, use above toggle to set the input source", + "admin.metadata-import.page.error.addFileUrl":"Najpierw wpisz URL pliku!", + "admin.metadata-import.page.toggle.upload":"PrzeÅ›lij", + "admin.metadata-import.page.toggle.url":"URL", + "admin.metadata-import.page.urlMsg":"Wpisz URL pliku ZIP, aby wykonać import masowy", + "advanced-workflow-action.rating.form.rating.label":"Ocena", + "advanced-workflow-action.rating.form.rating.error":"Ta pozycja musi zostać oceniona", + "advanced-workflow-action.rating.form.review.label":"Recenzja", + "advanced-workflow-action.rating.form.review.error":"Musisz wpisać tekst recenzji", + "advanced-workflow-action.rating.description":"Wybierz ocenÄ™ poniżej", + "advanced-workflow-action.rating.description-requiredDescription":"Wybierz ocenÄ™ poniżej i wpisz uzasadnienie", + "advanced-workflow-action.select-reviewer.description-single":"Wybierz recenzenta przed zdeponowaniem pozycji", + "advanced-workflow-action.select-reviewer.description-multiple":"Wybierz jednego lub wiÄ™cej recenzentów przed zdeponowaniem pozycji", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.head":"Użytkownicy", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.head":"Dodaj użytkownika", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.button.see-all":"PrzeglÄ…daj wszystko", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.headMembers":"Aktualni użytkownicy", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.metadata":"Metadane", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.email":"Adres e-mail (dokÅ‚adny)", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.button":"Wyszukaj", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.id":"ID", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.name":"Nazwa", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.identity":"Tożsamość", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.email":"Adres e-mail", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.netid":"NetID", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit":"UsuÅ„ / Dodaj", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.remove":"UsuÅ„ użytkownika z nazwÄ™ \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.addMember":"Dodano użytkownika o nazwie: \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.addMember":"Nie dodano użytkownika: \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.deleteMember":"UsuniÄ™to użytkownika: \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.deleteMember":"Nie usuniÄ™to użytkownika: \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.add":"Dodano użytkownika \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.noActiveGroup":"Brak aktywnej grupy, najpierw wpisz nazwÄ™.", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-members-yet":"W tej grupie nie ma użytkowników, wyszukaj ich i dodaj.", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-items":"Nie znaleziono żadnych użytkowników", + "advanced-workflow-action.select-reviewer.no-reviewer-selected.error":"Recenzent nie jest wybrany.", + "bitstream.edit.notifications.error.primaryBitstream.title":"WystÄ…piÅ‚ bÅ‚Ä…d podczas zapisu pliku.", + "browse.comcol.by.srsc":"Wg słów kluczowych", + "browse.metadata.srsc.breadcrumbs":"PrzeglÄ…daj wg słów kluczowych", + "browse.startsWith.input":"Filtr", + "browse.taxonomy.button":"PrzeglÄ…daj", + "search.browse.item-back":"Powrót do wyników wyszukiwania", + "claimed-approved-search-result-list-element.title":"Zaakceptowano", + "claimed-declined-search-result-list-element.title":"Odrzucono i przesÅ‚ano do deponujÄ…cego", + "claimed-declined-task-search-result-list-element.title":"Odrzucono i przesÅ‚ano do recenzenta", + "collection.edit.tabs.access-control.head":"DostÄ™py", + "collection.edit.tabs.access-control.title":"Edycja kolekcji - dostÄ™py", + "collection.listelement.badge":"Kolekcja", + "community.edit.tabs.access-control.head":"DostÄ™py", + "community.edit.tabs.access-control.title":"Edycja zbioru - dostÄ™py", + "comcol-role.edit.scorereviewers.name":"Ocena recenzenta", + "comcol-role.edit.scorereviewers.description":"Recenzenci mogÄ… oceniać zdeponowane pozycje, co okreÅ›li, czy pozycja zostanie przyjÄ™ta lub odrzucona.", + "curation-task.task.register-doi.label":"Rejestracja DOI", + "dso.name.unnamed":"Bez nazwy", + "dso-selector.create.community.or-divider":"lub", + "dso-selector.set-scope.community.or-divider":"lub", + "dso-selector.results-could-not-be-retrieved":"WystÄ…piÅ‚ bÅ‚Ä…d, proszÄ™ odÅ›wieżyć stronÄ™", + "supervision-group-selector.header":"Wybór grupy recenzenckiej", + "supervision-group-selector.select.type-of-order.label":"Wybierz typ funkcji", + "supervision-group-selector.select.type-of-order.option.none":"BRAK", + "supervision-group-selector.select.type-of-order.option.editor":"REDAKTOR", + "supervision-group-selector.select.type-of-order.option.observer":"OBSERWATOR", + "supervision-group-selector.select.group.label":"Wybierz grupÄ™", + "supervision-group-selector.button.cancel":"Anuluj", + "supervision-group-selector.button.save":"Zapisz", + "supervision-group-selector.select.type-of-order.error":"Wybierz typ funkcji", + "supervision-group-selector.select.group.error":"Wybierz grupÄ™", + "supervision-group-selector.notification.create.success.title":"Grupa recenzencka zostaÅ‚ dodana dla grupy {{ name }}", + "supervision-group-selector.notification.create.failure.title":"BÅ‚Ä…d", + "supervision-group-selector.notification.create.already-existing":"Funkcja recenzenta już jest przypisana do tej grupy", + "confirmation-modal.delete-subscription.header":"UsuÅ„ subksrypcje", + "confirmation-modal.delete-subscription.info":"Czy na pewno chcesz usunąć subskrypcjÄ™: \"{{ dsoName }}\"", + "confirmation-modal.delete-subscription.cancel":"Anuluj", + "confirmation-modal.delete-subscription.confirm":"UsuÅ„", + "error.validation.metadata.name.invalid-pattern":"To pole nie może zawierać kropek, przecinków i spacji. Zamiast tego This field cannot contain dots, commas or spaces. Zamiast tego może użyć pól z notacji SNEQ", + "error.validation.metadata.name.max-length":"To pole nie może zawierać wiÄ™cej niż 32 znaki", + "error.validation.metadata.namespace.max-length":"To pole nie może zawierać wiÄ™cej niż 256 znaków", + "error.validation.metadata.element.invalid-pattern":"To pole nie może zawierać kropek, przecinków i spacji. Zamiast tego This field cannot contain dots, commas or spaces. Zamiast tego może użyć pól z notacji SNEQ", + "error.validation.metadata.element.max-length":"To pole nie może zawierać wiÄ™cej niż 64 znaki", + "error.validation.metadata.qualifier.invalid-pattern":"To pole nie może zawierać kropek, przecinków i spacji", + "error.validation.metadata.qualifier.max-length":"To pole nie może zawierać wiÄ™cej niż 64 znaki", + "forgot-email.form.email.error.not-email-form":"Wpisz prawidÅ‚owy adres e-mail", + "form.other-information.email":"Adres e-mail", + "form.other-information.first-name":"ImiÄ™", + "form.other-information.insolr":"Solr Index", + "form.other-information.institution":"Instytucja", + "form.other-information.last-name":"Nazwisko", + "form.other-information.orcid":"ORCID", + "form.create":"Utwórz", + "info.end-user-agreement.hosting-country":"Stany Zjednoczone", + "item.edit.identifiers.doi.status.UNKNOWN":"Nieznane", + "item.edit.identifiers.doi.status.TO_BE_REGISTERED":"W kolejce do rejestracji", + "item.edit.identifiers.doi.status.TO_BE_RESERVED":"W kolejce do rezerwacji", + "item.edit.identifiers.doi.status.IS_REGISTERED":"Zarejestrowane", + "item.edit.identifiers.doi.status.IS_RESERVED":"Zarezerwowane", + "item.edit.identifiers.doi.status.UPDATE_RESERVED":"Zarezerwowane (aktualizacja w kolejce)", + "item.edit.identifiers.doi.status.UPDATE_REGISTERED":"Zarejestrowane (aktualizacja w kolejce)", + "item.edit.identifiers.doi.status.UPDATE_BEFORE_REGISTRATION":"W kolejce do aktualizacji i rejestracji", + "item.edit.identifiers.doi.status.TO_BE_DELETED":"Zakolejkowane do usuniÄ™cia", + "item.edit.identifiers.doi.status.DELETED":"UsuniÄ™te", + "item.edit.identifiers.doi.status.PENDING":"OczekujÄ…ce (niezarejestrowane)", + "item.edit.identifiers.doi.status.MINTED":"Rezerwowanie nazwy (niezarejestrowane)", + "item.edit.tabs.status.buttons.register-doi.label":"Zarejestruj nowe lub oczekujÄ…ce DOI", + "item.edit.tabs.status.buttons.register-doi.button":"Rejestruj DOI...", + "item.edit.register-doi.header":"Zarejestruj nowe lub oczekujÄ…ce DOI", + "item.edit.register-doi.description":"Zweryfikuj poniższe identyfikatory i metadane pozycji i rozpocznij rejestracjÄ™ DOI lub anuluj", + "item.edit.register-doi.confirm":"Zatwierdź", + "item.edit.register-doi.cancel":"Anuluj", + "item.edit.register-doi.success":"DOI jest w kolejce do rejestracji.", + "item.edit.register-doi.error":"WystÄ…piÅ‚ bÅ‚Ä…d poczas rejestracji DOI", + "item.edit.register-doi.to-update":"To DOI zostaÅ‚o zarezerwowane i bÄ™dzie znajdować siÄ™ w kolejce do rejestracji", + "item.edit.metadata.edit.buttons.confirm":"Zatwierdź", + "item.edit.metadata.edit.buttons.drag":"PrzeciÄ…gnij, aby zmienić kolejność", + "item.edit.metadata.edit.buttons.virtual":"To pole przechowuje wirutalne wartoÅ›ci metadanych, np. wartość pobranÄ… z encji, z którÄ… jest poÅ‚Ä…czona ta pozycja. Dodaj lub usuÅ„ relacjÄ™ w zakÅ‚adce 'Relacje' ", + "item.edit.metadata.metadatafield.error":"WystÄ…piÅ‚ bÅ‚Ä…d podczas walidcji pól metadanych", + "item.edit.metadata.reset-order-button":"Cofnij zamianÄ™ kolejnoÅ›ci", + "item.edit.curate.title":"ZarzÄ…dzaj pozycjÄ…: {{item}}", + "item.edit.tabs.access-control.head":"DostÄ™p", + "item.edit.tabs.access-control.title":"Edycja pozycji - dostÄ™p", + "workflow-item.search.result.delete-supervision.modal.header":"UsuÅ„ zadanie dla recenzenta", + "workflow-item.search.result.delete-supervision.modal.info":"Czy na pewno usunąć zadanie dla recenzenta", + "workflow-item.search.result.delete-supervision.modal.cancel":"Anuluj", + "workflow-item.search.result.delete-supervision.modal.confirm":"UsuÅ„", + "workflow-item.search.result.notification.deleted.success":"UsuniÄ™to zadanie dla recenzenta \"{{name}}\"", + "workflow-item.search.result.notification.deleted.failure":"Nie usuniÄ™to zadania dla recenzenta \"{{name}}\"", + "workflow-item.search.result.list.element.supervised-by":"Recenzja:", + "workflow-item.search.result.list.element.supervised.remove-tooltip":"UsuÅ„ grupÄ™ recenzenckÄ…", + "item.preview.dc.subject":"SÅ‚owo kluczowe:", + "item.preview.dc.publisher":"Wydawca:", + "itemtemplate.edit.metadata.add-button":"Dodaj", + "itemtemplate.edit.metadata.discard-button":"Cofnij", + "itemtemplate.edit.metadata.edit.buttons.confirm":"Zatwierdź", + "itemtemplate.edit.metadata.edit.buttons.drag":"PrzeciÄ…gnij, aby zmienić kolejność", + "itemtemplate.edit.metadata.edit.buttons.edit":"Edytuj", + "itemtemplate.edit.metadata.edit.buttons.remove":"UsuÅ„", + "itemtemplate.edit.metadata.edit.buttons.undo":"Cofnij zmiany", + "itemtemplate.edit.metadata.edit.buttons.unedit":"Nie edytuj", + "itemtemplate.edit.metadata.empty":"To pozycja nie zawiera żadnych metadanych. Wybierz Dodaj, aby je wprowadzić.", + "itemtemplate.edit.metadata.headers.edit":"Edytuj", + "itemtemplate.edit.metadata.headers.field":"Pole", + "itemtemplate.edit.metadata.headers.language":"JÄ™zyk", + "itemtemplate.edit.metadata.headers.value":"Wartość", + "itemtemplate.edit.metadata.metadatafield.error":"WystÄ…piÅ‚ bÅ‚Ä…d podczas walidowania pola metadanych", + "itemtemplate.edit.metadata.metadatafield.invalid":"Wybierz odpowiednie pole metadanych", + "itemtemplate.edit.metadata.notifications.discarded.content":"Twoje zmiany nie zostaÅ‚y zachowane. Aby spróbować wprowadzić je ponownie wybierz Cofnij", + "itemtemplate.edit.metadata.notifications.discarded.title":"Zmiany nie zostaÅ‚y zachowane", + "itemtemplate.edit.metadata.notifications.error.title":"WystÄ…piÅ‚ bÅ‚Ä…d", + "itemtemplate.edit.metadata.notifications.invalid.content":"Twoje zmiany nie zostaÅ‚y zapisane. Upewnij siÄ™, że wszystkie pola zostaÅ‚y wypeÅ‚nione prawidÅ‚owo.", + "itemtemplate.edit.metadata.notifications.invalid.title":"NieprawidÅ‚owe metadan", + "itemtemplate.edit.metadata.notifications.outdated.content":"Wzór dla pozycji, na którÄ… w tym momencie pracujesz, zostaÅ‚ zmodyfikowany przez innego użytkownika. Twoje zmiany zostaÅ‚y odrzucone, aby uniknąć konfliktów pomiÄ™dzy wersjami.", + "itemtemplate.edit.metadata.notifications.outdated.title":"Zmiany zostaÅ‚y odrzucone", + "itemtemplate.edit.metadata.notifications.saved.content":"Zmiany w metadanych wzoru pozycji zostaÅ‚y zapisane.", + "itemtemplate.edit.metadata.notifications.saved.title":"Metadane zostaÅ‚y zapisane", + "itemtemplate.edit.metadata.reinstate-button":"Cofnij", + "itemtemplate.edit.metadata.reset-order-button":"Cofnij zmianÄ™ kolejnoÅ›ci", + "itemtemplate.edit.metadata.save-button":"Zapisz", + "menu.section.access_control_bulk":"Zbiorowe zarzÄ…dzanie dostÄ™pem", + "menu.section.browse_global_by_srsc":"Wg słów kluczowych", + "mydspace.show.supervisedWorkspace":"Pozycje recenzowane", + "mydspace.status.mydspaceArchived":"Opublikowano", + "mydspace.status.mydspaceValidation":"Walidacja", + "mydspace.status.mydspaceWaitingController":"Oczekiwanie na redakctora", + "mydspace.status.mydspaceWorkflow":"Redakcja", + "mydspace.status.mydspaceWorkspace":"PrzestrzeÅ„ robocza", + "nav.context-help-toggle":"PrzeÅ‚Ä…cz pomoc kontekstowÄ…", + "nav.search.button":"Wpisz wyszukiwanÄ… frazÄ™", + "nav.subscriptions":"Subksrypcje", + "process.new.notification.error.max-upload.content":"Plik jest wiÄ™kszy niż maksymalny dozwolony rozmiar pliku", + "register-page.registration.email.error.not-email-form":"Wprowadź poprawny adres e-mail", + "register-page.registration.email.error.not-valid-domain":"Użyj adresu e-mail z domeny: {{ domains }}", + "register-page.registration.error.maildomain":"Tego adresu e-mail nie możesz zarejestrować, ponieważ nie ma go na liÅ›cie domen. Dozwolone domeny to: {{ domains }}", + "register-page.registration.info.maildomain":"Konta mogÄ… być zaÅ‚ożone dla adresów e-mail z domenÄ…", + "repository.title":"Repozytorium DSpace", + "search.filters.applied.f.supervisedBy":"Recenzent", + "search.filters.filter.show-tree":"PrzeglÄ…daj {{ name }} strukturÄ™ recenzentów", + "search.filters.filter.supervisedBy.head":"Recenzent", + "search.filters.filter.supervisedBy.placeholder":"Recenzent", + "search.filters.filter.supervisedBy.label":"Wyszukaj recenzenta", + "statistics.table.no-name":"(nazwa obiektu nie może zostać zaÅ‚adowana)", + "submission.import-external.source.datacite":"DataCite", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isPublicationOfAuthor":"Publikacje autora", + "submission.sections.describe.relationship-lookup.title.isPublicationOfAuthor":"Publikacje", + "submission.sections.identifiers.info":"Te identyfikatory zostanÄ… utworzone dla pozycji:", + "submission.sections.identifiers.no_handle":"Do tej pozycji nie zostaÅ‚y przypisane żadne Handle", + "submission.sections.identifiers.no_doi":"Do tej pozycji nie zostaÅ‚y przypisane żadne DOI", + "submission.sections.identifiers.handle_label":"Handle: ", + "submission.sections.identifiers.doi_label":"DOI: ", + "submission.sections.identifiers.otherIdentifiers_label":"Inne identyfikatory: ", + "submission.sections.submit.progressbar.identifiers":"Identyfikatory", + "submission.workflow.generic.submit_select_reviewer":"Wybierz recenzenta", + "submission.workflow.generic.submit_select_reviewer-help":"", + "submission.workflow.generic.submit_score":"Wynik", + "submission.workflow.generic.submit_score-help":"", + "submission.workflow.tasks.claimed.decline":"Odrzuć", + "submission.workflow.tasks.claimed.decline_help":"", + "submitter.empty":"n.d.", + "subscriptions.title":"Subskrypcje", + "subscriptions.item":"Subskrypcje pozycji", + "subscriptions.collection":"Subskrypcje kolekcji", + "subscriptions.community":"Subskrypcje zbiorów", + "subscriptions.subscription_type":"Typ subksrypcji", + "subscriptions.frequency":"CzÄ™stotliwość subskrypcji", + "subscriptions.frequency.D":"Codziennie", + "subscriptions.frequency.M":"Co miesiÄ…c", + "subscriptions.frequency.W":"Co tydzieÅ„", + "subscriptions.tooltip":"Subskrybuj", + "subscriptions.modal.title":"Subksrypcje", + "subscriptions.modal.type-frequency":"Rodzaj i czÄ™stotliwość subksrypcji", + "subscriptions.modal.close":"Zamknij", + "subscriptions.modal.delete-info":"Aby usunąć tÄ™ subksrypcjÄ™ przejdź do strony 'Subskrypcje', która znajduje siÄ™ w profilu użytkownika", + "subscriptions.modal.new-subscription-form.type.content":"Zawartość", + "subscriptions.modal.new-subscription-form.frequency.D":"Codziennie", + "subscriptions.modal.new-subscription-form.frequency.W":"Co tydzieÅ„", + "subscriptions.modal.new-subscription-form.frequency.M":"Co miesiÄ…c", + "subscriptions.modal.new-subscription-form.submit":"Zapisz", + "subscriptions.modal.new-subscription-form.processing":"Åadowanie...", + "subscriptions.modal.create.success":"Zasubskrybowano {{ type }}", + "subscriptions.modal.delete.success":"Subskrypcja zostaÅ‚a anulowana", + "subscriptions.modal.update.success":"Twoja subskrypcja {{ type }} zostaÅ‚a zaktualizowana", + "subscriptions.modal.create.error":"WystÄ…piÅ‚ bÅ‚ad podczas tworzenia subskrypcji", + "subscriptions.modal.delete.error":"WystÄ…piÅ‚ bÅ‚ad podczas usuwania subskrypcji", + "subscriptions.modal.update.error":"WystÄ…piÅ‚ bÅ‚ad podczas aktualizacji subskrypcji", + "subscriptions.table.dso":"SÅ‚owo kluczowe", + "subscriptions.table.subscription_type":"Typ subskrypcji", + "subscriptions.table.subscription_frequency":"CzÄ™stotliwość subskrypcji", + "subscriptions.table.action":"Akcja", + "subscriptions.table.edit":"Edytuj", + "subscriptions.table.delete":"UsuÅ„", + "subscriptions.table.not-available":"NiedostÄ™pne", + "subscriptions.table.not-available-message":"Ta pozycja zostaÅ‚a usuniÄ™ta lun nie masz do niej dostÄ™pu, aby jÄ… wyswietlić", + "subscriptions.table.empty.message":"Ta pozycja nie ma w tym momencie żadnych subksrypcji. Aby zasubkrybować i otrzymywać aktualizacje o tym zbiorze lub kolekcji, wybierz przycisk subskrypcji na stronie pozycji.", + "vocabulary-treeview.info":"Wybierz sÅ‚owo kluczowe, aby dodać je do filtra", + "supervisedWorkspace.search.results.head":"Pozycje recenzowane", + "supervision.search.results.head":"Status zadaÅ„: Szkic i redakcja", + "workspace-item.delete.breadcrumbs":"UsuniÄ™to wersjÄ™ roboczÄ…", + "workspace-item.delete.header":"UsuÅ„ wersjÄ™ roboczÄ…", + "workspace-item.delete.button.confirm":"UsuÅ„", + "workspace-item.delete.button.cancel":"Anuluj", + "workspace-item.delete.notification.success.title":"UsuniÄ™to", + "workspace-item.delete.title":"Wersja robocza zostaÅ‚a usunieta", + "workspace-item.delete.notification.error.title":"CoÅ› poszÅ‚o nie tak", + "workspace-item.delete.notification.error.content":"Wersja robocza nie może zostać usunieta", + "workflow-item.advanced.title":"Zaawansowane workflow", + "workflow-item.selectrevieweraction.notification.success.title":"Wybrany recenzent", + "workflow-item.selectrevieweraction.notification.success.content":"Recenzent zostaÅ‚ przypisany", + "workflow-item.selectrevieweraction.notification.error.title":"CoÅ› poszÅ‚o nie tak", + "workflow-item.selectrevieweraction.notification.error.content":"Nie udaÅ‚o siÄ™ wybrać recenzenta dla pozycji", + "workflow-item.selectrevieweraction.title":"Wybierz recenzenta", + "workflow-item.selectrevieweraction.header":"Wybierz recenzenta", + "workflow-item.selectrevieweraction.button.cancel":"Anuluj", + "workflow-item.selectrevieweraction.button.confirm":"Zatwierdź", + "workflow-item.scorereviewaction.notification.success.title":"Ocena recenzji", + "workflow-item.scorereviewaction.notification.success.content":"Ocena tej pozycji zostaÅ‚a zapisana", + "workflow-item.scorereviewaction.notification.error.title":"CoÅ› poszÅ‚o nie tak", + "workflow-item.scorereviewaction.notification.error.content":"Nie można ocenić tej pozycji", + "workflow-item.scorereviewaction.title":"OceÅ„ pozycjÄ™", + "workflow-item.scorereviewaction.header":"OceÅ„ pozycjÄ™", + "workflow-item.scorereviewaction.button.cancel":"Anuluj", + "workflow-item.scorereviewaction.button.confirm":"Potwierdź", + "listable-notification-object.default-message":"Ta pozycja nie może być odzyskana", + "system-wide-alert-banner.retrieval.error":"CoÅ› poszÅ‚o nie tak podczas odzyskiwania alertu systemowego", + "system-wide-alert-banner.countdown.prefix":"W", + "system-wide-alert-banner.countdown.days":"{{days}} dni,", + "system-wide-alert-banner.countdown.hours":"{{hours}} godziny", + "system-wide-alert-banner.countdown.minutes":"{{minutes}} minut:", + "menu.section.system-wide-alert":"Alert systemowy", + "system-wide-alert.form.header":"Alert systemowy", + "system-wide-alert-form.retrieval.error":"CoÅ› poszÅ‚o nie tak podczas odzyskiwania alertu systemowego", + "system-wide-alert.form.cancel":"Anuluj", + "system-wide-alert.form.save":"Zapisz", + "system-wide-alert.form.label.active":"AKTYWNE", + "system-wide-alert.form.label.inactive":"NIEAKTYWNE", + "system-wide-alert.form.error.message":"Alert systemowy musi zawierać wiadomość", + "system-wide-alert.form.label.message":"Alert systemowy", + "system-wide-alert.form.label.countdownTo.enable":"Wprowadź licznik czasowy", + "system-wide-alert.form.label.countdownTo.hint":"Wskazówka: Wpisz wartość licznika czasu. Kiedy licznik jest wÅ‚Ä…czony, alert systemowy zostanie wyÅ›wietlony o wybranym czasie. Kiedy odliczanie zostanie zakoÅ„czone, alert systemowy zostanie wyÅ‚Ä…czony. Serwer NIE zostanie zatrzymany automatycznie.", + "system-wide-alert.form.label.preview":"PodglÄ…d alertu systemowego", + "system-wide-alert.form.update.success":"Alert systemowy zostaÅ‚ zaktualizowany", + "system-wide-alert.form.update.error":"CoÅ› poszÅ‚o nie tak podczas aktualizacji alertu systemowego", + "system-wide-alert.form.create.success":"Alert systemowy zostaÅ‚ utworzony", + "system-wide-alert.form.create.error":"CoÅ› poszÅ‚o nie tak podczas tworzenia alertu systemowego", + "admin.system-wide-alert.breadcrumbs":"Alerty systemowe", + "admin.system-wide-alert.title":"Alerty systemowe", + "item-access-control-title":"Ta strona pozwala na zmianÄ™ dostÄ™pów metadanych pozycji i plików do nich doÅ‚Ä…czonych.", + "collection-access-control-title":"Ta strona pozwala na zmianÄ™ warunków dostÄ™pu dla wszystkich pozycji w tej kolekcji. Zmiany mogÄ… być wykonywane zarówno na metadanych pozycji jak i plikach do nich doÅ‚Ä…czonych.", + "community-access-control-title":"Ta strona pozwala na zmianÄ™ warunków dostÄ™pu dla wszystkich pozycji w każdej kolekcji w tym zbiorze. Zmiany mogÄ… być wykonywane zarówno na metadanych pozycji jak i plikach do nich doÅ‚Ä…czonych.", + "access-control-item-header-toggle":"Metadane pozycji", + "access-control-bitstream-header-toggle":"Pliki", + "access-control-mode":"Tryb", + "access-control-access-conditions":"Warunki dostÄ™pu", + "access-control-no-access-conditions-warning-message":"W tym momencie żadne warunki dostÄ™pu nie zostaÅ‚y okreÅ›lone. JeÅ›li zadanie zostanie rozpoczÄ™te, obecne warunki dostÄ™pu zostanÄ… zastÄ…pione domyÅ›lnymi warunkami dostÄ™pu z nadrzÄ™dnej kolekcji.", + "access-control-replace-all":"ZastÄ…p warunki dostÄ™pu", + "access-control-add-to-existing":"Dodaj do już istniejÄ…cych", + "access-control-limit-to-specific":"Ogranicz zmiany do wybranych plików", + "access-control-process-all-bitstreams":"Zaktualizuj wszystkie pliki dla tej pozycji", + "access-control-bitstreams-selected":"wybrane pliki", + "access-control-cancel":"Anuluj", + "access-control-execute":"Wykonaj", + "access-control-add-more":"Dodaj wiÄ™cej", + "access-control-select-bitstreams-modal.title":"Wybierz pliki", + "access-control-select-bitstreams-modal.no-items":"Brak pozycji do wyÅ›wietlenia.", + "access-control-select-bitstreams-modal.close":"Zamknij", + "access-control-option-label":"Typ warunków dostÄ™pu", + "access-control-option-note":"Wybierz warunki dostÄ™pu, które chcesz przypisać do zaznaczonych pozycji.", + "access-control-option-start-date":"DostÄ™p od", + "access-control-option-start-date-note":"Wybierz datÄ™, kiedy wybrane warunki dostÄ™pu majÄ… obowiÄ…zywać", + "access-control-option-end-date":"DostÄ™p do", + "access-control-option-end-date-note":"Wybierz datÄ™, kiedy wybrane warunki dostÄ™pu majÄ… obowiÄ…zywać" } -- GitLab From 964066056ccc7f588266a58c5570fbdf5d8ca024 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Dykas?= <96572102+michdyk@users.noreply.github.com> Date: Tue, 22 Aug 2023 15:09:09 +0200 Subject: [PATCH 037/183] Update pl.json5 Translation update of 2 spaces instead of 3 (cherry picked from commit cfd753f928a0ed8829ef7d7a00f727b81d782d35) --- src/assets/i18n/pl.json5 | 5238 +++++++++++++++++++------------------- 1 file changed, 2619 insertions(+), 2619 deletions(-) diff --git a/src/assets/i18n/pl.json5 b/src/assets/i18n/pl.json5 index 7e6ef92c22..39e1fce8e6 100644 --- a/src/assets/i18n/pl.json5 +++ b/src/assets/i18n/pl.json5 @@ -1,2621 +1,2621 @@ { - "401.help":"Nie masz uprawnieÅ„ do dostÄ™pu do tej strony. Możesz użyć przycisku poniżej, aby powrócić do strony głównej.", - "401.link.home-page":"Zabierz mnie na stronÄ™ głównÄ…", - "401.unauthorized":"nieautoryzowany", - "403.help":"Nie masz uprawnieÅ„ do dostÄ™pu do tej strony. Możesz użyć przycisku poniżej, aby wrócić do strony głównej.", - "403.link.home-page":"Zabierz mnie na stronÄ™ głównÄ…", - "403.forbidden":"zabroniony", - "404.help":"Nie możemy znaleźć strony, której szukasz. Strona mogÅ‚a zostać przeniesiona lub usuniÄ™ta. Możesz użyć przycisku poniżej, aby powrócić do strony głównej. ", - "404.link.home-page":"Zabierz mnie na stronÄ™ głównÄ…", - "404.page-not-found":"strona nie zostaÅ‚a znaleziona", - "admin.curation-tasks.breadcrumbs":"Systemowe zadania administracyjne", - "admin.curation-tasks.title":"Systemowe zadania administracyjne", - "admin.curation-tasks.header":"Systemowe zadania administracyjne", - "admin.registries.bitstream-formats.breadcrumbs":"Rejestr formatów", - "admin.registries.bitstream-formats.create.breadcrumbs":"Format strumienia bitów", - "admin.registries.bitstream-formats.create.failure.content":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia nowego formatu strumienia bitów.", - "admin.registries.bitstream-formats.create.failure.head":"Nie udaÅ‚o siÄ™", - "admin.registries.bitstream-formats.create.head":"Utwórz nowy format", - "admin.registries.bitstream-formats.create.new":"Dodaj nowy format", - "admin.registries.bitstream-formats.create.success.content":"Nowy format strumienia bitów zostaÅ‚ pomyÅ›lnie utworzony.", - "admin.registries.bitstream-formats.create.success.head":"UdaÅ‚o siÄ™", - "admin.registries.bitstream-formats.delete.failure.amount":"Nie udaÅ‚o siÄ™ usunąć {{ amount }} formatu(ów)", - "admin.registries.bitstream-formats.delete.failure.head":"Nie udaÅ‚o siÄ™", - "admin.registries.bitstream-formats.delete.success.amount":"UdaÅ‚o siÄ™ usunąć {{ amount }} formatu(ów)", - "admin.registries.bitstream-formats.delete.success.head":"UdaÅ‚o siÄ™", - "admin.registries.bitstream-formats.description":"Na liÅ›cie formatów wyÅ›wietlono informacje o obsÅ‚ugiwanych formatach i czy sÄ… one wspierane przez system.", - "admin.registries.bitstream-formats.edit.breadcrumbs":"Format strumienia bitów", - "admin.registries.bitstream-formats.edit.description.hint":"", - "admin.registries.bitstream-formats.edit.description.label":"Opis", - "admin.registries.bitstream-formats.edit.extensions.hint":"Rozszerzenia to rozszerzenia plików, które sÄ… używane do automatycznej identyfikacji formatu przesyÅ‚anych plików. Możesz wprowadzić kilka rozszerzeÅ„ dla każdego formatu.", - "admin.registries.bitstream-formats.edit.extensions.label":"Rozszerzenia plików", - "admin.registries.bitstream-formats.edit.extensions.placeholder":"Wprowadź rozszerzenie pliku bez kropki", - "admin.registries.bitstream-formats.edit.failure.content":"WystÄ…piÅ‚ bÅ‚Ä…d podczas edycji formatu pliku.", - "admin.registries.bitstream-formats.edit.failure.head":"Nie udaÅ‚o siÄ™", - "admin.registries.bitstream-formats.edit.head":"Format plików: {{ format }}", - "admin.registries.bitstream-formats.edit.internal.hint":"Formaty oznaczone jako wewnÄ™trzne sÄ… ukryte przed użytkownikiem i wykorzystywane do celów administracyjnych.", - "admin.registries.bitstream-formats.edit.internal.label":"WewnÄ™trzny", - "admin.registries.bitstream-formats.edit.mimetype.hint":"Typ MIME powiÄ…zany z tym formatem, nie musi być unikalny.", - "admin.registries.bitstream-formats.edit.mimetype.label":"Typ MIME", - "admin.registries.bitstream-formats.edit.shortDescription.hint":"Unikalna nazwa dla tego formatu, (np. Microsoft Word XP lub Microsoft Word 2000)", - "admin.registries.bitstream-formats.edit.shortDescription.label":"Nazwa", - "admin.registries.bitstream-formats.edit.success.content":"Format strumienia bitów zostaÅ‚ pomyÅ›lnie edytowany.", - "admin.registries.bitstream-formats.edit.success.head":"UdaÅ‚o siÄ™", - "admin.registries.bitstream-formats.edit.supportLevel.hint":"Poziom wsparcia, jaki Twoja instytucja deklaruje dla tego formatu.", - "admin.registries.bitstream-formats.edit.supportLevel.label":"ObsÅ‚ugiwany format", - "admin.registries.bitstream-formats.head":"Rejestr formatów", - "admin.registries.bitstream-formats.no-items":"Brak formatów plików do wyÅ›wietlenia.", - "admin.registries.bitstream-formats.table.delete":"UsuÅ„ zaznaczone", - "admin.registries.bitstream-formats.table.deselect-all":"Odznacz wszystkie", - "admin.registries.bitstream-formats.table.internal":"wewnÄ™trzne", - "admin.registries.bitstream-formats.table.mimetype":"Typ MIME", - "admin.registries.bitstream-formats.table.name":"Nazwa", - "admin.registries.bitstream-formats.table.return":"Powrót", - "admin.registries.bitstream-formats.table.supportLevel.KNOWN":"Znane", - "admin.registries.bitstream-formats.table.supportLevel.SUPPORTED":"Wspierane", - "admin.registries.bitstream-formats.table.supportLevel.UNKNOWN":"Nieznane", - "admin.registries.bitstream-formats.table.supportLevel.head":"ObsÅ‚ugiwany format", - "admin.registries.bitstream-formats.title":"Rejestr formatów plików", - "admin.registries.metadata.breadcrumbs":"Rejestr metadanych", - "admin.registries.metadata.description":"W rejestrze metadanych przechowywana jest lista wszystkich pól metadanych dostÄ™pnych w repozytorium. Przechowywane pola sÄ… przechowywane w kilku rejestrach. DSpace wymaga kwalifikowanego rejestru metadanych Dublin Core.", - "admin.registries.metadata.form.create":"Utwórz schemat metadanych", - "admin.registries.metadata.form.edit":"Edytuj schemat metadanych", - "admin.registries.metadata.form.name":"Nazwa", - "admin.registries.metadata.form.namespace":"Nazwa schematu", - "admin.registries.metadata.head":"Rejestr metadanych", - "admin.registries.metadata.schemas.no-items":"Brak rejestrów metadanych do pokazania.", - "admin.registries.metadata.schemas.table.delete":"UsuÅ„ zaznaczone", - "admin.registries.metadata.schemas.table.id":"ID", - "admin.registries.metadata.schemas.table.name":"Nazwa", - "admin.registries.metadata.schemas.table.namespace":"Nazwa schematu", - "admin.registries.metadata.title":"Rejestr metadanych", - "admin.registries.schema.breadcrumbs":"Schemat metadanych", - "admin.registries.schema.description":"Ten schemat metadanych jest stworzony na podstawie \"{{namespace}}\".", - "admin.registries.schema.fields.head":"Pola schematu metadanych", - "admin.registries.schema.fields.no-items":"Brak pól metadanych do pokazania.", - "admin.registries.schema.fields.table.delete":"UsuÅ„ zaznaczone", - "admin.registries.schema.fields.table.field":"Pole", - "admin.registries.schema.fields.table.scopenote":"Uwagi", - "admin.registries.schema.form.create":"Stwórz pole metadanych", - "admin.registries.schema.form.edit":"Edytuj pole metadanych", - "admin.registries.schema.form.element":"Element", - "admin.registries.schema.form.qualifier":"Kwalifikator", - "admin.registries.schema.form.scopenote":"Uwagi", - "admin.registries.schema.head":"Schemat metadanych", - "admin.registries.schema.notification.created":"UdaÅ‚o siÄ™ utworzyć schemat metdanych \"{{prefix}}\"", - "admin.registries.schema.notification.deleted.failure":"Nie udaÅ‚o siÄ™ usunąć {{amount}} schematów metadanych", - "admin.registries.schema.notification.deleted.success":"UdaÅ‚o siÄ™ usunąć {{amount}} schematów metadanych", - "admin.registries.schema.notification.edited":"UdaÅ‚o siÄ™ edytować schemat metadanych \"{{prefix}}\"", - "admin.registries.schema.notification.failure":"BÅ‚Ä…d", - "admin.registries.schema.notification.field.created":"UdaÅ‚o siÄ™ utworzyć pole metadanych \"{{field}}\"", - "admin.registries.schema.notification.field.deleted.failure":"Nie udaÅ‚o siÄ™ usunąć {{amount}} pól metadanych", - "admin.registries.schema.notification.field.deleted.success":"UdaÅ‚o siÄ™ usunąć {{amount}} pól metadanych", - "admin.registries.schema.notification.field.edited":"SUdaÅ‚o siÄ™ edytować pole metadanych \"{{field}}\"", - "admin.registries.schema.notification.success":"UdaÅ‚o siÄ™", - "admin.registries.schema.return":"Powrót", - "admin.registries.schema.title":"Rejestr schematów metadanych", - "admin.access-control.epeople.actions.delete":"UsuÅ„ użytkownika", - "admin.access-control.epeople.actions.impersonate":"Personifikuj użytkownika", - "admin.access-control.epeople.actions.reset":"Zresetuj hasÅ‚o", - "admin.access-control.epeople.actions.stop-impersonating":"PrzestaÅ„ personifikować użytkownika", - "admin.access-control.epeople.breadcrumbs":"Użytkownicy", - "admin.access-control.epeople.title":"Użytkownicy", - "admin.access-control.epeople.head":"Użytkownicy", - "admin.access-control.epeople.search.head":"Wyszukaj", - "admin.access-control.epeople.button.see-all":"PrzeglÄ…daj wszystko", - "admin.access-control.epeople.search.scope.metadata":"Metadane", - "admin.access-control.epeople.search.scope.email":"E-mail", - "admin.access-control.epeople.search.button":"Wyszukaj", - "admin.access-control.epeople.search.placeholder":"Wyszukaj użytkownika...", - "admin.access-control.epeople.button.add":"Dodaj użytkownika", - "admin.access-control.epeople.table.id":"ID", - "admin.access-control.epeople.table.name":"Nazwa", - "admin.access-control.epeople.table.email":"E-mail", - "admin.access-control.epeople.table.edit":"Edytuj", - "admin.access-control.epeople.table.edit.buttons.edit":"Edytuj \"{{name}}\"", - "admin.access-control.epeople.table.edit.buttons.edit-disabled":"Brak uprawnieÅ„ do edycji wybranej grupy", - "admin.access-control.epeople.table.edit.buttons.remove":"UsuÅ„ \"{{name}}\"", - "admin.access-control.epeople.no-items":"Brak użytkowników do wyÅ›wietlenia.", - "admin.access-control.epeople.form.create":"Utwórz użytkownika", - "admin.access-control.epeople.form.edit":"Edytuj użytkownika", - "admin.access-control.epeople.form.firstName":"ImiÄ™", - "admin.access-control.epeople.form.lastName":"Nazwisko", - "admin.access-control.epeople.form.email":"E-mail", - "admin.access-control.epeople.form.emailHint":"Adres e-mail musi być poprawny", - "admin.access-control.epeople.form.canLogIn":"Możliwość zalogowania", - "admin.access-control.epeople.form.requireCertificate":"Wymagany certyfikat", - "admin.access-control.epeople.form.return":"Powrót", - "admin.access-control.epeople.form.notification.created.success":"UdaÅ‚o siÄ™ utworzyć użytkownika \"{{name}}\"", - "admin.access-control.epeople.form.notification.created.failure":"Nie udaÅ‚o siÄ™ utworzyć użytkownika \"{{name}}\"", - "admin.access-control.epeople.form.notification.created.failure.emailInUse":"Nie udaÅ‚o siÄ™ utworzyć użytkownika \"{{name}}\", email \"{{email}}\" już w użyciu.", - "admin.access-control.epeople.form.notification.edited.failure.emailInUse":"Nie udaÅ‚o siÄ™ utworzyć użytkownika \"{{name}}\", email \"{{email}}\" już w użyciu.", - "admin.access-control.epeople.form.notification.edited.success":"UdaÅ‚o siÄ™ edytować użytkownika \"{{name}}\"", - "admin.access-control.epeople.form.notification.edited.failure":"Nie udaÅ‚o siÄ™ edytować użytkownika \"{{name}}\"", - "admin.access-control.epeople.form.notification.deleted.success":"UdaÅ‚o siÄ™ usunąć użytkownika \"{{name}}\"", - "admin.access-control.epeople.form.notification.deleted.failure":"Nie udaÅ‚o siÄ™ usunąć użytkownika \"{{name}}\"", - "admin.access-control.epeople.form.groupsEPersonIsMemberOf":"CzÅ‚onek grup:", - "admin.access-control.epeople.form.table.id":"ID", - "admin.access-control.epeople.form.table.name":"Nazwa", - "admin.access-control.epeople.form.table.collectionOrCommunity":"Zbiór/kolekcja", - "admin.access-control.epeople.form.memberOfNoGroups":"Ten użytkownik nie jest czÅ‚onkiem żadnej grupy", - "admin.access-control.epeople.form.goToGroups":"Dodaj do grup", - "admin.access-control.epeople.notification.deleted.failure":"Nie udaÅ‚o siÄ™ usunąć użytkownika: \"{{name}}\"", - "admin.access-control.epeople.notification.deleted.success":"UdaÅ‚o siÄ™ usunąć użytkownika: \"{{name}}\"", - "admin.access-control.groups.title":"Grupy", - "admin.access-control.groups.breadcrumbs":"Grupy", - "admin.access-control.groups.singleGroup.breadcrumbs":"Edytuj grupÄ™", - "admin.access-control.groups.title.singleGroup":"Edytuj grupÄ™", - "admin.access-control.groups.title.addGroup":"Nowa grupa", - "admin.access-control.groups.addGroup.breadcrumbs":"Nowa grupa", - "admin.access-control.groups.head":"Grupy/role", - "admin.access-control.groups.button.add":"Dodaj grupÄ™", - "admin.access-control.groups.search.head":"Szukaj grup", - "admin.access-control.groups.button.see-all":"Przeszukaj wszystko", - "admin.access-control.groups.search.button":"Wyszukaj", - "admin.access-control.groups.search.placeholder":"Wyszukaj grupy...", - "admin.access-control.groups.table.id":"ID", - "admin.access-control.groups.table.name":"Nazwa", - "admin.access-control.groups.table.collectionOrCommunity":"Zbiór/kolekcja", - "admin.access-control.groups.table.members":"CzÅ‚onkowie", - "admin.access-control.groups.table.edit":"Edytuj", - "admin.access-control.groups.table.edit.buttons.edit":"Edytuj \"{{name}}\"", - "admin.access-control.groups.no-items":"Nie znaleziono grup z podanÄ… frazÄ… lub podanym UUID", - "admin.access-control.groups.notification.deleted.success":"UdaÅ‚o siÄ™ usunąć grupÄ™ \"{{name}}\"", - "admin.access-control.groups.notification.deleted.failure.title":"Nie udaÅ‚o siÄ™ usunąć grupy \"{{name}}\"", - "admin.access-control.groups.notification.deleted.failure.content":"Powód: \"{{cause}}\"", - "admin.access-control.groups.form.alert.permanent":"Ta grupa jest staÅ‚a, wiÄ™c nie może być edytowana ani usuniÄ™ta. Nadal możesz dodawać i usuwać czÅ‚onków grupy za pomocÄ… tej strony.", - "admin.access-control.groups.form.alert.workflowGroup":"Ta grupa nie może być edytowana lub usuniÄ™ta, ponieważ odnosi siÄ™ do roli lub bierze udziaÅ‚ w procesie \"{{name}}\" {{comcol}}. Możesz jÄ… usunąć ze strony <a href='{{comcolEditRolesRoute}}'>\"assign roles\"</a> edycji {{comcol}}. Wciąż może dodawać i usuwać czÅ‚onków tej grupy, korzystajÄ…c z tej strony.", - "admin.access-control.groups.form.head.create":"Utwórz grupÄ™", - "admin.access-control.groups.form.head.edit":"Edytuj grupÄ™", - "admin.access-control.groups.form.groupName":"Nazwa grupy", - "admin.access-control.groups.form.groupCommunity":"Zbiór lub kolekcja", - "admin.access-control.groups.form.groupDescription":"Opis", - "admin.access-control.groups.form.notification.created.success":"UdaÅ‚o siÄ™ utworzyć grupÄ™ \"{{name}}\"", - "admin.access-control.groups.form.notification.created.failure":"Nie udaÅ‚o siÄ™ utworzyć grupy \"{{name}}\"", - "admin.access-control.groups.form.notification.created.failure.groupNameInUse":"Nie udaÅ‚o siÄ™ utworzyć grupy o nazwie: \"{{name}}\", upewnij siÄ™, że nazwa nie jest już używana.", - "admin.access-control.groups.form.notification.edited.failure":"Nie udaÅ‚o siÄ™ edytować grupy \"{{name}}\"", - "admin.access-control.groups.form.notification.edited.failure.groupNameInUse":"Nazwa \"{{name}}\" już w użyciu!", - "admin.access-control.groups.form.notification.edited.success":"UdaÅ‚o siÄ™ edytować grupÄ™ \"{{name}}\"", - "admin.access-control.groups.form.actions.delete":"UsuÅ„ grupÄ™", - "admin.access-control.groups.form.delete-group.modal.header":"UsuÅ„ grupÄ™ \"{{ dsoName }}\"", - "admin.access-control.groups.form.delete-group.modal.info":"Czy na pewno chcesz usunąć grupÄ™ \"{{ dsoName }}\"", - "admin.access-control.groups.form.delete-group.modal.cancel":"Anuluj", - "admin.access-control.groups.form.delete-group.modal.confirm":"UsuÅ„", - "admin.access-control.groups.form.notification.deleted.success":"UdaÅ‚o siÄ™ usunąć grupÄ™ \"{{ name }}\"", - "admin.access-control.groups.form.notification.deleted.failure.title":"Nie udaÅ‚o siÄ™ usunąć grupy \"{{ name }}\"", - "admin.access-control.groups.form.notification.deleted.failure.content":"Powód: \"{{ cause }}\"", - "admin.access-control.groups.form.members-list.head":"Użytkownik", - "admin.access-control.groups.form.members-list.search.head":"Dodaj użytkownika", - "admin.access-control.groups.form.members-list.button.see-all":"Pokaż wszystkich", - "admin.access-control.groups.form.members-list.headMembers":"Aktualni czÅ‚onkowie", - "admin.access-control.groups.form.members-list.search.scope.metadata":"Metadane", - "admin.access-control.groups.form.members-list.search.scope.email":"E-mail", - "admin.access-control.groups.form.members-list.search.button":"Wyszukaj", - "admin.access-control.groups.form.members-list.table.id":"ID", - "admin.access-control.groups.form.members-list.table.name":"Nazwa", - "admin.access-control.groups.form.members-list.table.identity":"Tożsamość", - "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.edit":"UsuÅ„ / Dodaj", - "admin.access-control.groups.form.members-list.table.edit.buttons.remove":"UsuÅ„ użytkownika o nazwie \"{{name}}\"", - "admin.access-control.groups.form.members-list.notification.success.addMember":"UdaÅ‚o siÄ™ dodać użytkownika o nazwie: \"{{name}}\"", - "admin.access-control.groups.form.members-list.notification.failure.addMember":"Nie udaÅ‚o siÄ™ dodać użytkownika o nazwie: \"{{name}}\"", - "admin.access-control.groups.form.members-list.notification.success.deleteMember":"UdaÅ‚o siÄ™ usunąć użytkownika o nazwie: \"{{name}}\"", - "admin.access-control.groups.form.members-list.notification.failure.deleteMember":"Nie udaÅ‚o siÄ™ usunąć użytkownika o nazwie: \"{{name}}\"", - "admin.access-control.groups.form.members-list.table.edit.buttons.add":"Dodaj użytkownika o nazwie \"{{name}}\"", - "admin.access-control.groups.form.members-list.notification.failure.noActiveGroup":"Brak aktywnej grupy, najpierw wpisz nazwÄ™ grupy.", - "admin.access-control.groups.form.members-list.no-members-yet":"Brak użytkowników w grupie, wyszukaj ich i dodaj.", - "admin.access-control.groups.form.members-list.no-items":"Nie znaleziono użytkowników podczas wyszukiwania", - "admin.access-control.groups.form.subgroups-list.notification.failure":"CoÅ› poszÅ‚o nie tak: \"{{cause}}\"", - "admin.access-control.groups.form.subgroups-list.head":"Grupy", - "admin.access-control.groups.form.subgroups-list.search.head":"Dodaj podgrupÄ™", - "admin.access-control.groups.form.subgroups-list.button.see-all":"PrzeglÄ…daj wszystkie", - "admin.access-control.groups.form.subgroups-list.headSubgroups":"Aktualne podgrupy", - "admin.access-control.groups.form.subgroups-list.search.button":"Wyszukaj", - "admin.access-control.groups.form.subgroups-list.table.id":"ID", - "admin.access-control.groups.form.subgroups-list.table.name":"Nazwa", - "admin.access-control.groups.form.subgroups-list.table.collectionOrCommunity":"Zbiór/kolekcja", - "admin.access-control.groups.form.subgroups-list.table.edit":"UsuÅ„ / Dodaj", - "admin.access-control.groups.form.subgroups-list.table.edit.buttons.remove":"UsuÅ„ podgrupÄ™ o nazwie \"{{name}}\"", - "admin.access-control.groups.form.subgroups-list.table.edit.buttons.add":"Dodaj podgrupÄ™ o nazwie \"{{name}}\"", - "admin.access-control.groups.form.subgroups-list.table.edit.currentGroup":"Aktualna grupa", - "admin.access-control.groups.form.subgroups-list.notification.success.addSubgroup":"UdaÅ‚o siÄ™ dodać podgrupÄ™: \"{{name}}\"", - "admin.access-control.groups.form.subgroups-list.notification.failure.addSubgroup":"Nie udaÅ‚o siÄ™ dodać podgrupy: \"{{name}}\"", - "admin.access-control.groups.form.subgroups-list.notification.success.deleteSubgroup":"UdaÅ‚o siÄ™ usunąć podgrupÄ™: \"{{name}}\"", - "admin.access-control.groups.form.subgroups-list.notification.failure.deleteSubgroup":"Nie udaÅ‚o siÄ™ usunąć podgrupy: \"{{name}}\"", - "admin.access-control.groups.form.subgroups-list.notification.failure.noActiveGroup":"Brak aktywnej grupy, najpierw wpisz nazwÄ™ grupy.", - "admin.access-control.groups.form.subgroups-list.notification.failure.subgroupToAddIsActiveGroup":"Ta grupa jest już stworzona i nie może zostać dodana pononwie.", - "admin.access-control.groups.form.subgroups-list.no-items":"Nie znaleziono grup z tÄ… nazwÄ… lub UUID", - "admin.access-control.groups.form.subgroups-list.no-subgroups-yet":"Brak podgrup w grupie.", - "admin.access-control.groups.form.return":"Powrót", - "admin.search.breadcrumbs":"Wyszukiwanie administracyjne", - "admin.search.collection.edit":"Edytuj", - "admin.search.community.edit":"Edytuj", - "admin.search.item.delete":"UsuÅ„", - "admin.search.item.edit":"Edytuj", - "admin.search.item.make-private":"Ukryj", - "admin.search.item.make-public":"Upublicznij", - "admin.search.item.move":"PrzenieÅ›", - "admin.search.item.reinstate":"ZmieÅ„ instancjÄ™", - "admin.search.item.withdraw":"Wycofane", - "admin.search.title":"Wyszukiwanie administracyjne", - "administrativeView.search.results.head":"Wyszukiwanie administracyjne", - "admin.workflow.breadcrumbs":"ZarzÄ…dzaj procesem", - "admin.workflow.title":"ZarzÄ…dzaj procesem", - "admin.workflow.item.workflow":"Proces", - "admin.workflow.item.delete":"UsuÅ„", - "admin.workflow.item.send-back":"OdeÅ›lij z powrotem", - "admin.metadata-import.breadcrumbs":"Importuj metadane", - "admin.metadata-import.title":"Importuj metadane", - "admin.metadata-import.page.header":"Importuj metadane", - "admin.metadata-import.page.help":"Tutaj możesz zaimportować pliki CSV, w których znajdujÄ… siÄ™ metadane do operacji wsadowej. Zaimportuj je poprzez upuszczenie ich lub znajdź je na swoim komputerze", - "admin.metadata-import.page.dropMsg":"Upuść plik w formacie CSV", - "admin.metadata-import.page.dropMsgReplace":"Upuść, aby zastÄ…pić metadane w formacie CSV do importu", - "admin.metadata-import.page.button.return":"Powrót", - "admin.metadata-import.page.button.proceed":"Zastosuj", - "admin.metadata-import.page.error.addFile":"Najpierw wybierz plik!", - "auth.errors.invalid-user":"NiewÅ‚aÅ›ciwy adres e-mail lub hasÅ‚o.", - "auth.messages.expired":"Twoja sesja wygasÅ‚a. Zaloguj siÄ™ ponownie.", - "auth.messages.token-refresh-failed":"OdÅ›wieżenie sesji nie powiodÅ‚o siÄ™. Zaloguj siÄ™ ponownie.", - "bitstream.download.page":"Pobieranie {{bitstream}}...", - "bitstream.download.page.back":"Powrót", - "bitstream.edit.authorizations.link":"Edytuj polityki plików", - "bitstream.edit.authorizations.title":"Edytuj polityki plików", - "bitstream.edit.return":"Powrót", - "bitstream.edit.bitstream":"Pliki: ", - "bitstream.edit.form.description.hint":"Opcjonalnie wprowadź krótki opis pliku, np.: \"<i>Główna część artykuÅ‚u</i>\" lub \"<i>Dane z eksperymentu</i>\".", - "bitstream.edit.form.description.label":"Opis", - "bitstream.edit.form.embargo.hint":"Pierwszy dzieÅ„, od kiedy dostÄ™p zostanie udzielony. <b>Tej daty nie może być edytować w tym formularzu.</b> Aby wybrać okres embarga czasowego, wybierz <i>Status pozycji</i> tab, kliknij <i>Autoryzacje...</i>, stwórz lub edytuj plik <i>PRZEYCZTAJ</i> zasady i wybierz okreÅ›lonÄ… <i>DatÄ™ poczÄ…tkowÄ…</i>.", - "bitstream.edit.form.embargo.label":"Embargo do wybranej daty", - "bitstream.edit.form.fileName.hint":"Zmiana nazwy pliku dla strumienia bitów. Zauważ, że zmieni to wyÅ›wietlany adres URL strumienia bitów, ale stare linki nadal bÄ™dÄ… dziaÅ‚ać, o ile nie zmieni siÄ™ identyfikator sekwencji.", - "bitstream.edit.form.fileName.label":"Nazwa pliku", - "bitstream.edit.form.newFormat.label":"Opisz nowy format", - "bitstream.edit.form.newFormat.hint":"Program, którego użyto do stworzenia pliku i numer wersji (np.: \"<i>ACMESoft SuperApp version 1.5</i>\").", - "bitstream.edit.form.primaryBitstream.label":"Pierwotny plik", - "bitstream.edit.form.selectedFormat.hint":"JeÅ›li formatu nie ma na powyższej liÅ›cie, <b>wybierz \"format not in list\" above</b> i opisz jako \"Describe new format\".", - "bitstream.edit.form.selectedFormat.label":"Wybrany format", - "bitstream.edit.form.selectedFormat.unknown":"Tego formatu nie ma na liÅ›cie", - "bitstream.edit.notifications.error.format.title":"WystÄ…piÅ‚ bÅ‚Ä…d podczas zapisu formatu pliku", - "bitstream.edit.notifications.saved.content":"Zmiany w pliku zostaÅ‚y zapisane.", - "bitstream.edit.notifications.saved.title":"Plik zostaÅ‚ zapisany", - "bitstream.edit.title":"Edytuj plik", - "bitstream-request-a-copy.alert.canDownload1":"Masz już dostÄ™p do tego pliki. JeÅ›li chcesz go pobrać, kliknij ", - "bitstream-request-a-copy.alert.canDownload2":"tutaj", - "bitstream-request-a-copy.header":"WystÄ…p o kopiÄ™ wybranego pliku", - "bitstream-request-a-copy.intro":"Wpisz nastÄ™pujÄ…ce informacje, aby wystÄ…pić o kopiÄ™ tej pozycji: ", - "bitstream-request-a-copy.intro.bitstream.one":"WystÄ…pienie o dostÄ™p do nastÄ™pujÄ…cych plików: ", - "bitstream-request-a-copy.intro.bitstream.all":"WystÄ…pienie o dostÄ™p do wszystkich plików. ", - "bitstream-request-a-copy.name.label":"ImiÄ™ *", - "bitstream-request-a-copy.name.error":"ImiÄ™ jest wymagane", - "bitstream-request-a-copy.email.label":"Adres e-mail *", - "bitstream-request-a-copy.email.hint":"Plik zostanie przesÅ‚any na podany adres e-mail", - "bitstream-request-a-copy.email.error":"ProszÄ™ wprowadzić prawidÅ‚owy adres e-mail", - "bitstream-request-a-copy.allfiles.label":"Pliki", - "bitstream-request-a-copy.files-all-false.label":"Tylko plik, dla którego wystÄ…piono o dostÄ™p", - "bitstream-request-a-copy.files-all-true.label":"Wszystkie pliki (w tej pozycji) z ograniczonym dostÄ™pem", - "bitstream-request-a-copy.message.label":"Wiadomość", - "bitstream-request-a-copy.return":"Powrót", - "bitstream-request-a-copy.submit":"WystÄ…p o kopiÄ™", - "bitstream-request-a-copy.submit.success":"WystÄ…pienie o dostÄ™p do pliku zostaÅ‚o przesÅ‚ane.", - "bitstream-request-a-copy.submit.error":"CoÅ› poszÅ‚o nie tak podczas wysyÅ‚ania wystÄ…pienia o dostÄ™p do pliku", - "browse.comcol.by.author":"wg autorów", - "browse.comcol.by.dateissued":"wg daty wydania", - "browse.comcol.by.subject":"wg tematu", - "browse.comcol.by.title":"wg tytuÅ‚u", - "browse.comcol.head":"PrzeglÄ…daj", - "browse.empty":"Brak rekordów do wyÅ›wietlenia.", - "browse.metadata.author":"Autor", - "browse.metadata.dateissued":"Data wydania", - "browse.metadata.subject":"Temat", - "browse.metadata.title":"TytuÅ‚", - "browse.metadata.author.breadcrumbs":"PrzeglÄ…daj wg autorów", - "browse.metadata.dateissued.breadcrumbs":"PrzeglÄ…daj wg daty wydania", - "browse.metadata.subject.breadcrumbs":"PrzeglÄ…daj wg tematów", - "browse.metadata.title.breadcrumbs":"PrzeglÄ…daj wg tytułów", - "browse.startsWith.choose_start":"(Wybierz start)", - "browse.startsWith.choose_year":"(Wybierz rok)", - "browse.startsWith.choose_year.label":"Wybierz rok wydania", - "browse.startsWith.jump":"Przejdź do miejsca w indeksie:", - "browse.startsWith.months.april":"kwiecieÅ„", - "browse.startsWith.months.august":"sierpieÅ„", - "browse.startsWith.months.december":"grudzieÅ„", - "browse.startsWith.months.february":"luty", - "browse.startsWith.months.january":"styczeÅ„", - "browse.startsWith.months.july":"lipiec", - "browse.startsWith.months.june":"czerwiec", - "browse.startsWith.months.march":"marzec", - "browse.startsWith.months.may":"maj", - "browse.startsWith.months.none":"(wybierz miesiÄ…c)", - "browse.startsWith.months.none.label":"Wybierz miesiÄ…c wydania", - "browse.startsWith.months.november":"listopad", - "browse.startsWith.months.october":"październik", - "browse.startsWith.months.september":"wrzesieÅ„", - "browse.startsWith.submit":"Zastosuj", - "browse.startsWith.type_date":"Lub wybierz datÄ™ (rok-miesiÄ…c) i kliknij 'PrzeglÄ…daj'", - "browse.startsWith.type_date.label":"Lub wybierz datÄ™ (rok-miesiÄ…c) i kliknij przycisk przeglÄ…dania", - "browse.startsWith.type_text":"Wpisz kilka pierwszych liter i kliknij przycisk przeglÄ…dania", - "browse.title":"PrzeglÄ…daj {{ collection }} wg {{ field }} {{ value }}", - "chips.remove":"UsuÅ„ chip", - "collection.create.head":"Utwórz kolekcjÄ™", - "collection.create.notifications.success":"UdaÅ‚o siÄ™ utworzyć kolekcjÄ™", - "collection.create.sub-head":"UdaÅ‚o siÄ™ utworzyć kolekcjÄ™ dla zbioru {{ parent }}", - "collection.curate.header":"Administrator kolekcji: {{collection}}", - "collection.delete.cancel":"Anuluj", - "collection.delete.confirm":"Zatwierdź", - "collection.delete.processing":"Usuwanie", - "collection.delete.head":"UsuÅ„ kolekcjÄ™", - "collection.delete.notification.fail":"Kolekcja nie może być usuniÄ™t", - "collection.delete.notification.success":"UdaÅ‚o siÄ™ usunąć kolekcjÄ™", - "collection.delete.text":"Czy na pewno chcesz usunąć kolekcjÄ™ \"{{ dso }}\"", - "collection.edit.delete":"UsuÅ„ kolekcjÄ™", - "collection.edit.head":"Edytuj kolekcjÄ™", - "collection.edit.breadcrumbs":"Edytuj kolekcjÄ™", - "collection.edit.tabs.mapper.head":"Item Mapper", - "collection.edit.tabs.item-mapper.title":"Edytuj kolekcjÄ™ - Item Mapper", - "collection.edit.item-mapper.cancel":"Anuluj", - "collection.edit.item-mapper.collection":"Kolekcja: \"<b>{{name}}</b>\"", - "collection.edit.item-mapper.confirm":"Mapuj wybrane elementy", - "collection.edit.item-mapper.description":"To jest narzÄ™dzie mapowania elementów, które pozwala administratorom kolekcji mapować elementy z innych kolekcji do tej kolekcji. Możesz wyszukiwać elementy z innych kolekcji i mapować je lub przeglÄ…dać listÄ™ aktualnie zmapowanych elementów.", - "collection.edit.item-mapper.head":"Item Mapper - Mapuj pozycje z innych kolekcji", - "collection.edit.item-mapper.no-search":"Wpisz co chcesz wyszukać", - "collection.edit.item-mapper.notifications.map.error.content":"WystÄ…piÅ‚y bÅ‚Ä™dy podczas mapowania {{amount}} pozycji.", - "collection.edit.item-mapper.notifications.map.error.head":"Mapowanie bÅ‚Ä™dów", - "collection.edit.item-mapper.notifications.map.success.content":"UdaÅ‚o siÄ™ zmapować {{amount}} pozycji.", - "collection.edit.item-mapper.notifications.map.success.head":"Mapowanie zakoÅ„czone", - "collection.edit.item-mapper.notifications.unmap.error.content":"BÅ‚Ä™dy wystÄ…piÅ‚y podczas usuwania mapowania z {{amount}} elementów.", - "collection.edit.item-mapper.notifications.unmap.error.head":"UsuÅ„ bÅ‚Ä™dy mapowania", - "collection.edit.item-mapper.notifications.unmap.success.content":"UdaÅ‚o siÄ™ usunąć bÅ‚Ä™dy mapowania z {{amount}} elementów.", - "collection.edit.item-mapper.notifications.unmap.success.head":"Usuwanie mapowania zakoÅ„czone", - "collection.edit.item-mapper.remove":"UsuÅ„ wybrane mapowanie elementów", - "collection.edit.item-mapper.search-form.placeholder":"Wyszukaj pozycje...", - "collection.edit.item-mapper.tabs.browse":"Wyszukaj mapowane elementy", - "collection.edit.item-mapper.tabs.map":"Mapuj nowe elementy", - "collection.edit.logo.delete.title":"UsuÅ„", - "collection.edit.logo.delete-undo.title":"Cofnij usuniÄ™cie", - "collection.edit.logo.label":"Logo kolekcji", - "collection.edit.logo.notifications.add.error":"PrzesyÅ‚anie logo kolekcji nie powiodÅ‚o siÄ™. ProszÄ™ zweryfikować zawartość przed ponownÄ… ", - "collection.edit.logo.notifications.add.success":"UdaÅ‚o siÄ™ przesÅ‚ać logo kolekcji.", - "collection.edit.logo.notifications.delete.success.title":"Logo usuniÄ™te", - "collection.edit.logo.notifications.delete.success.content":"UdaÅ‚o siÄ™ usunąć logo kolekcji", - "collection.edit.logo.notifications.delete.error.title":"BÅ‚Ä…d podczas usuwania loga", - "collection.edit.logo.upload":"Upuść logo kolekcji, aby je wgrać", - "collection.edit.notifications.success":"UdaÅ‚o siÄ™ edytować kolekcjÄ™", - "collection.edit.return":"Powrót", - "collection.edit.tabs.curate.head":"Kurator", - "collection.edit.tabs.curate.title":"Edytowanie kolekcji - kurator", - "collection.edit.tabs.authorizations.head":"Autoryzacje", - "collection.edit.tabs.authorizations.title":"Edytowanie kolekcji - autoryzacje", - "collection.edit.tabs.metadata.head":"Edytuj metadane", - "collection.edit.tabs.metadata.title":"Edytowanie kolekcji - metadane", - "collection.edit.tabs.roles.head":"Przypisz role", - "collection.edit.tabs.roles.title":"Edytowanie kolekcji - role", - "collection.edit.tabs.source.external":"Ta kolekcja pobiera swojÄ… zawartość z zewnÄ™trznego źródÅ‚a", - "collection.edit.tabs.source.form.errors.oaiSource.required":"Musisz wskazać id docelowej kolekcji.", - "collection.edit.tabs.source.form.harvestType":"Odczytywanie zawartoÅ›ci", - "collection.edit.tabs.source.form.head":"Skonfiguruj zewnÄ™trzne źródÅ‚o", - "collection.edit.tabs.source.form.metadataConfigId":"Format metadanych", - "collection.edit.tabs.source.form.oaiSetId":"OkreÅ›lony zestaw ID OAI", - "collection.edit.tabs.source.form.oaiSource":"Dostawca OAI", - "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_BITSTREAMS":"Odczytaj metadane i pliki (wymaga wsparcia ORE)", - "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_REF":"Odczytaj metadane i bibliografiÄ™ (wymaga wsparcia ORE)", - "collection.edit.tabs.source.form.options.harvestType.METADATA_ONLY":"Odczytaj tylko metadane", - "collection.edit.tabs.source.head":"ŹródÅ‚o treÅ›ci", - "collection.edit.tabs.source.notifications.discarded.content":"Twoje zmiany zostaÅ‚y odrzucone. Aby odzyskać swoje zmiany wybierz 'Powrót'", - "collection.edit.tabs.source.notifications.discarded.title":"Zmiany odrzucone", - "collection.edit.tabs.source.notifications.invalid.content":"Zmiany nie zostaÅ‚y zapisane. Sprawdź czy wszystkie pola sÄ… wypeÅ‚nione poprawne przed zapisem.", - "collection.edit.tabs.source.notifications.invalid.title":"NieprawidÅ‚owe metadane", - "collection.edit.tabs.source.notifications.saved.content":"Zmiany wprowadzone w kolekcji zostaÅ‚y zapisane.", - "collection.edit.tabs.source.notifications.saved.title":"ŹródÅ‚o treÅ›ci zapisane", - "collection.edit.tabs.source.title":"Collection Edit - ŹródÅ‚o treÅ›ci", - "collection.edit.template.add-button":"Dodaj", - "collection.edit.template.breadcrumbs":"Szablon pozycji", - "collection.edit.template.cancel":"Anuluj", - "collection.edit.template.delete-button":"UsuÅ„", - "collection.edit.template.edit-button":"Edytuj", - "collection.edit.template.error":"WystÄ…piÅ‚ bÅ‚Ä…d podczas odzyskiwania szablonu pozycji", - "collection.edit.template.head":"Edytuj szablon dla kolekcji \"{{ collection }}\"", - "collection.edit.template.label":"Szablon pozycji", - "collection.edit.template.loading":"Å‚adowanie szablonu pozycji...", - "collection.edit.template.notifications.delete.error":"Nie udaÅ‚o siÄ™ usunąć szablonu pozycji", - "collection.edit.template.notifications.delete.success":"UdaÅ‚o siÄ™ usunąć szablon pozycji", - "collection.edit.template.title":"Edytuj szablon pozycji", - "collection.form.abstract":"Opis skrócony", - "collection.form.description":"Tekst powitalny (HTML)", - "collection.form.errors.title.required":"Wpisz nazwÄ™ kolekcji", - "collection.form.license":"Licencja", - "collection.form.provenance":"Pochodzenie", - "collection.form.rights":"Tekst praw autorskich (HTML)", - "collection.form.tableofcontents":"WiadomoÅ›ci (HTML)", - "collection.form.title":"Nazwa", - "collection.form.entityType":"Typ danych", - "collection.page.browse.recent.head":"Ostatnie zgÅ‚oszenia", - "collection.page.browse.recent.empty":"Brak pozycji do wyÅ›wietlenia", - "collection.page.edit":"Edytuj kolekcjÄ™", - "collection.page.handle":"StaÅ‚y URI dla kolekcji", - "collection.page.license":"Licencja", - "collection.page.news":"WiadomoÅ›ci", - "collection.select.confirm":"Zaakceptuj zaznaczone", - "collection.select.empty":"Brak kolekcji do wyÅ›wietlenia", - "collection.select.table.title":"TytuÅ‚", - "collection.source.controls.head":"Kontrolki odczytywania", - "collection.source.controls.test.submit.error":"CoÅ› poszÅ‚o nie tak podczas rozpoczynania testów ustawieÅ„", - "collection.source.controls.test.failed":"Scenariusz testowy ustawieÅ„ nie zadziaÅ‚aÅ‚", - "collection.source.controls.test.completed":"Scenariusz testowy ustawieÅ„ zostaÅ‚ zakoÅ„czony", - "collection.source.controls.test.submit":"Konfiguracja testowa", - "collection.source.controls.test.running":"Testowanie konfiguracji...", - "collection.source.controls.import.submit.success":"Import zostaÅ‚ rozpoczÄ™ty", - "collection.source.controls.import.submit.error":"CoÅ› poszÅ‚o nie tak podczas rozpoczynania importu", - "collection.source.controls.import.submit":"Importuj teraz", - "collection.source.controls.import.running":"Importowanie...", - "collection.source.controls.import.failed":"WystÄ…piÅ‚ bÅ‚Ä…d podczas importu", - "collection.source.controls.import.completed":"Import zakoÅ„czony", - "collection.source.controls.reset.submit.success":"Reset ustawieÅ„ i powtórny import zostaÅ‚y rozpoczÄ™te poprawnie", - "collection.source.controls.reset.submit.error":"CoÅ› poszÅ‚o nie tak podczas rozpoczynania zresetowanego, powtórnego importu", - "collection.source.controls.reset.failed":"WystÄ…piÅ‚ bÅ‚Ä…d podczas resetowania ustawieÅ„ i ponownego importu", - "collection.source.controls.reset.completed":"Reset ustawieÅ„ i powtórny import zostaÅ‚y zakoÅ„czone", - "collection.source.controls.reset.submit":"Resetowanie i powtórny import", - "collection.source.controls.reset.running":"Resetowanie i powtórny import...", - "collection.source.controls.harvest.status":"Status odczytywania:", - "collection.source.controls.harvest.start":"Czas rozpoczÄ™cia odczytywania:", - "collection.source.controls.harvest.last":"Czas ostatniego odczytywania:", - "collection.source.controls.harvest.message":"Informacje nt. odczytywania:", - "collection.source.controls.harvest.no-information":"bd.", - "collection.source.update.notifications.error.content":"Te ustawienia zostaÅ‚y przetestowane i nie dziaÅ‚ajÄ….", - "collection.source.update.notifications.error.title":"BÅ‚Ä…d serwera", - "communityList.breadcrumbs":"Lista zbiorów", - "communityList.tabTitle":"Lista zbiorów", - "communityList.title":"Lista zbiorów", - "communityList.showMore":"Pokaż wiÄ™cej", - "community.create.head":"Utwórz zbiór", - "community.create.notifications.success":"UdaÅ‚o siÄ™ utworzyć zbiór", - "community.create.sub-head":"Utwórz podzbiór dla zbioru {{ parent }}", - "community.curate.header":"ZarzÄ…dzaj zbiorem: {{community}}", - "community.delete.cancel":"Anuluj", - "community.delete.confirm":"Potwierdź", - "community.delete.processing":"Usuwanie...", - "community.delete.head":"UsuÅ„ zbiór", - "community.delete.notification.fail":"Zbiór nie może być usuniÄ™ty", - "community.delete.notification.success":"UdaÅ‚o siÄ™ usunąć zbiór", - "community.delete.text":"Czy na pewno chcesz usunąć zbiór \"{{ dso }}\"", - "community.edit.delete":"UsuÅ„ ten zbiór", - "community.edit.head":"Edytuj zbiór", - "community.edit.breadcrumbs":"Edytuj zbiór", - "community.edit.logo.delete.title":"UsuÅ„ logo", - "community.edit.logo.delete-undo.title":"Cofnij usuniÄ™cie", - "community.edit.logo.label":"Logo zbioru", - "community.edit.logo.notifications.add.error":"PrzesÅ‚anie loga zbioru nie powiodÅ‚o siÄ™. Sprawdź czy wszystkie parametry sÄ… odpowiednie przed próbÄ… ponownego przesÅ‚ania.", - "community.edit.logo.notifications.add.success":"PrzesÅ‚anie loga powiodÅ‚o siÄ™.", - "community.edit.logo.notifications.delete.success.title":"Logo usuniÄ™te", - "community.edit.logo.notifications.delete.success.content":"UsuniÄ™cie loga zbioru powiodÅ‚o siÄ™", - "community.edit.logo.notifications.delete.error.title":"BÅ‚Ä…d podczas usuwania loga", - "community.edit.logo.upload":"Upuść logo zbioru, aby je przesÅ‚ać", - "community.edit.notifications.success":"UdaÅ‚o siÄ™ edytować zbiór", - "community.edit.notifications.unauthorized":"Nie masz uprawnieÅ„, aby wykonać te zmiany", - "community.edit.notifications.error":"WystÄ…piÅ‚ bÅ‚Ä…d podczas edycji zbioru", - "community.edit.return":"Cofnij", - "community.edit.tabs.curate.head":"Administruj", - "community.edit.tabs.curate.title":"Edycja zbioru - administrator", - "community.edit.tabs.metadata.head":"Edytuj metadane", - "community.edit.tabs.metadata.title":"Edycja zbioru - metadane", - "community.edit.tabs.roles.head":"Przypisz role", - "community.edit.tabs.roles.title":"Edycja zbioru - role", - "community.edit.tabs.authorizations.head":"Uprawnienia", - "community.edit.tabs.authorizations.title":"Edycja zbioru - uprawnienia", - "community.listelement.badge":"Zbiór", - "comcol-role.edit.no-group":"Brak", - "comcol-role.edit.create":"Utwórz", - "comcol-role.edit.restrict":"Ogranicz", - "comcol-role.edit.delete":"UsuÅ„", - "comcol-role.edit.community-admin.name":"Administratorzy", - "comcol-role.edit.collection-admin.name":"Administratorzy", - "comcol-role.edit.community-admin.description":"Administratorzy zbioru mogÄ… tworzyć podzbiory lub kolekcje i zarzÄ…dzać nimi lub przydzielać zarzÄ…dzanie tymi podzbiorami lub kolekcji innym użytkownikom. Ponadto decydujÄ…, kto może przesyÅ‚ać elementy do dowolnych podkolekcji, edytować metadane pozycji (po przesÅ‚aniu) i dodawać (mapować) istniejÄ…ce pozycje z innych kolekcji (z zastrzeżeniem autoryzacji).", - "comcol-role.edit.collection-admin.description":"Administratorzy kolekcji decydujÄ… o tym, kto może przesyÅ‚ać pozycje do kolekcji, edytować metadane pozycji (po ich przesÅ‚aniu) oraz dodawać (mapować) istniejÄ…ce elementy z innych kolekcji do tej kolekcji (z zastrzeżeniem uprawnieÅ„ dla danej kolekcji).", - "comcol-role.edit.submitters.name":"ZgÅ‚aszajÄ…cy", - "comcol-role.edit.submitters.description":"Użytkownicy i grupy, którzy majÄ… uprawnienia do przesyÅ‚ania nowych pozycji do tej kolekcji.", - "comcol-role.edit.item_read.name":"DomyÅ›lny dostÄ™p do odczytu pozycji", - "comcol-role.edit.item_read.description":"Użytkownicy i grupy, które mogÄ… odczytywać nowe pozycje zgÅ‚oszone do tej kolekcji. Zmiany w tej roli nie dziaÅ‚ajÄ… wstecz. IstniejÄ…ce pozycje w systemie bÄ™dÄ… nadal widoczne dla osób, które miaÅ‚y dostÄ™p do odczytu w momencie ich dodania.", - "comcol-role.edit.item_read.anonymous-group":"DomyÅ›lny odczyt dla nowych pozycji jest obecnie ustawiony na Anonimowy.", - "comcol-role.edit.bitstream_read.name":"DomyÅ›lny dostÄ™p do oczytu plików", - "comcol-role.edit.bitstream_read.description":"Administratorzy zbiorów mogÄ… tworzyć podzbiory lub kolekcje, a także zarzÄ…dzać nimi. Ponadto decydujÄ… o tym, kto może przesyÅ‚ać elementy do podkolekcji, edytować metadane pozycji (po ich przesÅ‚aniu) oraz dodawać (mapować) istniejÄ…ce pozycje z innych kolekcji (pod warunkiem posiadania odpowiednich uprawnieÅ„).", - "comcol-role.edit.bitstream_read.anonymous-group":"DomyÅ›lny status odczytu dla nowych plików to Anonimowy.", - "comcol-role.edit.editor.name":"Redaktorzy", - "comcol-role.edit.editor.description":"Redaktorzy mogÄ… edytować metadane nowych pozycji, a nastÄ™pnie akceptować je lub odrzucać.", - "comcol-role.edit.finaleditor.name":"Redaktorzy koÅ„cowi", - "comcol-role.edit.finaleditor.description":"Redaktorzy koÅ„cowi mogÄ… edytować metadane nowych pozycji, ale nie mogÄ™ odrzucać pozycji.", - "comcol-role.edit.reviewer.name":"Recenzenci", - "comcol-role.edit.reviewer.description":"Recenzenci mogÄ… akceptować lub odrzucać nowe pozycje, ale nie mogÄ™ edytować ich metadanych.", - "community.form.abstract":"Opis skrócony", - "community.form.description":"WstÄ™p (HTML)", - "community.form.errors.title.required":"Wprowadź nazwÄ™ zbioru", - "community.form.rights":"Prawa autoskie (HTML)", - "community.form.tableofcontents":"WiadomoÅ›ci (HTML)", - "community.form.title":"Nazwa", - "community.page.edit":"Edytuj ten zbiór", - "community.page.handle":"StaÅ‚y URI zbioru", - "community.page.license":"Licencja", - "community.page.news":"WiadomoÅ›ci", - "community.all-lists.head":"Podzbiory i kolekcje", - "community.sub-collection-list.head":"Kolekcje w tym zbiorze", - "community.sub-community-list.head":"Kolekcje w tym zbiorze", - "cookies.consent.accept-all":"Zaakceptuj wszystko", - "cookies.consent.accept-selected":"Zaakceptuj wybrane", - "cookies.consent.app.opt-out.description":"Aplikacja jest domyÅ›lnie wÅ‚Ä…czona (możesz jÄ… wyÅ‚Ä…czyć)", - "cookies.consent.app.opt-out.title":"(możesz jÄ… wyÅ‚aczyć)", - "cookies.consent.app.purpose":"cel", - "cookies.consent.app.required.description":"Ta aplikacja jest zawsze wymagana", - "cookies.consent.app.required.title":"(zawsze wymagana)", - "cookies.consent.update":"Od ostatniej wizyty zostaÅ‚y wprowadzone zmiany. Zweryfikuj swoje zgody.", - "cookies.consent.close":"Zamknij", - "cookies.consent.decline":"Odrzuć", - "cookies.consent.content-notice.description":"Zbieramy i przetwarzamy Twoje dane do nastÄ™pujÄ…cych celów: <strong>weryfikacja, preferencje, zgody i statystyka</strong>. <br/> JeÅ›li chcesz siÄ™ dowiedzieć wiÄ™cej, przycztaj naszÄ… {privacyPolicy}.", - "cookies.consent.content-notice.learnMore":"Dostosuj", - "cookies.consent.content-modal.description":"Tutaj sÄ… wyÅ›wietlane informacje, które zbieramy o Tobie. Możesz je dostosować wedÅ‚ug swojego uznania.", - "cookies.consent.content-modal.privacy-policy.name":"polityka prywatnoÅ›ci", - "cookies.consent.content-modal.privacy-policy.text":"Aby dowiedzieć siÄ™ wiÄ™cej przeczytaj naszÄ… {privacyPolicy}.", - "cookies.consent.content-modal.title":"Informacje, które zbieramy", - "cookies.consent.app.title.authentication":"Logowanie", - "cookies.consent.app.description.authentication":"Musisz siÄ™ zalogować", - "cookies.consent.app.title.preferences":"Preferencje", - "cookies.consent.app.description.preferences":"Wymagane, aby zapisać Twoje preferencje", - "cookies.consent.app.title.acknowledgement":"Zgody", - "cookies.consent.app.description.acknowledgement":"Wymagane, aby zapisać Twoje preferencje", - "cookies.consent.app.title.google-analytics":"Google Analytics", - "cookies.consent.app.description.google-analytics":"Pozwól na Å›ledzenie do celów statystycznych", - "cookies.consent.purpose.functional":"Funkcjonalne", - "cookies.consent.purpose.statistical":"Statystyczne", - "curation-task.task.checklinks.label":"Sprawdź odnoÅ›niki w metadanych", - "curation-task.task.noop.label":"NOOP", - "curation-task.task.profileformats.label":"Profil formatów plików", - "curation-task.task.requiredmetadata.label":"Sprawdź poprawność wymaganych metadanych", - "curation-task.task.translate.label":"Microsoft Translator", - "curation-task.task.vscan.label":"Skan antywirusowy", - "curation.form.task-select.label":"Zadanie:", - "curation.form.submit":"Start", - "curation.form.submit.success.head":"UdaÅ‚o siÄ™ rozpocząć zadanie administratora", - "curation.form.submit.success.content":"Zostaniesz przeniesiony na stronÄ™ procesu.", - "curation.form.submit.error.head":"Nie udaÅ‚o siÄ™ siÄ™ zakoÅ„czyć zadania administratora", - "curation.form.submit.error.content":"WystÄ…piÅ‚ bÅ‚Ä…d podczas rozpoczynania zadania administracyjnego.", - "curation.form.handle.label":"Automatyzacja:", - "curation.form.handle.hint":"Wskazówka: Wpisz [prefix swojego identyfikatora]/0, aby zautomatyzować zadanie (nie wszystkie zadania mogÄ… wspierać tÄ™ funkcjÄ™)", - "deny-request-copy.email.message":"Drogi użytkowniku {{ recipientName }},\nW odpowiedzi na PaÅ„stwa zapytanie, przykro mi poinformować, że to niemożliwe, aby przestać kopiÄ™ pliku, o który PaÅ„stwo prosili: \"{{ itemUrl }}\" ({{ itemName }}), którego jestem autorem.\n\nPozdrawiam serdecznie,\n{{ authorName }} <{{ authorEmail }}>", - "deny-request-copy.email.subject":"WystÄ…p o kopiÄ™ dokumentu", - "deny-request-copy.error":"WystÄ…piÅ‚ bÅ‚Ä…d", - "deny-request-copy.header":"Odrzuć proÅ›bÄ™ o przesÅ‚anie kopii dokumentu", - "deny-request-copy.intro":"Ta wiadomość zostanie przesÅ‚ana do osoby, która wystÄ…piÅ‚a o dostÄ™p", - "deny-request-copy.success":"Z powodzeniem odrzucono proÅ›bÄ™ o udostÄ™pnienie pozycji", - "dso.name.untitled":"Brak tytuÅ‚u", - "dso-selector.claim.item.head":"Wskazówki profilu", - "dso-selector.claim.item.body":"IstniejÄ… profile, które mogÄ… odnosić siÄ™ do Ciebie. JeÅ›li, któryÅ› z tych profilów jest Twój, wybierz go i przejdź do szczegółów, z opcji wybierz opcjÄ™ przypisania profilu. W innym przypadku możesz utworzyć nowy profil z szablonu, wybierajÄ…c przycisk poniżej.", - "dso-selector.claim.item.create-from-scratch":"Utwórz nowy", - "dso-selector.claim.item.not-mine-label":"Å»aden nie jest mój", - "dso-selector.create.collection.head":"Nowa kolekcja", - "dso-selector.create.collection.sub-level":"Utwórz nowÄ… kolekcjÄ™ w", - "dso-selector.create.community.head":"Nowy zbiór", - "dso-selector.create.community.sub-level":"Utwórz nowy zbiór", - "dso-selector.create.community.top-level":"Utwórz nowy nadrzÄ™dny zbiór", - "dso-selector.create.item.head":"Nowa pozycja", - "dso-selector.create.item.sub-level":"Utwórz nowÄ… pozycjÄ™ w", - "dso-selector.create.submission.head":"Nowe zgÅ‚oszenie", - "dso-selector.edit.collection.head":"Edytuj kolekcjÄ™", - "dso-selector.edit.community.head":"Edytuj zbiór", - "dso-selector.edit.item.head":"Edytuj pozycjÄ™", - "dso-selector.error.title":"WystÄ…piÅ‚ bÅ‚Ä…d podczas wyszukiwania typu {{ type }}", - "dso-selector.export-metadata.dspaceobject.head":"Eksportuj metadane z", - "dso-selector.no-results":"Nie znaleziono {{ type }}", - "dso-selector.placeholder":"Wyszukaj {{ type }}", - "dso-selector.select.collection.head":"Wybierz kolekcjÄ™", - "dso-selector.set-scope.community.head":"Wybierz wyszukiwanie zakresu", - "dso-selector.set-scope.community.button":"Wyszukaj w caÅ‚ym DSpace", - "dso-selector.set-scope.community.input-header":"Wyszukaj zbiór lub kolekcjÄ™", - "confirmation-modal.export-metadata.header":"Eksportuj metadane z {{ dsoName }}", - "confirmation-modal.export-metadata.info":"Czy na pewno chcesz eksportować metadane z {{ dsoName }}", - "confirmation-modal.export-metadata.cancel":"Anuluj", - "confirmation-modal.export-metadata.confirm":"Eksportuj", - "confirmation-modal.delete-eperson.header":"UsuÅ„ użytkownika \"{{ dsoName }}\"", - "confirmation-modal.delete-eperson.info":"Czy na pewno chcesz usunąć użytkownika \"{{ dsoName }}\"", - "confirmation-modal.delete-eperson.cancel":"Anuluj", - "confirmation-modal.delete-eperson.confirm":"UsuÅ„", - "error.bitstream":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia plików", - "error.browse-by":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia pozycji", - "error.collection":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia kolekcji", - "error.collections":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia kolekcji", - "error.community":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia ziboru", - "error.identifier":"Nie znaleziono pozycji z podanym identyfikatorem", - "error.default":"BÅ‚Ä…d", - "error.item":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia pozycji", - "error.items":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia pozycji", - "error.objects":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia obiektów", - "error.recent-submissions":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia ostatniego zgÅ‚oszenia", - "error.search-results":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia wyników wyszukiwania", - "error.sub-collections":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia podkolekcji", - "error.sub-communities":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia podzbiorów", - "error.submission.sections.init-form-error":"WystÄ…piÅ‚ bÅ‚Ä…d w czasie inicjalizacji sekcji, sprawdź konfiguracjÄ™. Szczegóły poniżej: <br> <br>", - "error.top-level-communities":"BÅ‚Ä…d podczas pobierania nadrzÄ™dnego zbioru", - "error.validation.license.notgranted":"Musisz wyrazić tÄ™ zgodÄ™, aby przesÅ‚ać swoje zgÅ‚oszenie. JeÅ›li nie możesz wyrazić zgody w tym momencie, możesz zapisać swojÄ… pracÄ™ i wrócić do niej później lub usunąć zgÅ‚oszenie.", - "error.validation.pattern":"Te dane wejÅ›ciowe sÄ… ograniczone przez aktualny wzór: {{ pattern }}.", - "error.validation.filerequired":"PrzesÅ‚anie pliku jest obowiÄ…zkowe", - "error.validation.required":"Pole jest wymagane", - "error.validation.NotValidEmail":"E-mail nie jest poprawny", - "error.validation.emailTaken":"E-mail jest już zarejestrowany", - "error.validation.groupExists":"Ta grupa już istnieje", - "file-section.error.header":"BÅ‚Ä…d podczas uzyskiwania plików dla tej pozycji", - "footer.copyright":"copyright © 2002-{{ year }}", - "footer.link.dspace":"oprogramowanie DSpace", - "footer.link.lyrasis":"LYRASIS", - "footer.link.cookies":"Ustawienia plików cookies", - "footer.link.privacy-policy":"Polityka prywatnoÅ›ci", - "footer.link.end-user-agreement":"Umowa użytkownika", - "forgot-email.form.header":"Nie pamiÄ™tam hasÅ‚a", - "forgot-email.form.info":"Zarejestruj siÄ™, aby otrzymywać wiadomoÅ›ci o nowych pozycjach w obserowanych kolekcjach, a także przesyÅ‚ać nowe pozycje do repozytorium.", - "forgot-email.form.email":"Adres e-mail *", - "forgot-email.form.email.error.required":"UzupeÅ‚nij adres e-mail", - "forgot-email.form.email.error.pattern":"UzupeÅ‚nij prawidÅ‚owy adres e-mail", - "forgot-email.form.email.hint":"Ten adres e-mail bÄ™dzie zweryfikowany i bÄ™dziesz go używać jako swój login.", - "forgot-email.form.submit":"WyÅ›lij", - "forgot-email.form.success.head":"WysÅ‚ano wiadomość weryfikacyjnÄ…", - "forgot-email.form.success.content":"Wiadomość zostaÅ‚a wysÅ‚ana na adres e-mail {{ email }}. Zawiera ona unikatowy link i dalsze instrukcje postÄ™powania.", - "forgot-email.form.error.head":"BÅ‚Ä…d podczas rejestracji adresu e-mail", - "forgot-email.form.error.content":"WystÄ…piÅ‚ bÅ‚Ä…d poczas próby rejestracji tego adresu e-mail: {{ email }}", - "forgot-password.title":"Nie pamiÄ™tam hasÅ‚a", - "forgot-password.form.head":"Nie pamiÄ™tam hasÅ‚a", - "forgot-password.form.info":"Wpisz nowe hasÅ‚o w polu poniżej i potwierdź je wpisujÄ…c je ponownie w drugim polu. HasÅ‚o powinno mieć co najmniej sześć znaków.", - "forgot-password.form.card.security":"BezpieczeÅ„stwo", - "forgot-password.form.identification.header":"Identifikacja", - "forgot-password.form.identification.email":"Adres e-mail: ", - "forgot-password.form.label.password":"HasÅ‚o", - "forgot-password.form.label.passwordrepeat":"Potwierdź hasÅ‚o", - "forgot-password.form.error.empty-password":"Wpisz hasÅ‚o poniżej.", - "forgot-password.form.error.matching-passwords":"HasÅ‚a nie sÄ… identyczne.", - "forgot-password.form.notification.error.title":"BÅ‚Ä…d podczas próby ustawienia nowego hasÅ‚a", - "forgot-password.form.notification.success.content":"Resetowanie hasÅ‚a udaÅ‚o siÄ™. Zalogowano jako stworzony przed momemntem użytkownik.", - "forgot-password.form.notification.success.title":"Resetowanie hasÅ‚a udane", - "forgot-password.form.submit":"Wpisz hasÅ‚o", - "form.add":"Dodaj", - "form.add-help":"Wybierz ten przycisk, aby dodać aktualny wpis lub dodać nastÄ™pny", - "form.cancel":"Anuluj", - "form.clear":"Wyczyść", - "form.clear-help":"Kliknij tutaj, aby usunąć wybranÄ… wartość", - "form.discard":"Odrzuć", - "form.drag":"PrzeciÄ…gnij", - "form.edit":"Edytuj", - "form.edit-help":"Kliknij tutaj, aby edytować wybranÄ… wartość", - "form.first-name":"ImiÄ™", - "form.last-name":"Nazwisko", - "form.loading":"Åadowanie...", - "form.lookup":"PrzeglÄ…daj", - "form.lookup-help":"Kliknij tutaj, aby zobaczyć istniejÄ…ce powiÄ…zania", - "form.no-results":"Nie znaleziono rezultatów", - "form.no-value":"Nie wprowadzono wartoÅ›ci", - "form.remove":"UsuÅ„", - "form.save":"Zapisz", - "form.save-help":"Zapisz zmiany", - "form.search":"Wyszukaj", - "form.search-help":"Kliknij tutaj, aby wyszukać w istniejÄ…cych komentarzach", - "form.submit":"Zapisz", - "form.repeatable.sort.tip":"Upuść nowÄ… pozycjÄ™ w nowym miejscu", - "grant-deny-request-copy.deny":"Nie przesyÅ‚aj kopii", - "grant-deny-request-copy.email.back":"Cofnij", - "grant-deny-request-copy.email.message":"WiadomoÅ›ci", - "grant-deny-request-copy.email.message.empty":"ProszÄ™ wprowadzić wiadomość", - "grant-deny-request-copy.email.permissions.info":"W tym miejscu możesz przemyÅ›leć ograniczenie dostÄ™pu do dokumentu, aby odpowiadać na mniej próśb o dostÄ™p. JeÅ›li chcesz wystÄ…pić do administratorów reposytorium o zniesienie restrykcji, zaznacz okienko poniżej.", - "grant-deny-request-copy.email.permissions.label":"Ustaw jako otwarty dostÄ™p", - "grant-deny-request-copy.email.send":"WyÅ›lij", - "grant-deny-request-copy.email.subject":"Temat", - "grant-deny-request-copy.email.subject.empty":"Wpisz temat", - "grant-deny-request-copy.grant":"WyÅ›lij kopiÄ™", - "grant-deny-request-copy.header":"ProÅ›ba o przesÅ‚anie kopii dokumentu", - "grant-deny-request-copy.home-page":"Zabierz mnie na stronÄ™ głównÄ…", - "grant-deny-request-copy.intro1":"JeÅ›li jesteÅ› jednym z autorów dokumentu <a href='{{ url }}'>{{ name }}</a>, wybierz jednÄ… z poniższych opcji, aby odpowiedzieć zapytaniu użytkownika.", - "grant-deny-request-copy.intro2":"Po wybraniu opcji, zostanÄ… wyÅ›wietlone sugerowane odpowiedzi, które można edytować.", - "grant-deny-request-copy.processed":"Ta proÅ›ba jest już procesowana. Możesz użyć przycisku poniżej, aby wrócić do strony głównej.", - "grant-request-copy.email.message":"Drogi użytkowniku {{ recipientName }},\nW odpowiedzi na PaÅ„stwa zapytanie, miÅ‚o mi poinformować, że w zaÅ‚Ä…czniku przesyÅ‚am kopiÄ™ dokumentu, o który PaÅ„stwo prosili: \"{{ itemUrl }}\" ({{ itemName }}), którego jestem autorem.\n\nPozdrawiam serdecznie,\n{{ authorName }} <{{ authorEmail }}>", - "grant-request-copy.email.subject":"ProÅ›ba o kopiÄ™ dokumentu", - "grant-request-copy.error":"WystÄ…piÅ‚ bÅ‚Ä…d", - "grant-request-copy.header":"Zezwól na wysÅ‚anie kopii dokumentu", - "grant-request-copy.intro":"To wiadomość zostanie wysÅ‚ana do osoby, która wystÄ…piÅ‚a o dostÄ™p. Wskazane dokumenty zostanÄ… doÅ‚Ä…czone jako zaÅ‚Ä…cznik.", - "grant-request-copy.success":"ProÅ›ba o dostÄ™p do dokumentu zostaÅ‚a przyjÄ™ta", - "home.description":"", - "home.breadcrumbs":"Strona główna", - "home.search-form.placeholder":"Przeszukaj repozytorium...", - "home.title":"Strona główna", - "home.top-level-communities.head":"Zbiory w DSpace", - "home.top-level-communities.help":"Przeszukaj kolekcje", - "info.end-user-agreement.accept":"PrzeczytaÅ‚em/am i akceptujÄ™ umowÄ™ użytkownika", - "info.end-user-agreement.accept.error":"BÅ‚Ä…d wystÄ…piÅ‚ podczas akceptowania umowy użytkownika", - "info.end-user-agreement.accept.success":"UdaÅ‚o siÄ™ zaktualizować umowÄ™ użytkownika", - "info.end-user-agreement.breadcrumbs":"Umowa użytkownika", - "info.end-user-agreement.buttons.cancel":"Anuluj", - "info.end-user-agreement.buttons.save":"Zapisz", - "info.end-user-agreement.head":"Umowa użytkownika", - "info.end-user-agreement.title":"Umowa użytkownika", - "info.privacy.breadcrumbs":"OÅ›wiadczenie polityki prywatnoÅ›ci", - "info.privacy.head":"OÅ›wiadczenie polityki prywatnoÅ›ci", - "info.privacy.title":"OÅ›wiadczenie polityki prywatnoÅ›ci", - "item.alerts.private":"Ta pozycja jest prywatna", - "item.alerts.withdrawn":"Ta pozycja zostaÅ‚a wycofana", - "item.edit.authorizations.heading":"Za pomocÄ… tego edytora możesz przeglÄ…dać i zmieniać polityki dla danej pozycji, a także zmieniać polityki dla poszczególnych części pozycji: paczek i strumieni bitów. W skrócie, pozycja jest kontenerem pakietów, a pakiety sÄ… kontenerami strumieni bitów. Kontenery zazwyczaj majÄ… polityki ADD/REMOVE/READ/WRITE, natomiast strumienie bitów majÄ… tylko polityki READ/WRITE.", - "item.edit.authorizations.title":"Edytuj politykÄ™ tej pozycji", - "item.badge.private":"Prywatny status publikacji", - "item.badge.withdrawn":"Wycofane publikacje", - "item.bitstreams.upload.bundle":"Pakiet", - "item.bitstreams.upload.bundle.placeholder":"Wybierz pakiet", - "item.bitstreams.upload.bundle.new":"Utworz pakiet", - "item.bitstreams.upload.bundles.empty":"Ta pozycja nie zawiera żadnych pakietów, do których można przesÅ‚ać strumieÅ„ bitów.", - "item.bitstreams.upload.cancel":"Anuluj", - "item.bitstreams.upload.drop-message":"Upuść plik, aby przesÅ‚ać", - "item.bitstreams.upload.item":"Pozycja: ", - "item.bitstreams.upload.notifications.bundle.created.content":"UdaÅ‚o siÄ™ utworzyć nowy pakiet.", - "item.bitstreams.upload.notifications.bundle.created.title":"Utwórz pakiet", - "item.bitstreams.upload.notifications.upload.failed":"Zweryfikuj pliki przed spróbowaniem ponownie.", - "item.bitstreams.upload.title":"PrzeÅ›lij strumieÅ„ bitów", - "item.edit.bitstreams.bundle.edit.buttons.upload":"PrzeÅ›lij", - "item.edit.bitstreams.bundle.displaying":"Obecnie wyÅ›wietlono {{ amount }} plików z {{ total }}.", - "item.edit.bitstreams.bundle.load.all":"ZaÅ‚aduj wszystkie ({{ total }})", - "item.edit.bitstreams.bundle.load.more":"ZaÅ‚aduj wiÄ™cej", - "item.edit.bitstreams.bundle.name":"PACZKA: {{ name }}", - "item.edit.bitstreams.discard-button":"Odrzuć", - "item.edit.bitstreams.edit.buttons.download":"Pobierz", - "item.edit.bitstreams.edit.buttons.drag":"PrzeciÄ…gnij", - "item.edit.bitstreams.edit.buttons.edit":"Edytuj", - "item.edit.bitstreams.edit.buttons.remove":"UsuÅ„", - "item.edit.bitstreams.edit.buttons.undo":"Cofnij zmiany", - "item.edit.bitstreams.empty":"Ta pozycja nie zawiera żadnych strumieni bitów. Wybierz strumienie do zaÅ‚adowania, aby je utworzyć.", - "item.edit.bitstreams.headers.actions":"Akcje", - "item.edit.bitstreams.headers.bundle":"Paczka", - "item.edit.bitstreams.headers.description":"Opis", - "item.edit.bitstreams.headers.format":"Format", - "item.edit.bitstreams.headers.name":"Nazwa", - "item.edit.bitstreams.notifications.discarded.content":"Twoje zmiany zostaÅ‚y odrzucone. Aby je przywrócić, wybierz przycisk 'Cofnij'", - "item.edit.bitstreams.notifications.discarded.title":"Zmiany odrzucone", - "item.edit.bitstreams.notifications.move.failed.title":"BÅ‚Ä…d podczas przenoszenia plików", - "item.edit.bitstreams.notifications.move.saved.content":"Zmiany pozycji dla pliku tej pozycji oraz jego paczki zostaÅ‚y zapisane.", - "item.edit.bitstreams.notifications.move.saved.title":"Zmiana pozycji zostaÅ‚a zapisana", - "item.edit.bitstreams.notifications.outdated.content":"Pozycja zostaÅ‚a w miÄ™dzyczasie zmieniona przez innego użytkownika. Twoje zmiany zostaÅ‚y cofniÄ™te, aby uniknąć ewentualnych konfliktów", - "item.edit.bitstreams.notifications.outdated.title":"Zmiany nieaktualne", - "item.edit.bitstreams.notifications.remove.failed.title":"BÅ‚Ä…d podczas usuwania pliku", - "item.edit.bitstreams.notifications.remove.saved.content":"Twoje zmiany dotyczÄ…ce usuniÄ™cia plików z tej pozycji zostaÅ‚y zapisane.", - "item.edit.bitstreams.notifications.remove.saved.title":"Zmiany dotyczÄ…ce usuniÄ™cia zapisane", - "item.edit.bitstreams.reinstate-button":"Cofnij", - "item.edit.bitstreams.save-button":"Zapisz", - "item.edit.bitstreams.upload-button":"PrzeÅ›lij", - "item.edit.delete.cancel":"Anuluj", - "item.edit.delete.confirm":"UsuÅ„", - "item.edit.delete.description":"Czy jesteÅ› pewien, że ta pozycja powinna zostać caÅ‚kowicie usuniÄ™ta? Ostrożnie: Teraz nie pozostanie po tej pozycji żaden Å›lad.", - "item.edit.delete.error":"BÅ‚Ä…d wystÄ…piÅ‚ podczas usuwania pozycji", - "item.edit.delete.header":"UsuÅ„ pozycjÄ™: {{ id }}", - "item.edit.delete.success":"Ta pozycja zostaÅ‚a usuniÄ™ta", - "item.edit.head":"Edytuj pozycjÄ™", - "item.edit.breadcrumbs":"Edytuj pozycjÄ™", - "item.edit.tabs.disabled.tooltip":"Nie masz dostÄ™pu do tej strony", - "item.edit.tabs.mapper.head":"Mapper kolekcji", - "item.edit.tabs.item-mapper.title":"Edytowanie pozycji - Mapper kolekcji", - "item.edit.item-mapper.buttons.add":"Mapowanie pozycji do wybranych kolekcji", - "item.edit.item-mapper.buttons.remove":"UsuÅ„ mapowanie pozycji do wybranych kolekcji", - "item.edit.item-mapper.cancel":"Anuluj", - "item.edit.item-mapper.description":"To jest narzÄ™dzie do mapowania elementów, które pozwala administratorom mapować tÄ™ pozycjÄ™ do innych kolekcji. Możesz wyszukiwać kolekcje i je mapować lub przeglÄ…dać listÄ™ kolekcji, do których dana pozycja jest aktualnie zmapowana.", - "item.edit.item-mapper.head":"Mapper pozycji - Mapowanie pozycji do kolekcji", - "item.edit.item-mapper.item":"Pozycja: \"<b>{{name}}</b>\"", - "item.edit.item-mapper.no-search":"Wpisz zapytanie, które chcesz wyszukać", - "item.edit.item-mapper.notifications.add.error.content":"WystÄ…piÅ‚y bÅ‚Ä™dy dla mapowania pozycji w {{amount}} kolekcjach.", - "item.edit.item-mapper.notifications.add.error.head":"BÅ‚Ä™dy mapowania", - "item.edit.item-mapper.notifications.add.success.content":"UdaÅ‚o siÄ™ zmapować elementy dla {{amount}} kolekcji.", - "item.edit.item-mapper.notifications.add.success.head":"Mapowanie zakoÅ„czone", - "item.edit.item-mapper.notifications.remove.error.content":"WystÄ…piÅ‚y bÅ‚Ä™dy podczas usuwania mapowania do {{amount}} kolekcji.", - "item.edit.item-mapper.notifications.remove.error.head":"UsuniÄ™cie mapowania bÅ‚Ä™dów", - "item.edit.item-mapper.notifications.remove.success.content":"UdaÅ‚o siÄ™ usunąć mapowanie pozycji w {{amount}} kolekcjach.", - "item.edit.item-mapper.notifications.remove.success.head":"Usuwanie mapowania zakoÅ„czone", - "item.edit.item-mapper.search-form.placeholder":"Przeszukaj kolekcje...", - "item.edit.item-mapper.tabs.browse":"PrzeglÄ…daj zmapowane kolekcje", - "item.edit.item-mapper.tabs.map":"Mapuj nowe kolekcje", - "item.edit.metadata.add-button":"Dodaj", - "item.edit.metadata.discard-button":"Odrzuć", - "item.edit.metadata.edit.buttons.edit":"Edytuj", - "item.edit.metadata.edit.buttons.remove":"UsuÅ„", - "item.edit.metadata.edit.buttons.undo":"Cofnij zmiany", - "item.edit.metadata.edit.buttons.unedit":"Zatrzymaj edycjÄ™", - "item.edit.metadata.empty":"Ta pozycja nie zawiera żadnych metadanych. Wybierz Dodaj, aby dodać metadane.", - "item.edit.metadata.headers.edit":"Edytuj", - "item.edit.metadata.headers.field":"Pole", - "item.edit.metadata.headers.language":"JÄ™zyk", - "item.edit.metadata.headers.value":"Wartość", - "item.edit.metadata.metadatafield.invalid":"Wybierz aktualne pole metadanych", - "item.edit.metadata.notifications.discarded.content":"Twoje zmiany zostaÅ‚y odrzucone. Aby wgrać je ponownie wybierz przycisk 'Cofnij'", - "item.edit.metadata.notifications.discarded.title":"Zmiany odrzucone", - "item.edit.metadata.notifications.error.title":"WystÄ…piÅ‚ bÅ‚Ä…d", - "item.edit.metadata.notifications.invalid.content":"Twoje zmiany nie zostaÅ‚y zapisane. Przed zapisaniem upewnij siÄ™, że wszystkie pola sÄ… wypeÅ‚nione prawidÅ‚owo.", - "item.edit.metadata.notifications.invalid.title":"NieprawidÅ‚owe metadane", - "item.edit.metadata.notifications.outdated.content":"Pozycja zostaÅ‚a w miÄ™dzyczasie zmieniona przez innego użytkownika. Twoje zmiany zostaÅ‚y cofniÄ™te, aby zapobiec ewentualnym konfliktom", - "item.edit.metadata.notifications.outdated.title":"Zmiany nieaktualne", - "item.edit.metadata.notifications.saved.content":"Twoje zmiany metadanych tej pozycji zostaÅ‚y zapisane.", - "item.edit.metadata.notifications.saved.title":"Metadane zostaÅ‚y zapisane", - "item.edit.metadata.reinstate-button":"Cofnij", - "item.edit.metadata.save-button":"Zapisz", - "item.edit.modify.overview.field":"Pole", - "item.edit.modify.overview.language":"JÄ™zyk", - "item.edit.modify.overview.value":"Wartość", - "item.edit.move.cancel":"Anuluj", - "item.edit.move.save-button":"Zapisz", - "item.edit.move.discard-button":"Odrzuć", - "item.edit.move.description":"Wybierz kolekcjÄ™, do której chcesz przenieść tÄ™ pozycjÄ™. Aby zawÄ™zić listÄ™ wyÅ›wietlanych kolekcji, możesz wprowadzić zapytanie w polu wyszukiwania.", - "item.edit.move.error":"WystÄ…piÅ‚ bÅ‚Ä…d podczas przenoszenia pozycji", - "item.edit.move.head":"PrzenieÅ› pozycjÄ™: {{id}}", - "item.edit.move.inheritpolicies.checkbox":"Dziedziczenie polityk", - "item.edit.move.inheritpolicies.description":"Dziedzczenie domyÅ›lnych polityk z kolekcji docelowej", - "item.edit.move.move":"PrzenieÅ›", - "item.edit.move.processing":"Przenoszenie...", - "item.edit.move.search.placeholder":"Wpisz zapytanie, aby wyszukać w kolekcjach", - "item.edit.move.success":"Pozycja zostaÅ‚a przeniesiona", - "item.edit.move.title":"PrzenieÅ› pozycjÄ™", - "item.edit.private.cancel":"Anuluj", - "item.edit.private.confirm":"Ukryj", - "item.edit.private.description":"Czy chcesz ukryć tÄ™ pozycjÄ™?", - "item.edit.private.error":"WystÄ…piÅ‚ bÅ‚Ä…d podczas ukrywania pozycji", - "item.edit.private.header":"Ukryj pozycjÄ™: {{ id }}", - "item.edit.private.success":"Pozycja jest teraz ukryta", - "item.edit.public.cancel":"Anuluj", - "item.edit.public.confirm":"Upublicznij", - "item.edit.public.description":"Czy chcesz upublicznić tÄ™ pozycjÄ™?", - "item.edit.public.error":"WystÄ…piÅ‚ bÅ‚Ä…d podczas upubliczniania pozycji", - "item.edit.public.header":"Upublicznij pozycjÄ™: {{ id }}", - "item.edit.public.success":"Pozycja jest teraz publiczna", - "item.edit.reinstate.cancel":"Anuluj", - "item.edit.reinstate.confirm":"Przywróć", - "item.edit.reinstate.description":"Czy chcesz przywrócić tÄ™ pozycjÄ™?", - "item.edit.reinstate.error":"WystÄ…piÅ‚ bÅ‚Ä…d podczas przywracania pozycji", - "item.edit.reinstate.header":"Przywróć pozycjÄ™: {{ id }}", - "item.edit.reinstate.success":"Pozycja zostaÅ‚a przywrócona", - "item.edit.relationships.discard-button":"Odrzuć", - "item.edit.relationships.edit.buttons.add":"Dodaj", - "item.edit.relationships.edit.buttons.remove":"UsuÅ„", - "item.edit.relationships.edit.buttons.undo":"Cofnij zmiany", - "item.edit.relationships.no-relationships":"Brak relacji", - "item.edit.relationships.notifications.discarded.content":"Twoje zmiany zostaÅ‚y cofniÄ™te. Aby przywrócić zmiany wybierz przycisk 'Cofnij'", - "item.edit.relationships.notifications.discarded.title":"Zmiany zostaÅ‚y cofniÄ™te", - "item.edit.relationships.notifications.failed.title":"WystÄ…piÅ‚ bÅ‚Ä…d podczas edytowania relacji", - "item.edit.relationships.notifications.outdated.content":"Ta pozycja zostaÅ‚a wÅ‚aÅ›nie zmieniona przez innego użytkownika. Twoje zmiany zostaÅ‚y cofniÄ™te, aby uniknąć konfliktów", - "item.edit.relationships.notifications.outdated.title":"Zmiany sÄ… nieaktualne", - "item.edit.relationships.notifications.saved.content":"Twoje zmiany w relacjach tej pozycji zostaÅ‚y zapisane.", - "item.edit.relationships.notifications.saved.title":"Relacje zostaÅ‚y zapisane", - "item.edit.relationships.reinstate-button":"Cofnij", - "item.edit.relationships.save-button":"Zapisz", - "item.edit.relationships.no-entity-type":"Dodaj metadanÄ… 'dspace.entity.type', aby umożliwić dodawanie relacji do pozycji", - "item.edit.return":"Cofnij", - "item.edit.tabs.bitstreams.head":"Pliki", - "item.edit.tabs.bitstreams.title":"Edycja pozycji - pliki", - "item.edit.tabs.curate.head":"Administruj", - "item.edit.tabs.curate.title":"Edytowanie pozycji - administruj", - "item.edit.tabs.metadata.head":"Metadane", - "item.edit.tabs.metadata.title":"Edycja pozycji - metadane", - "item.edit.tabs.relationships.head":"Relacje", - "item.edit.tabs.relationships.title":"Edycja pozycja - relacje", - "item.edit.tabs.status.buttons.authorizations.button":"DostÄ™py...", - "item.edit.tabs.status.buttons.authorizations.label":"OkreÅ›lu dostÄ™p do pozycji", - "item.edit.tabs.status.buttons.delete.button":"UsuÅ„ permanentnie", - "item.edit.tabs.status.buttons.delete.label":"UsuÅ„ pozycjÄ™ permanentnie", - "item.edit.tabs.status.buttons.mappedCollections.button":"Zmapowane kolekcje", - "item.edit.tabs.status.buttons.mappedCollections.label":"ZarzÄ…dzaj mapowanymi kolekcjami", - "item.edit.tabs.status.buttons.move.button":"PrzenieÅ›...", - "item.edit.tabs.status.buttons.move.label":"PrzenieÅ› pozycjÄ™ do innej kolekcji", - "item.edit.tabs.status.buttons.private.button":"Ukryj...", - "item.edit.tabs.status.buttons.private.label":"Ukry pozycjÄ™", - "item.edit.tabs.status.buttons.public.button":"Upublicznij...", - "item.edit.tabs.status.buttons.public.label":"Upublicznij pozycjÄ™", - "item.edit.tabs.status.buttons.reinstate.button":"Przywróć...", - "item.edit.tabs.status.buttons.reinstate.label":"Przywróć pozycjÄ™", - "item.edit.tabs.status.buttons.unauthorized":"You're not authorized to perform this action", - "item.edit.tabs.status.buttons.withdraw.button":"Wycofaj...", - "item.edit.tabs.status.buttons.withdraw.label":"Wycofaj z repozytorium", - "item.edit.tabs.status.description":"Witamy na stronie zarzÄ…dzania pozycjami. Z tego miejsca możesz wycofać, przywrócić, przenieść lub usunąć danÄ… pozycjÄ™. Możesz również aktualizować lub dodawać nowe metadane lub pliki..", - "item.edit.tabs.status.head":"Status", - "item.edit.tabs.status.labels.handle":"Identyfikator", - "item.edit.tabs.status.labels.id":"ID pozycji", - "item.edit.tabs.status.labels.itemPage":"Strona pozycji", - "item.edit.tabs.status.labels.lastModified":"Ostatnia modyfikacja", - "item.edit.tabs.status.title":"Edycja pozycji - Status", - "item.edit.tabs.versionhistory.head":"Historia wersji", - "item.edit.tabs.versionhistory.title":"Edycja pozycji - historia wersji", - "item.edit.tabs.versionhistory.under-construction":"Edytowanie lub dodawanie nowych wersji jest niedostÄ™pne w tego poziomu interfejsu.", - "item.edit.tabs.view.head":"Widok pozycji", - "item.edit.tabs.view.title":"Edycja pozycji - widok", - "item.edit.withdraw.cancel":"Anuluj", - "item.edit.withdraw.confirm":"Wycofaj", - "item.edit.withdraw.description":"Czy na pewno chcesz wycofać pozycjÄ™?", - "item.edit.withdraw.error":"WystÄ…piÅ‚ bÅ‚Ä…d podczas wycofywania pozycji", - "item.edit.withdraw.header":"Wycofaj pozycjÄ™: {{ id }}", - "item.edit.withdraw.success":"Pozycja zostaÅ‚a wycofana", - "item.listelement.badge":"Pozycja", - "item.page.description":"Opis", - "item.page.journal-issn":"ISSN czasopisma", - "item.page.journal-title":"TytuÅ‚ czasopisma", - "item.page.publisher":"Wydawca", - "item.page.titleprefix":"Pozycja: ", - "item.page.volume-title":"TytuÅ‚ tomu", - "item.search.results.head":"Wyniki wyszukiwania pozycji", - "item.search.title":"Wyszukiwanie pozycji", - "item.page.abstract":"Abstrakt", - "item.page.author":"Autorzy", - "item.page.citation":"Cytowanie", - "item.page.collections":"Kolekcje", - "item.page.collections.loading":"Åadowanie...", - "item.page.collections.load-more":"ZaÅ‚aduj wiÄ™cej", - "item.page.date":"Data", - "item.page.edit":"Edytuj pozycjÄ™", - "item.page.files":"Pliki", - "item.page.filesection.description":"Opis:", - "item.page.filesection.download":"Pobierz", - "item.page.filesection.format":"Format:", - "item.page.filesection.name":"Nazwa:", - "item.page.filesection.size":"Rozmiar:", - "item.page.journal.search.title":"ArtykuÅ‚y w czasopiÅ›mie", - "item.page.link.full":"Zobacz szczegóły", - "item.page.link.simple":"Uproszczony widok", - "item.page.person.search.title":"ArtykuÅ‚y tego autora", - "item.page.related-items.view-more":"Pokaż o {{ amount }} wiÄ™cej", - "item.page.related-items.view-less":"Ukryj {{ amount }}", - "item.page.relationships.isAuthorOfPublication":"Publikacje", - "item.page.relationships.isJournalOfPublication":"Publikacje", - "item.page.relationships.isOrgUnitOfPerson":"Autorzy", - "item.page.relationships.isOrgUnitOfProject":"Projekty naukowe", - "item.page.subject":"SÅ‚owa kluczowe", - "item.page.uri":"URI", - "item.page.bitstreams.view-more":"Pokaż wiÄ™cej", - "item.page.bitstreams.collapse":"Pokaż mniej", - "item.page.filesection.original.bundle":"Oryginalne pliki", - "item.page.filesection.license.bundle":"Licencja", - "item.page.return":"Powrót", - "item.page.version.create":"Utwórz nowÄ… wersjÄ™", - "item.page.version.hasDraft":"Nowa wersja nie może zostać utworzona, ponieważ istnieje już oczekujÄ…ce na akceptacjÄ™ zgÅ‚oszenie dokumentu tego pliku", - "item.preview.dc.identifier.doi":"DOI", - "item.preview.dc.relation.ispartof":"Czasopismo lub seria", - "item.preview.dc.identifier.isbn":"ISBN", - "item.preview.dc.identifier.uri":"Identyfikator:", - "item.preview.dc.contributor.author":"Autorzy:", - "item.preview.dc.date.issued":"Data publikacji:", - "item.preview.dc.description.abstract":"Abstrakt:", - "item.preview.dc.identifier.other":"Inny identyfikator:", - "item.preview.dc.language.iso":"JÄ™zyk:", - "item.preview.dc.title":"TytuÅ‚:", - "item.preview.dc.title.alternative":"TytuÅ‚ alternatywny", - "item.preview.dc.type":"Typ:", - "item.preview.dc.identifier":"Identyfikator:", - "item.preview.dc.relation.issn":"ISSN", - "item.preview.oaire.citation.issue":"Numer wydania", - "item.preview.oaire.citation.volume":"Numer tomu", - "item.preview.person.familyName":"Nazwisko:", - "item.preview.person.givenName":"Nazwa:", - "item.preview.person.identifier.orcid":"ORCID:", - "item.preview.project.funder.name":"Fundator:", - "item.preview.project.funder.identifier":"Identyfikator fundatora:", - "item.preview.oaire.awardNumber":"ID finansowania:", - "item.preview.dc.coverage.spatial":"Jurysdykcja:", - "item.preview.oaire.fundingStream":"ŹródÅ‚o finansowania:", - "item.select.confirm":"Potwierdź zaznaczone", - "item.select.empty":"Brak pozycji do wyÅ›wietlenia", - "item.select.table.author":"Autor", - "item.select.table.collection":"Kolekcja", - "item.select.table.title":"TytuÅ‚", - "item.version.history.empty":"Jeszcze nie ma innych wersji tej pozycji.", - "item.version.history.head":"Poprzednie wersje", - "item.version.history.return":"Powrót", - "item.version.history.selected":"Wybrane wersje", - "item.version.history.selected.alert":"W tym momencie wyÅ›wietlono wersjÄ™ {{version}} pozycji.", - "item.version.history.table.version":"Wersja", - "item.version.history.table.item":"Pozycja", - "item.version.history.table.editor":"Redaktor", - "item.version.history.table.date":"Data", - "item.version.history.table.summary":"Podsumowanie", - "item.version.history.table.workspaceItem":"Wersja robocza", - "item.version.history.table.workflowItem":"Pozycja workflow", - "item.version.history.table.actions":"Akcja", - "item.version.history.table.action.editWorkspaceItem":"Edytuj wersjÄ™ roboczÄ… pozycji", - "item.version.history.table.action.editSummary":"Edytuj podsumowanie", - "item.version.history.table.action.saveSummary":"Zapisz edycje podsumowania", - "item.version.history.table.action.discardSummary":"Odrzuć edycje podsumowania", - "item.version.history.table.action.newVersion":"Utwórz nowÄ… wersjÄ™ z tej wersji", - "item.version.history.table.action.deleteVersion":"Wersja usuniÄ™ta", - "item.version.history.table.action.hasDraft":"Nowa wersja nie może zostać utworzona, ponieważ istnieje już oczekujÄ…ce na akceptacjÄ™ zgÅ‚oszenie dokumentu tego pliku", - "item.version.notice":"To nie jest najnowsza wersja tej pozycji. Najnowsza wersja jest dostÄ™pna <a href='{{destination}}'>tutaj</a>.", - "item.version.create.modal.header":"Nowa wersja", - "item.version.create.modal.text":"Utwórz nowÄ… wersjÄ™ tej pozycji", - "item.version.create.modal.text.startingFrom":"zaczynajÄ…c od wersji {{version}}", - "item.version.create.modal.button.confirm":"Utwórz", - "item.version.create.modal.button.confirm.tooltip":"Utwórz nowÄ… wersjÄ™", - "item.version.create.modal.button.cancel":"Anuluj", - "item.version.create.modal.button.cancel.tooltip":"Nie stwarzaj nowej wersji", - "item.version.create.modal.form.summary.label":"Podsumowanie", - "item.version.create.modal.form.summary.placeholder":"Wprowadź podsumowanie nowej wersji", - "item.version.create.notification.success":"Nowa wersja zostaÅ‚a utworzona z numerem {{version}}", - "item.version.create.notification.failure":"Nowa wersja nie zostaÅ‚a utworzona", - "item.version.create.notification.inProgress":"Nowa wersja nie może być utworzona, ponieważ propozycja innej wersji jest już zÅ‚ożona do zaakceptowania", - "item.version.delete.modal.header":"UsuÅ„ wersjÄ™", - "item.version.delete.modal.text":"Czy chcesz usunąć wersjÄ™ {{version}}?", - "item.version.delete.modal.button.confirm":"UsuÅ„", - "item.version.delete.modal.button.confirm.tooltip":"UsuÅ„ wersjÄ™", - "item.version.delete.modal.button.cancel":"Anuluj", - "item.version.delete.modal.button.cancel.tooltip":"Nie usuwaj tej wersji", - "item.version.delete.notification.success":"Wersja {{version}} zostaÅ‚a usuniÄ™ta", - "item.version.delete.notification.failure":"Wersja {{version}} nie zostaÅ‚a usuniÄ™ta", - "item.version.edit.notification.success":"Podsumowanie wersji {{version}} zostaÅ‚o zmienione", - "item.version.edit.notification.failure":"Podsumowanie wersji {{version}} nie zostaÅ‚o zmienione", - "journal.listelement.badge":"Czasopismo", - "journal.page.description":"Opis", - "journal.page.edit":"Edytuj tÄ™ pozycjÄ™", - "journal.page.editor":"Redaktor naczelny", - "journal.page.issn":"ISSN", - "journal.page.publisher":"Wydawca", - "journal.page.titleprefix":"Czasopismo: ", - "journal.search.results.head":"Wyniki wyszukiwania czasopism", - "journal.search.title":"Wyszukiwanie czasopism", - "journalissue.listelement.badge":"Numer czasopisma", - "journalissue.page.description":"Opis", - "journalissue.page.edit":"Edytuj pozycjÄ™", - "journalissue.page.issuedate":"Data wydania", - "journalissue.page.journal-issn":"ISSN czasopisma", - "journalissue.page.journal-title":"TytuÅ‚ czasopisma", - "journalissue.page.keyword":"SÅ‚owa kluczowe", - "journalissue.page.number":"Numer", - "journalissue.page.titleprefix":"Wydanie czasopisma: ", - "journalvolume.listelement.badge":"Numer tomu czasopisma", - "journalvolume.page.description":"Opis", - "journalvolume.page.edit":"Edytuj pozycjÄ™", - "journalvolume.page.issuedate":"Data wydania", - "journalvolume.page.titleprefix":"Numer tomu czasopisma: ", - "journalvolume.page.volume":"Numer wydania", - "iiifsearchable.listelement.badge":"Multimedia dokumentu", - "iiifsearchable.page.titleprefix":"Dokument: ", - "iiifsearchable.page.doi":"StaÅ‚y link: ", - "iiifsearchable.page.issue":"Wydanie: ", - "iiifsearchable.page.description":"Opis: ", - "iiifviewer.fullscreen.notice":"WyÅ›wietl na peÅ‚nym ekranie dla lepszego widoku.", - "iiif.listelement.badge":"Multimedia obrazu", - "iiif.page.titleprefix":"Obraz: ", - "iiif.page.doi":"StaÅ‚y link: ", - "iiif.page.issue":"Numer wydania: ", - "iiif.page.description":"Opis: ", - "loading.bitstream":"Åadowanie pliku...", - "loading.bitstreams":"Åadowanie plików...", - "loading.browse-by":"Åadowanie pozycji...", - "loading.browse-by-page":"Åadowanie strony...", - "loading.collection":"Åadowanie kolekcji...", - "loading.collections":"Åadowanie kolekcji...", - "loading.content-source":"Åadowanie źródÅ‚a treÅ›ci...", - "loading.community":"Åadowanie zbioru...", - "loading.default":"Åadowanie...", - "loading.item":"Åadowanie pozycji...", - "loading.items":"Åadowanie pozycji...", - "loading.mydspace-results":"Åadowanie pozycji...", - "loading.objects":"Åadowanie...", - "loading.recent-submissions":"Åadowanie ostatnich zgÅ‚oszeÅ„...", - "loading.search-results":"Åadowanie wyników wyszukiwania...", - "loading.sub-collections":"Åadowanie podkolekcji...", - "loading.sub-communities":"Åadowanie podzbioru...", - "loading.top-level-communities":"Åadowanie zbioru wyszego szczebla...", - "login.form.email":"Adres e-mail", - "login.form.forgot-password":"Nie pamiÄ™tasz hasÅ‚a?", - "login.form.header":"Zaloguj siÄ™ do DSpace", - "login.form.new-user":"Nie masz konta? Zarejestruj siÄ™.", - "login.form.or-divider":"lub", - "login.form.orcid":"Zaloguj za pomocÄ… ORCID", - "login.form.oidc":"Zaloguj za pomocÄ… OIDC", - "login.form.password":"HasÅ‚o", - "login.form.shibboleth":"Zaloguj za pomocÄ… Shibboleth", - "login.form.submit":"Zaloguj siÄ™", - "login.title":"Zaloguj", - "login.breadcrumbs":"Zaloguj", - "logout.form.header":"Wyloguj siÄ™ z DSpace", - "logout.form.submit":"Wyloguj siÄ™", - "logout.title":"Wylogowywanie", - "menu.header.admin":"Panel administracyjny", - "menu.header.image.logo":"Logo repozytorium", - "menu.header.admin.description":"Menu administratora", - "menu.section.access_control":"Uprawnienia", - "menu.section.access_control_authorizations":"DostÄ™py", - "menu.section.access_control_groups":"Grupy", - "menu.section.access_control_people":"Użytkownicy", - "menu.section.admin_search":"Wyszukiwanie administracyjne", - "menu.section.browse_community":"Ten zbiór", - "menu.section.browse_community_by_author":"Wg autorów", - "menu.section.browse_community_by_issue_date":"Wg daty wydania", - "menu.section.browse_community_by_title":"Wg tytułów", - "menu.section.browse_global":"Wszystko na DSpace", - "menu.section.browse_global_by_author":"Wg autorów", - "menu.section.browse_global_by_dateissued":"Wg daty wydania", - "menu.section.browse_global_by_subject":"Wg tematu", - "menu.section.browse_global_by_title":"Wg tytuÅ‚u", - "menu.section.browse_global_communities_and_collections":"Zbiory i kolekcje", - "menu.section.control_panel":"Panel sterowania", - "menu.section.curation_task":"Zadanie administracyjne", - "menu.section.edit":"Edytuj", - "menu.section.edit_collection":"Kolekcja", - "menu.section.edit_community":"Zbiór", - "menu.section.edit_item":"Pozycja", - "menu.section.export":"Eksport", - "menu.section.export_collection":"Kolekcja", - "menu.section.export_community":"Zbiór", - "menu.section.export_item":"Pozycja", - "menu.section.export_metadata":"Metadane", - "menu.section.icon.access_control":"Sekcja menu Uprawnienia", - "menu.section.icon.admin_search":"Sekcja menu Wyszukiwanie administracyjne", - "menu.section.icon.control_panel":"Sekcja menu Panel sterowania", - "menu.section.icon.curation_tasks":"Sekcja menu Zadanie administracyjne", - "menu.section.icon.edit":"Sekcja menu Edycja", - "menu.section.icon.export":"Sekcja menu Eksport", - "menu.section.icon.find":"Sekcja menu Wyszukiwanie", - "menu.section.icon.import":"Sekcja menu Import", - "menu.section.icon.new":"Sekcja menu Dodaj", - "menu.section.icon.pin":"Przypnij boczny pasek", - "menu.section.icon.processes":"Sekcja menu Procesy", - "menu.section.icon.registries":"Sekcja menu Rejestry", - "menu.section.icon.statistics_task":"Sekcja menu Zadanie statystyczne", - "menu.section.icon.workflow":"Sekcja menu ZarzÄ…dzanie workflow", - "menu.section.icon.unpin":"Odepnij boczny pasek", - "menu.section.import":"Import", - "menu.section.import_batch":"Import masowy (ZIP)", - "menu.section.import_metadata":"Metadane", - "menu.section.new":"Dodaj", - "menu.section.new_collection":"Kolekcja", - "menu.section.new_community":"Zbiór", - "menu.section.new_item":"Pozycja", - "menu.section.new_item_version":"Wersja pozycji", - "menu.section.new_process":"Proces", - "menu.section.pin":"Przypnij pasek boczny", - "menu.section.unpin":"Odepnij pasek boczny", - "menu.section.processes":"Procesy", - "menu.section.registries":"Rejestry", - "menu.section.registries_format":"Formaty", - "menu.section.registries_metadata":"Metadane", - "menu.section.statistics":"Statystyki", - "menu.section.statistics_task":"Zadanie statystyczne", - "menu.section.toggle.access_control":"PrzeÅ‚Ä…cz sekcjÄ™ Uprawnienia", - "menu.section.toggle.control_panel":"PrzeÅ‚Ä…cz sekcjÄ™ Panel sterowania", - "menu.section.toggle.curation_task":"PrzeÅ‚Ä…cz sekcjÄ™ Zadanie kuratora", - "menu.section.toggle.edit":"PrzeÅ‚Ä…cz sekcjÄ™ Edytuj", - "menu.section.toggle.export":"PrzeÅ‚Ä…cz sekcjÄ™ Eksport", - "menu.section.toggle.find":"PrzeÅ‚Ä…cz sekcjÄ™ Wyszukiwanie", - "menu.section.toggle.import":"PrzeÅ‚Ä…cz sekcjÄ™ Import", - "menu.section.toggle.new":"PrzeÅ‚Ä…cz nowÄ… sekcjÄ™", - "menu.section.toggle.registries":"PrzeÅ‚Ä…cz sekcjÄ™ Rejestry", - "menu.section.toggle.statistics_task":"PrzeÅ‚Ä…cz sekcjÄ™ Zadanie statystyczne", - "menu.section.workflow":"ZarzÄ…dzaj Workflow", - "mydspace.breadcrumbs":"Mój DSpace", - "mydspace.description":"", - "mydspace.messages.controller-help":"Wybierz tÄ™ opcjÄ™, aby przesÅ‚ać wiadomość do zgÅ‚aszajÄ…cego.", - "mydspace.messages.description-placeholder":"Wpisz swojÄ… wiadomość tutaj...", - "mydspace.messages.hide-msg":"Ukryj wiadomość", - "mydspace.messages.mark-as-read":"Oznacz jako przeczytane", - "mydspace.messages.mark-as-unread":"Oznacz jako nieprzeczytane", - "mydspace.messages.no-content":"Brak treÅ›ci.", - "mydspace.messages.no-messages":"Brak wiadomoÅ›ci.", - "mydspace.messages.send-btn":"WysÅ‚ano", - "mydspace.messages.show-msg":"Pokaż wiadomość", - "mydspace.messages.subject-placeholder":"Temat...", - "mydspace.messages.submitter-help":"Wybierz tÄ™ opcjÄ™, aby przesÅ‚ać wiadomość do osoby kontrolujÄ…cej.", - "mydspace.messages.title":"WiadomoÅ›ci", - "mydspace.messages.to":"Do", - "mydspace.new-submission":"Nowe zgÅ‚oszenie", - "mydspace.new-submission-external":"Import medatanych z zewnÄ™trznego źródÅ‚a", - "mydspace.new-submission-external-short":"Import metadanych", - "mydspace.results.head":"Twoje zadania", - "mydspace.results.no-abstract":"Brak abstraktu", - "mydspace.results.no-authors":"Brak autorów", - "mydspace.results.no-collections":"Brak kolekcji", - "mydspace.results.no-date":"Brak daty", - "mydspace.results.no-files":"Brak plików", - "mydspace.results.no-results":"Brak pozycji do wyÅ›wietlenia", - "mydspace.results.no-title":"Brak tytuÅ‚u", - "mydspace.results.no-uri":"Brak Uri", - "mydspace.search-form.placeholder":"Wyszukaj w mydspace...", - "mydspace.show.workflow":"Wszystkie zadania", - "mydspace.show.workspace":"Twoje zadania", - "mydspace.status.mydspaceArchived":"Zarchiwizowano", - "mydspace.status.mydspaceValidation":"Walidacja", - "mydspace.status.mydspaceWaitingController":"Oczekiwanie na redaktora", - "mydspace.status.mydspaceWorkflow":"Workflow", - "mydspace.status.mydspaceWorkspace":"Wersja robocza", - "mydspace.title":"Mój DSpace", - "mydspace.upload.upload-failed":"BÅ‚ad podczas tworzenia nowej wersji roboczej. Sprawdź poprawność plików i spróbuj ponownie.", - "mydspace.upload.upload-failed-manyentries":"Plik jest niemożliwy do przetworzenia. Wykryto wiele wejść, a dopuszczalne jest tylko jedno dla jednego pliku.", - "mydspace.upload.upload-failed-moreonefile":"Zapytanie niemożliwe do przetworzenia. Tylko jeden plik jest dopuszczalny.", - "mydspace.upload.upload-multiple-successful":"Utworzono {{qty}} przestrzeni roboczych.", - "mydspace.view-btn":"Widok", - "nav.browse.header":"CaÅ‚y DSpace", - "nav.community-browse.header":"Wg zbiorów", - "nav.language":"ZmieÅ„ jÄ™zyk", - "nav.login":"Zaloguj", - "nav.logout":"Menu profilu użytkownika i wylogowywanie", - "nav.main.description":"Główny pasek nawigacji", - "nav.mydspace":"Mój DSpace", - "nav.profile":"Profil", - "nav.search":"Wyszukiwanie", - "nav.statistics.header":"Statystyki", - "nav.stop-impersonating":"PrzestaÅ„ impersonifikować użytkownika", - "nav.toggle":"PrzeÅ‚Ä…cz nawigacjÄ™", - "nav.user.description":"Pasek profilu użytkownika", - "none.listelement.badge":"Pozycja", - "person.listelement.badge":"Osoba", - "person.listelement.no-title":"Nie znaleziono imienia", - "person.page.birthdate":"Data urodzenia", - "person.page.edit":"Edytuj pozycjÄ™", - "person.page.email":"Adres e-mail", - "person.page.firstname":"ImiÄ™", - "person.page.jobtitle":"Stanowisko", - "person.page.lastname":"Nazwisko", - "person.page.link.full":"Pokaż wszystkie metadane", - "person.page.orcid":"ORCID", - "person.page.orcid.create":"Utwórz ORCID ID", - "person.page.orcid.granted-authorizations":"Udzielone dostÄ™py", - "person.page.orcid.grant-authorizations":"Udziel dostÄ™pu", - "person.page.orcid.link":"PoÅ‚Ä…cz z ORCID ID", - "person.page.orcid.orcid-not-linked-message":"ORCID iD tego profilu ({{ orcid }}) nie jest poÅ‚Ä…czony z bazÄ… ORCID lub poÅ‚Ä…czenie wygasÅ‚o.", - "person.page.orcid.unlink":"Odepnij z ORCID", - "person.page.orcid.unlink.processing":"Procesowanie...", - "person.page.orcid.missing-authorizations":"Brak dostÄ™pów", - "person.page.orcid.missing-authorizations-message":"Brakuj nastÄ™pujÄ…cych dostÄ™pów:", - "person.page.orcid.no-missing-authorizations-message":"Åšwietnie! To miejsce jest puste, co oznacza, że masz dostÄ™p do wszystkich uprawnieÅ„, które sÄ… dostÄ™pne w Twojej instytucji.", - "person.page.orcid.no-orcid-message":"Brak przypisanego ORCID iD. Poprez wybranie przycisku poniżej możesz powiÄ…zać ten profil wraz z kontem ORCID.", - "person.page.orcid.profile-preferences":"Preferencje profilu", - "person.page.orcid.funding-preferences":"Preferencje finansowania", - "person.page.orcid.publications-preferences":"Preferencje publikacji", - "person.page.orcid.remove-orcid-message":"JeÅ›li chcesz usunąć Twój ORCID, skontaktuj siÄ™ z administratorem repozytorium", - "person.page.orcid.save.preference.changes":"Aktualizuj ustawienia", - "person.page.orcid.sync-profile.affiliation":"Afiliacja", - "person.page.orcid.sync-profile.biographical":"Biografia", - "person.page.orcid.sync-profile.education":"Edukacja", - "person.page.orcid.sync-profile.identifiers":"Identyfikatory", - "person.page.orcid.sync-fundings.all":"Wszystkie źrodÅ‚a finansowania", - "person.page.orcid.sync-fundings.mine":"Moje źrodÅ‚a finansowania", - "person.page.orcid.sync-fundings.my_selected":"Wybrane źródÅ‚a finansowania", - "person.page.orcid.sync-fundings.disabled":"Nieaktywne", - "person.page.orcid.sync-publications.all":"Wszystkie publikacje", - "person.page.orcid.sync-publications.mine":"Moje publikacje", - "person.page.orcid.sync-publications.my_selected":"Wybrane publikacje", - "person.page.orcid.sync-publications.disabled":"Nieaktywne", - "person.page.orcid.sync-queue.discard":"Odrzuć zmianÄ™ i nie synchronizuj z ORCID", - "person.page.orcid.sync-queue.discard.error":"Rekord kolejki ORCID nie zostaÅ‚ odrzucony", - "person.page.orcid.sync-queue.discard.success":"Rekord kolejki ORCID zostaÅ‚ odrzucony", - "person.page.orcid.sync-queue.empty-message":"Rejestr kolejki w ORCID jest pusty", - "person.page.orcid.sync-queue.description.affiliation":"Afiliacje", - "person.page.orcid.sync-queue.description.country":"Kraj", - "person.page.orcid.sync-queue.description.education":"Edukacja", - "person.page.orcid.sync-queue.description.external_ids":"ZewnÄ™trzne identyfikatory", - "person.page.orcid.sync-queue.description.other_names":"Inne imiona", - "person.page.orcid.sync-queue.description.qualification":"Kwalifikacje", - "person.page.orcid.sync-queue.description.researcher_urls":"URL naukowca", - "person.page.orcid.sync-queue.description.keywords":"SÅ‚owa kluczowe", - "person.page.orcid.sync-queue.tooltip.insert":"Dodaj nowy wpis w rejestrze ORCID", - "person.page.orcid.sync-queue.tooltip.update":"Aktualizuj ten wpis w rejestrze ORCID", - "person.page.orcid.sync-queue.tooltip.delete":"UsuÅ„ ten wpis z rejestru ORCID", - "person.page.orcid.sync-queue.tooltip.publication":"Publikacja", - "person.page.orcid.sync-queue.tooltip.affiliation":"Afiliacja", - "person.page.orcid.sync-queue.tooltip.education":"Edukacja", - "person.page.orcid.sync-queue.tooltip.qualification":"Kwalifikacje", - "person.page.orcid.sync-queue.tooltip.other_names":"Inna nazwa", - "person.page.orcid.sync-queue.tooltip.country":"Kraj", - "person.page.orcid.sync-queue.tooltip.keywords":"SÅ‚owa kluczowe", - "person.page.orcid.sync-queue.tooltip.external_ids":"ZewnÄ™trzny identyfikator", - "person.page.orcid.sync-queue.tooltip.researcher_urls":"URL naukowca", - "person.page.orcid.sync-queue.send":"Synchronizuj z rejestrem ORCID", - "person.page.orcid.sync-queue.send.unauthorized-error.title":"WysÅ‚anie zgÅ‚oszenia do ORCID nieudane z powodu braku uprawnieÅ„.", - "person.page.orcid.sync-queue.send.unauthorized-error.content":"Wybierz <a href='{{orcid}}'>here</a>, aby wystÄ…pić o niezbÄ™dne uprawnienia. JeÅ›li problem wciąż wystÄ™puje, skontaktuj siÄ™ z administratorem", - "person.page.orcid.sync-queue.send.bad-request-error":"WysÅ‚anie zgÅ‚oszenia do ORCID nie powiodÅ‚o siÄ™ ponieważ źródÅ‚a wysÅ‚ane do rejestru ORCID nie jest poprawne", - "person.page.orcid.sync-queue.send.error":"WysÅ‚anie zgÅ‚oszenia do ORCID nie powiodÅ‚o siÄ™", - "person.page.orcid.sync-queue.send.conflict-error":"ZgÅ‚oszenie do ORCID nie powiodÅ‚o siÄ™, ponieważ ta pozycja jest już dodana do rejestru ORCID", - "person.page.orcid.sync-queue.send.not-found-warning":"Pozycja nie istnieje już w rejestrze ORCID.", - "person.page.orcid.sync-queue.send.success":"ZgÅ‚oszenie do ORCID zostaÅ‚o zakoÅ„czone pomyÅ›lnie", - "person.page.orcid.sync-queue.send.validation-error":"Dane, które chcesz zsynchronizować z ORCID nie sÄ… poprawne", - "person.page.orcid.sync-queue.send.validation-error.amount-currency.required":"Waluta jest wymagana", - "person.page.orcid.sync-queue.send.validation-error.external-id.required":"Aby wysÅ‚ać pozycjÄ™, należy podać przynajmniej jeden identyfikator", - "person.page.orcid.sync-queue.send.validation-error.title.required":"TytuÅ‚ jest wymagany", - "person.page.orcid.sync-queue.send.validation-error.type.required":"Typ jest wymagany", - "person.page.orcid.sync-queue.send.validation-error.start-date.required":"Data poczÄ…tkowa jest wymagana", - "person.page.orcid.sync-queue.send.validation-error.funder.required":"Instytucja finansujÄ…ca jest wymagana", - "person.page.orcid.sync-queue.send.validation-error.organization.required":"Instytucja jest wymagana", - "person.page.orcid.sync-queue.send.validation-error.organization.name-required":"Nazwa instytucji jest wymagana", - "person.page.orcid.sync-queue.send.validation-error.organization.address-required":"Aby wysÅ‚ać instytucjÄ™, należy podać adres", - "person.page.orcid.sync-queue.send.validation-error.organization.city-required":"Aby wysÅ‚ać adres, należy podać miasto", - "person.page.orcid.sync-queue.send.validation-error.organization.country-required":"Aby wysÅ‚ać adres, należy podać kraj", - "person.page.orcid.sync-queue.send.validation-error.disambiguated-organization.required":"Wymagany jest identyfikator umożliwiajÄ…cy rozróżnienie instytucji. ObsÅ‚ugiwane identyfikatory to GRID, Ringgold, kod LEI oraz identyfikatory z rejestru instytucji finansujÄ…cych Crossref.", - "person.page.orcid.sync-queue.send.validation-error.disambiguated-organization.value-required":"Należy uzupeÅ‚nić wartość w identyfikatorze instytucji", - "person.page.orcid.sync-queue.send.validation-error.disambiguation-source.required":"Należy uzupeÅ‚nić źródÅ‚o w identyfikatorze instytucji", - "person.page.orcid.sync-queue.send.validation-error.disambiguation-source.invalid":"ŹródÅ‚o jednego z identyfikatorów organizcji jest niepoprawne. Wspierane źródÅ‚a to RINGGOLD, GRID, LEI and FUNDREF", - "person.page.orcid.synchronization-mode":"Tryb synchronizacji", - "person.page.orcid.synchronization-mode.batch":"Wsad", - "person.page.orcid.synchronization-mode.label":"Tryb synchronizacji", - "person.page.orcid.synchronization-mode-message":"WÅ‚Ä…cz tryb 'Manual' synchronizacja, aby wyÅ‚aczyć tryb synchronizacji wsadowej, wtedy dane do rejestru ORCID bÄ™dÄ… musiaÅ‚y zostać wysÅ‚ane rÄ™cznie", - "person.page.orcid.synchronization-settings-update.success":"Opcje synchronizacji zostaÅ‚y zaktualizowane", - "person.page.orcid.synchronization-settings-update.error":"Opcje synchronizacji nie zostaÅ‚y zaktualizowane", - "person.page.orcid.synchronization-mode.manual":"RÄ™czna", - "person.page.orcid.scope.authenticate":"Uzyskaj swój ORCID iD", - "person.page.orcid.scope.read-limited":"Przeczytaj informacje o ustawieniach widocznoÅ›ci z firmami trzeciami", - "person.page.orcid.scope.activities-update":"Dodaj/aktualizuj swoje aktywnoÅ›ci naukowe", - "person.page.orcid.scope.person-update":"Dodaj/aktualizuj inne informacje o Tobie", - "person.page.orcid.unlink.success":"OdÅ‚Ä…czenie Twojego profilu od rejestru ORCID powiodÅ‚o siÄ™", - "person.page.orcid.unlink.error":"WystÄ…piÅ‚ bÅ‚Ä…d podczas odÅ‚Ä…czania Twojego profilu od rejestru ORCID. Spróbuj ponownie", - "person.page.staffid":"ID pracownika", - "person.page.titleprefix":"Osoba: ", - "person.search.results.head":"Wyniki wyszukiwania użytkowników", - "person.search.title":"Wyniki wyszukiwania użytkowników", - "process.new.select-parameters":"Parametry", - "process.new.cancel":"Anuluj", - "process.new.submit":"Zapisz", - "process.new.select-script":"Skrypt", - "process.new.select-script.placeholder":"Wybierz skrypt...", - "process.new.select-script.required":"Skrypt jest wymagany", - "process.new.parameter.file.upload-button":"Wybierz plik...", - "process.new.parameter.file.required":"ProszÄ™ wybrać plik", - "process.new.parameter.string.required":"Wartość parametru jest wymagana", - "process.new.parameter.type.value":"wartość", - "process.new.parameter.type.file":"plik", - "process.new.parameter.required.missing":"Te parametry sÄ… wymagane, ale nie zostaÅ‚y uzupeÅ‚nione:", - "process.new.notification.success.title":"UdaÅ‚o siÄ™", - "process.new.notification.success.content":"UdaÅ‚o siÄ™ stworzyć proces", - "process.new.notification.error.title":"BÅ‚Ä…d", - "process.new.notification.error.content":"WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia procesu", - "process.new.header":"Utwórz nowy proces", - "process.new.title":"Utwórz nowy proces", - "process.new.breadcrumbs":"Utwórz nowy proces", - "process.detail.arguments":"Argumenty", - "process.detail.arguments.empty":"Do tego procesu nie zostaÅ‚y przypisane żadne argumenty", - "process.detail.back":"Cofnij", - "process.detail.output":"Dane wyjÅ›ciowe procesu", - "process.detail.logs.button":"Odzyskaj dane wyjÅ›ciowe procesu", - "process.detail.logs.loading":"Odzyskiwanie", - "process.detail.logs.none":"Ten proces nie ma danych wyjÅ›ciowych", - "process.detail.output-files":"Pliki", - "process.detail.output-files.empty":"Ten proces nie ma żadnych plików danych wyjÅ›ciowych", - "process.detail.script":"Skrypt", - "process.detail.title":"Proces: {{ id }} - {{ name }}", - "process.detail.start-time":"Czas rozpoczÄ™cia procesu", - "process.detail.end-time":"Czas zakoÅ„czenia procesu", - "process.detail.status":"Status", - "process.detail.create":"Stwórz podobny proces", - "process.overview.table.finish":"Czas zakoÅ„czenia (UTC)", - "process.overview.table.id":"Identyfikator procesu", - "process.overview.table.name":"Nazwa", - "process.overview.table.start":"Czas rozpoczÄ™cia (UTC)", - "process.overview.table.status":"Status", - "process.overview.table.user":"Użytkownik", - "process.overview.title":"PrzeglÄ…d procesów", - "process.overview.breadcrumbs":"PrzeglÄ…d procesów", - "process.overview.new":"Nowy", - "profile.breadcrumbs":"Zaktualizuj profil", - "profile.card.identify":"Dane", - "profile.card.security":"BezpieczeÅ„stwo", - "profile.form.submit":"Zaktualizuj profil", - "profile.groups.head":"Posiadane uprawnienia do kolekcji", - "profile.head":"Zaktualizuj profil", - "profile.metadata.form.error.firstname.required":"ImiÄ™ jest wymagane", - "profile.metadata.form.error.lastname.required":"Nazwisko jest wymagane", - "profile.metadata.form.label.email":"Adres e-mail", - "profile.metadata.form.label.firstname":"ImiÄ™", - "profile.metadata.form.label.language":"JÄ™zyk", - "profile.metadata.form.label.lastname":"Nazwisko", - "profile.metadata.form.label.phone":"Telefon kontaktowy", - "profile.metadata.form.notifications.success.content":"Zmiany w profilu zostaÅ‚y zapisane.", - "profile.metadata.form.notifications.success.title":"Profil zapisany", - "profile.notifications.warning.no-changes.content":"Nie dokonano żadnych zmian w profilu.", - "profile.notifications.warning.no-changes.title":"Brak zmian", - "profile.security.form.error.matching-passwords":"HasÅ‚a nie sÄ… identyczne.", - "profile.security.form.info":"Możesz wprowadzić nowe hasÅ‚o w polu poniżej i zatwierdzić poprzez ponowne wpisanie. HasÅ‚o musi mieć przynajmniej 6 znaków.", - "profile.security.form.label.password":"HasÅ‚o", - "profile.security.form.label.passwordrepeat":"Potwierdź hasÅ‚o", - "profile.security.form.notifications.success.content":"Twoje zmiany w haÅ›le zostaÅ‚y zapisane.", - "profile.security.form.notifications.success.title":"HasÅ‚o zapisane", - "profile.security.form.notifications.error.title":"BÅ‚Ä…d podczas próby zmiany hasÅ‚a", - "profile.security.form.notifications.error.not-same":"HasÅ‚a nie sÄ… identyczne.", - "profile.title":"Zaktualizuj profil", - "profile.card.researcher":"Profil naukowca", - "project.listelement.badge":"Projekt badawczy", - "project.page.contributor":"Autorzy", - "project.page.description":"Opis", - "project.page.edit":"Edytuj pozycjÄ™", - "project.page.expectedcompletion":"Spodziewany termin zakoÅ„czenia", - "project.page.funder":"Instytucje finansujÄ…ce", - "project.page.id":"ID", - "project.page.keyword":"SÅ‚owa kluczowe", - "project.page.status":"Status", - "project.page.titleprefix":"Projekt badawczy: ", - "project.search.results.head":"Wyniki wyszukiwania projektów", - "publication.listelement.badge":"Publikacja", - "publication.page.description":"Opis", - "publication.page.edit":"Edytuj pozycjÄ™", - "publication.page.journal-issn":"ISSN czasopisma", - "publication.page.journal-title":"TytuÅ‚ czasopisma", - "publication.page.publisher":"Wydawca", - "publication.page.titleprefix":"Publikacja: ", - "publication.page.volume-title":"TytuÅ‚ tomu", - "publication.search.results.head":"Wyniki wyszukiwania publikacji", - "publication.search.title":"Wyszukiwanie publikacji", - "media-viewer.next":"Nowy", - "media-viewer.previous":"Poprzedni", - "media-viewer.playlist":"Playlista", - "register-email.title":"Rejestracja nowego użytkownika", - "register-page.create-profile.header":"Stwórz profil", - "register-page.create-profile.identification.header":"Dane", - "register-page.create-profile.identification.email":"Adres e-mail", - "register-page.create-profile.identification.first-name":"ImiÄ™ *", - "register-page.create-profile.identification.first-name.error":"Wpisz imiÄ™", - "register-page.create-profile.identification.last-name":"Nazwisko *", - "register-page.create-profile.identification.last-name.error":"Wpisz nazwisko", - "register-page.create-profile.identification.contact":"Telefon kontaktowy", - "register-page.create-profile.identification.language":"JÄ™zyk", - "register-page.create-profile.security.header":"BezpieczeÅ„stwo", - "register-page.create-profile.security.info":"Wprowadź nowe hasÅ‚o w polu poniżej i zatwierdź poprzez ponowne wpisanie w drugim polu. HasÅ‚o musi mieć przynajmniej 6 znaków.", - "register-page.create-profile.security.label.password":"HasÅ‚o *", - "register-page.create-profile.security.label.passwordrepeat":"Potwierdź hasÅ‚o *", - "register-page.create-profile.security.error.empty-password":"Wprowadź hasÅ‚o w polu poniżej.", - "register-page.create-profile.security.error.matching-passwords":"HasÅ‚a nie sÄ… identyczne.", - "register-page.create-profile.submit":"Rejestracja zakoÅ„czona", - "register-page.create-profile.submit.error.content":"CoÅ› siÄ™ nie udaÅ‚o podczas rejestracji nowego użytkownika.", - "register-page.create-profile.submit.error.head":"Rejestracja nie powiodÅ‚a siÄ™", - "register-page.create-profile.submit.success.content":"Rejestracja powiodÅ‚a siÄ™. Zalogowano jako stworzony użytkownik.", - "register-page.create-profile.submit.success.head":"Rejestracja zakoÅ„czona", - "register-page.registration.header":"Rejestracja nowego użytkownika", - "register-page.registration.info":"Zarejestruj siÄ™, aby otrzymywać wiadomoÅ›ci o nowych pozycjach w obserowanych kolekcjach, a także przesyÅ‚ać nowe pozycje do repozytorium.", - "register-page.registration.email":"Adres e-mail *", - "register-page.registration.email.error.required":"WypeÅ‚nij adres e-mail", - "register-page.registration.email.error.pattern":"WypeÅ‚nij poprawny adres e-mail", - "register-page.registration.email.hint":"Ten adres e-mail bÄ™dzie zweryfikowany i bÄ™dziesz go używać jako swój login.", - "register-page.registration.submit":"Zarejestruj siÄ™", - "register-page.registration.success.head":"Wiadomość weryfikacyjna zostaÅ‚Ä… wysÅ‚ana", - "register-page.registration.success.content":"Wiadomość zostaÅ‚a wysÅ‚ana na adres e-mail {{ email }}. Zawiera ona unikatowy link i dalsze instrukcje postÄ™powania.", - "register-page.registration.error.head":"BÅ‚Ä…d podczas próby rejestracji adresu e-mail", - "register-page.registration.error.content":"BÅ‚Ä…d podczas próby rejestracji adresu e-mail: {{ email }}", - "relationships.add.error.relationship-type.content":"Nie znaleziono dopasowania dla typu relacji {{ type }} pomiÄ™dzy dwoma pozycjami", - "relationships.add.error.server.content":"BÅ‚Ä…d serwera", - "relationships.add.error.title":"Nie można dodać relacji", - "relationships.isAuthorOf":"Autorzy", - "relationships.isAuthorOf.Person":"Autorzy (osoby)", - "relationships.isAuthorOf.OrgUnit":"Autorzy (jednostki organizacyjne)", - "relationships.isIssueOf":"Numery czasopisma", - "relationships.isJournalIssueOf":"Numer czasopisma", - "relationships.isJournalOf":"Czasopisma", - "relationships.isOrgUnitOf":"Jednostki organizacyjne", - "relationships.isPersonOf":"Autorzy", - "relationships.isProjectOf":"Projekty badawcze", - "relationships.isPublicationOf":"Publikacje", - "relationships.isPublicationOfJournalIssue":"ArtykuÅ‚y", - "relationships.isSingleJournalOf":"Czasopismo", - "relationships.isSingleVolumeOf":"Tom czasopisma", - "relationships.isVolumeOf":"Tomy czasopisma", - "relationships.isContributorOf":"Autorzy", - "relationships.isContributorOf.OrgUnit":"Autor (Jednostka organizacyjna)", - "relationships.isContributorOf.Person":"Autor", - "relationships.isFundingAgencyOf.OrgUnit":"Instytucja finansujÄ…ca", - "repository.image.logo":"Logo repozytorium", - "repository.title.prefix":"DSpace Angular :: ", - "researcher.profile.action.processing":"Procesowanie...", - "researcher.profile.associated":"Przypisanie profilu badacza", - "researcher.profile.create.new":"Utwórz nowy", - "researcher.profile.create.success":"Profil badacza zostaÅ‚ utworzony", - "researcher.profile.create.fail":"WystÄ…piÅ‚ bÅ‚Ä…d poczas tworzenia profilu badacza.", - "researcher.profile.delete":"UsuÅ„", - "researcher.profile.expose":"Ujawnij", - "researcher.profile.hide":"Ukryj", - "researcher.profile.not.associated":"Profil badacza nie zostaÅ‚ jeszcze przypisany", - "researcher.profile.view":"Widok", - "researcher.profile.private.visibility":"PRYWATNY", - "researcher.profile.public.visibility":"PUBLICZNY", - "researcher.profile.status":"Status:", - "researcherprofile.claim.not-authorized":"Nie masz uprawnieÅ„, aby wystÄ…pić o tÄ™ pozycjÄ™. Aby otrzymać wiÄ™cej szczegółów, skontaktuj siÄ™ z administratorami.", - "researcherprofile.error.claim.body":"WystÄ…piÅ‚ bÅ‚Ä…d podczas wystÄ…pienia z proÅ›bÄ… o przypisanie profilu. Spróbuj ponownie później.", - "researcherprofile.error.claim.title":"BÅ‚Ä…d", - "researcherprofile.success.claim.body":"WystÄ…pienie z proÅ›bÄ… o przypisanie profilu udane", - "researcherprofile.success.claim.title":"Sukces", - "repository.title.prefixDSpace":"DSpace Angular ::", - "resource-policies.add.button":"Dodaj", - "resource-policies.add.for.":"Dodaj nowÄ… politykÄ™", - "resource-policies.add.for.bitstream":"Dodaj nowÄ… politykÄ™ dla plików", - "resource-policies.add.for.bundle":"Dodaj nowÄ… politykÄ™ paczek", - "resource-policies.add.for.item":"Dodaj nowÄ… politykÄ™ pozycji", - "resource-policies.add.for.community":"Dodaj nowÄ… politykÄ™ zbioru", - "resource-policies.add.for.collection":"Dodaj nowÄ… politykÄ™ kolekcji", - "resource-policies.create.page.heading":"Utwórz nowÄ… politykÄ™ zasobu dla ", - "resource-policies.create.page.failure.content":"WystÄ…piÅ‚ bÅ‚Ä…d podczas dodawania polityki zasobów.", - "resource-policies.create.page.success.content":"DziaÅ‚anie powiodÅ‚o siÄ™", - "resource-policies.create.page.title":"Utwórz nowÄ… politykÄ™ zasobu", - "resource-policies.delete.btn":"UsuÅ„ zaznaczone", - "resource-policies.delete.btn.title":"UsuÅ„ zaznaczone polityki zasobów", - "resource-policies.delete.failure.content":"WystÄ…piÅ‚ bÅ‚Ä…d podczas usuwania wybranych polityk zasobów.", - "resource-policies.delete.success.content":"DziaÅ‚anie powiodÅ‚o siÄ™", - "resource-policies.edit.page.heading":"Edytuj politykÄ™ zasobu ", - "resource-policies.edit.page.failure.content":"WystÄ…piÅ‚ bÅ‚Ä…d poczas edytowania polityki zasobu.", - "resource-policies.edit.page.success.content":"DziaÅ‚anie udaÅ‚o siÄ™", - "resource-policies.edit.page.title":"Edytuj politykÄ™ zasobu", - "resource-policies.form.action-type.label":"Wybierz ten typ akcji", - "resource-policies.form.action-type.required":"Musisz wybrać akcjÄ™ polityki zasobu.", - "resource-policies.form.eperson-group-list.label":"Użytkownik lub grupa, która otrzyma uprawnienia.", - "resource-policies.form.eperson-group-list.select.btn":"Wybierz", - "resource-policies.form.eperson-group-list.tab.eperson":"Wyszukaj użytkownika", - "resource-policies.form.eperson-group-list.tab.group":"Wyszukaj grupÄ™", - "resource-policies.form.eperson-group-list.table.headers.action":"Akcja", - "resource-policies.form.eperson-group-list.table.headers.id":"ID", - "resource-policies.form.eperson-group-list.table.headers.name":"Nazwa", - "resource-policies.form.date.end.label":"Data zakoÅ„czenia", - "resource-policies.form.date.start.label":"Data rozpoczÄ™cia", - "resource-policies.form.description.label":"Opis", - "resource-policies.form.name.label":"Nazwa", - "resource-policies.form.policy-type.label":"Wybierz typ polityki", - "resource-policies.form.policy-type.required":"Musisz wybrać typ polityki zasobu.", - "resource-policies.table.headers.action":"Akcja", - "resource-policies.table.headers.date.end":"Data zakoÅ„czenia", - "resource-policies.table.headers.date.start":"Data rozpoczÄ™cia", - "resource-policies.table.headers.edit":"Edytuj", - "resource-policies.table.headers.edit.group":"Edytuj grupÄ™", - "resource-policies.table.headers.edit.policy":"Edytuj politykÄ™", - "resource-policies.table.headers.eperson":"Użytkownik", - "resource-policies.table.headers.group":"Grupa", - "resource-policies.table.headers.id":"ID", - "resource-policies.table.headers.name":"Nazwa", - "resource-policies.table.headers.policyType":"typ", - "resource-policies.table.headers.title.for.bitstream":"Polityki dla plików", - "resource-policies.table.headers.title.for.bundle":"Polityki dla paczek", - "resource-policies.table.headers.title.for.item":"Polityki dla pozycji", - "resource-policies.table.headers.title.for.community":"Polityki dla zbioru", - "resource-policies.table.headers.title.for.collection":"Polityki dla kolekcji", - "search.description":"", - "search.switch-configuration.title":"Pokaż", - "search.title":"Szukaj", - "search.breadcrumbs":"Szukaj", - "search.search-form.placeholder":"Szukaj w repozytorium...", - "search.filters.applied.f.author":"Autor", - "search.filters.applied.f.dateIssued.max":"Data zakoÅ„czenia", - "search.filters.applied.f.dateIssued.min":"Data rozpoczÄ™cia", - "search.filters.applied.f.dateSubmitted":"Data zgÅ‚oszenia", - "search.filters.applied.f.discoverable":"Ukryty", - "search.filters.applied.f.entityType":"Typ pozycji", - "search.filters.applied.f.has_content_in_original_bundle":"Ma przypisane pliki", - "search.filters.applied.f.itemtype":"Typ", - "search.filters.applied.f.namedresourcetype":"Status", - "search.filters.applied.f.subject":"Temat", - "search.filters.applied.f.submitter":"ZgÅ‚aszajÄ…cy", - "search.filters.applied.f.jobTitle":"Stanowisko", - "search.filters.applied.f.birthDate.max":"Data zakoÅ„czenia tworzenia", - "search.filters.applied.f.birthDate.min":"Data rozpoczÄ™cia tworzenia", - "search.filters.applied.f.withdrawn":"Wycofane", - "search.filters.filter.author.head":"Autor", - "search.filters.filter.author.placeholder":"Autor", - "search.filters.filter.author.label":"Wyszukaj autora", - "search.filters.filter.birthDate.head":"Data urodzenia", - "search.filters.filter.birthDate.placeholder":"Data urodzenia", - "search.filters.filter.birthDate.label":"Wyszukaj datÄ™ urodzenia", - "search.filters.filter.collapse":"Ukryj filtr", - "search.filters.filter.creativeDatePublished.head":"Data opublikowania", - "search.filters.filter.creativeDatePublished.placeholder":"Data opublikowania", - "search.filters.filter.creativeDatePublished.label":"Wyszukaj datÄ™ opublikowania", - "search.filters.filter.creativeWorkEditor.head":"Redaktor", - "search.filters.filter.creativeWorkEditor.placeholder":"Redaktor", - "search.filters.filter.creativeWorkEditor.label":"Wyszukaj redaktora", - "search.filters.filter.creativeWorkKeywords.head":"SÅ‚owo kluczowe", - "search.filters.filter.creativeWorkKeywords.placeholder":"SÅ‚owo kluczowe", - "search.filters.filter.creativeWorkKeywords.label":"Wyszukaj temat", - "search.filters.filter.creativeWorkPublisher.head":"Wydawca", - "search.filters.filter.creativeWorkPublisher.placeholder":"Wydawca", - "search.filters.filter.creativeWorkPublisher.label":"Wyszukaj wydawcÄ™", - "search.filters.filter.dateIssued.head":"Data", - "search.filters.filter.dateIssued.max.placeholder":"Data maksymalna", - "search.filters.filter.dateIssued.max.label":"Koniec", - "search.filters.filter.dateIssued.min.placeholder":"Data minimalna", - "search.filters.filter.dateIssued.min.label":"Start", - "search.filters.filter.dateSubmitted.head":"Data zgÅ‚oszenia", - "search.filters.filter.dateSubmitted.placeholder":"Data zgÅ‚oszenia", - "search.filters.filter.dateSubmitted.label":"Wyszukaj datÄ™ zgÅ‚oszenia", - "search.filters.filter.discoverable.head":"Ukryty", - "search.filters.filter.withdrawn.head":"Wycofane", - "search.filters.filter.entityType.head":"Typ pozycji", - "search.filters.filter.entityType.placeholder":"Typ pozycji", - "search.filters.filter.entityType.label":"Wyszukaj typ pozycji", - "search.filters.filter.expand":"RozwiÅ„ filtr", - "search.filters.filter.has_content_in_original_bundle.head":"Ma przypisane pliki", - "search.filters.filter.itemtype.head":"Typ", - "search.filters.filter.itemtype.placeholder":"Typ", - "search.filters.filter.itemtype.label":"Wyszukaj typ", - "search.filters.filter.jobTitle.head":"Stanowisko", - "search.filters.filter.jobTitle.placeholder":"Stanowisko", - "search.filters.filter.jobTitle.label":"Wyszukaj stanowisko", - "search.filters.filter.knowsLanguage.head":"Znajomość jÄ™zyka", - "search.filters.filter.knowsLanguage.placeholder":"Znajomość jÄ™zyka", - "search.filters.filter.knowsLanguage.label":"Wyszukaj wg znajomoÅ›ci jÄ™zyka", - "search.filters.filter.namedresourcetype.head":"Status", - "search.filters.filter.namedresourcetype.placeholder":"Status", - "search.filters.filter.namedresourcetype.label":"Wyszukaj status", - "search.filters.filter.objectpeople.head":"Osoby", - "search.filters.filter.objectpeople.placeholder":"Osoby", - "search.filters.filter.objectpeople.label":"Wyszukaj użytkowników", - "search.filters.filter.organizationAddressCountry.head":"Kraj", - "search.filters.filter.organizationAddressCountry.placeholder":"Kraj", - "search.filters.filter.organizationAddressCountry.label":"Wyszukaj kraj", - "search.filters.filter.organizationAddressLocality.head":"Miasto", - "search.filters.filter.organizationAddressLocality.placeholder":"Miasto", - "search.filters.filter.organizationAddressLocality.label":"Wyszukaj miasto", - "search.filters.filter.organizationFoundingDate.head":"Data zaÅ‚ożenia", - "search.filters.filter.organizationFoundingDate.placeholder":"Data zaÅ‚ożenia", - "search.filters.filter.organizationFoundingDate.label":"Wyszukaj datÄ™ zaÅ‚ożenia", - "search.filters.filter.scope.head":"Zakres", - "search.filters.filter.scope.placeholder":"Filtr zakresu", - "search.filters.filter.scope.label":"Wyszukaj filtr zakresu", - "search.filters.filter.show-less":"Pokaż mniej", - "search.filters.filter.show-more":"Pokaż wiÄ™cej", - "search.filters.filter.subject.head":"Temat", - "search.filters.filter.subject.placeholder":"Temat", - "search.filters.filter.subject.label":"Wyszukaj temat", - "search.filters.filter.submitter.head":"ZgÅ‚aszajÄ…cy", - "search.filters.filter.submitter.placeholder":"ZgÅ‚aszajÄ…cy", - "search.filters.filter.submitter.label":"Wyszukaj zgÅ‚aszajÄ…cego", - "search.filters.entityType.JournalIssue":"Numer czasopisma", - "search.filters.entityType.JournalVolume":"Tom czasopisma", - "search.filters.entityType.OrgUnit":"Jednostka organizacyjna", - "search.filters.has_content_in_original_bundle.true":"Tak", - "search.filters.has_content_in_original_bundle.false":"Nie", - "search.filters.discoverable.true":"Nie", - "search.filters.discoverable.false":"Tak", - "search.filters.withdrawn.true":"Tak", - "search.filters.withdrawn.false":"Nie", - "search.filters.head":"Filtry", - "search.filters.reset":"Resetuj filtry", - "search.filters.search.submit":"Zastosuj", - "search.form.search":"Wyszukaj", - "search.form.search_dspace":"W repozytorium", - "search.form.scope.all":"W caÅ‚ym DSpace", - "search.results.head":"Wyniki wyszukiwania", - "default.search.results.head":"Wyniki wyszukiwania", - "search.results.no-results":"Twoj wyszukiwanie nie zwróciÅ‚o żadnych rezultatów. Masz problem ze znalezieniem tego czego szukasz? Spróbuj użyć", - "search.results.no-results-link":"fraz podobnych do Twojego wyszukiwania", - "search.results.empty":"Twoje wyszukiwanie nie zwróciÅ‚o żadnych rezultatów.", - "search.sidebar.close":"Wróć do wyników wyszukiwania", - "search.sidebar.filters.title":"Filtry", - "search.sidebar.open":"NarzÄ™dzia wyszukiwania", - "search.sidebar.results":"wyniki", - "search.sidebar.settings.rpp":"Wyników na stronie", - "search.sidebar.settings.sort-by":"Sortuj wedÅ‚ug", - "search.sidebar.settings.title":"Ustawienia", - "search.view-switch.show-detail":"WyÅ›wietl widok szczegółowy", - "search.view-switch.show-grid":"WyÅ›wietl jako siatkÄ™", - "search.view-switch.show-list":"WyÅ›wietl jako listÄ™", - "sorting.ASC":"RosnÄ…co", - "sorting.DESC":"MalejÄ…co", - "sorting.dc.title.ASC":"TytuÅ‚ami rosnÄ…co", - "sorting.dc.title.DESC":"TytuÅ‚ami malejÄ…co", - "sorting.score.ASC":"Najmniej trafne", - "sorting.score.DESC":"Najbardziej trafne", - "sorting.dc.date.issued.ASC":"Data wydania rosnÄ…co", - "sorting.dc.date.issued.DESC":"Data wydania malejÄ…co", - "sorting.dc.date.accessioned.ASC":"Data dostÄ™pu rosnÄ…co", - "sorting.dc.date.accessioned.DESC":"Data dostÄ™pu malejÄ…co", - "sorting.lastModified.ASC":"Ostatnia modyfikacja rosnÄ…co", - "sorting.lastModified.DESC":"Ostatnia modyfikacja malejÄ…co", - "statistics.title":"Statystyki", - "statistics.header":"Statystyki dla {{ scope }}", - "statistics.breadcrumbs":"Statystyki", - "statistics.page.no-data":"Brak dostÄ™pnych danych", - "statistics.table.no-data":"Brak dostÄ™pnych danych", - "statistics.table.header.views":"WyÅ›wietlenia", - "submission.edit.breadcrumbs":"Edytuj zgÅ‚oszenie", - "submission.edit.title":"Edytuj zgÅ‚oszenie", - "submission.general.cancel":"Anuluj", - "submission.general.cannot_submit":"Nie masz uprawnieÅ„, aby utworzyć nowe zgÅ‚oszenie.", - "submission.general.deposit":"Deponuj", - "submission.general.discard.confirm.cancel":"Anuluj", - "submission.general.discard.confirm.info":"Czy na pewno? To dziaÅ‚anie nie może zostać cofniÄ™te.", - "submission.general.discard.confirm.submit":"Tak, na pewno", - "submission.general.discard.confirm.title":"Odrzuć zgÅ‚oszenie", - "submission.general.discard.submit":"Odrzuć", - "submission.general.info.saved":"Zapisane", - "submission.general.info.pending-changes":"Niezapisane zmiany", - "submission.general.save":"Zapisz", - "submission.general.save-later":"Zapisz wersjÄ™ roboczÄ…", - "submission.import-external.page.title":"Importuj metdane z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title":"Importuj metadane z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title.Journal":"Importuj czasopismo z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title.JournalIssue":"Importuj numer czasopisma z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title.JournalVolume":"Importuj tom czasopisma z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title.OrgUnit":"Importuj wydawcÄ™ z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title.Person":"Importuj osobÄ™ z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title.Project":"Importuj projekt z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title.Publication":"Importuj publikacjÄ™ z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title.none":"Importuj metadane z zewnÄ™trznego źródÅ‚a", - "submission.import-external.page.hint":"Enter a query above to find items from the web to import in to DSpace.", - "submission.import-external.back-to-my-dspace":"Powrót do MyDSpace", - "submission.import-external.search.placeholder":"Wyszukaj zewnÄ™trzne źródÅ‚a danych", - "submission.import-external.search.button":"Szukaj", - "submission.import-external.search.button.hint":"Zacznij wpisywać frazÄ™, aby wyszukać", - "submission.import-external.search.source.hint":"Wybierz zewnÄ™trzne źródÅ‚o", - "submission.import-external.source.ads":"NASA/ADS", - "submission.import-external.source.arxiv":"arXiv", - "submission.import-external.source.cinii":"CiNii", - "submission.import-external.source.crossref":"CrossRef", - "submission.import-external.source.loading":"Å‚adowanie...", - "submission.import-external.source.sherpaJournal":"Czasopisma w SHERPA", - "submission.import-external.source.sherpaJournalIssn":"Czasopisma w SHERPA wg ISSN", - "submission.import-external.source.sherpaPublisher":"Wydawcy w SHERPA", - "submission.import-external.source.openAIREFunding":"Finansowanie OpenAIRE API", - "submission.import-external.source.orcid":"ORCID", - "submission.import-external.source.orcidWorks":"ORCID", - "submission.import-external.source.pubmed":"Pubmed", - "submission.import-external.source.pubmedeu":"Pubmed Europe", - "submission.import-external.source.lcname":"Nazwy Biblioteki Kongresu", - "submission.import-external.source.scielo":"SciELO", - "submission.import-external.source.scopus":"Scopus", - "submission.import-external.source.vufind":"VuFind", - "submission.import-external.source.wos":"Web Of Science", - "submission.import-external.source.epo":"Europejski UrzÄ…d Patentowy (EPO)", - "submission.import-external.preview.title.Journal":"PodglÄ…d czasopisma", - "submission.import-external.preview.title.OrgUnit":"PodglÄ…d organizacji", - "submission.import-external.preview.title.Person":"PodglÄ…d osoby", - "submission.import-external.preview.title.Project":"PodglÄ…d projektu", - "submission.import-external.preview.title.Publication":"PodglÄ…d publikacji", - "submission.import-external.preview.subtitle":"Metadane poniżej zostaÅ‚y zaimportowane z zewnÄ™trznego źródÅ‚a. Niektóre pola zostanÄ… uzupeÅ‚nione automatycznie, kiedy rozpoczniesz zgÅ‚aszanie pozycji.", - "submission.import-external.preview.button.import":"Rozpocznij zgÅ‚oszenie", - "submission.import-external.preview.error.import.title":"BÅ‚Ä…d zgÅ‚oszenia", - "submission.import-external.preview.error.import.body":"WystÄ…piÅ‚ bÅ‚Ä…d podczas procesu importowania pozycji z zewnÄ™trznego źródÅ‚a.", - "submission.sections.describe.relationship-lookup.close":"Zamknij", - "submission.sections.describe.relationship-lookup.external-source.added":"UdaÅ‚o siÄ™ dodać wpis do selekcji", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.isAuthorOfPublication":"Importuj zdalnego autora", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal":"Importuj zdalne czasopismo", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Issue":"Importuj zdalny numer czasopisma", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Volume":"Importuj zdalny tom czasopisma", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.isProjectOfPublication":"Projekt", - "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.added.new-entity":"Nowy typ danych dodany!", - "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.title":"Projekt", - "submission.sections.describe.relationship-lookup.external-source.import-modal.head.openAIREFunding":"Finansowanie OpenAIRE API", - "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.title":"Importuj zdalnego autora", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Person":"Importuj zdalnÄ… osobÄ™", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Product":"Importuj zdalny produkt", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Equipment":"Importuj zdalnÄ… aparaturÄ™ badawczÄ…", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Event":"Importuj zdalne wydarzenie", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Funding":"Importuj zdalnÄ… instytucjÄ™ finansujÄ…cÄ…", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.OrgUnit":"Importuj zdalnego wydawcÄ™", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Patent":"Importuj zdalnie patent", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Project":"Importuj zdalnie projekt", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Publication":"Importuj zdalnie publikacjÄ™", - "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.added.local-entity":"UdaÅ‚o siÄ™ dodać autora do selekcji", - "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.added.new-entity":"UdaÅ‚o siÄ™ zaimportować i dodać zewnÄ™trznego autora do selekcji", - "submission.sections.describe.relationship-lookup.external-source.import-modal.authority":"NadrzÄ™dność", - "submission.sections.describe.relationship-lookup.external-source.import-modal.authority.new":"Importuj jako nowÄ…, lokalnÄ…, nadrzÄ™dnÄ… pozycjÄ™", - "submission.sections.describe.relationship-lookup.external-source.import-modal.cancel":"Anuluj", - "submission.sections.describe.relationship-lookup.external-source.import-modal.collection":"Wybierz kolekcjÄ™ do zaimportowania nowych pozycji", - "submission.sections.describe.relationship-lookup.external-source.import-modal.entities":"Typ danych", - "submission.sections.describe.relationship-lookup.external-source.import-modal.entities.new":"Importuj jako nowy lokalny typ danych", - "submission.sections.describe.relationship-lookup.external-source.import-modal.head.lcname":"Importuj z LC Name", - "submission.sections.describe.relationship-lookup.external-source.import-modal.head.orcid":"Importuj z ORCID", - "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaJournal":"Importuj z Sherpa Journal", - "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaPublisher":"Importuj z Sherpa Publisher", - "submission.sections.describe.relationship-lookup.external-source.import-modal.head.pubmed":"Importuj z PubMed", - "submission.sections.describe.relationship-lookup.external-source.import-modal.head.arxiv":"Importuj z arXiv", - "submission.sections.describe.relationship-lookup.external-source.import-modal.import":"Import", - "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.title":"Importuj zdalne czasopismo", - "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.new-entity":"Successfully imported and added external journal to the selection", - "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.title":"Importuj zdalny numer czasopisma", - "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.local-entity":"UdaÅ‚o siÄ™ dodać lokalne czasopismo do zaznaczenia", - "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.new-entity":"UdaÅ‚o siÄ™ zaimportować i dodać czasopismo zewnÄ™trzne do zaznaczenia", - "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.title":"Importuj zdalny numer czasopisma", - "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.local-entity":"UdaÅ‚o siÄ™ dodać lokalny numer czasopismo do zaznaczenia", - "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.new-entity":"UdaÅ‚o siÄ™ zaimportować i dodać zewnÄ™trzny numer czasopisma do zaznaczenia", - "submission.sections.describe.relationship-lookup.external-source.import-modal.select":"Wybierz lokalne powiÄ…zanie:", - "submission.sections.describe.relationship-lookup.search-tab.deselect-all":"Odznacz wszystko", - "submission.sections.describe.relationship-lookup.search-tab.deselect-page":"Odznacz stronÄ™", - "submission.sections.describe.relationship-lookup.search-tab.loading":"Åadowanie...", - "submission.sections.describe.relationship-lookup.search-tab.placeholder":"Wyszukaj zapytanie", - "submission.sections.describe.relationship-lookup.search-tab.search":"Zastosuj", - "submission.sections.describe.relationship-lookup.search-tab.search-form.placeholder":"Wyszukaj...", - "submission.sections.describe.relationship-lookup.search-tab.select-all":"Zaznacz wszystko", - "submission.sections.describe.relationship-lookup.search-tab.select-page":"Zaznacz stronÄ™", - "submission.sections.describe.relationship-lookup.selected":"Zaznacz {{ size }} pozycji", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isAuthorOfPublication":"Autorzy lokalni ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalOfPublication":"Czasopisma lokalne ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.Project":"Projekty lokalne ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.Publication":"Publikacje lokalne ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.Person":"Autorzy lokalni ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.OrgUnit":"Lokalne jednostki organizacyjne ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.DataPackage":"Lokalne paczki danych ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.DataFile":"Lokalne pliki danych ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.Journal":"Lokalne czasopisma ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalIssueOfPublication":"Lokalne numery czasopism ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.JournalIssue":"Lokalne numery czasopism ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalVolumeOfPublication":"Lokalne tomy czasopism ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.JournalVolume":"Lokalne tomy czasopism ({{ 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.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.pubmed":"PubMed ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.arxiv":"arXiv ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfPublication":"Wyszukaj instytucje finansujÄ…ce", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingOfPublication":"Wyszukaj finansowanie", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isChildOrgUnitOf":"Wyszukaj jednostki organizacyjne", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.openAIREFunding":"Finansowanie OpenAIRE API", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isProjectOfPublication":"Projekty", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfProject":"Instytucja finansujÄ…ca projekt", - "submission.sections.describe.relationship-lookup.selection-tab.title.openAIREFunding":"Finansowanie OpenAIRE API", - "submission.sections.describe.relationship-lookup.selection-tab.title.isProjectOfPublication":"Projekt", - "submission.sections.describe.relationship-lookup.title.isProjectOfPublication":"Projekty", - "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfProject":"Instytucja finansujÄ…ca projekt", - "submission.sections.describe.relationship-lookup.selection-tab.search-form.placeholder":"Wyszukaj...", - "submission.sections.describe.relationship-lookup.selection-tab.tab-title":"Aktualne zaznaczenie ({{ count }})", - "submission.sections.describe.relationship-lookup.title.isJournalIssueOfPublication":"Numery czasopisma", - "submission.sections.describe.relationship-lookup.title.JournalIssue":"Numery czasopisma", - "submission.sections.describe.relationship-lookup.title.isJournalVolumeOfPublication":"Tomy czasopisma", - "submission.sections.describe.relationship-lookup.title.JournalVolume":"Tomy czasopisma", - "submission.sections.describe.relationship-lookup.title.isJournalOfPublication":"Czasopisma", - "submission.sections.describe.relationship-lookup.title.isAuthorOfPublication":"Autorzy", - "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfPublication":"Instytucja finansujÄ…ca", - "submission.sections.describe.relationship-lookup.title.Project":"Projekty", - "submission.sections.describe.relationship-lookup.title.Publication":"Publikacje", - "submission.sections.describe.relationship-lookup.title.Person":"Autorzy", - "submission.sections.describe.relationship-lookup.title.OrgUnit":"Jednostki organizacyjne", - "submission.sections.describe.relationship-lookup.title.DataPackage":"Paczki danych", - "submission.sections.describe.relationship-lookup.title.DataFile":"Pliki danych", - "submission.sections.describe.relationship-lookup.title.Funding Agency":"Instytucja finansujÄ…ca", - "submission.sections.describe.relationship-lookup.title.isFundingOfPublication":"Finansowanie", - "submission.sections.describe.relationship-lookup.title.isChildOrgUnitOf":"NadrzÄ™dna jednostka organizacyjna", - "submission.sections.describe.relationship-lookup.search-tab.toggle-dropdown":"PrzeÅ‚Ä…cz na listÄ™ rozwijanÄ…", - "submission.sections.describe.relationship-lookup.selection-tab.settings":"Ustawienia", - "submission.sections.describe.relationship-lookup.selection-tab.no-selection":"Twoje zaznaczenie jest puste.", - "submission.sections.describe.relationship-lookup.selection-tab.title.isAuthorOfPublication":"Wybrani autorzy", - "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalOfPublication":"Wybrane czasopisma", - "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalVolumeOfPublication":"Wybrane tomy czasopisma", - "submission.sections.describe.relationship-lookup.selection-tab.title.Project":"Wybrane projekty", - "submission.sections.describe.relationship-lookup.selection-tab.title.Publication":"Wybrane publikacje", - "submission.sections.describe.relationship-lookup.selection-tab.title.Person":"Wybrani autorzy", - "submission.sections.describe.relationship-lookup.selection-tab.title.OrgUnit":"Wybrane jednostki organizacyjne", - "submission.sections.describe.relationship-lookup.selection-tab.title.DataPackage":"Wybrane pakiety danych", - "submission.sections.describe.relationship-lookup.selection-tab.title.DataFile":"Wybrane pliki danych", - "submission.sections.describe.relationship-lookup.selection-tab.title.Journal":"Wybrane czasopisma", - "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalIssueOfPublication":"Wybrany numer wydania", - "submission.sections.describe.relationship-lookup.selection-tab.title.JournalVolume":"Wybrany tom czasopisma", - "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingAgencyOfPublication":"Wybrane instytucje finansujÄ…ce", - "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingOfPublication":"Wybrane finansowanie", - "submission.sections.describe.relationship-lookup.selection-tab.title.JournalIssue":"Wybrany numer wydania", - "submission.sections.describe.relationship-lookup.selection-tab.title.isChildOrgUnitOf":"Wybrana jednostka organizacyjna", - "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaJournal":"Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.crossref":"Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaPublisher":"Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.orcid":"Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.orcidv2":"Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.lcname":"Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.pubmed":"Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.arxiv":"Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.epo":"Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.scopus":"Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.scielo":"Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.wos":"Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title":"Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.name-variant.notification.content":"Czy chcesz zapisać \"{{ value }}\" jako wariant imienia dla tego użytkownika, aby Ty lub inni użytkownicy mogli używać tego wariantu w przyszÅ‚ych zgÅ‚oszeniach?. JeÅ›li nie, nadal możesz użyć tego wariantu w tym zgÅ‚oszeniu.", - "submission.sections.describe.relationship-lookup.name-variant.notification.confirm":"Zapisz nowy wariant imienia", - "submission.sections.describe.relationship-lookup.name-variant.notification.decline":"Użyj tylko w tym zgÅ‚oszeniu", - "submission.sections.ccLicense.type":"Typ licencji", - "submission.sections.ccLicense.select":"Wybierz typ licencji…", - "submission.sections.ccLicense.change":"ZmieÅ„ typ licencji…", - "submission.sections.ccLicense.none":"Brak dostÄ™pnych licencji", - "submission.sections.ccLicense.option.select":"Wybierz opcję…", - "submission.sections.ccLicense.link":"Wybrano licencjÄ™:", - "submission.sections.ccLicense.confirmation":"Udzielam powyższej licencji", - "submission.sections.general.add-more":"Dodaj wiÄ™cej", - "submission.sections.general.collection":"Kolekcja", - "submission.sections.general.deposit_error_notice":"WystÄ…piÅ‚ bÅ‚Ä…d podczas zgÅ‚aszania pozycji. Spróbuj ponownie później.", - "submission.sections.general.deposit_success_notice":"UdaÅ‚o siÄ™ wprowadzić pozycjÄ™.", - "submission.sections.general.discard_error_notice":"WystÄ…piÅ‚ bÅ‚Ä…d podczas odrzucania pozycji. Spróbuj ponownie później.", - "submission.sections.general.discard_success_notice":"UdaÅ‚o siÄ™ odrzucić pozycjÄ™.", - "submission.sections.general.metadata-extracted":"Nowe metadane zostany rozpakowane i dodane do sekcji <strong>{{sectionId}}</strong>.", - "submission.sections.general.metadata-extracted-new-section":"Nowa sekcja <strong>{{sectionId}}</strong> zostaÅ‚a dodana do zgÅ‚oszenia.", - "submission.sections.general.no-collection":"Nie znaleziono kolekcji", - "submission.sections.general.no-sections":"Opcje niedostÄ™pne", - "submission.sections.general.save_error_notice":"WystÄ…piÅ‚ bÅ‚Ä…d podczas zapisywania numeru. Spróbuj ponownie później. Po odÅ›wieżeniu strony niezapisane zmiany mogÄ… zostać utracone.", - "submission.sections.general.save_success_notice":"UdaÅ‚o siÄ™ zapisać zgÅ‚oszenie.", - "submission.sections.general.search-collection":"Szukaj kolekcji", - "submission.sections.general.sections_not_valid":"Niektóre sekcje sÄ… niekompletne.", - "submission.sections.submit.progressbar.CClicense":"Licencja Creative Commons", - "submission.sections.submit.progressbar.describe.recycle":"Odzyskaj", - "submission.sections.submit.progressbar.describe.stepcustom":"Opisz", - "submission.sections.submit.progressbar.describe.stepone":"Opisz", - "submission.sections.submit.progressbar.describe.steptwo":"Opisz", - "submission.sections.submit.progressbar.detect-duplicate":"Potencjalne duplikaty", - "submission.sections.submit.progressbar.license":"Zdeponuj licencjÄ™", - "submission.sections.submit.progressbar.upload":"PrzeÅ›lij pliki", - "submission.sections.status.errors.title":"BÅ‚Ä™dy", - "submission.sections.status.valid.title":"Poprawność", - "submission.sections.status.warnings.title":"Ostrzeżenia", - "submission.sections.status.errors.aria":"ma bÅ‚Ä™dy", - "submission.sections.status.valid.aria":"jest poprawne", - "submission.sections.status.warnings.aria":"ma ostrzeżenia", - "submission.sections.toggle.open":"Otwórz sekcjÄ™", - "submission.sections.toggle.close":"Zamknij sekcjÄ™", - "submission.sections.toggle.aria.open":"RozwiÅ„ sekcjÄ™ {{sectionHeader}}", - "submission.sections.toggle.aria.close":"ZwiÅ„ sekcjÄ™ {{sectionHeader}}", - "submission.sections.upload.delete.confirm.cancel":"Anuluj", - "submission.sections.upload.delete.confirm.info":"Czy na pewno? To dziaÅ‚anie nie może zostać cofniÄ™te.", - "submission.sections.upload.delete.confirm.submit":"Tak, na pewno", - "submission.sections.upload.delete.confirm.title":"UsuÅ„ plik", - "submission.sections.upload.delete.submit":"UsuÅ„", - "submission.sections.upload.download.title":"Pobierz plik", - "submission.sections.upload.drop-message":"Upuść pliki, aby zaÅ‚Ä…czyć je do tej pozycji", - "submission.sections.upload.edit.title":"Edytuj plik", - "submission.sections.upload.form.access-condition-label":"Typ dostÄ™pu", - "submission.sections.upload.form.date-required":"Data jest wymagana.", - "submission.sections.upload.form.date-required-from":"Data przyznania dostÄ™pu od jest wymagana.", - "submission.sections.upload.form.date-required-until":"Data przyznania dostÄ™pu do jest wymagana.", - "submission.sections.upload.form.from-label":"Pozwól na dostÄ™p od", - "submission.sections.upload.form.from-placeholder":"Od", - "submission.sections.upload.form.group-label":"Grupa", - "submission.sections.upload.form.group-required":"Grupa jest wymagana", - "submission.sections.upload.form.until-label":"Pozwól na dostÄ™p do", - "submission.sections.upload.form.until-placeholder":"Do", - "submission.sections.upload.header.policy.default.nolist":"Pliki wgrane do kolekcji {{collectionName}} bÄ™dÄ… dostÄ™pne dla poniższych grup:", - "submission.sections.upload.header.policy.default.withlist":"Zwróć uwagÄ™ na to, że pliki w kolekcji {{collectionName}} bÄ™dÄ… dostÄ™pne dla poniższych grup, z wyjÄ…tkiem tych, które zostaÅ‚y wyÅ‚Ä…czone z dostÄ™pu:", - "submission.sections.upload.info":"Tutaj znajdujÄ… siÄ™ wszystkie pliki dodane w tym momencie do pozycji. Możesz zaktualizować metadane pliku i warunki dostÄ™pu lub <strong>przesÅ‚ać dodatkowe pliki, przeciÄ…gajÄ…c i opuszczajÄ…c je gdziekolwiek na tej stronie</strong>", - "submission.sections.upload.no-entry":"Nie", - "submission.sections.upload.no-file-uploaded":"Pliki nie zostaÅ‚y jeszcze wgrane.", - "submission.sections.upload.save-metadata":"Zapisz metadane", - "submission.sections.upload.undo":"Anuluj", - "submission.sections.upload.upload-failed":"PrzesyÅ‚anie nieudane", - "submission.sections.upload.upload-successful":"PrzesyÅ‚anie udane", - "submission.submit.breadcrumbs":"Nowe zgÅ‚oszenie", - "submission.submit.title":"Nowe zgÅ‚oszenie", - "submission.workflow.generic.delete":"UsuÅ„", - "submission.workflow.generic.delete-help":"JeÅ›li chcesz odrzucić tÄ™ pozycjÄ™, wybierz \"Delete\". BÄ™dzie wymagane potwierdzenie tej decyzji.", - "submission.workflow.generic.edit":"Edytuj", - "submission.workflow.generic.edit-help":"Wybierz tÄ™ opcjÄ™, aby zmienić metadane pozycji.", - "submission.workflow.generic.view":"PodglÄ…d", - "submission.workflow.generic.view-help":"Wybierz tÄ™ opcjÄ™, aby wyÅ›wietlić metadane pozycji.", - "submission.workflow.tasks.claimed.approve":"Zatwierdź", - "submission.workflow.tasks.claimed.approve_help":"JeÅ›li ta pozycja ma zostać zatwierdzona i wprowadzona do kolekcji, wybierz \"Approve\".", - "submission.workflow.tasks.claimed.edit":"Edytuj", - "submission.workflow.tasks.claimed.edit_help":"Wybierz tÄ™ opcjÄ™, aby zmienić metadane pozycji.", - "submission.workflow.tasks.claimed.reject.reason.info":"ProszÄ™ wpisać powód odrzucenia zgÅ‚oszenia w poniższe pole, wskazujÄ…c, czy zgÅ‚aszajÄ…cy może poprawić problem i ponownie przesÅ‚ać zgÅ‚oszenie.", - "submission.workflow.tasks.claimed.reject.reason.placeholder":"Opisz powód odrzucenia zgÅ‚oszenia", - "submission.workflow.tasks.claimed.reject.reason.submit":"Odrzuć pozycjÄ™", - "submission.workflow.tasks.claimed.reject.reason.title":"Powód", - "submission.workflow.tasks.claimed.reject.submit":"Odrzuć", - "submission.workflow.tasks.claimed.reject_help":"JeÅ›li po przejrzeniu pozycji stwierdzono, że nie nadaje siÄ™ ona do wÅ‚Ä…czenia do kolekcji, wybierz opcjÄ™ \"Reject\". Zostaniesz wtedy poproszony o okreÅ›lenie powodu odrzucenia, i wskazanie czy zgÅ‚aszajÄ…cy powinien wprowadzić zmiany i przesÅ‚ać ponownie pozycjÄ™.", - "submission.workflow.tasks.claimed.return":"Cofnij do puli zadaÅ„", - "submission.workflow.tasks.claimed.return_help":"Cofnij zadanie do puli, aby inny użytkownik mógÅ‚ siÄ™ go podjąć.", - "submission.workflow.tasks.generic.error":"Podczas dziaÅ‚ania wystÄ…piÅ‚ bÅ‚Ä…d...", - "submission.workflow.tasks.generic.processing":"Procesowanie...", - "submission.workflow.tasks.generic.submitter":"ZgÅ‚aszajÄ…cy", - "submission.workflow.tasks.generic.success":"UdaÅ‚o siÄ™", - "submission.workflow.tasks.pool.claim":"Podejmij pracÄ™", - "submission.workflow.tasks.pool.claim_help":"Przypisz to zadanie do siebie.", - "submission.workflow.tasks.pool.hide-detail":"Ukryj szczegóły", - "submission.workflow.tasks.pool.show-detail":"Pokaż szczegóły", - "thumbnail.default.alt":"Miniatura", - "thumbnail.default.placeholder":"Brak miniatury", - "thumbnail.project.alt":"Logo projektu", - "thumbnail.project.placeholder":"Obraz zastÄ™pczy projketu", - "thumbnail.orgunit.alt":"Logo jednostki organizacyjnej", - "thumbnail.orgunit.placeholder":"Obraz zastÄ™pczy jednostki organizacyjnej", - "thumbnail.person.alt":"ZdjÄ™cie profilowe", - "thumbnail.person.placeholder":"Brak zdjÄ™cia profilowego", - "title":"DSpace", - "vocabulary-treeview.header":"Widok drzewka", - "vocabulary-treeview.load-more":"Pokaż wiÄ™cej", - "vocabulary-treeview.search.form.reset":"Resetuj", - "vocabulary-treeview.search.form.search":"Szukaj", - "vocabulary-treeview.search.no-result":"Brak pozycji do wyÅ›wietlenia", - "vocabulary-treeview.tree.description.nsi":"The Norwegian Science Index", - "vocabulary-treeview.tree.description.srsc":"Kategorie tematów badaÅ„", - "uploader.browse":"wyszukaj na swoim urzÄ…dzeniu", - "uploader.drag-message":"PrzeciÄ…gnij i upuść pliki tutaj", - "uploader.delete.btn-title":"UsuÅ„", - "uploader.or":", lub ", - "uploader.processing":"Procesowanie", - "uploader.queue-length":"DÅ‚ugość kolejki", - "virtual-metadata.delete-item.info":"Wybierz typy, dla których chcesz zapisać wirtualne metadane jako rzeczywiste metadane", - "virtual-metadata.delete-item.modal-head":"Wirtualne metadane tego powiÄ…zania", - "virtual-metadata.delete-relationship.modal-head":"Wybierz pozycje, dla których chcesz zapisać wirtualne metadane jako rzeczywiste metadane", - "workflowAdmin.search.results.head":"ZarzÄ…dzaj procesami", - "workflow-item.edit.breadcrumbs":"Edytuj pozycjÄ™ procesu", - "workflow-item.edit.title":"Edytuj pozycjÄ™ procesu", - "workflow-item.delete.notification.success.title":"UsuniÄ™te", - "workflow-item.delete.notification.success.content":"Ten element procesu zostaÅ‚ usuniÄ™ty", - "workflow-item.delete.notification.error.title":"CoÅ› poszÅ‚o nie tak", - "workflow-item.delete.notification.error.content":"Ten element procesu nie mógÅ‚ zostać usuniÄ™ty", - "workflow-item.delete.title":"UsuÅ„ element procesu", - "workflow-item.delete.header":"UsuÅ„ element procesu", - "workflow-item.delete.button.cancel":"Anuluj", - "workflow-item.delete.button.confirm":"UsuÅ„", - "workflow-item.send-back.notification.success.title":"SOdeÅ›lij do zgÅ‚aszajÄ…cego", - "workflow-item.send-back.notification.success.content":"Ten element procesu zostaÅ‚ odesÅ‚any do zgÅ‚aszajÄ…cego", - "workflow-item.send-back.notification.error.title":"CoÅ› poszÅ‚o nie tak", - "workflow-item.send-back.notification.error.content":"Ten element procesu nie mógÅ‚ zostać odesÅ‚any do zgÅ‚aszajÄ…cego", - "workflow-item.send-back.title":"OdeÅ›lij element procesu do zgÅ‚aszajÄ…cego", - "workflow-item.send-back.header":"OdeÅ›lij element procesu do zgÅ‚aszajÄ…cego", - "workflow-item.send-back.button.cancel":"Anuluj", - "workflow-item.send-back.button.confirm":"OdeÅ›lij", - "workflow-item.view.breadcrumbs":"Widok procesu", - "idle-modal.header":"Sesja wkrótce wygaÅ›nie", - "idle-modal.info":"Ze wzglÄ™dów bezpieczeÅ„stwa sesja wygaÅ›nie po {{ timeToExpire }} minutach nieaktywnoÅ›ci. Twoja sesja wkrótce wygaÅ›nie. Czy chcesz jÄ… przedÅ‚użyć albo wylogować siÄ™?", - "idle-modal.log-out":"Wyloguj", - "idle-modal.extend-session":"WydÅ‚uż sesjÄ™", - "workspace.search.results.head":"Twoje zadania", - "orgunit.listelement.badge":"Jednostka organizacyjna", - "orgunit.page.city":"Miasto", - "orgunit.page.country":"Kraj", - "orgunit.page.dateestablished":"Data zaÅ‚ożenia", - "orgunit.page.description":"Opis", - "orgunit.page.edit":"Edytuj pozycjÄ™", - "orgunit.page.id":"ID", - "orgunit.page.titleprefix":"Jednostka organizacyjna: ", - "pagination.options.description":"Opcje strony", - "pagination.results-per-page":"Wyników na stronÄ™", - "pagination.showing.detail":"{{ range }} z {{ total }}", - "pagination.showing.label":"Teraz wyÅ›wietlane ", - "pagination.sort-direction":"Opcje sortowania", - "cookies.consent.purpose.sharing":"UdostÄ™pnianie", - "item.preview.dc.identifier.issn":"ISSN", - "500.page-internal-server-error":"UsÅ‚uga niedostÄ™pna", - "500.help":"Serwer jest tymczasowo niezdolny do obsÅ‚ugi Twojego żądania z powodu przestoju konserwacyjnego lub problemów z przepustowoÅ›ciÄ…. Prosimy spróbować ponownie później.", - "500.link.home-page":"Zabierz mnie na stronÄ™ głównÄ…", - "error-page.description.401":"brak autoryzacji", - "error-page.description.403":"brak dostÄ™pu", - "error-page.description.500":"usÅ‚uga niedostÄ™pna", - "error-page.description.404":"nie znaleziono strony", - "error-page.orcid.generic-error":"Podczas logowania za pomocÄ… ORCID wystÄ…piÅ‚ bÅ‚Ä…d. Upewnij siÄ™, że udostÄ™pniÅ‚eÅ› DSpace adres e-mail swojego konta ORCID. JeÅ›li bÅ‚Ä…d nadal wystÄ™puje, skontaktuj siÄ™ z administratorem", - "access-status.embargo.listelement.badge":"Embargo", - "access-status.metadata.only.listelement.badge":"Tylko metadane", - "access-status.open.access.listelement.badge":"Open Access", - "access-status.restricted.listelement.badge":"Brak dostÄ™pu", - "access-status.unknown.listelement.badge":"Nieznane", - "admin.access-control.groups.table.edit.buttons.remove":"UsuÅ„ \"{{name}}\"", - "admin.metadata-import.page.validateOnly":"Tylko waliduj", - "admin.metadata-import.page.validateOnly.hint":"Po wybraniu tej opcji przesÅ‚any plik CSV zostanie poddany walidacji. Otrzymasz raport o wykrytych zmianach, ale żadne zmiany nie zostanÄ… zapisane.", - "bitstream.edit.form.iiifLabel.label":"Etykieta canvyIIIF", - "bitstream.edit.form.iiifLabel.hint":"Etykieta dla tego obrazu. JeÅ›li nie zostaÅ‚a dostarczona, zostanie użyta domyÅ›lna etykieta.", - "bitstream.edit.form.iiifToc.label":"Spis treÅ›ci IIIF", - "bitstream.edit.form.iiifToc.hint":"Dodanie tekstu tutaj zapoczÄ…tkuje nowy zakres spisu treÅ›ci.", - "bitstream.edit.form.iiifWidth.label":"Szerokość canvy IIIF", - "bitstream.edit.form.iiifWidth.hint":"Szerokość canvy jest zwykle równa szerokoÅ›ci obrazu.", - "bitstream.edit.form.iiifHeight.label":"Wysokość canvy IIIF", - "bitstream.edit.form.iiifHeight.hint":"Wysokość canvy jest zwykle równa szerokoÅ›ci obrazu.", - "browse.back.all-results":"Wszystkie wyniki wyszukiwania", - "pagination.next.button":"NastÄ™pny", - "pagination.previous.button":"Poprzedni", - "pagination.next.button.disabled.tooltip":"Brak wiÄ™cej stron z wynikami wyszukiwania", - "browse.startsWith":", zaczyna siÄ™ od {{ startsWith }}", - "browse.title.page":"Przeszukiwanie {{ collection }} wg {{ field }} {{ value }}", - "collection.edit.item.authorizations.load-bundle-button":"ZaÅ‚aduj wiÄ™cej paczek", - "collection.edit.item.authorizations.load-more-button":"ZaÅ‚aduj wiÄ™cej", - "collection.edit.item.authorizations.show-bitstreams-button":"Pokaż polityki plików dla paczek", - "comcol-role.edit.create.error.title":"Nie udaÅ‚o siÄ™ utworzyć grupy dla roli '{{ role }}'", - "curation.form.submit.error.invalid-handle":"Nie ustalono identyfikatora dla tego obiektu", - "confirmation-modal.delete-profile.header":"UsuÅ„ profil", - "confirmation-modal.delete-profile.info":"Czy na pewno chcesz usunąć profil", - "confirmation-modal.delete-profile.cancel":"Anuluj", - "confirmation-modal.delete-profile.confirm":"UsuÅ„", - "error.invalid-search-query":"Zapytanie nie jest poprawne. Wejdź na <a href=\"https://solr.apache.org/guide/query-syntax-and-parsing.html\" target=\"_blank\">Solr query syntax</a>, aby dowiedzieć siÄ™ o najlepszych praktykach i dodatkowych informacjach o tym bÅ‚Ä™dzie.", - "feed.description":"AktualnoÅ›ci", - "footer.link.feedback":"PrzeÅ›lij uwagi", - "form.group-collapse":"ZwiÅ„", - "form.group-collapse-help":"Kliknij tutaj, aby zwinąć", - "form.group-expand":"RozwiÅ„", - "form.group-expand-help":"Kliknij tutaj, aby rozwinąć", - "health.breadcrumbs":"Stan systemu", - "health-page.heading":"Stan systemu", - "health-page.info-tab":"Informacje", - "health-page.status-tab":"Status", - "health-page.error.msg":"Serwis stanu systemu jest tymczasowo niedostÄ™pny", - "health-page.property.status":"Kod statusu", - "health-page.section.db.title":"Baza danych", - "health-page.section.geoIp.title":"GeoIp", - "health-page.section.solrAuthorityCore.title":"Autentykacja", - "health-page.section.solrOaiCore.title":"OAI", - "health-page.section.solrSearchCore.title":"Wyszukiwarka", - "health-page.section.solrStatisticsCore.title":"Statystyki", - "health-page.section-info.app.title":"Backend aplikacji", - "health-page.section-info.java.title":"Java", - "health-page.status":"Status", - "health-page.status.ok.info":"operacyjny", - "health-page.status.error.info":"Wykryte problemy", - "health-page.status.warning.info":"Wykryte potencjalne problemy", - "health-page.title":"Stan systemu", - "health-page.section.no-issues":"Nie wykryto żadnych problemów", - "info.feedback.breadcrumbs":"Uwagi", - "info.feedback.head":"Uwagi", - "info.feedback.title":"Uwagi", - "info.feedback.info":"DziÄ™kujemy za podzielenie siÄ™ opiniÄ… na temat systemu DSpace. Doceniamy Twój wkÅ‚ad w lepsze dziaÅ‚anie systemu!", - "info.feedback.email_help":"Ten adres zostanie użyty, aby przesÅ‚ać odpowiedź na uwagi.", - "info.feedback.send":"PrzeÅ›lij uwagi", - "info.feedback.comments":"Komentarz", - "info.feedback.email-label":"Twoj adres e-mail", - "info.feedback.create.success":"Uwagi przesÅ‚ane!", - "info.feedback.error.email.required":"Poprawny adres e-mail jest wymagany", - "info.feedback.error.message.required":"Treść komentarza jest wymagana", - "info.feedback.page-label":"Strona", - "info.feedback.page_help":"Ta strona odnosi siÄ™ do uwag.", - "item.orcid.return":"Powrót", - "item.truncatable-part.show-more":"Pokaż wiÄ™cej", - "item.truncatable-part.show-less":"Pokaż mniej", - "item.page.orcid.title":"ORCID", - "item.page.orcid.tooltip":"Otwórz ustawienia ORCID", - "item.page.claim.button":"Podejmij pracÄ™", - "item.page.claim.tooltip":"Podejmij pracÄ™ jako profil", - "item.version.create.modal.submitted.header":"Tworzenie nowej wersji...", - "item.version.create.modal.submitted.text":"Nowa wersja zostaÅ‚a utworzona. MogÅ‚o to trwać chwilÄ™, jeÅ›li pozycja ma wiele powiÄ…zaÅ„.", - "journal-relationships.search.results.head":"Wyniki wyszukiwania czasopism", - "menu.section.icon.health":"Sekcja menu Stan systemu", - "menu.section.health":"Stan systemu", - "metadata-export-search.tooltip":"Eksportuj wyniki wyszukiwania w formacie CSV", - "metadata-export-search.submit.success":"Eksport rozpoczÄ…Å‚ siÄ™", - "metadata-export-search.submit.error":"Eksport nie rozpoczÄ…Å‚ siÄ™", - "person.page.name":"Nazwa", - "person-relationships.search.results.head":"Wyniki wyszukiwania osób", - "profile.special.groups.head":"Autoryzacja do specjalnych grup, do których należysz", - "project-relationships.search.results.head":"Wyniki wyszukiwania projektów", - "publication-relationships.search.results.head":"Wyniki wyszukiwania publikacji", - "resource-policies.edit.page.target-failure.content":"WystÄ…piÅ‚ bÅ‚Ä…d podczas edycji (użytkownika lub grupy) zwiÄ…zany z politykÄ… zasobu.", - "resource-policies.edit.page.other-failure.content":"WystÄ…piÅ‚ bÅ‚Ä…d podczas edycji polityki zasobu. Użytkownik lub grupa zostaÅ‚y zaktualizowane pomyÅ›lnie.", - "resource-policies.form.eperson-group-list.modal.header":"Nie można zmienić typu", - "resource-policies.form.eperson-group-list.modal.text1.toGroup":"Nie można zastÄ…pić użytkownika grupÄ….", - "resource-policies.form.eperson-group-list.modal.text1.toEPerson":"Nie można zastÄ…pić grupy użytkownikiem.", - "resource-policies.form.eperson-group-list.modal.text2":"UsuÅ„ obecnÄ… polityke zasobu i stwórz nowÄ… o okreÅ›lonym typie.", - "resource-policies.form.eperson-group-list.modal.close":"Ok", - "search.results.view-result":"Widok", - "default-relationships.search.results.head":"Wyniki wyszukiwania", - "statistics.table.title.TotalVisits":"WyÅ›wietlnia ogółem", - "statistics.table.title.TotalVisitsPerMonth":"WyÅ›wietlenia w miesiÄ…cu", - "statistics.table.title.TotalDownloads":"Pobrania", - "statistics.table.title.TopCountries":"WyÅ›wietlenia wg krajów", - "statistics.table.title.TopCities":"WyÅ›wietlenia wg miast", - "submission.import-external.preview.title":"PodglÄ…d pozycji", - "submission.import-external.preview.title.none":"PodglÄ…d pozycji", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.none":"Import pozycji zdalnie", - "submission.sections.general.cannot_deposit":"Nie można zakoÅ„czyć deponowania, ponieważ w formularzu wystÄ…piÅ‚y bÅ‚Ä™dy.<br>Aby zakoÅ„czyć deponowanie, wypeÅ‚nij wszystkie obowiÄ…zkowe pola.", - "submission.sections.submit.progressbar.accessCondition":"Warunki dostÄ™pu do pozycji", - "submission.sections.submit.progressbar.sherpapolicy":"Polityki Sherpa", - "submission.sections.submit.progressbar.sherpaPolicies":"Informacje o polityce open access wydawcy.", - "submission.sections.status.info.title":"Dodatkowe informacje", - "submission.sections.status.info.aria":"Dodatkowe informacje", - "submission.sections.upload.form.access-condition-hint":"Wybierz w jaki sposób pliki dla tej pozycji po jest zdeponowaniu bÄ™dÄ… mogÅ‚y być udostÄ™pnione", - "submission.sections.upload.form.from-hint":"Wybierz datÄ™, od której ma zostać zastosowany warunek dostÄ™pu", - "submission.sections.upload.form.until-hint":"Wybierz datÄ™, do której ma zostać zastosowany warunek dostÄ™pu", - "submission.sections.accesses.form.discoverable-description":"JeÅ›li checkbox jest zaznaczony, pozycja bÄ™dzie wyÅ›wietlana w wynikach wyszukiwania. JeÅ›li checkbox jest odznaczony, dostÄ™p do pozycji bÄ™dzie dostÄ™pny tylko przez bezpoÅ›redni link, pozycja nie bÄ™dzie wyÅ›wietlana w wynikach wyszukiwania.", - "submission.sections.accesses.form.discoverable-label":"Niemożliwe do wyszukania", - "submission.sections.accesses.form.access-condition-label":"Typ warunku dostÄ™pu", - "submission.sections.accesses.form.access-condition-hint":"Wybierz warunek dostÄ™pu, aby przypisać go do pozycji, kiedy zostanie zdeponowany.", - "submission.sections.accesses.form.date-required":"Data jest wymagana.", - "submission.sections.accesses.form.date-required-from":"PoczÄ…tkowa data przyznania dostÄ™pu jest wymagana.", - "submission.sections.accesses.form.date-required-until":"KoÅ„cowa data przyznania dostÄ™pu jest wymagana.", - "submission.sections.accesses.form.from-label":"Udziel dostÄ™pu od", - "submission.sections.accesses.form.from-hint":"Wybierz datÄ™, od kiedy zostanie przyznany dostÄ™p do tej pozycji", - "submission.sections.accesses.form.from-placeholder":"Od", - "submission.sections.accesses.form.group-label":"Grupa", - "submission.sections.accesses.form.group-required":"Grupa jest wymagana.", - "submission.sections.accesses.form.until-label":"Udziel dostÄ™pu do", - "submission.sections.accesses.form.until-hint":"Wybierz datÄ™, do kiedy zostanie przyznany dostÄ™p do tej pozycji", - "submission.sections.accesses.form.until-placeholder":"Do", - "submission.sections.sherpa.publication.information":"Informacje o publikacji", - "submission.sections.sherpa.publication.information.title":"TytuÅ‚", - "submission.sections.sherpa.publication.information.issns":"Numery ISSN", - "submission.sections.sherpa.publication.information.url":"URL", - "submission.sections.sherpa.publication.information.publishers":"Wydawca", - "submission.sections.sherpa.publication.information.romeoPub":"Wydawca Romeo", - "submission.sections.sherpa.publication.information.zetoPub":"Wydawca Zeto", - "submission.sections.sherpa.publisher.policy":"Polityka wydawnicza", - "submission.sections.sherpa.publisher.policy.description":"Poniższe informacje zostaÅ‚y znalezione za poÅ›rednictwem Sherpa Romeo. W oparciu o politykÄ™ Twojego wydawcy, zawiera ona porady dotyczÄ…ce tego, czy embargo może być konieczne i/lub jakie pliki możesz przesÅ‚ać. JeÅ›li masz pytania, skontaktuj siÄ™ z administratorem strony poprzez formularz.", - "submission.sections.sherpa.publisher.policy.openaccess":"Rodzaje Open Access dozwolone przez politykÄ™ wydawniczÄ… tego czasopisma sÄ… wymienione poniżej. Kliknij na wybrany rodzaj, aby przejść do szczegółowego widoku", - "submission.sections.sherpa.publisher.policy.more.information":"Aby uzuyskać wiÄ™cej informacji, kliknij tutaj:", - "submission.sections.sherpa.publisher.policy.version":"Wersja", - "submission.sections.sherpa.publisher.policy.embargo":"Embargo", - "submission.sections.sherpa.publisher.policy.noembargo":"Brak embargo", - "submission.sections.sherpa.publisher.policy.nolocation":"Brak", - "submission.sections.sherpa.publisher.policy.license":"Licencja", - "submission.sections.sherpa.publisher.policy.prerequisites":"Wymagania wstÄ™pne", - "submission.sections.sherpa.publisher.policy.location":"Lokalizacja", - "submission.sections.sherpa.publisher.policy.conditions":"Wymagania", - "submission.sections.sherpa.publisher.policy.refresh":"OdÅ›wież", - "submission.sections.sherpa.record.information":"Informacje o rekordzie", - "submission.sections.sherpa.record.information.id":"ID", - "submission.sections.sherpa.record.information.date.created":"Data utworzenia", - "submission.sections.sherpa.record.information.date.modified":"Ostatnia modyfikacja", - "submission.sections.sherpa.record.information.uri":"URI", - "submission.sections.sherpa.error.message":"WystÄ…piÅ‚ bÅ‚Ä…d podczas pobierania informacji z Sherpa", - "submission.workspace.generic.view":"PodglÄ…d", - "submission.workspace.generic.view-help":"Wybierz tÄ™ opcje, aby zobaczyć metadane.", - "workflow.search.results.head":"Zadania na workflow", - "workspace-item.view.breadcrumbs":"Widok wersji roboczej", - "workspace-item.view.title":"Widok wersji roboczej", - "researcher.profile.change-visibility.fail":"WystÄ…piÅ‚ niespodziewany bÅ‚Ä…d podczas zmiany widocznoÅ›ci profilu", - "person.page.orcid.link.processing":"ÅÄ…czenie profilu z ORCID...", - "person.page.orcid.link.error.message":"CoÅ› poszÅ‚o nie tak podczas Å‚Ä…czenia z ORCID. JeÅ›li problem bÄ™dzie siÄ™ powtarzaÅ‚, skontaktuj siÄ™ z administratorem.", - "person.page.orcid.sync-queue.table.header.type":"Typ", - "person.page.orcid.sync-queue.table.header.description":"Opis", - "person.page.orcid.sync-queue.table.header.action":"Akcja", - "person.page.orcid.sync-queue.tooltip.project":"Projekt", - "person.page.orcid.sync-queue.send.validation-error.country.invalid":"NiewÅ‚aÅ›ciwy dwuznakowy kod kraju ISO 3166", - "person.page.orcid.sync-queue.send.validation-error.publication.date-invalid":"Wymagana data publikacji to co najmniej rok po 1900", - "person.page.orcid.synchronization-mode-funding-message":"Wybierz, czy chcesz wysÅ‚ać swoje projekty na swojÄ… listÄ™ informacji o projektach w profilu ORCID.", - "person.page.orcid.synchronization-mode-publication-message":"Wybierz, czy chcesz wysÅ‚ać swoje publikacje na swojÄ… listÄ™ informacji o publikacjach w profilu ORCID.", - "person.page.orcid.synchronization-mode-profile-message":"Wybierz, czy chcesz wysÅ‚ać swoje dane bibliograficzne lub osobiste identyfikatory do swojego profilu ORCID.", - "person.orcid.sync.setting":"Ustawienia synchronizacji z ORCID", - "person.orcid.registry.queue":"Kolejka rejestru z ORCID", - "person.orcid.registry.auth":"Autoryzacje z ORCID", - "home.recent-submissions.head":"Najnowsze publikacje", - "submission.sections.sherpa-policy.title-empty":"Nie wybrano ISSN i informacje o polityce wydawniczej czasopisma sÄ… niedostÄ™pne", - "admin.batch-import.breadcrumbs":"Import zbiorczy", - "admin.batch-import.page.dropMsg":"Drop a batch ZIP to import", - "admin.batch-import.page.dropMsgReplace":"Drop to replace the batch ZIP to import", - "admin.batch-import.page.error.addFile":"Najpierw wybierz plik (ZIP)", - "admin.batch-import.page.header":"Import masowy", - "admin.batch-import.page.help":"Wybierz kolekcjÄ™ do zaimportowania kolekcji. Potem, upuść lub przeszukaj plik SAF, który zawiera pozycje do importu", - "admin.batch-import.page.remove":"usuÅ„", - "admin.batch-import.page.validateOnly.hint":"JeÅ›li wybrano, importowany plik ZIP bÄ™dzie walidowany. Otrzymasz raport ze zmianami, ale żadne zmiany nie zostanÄ… wykonane zapisane.", - "collection.form.correctionSubmissionDefinition":"Wzór zgÅ‚oszenia do proÅ›by o korektÄ™", - "comcol-role.edit.delete.error.title":"Nie udaÅ‚o siÄ™ usunąć roli '{{ role }}' dla grup", - "confirmation-modal.export-batch.header":"Eksport maasowy (ZIP) {{ dsoName }}", - "confirmation-modal.export-batch.info":"Czy na pewno chcesz wyeksportować plik ZIP z {{ dsoName }}", - "dso-selector.export-batch.dspaceobject.head":"Eksport masowy (ZIP) z", - "menu.section.export_batch":"Eksport masowy (ZIP)", - "nav.user-profile-menu-and-logout":"Profil użytkownika i wylogowywanie", - "process.detail.actions":"Akcje", - "process.detail.delete.body":"Czy na pewno chcesz usunąć bieżący proces?", - "process.detail.delete.button":"UsuÅ„ proces", - "process.detail.delete.cancel":"Anuluj", - "process.detail.delete.confirm":"UsuÅ„ proces", - "process.detail.delete.error":"Nie udaÅ‚o siÄ™ usunąć procesu", - "process.detail.delete.header":"UsuÅ„ proces", - "process.detail.delete.success":"Proces zostaÅ‚ usuniÄ™ty.", - "admin.batch-import.title":"Masowy import", - "admin.metadata-import.page.button.select-collection":"Wybierz kolekcjÄ™", - "admin.registries.bitstream-formats.table.id":"ID", - "admin.registries.schema.fields.table.id":"ID", - "cookies.consent.app.description.google-recaptcha":"Podczas rejestracji i odzyskiwania hasÅ‚a używamy narzÄ™dzia google reCAPTCHA", - "cookies.consent.app.disable-all.description":"PrzeÅ‚Ä…cz, aby zaakceptować lub odrzucić wszystkie", - "cookies.consent.app.disable-all.title":"Akceptowacja lub odrzucenie wszystkich", - "cookies.consent.app.title.google-recaptcha":"Google reCaptcha", - "cookies.consent.content-modal.service":"usÅ‚uga", - "cookies.consent.content-modal.services":"usÅ‚ugi", - "cookies.consent.content-notice.description.no-privacy":"Zbieramy i przetwarzamy Twoje dane w celu: <strong>autentykacji, ustawieÅ„ preferencji i zgód oraz do celów statystycznych</strong>.", - "cookies.consent.content-notice.title":"Zgoda na ciasteczka", - "cookies.consent.ok":"Zgadzam siÄ™", - "cookies.consent.purpose.registration-password-recovery":"Rejestracja i odzyskiwanie hasÅ‚a", - "cookies.consent.save":"Zapisz", - "curation-task.task.citationpage.label":"Generuj stronÄ™ z cytowaniem", - "dso-selector.import-batch.dspaceobject.head":"Import masowy z", - "orgunit.listelement.no-title":"Brak tytyÅ‚u", - "process.bulk.delete.error.body":"Proces z ID {{processId}} nie może być usuniÄ™ty. PozostaÅ‚e procesy zostanÄ… usuniÄ™te.", - "process.bulk.delete.error.head":"BÅ‚Ä…d podczas usuwania procesu", - "process.bulk.delete.success":"{{count}} proces/y zostaÅ‚/y usuniÄ™te", - "process.overview.delete":"UsuÅ„ {{count}} proces/y", - "process.overview.delete.body":"Czy na pewno usunąć {{count}} proces/y?", - "process.overview.delete.clear":"Wyczyść selekcjÄ™ procesów do usuniÄ™cia", - "process.overview.delete.header":"UsuÅ„ procesy", - "process.overview.delete.processing":"{{count}} procesów zostanie usuniÄ™tych. Poczekaj, gdy usuwanie siÄ™ zakoÅ„czy. Może to zająć chwilÄ™.", - "process.overview.table.actions":"Akcje", - "profile.security.form.label.current-password":"Aktualne hasÅ‚o", - "profile.security.form.notifications.error.change-failed":"WystÄ…piÅ‚ bÅ‚Ä…d podczas próby zmiany hasÅ‚a. Sprawdź czy aktualne hasÅ‚o jest prawidÅ‚owe.", - "profile.security.form.notifications.error.general":"UzupeÅ‚nij wymagane pola dla bezpieczeÅ„stwa na formularzu", - "register-page.registration.error.recaptcha":"WystÄ…piÅ‚ bÅ‚Ä…d podczas próby autentykacji przez reCAPTCHA", - "register-page.registration.google-recaptcha.must-accept-cookies":"Aby siÄ™ zarejestrować, musisz zaakceptować ciasteczka dla <b>rejestracji i odzyskiwania hasÅ‚a</b> (Google reCaptcha).", - "register-page.registration.google-recaptcha.notification.message.error":"WystÄ…piÅ‚ bÅ‚Ä…d podczas weryfikacji reCaptcha", - "register-page.registration.google-recaptcha.notification.message.expired":"Weryfikacja wygasÅ‚a. Zweryfikuj ponownie.", - "register-page.registration.google-recaptcha.notification.title":"Google reCaptcha", - "register-page.registration.google-recaptcha.open-cookie-settings":"Otwórz ustawienia plików cookies", - "search.results.response.500":"WystÄ…piÅ‚ bÅ‚Ä…d podczas wysyÅ‚ania zapytania. Spróbuj ponownie później", - "submission.sections.license.granted-label":"Potwierdzam akceptacjÄ™ powyższej licencji", - "submission.sections.license.notgranted":"Najpierw musisz zaakceptować licencjÄ™", - "submission.sections.license.required":"Najpierw musisz zaakceptować licencjÄ™", - "confirmation-modal.export-batch.confirm":"Eksportuj", - "confirmation-modal.export-batch.cancel":"Anuluj", - "admin.access-control.bulk-access.breadcrumbs":"Zbiorcza edycja dostÄ™pu do osiÄ…gnięć", - "administrativeBulkAccess.search.results.head":"Wyniki wyszukiwania", - "admin.access-control.bulk-access":"Zbiorcza edycja dostÄ™pu do osiÄ…gnięć", - "admin.access-control.bulk-access.title":"Zbiorcza edycja dostÄ™pu do osiÄ…gnięć", - "admin.access-control.bulk-access-browse.header":"Krok 1: Wybierz pozycje", - "admin.access-control.bulk-access-browse.search.header":"Wyszukaj", - "admin.access-control.bulk-access-browse.selected.header":"Obecny wybór({{number}})", - "admin.access-control.bulk-access-settings.header":"Krok 2: DziaÅ‚anie do wykonania", - "admin.access-control.groups.form.tooltip.editGroupPage":"Na tej stronie można edytować opcje grupy i przypisane do niej osoby. W górnej sekcji można edytować nazwÄ™ i opis grupy, chyba że jest to grupa administratorów dla zbioru i kolekcji. W tym przypadku nazwa i opis grupy sÄ… generowane automatycznie i nie można ich edytować. W kolejnych sekcjach można edytować przypisanie użytkowników do grupy. Szczegóły na [stronie](https://wiki.lyrasis.org/display/DSDOC7x/Create+or+manage+a+user+group).", - "admin.access-control.groups.form.tooltip.editGroup.addEpeople":"Aby dodać lub usunąć użytkownika do/z tej grupy, kliknij przycisk 'PrzeglÄ…daj wszystko' lub użyj paska wyszukiwania poniżej, aby wyszukać użytkowników (użyj listy rozwijanej po lewej stronie paska wyszukiwania, aby wybrać, czy chcesz wyszukiwać wedÅ‚ug imienia i nazwiska, czy wedÅ‚ug adresu e-mail). NastÄ™pnie kliknij ikonÄ™ plusa przy każdym użytkowniku, którego chcesz dodać do poniższej listy, lub ikonÄ™ kosza przy każdym użytkowniku, którego chcesz usunąć. Poniższa lista może mieć kilka stron: użyj strzaÅ‚ek pod listÄ…, aby przejść do kolejnych stron. Gdy wszystkie zmiany zostanÄ… wprowadzone, zapisz je, klikajÄ…c przycisk 'Zapisz' w górnej sekcji.", - "admin.access-control.groups.form.tooltip.editGroup.addSubgroups":"Aby dodać lub usunąć podgrupÄ™ do/z tej grupy, kliknij przycisk 'PrzeglÄ…daj wszystko' lub użyj wyszukiwarki poniżej, aby wyszukać użytkowników. NastÄ™pnie kliknij ikonÄ™ plusa przy każdym użytkowniku, którego chcesz dodać do poniższej listy, lub ikonÄ™ kosza przy każdym użytkowniku, którego chcesz usunąć. Poniższa lista może skÅ‚adać siÄ™ z kilku stron: użyj przycisków pod listÄ…, aby przejść do kolejnych stron. Gdy wszystkie zmiany zostanÄ… wprowadzone, zapisz je, klikajÄ…c przycisk 'Zapisz' w górnej sekcji.", - "admin.workflow.item.workspace":"PrzestrzeÅ„ robocza", - "admin.workflow.item.policies":"Polityki", - "admin.workflow.item.supervision":"Recenzja", - "admin.batch-import.page.toggle.help":"It is possible to perform import either with file upload or via URL, use above toggle to set the input source", - "admin.metadata-import.page.error.addFileUrl":"Najpierw wpisz URL pliku!", - "admin.metadata-import.page.toggle.upload":"PrzeÅ›lij", - "admin.metadata-import.page.toggle.url":"URL", - "admin.metadata-import.page.urlMsg":"Wpisz URL pliku ZIP, aby wykonać import masowy", - "advanced-workflow-action.rating.form.rating.label":"Ocena", - "advanced-workflow-action.rating.form.rating.error":"Ta pozycja musi zostać oceniona", - "advanced-workflow-action.rating.form.review.label":"Recenzja", - "advanced-workflow-action.rating.form.review.error":"Musisz wpisać tekst recenzji", - "advanced-workflow-action.rating.description":"Wybierz ocenÄ™ poniżej", - "advanced-workflow-action.rating.description-requiredDescription":"Wybierz ocenÄ™ poniżej i wpisz uzasadnienie", - "advanced-workflow-action.select-reviewer.description-single":"Wybierz recenzenta przed zdeponowaniem pozycji", - "advanced-workflow-action.select-reviewer.description-multiple":"Wybierz jednego lub wiÄ™cej recenzentów przed zdeponowaniem pozycji", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.head":"Użytkownicy", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.head":"Dodaj użytkownika", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.button.see-all":"PrzeglÄ…daj wszystko", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.headMembers":"Aktualni użytkownicy", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.metadata":"Metadane", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.email":"Adres e-mail (dokÅ‚adny)", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.button":"Wyszukaj", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.id":"ID", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.name":"Nazwa", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.identity":"Tożsamość", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.email":"Adres e-mail", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.netid":"NetID", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit":"UsuÅ„ / Dodaj", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.remove":"UsuÅ„ użytkownika z nazwÄ™ \"{{name}}\"", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.addMember":"Dodano użytkownika o nazwie: \"{{name}}\"", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.addMember":"Nie dodano użytkownika: \"{{name}}\"", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.deleteMember":"UsuniÄ™to użytkownika: \"{{name}}\"", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.deleteMember":"Nie usuniÄ™to użytkownika: \"{{name}}\"", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.add":"Dodano użytkownika \"{{name}}\"", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.noActiveGroup":"Brak aktywnej grupy, najpierw wpisz nazwÄ™.", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-members-yet":"W tej grupie nie ma użytkowników, wyszukaj ich i dodaj.", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-items":"Nie znaleziono żadnych użytkowników", - "advanced-workflow-action.select-reviewer.no-reviewer-selected.error":"Recenzent nie jest wybrany.", - "bitstream.edit.notifications.error.primaryBitstream.title":"WystÄ…piÅ‚ bÅ‚Ä…d podczas zapisu pliku.", - "browse.comcol.by.srsc":"Wg słów kluczowych", - "browse.metadata.srsc.breadcrumbs":"PrzeglÄ…daj wg słów kluczowych", - "browse.startsWith.input":"Filtr", - "browse.taxonomy.button":"PrzeglÄ…daj", - "search.browse.item-back":"Powrót do wyników wyszukiwania", - "claimed-approved-search-result-list-element.title":"Zaakceptowano", - "claimed-declined-search-result-list-element.title":"Odrzucono i przesÅ‚ano do deponujÄ…cego", - "claimed-declined-task-search-result-list-element.title":"Odrzucono i przesÅ‚ano do recenzenta", - "collection.edit.tabs.access-control.head":"DostÄ™py", - "collection.edit.tabs.access-control.title":"Edycja kolekcji - dostÄ™py", - "collection.listelement.badge":"Kolekcja", - "community.edit.tabs.access-control.head":"DostÄ™py", - "community.edit.tabs.access-control.title":"Edycja zbioru - dostÄ™py", - "comcol-role.edit.scorereviewers.name":"Ocena recenzenta", - "comcol-role.edit.scorereviewers.description":"Recenzenci mogÄ… oceniać zdeponowane pozycje, co okreÅ›li, czy pozycja zostanie przyjÄ™ta lub odrzucona.", - "curation-task.task.register-doi.label":"Rejestracja DOI", - "dso.name.unnamed":"Bez nazwy", - "dso-selector.create.community.or-divider":"lub", - "dso-selector.set-scope.community.or-divider":"lub", - "dso-selector.results-could-not-be-retrieved":"WystÄ…piÅ‚ bÅ‚Ä…d, proszÄ™ odÅ›wieżyć stronÄ™", - "supervision-group-selector.header":"Wybór grupy recenzenckiej", - "supervision-group-selector.select.type-of-order.label":"Wybierz typ funkcji", - "supervision-group-selector.select.type-of-order.option.none":"BRAK", - "supervision-group-selector.select.type-of-order.option.editor":"REDAKTOR", - "supervision-group-selector.select.type-of-order.option.observer":"OBSERWATOR", - "supervision-group-selector.select.group.label":"Wybierz grupÄ™", - "supervision-group-selector.button.cancel":"Anuluj", - "supervision-group-selector.button.save":"Zapisz", - "supervision-group-selector.select.type-of-order.error":"Wybierz typ funkcji", - "supervision-group-selector.select.group.error":"Wybierz grupÄ™", - "supervision-group-selector.notification.create.success.title":"Grupa recenzencka zostaÅ‚ dodana dla grupy {{ name }}", - "supervision-group-selector.notification.create.failure.title":"BÅ‚Ä…d", - "supervision-group-selector.notification.create.already-existing":"Funkcja recenzenta już jest przypisana do tej grupy", - "confirmation-modal.delete-subscription.header":"UsuÅ„ subksrypcje", - "confirmation-modal.delete-subscription.info":"Czy na pewno chcesz usunąć subskrypcjÄ™: \"{{ dsoName }}\"", - "confirmation-modal.delete-subscription.cancel":"Anuluj", - "confirmation-modal.delete-subscription.confirm":"UsuÅ„", - "error.validation.metadata.name.invalid-pattern":"To pole nie może zawierać kropek, przecinków i spacji. Zamiast tego This field cannot contain dots, commas or spaces. Zamiast tego może użyć pól z notacji SNEQ", - "error.validation.metadata.name.max-length":"To pole nie może zawierać wiÄ™cej niż 32 znaki", - "error.validation.metadata.namespace.max-length":"To pole nie może zawierać wiÄ™cej niż 256 znaków", - "error.validation.metadata.element.invalid-pattern":"To pole nie może zawierać kropek, przecinków i spacji. Zamiast tego This field cannot contain dots, commas or spaces. Zamiast tego może użyć pól z notacji SNEQ", - "error.validation.metadata.element.max-length":"To pole nie może zawierać wiÄ™cej niż 64 znaki", - "error.validation.metadata.qualifier.invalid-pattern":"To pole nie może zawierać kropek, przecinków i spacji", - "error.validation.metadata.qualifier.max-length":"To pole nie może zawierać wiÄ™cej niż 64 znaki", - "forgot-email.form.email.error.not-email-form":"Wpisz prawidÅ‚owy adres e-mail", - "form.other-information.email":"Adres e-mail", - "form.other-information.first-name":"ImiÄ™", - "form.other-information.insolr":"Solr Index", - "form.other-information.institution":"Instytucja", - "form.other-information.last-name":"Nazwisko", - "form.other-information.orcid":"ORCID", - "form.create":"Utwórz", - "info.end-user-agreement.hosting-country":"Stany Zjednoczone", - "item.edit.identifiers.doi.status.UNKNOWN":"Nieznane", - "item.edit.identifiers.doi.status.TO_BE_REGISTERED":"W kolejce do rejestracji", - "item.edit.identifiers.doi.status.TO_BE_RESERVED":"W kolejce do rezerwacji", - "item.edit.identifiers.doi.status.IS_REGISTERED":"Zarejestrowane", - "item.edit.identifiers.doi.status.IS_RESERVED":"Zarezerwowane", - "item.edit.identifiers.doi.status.UPDATE_RESERVED":"Zarezerwowane (aktualizacja w kolejce)", - "item.edit.identifiers.doi.status.UPDATE_REGISTERED":"Zarejestrowane (aktualizacja w kolejce)", - "item.edit.identifiers.doi.status.UPDATE_BEFORE_REGISTRATION":"W kolejce do aktualizacji i rejestracji", - "item.edit.identifiers.doi.status.TO_BE_DELETED":"Zakolejkowane do usuniÄ™cia", - "item.edit.identifiers.doi.status.DELETED":"UsuniÄ™te", - "item.edit.identifiers.doi.status.PENDING":"OczekujÄ…ce (niezarejestrowane)", - "item.edit.identifiers.doi.status.MINTED":"Rezerwowanie nazwy (niezarejestrowane)", - "item.edit.tabs.status.buttons.register-doi.label":"Zarejestruj nowe lub oczekujÄ…ce DOI", - "item.edit.tabs.status.buttons.register-doi.button":"Rejestruj DOI...", - "item.edit.register-doi.header":"Zarejestruj nowe lub oczekujÄ…ce DOI", - "item.edit.register-doi.description":"Zweryfikuj poniższe identyfikatory i metadane pozycji i rozpocznij rejestracjÄ™ DOI lub anuluj", - "item.edit.register-doi.confirm":"Zatwierdź", - "item.edit.register-doi.cancel":"Anuluj", - "item.edit.register-doi.success":"DOI jest w kolejce do rejestracji.", - "item.edit.register-doi.error":"WystÄ…piÅ‚ bÅ‚Ä…d poczas rejestracji DOI", - "item.edit.register-doi.to-update":"To DOI zostaÅ‚o zarezerwowane i bÄ™dzie znajdować siÄ™ w kolejce do rejestracji", - "item.edit.metadata.edit.buttons.confirm":"Zatwierdź", - "item.edit.metadata.edit.buttons.drag":"PrzeciÄ…gnij, aby zmienić kolejność", - "item.edit.metadata.edit.buttons.virtual":"To pole przechowuje wirutalne wartoÅ›ci metadanych, np. wartość pobranÄ… z encji, z którÄ… jest poÅ‚Ä…czona ta pozycja. Dodaj lub usuÅ„ relacjÄ™ w zakÅ‚adce 'Relacje' ", - "item.edit.metadata.metadatafield.error":"WystÄ…piÅ‚ bÅ‚Ä…d podczas walidcji pól metadanych", - "item.edit.metadata.reset-order-button":"Cofnij zamianÄ™ kolejnoÅ›ci", - "item.edit.curate.title":"ZarzÄ…dzaj pozycjÄ…: {{item}}", - "item.edit.tabs.access-control.head":"DostÄ™p", - "item.edit.tabs.access-control.title":"Edycja pozycji - dostÄ™p", - "workflow-item.search.result.delete-supervision.modal.header":"UsuÅ„ zadanie dla recenzenta", - "workflow-item.search.result.delete-supervision.modal.info":"Czy na pewno usunąć zadanie dla recenzenta", - "workflow-item.search.result.delete-supervision.modal.cancel":"Anuluj", - "workflow-item.search.result.delete-supervision.modal.confirm":"UsuÅ„", - "workflow-item.search.result.notification.deleted.success":"UsuniÄ™to zadanie dla recenzenta \"{{name}}\"", - "workflow-item.search.result.notification.deleted.failure":"Nie usuniÄ™to zadania dla recenzenta \"{{name}}\"", - "workflow-item.search.result.list.element.supervised-by":"Recenzja:", - "workflow-item.search.result.list.element.supervised.remove-tooltip":"UsuÅ„ grupÄ™ recenzenckÄ…", - "item.preview.dc.subject":"SÅ‚owo kluczowe:", - "item.preview.dc.publisher":"Wydawca:", - "itemtemplate.edit.metadata.add-button":"Dodaj", - "itemtemplate.edit.metadata.discard-button":"Cofnij", - "itemtemplate.edit.metadata.edit.buttons.confirm":"Zatwierdź", - "itemtemplate.edit.metadata.edit.buttons.drag":"PrzeciÄ…gnij, aby zmienić kolejność", - "itemtemplate.edit.metadata.edit.buttons.edit":"Edytuj", - "itemtemplate.edit.metadata.edit.buttons.remove":"UsuÅ„", - "itemtemplate.edit.metadata.edit.buttons.undo":"Cofnij zmiany", - "itemtemplate.edit.metadata.edit.buttons.unedit":"Nie edytuj", - "itemtemplate.edit.metadata.empty":"To pozycja nie zawiera żadnych metadanych. Wybierz Dodaj, aby je wprowadzić.", - "itemtemplate.edit.metadata.headers.edit":"Edytuj", - "itemtemplate.edit.metadata.headers.field":"Pole", - "itemtemplate.edit.metadata.headers.language":"JÄ™zyk", - "itemtemplate.edit.metadata.headers.value":"Wartość", - "itemtemplate.edit.metadata.metadatafield.error":"WystÄ…piÅ‚ bÅ‚Ä…d podczas walidowania pola metadanych", - "itemtemplate.edit.metadata.metadatafield.invalid":"Wybierz odpowiednie pole metadanych", - "itemtemplate.edit.metadata.notifications.discarded.content":"Twoje zmiany nie zostaÅ‚y zachowane. Aby spróbować wprowadzić je ponownie wybierz Cofnij", - "itemtemplate.edit.metadata.notifications.discarded.title":"Zmiany nie zostaÅ‚y zachowane", - "itemtemplate.edit.metadata.notifications.error.title":"WystÄ…piÅ‚ bÅ‚Ä…d", - "itemtemplate.edit.metadata.notifications.invalid.content":"Twoje zmiany nie zostaÅ‚y zapisane. Upewnij siÄ™, że wszystkie pola zostaÅ‚y wypeÅ‚nione prawidÅ‚owo.", - "itemtemplate.edit.metadata.notifications.invalid.title":"NieprawidÅ‚owe metadan", - "itemtemplate.edit.metadata.notifications.outdated.content":"Wzór dla pozycji, na którÄ… w tym momencie pracujesz, zostaÅ‚ zmodyfikowany przez innego użytkownika. Twoje zmiany zostaÅ‚y odrzucone, aby uniknąć konfliktów pomiÄ™dzy wersjami.", - "itemtemplate.edit.metadata.notifications.outdated.title":"Zmiany zostaÅ‚y odrzucone", - "itemtemplate.edit.metadata.notifications.saved.content":"Zmiany w metadanych wzoru pozycji zostaÅ‚y zapisane.", - "itemtemplate.edit.metadata.notifications.saved.title":"Metadane zostaÅ‚y zapisane", - "itemtemplate.edit.metadata.reinstate-button":"Cofnij", - "itemtemplate.edit.metadata.reset-order-button":"Cofnij zmianÄ™ kolejnoÅ›ci", - "itemtemplate.edit.metadata.save-button":"Zapisz", - "menu.section.access_control_bulk":"Zbiorowe zarzÄ…dzanie dostÄ™pem", - "menu.section.browse_global_by_srsc":"Wg słów kluczowych", - "mydspace.show.supervisedWorkspace":"Pozycje recenzowane", - "mydspace.status.mydspaceArchived":"Opublikowano", - "mydspace.status.mydspaceValidation":"Walidacja", - "mydspace.status.mydspaceWaitingController":"Oczekiwanie na redakctora", - "mydspace.status.mydspaceWorkflow":"Redakcja", - "mydspace.status.mydspaceWorkspace":"PrzestrzeÅ„ robocza", - "nav.context-help-toggle":"PrzeÅ‚Ä…cz pomoc kontekstowÄ…", - "nav.search.button":"Wpisz wyszukiwanÄ… frazÄ™", - "nav.subscriptions":"Subksrypcje", - "process.new.notification.error.max-upload.content":"Plik jest wiÄ™kszy niż maksymalny dozwolony rozmiar pliku", - "register-page.registration.email.error.not-email-form":"Wprowadź poprawny adres e-mail", - "register-page.registration.email.error.not-valid-domain":"Użyj adresu e-mail z domeny: {{ domains }}", - "register-page.registration.error.maildomain":"Tego adresu e-mail nie możesz zarejestrować, ponieważ nie ma go na liÅ›cie domen. Dozwolone domeny to: {{ domains }}", - "register-page.registration.info.maildomain":"Konta mogÄ… być zaÅ‚ożone dla adresów e-mail z domenÄ…", - "repository.title":"Repozytorium DSpace", - "search.filters.applied.f.supervisedBy":"Recenzent", - "search.filters.filter.show-tree":"PrzeglÄ…daj {{ name }} strukturÄ™ recenzentów", - "search.filters.filter.supervisedBy.head":"Recenzent", - "search.filters.filter.supervisedBy.placeholder":"Recenzent", - "search.filters.filter.supervisedBy.label":"Wyszukaj recenzenta", - "statistics.table.no-name":"(nazwa obiektu nie może zostać zaÅ‚adowana)", - "submission.import-external.source.datacite":"DataCite", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isPublicationOfAuthor":"Publikacje autora", - "submission.sections.describe.relationship-lookup.title.isPublicationOfAuthor":"Publikacje", - "submission.sections.identifiers.info":"Te identyfikatory zostanÄ… utworzone dla pozycji:", - "submission.sections.identifiers.no_handle":"Do tej pozycji nie zostaÅ‚y przypisane żadne Handle", - "submission.sections.identifiers.no_doi":"Do tej pozycji nie zostaÅ‚y przypisane żadne DOI", - "submission.sections.identifiers.handle_label":"Handle: ", - "submission.sections.identifiers.doi_label":"DOI: ", - "submission.sections.identifiers.otherIdentifiers_label":"Inne identyfikatory: ", - "submission.sections.submit.progressbar.identifiers":"Identyfikatory", - "submission.workflow.generic.submit_select_reviewer":"Wybierz recenzenta", - "submission.workflow.generic.submit_select_reviewer-help":"", - "submission.workflow.generic.submit_score":"Wynik", - "submission.workflow.generic.submit_score-help":"", - "submission.workflow.tasks.claimed.decline":"Odrzuć", - "submission.workflow.tasks.claimed.decline_help":"", - "submitter.empty":"n.d.", - "subscriptions.title":"Subskrypcje", - "subscriptions.item":"Subskrypcje pozycji", - "subscriptions.collection":"Subskrypcje kolekcji", - "subscriptions.community":"Subskrypcje zbiorów", - "subscriptions.subscription_type":"Typ subksrypcji", - "subscriptions.frequency":"CzÄ™stotliwość subskrypcji", - "subscriptions.frequency.D":"Codziennie", - "subscriptions.frequency.M":"Co miesiÄ…c", - "subscriptions.frequency.W":"Co tydzieÅ„", - "subscriptions.tooltip":"Subskrybuj", - "subscriptions.modal.title":"Subksrypcje", - "subscriptions.modal.type-frequency":"Rodzaj i czÄ™stotliwość subksrypcji", - "subscriptions.modal.close":"Zamknij", - "subscriptions.modal.delete-info":"Aby usunąć tÄ™ subksrypcjÄ™ przejdź do strony 'Subskrypcje', która znajduje siÄ™ w profilu użytkownika", - "subscriptions.modal.new-subscription-form.type.content":"Zawartość", - "subscriptions.modal.new-subscription-form.frequency.D":"Codziennie", - "subscriptions.modal.new-subscription-form.frequency.W":"Co tydzieÅ„", - "subscriptions.modal.new-subscription-form.frequency.M":"Co miesiÄ…c", - "subscriptions.modal.new-subscription-form.submit":"Zapisz", - "subscriptions.modal.new-subscription-form.processing":"Åadowanie...", - "subscriptions.modal.create.success":"Zasubskrybowano {{ type }}", - "subscriptions.modal.delete.success":"Subskrypcja zostaÅ‚a anulowana", - "subscriptions.modal.update.success":"Twoja subskrypcja {{ type }} zostaÅ‚a zaktualizowana", - "subscriptions.modal.create.error":"WystÄ…piÅ‚ bÅ‚ad podczas tworzenia subskrypcji", - "subscriptions.modal.delete.error":"WystÄ…piÅ‚ bÅ‚ad podczas usuwania subskrypcji", - "subscriptions.modal.update.error":"WystÄ…piÅ‚ bÅ‚ad podczas aktualizacji subskrypcji", - "subscriptions.table.dso":"SÅ‚owo kluczowe", - "subscriptions.table.subscription_type":"Typ subskrypcji", - "subscriptions.table.subscription_frequency":"CzÄ™stotliwość subskrypcji", - "subscriptions.table.action":"Akcja", - "subscriptions.table.edit":"Edytuj", - "subscriptions.table.delete":"UsuÅ„", - "subscriptions.table.not-available":"NiedostÄ™pne", - "subscriptions.table.not-available-message":"Ta pozycja zostaÅ‚a usuniÄ™ta lun nie masz do niej dostÄ™pu, aby jÄ… wyswietlić", - "subscriptions.table.empty.message":"Ta pozycja nie ma w tym momencie żadnych subksrypcji. Aby zasubkrybować i otrzymywać aktualizacje o tym zbiorze lub kolekcji, wybierz przycisk subskrypcji na stronie pozycji.", - "vocabulary-treeview.info":"Wybierz sÅ‚owo kluczowe, aby dodać je do filtra", - "supervisedWorkspace.search.results.head":"Pozycje recenzowane", - "supervision.search.results.head":"Status zadaÅ„: Szkic i redakcja", - "workspace-item.delete.breadcrumbs":"UsuniÄ™to wersjÄ™ roboczÄ…", - "workspace-item.delete.header":"UsuÅ„ wersjÄ™ roboczÄ…", - "workspace-item.delete.button.confirm":"UsuÅ„", - "workspace-item.delete.button.cancel":"Anuluj", - "workspace-item.delete.notification.success.title":"UsuniÄ™to", - "workspace-item.delete.title":"Wersja robocza zostaÅ‚a usunieta", - "workspace-item.delete.notification.error.title":"CoÅ› poszÅ‚o nie tak", - "workspace-item.delete.notification.error.content":"Wersja robocza nie może zostać usunieta", - "workflow-item.advanced.title":"Zaawansowane workflow", - "workflow-item.selectrevieweraction.notification.success.title":"Wybrany recenzent", - "workflow-item.selectrevieweraction.notification.success.content":"Recenzent zostaÅ‚ przypisany", - "workflow-item.selectrevieweraction.notification.error.title":"CoÅ› poszÅ‚o nie tak", - "workflow-item.selectrevieweraction.notification.error.content":"Nie udaÅ‚o siÄ™ wybrać recenzenta dla pozycji", - "workflow-item.selectrevieweraction.title":"Wybierz recenzenta", - "workflow-item.selectrevieweraction.header":"Wybierz recenzenta", - "workflow-item.selectrevieweraction.button.cancel":"Anuluj", - "workflow-item.selectrevieweraction.button.confirm":"Zatwierdź", - "workflow-item.scorereviewaction.notification.success.title":"Ocena recenzji", - "workflow-item.scorereviewaction.notification.success.content":"Ocena tej pozycji zostaÅ‚a zapisana", - "workflow-item.scorereviewaction.notification.error.title":"CoÅ› poszÅ‚o nie tak", - "workflow-item.scorereviewaction.notification.error.content":"Nie można ocenić tej pozycji", - "workflow-item.scorereviewaction.title":"OceÅ„ pozycjÄ™", - "workflow-item.scorereviewaction.header":"OceÅ„ pozycjÄ™", - "workflow-item.scorereviewaction.button.cancel":"Anuluj", - "workflow-item.scorereviewaction.button.confirm":"Potwierdź", - "listable-notification-object.default-message":"Ta pozycja nie może być odzyskana", - "system-wide-alert-banner.retrieval.error":"CoÅ› poszÅ‚o nie tak podczas odzyskiwania alertu systemowego", - "system-wide-alert-banner.countdown.prefix":"W", - "system-wide-alert-banner.countdown.days":"{{days}} dni,", - "system-wide-alert-banner.countdown.hours":"{{hours}} godziny", - "system-wide-alert-banner.countdown.minutes":"{{minutes}} minut:", - "menu.section.system-wide-alert":"Alert systemowy", - "system-wide-alert.form.header":"Alert systemowy", - "system-wide-alert-form.retrieval.error":"CoÅ› poszÅ‚o nie tak podczas odzyskiwania alertu systemowego", - "system-wide-alert.form.cancel":"Anuluj", - "system-wide-alert.form.save":"Zapisz", - "system-wide-alert.form.label.active":"AKTYWNE", - "system-wide-alert.form.label.inactive":"NIEAKTYWNE", - "system-wide-alert.form.error.message":"Alert systemowy musi zawierać wiadomość", - "system-wide-alert.form.label.message":"Alert systemowy", - "system-wide-alert.form.label.countdownTo.enable":"Wprowadź licznik czasowy", - "system-wide-alert.form.label.countdownTo.hint":"Wskazówka: Wpisz wartość licznika czasu. Kiedy licznik jest wÅ‚Ä…czony, alert systemowy zostanie wyÅ›wietlony o wybranym czasie. Kiedy odliczanie zostanie zakoÅ„czone, alert systemowy zostanie wyÅ‚Ä…czony. Serwer NIE zostanie zatrzymany automatycznie.", - "system-wide-alert.form.label.preview":"PodglÄ…d alertu systemowego", - "system-wide-alert.form.update.success":"Alert systemowy zostaÅ‚ zaktualizowany", - "system-wide-alert.form.update.error":"CoÅ› poszÅ‚o nie tak podczas aktualizacji alertu systemowego", - "system-wide-alert.form.create.success":"Alert systemowy zostaÅ‚ utworzony", - "system-wide-alert.form.create.error":"CoÅ› poszÅ‚o nie tak podczas tworzenia alertu systemowego", - "admin.system-wide-alert.breadcrumbs":"Alerty systemowe", - "admin.system-wide-alert.title":"Alerty systemowe", - "item-access-control-title":"Ta strona pozwala na zmianÄ™ dostÄ™pów metadanych pozycji i plików do nich doÅ‚Ä…czonych.", - "collection-access-control-title":"Ta strona pozwala na zmianÄ™ warunków dostÄ™pu dla wszystkich pozycji w tej kolekcji. Zmiany mogÄ… być wykonywane zarówno na metadanych pozycji jak i plikach do nich doÅ‚Ä…czonych.", - "community-access-control-title":"Ta strona pozwala na zmianÄ™ warunków dostÄ™pu dla wszystkich pozycji w każdej kolekcji w tym zbiorze. Zmiany mogÄ… być wykonywane zarówno na metadanych pozycji jak i plikach do nich doÅ‚Ä…czonych.", - "access-control-item-header-toggle":"Metadane pozycji", - "access-control-bitstream-header-toggle":"Pliki", - "access-control-mode":"Tryb", - "access-control-access-conditions":"Warunki dostÄ™pu", - "access-control-no-access-conditions-warning-message":"W tym momencie żadne warunki dostÄ™pu nie zostaÅ‚y okreÅ›lone. JeÅ›li zadanie zostanie rozpoczÄ™te, obecne warunki dostÄ™pu zostanÄ… zastÄ…pione domyÅ›lnymi warunkami dostÄ™pu z nadrzÄ™dnej kolekcji.", - "access-control-replace-all":"ZastÄ…p warunki dostÄ™pu", - "access-control-add-to-existing":"Dodaj do już istniejÄ…cych", - "access-control-limit-to-specific":"Ogranicz zmiany do wybranych plików", - "access-control-process-all-bitstreams":"Zaktualizuj wszystkie pliki dla tej pozycji", - "access-control-bitstreams-selected":"wybrane pliki", - "access-control-cancel":"Anuluj", - "access-control-execute":"Wykonaj", - "access-control-add-more":"Dodaj wiÄ™cej", - "access-control-select-bitstreams-modal.title":"Wybierz pliki", - "access-control-select-bitstreams-modal.no-items":"Brak pozycji do wyÅ›wietlenia.", - "access-control-select-bitstreams-modal.close":"Zamknij", - "access-control-option-label":"Typ warunków dostÄ™pu", - "access-control-option-note":"Wybierz warunki dostÄ™pu, które chcesz przypisać do zaznaczonych pozycji.", - "access-control-option-start-date":"DostÄ™p od", - "access-control-option-start-date-note":"Wybierz datÄ™, kiedy wybrane warunki dostÄ™pu majÄ… obowiÄ…zywać", - "access-control-option-end-date":"DostÄ™p do", - "access-control-option-end-date-note":"Wybierz datÄ™, kiedy wybrane warunki dostÄ™pu majÄ… obowiÄ…zywać" + "401.help": "Nie masz uprawnieÅ„ do dostÄ™pu do tej strony. Możesz użyć przycisku poniżej, aby powrócić do strony głównej.", + "401.link.home-page": "Zabierz mnie na stronÄ™ głównÄ…", + "401.unauthorized": "nieautoryzowany", + "403.help": "Nie masz uprawnieÅ„ do dostÄ™pu do tej strony. Możesz użyć przycisku poniżej, aby wrócić do strony głównej.", + "403.link.home-page": "Zabierz mnie na stronÄ™ głównÄ…", + "403.forbidden": "zabroniony", + "404.help": "Nie możemy znaleźć strony, której szukasz. Strona mogÅ‚a zostać przeniesiona lub usuniÄ™ta. Możesz użyć przycisku poniżej, aby powrócić do strony głównej. ", + "404.link.home-page": "Zabierz mnie na stronÄ™ głównÄ…", + "404.page-not-found": "strona nie zostaÅ‚a znaleziona", + "admin.curation-tasks.breadcrumbs": "Systemowe zadania administracyjne", + "admin.curation-tasks.title": "Systemowe zadania administracyjne", + "admin.curation-tasks.header": "Systemowe zadania administracyjne", + "admin.registries.bitstream-formats.breadcrumbs": "Rejestr formatów", + "admin.registries.bitstream-formats.create.breadcrumbs": "Format strumienia bitów", + "admin.registries.bitstream-formats.create.failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia nowego formatu strumienia bitów.", + "admin.registries.bitstream-formats.create.failure.head": "Nie udaÅ‚o siÄ™", + "admin.registries.bitstream-formats.create.head": "Utwórz nowy format", + "admin.registries.bitstream-formats.create.new": "Dodaj nowy format", + "admin.registries.bitstream-formats.create.success.content": "Nowy format strumienia bitów zostaÅ‚ pomyÅ›lnie utworzony.", + "admin.registries.bitstream-formats.create.success.head": "UdaÅ‚o siÄ™", + "admin.registries.bitstream-formats.delete.failure.amount": "Nie udaÅ‚o siÄ™ usunąć {{ amount }} formatu(ów)", + "admin.registries.bitstream-formats.delete.failure.head": "Nie udaÅ‚o siÄ™", + "admin.registries.bitstream-formats.delete.success.amount": "UdaÅ‚o siÄ™ usunąć {{ amount }} formatu(ów)", + "admin.registries.bitstream-formats.delete.success.head": "UdaÅ‚o siÄ™", + "admin.registries.bitstream-formats.description": "Na liÅ›cie formatów wyÅ›wietlono informacje o obsÅ‚ugiwanych formatach i czy sÄ… one wspierane przez system.", + "admin.registries.bitstream-formats.edit.breadcrumbs": "Format strumienia bitów", + "admin.registries.bitstream-formats.edit.description.hint": "", + "admin.registries.bitstream-formats.edit.description.label": "Opis", + "admin.registries.bitstream-formats.edit.extensions.hint": "Rozszerzenia to rozszerzenia plików, które sÄ… używane do automatycznej identyfikacji formatu przesyÅ‚anych plików. Możesz wprowadzić kilka rozszerzeÅ„ dla każdego formatu.", + "admin.registries.bitstream-formats.edit.extensions.label": "Rozszerzenia plików", + "admin.registries.bitstream-formats.edit.extensions.placeholder": "Wprowadź rozszerzenie pliku bez kropki", + "admin.registries.bitstream-formats.edit.failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas edycji formatu pliku.", + "admin.registries.bitstream-formats.edit.failure.head": "Nie udaÅ‚o siÄ™", + "admin.registries.bitstream-formats.edit.head": "Format plików: {{ format }}", + "admin.registries.bitstream-formats.edit.internal.hint": "Formaty oznaczone jako wewnÄ™trzne sÄ… ukryte przed użytkownikiem i wykorzystywane do celów administracyjnych.", + "admin.registries.bitstream-formats.edit.internal.label": "WewnÄ™trzny", + "admin.registries.bitstream-formats.edit.mimetype.hint": "Typ MIME powiÄ…zany z tym formatem, nie musi być unikalny.", + "admin.registries.bitstream-formats.edit.mimetype.label": "Typ MIME", + "admin.registries.bitstream-formats.edit.shortDescription.hint": "Unikalna nazwa dla tego formatu, (np. Microsoft Word XP lub Microsoft Word 2000)", + "admin.registries.bitstream-formats.edit.shortDescription.label": "Nazwa", + "admin.registries.bitstream-formats.edit.success.content": "Format strumienia bitów zostaÅ‚ pomyÅ›lnie edytowany.", + "admin.registries.bitstream-formats.edit.success.head": "UdaÅ‚o siÄ™", + "admin.registries.bitstream-formats.edit.supportLevel.hint": "Poziom wsparcia, jaki Twoja instytucja deklaruje dla tego formatu.", + "admin.registries.bitstream-formats.edit.supportLevel.label": "ObsÅ‚ugiwany format", + "admin.registries.bitstream-formats.head": "Rejestr formatów", + "admin.registries.bitstream-formats.no-items": "Brak formatów plików do wyÅ›wietlenia.", + "admin.registries.bitstream-formats.table.delete": "UsuÅ„ zaznaczone", + "admin.registries.bitstream-formats.table.deselect-all": "Odznacz wszystkie", + "admin.registries.bitstream-formats.table.internal": "wewnÄ™trzne", + "admin.registries.bitstream-formats.table.mimetype": "Typ MIME", + "admin.registries.bitstream-formats.table.name": "Nazwa", + "admin.registries.bitstream-formats.table.return": "Powrót", + "admin.registries.bitstream-formats.table.supportLevel.KNOWN": "Znane", + "admin.registries.bitstream-formats.table.supportLevel.SUPPORTED": "Wspierane", + "admin.registries.bitstream-formats.table.supportLevel.UNKNOWN": "Nieznane", + "admin.registries.bitstream-formats.table.supportLevel.head": "ObsÅ‚ugiwany format", + "admin.registries.bitstream-formats.title": "Rejestr formatów plików", + "admin.registries.metadata.breadcrumbs": "Rejestr metadanych", + "admin.registries.metadata.description": "W rejestrze metadanych przechowywana jest lista wszystkich pól metadanych dostÄ™pnych w repozytorium. Przechowywane pola sÄ… przechowywane w kilku rejestrach. DSpace wymaga kwalifikowanego rejestru metadanych Dublin Core.", + "admin.registries.metadata.form.create": "Utwórz schemat metadanych", + "admin.registries.metadata.form.edit": "Edytuj schemat metadanych", + "admin.registries.metadata.form.name": "Nazwa", + "admin.registries.metadata.form.namespace": "Nazwa schematu", + "admin.registries.metadata.head": "Rejestr metadanych", + "admin.registries.metadata.schemas.no-items": "Brak rejestrów metadanych do pokazania.", + "admin.registries.metadata.schemas.table.delete": "UsuÅ„ zaznaczone", + "admin.registries.metadata.schemas.table.id": "ID", + "admin.registries.metadata.schemas.table.name": "Nazwa", + "admin.registries.metadata.schemas.table.namespace": "Nazwa schematu", + "admin.registries.metadata.title": "Rejestr metadanych", + "admin.registries.schema.breadcrumbs": "Schemat metadanych", + "admin.registries.schema.description": "Ten schemat metadanych jest stworzony na podstawie \"{{namespace}}\".", + "admin.registries.schema.fields.head": "Pola schematu metadanych", + "admin.registries.schema.fields.no-items": "Brak pól metadanych do pokazania.", + "admin.registries.schema.fields.table.delete": "UsuÅ„ zaznaczone", + "admin.registries.schema.fields.table.field": "Pole", + "admin.registries.schema.fields.table.scopenote": "Uwagi", + "admin.registries.schema.form.create": "Stwórz pole metadanych", + "admin.registries.schema.form.edit": "Edytuj pole metadanych", + "admin.registries.schema.form.element": "Element", + "admin.registries.schema.form.qualifier": "Kwalifikator", + "admin.registries.schema.form.scopenote": "Uwagi", + "admin.registries.schema.head": "Schemat metadanych", + "admin.registries.schema.notification.created": "UdaÅ‚o siÄ™ utworzyć schemat metdanych \"{{prefix}}\"", + "admin.registries.schema.notification.deleted.failure": "Nie udaÅ‚o siÄ™ usunąć {{amount}} schematów metadanych", + "admin.registries.schema.notification.deleted.success": "UdaÅ‚o siÄ™ usunąć {{amount}} schematów metadanych", + "admin.registries.schema.notification.edited": "UdaÅ‚o siÄ™ edytować schemat metadanych \"{{prefix}}\"", + "admin.registries.schema.notification.failure": "BÅ‚Ä…d", + "admin.registries.schema.notification.field.created": "UdaÅ‚o siÄ™ utworzyć pole metadanych \"{{field}}\"", + "admin.registries.schema.notification.field.deleted.failure": "Nie udaÅ‚o siÄ™ usunąć {{amount}} pól metadanych", + "admin.registries.schema.notification.field.deleted.success": "UdaÅ‚o siÄ™ usunąć {{amount}} pól metadanych", + "admin.registries.schema.notification.field.edited": "SUdaÅ‚o siÄ™ edytować pole metadanych \"{{field}}\"", + "admin.registries.schema.notification.success": "UdaÅ‚o siÄ™", + "admin.registries.schema.return": "Powrót", + "admin.registries.schema.title": "Rejestr schematów metadanych", + "admin.access-control.epeople.actions.delete": "UsuÅ„ użytkownika", + "admin.access-control.epeople.actions.impersonate": "Personifikuj użytkownika", + "admin.access-control.epeople.actions.reset": "Zresetuj hasÅ‚o", + "admin.access-control.epeople.actions.stop-impersonating": "PrzestaÅ„ personifikować użytkownika", + "admin.access-control.epeople.breadcrumbs": "Użytkownicy", + "admin.access-control.epeople.title": "Użytkownicy", + "admin.access-control.epeople.head": "Użytkownicy", + "admin.access-control.epeople.search.head": "Wyszukaj", + "admin.access-control.epeople.button.see-all": "PrzeglÄ…daj wszystko", + "admin.access-control.epeople.search.scope.metadata": "Metadane", + "admin.access-control.epeople.search.scope.email": "E-mail", + "admin.access-control.epeople.search.button": "Wyszukaj", + "admin.access-control.epeople.search.placeholder": "Wyszukaj użytkownika...", + "admin.access-control.epeople.button.add": "Dodaj użytkownika", + "admin.access-control.epeople.table.id": "ID", + "admin.access-control.epeople.table.name": "Nazwa", + "admin.access-control.epeople.table.email": "E-mail", + "admin.access-control.epeople.table.edit": "Edytuj", + "admin.access-control.epeople.table.edit.buttons.edit": "Edytuj \"{{name}}\"", + "admin.access-control.epeople.table.edit.buttons.edit-disabled": "Brak uprawnieÅ„ do edycji wybranej grupy", + "admin.access-control.epeople.table.edit.buttons.remove": "UsuÅ„ \"{{name}}\"", + "admin.access-control.epeople.no-items": "Brak użytkowników do wyÅ›wietlenia.", + "admin.access-control.epeople.form.create": "Utwórz użytkownika", + "admin.access-control.epeople.form.edit": "Edytuj użytkownika", + "admin.access-control.epeople.form.firstName": "ImiÄ™", + "admin.access-control.epeople.form.lastName": "Nazwisko", + "admin.access-control.epeople.form.email": "E-mail", + "admin.access-control.epeople.form.emailHint": "Adres e-mail musi być poprawny", + "admin.access-control.epeople.form.canLogIn": "Możliwość zalogowania", + "admin.access-control.epeople.form.requireCertificate": "Wymagany certyfikat", + "admin.access-control.epeople.form.return": "Powrót", + "admin.access-control.epeople.form.notification.created.success": "UdaÅ‚o siÄ™ utworzyć użytkownika \"{{name}}\"", + "admin.access-control.epeople.form.notification.created.failure": "Nie udaÅ‚o siÄ™ utworzyć użytkownika \"{{name}}\"", + "admin.access-control.epeople.form.notification.created.failure.emailInUse": "Nie udaÅ‚o siÄ™ utworzyć użytkownika \"{{name}}\", email \"{{email}}\" już w użyciu.", + "admin.access-control.epeople.form.notification.edited.failure.emailInUse": "Nie udaÅ‚o siÄ™ utworzyć użytkownika \"{{name}}\", email \"{{email}}\" już w użyciu.", + "admin.access-control.epeople.form.notification.edited.success": "UdaÅ‚o siÄ™ edytować użytkownika \"{{name}}\"", + "admin.access-control.epeople.form.notification.edited.failure": "Nie udaÅ‚o siÄ™ edytować użytkownika \"{{name}}\"", + "admin.access-control.epeople.form.notification.deleted.success": "UdaÅ‚o siÄ™ usunąć użytkownika \"{{name}}\"", + "admin.access-control.epeople.form.notification.deleted.failure": "Nie udaÅ‚o siÄ™ usunąć użytkownika \"{{name}}\"", + "admin.access-control.epeople.form.groupsEPersonIsMemberOf": "CzÅ‚onek grup:", + "admin.access-control.epeople.form.table.id": "ID", + "admin.access-control.epeople.form.table.name": "Nazwa", + "admin.access-control.epeople.form.table.collectionOrCommunity": "Zbiór/kolekcja", + "admin.access-control.epeople.form.memberOfNoGroups": "Ten użytkownik nie jest czÅ‚onkiem żadnej grupy", + "admin.access-control.epeople.form.goToGroups": "Dodaj do grup", + "admin.access-control.epeople.notification.deleted.failure": "Nie udaÅ‚o siÄ™ usunąć użytkownika: \"{{name}}\"", + "admin.access-control.epeople.notification.deleted.success": "UdaÅ‚o siÄ™ usunąć użytkownika: \"{{name}}\"", + "admin.access-control.groups.title": "Grupy", + "admin.access-control.groups.breadcrumbs": "Grupy", + "admin.access-control.groups.singleGroup.breadcrumbs": "Edytuj grupÄ™", + "admin.access-control.groups.title.singleGroup": "Edytuj grupÄ™", + "admin.access-control.groups.title.addGroup": "Nowa grupa", + "admin.access-control.groups.addGroup.breadcrumbs": "Nowa grupa", + "admin.access-control.groups.head": "Grupy/role", + "admin.access-control.groups.button.add": "Dodaj grupÄ™", + "admin.access-control.groups.search.head": "Szukaj grup", + "admin.access-control.groups.button.see-all": "Przeszukaj wszystko", + "admin.access-control.groups.search.button": "Wyszukaj", + "admin.access-control.groups.search.placeholder": "Wyszukaj grupy...", + "admin.access-control.groups.table.id": "ID", + "admin.access-control.groups.table.name": "Nazwa", + "admin.access-control.groups.table.collectionOrCommunity": "Zbiór/kolekcja", + "admin.access-control.groups.table.members": "CzÅ‚onkowie", + "admin.access-control.groups.table.edit": "Edytuj", + "admin.access-control.groups.table.edit.buttons.edit": "Edytuj \"{{name}}\"", + "admin.access-control.groups.no-items": "Nie znaleziono grup z podanÄ… frazÄ… lub podanym UUID", + "admin.access-control.groups.notification.deleted.success": "UdaÅ‚o siÄ™ usunąć grupÄ™ \"{{name}}\"", + "admin.access-control.groups.notification.deleted.failure.title": "Nie udaÅ‚o siÄ™ usunąć grupy \"{{name}}\"", + "admin.access-control.groups.notification.deleted.failure.content": "Powód: \"{{cause}}\"", + "admin.access-control.groups.form.alert.permanent": "Ta grupa jest staÅ‚a, wiÄ™c nie może być edytowana ani usuniÄ™ta. Nadal możesz dodawać i usuwać czÅ‚onków grupy za pomocÄ… tej strony.", + "admin.access-control.groups.form.alert.workflowGroup": "Ta grupa nie może być edytowana lub usuniÄ™ta, ponieważ odnosi siÄ™ do roli lub bierze udziaÅ‚ w procesie \"{{name}}\" {{comcol}}. Możesz jÄ… usunąć ze strony <a href='{{comcolEditRolesRoute}}'>\"assign roles\"</a> edycji {{comcol}}. Wciąż może dodawać i usuwać czÅ‚onków tej grupy, korzystajÄ…c z tej strony.", + "admin.access-control.groups.form.head.create": "Utwórz grupÄ™", + "admin.access-control.groups.form.head.edit": "Edytuj grupÄ™", + "admin.access-control.groups.form.groupName": "Nazwa grupy", + "admin.access-control.groups.form.groupCommunity": "Zbiór lub kolekcja", + "admin.access-control.groups.form.groupDescription": "Opis", + "admin.access-control.groups.form.notification.created.success": "UdaÅ‚o siÄ™ utworzyć grupÄ™ \"{{name}}\"", + "admin.access-control.groups.form.notification.created.failure": "Nie udaÅ‚o siÄ™ utworzyć grupy \"{{name}}\"", + "admin.access-control.groups.form.notification.created.failure.groupNameInUse": "Nie udaÅ‚o siÄ™ utworzyć grupy o nazwie: \"{{name}}\", upewnij siÄ™, że nazwa nie jest już używana.", + "admin.access-control.groups.form.notification.edited.failure": "Nie udaÅ‚o siÄ™ edytować grupy \"{{name}}\"", + "admin.access-control.groups.form.notification.edited.failure.groupNameInUse": "Nazwa \"{{name}}\" już w użyciu!", + "admin.access-control.groups.form.notification.edited.success": "UdaÅ‚o siÄ™ edytować grupÄ™ \"{{name}}\"", + "admin.access-control.groups.form.actions.delete": "UsuÅ„ grupÄ™", + "admin.access-control.groups.form.delete-group.modal.header": "UsuÅ„ grupÄ™ \"{{ dsoName }}\"", + "admin.access-control.groups.form.delete-group.modal.info": "Czy na pewno chcesz usunąć grupÄ™ \"{{ dsoName }}\"", + "admin.access-control.groups.form.delete-group.modal.cancel": "Anuluj", + "admin.access-control.groups.form.delete-group.modal.confirm": "UsuÅ„", + "admin.access-control.groups.form.notification.deleted.success": "UdaÅ‚o siÄ™ usunąć grupÄ™ \"{{ name }}\"", + "admin.access-control.groups.form.notification.deleted.failure.title": "Nie udaÅ‚o siÄ™ usunąć grupy \"{{ name }}\"", + "admin.access-control.groups.form.notification.deleted.failure.content": "Powód: \"{{ cause }}\"", + "admin.access-control.groups.form.members-list.head": "Użytkownik", + "admin.access-control.groups.form.members-list.search.head": "Dodaj użytkownika", + "admin.access-control.groups.form.members-list.button.see-all": "Pokaż wszystkich", + "admin.access-control.groups.form.members-list.headMembers": "Aktualni czÅ‚onkowie", + "admin.access-control.groups.form.members-list.search.scope.metadata": "Metadane", + "admin.access-control.groups.form.members-list.search.scope.email": "E-mail", + "admin.access-control.groups.form.members-list.search.button": "Wyszukaj", + "admin.access-control.groups.form.members-list.table.id": "ID", + "admin.access-control.groups.form.members-list.table.name": "Nazwa", + "admin.access-control.groups.form.members-list.table.identity": "Tożsamość", + "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.edit": "UsuÅ„ / Dodaj", + "admin.access-control.groups.form.members-list.table.edit.buttons.remove": "UsuÅ„ użytkownika o nazwie \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.success.addMember": "UdaÅ‚o siÄ™ dodać użytkownika o nazwie: \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.failure.addMember": "Nie udaÅ‚o siÄ™ dodać użytkownika o nazwie: \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.success.deleteMember": "UdaÅ‚o siÄ™ usunąć użytkownika o nazwie: \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.failure.deleteMember": "Nie udaÅ‚o siÄ™ usunąć użytkownika o nazwie: \"{{name}}\"", + "admin.access-control.groups.form.members-list.table.edit.buttons.add": "Dodaj użytkownika o nazwie \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.failure.noActiveGroup": "Brak aktywnej grupy, najpierw wpisz nazwÄ™ grupy.", + "admin.access-control.groups.form.members-list.no-members-yet": "Brak użytkowników w grupie, wyszukaj ich i dodaj.", + "admin.access-control.groups.form.members-list.no-items": "Nie znaleziono użytkowników podczas wyszukiwania", + "admin.access-control.groups.form.subgroups-list.notification.failure": "CoÅ› poszÅ‚o nie tak: \"{{cause}}\"", + "admin.access-control.groups.form.subgroups-list.head": "Grupy", + "admin.access-control.groups.form.subgroups-list.search.head": "Dodaj podgrupÄ™", + "admin.access-control.groups.form.subgroups-list.button.see-all": "PrzeglÄ…daj wszystkie", + "admin.access-control.groups.form.subgroups-list.headSubgroups": "Aktualne podgrupy", + "admin.access-control.groups.form.subgroups-list.search.button": "Wyszukaj", + "admin.access-control.groups.form.subgroups-list.table.id": "ID", + "admin.access-control.groups.form.subgroups-list.table.name": "Nazwa", + "admin.access-control.groups.form.subgroups-list.table.collectionOrCommunity": "Zbiór/kolekcja", + "admin.access-control.groups.form.subgroups-list.table.edit": "UsuÅ„ / Dodaj", + "admin.access-control.groups.form.subgroups-list.table.edit.buttons.remove": "UsuÅ„ podgrupÄ™ o nazwie \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.table.edit.buttons.add": "Dodaj podgrupÄ™ o nazwie \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.table.edit.currentGroup": "Aktualna grupa", + "admin.access-control.groups.form.subgroups-list.notification.success.addSubgroup": "UdaÅ‚o siÄ™ dodać podgrupÄ™: \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.notification.failure.addSubgroup": "Nie udaÅ‚o siÄ™ dodać podgrupy: \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.notification.success.deleteSubgroup": "UdaÅ‚o siÄ™ usunąć podgrupÄ™: \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.notification.failure.deleteSubgroup": "Nie udaÅ‚o siÄ™ usunąć podgrupy: \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.notification.failure.noActiveGroup": "Brak aktywnej grupy, najpierw wpisz nazwÄ™ grupy.", + "admin.access-control.groups.form.subgroups-list.notification.failure.subgroupToAddIsActiveGroup": "Ta grupa jest już stworzona i nie może zostać dodana pononwie.", + "admin.access-control.groups.form.subgroups-list.no-items": "Nie znaleziono grup z tÄ… nazwÄ… lub UUID", + "admin.access-control.groups.form.subgroups-list.no-subgroups-yet": "Brak podgrup w grupie.", + "admin.access-control.groups.form.return": "Powrót", + "admin.search.breadcrumbs": "Wyszukiwanie administracyjne", + "admin.search.collection.edit": "Edytuj", + "admin.search.community.edit": "Edytuj", + "admin.search.item.delete": "UsuÅ„", + "admin.search.item.edit": "Edytuj", + "admin.search.item.make-private": "Ukryj", + "admin.search.item.make-public": "Upublicznij", + "admin.search.item.move": "PrzenieÅ›", + "admin.search.item.reinstate": "ZmieÅ„ instancjÄ™", + "admin.search.item.withdraw": "Wycofane", + "admin.search.title": "Wyszukiwanie administracyjne", + "administrativeView.search.results.head": "Wyszukiwanie administracyjne", + "admin.workflow.breadcrumbs": "ZarzÄ…dzaj procesem", + "admin.workflow.title": "ZarzÄ…dzaj procesem", + "admin.workflow.item.workflow": "Proces", + "admin.workflow.item.delete": "UsuÅ„", + "admin.workflow.item.send-back": "OdeÅ›lij z powrotem", + "admin.metadata-import.breadcrumbs": "Importuj metadane", + "admin.metadata-import.title": "Importuj metadane", + "admin.metadata-import.page.header": "Importuj metadane", + "admin.metadata-import.page.help": "Tutaj możesz zaimportować pliki CSV, w których znajdujÄ… siÄ™ metadane do operacji wsadowej. Zaimportuj je poprzez upuszczenie ich lub znajdź je na swoim komputerze", + "admin.metadata-import.page.dropMsg": "Upuść plik w formacie CSV", + "admin.metadata-import.page.dropMsgReplace": "Upuść, aby zastÄ…pić metadane w formacie CSV do importu", + "admin.metadata-import.page.button.return": "Powrót", + "admin.metadata-import.page.button.proceed": "Zastosuj", + "admin.metadata-import.page.error.addFile": "Najpierw wybierz plik!", + "auth.errors.invalid-user": "NiewÅ‚aÅ›ciwy adres e-mail lub hasÅ‚o.", + "auth.messages.expired": "Twoja sesja wygasÅ‚a. Zaloguj siÄ™ ponownie.", + "auth.messages.token-refresh-failed": "OdÅ›wieżenie sesji nie powiodÅ‚o siÄ™. Zaloguj siÄ™ ponownie.", + "bitstream.download.page": "Pobieranie {{bitstream}}...", + "bitstream.download.page.back": "Powrót", + "bitstream.edit.authorizations.link": "Edytuj polityki plików", + "bitstream.edit.authorizations.title": "Edytuj polityki plików", + "bitstream.edit.return": "Powrót", + "bitstream.edit.bitstream": "Pliki: ", + "bitstream.edit.form.description.hint": "Opcjonalnie wprowadź krótki opis pliku, np.: \"<i>Główna część artykuÅ‚u</i>\" lub \"<i>Dane z eksperymentu</i>\".", + "bitstream.edit.form.description.label": "Opis", + "bitstream.edit.form.embargo.hint": "Pierwszy dzieÅ„, od kiedy dostÄ™p zostanie udzielony. <b>Tej daty nie może być edytować w tym formularzu.</b> Aby wybrać okres embarga czasowego, wybierz <i>Status pozycji</i> tab, kliknij <i>Autoryzacje...</i>, stwórz lub edytuj plik <i>PRZEYCZTAJ</i> zasady i wybierz okreÅ›lonÄ… <i>DatÄ™ poczÄ…tkowÄ…</i>.", + "bitstream.edit.form.embargo.label": "Embargo do wybranej daty", + "bitstream.edit.form.fileName.hint": "Zmiana nazwy pliku dla strumienia bitów. Zauważ, że zmieni to wyÅ›wietlany adres URL strumienia bitów, ale stare linki nadal bÄ™dÄ… dziaÅ‚ać, o ile nie zmieni siÄ™ identyfikator sekwencji.", + "bitstream.edit.form.fileName.label": "Nazwa pliku", + "bitstream.edit.form.newFormat.label": "Opisz nowy format", + "bitstream.edit.form.newFormat.hint": "Program, którego użyto do stworzenia pliku i numer wersji (np.: \"<i>ACMESoft SuperApp version 1.5</i>\").", + "bitstream.edit.form.primaryBitstream.label": "Pierwotny plik", + "bitstream.edit.form.selectedFormat.hint": "JeÅ›li formatu nie ma na powyższej liÅ›cie, <b>wybierz \"format not in list\" above</b> i opisz jako \"Describe new format\".", + "bitstream.edit.form.selectedFormat.label": "Wybrany format", + "bitstream.edit.form.selectedFormat.unknown": "Tego formatu nie ma na liÅ›cie", + "bitstream.edit.notifications.error.format.title": "WystÄ…piÅ‚ bÅ‚Ä…d podczas zapisu formatu pliku", + "bitstream.edit.notifications.saved.content": "Zmiany w pliku zostaÅ‚y zapisane.", + "bitstream.edit.notifications.saved.title": "Plik zostaÅ‚ zapisany", + "bitstream.edit.title": "Edytuj plik", + "bitstream-request-a-copy.alert.canDownload1": "Masz już dostÄ™p do tego pliki. JeÅ›li chcesz go pobrać, kliknij ", + "bitstream-request-a-copy.alert.canDownload2": "tutaj", + "bitstream-request-a-copy.header": "WystÄ…p o kopiÄ™ wybranego pliku", + "bitstream-request-a-copy.intro": "Wpisz nastÄ™pujÄ…ce informacje, aby wystÄ…pić o kopiÄ™ tej pozycji: ", + "bitstream-request-a-copy.intro.bitstream.one": "WystÄ…pienie o dostÄ™p do nastÄ™pujÄ…cych plików: ", + "bitstream-request-a-copy.intro.bitstream.all": "WystÄ…pienie o dostÄ™p do wszystkich plików. ", + "bitstream-request-a-copy.name.label": "ImiÄ™ *", + "bitstream-request-a-copy.name.error": "ImiÄ™ jest wymagane", + "bitstream-request-a-copy.email.label": "Adres e-mail *", + "bitstream-request-a-copy.email.hint": "Plik zostanie przesÅ‚any na podany adres e-mail", + "bitstream-request-a-copy.email.error": "ProszÄ™ wprowadzić prawidÅ‚owy adres e-mail", + "bitstream-request-a-copy.allfiles.label": "Pliki", + "bitstream-request-a-copy.files-all-false.label": "Tylko plik, dla którego wystÄ…piono o dostÄ™p", + "bitstream-request-a-copy.files-all-true.label": "Wszystkie pliki (w tej pozycji) z ograniczonym dostÄ™pem", + "bitstream-request-a-copy.message.label": "Wiadomość", + "bitstream-request-a-copy.return": "Powrót", + "bitstream-request-a-copy.submit": "WystÄ…p o kopiÄ™", + "bitstream-request-a-copy.submit.success": "WystÄ…pienie o dostÄ™p do pliku zostaÅ‚o przesÅ‚ane.", + "bitstream-request-a-copy.submit.error": "CoÅ› poszÅ‚o nie tak podczas wysyÅ‚ania wystÄ…pienia o dostÄ™p do pliku", + "browse.comcol.by.author": "wg autorów", + "browse.comcol.by.dateissued": "wg daty wydania", + "browse.comcol.by.subject": "wg tematu", + "browse.comcol.by.title": "wg tytuÅ‚u", + "browse.comcol.head": "PrzeglÄ…daj", + "browse.empty": "Brak rekordów do wyÅ›wietlenia.", + "browse.metadata.author": "Autor", + "browse.metadata.dateissued": "Data wydania", + "browse.metadata.subject": "Temat", + "browse.metadata.title": "TytuÅ‚", + "browse.metadata.author.breadcrumbs": "PrzeglÄ…daj wg autorów", + "browse.metadata.dateissued.breadcrumbs": "PrzeglÄ…daj wg daty wydania", + "browse.metadata.subject.breadcrumbs": "PrzeglÄ…daj wg tematów", + "browse.metadata.title.breadcrumbs": "PrzeglÄ…daj wg tytułów", + "browse.startsWith.choose_start": "(Wybierz start)", + "browse.startsWith.choose_year": "(Wybierz rok)", + "browse.startsWith.choose_year.label": "Wybierz rok wydania", + "browse.startsWith.jump": "Przejdź do miejsca w indeksie:", + "browse.startsWith.months.april": "kwiecieÅ„", + "browse.startsWith.months.august": "sierpieÅ„", + "browse.startsWith.months.december": "grudzieÅ„", + "browse.startsWith.months.february": "luty", + "browse.startsWith.months.january": "styczeÅ„", + "browse.startsWith.months.july": "lipiec", + "browse.startsWith.months.june": "czerwiec", + "browse.startsWith.months.march": "marzec", + "browse.startsWith.months.may": "maj", + "browse.startsWith.months.none": "(wybierz miesiÄ…c)", + "browse.startsWith.months.none.label": "Wybierz miesiÄ…c wydania", + "browse.startsWith.months.november": "listopad", + "browse.startsWith.months.october": "październik", + "browse.startsWith.months.september": "wrzesieÅ„", + "browse.startsWith.submit": "Zastosuj", + "browse.startsWith.type_date": "Lub wybierz datÄ™ (rok-miesiÄ…c) i kliknij 'PrzeglÄ…daj'", + "browse.startsWith.type_date.label": "Lub wybierz datÄ™ (rok-miesiÄ…c) i kliknij przycisk przeglÄ…dania", + "browse.startsWith.type_text": "Wpisz kilka pierwszych liter i kliknij przycisk przeglÄ…dania", + "browse.title": "PrzeglÄ…daj {{ collection }} wg {{ field }} {{ value }}", + "chips.remove": "UsuÅ„ chip", + "collection.create.head": "Utwórz kolekcjÄ™", + "collection.create.notifications.success": "UdaÅ‚o siÄ™ utworzyć kolekcjÄ™", + "collection.create.sub-head": "UdaÅ‚o siÄ™ utworzyć kolekcjÄ™ dla zbioru {{ parent }}", + "collection.curate.header": "Administrator kolekcji: {{collection}}", + "collection.delete.cancel": "Anuluj", + "collection.delete.confirm": "Zatwierdź", + "collection.delete.processing": "Usuwanie", + "collection.delete.head": "UsuÅ„ kolekcjÄ™", + "collection.delete.notification.fail": "Kolekcja nie może być usuniÄ™t", + "collection.delete.notification.success": "UdaÅ‚o siÄ™ usunąć kolekcjÄ™", + "collection.delete.text": "Czy na pewno chcesz usunąć kolekcjÄ™ \"{{ dso }}\"", + "collection.edit.delete": "UsuÅ„ kolekcjÄ™", + "collection.edit.head": "Edytuj kolekcjÄ™", + "collection.edit.breadcrumbs": "Edytuj kolekcjÄ™", + "collection.edit.tabs.mapper.head": "Item Mapper", + "collection.edit.tabs.item-mapper.title": "Edytuj kolekcjÄ™ - Item Mapper", + "collection.edit.item-mapper.cancel": "Anuluj", + "collection.edit.item-mapper.collection": "Kolekcja: \"<b>{{name}}</b>\"", + "collection.edit.item-mapper.confirm": "Mapuj wybrane elementy", + "collection.edit.item-mapper.description": "To jest narzÄ™dzie mapowania elementów, które pozwala administratorom kolekcji mapować elementy z innych kolekcji do tej kolekcji. Możesz wyszukiwać elementy z innych kolekcji i mapować je lub przeglÄ…dać listÄ™ aktualnie zmapowanych elementów.", + "collection.edit.item-mapper.head": "Item Mapper - Mapuj pozycje z innych kolekcji", + "collection.edit.item-mapper.no-search": "Wpisz co chcesz wyszukać", + "collection.edit.item-mapper.notifications.map.error.content": "WystÄ…piÅ‚y bÅ‚Ä™dy podczas mapowania {{amount}} pozycji.", + "collection.edit.item-mapper.notifications.map.error.head": "Mapowanie bÅ‚Ä™dów", + "collection.edit.item-mapper.notifications.map.success.content": "UdaÅ‚o siÄ™ zmapować {{amount}} pozycji.", + "collection.edit.item-mapper.notifications.map.success.head": "Mapowanie zakoÅ„czone", + "collection.edit.item-mapper.notifications.unmap.error.content": "BÅ‚Ä™dy wystÄ…piÅ‚y podczas usuwania mapowania z {{amount}} elementów.", + "collection.edit.item-mapper.notifications.unmap.error.head": "UsuÅ„ bÅ‚Ä™dy mapowania", + "collection.edit.item-mapper.notifications.unmap.success.content": "UdaÅ‚o siÄ™ usunąć bÅ‚Ä™dy mapowania z {{amount}} elementów.", + "collection.edit.item-mapper.notifications.unmap.success.head": "Usuwanie mapowania zakoÅ„czone", + "collection.edit.item-mapper.remove": "UsuÅ„ wybrane mapowanie elementów", + "collection.edit.item-mapper.search-form.placeholder": "Wyszukaj pozycje...", + "collection.edit.item-mapper.tabs.browse": "Wyszukaj mapowane elementy", + "collection.edit.item-mapper.tabs.map": "Mapuj nowe elementy", + "collection.edit.logo.delete.title": "UsuÅ„", + "collection.edit.logo.delete-undo.title": "Cofnij usuniÄ™cie", + "collection.edit.logo.label": "Logo kolekcji", + "collection.edit.logo.notifications.add.error": "PrzesyÅ‚anie logo kolekcji nie powiodÅ‚o siÄ™. ProszÄ™ zweryfikować zawartość przed ponownÄ… ", + "collection.edit.logo.notifications.add.success": "UdaÅ‚o siÄ™ przesÅ‚ać logo kolekcji.", + "collection.edit.logo.notifications.delete.success.title": "Logo usuniÄ™te", + "collection.edit.logo.notifications.delete.success.content": "UdaÅ‚o siÄ™ usunąć logo kolekcji", + "collection.edit.logo.notifications.delete.error.title": "BÅ‚Ä…d podczas usuwania loga", + "collection.edit.logo.upload": "Upuść logo kolekcji, aby je wgrać", + "collection.edit.notifications.success": "UdaÅ‚o siÄ™ edytować kolekcjÄ™", + "collection.edit.return": "Powrót", + "collection.edit.tabs.curate.head": "Kurator", + "collection.edit.tabs.curate.title": "Edytowanie kolekcji - kurator", + "collection.edit.tabs.authorizations.head": "Autoryzacje", + "collection.edit.tabs.authorizations.title": "Edytowanie kolekcji - autoryzacje", + "collection.edit.tabs.metadata.head": "Edytuj metadane", + "collection.edit.tabs.metadata.title": "Edytowanie kolekcji - metadane", + "collection.edit.tabs.roles.head": "Przypisz role", + "collection.edit.tabs.roles.title": "Edytowanie kolekcji - role", + "collection.edit.tabs.source.external": "Ta kolekcja pobiera swojÄ… zawartość z zewnÄ™trznego źródÅ‚a", + "collection.edit.tabs.source.form.errors.oaiSource.required": "Musisz wskazać id docelowej kolekcji.", + "collection.edit.tabs.source.form.harvestType": "Odczytywanie zawartoÅ›ci", + "collection.edit.tabs.source.form.head": "Skonfiguruj zewnÄ™trzne źródÅ‚o", + "collection.edit.tabs.source.form.metadataConfigId": "Format metadanych", + "collection.edit.tabs.source.form.oaiSetId": "OkreÅ›lony zestaw ID OAI", + "collection.edit.tabs.source.form.oaiSource": "Dostawca OAI", + "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_BITSTREAMS": "Odczytaj metadane i pliki (wymaga wsparcia ORE)", + "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_REF": "Odczytaj metadane i bibliografiÄ™ (wymaga wsparcia ORE)", + "collection.edit.tabs.source.form.options.harvestType.METADATA_ONLY": "Odczytaj tylko metadane", + "collection.edit.tabs.source.head": "ŹródÅ‚o treÅ›ci", + "collection.edit.tabs.source.notifications.discarded.content": "Twoje zmiany zostaÅ‚y odrzucone. Aby odzyskać swoje zmiany wybierz 'Powrót'", + "collection.edit.tabs.source.notifications.discarded.title": "Zmiany odrzucone", + "collection.edit.tabs.source.notifications.invalid.content": "Zmiany nie zostaÅ‚y zapisane. Sprawdź czy wszystkie pola sÄ… wypeÅ‚nione poprawne przed zapisem.", + "collection.edit.tabs.source.notifications.invalid.title": "NieprawidÅ‚owe metadane", + "collection.edit.tabs.source.notifications.saved.content": "Zmiany wprowadzone w kolekcji zostaÅ‚y zapisane.", + "collection.edit.tabs.source.notifications.saved.title": "ŹródÅ‚o treÅ›ci zapisane", + "collection.edit.tabs.source.title": "Collection Edit - ŹródÅ‚o treÅ›ci", + "collection.edit.template.add-button": "Dodaj", + "collection.edit.template.breadcrumbs": "Szablon pozycji", + "collection.edit.template.cancel": "Anuluj", + "collection.edit.template.delete-button": "UsuÅ„", + "collection.edit.template.edit-button": "Edytuj", + "collection.edit.template.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas odzyskiwania szablonu pozycji", + "collection.edit.template.head": "Edytuj szablon dla kolekcji \"{{ collection }}\"", + "collection.edit.template.label": "Szablon pozycji", + "collection.edit.template.loading": "Å‚adowanie szablonu pozycji...", + "collection.edit.template.notifications.delete.error": "Nie udaÅ‚o siÄ™ usunąć szablonu pozycji", + "collection.edit.template.notifications.delete.success": "UdaÅ‚o siÄ™ usunąć szablon pozycji", + "collection.edit.template.title": "Edytuj szablon pozycji", + "collection.form.abstract": "Opis skrócony", + "collection.form.description": "Tekst powitalny (HTML)", + "collection.form.errors.title.required": "Wpisz nazwÄ™ kolekcji", + "collection.form.license": "Licencja", + "collection.form.provenance": "Pochodzenie", + "collection.form.rights": "Tekst praw autorskich (HTML)", + "collection.form.tableofcontents": "WiadomoÅ›ci (HTML)", + "collection.form.title": "Nazwa", + "collection.form.entityType": "Typ danych", + "collection.page.browse.recent.head": "Ostatnie zgÅ‚oszenia", + "collection.page.browse.recent.empty": "Brak pozycji do wyÅ›wietlenia", + "collection.page.edit": "Edytuj kolekcjÄ™", + "collection.page.handle": "StaÅ‚y URI dla kolekcji", + "collection.page.license": "Licencja", + "collection.page.news": "WiadomoÅ›ci", + "collection.select.confirm": "Zaakceptuj zaznaczone", + "collection.select.empty": "Brak kolekcji do wyÅ›wietlenia", + "collection.select.table.title": "TytuÅ‚", + "collection.source.controls.head": "Kontrolki odczytywania", + "collection.source.controls.test.submit.error": "CoÅ› poszÅ‚o nie tak podczas rozpoczynania testów ustawieÅ„", + "collection.source.controls.test.failed": "Scenariusz testowy ustawieÅ„ nie zadziaÅ‚aÅ‚", + "collection.source.controls.test.completed": "Scenariusz testowy ustawieÅ„ zostaÅ‚ zakoÅ„czony", + "collection.source.controls.test.submit": "Konfiguracja testowa", + "collection.source.controls.test.running": "Testowanie konfiguracji...", + "collection.source.controls.import.submit.success": "Import zostaÅ‚ rozpoczÄ™ty", + "collection.source.controls.import.submit.error": "CoÅ› poszÅ‚o nie tak podczas rozpoczynania importu", + "collection.source.controls.import.submit": "Importuj teraz", + "collection.source.controls.import.running": "Importowanie...", + "collection.source.controls.import.failed": "WystÄ…piÅ‚ bÅ‚Ä…d podczas importu", + "collection.source.controls.import.completed": "Import zakoÅ„czony", + "collection.source.controls.reset.submit.success": "Reset ustawieÅ„ i powtórny import zostaÅ‚y rozpoczÄ™te poprawnie", + "collection.source.controls.reset.submit.error": "CoÅ› poszÅ‚o nie tak podczas rozpoczynania zresetowanego, powtórnego importu", + "collection.source.controls.reset.failed": "WystÄ…piÅ‚ bÅ‚Ä…d podczas resetowania ustawieÅ„ i ponownego importu", + "collection.source.controls.reset.completed": "Reset ustawieÅ„ i powtórny import zostaÅ‚y zakoÅ„czone", + "collection.source.controls.reset.submit": "Resetowanie i powtórny import", + "collection.source.controls.reset.running": "Resetowanie i powtórny import...", + "collection.source.controls.harvest.status": "Status odczytywania:", + "collection.source.controls.harvest.start": "Czas rozpoczÄ™cia odczytywania:", + "collection.source.controls.harvest.last": "Czas ostatniego odczytywania:", + "collection.source.controls.harvest.message": "Informacje nt. odczytywania:", + "collection.source.controls.harvest.no-information": "bd.", + "collection.source.update.notifications.error.content": "Te ustawienia zostaÅ‚y przetestowane i nie dziaÅ‚ajÄ….", + "collection.source.update.notifications.error.title": "BÅ‚Ä…d serwera", + "communityList.breadcrumbs": "Lista zbiorów", + "communityList.tabTitle": "Lista zbiorów", + "communityList.title": "Lista zbiorów", + "communityList.showMore": "Pokaż wiÄ™cej", + "community.create.head": "Utwórz zbiór", + "community.create.notifications.success": "UdaÅ‚o siÄ™ utworzyć zbiór", + "community.create.sub-head": "Utwórz podzbiór dla zbioru {{ parent }}", + "community.curate.header": "ZarzÄ…dzaj zbiorem: {{community}}", + "community.delete.cancel": "Anuluj", + "community.delete.confirm": "Potwierdź", + "community.delete.processing": "Usuwanie...", + "community.delete.head": "UsuÅ„ zbiór", + "community.delete.notification.fail": "Zbiór nie może być usuniÄ™ty", + "community.delete.notification.success": "UdaÅ‚o siÄ™ usunąć zbiór", + "community.delete.text": "Czy na pewno chcesz usunąć zbiór \"{{ dso }}\"", + "community.edit.delete": "UsuÅ„ ten zbiór", + "community.edit.head": "Edytuj zbiór", + "community.edit.breadcrumbs": "Edytuj zbiór", + "community.edit.logo.delete.title": "UsuÅ„ logo", + "community.edit.logo.delete-undo.title": "Cofnij usuniÄ™cie", + "community.edit.logo.label": "Logo zbioru", + "community.edit.logo.notifications.add.error": "PrzesÅ‚anie loga zbioru nie powiodÅ‚o siÄ™. Sprawdź czy wszystkie parametry sÄ… odpowiednie przed próbÄ… ponownego przesÅ‚ania.", + "community.edit.logo.notifications.add.success": "PrzesÅ‚anie loga powiodÅ‚o siÄ™.", + "community.edit.logo.notifications.delete.success.title": "Logo usuniÄ™te", + "community.edit.logo.notifications.delete.success.content": "UsuniÄ™cie loga zbioru powiodÅ‚o siÄ™", + "community.edit.logo.notifications.delete.error.title": "BÅ‚Ä…d podczas usuwania loga", + "community.edit.logo.upload": "Upuść logo zbioru, aby je przesÅ‚ać", + "community.edit.notifications.success": "UdaÅ‚o siÄ™ edytować zbiór", + "community.edit.notifications.unauthorized": "Nie masz uprawnieÅ„, aby wykonać te zmiany", + "community.edit.notifications.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas edycji zbioru", + "community.edit.return": "Cofnij", + "community.edit.tabs.curate.head": "Administruj", + "community.edit.tabs.curate.title": "Edycja zbioru - administrator", + "community.edit.tabs.metadata.head": "Edytuj metadane", + "community.edit.tabs.metadata.title": "Edycja zbioru - metadane", + "community.edit.tabs.roles.head": "Przypisz role", + "community.edit.tabs.roles.title": "Edycja zbioru - role", + "community.edit.tabs.authorizations.head": "Uprawnienia", + "community.edit.tabs.authorizations.title": "Edycja zbioru - uprawnienia", + "community.listelement.badge": "Zbiór", + "comcol-role.edit.no-group": "Brak", + "comcol-role.edit.create": "Utwórz", + "comcol-role.edit.restrict": "Ogranicz", + "comcol-role.edit.delete": "UsuÅ„", + "comcol-role.edit.community-admin.name": "Administratorzy", + "comcol-role.edit.collection-admin.name": "Administratorzy", + "comcol-role.edit.community-admin.description": "Administratorzy zbioru mogÄ… tworzyć podzbiory lub kolekcje i zarzÄ…dzać nimi lub przydzielać zarzÄ…dzanie tymi podzbiorami lub kolekcji innym użytkownikom. Ponadto decydujÄ…, kto może przesyÅ‚ać elementy do dowolnych podkolekcji, edytować metadane pozycji (po przesÅ‚aniu) i dodawać (mapować) istniejÄ…ce pozycje z innych kolekcji (z zastrzeżeniem autoryzacji).", + "comcol-role.edit.collection-admin.description": "Administratorzy kolekcji decydujÄ… o tym, kto może przesyÅ‚ać pozycje do kolekcji, edytować metadane pozycji (po ich przesÅ‚aniu) oraz dodawać (mapować) istniejÄ…ce elementy z innych kolekcji do tej kolekcji (z zastrzeżeniem uprawnieÅ„ dla danej kolekcji).", + "comcol-role.edit.submitters.name": "ZgÅ‚aszajÄ…cy", + "comcol-role.edit.submitters.description": "Użytkownicy i grupy, którzy majÄ… uprawnienia do przesyÅ‚ania nowych pozycji do tej kolekcji.", + "comcol-role.edit.item_read.name": "DomyÅ›lny dostÄ™p do odczytu pozycji", + "comcol-role.edit.item_read.description": "Użytkownicy i grupy, które mogÄ… odczytywać nowe pozycje zgÅ‚oszone do tej kolekcji. Zmiany w tej roli nie dziaÅ‚ajÄ… wstecz. IstniejÄ…ce pozycje w systemie bÄ™dÄ… nadal widoczne dla osób, które miaÅ‚y dostÄ™p do odczytu w momencie ich dodania.", + "comcol-role.edit.item_read.anonymous-group": "DomyÅ›lny odczyt dla nowych pozycji jest obecnie ustawiony na Anonimowy.", + "comcol-role.edit.bitstream_read.name": "DomyÅ›lny dostÄ™p do oczytu plików", + "comcol-role.edit.bitstream_read.description": "Administratorzy zbiorów mogÄ… tworzyć podzbiory lub kolekcje, a także zarzÄ…dzać nimi. Ponadto decydujÄ… o tym, kto może przesyÅ‚ać elementy do podkolekcji, edytować metadane pozycji (po ich przesÅ‚aniu) oraz dodawać (mapować) istniejÄ…ce pozycje z innych kolekcji (pod warunkiem posiadania odpowiednich uprawnieÅ„).", + "comcol-role.edit.bitstream_read.anonymous-group": "DomyÅ›lny status odczytu dla nowych plików to Anonimowy.", + "comcol-role.edit.editor.name": "Redaktorzy", + "comcol-role.edit.editor.description": "Redaktorzy mogÄ… edytować metadane nowych pozycji, a nastÄ™pnie akceptować je lub odrzucać.", + "comcol-role.edit.finaleditor.name": "Redaktorzy koÅ„cowi", + "comcol-role.edit.finaleditor.description": "Redaktorzy koÅ„cowi mogÄ… edytować metadane nowych pozycji, ale nie mogÄ™ odrzucać pozycji.", + "comcol-role.edit.reviewer.name": "Recenzenci", + "comcol-role.edit.reviewer.description": "Recenzenci mogÄ… akceptować lub odrzucać nowe pozycje, ale nie mogÄ™ edytować ich metadanych.", + "community.form.abstract": "Opis skrócony", + "community.form.description": "WstÄ™p (HTML)", + "community.form.errors.title.required": "Wprowadź nazwÄ™ zbioru", + "community.form.rights": "Prawa autoskie (HTML)", + "community.form.tableofcontents": "WiadomoÅ›ci (HTML)", + "community.form.title": "Nazwa", + "community.page.edit": "Edytuj ten zbiór", + "community.page.handle": "StaÅ‚y URI zbioru", + "community.page.license": "Licencja", + "community.page.news": "WiadomoÅ›ci", + "community.all-lists.head": "Podzbiory i kolekcje", + "community.sub-collection-list.head": "Kolekcje w tym zbiorze", + "community.sub-community-list.head": "Kolekcje w tym zbiorze", + "cookies.consent.accept-all": "Zaakceptuj wszystko", + "cookies.consent.accept-selected": "Zaakceptuj wybrane", + "cookies.consent.app.opt-out.description": "Aplikacja jest domyÅ›lnie wÅ‚Ä…czona (możesz jÄ… wyÅ‚Ä…czyć)", + "cookies.consent.app.opt-out.title": "(możesz jÄ… wyÅ‚aczyć)", + "cookies.consent.app.purpose": "cel", + "cookies.consent.app.required.description": "Ta aplikacja jest zawsze wymagana", + "cookies.consent.app.required.title": "(zawsze wymagana)", + "cookies.consent.update": "Od ostatniej wizyty zostaÅ‚y wprowadzone zmiany. Zweryfikuj swoje zgody.", + "cookies.consent.close": "Zamknij", + "cookies.consent.decline": "Odrzuć", + "cookies.consent.content-notice.description": "Zbieramy i przetwarzamy Twoje dane do nastÄ™pujÄ…cych celów: <strong>weryfikacja, preferencje, zgody i statystyka</strong>. <br/> JeÅ›li chcesz siÄ™ dowiedzieć wiÄ™cej, przycztaj naszÄ… {privacyPolicy}.", + "cookies.consent.content-notice.learnMore": "Dostosuj", + "cookies.consent.content-modal.description": "Tutaj sÄ… wyÅ›wietlane informacje, które zbieramy o Tobie. Możesz je dostosować wedÅ‚ug swojego uznania.", + "cookies.consent.content-modal.privacy-policy.name": "polityka prywatnoÅ›ci", + "cookies.consent.content-modal.privacy-policy.text": "Aby dowiedzieć siÄ™ wiÄ™cej przeczytaj naszÄ… {privacyPolicy}.", + "cookies.consent.content-modal.title": "Informacje, które zbieramy", + "cookies.consent.app.title.authentication": "Logowanie", + "cookies.consent.app.description.authentication": "Musisz siÄ™ zalogować", + "cookies.consent.app.title.preferences": "Preferencje", + "cookies.consent.app.description.preferences": "Wymagane, aby zapisać Twoje preferencje", + "cookies.consent.app.title.acknowledgement": "Zgody", + "cookies.consent.app.description.acknowledgement": "Wymagane, aby zapisać Twoje preferencje", + "cookies.consent.app.title.google-analytics": "Google Analytics", + "cookies.consent.app.description.google-analytics": "Pozwól na Å›ledzenie do celów statystycznych", + "cookies.consent.purpose.functional": "Funkcjonalne", + "cookies.consent.purpose.statistical": "Statystyczne", + "curation-task.task.checklinks.label": "Sprawdź odnoÅ›niki w metadanych", + "curation-task.task.noop.label": "NOOP", + "curation-task.task.profileformats.label": "Profil formatów plików", + "curation-task.task.requiredmetadata.label": "Sprawdź poprawność wymaganych metadanych", + "curation-task.task.translate.label": "Microsoft Translator", + "curation-task.task.vscan.label": "Skan antywirusowy", + "curation.form.task-select.label": "Zadanie:", + "curation.form.submit": "Start", + "curation.form.submit.success.head": "UdaÅ‚o siÄ™ rozpocząć zadanie administratora", + "curation.form.submit.success.content": "Zostaniesz przeniesiony na stronÄ™ procesu.", + "curation.form.submit.error.head": "Nie udaÅ‚o siÄ™ siÄ™ zakoÅ„czyć zadania administratora", + "curation.form.submit.error.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas rozpoczynania zadania administracyjnego.", + "curation.form.handle.label": "Automatyzacja:", + "curation.form.handle.hint": "Wskazówka: Wpisz [prefix swojego identyfikatora]/0, aby zautomatyzować zadanie (nie wszystkie zadania mogÄ… wspierać tÄ™ funkcjÄ™)", + "deny-request-copy.email.message": "Drogi użytkowniku {{ recipientName }},\nW odpowiedzi na PaÅ„stwa zapytanie, przykro mi poinformować, że to niemożliwe, aby przestać kopiÄ™ pliku, o który PaÅ„stwo prosili: \"{{ itemUrl }}\" ({{ itemName }}), którego jestem autorem.\n\nPozdrawiam serdecznie,\n{{ authorName }} <{{ authorEmail }}>", + "deny-request-copy.email.subject": "WystÄ…p o kopiÄ™ dokumentu", + "deny-request-copy.error": "WystÄ…piÅ‚ bÅ‚Ä…d", + "deny-request-copy.header": "Odrzuć proÅ›bÄ™ o przesÅ‚anie kopii dokumentu", + "deny-request-copy.intro": "Ta wiadomość zostanie przesÅ‚ana do osoby, która wystÄ…piÅ‚a o dostÄ™p", + "deny-request-copy.success": "Z powodzeniem odrzucono proÅ›bÄ™ o udostÄ™pnienie pozycji", + "dso.name.untitled": "Brak tytuÅ‚u", + "dso-selector.claim.item.head": "Wskazówki profilu", + "dso-selector.claim.item.body": "IstniejÄ… profile, które mogÄ… odnosić siÄ™ do Ciebie. JeÅ›li, któryÅ› z tych profilów jest Twój, wybierz go i przejdź do szczegółów, z opcji wybierz opcjÄ™ przypisania profilu. W innym przypadku możesz utworzyć nowy profil z szablonu, wybierajÄ…c przycisk poniżej.", + "dso-selector.claim.item.create-from-scratch": "Utwórz nowy", + "dso-selector.claim.item.not-mine-label": "Å»aden nie jest mój", + "dso-selector.create.collection.head": "Nowa kolekcja", + "dso-selector.create.collection.sub-level": "Utwórz nowÄ… kolekcjÄ™ w", + "dso-selector.create.community.head": "Nowy zbiór", + "dso-selector.create.community.sub-level": "Utwórz nowy zbiór", + "dso-selector.create.community.top-level": "Utwórz nowy nadrzÄ™dny zbiór", + "dso-selector.create.item.head": "Nowa pozycja", + "dso-selector.create.item.sub-level": "Utwórz nowÄ… pozycjÄ™ w", + "dso-selector.create.submission.head": "Nowe zgÅ‚oszenie", + "dso-selector.edit.collection.head": "Edytuj kolekcjÄ™", + "dso-selector.edit.community.head": "Edytuj zbiór", + "dso-selector.edit.item.head": "Edytuj pozycjÄ™", + "dso-selector.error.title": "WystÄ…piÅ‚ bÅ‚Ä…d podczas wyszukiwania typu {{ type }}", + "dso-selector.export-metadata.dspaceobject.head": "Eksportuj metadane z", + "dso-selector.no-results": "Nie znaleziono {{ type }}", + "dso-selector.placeholder": "Wyszukaj {{ type }}", + "dso-selector.select.collection.head": "Wybierz kolekcjÄ™", + "dso-selector.set-scope.community.head": "Wybierz wyszukiwanie zakresu", + "dso-selector.set-scope.community.button": "Wyszukaj w caÅ‚ym DSpace", + "dso-selector.set-scope.community.input-header": "Wyszukaj zbiór lub kolekcjÄ™", + "confirmation-modal.export-metadata.header": "Eksportuj metadane z {{ dsoName }}", + "confirmation-modal.export-metadata.info": "Czy na pewno chcesz eksportować metadane z {{ dsoName }}", + "confirmation-modal.export-metadata.cancel": "Anuluj", + "confirmation-modal.export-metadata.confirm": "Eksportuj", + "confirmation-modal.delete-eperson.header": "UsuÅ„ użytkownika \"{{ dsoName }}\"", + "confirmation-modal.delete-eperson.info": "Czy na pewno chcesz usunąć użytkownika \"{{ dsoName }}\"", + "confirmation-modal.delete-eperson.cancel": "Anuluj", + "confirmation-modal.delete-eperson.confirm": "UsuÅ„", + "error.bitstream": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia plików", + "error.browse-by": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia pozycji", + "error.collection": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia kolekcji", + "error.collections": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia kolekcji", + "error.community": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia ziboru", + "error.identifier": "Nie znaleziono pozycji z podanym identyfikatorem", + "error.default": "BÅ‚Ä…d", + "error.item": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia pozycji", + "error.items": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia pozycji", + "error.objects": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia obiektów", + "error.recent-submissions": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia ostatniego zgÅ‚oszenia", + "error.search-results": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia wyników wyszukiwania", + "error.sub-collections": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia podkolekcji", + "error.sub-communities": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia podzbiorów", + "error.submission.sections.init-form-error": "WystÄ…piÅ‚ bÅ‚Ä…d w czasie inicjalizacji sekcji, sprawdź konfiguracjÄ™. Szczegóły poniżej: <br> <br>", + "error.top-level-communities": "BÅ‚Ä…d podczas pobierania nadrzÄ™dnego zbioru", + "error.validation.license.notgranted": "Musisz wyrazić tÄ™ zgodÄ™, aby przesÅ‚ać swoje zgÅ‚oszenie. JeÅ›li nie możesz wyrazić zgody w tym momencie, możesz zapisać swojÄ… pracÄ™ i wrócić do niej później lub usunąć zgÅ‚oszenie.", + "error.validation.pattern": "Te dane wejÅ›ciowe sÄ… ograniczone przez aktualny wzór: {{ pattern }}.", + "error.validation.filerequired": "PrzesÅ‚anie pliku jest obowiÄ…zkowe", + "error.validation.required": "Pole jest wymagane", + "error.validation.NotValidEmail": "E-mail nie jest poprawny", + "error.validation.emailTaken": "E-mail jest już zarejestrowany", + "error.validation.groupExists": "Ta grupa już istnieje", + "file-section.error.header": "BÅ‚Ä…d podczas uzyskiwania plików dla tej pozycji", + "footer.copyright": "copyright © 2002-{{ year }}", + "footer.link.dspace": "oprogramowanie DSpace", + "footer.link.lyrasis": "LYRASIS", + "footer.link.cookies": "Ustawienia plików cookies", + "footer.link.privacy-policy": "Polityka prywatnoÅ›ci", + "footer.link.end-user-agreement": "Umowa użytkownika", + "forgot-email.form.header": "Nie pamiÄ™tam hasÅ‚a", + "forgot-email.form.info": "Zarejestruj siÄ™, aby otrzymywać wiadomoÅ›ci o nowych pozycjach w obserowanych kolekcjach, a także przesyÅ‚ać nowe pozycje do repozytorium.", + "forgot-email.form.email": "Adres e-mail *", + "forgot-email.form.email.error.required": "UzupeÅ‚nij adres e-mail", + "forgot-email.form.email.error.pattern": "UzupeÅ‚nij prawidÅ‚owy adres e-mail", + "forgot-email.form.email.hint": "Ten adres e-mail bÄ™dzie zweryfikowany i bÄ™dziesz go używać jako swój login.", + "forgot-email.form.submit": "WyÅ›lij", + "forgot-email.form.success.head": "WysÅ‚ano wiadomość weryfikacyjnÄ…", + "forgot-email.form.success.content": "Wiadomość zostaÅ‚a wysÅ‚ana na adres e-mail {{ email }}. Zawiera ona unikatowy link i dalsze instrukcje postÄ™powania.", + "forgot-email.form.error.head": "BÅ‚Ä…d podczas rejestracji adresu e-mail", + "forgot-email.form.error.content": "WystÄ…piÅ‚ bÅ‚Ä…d poczas próby rejestracji tego adresu e-mail: {{ email }}", + "forgot-password.title": "Nie pamiÄ™tam hasÅ‚a", + "forgot-password.form.head": "Nie pamiÄ™tam hasÅ‚a", + "forgot-password.form.info": "Wpisz nowe hasÅ‚o w polu poniżej i potwierdź je wpisujÄ…c je ponownie w drugim polu. HasÅ‚o powinno mieć co najmniej sześć znaków.", + "forgot-password.form.card.security": "BezpieczeÅ„stwo", + "forgot-password.form.identification.header": "Identifikacja", + "forgot-password.form.identification.email": "Adres e-mail: ", + "forgot-password.form.label.password": "HasÅ‚o", + "forgot-password.form.label.passwordrepeat": "Potwierdź hasÅ‚o", + "forgot-password.form.error.empty-password": "Wpisz hasÅ‚o poniżej.", + "forgot-password.form.error.matching-passwords": "HasÅ‚a nie sÄ… identyczne.", + "forgot-password.form.notification.error.title": "BÅ‚Ä…d podczas próby ustawienia nowego hasÅ‚a", + "forgot-password.form.notification.success.content": "Resetowanie hasÅ‚a udaÅ‚o siÄ™. Zalogowano jako stworzony przed momemntem użytkownik.", + "forgot-password.form.notification.success.title": "Resetowanie hasÅ‚a udane", + "forgot-password.form.submit": "Wpisz hasÅ‚o", + "form.add": "Dodaj", + "form.add-help": "Wybierz ten przycisk, aby dodać aktualny wpis lub dodać nastÄ™pny", + "form.cancel": "Anuluj", + "form.clear": "Wyczyść", + "form.clear-help": "Kliknij tutaj, aby usunąć wybranÄ… wartość", + "form.discard": "Odrzuć", + "form.drag": "PrzeciÄ…gnij", + "form.edit": "Edytuj", + "form.edit-help": "Kliknij tutaj, aby edytować wybranÄ… wartość", + "form.first-name": "ImiÄ™", + "form.last-name": "Nazwisko", + "form.loading": "Åadowanie...", + "form.lookup": "PrzeglÄ…daj", + "form.lookup-help": "Kliknij tutaj, aby zobaczyć istniejÄ…ce powiÄ…zania", + "form.no-results": "Nie znaleziono rezultatów", + "form.no-value": "Nie wprowadzono wartoÅ›ci", + "form.remove": "UsuÅ„", + "form.save": "Zapisz", + "form.save-help": "Zapisz zmiany", + "form.search": "Wyszukaj", + "form.search-help": "Kliknij tutaj, aby wyszukać w istniejÄ…cych komentarzach", + "form.submit": "Zapisz", + "form.repeatable.sort.tip": "Upuść nowÄ… pozycjÄ™ w nowym miejscu", + "grant-deny-request-copy.deny": "Nie przesyÅ‚aj kopii", + "grant-deny-request-copy.email.back": "Cofnij", + "grant-deny-request-copy.email.message": "WiadomoÅ›ci", + "grant-deny-request-copy.email.message.empty": "ProszÄ™ wprowadzić wiadomość", + "grant-deny-request-copy.email.permissions.info": "W tym miejscu możesz przemyÅ›leć ograniczenie dostÄ™pu do dokumentu, aby odpowiadać na mniej próśb o dostÄ™p. JeÅ›li chcesz wystÄ…pić do administratorów reposytorium o zniesienie restrykcji, zaznacz okienko poniżej.", + "grant-deny-request-copy.email.permissions.label": "Ustaw jako otwarty dostÄ™p", + "grant-deny-request-copy.email.send": "WyÅ›lij", + "grant-deny-request-copy.email.subject": "Temat", + "grant-deny-request-copy.email.subject.empty": "Wpisz temat", + "grant-deny-request-copy.grant": "WyÅ›lij kopiÄ™", + "grant-deny-request-copy.header": "ProÅ›ba o przesÅ‚anie kopii dokumentu", + "grant-deny-request-copy.home-page": "Zabierz mnie na stronÄ™ głównÄ…", + "grant-deny-request-copy.intro1": "JeÅ›li jesteÅ› jednym z autorów dokumentu <a href='{{ url }}'>{{ name }}</a>, wybierz jednÄ… z poniższych opcji, aby odpowiedzieć zapytaniu użytkownika.", + "grant-deny-request-copy.intro2": "Po wybraniu opcji, zostanÄ… wyÅ›wietlone sugerowane odpowiedzi, które można edytować.", + "grant-deny-request-copy.processed": "Ta proÅ›ba jest już procesowana. Możesz użyć przycisku poniżej, aby wrócić do strony głównej.", + "grant-request-copy.email.message": "Drogi użytkowniku {{ recipientName }},\nW odpowiedzi na PaÅ„stwa zapytanie, miÅ‚o mi poinformować, że w zaÅ‚Ä…czniku przesyÅ‚am kopiÄ™ dokumentu, o który PaÅ„stwo prosili: \"{{ itemUrl }}\" ({{ itemName }}), którego jestem autorem.\n\nPozdrawiam serdecznie,\n{{ authorName }} <{{ authorEmail }}>", + "grant-request-copy.email.subject": "ProÅ›ba o kopiÄ™ dokumentu", + "grant-request-copy.error": "WystÄ…piÅ‚ bÅ‚Ä…d", + "grant-request-copy.header": "Zezwól na wysÅ‚anie kopii dokumentu", + "grant-request-copy.intro": "To wiadomość zostanie wysÅ‚ana do osoby, która wystÄ…piÅ‚a o dostÄ™p. Wskazane dokumenty zostanÄ… doÅ‚Ä…czone jako zaÅ‚Ä…cznik.", + "grant-request-copy.success": "ProÅ›ba o dostÄ™p do dokumentu zostaÅ‚a przyjÄ™ta", + "home.description": "", + "home.breadcrumbs": "Strona główna", + "home.search-form.placeholder": "Przeszukaj repozytorium...", + "home.title": "Strona główna", + "home.top-level-communities.head": "Zbiory w DSpace", + "home.top-level-communities.help": "Przeszukaj kolekcje", + "info.end-user-agreement.accept": "PrzeczytaÅ‚em/am i akceptujÄ™ umowÄ™ użytkownika", + "info.end-user-agreement.accept.error": "BÅ‚Ä…d wystÄ…piÅ‚ podczas akceptowania umowy użytkownika", + "info.end-user-agreement.accept.success": "UdaÅ‚o siÄ™ zaktualizować umowÄ™ użytkownika", + "info.end-user-agreement.breadcrumbs": "Umowa użytkownika", + "info.end-user-agreement.buttons.cancel": "Anuluj", + "info.end-user-agreement.buttons.save": "Zapisz", + "info.end-user-agreement.head": "Umowa użytkownika", + "info.end-user-agreement.title": "Umowa użytkownika", + "info.privacy.breadcrumbs": "OÅ›wiadczenie polityki prywatnoÅ›ci", + "info.privacy.head": "OÅ›wiadczenie polityki prywatnoÅ›ci", + "info.privacy.title": "OÅ›wiadczenie polityki prywatnoÅ›ci", + "item.alerts.private": "Ta pozycja jest prywatna", + "item.alerts.withdrawn": "Ta pozycja zostaÅ‚a wycofana", + "item.edit.authorizations.heading": "Za pomocÄ… tego edytora możesz przeglÄ…dać i zmieniać polityki dla danej pozycji, a także zmieniać polityki dla poszczególnych części pozycji: paczek i strumieni bitów. W skrócie, pozycja jest kontenerem pakietów, a pakiety sÄ… kontenerami strumieni bitów. Kontenery zazwyczaj majÄ… polityki ADD/REMOVE/READ/WRITE, natomiast strumienie bitów majÄ… tylko polityki READ/WRITE.", + "item.edit.authorizations.title": "Edytuj politykÄ™ tej pozycji", + "item.badge.private": "Prywatny status publikacji", + "item.badge.withdrawn": "Wycofane publikacje", + "item.bitstreams.upload.bundle": "Pakiet", + "item.bitstreams.upload.bundle.placeholder": "Wybierz pakiet", + "item.bitstreams.upload.bundle.new": "Utworz pakiet", + "item.bitstreams.upload.bundles.empty": "Ta pozycja nie zawiera żadnych pakietów, do których można przesÅ‚ać strumieÅ„ bitów.", + "item.bitstreams.upload.cancel": "Anuluj", + "item.bitstreams.upload.drop-message": "Upuść plik, aby przesÅ‚ać", + "item.bitstreams.upload.item": "Pozycja: ", + "item.bitstreams.upload.notifications.bundle.created.content": "UdaÅ‚o siÄ™ utworzyć nowy pakiet.", + "item.bitstreams.upload.notifications.bundle.created.title": "Utwórz pakiet", + "item.bitstreams.upload.notifications.upload.failed": "Zweryfikuj pliki przed spróbowaniem ponownie.", + "item.bitstreams.upload.title": "PrzeÅ›lij strumieÅ„ bitów", + "item.edit.bitstreams.bundle.edit.buttons.upload": "PrzeÅ›lij", + "item.edit.bitstreams.bundle.displaying": "Obecnie wyÅ›wietlono {{ amount }} plików z {{ total }}.", + "item.edit.bitstreams.bundle.load.all": "ZaÅ‚aduj wszystkie ({{ total }})", + "item.edit.bitstreams.bundle.load.more": "ZaÅ‚aduj wiÄ™cej", + "item.edit.bitstreams.bundle.name": "PACZKA: {{ name }}", + "item.edit.bitstreams.discard-button": "Odrzuć", + "item.edit.bitstreams.edit.buttons.download": "Pobierz", + "item.edit.bitstreams.edit.buttons.drag": "PrzeciÄ…gnij", + "item.edit.bitstreams.edit.buttons.edit": "Edytuj", + "item.edit.bitstreams.edit.buttons.remove": "UsuÅ„", + "item.edit.bitstreams.edit.buttons.undo": "Cofnij zmiany", + "item.edit.bitstreams.empty": "Ta pozycja nie zawiera żadnych strumieni bitów. Wybierz strumienie do zaÅ‚adowania, aby je utworzyć.", + "item.edit.bitstreams.headers.actions": "Akcje", + "item.edit.bitstreams.headers.bundle": "Paczka", + "item.edit.bitstreams.headers.description": "Opis", + "item.edit.bitstreams.headers.format": "Format", + "item.edit.bitstreams.headers.name": "Nazwa", + "item.edit.bitstreams.notifications.discarded.content": "Twoje zmiany zostaÅ‚y odrzucone. Aby je przywrócić, wybierz przycisk 'Cofnij'", + "item.edit.bitstreams.notifications.discarded.title": "Zmiany odrzucone", + "item.edit.bitstreams.notifications.move.failed.title": "BÅ‚Ä…d podczas przenoszenia plików", + "item.edit.bitstreams.notifications.move.saved.content": "Zmiany pozycji dla pliku tej pozycji oraz jego paczki zostaÅ‚y zapisane.", + "item.edit.bitstreams.notifications.move.saved.title": "Zmiana pozycji zostaÅ‚a zapisana", + "item.edit.bitstreams.notifications.outdated.content": "Pozycja zostaÅ‚a w miÄ™dzyczasie zmieniona przez innego użytkownika. Twoje zmiany zostaÅ‚y cofniÄ™te, aby uniknąć ewentualnych konfliktów", + "item.edit.bitstreams.notifications.outdated.title": "Zmiany nieaktualne", + "item.edit.bitstreams.notifications.remove.failed.title": "BÅ‚Ä…d podczas usuwania pliku", + "item.edit.bitstreams.notifications.remove.saved.content": "Twoje zmiany dotyczÄ…ce usuniÄ™cia plików z tej pozycji zostaÅ‚y zapisane.", + "item.edit.bitstreams.notifications.remove.saved.title": "Zmiany dotyczÄ…ce usuniÄ™cia zapisane", + "item.edit.bitstreams.reinstate-button": "Cofnij", + "item.edit.bitstreams.save-button": "Zapisz", + "item.edit.bitstreams.upload-button": "PrzeÅ›lij", + "item.edit.delete.cancel": "Anuluj", + "item.edit.delete.confirm": "UsuÅ„", + "item.edit.delete.description": "Czy jesteÅ› pewien, że ta pozycja powinna zostać caÅ‚kowicie usuniÄ™ta? Ostrożnie: Teraz nie pozostanie po tej pozycji żaden Å›lad.", + "item.edit.delete.error": "BÅ‚Ä…d wystÄ…piÅ‚ podczas usuwania pozycji", + "item.edit.delete.header": "UsuÅ„ pozycjÄ™: {{ id }}", + "item.edit.delete.success": "Ta pozycja zostaÅ‚a usuniÄ™ta", + "item.edit.head": "Edytuj pozycjÄ™", + "item.edit.breadcrumbs": "Edytuj pozycjÄ™", + "item.edit.tabs.disabled.tooltip": "Nie masz dostÄ™pu do tej strony", + "item.edit.tabs.mapper.head": "Mapper kolekcji", + "item.edit.tabs.item-mapper.title": "Edytowanie pozycji - Mapper kolekcji", + "item.edit.item-mapper.buttons.add": "Mapowanie pozycji do wybranych kolekcji", + "item.edit.item-mapper.buttons.remove": "UsuÅ„ mapowanie pozycji do wybranych kolekcji", + "item.edit.item-mapper.cancel": "Anuluj", + "item.edit.item-mapper.description": "To jest narzÄ™dzie do mapowania elementów, które pozwala administratorom mapować tÄ™ pozycjÄ™ do innych kolekcji. Możesz wyszukiwać kolekcje i je mapować lub przeglÄ…dać listÄ™ kolekcji, do których dana pozycja jest aktualnie zmapowana.", + "item.edit.item-mapper.head": "Mapper pozycji - Mapowanie pozycji do kolekcji", + "item.edit.item-mapper.item": "Pozycja: \"<b>{{name}}</b>\"", + "item.edit.item-mapper.no-search": "Wpisz zapytanie, które chcesz wyszukać", + "item.edit.item-mapper.notifications.add.error.content": "WystÄ…piÅ‚y bÅ‚Ä™dy dla mapowania pozycji w {{amount}} kolekcjach.", + "item.edit.item-mapper.notifications.add.error.head": "BÅ‚Ä™dy mapowania", + "item.edit.item-mapper.notifications.add.success.content": "UdaÅ‚o siÄ™ zmapować elementy dla {{amount}} kolekcji.", + "item.edit.item-mapper.notifications.add.success.head": "Mapowanie zakoÅ„czone", + "item.edit.item-mapper.notifications.remove.error.content": "WystÄ…piÅ‚y bÅ‚Ä™dy podczas usuwania mapowania do {{amount}} kolekcji.", + "item.edit.item-mapper.notifications.remove.error.head": "UsuniÄ™cie mapowania bÅ‚Ä™dów", + "item.edit.item-mapper.notifications.remove.success.content": "UdaÅ‚o siÄ™ usunąć mapowanie pozycji w {{amount}} kolekcjach.", + "item.edit.item-mapper.notifications.remove.success.head": "Usuwanie mapowania zakoÅ„czone", + "item.edit.item-mapper.search-form.placeholder": "Przeszukaj kolekcje...", + "item.edit.item-mapper.tabs.browse": "PrzeglÄ…daj zmapowane kolekcje", + "item.edit.item-mapper.tabs.map": "Mapuj nowe kolekcje", + "item.edit.metadata.add-button": "Dodaj", + "item.edit.metadata.discard-button": "Odrzuć", + "item.edit.metadata.edit.buttons.edit": "Edytuj", + "item.edit.metadata.edit.buttons.remove": "UsuÅ„", + "item.edit.metadata.edit.buttons.undo": "Cofnij zmiany", + "item.edit.metadata.edit.buttons.unedit": "Zatrzymaj edycjÄ™", + "item.edit.metadata.empty": "Ta pozycja nie zawiera żadnych metadanych. Wybierz Dodaj, aby dodać metadane.", + "item.edit.metadata.headers.edit": "Edytuj", + "item.edit.metadata.headers.field": "Pole", + "item.edit.metadata.headers.language": "JÄ™zyk", + "item.edit.metadata.headers.value": "Wartość", + "item.edit.metadata.metadatafield.invalid": "Wybierz aktualne pole metadanych", + "item.edit.metadata.notifications.discarded.content": "Twoje zmiany zostaÅ‚y odrzucone. Aby wgrać je ponownie wybierz przycisk 'Cofnij'", + "item.edit.metadata.notifications.discarded.title": "Zmiany odrzucone", + "item.edit.metadata.notifications.error.title": "WystÄ…piÅ‚ bÅ‚Ä…d", + "item.edit.metadata.notifications.invalid.content": "Twoje zmiany nie zostaÅ‚y zapisane. Przed zapisaniem upewnij siÄ™, że wszystkie pola sÄ… wypeÅ‚nione prawidÅ‚owo.", + "item.edit.metadata.notifications.invalid.title": "NieprawidÅ‚owe metadane", + "item.edit.metadata.notifications.outdated.content": "Pozycja zostaÅ‚a w miÄ™dzyczasie zmieniona przez innego użytkownika. Twoje zmiany zostaÅ‚y cofniÄ™te, aby zapobiec ewentualnym konfliktom", + "item.edit.metadata.notifications.outdated.title": "Zmiany nieaktualne", + "item.edit.metadata.notifications.saved.content": "Twoje zmiany metadanych tej pozycji zostaÅ‚y zapisane.", + "item.edit.metadata.notifications.saved.title": "Metadane zostaÅ‚y zapisane", + "item.edit.metadata.reinstate-button": "Cofnij", + "item.edit.metadata.save-button": "Zapisz", + "item.edit.modify.overview.field": "Pole", + "item.edit.modify.overview.language": "JÄ™zyk", + "item.edit.modify.overview.value": "Wartość", + "item.edit.move.cancel": "Anuluj", + "item.edit.move.save-button": "Zapisz", + "item.edit.move.discard-button": "Odrzuć", + "item.edit.move.description": "Wybierz kolekcjÄ™, do której chcesz przenieść tÄ™ pozycjÄ™. Aby zawÄ™zić listÄ™ wyÅ›wietlanych kolekcji, możesz wprowadzić zapytanie w polu wyszukiwania.", + "item.edit.move.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas przenoszenia pozycji", + "item.edit.move.head": "PrzenieÅ› pozycjÄ™: {{id}}", + "item.edit.move.inheritpolicies.checkbox": "Dziedziczenie polityk", + "item.edit.move.inheritpolicies.description": "Dziedzczenie domyÅ›lnych polityk z kolekcji docelowej", + "item.edit.move.move": "PrzenieÅ›", + "item.edit.move.processing": "Przenoszenie...", + "item.edit.move.search.placeholder": "Wpisz zapytanie, aby wyszukać w kolekcjach", + "item.edit.move.success": "Pozycja zostaÅ‚a przeniesiona", + "item.edit.move.title": "PrzenieÅ› pozycjÄ™", + "item.edit.private.cancel": "Anuluj", + "item.edit.private.confirm": "Ukryj", + "item.edit.private.description": "Czy chcesz ukryć tÄ™ pozycjÄ™?", + "item.edit.private.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas ukrywania pozycji", + "item.edit.private.header": "Ukryj pozycjÄ™: {{ id }}", + "item.edit.private.success": "Pozycja jest teraz ukryta", + "item.edit.public.cancel": "Anuluj", + "item.edit.public.confirm": "Upublicznij", + "item.edit.public.description": "Czy chcesz upublicznić tÄ™ pozycjÄ™?", + "item.edit.public.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas upubliczniania pozycji", + "item.edit.public.header": "Upublicznij pozycjÄ™: {{ id }}", + "item.edit.public.success": "Pozycja jest teraz publiczna", + "item.edit.reinstate.cancel": "Anuluj", + "item.edit.reinstate.confirm": "Przywróć", + "item.edit.reinstate.description": "Czy chcesz przywrócić tÄ™ pozycjÄ™?", + "item.edit.reinstate.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas przywracania pozycji", + "item.edit.reinstate.header": "Przywróć pozycjÄ™: {{ id }}", + "item.edit.reinstate.success": "Pozycja zostaÅ‚a przywrócona", + "item.edit.relationships.discard-button": "Odrzuć", + "item.edit.relationships.edit.buttons.add": "Dodaj", + "item.edit.relationships.edit.buttons.remove": "UsuÅ„", + "item.edit.relationships.edit.buttons.undo": "Cofnij zmiany", + "item.edit.relationships.no-relationships": "Brak relacji", + "item.edit.relationships.notifications.discarded.content": "Twoje zmiany zostaÅ‚y cofniÄ™te. Aby przywrócić zmiany wybierz przycisk 'Cofnij'", + "item.edit.relationships.notifications.discarded.title": "Zmiany zostaÅ‚y cofniÄ™te", + "item.edit.relationships.notifications.failed.title": "WystÄ…piÅ‚ bÅ‚Ä…d podczas edytowania relacji", + "item.edit.relationships.notifications.outdated.content": "Ta pozycja zostaÅ‚a wÅ‚aÅ›nie zmieniona przez innego użytkownika. Twoje zmiany zostaÅ‚y cofniÄ™te, aby uniknąć konfliktów", + "item.edit.relationships.notifications.outdated.title": "Zmiany sÄ… nieaktualne", + "item.edit.relationships.notifications.saved.content": "Twoje zmiany w relacjach tej pozycji zostaÅ‚y zapisane.", + "item.edit.relationships.notifications.saved.title": "Relacje zostaÅ‚y zapisane", + "item.edit.relationships.reinstate-button": "Cofnij", + "item.edit.relationships.save-button": "Zapisz", + "item.edit.relationships.no-entity-type": "Dodaj metadanÄ… 'dspace.entity.type', aby umożliwić dodawanie relacji do pozycji", + "item.edit.return": "Cofnij", + "item.edit.tabs.bitstreams.head": "Pliki", + "item.edit.tabs.bitstreams.title": "Edycja pozycji - pliki", + "item.edit.tabs.curate.head": "Administruj", + "item.edit.tabs.curate.title": "Edytowanie pozycji - administruj", + "item.edit.tabs.metadata.head": "Metadane", + "item.edit.tabs.metadata.title": "Edycja pozycji - metadane", + "item.edit.tabs.relationships.head": "Relacje", + "item.edit.tabs.relationships.title": "Edycja pozycja - relacje", + "item.edit.tabs.status.buttons.authorizations.button": "DostÄ™py...", + "item.edit.tabs.status.buttons.authorizations.label": "OkreÅ›lu dostÄ™p do pozycji", + "item.edit.tabs.status.buttons.delete.button": "UsuÅ„ permanentnie", + "item.edit.tabs.status.buttons.delete.label": "UsuÅ„ pozycjÄ™ permanentnie", + "item.edit.tabs.status.buttons.mappedCollections.button": "Zmapowane kolekcje", + "item.edit.tabs.status.buttons.mappedCollections.label": "ZarzÄ…dzaj mapowanymi kolekcjami", + "item.edit.tabs.status.buttons.move.button": "PrzenieÅ›...", + "item.edit.tabs.status.buttons.move.label": "PrzenieÅ› pozycjÄ™ do innej kolekcji", + "item.edit.tabs.status.buttons.private.button": "Ukryj...", + "item.edit.tabs.status.buttons.private.label": "Ukry pozycjÄ™", + "item.edit.tabs.status.buttons.public.button": "Upublicznij...", + "item.edit.tabs.status.buttons.public.label": "Upublicznij pozycjÄ™", + "item.edit.tabs.status.buttons.reinstate.button": "Przywróć...", + "item.edit.tabs.status.buttons.reinstate.label": "Przywróć pozycjÄ™", + "item.edit.tabs.status.buttons.unauthorized": "You're not authorized to perform this action", + "item.edit.tabs.status.buttons.withdraw.button": "Wycofaj...", + "item.edit.tabs.status.buttons.withdraw.label": "Wycofaj z repozytorium", + "item.edit.tabs.status.description": "Witamy na stronie zarzÄ…dzania pozycjami. Z tego miejsca możesz wycofać, przywrócić, przenieść lub usunąć danÄ… pozycjÄ™. Możesz również aktualizować lub dodawać nowe metadane lub pliki..", + "item.edit.tabs.status.head": "Status", + "item.edit.tabs.status.labels.handle": "Identyfikator", + "item.edit.tabs.status.labels.id": "ID pozycji", + "item.edit.tabs.status.labels.itemPage": "Strona pozycji", + "item.edit.tabs.status.labels.lastModified": "Ostatnia modyfikacja", + "item.edit.tabs.status.title": "Edycja pozycji - Status", + "item.edit.tabs.versionhistory.head": "Historia wersji", + "item.edit.tabs.versionhistory.title": "Edycja pozycji - historia wersji", + "item.edit.tabs.versionhistory.under-construction": "Edytowanie lub dodawanie nowych wersji jest niedostÄ™pne w tego poziomu interfejsu.", + "item.edit.tabs.view.head": "Widok pozycji", + "item.edit.tabs.view.title": "Edycja pozycji - widok", + "item.edit.withdraw.cancel": "Anuluj", + "item.edit.withdraw.confirm": "Wycofaj", + "item.edit.withdraw.description": "Czy na pewno chcesz wycofać pozycjÄ™?", + "item.edit.withdraw.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas wycofywania pozycji", + "item.edit.withdraw.header": "Wycofaj pozycjÄ™: {{ id }}", + "item.edit.withdraw.success": "Pozycja zostaÅ‚a wycofana", + "item.listelement.badge": "Pozycja", + "item.page.description": "Opis", + "item.page.journal-issn": "ISSN czasopisma", + "item.page.journal-title": "TytuÅ‚ czasopisma", + "item.page.publisher": "Wydawca", + "item.page.titleprefix": "Pozycja: ", + "item.page.volume-title": "TytuÅ‚ tomu", + "item.search.results.head": "Wyniki wyszukiwania pozycji", + "item.search.title": "Wyszukiwanie pozycji", + "item.page.abstract": "Abstrakt", + "item.page.author": "Autorzy", + "item.page.citation": "Cytowanie", + "item.page.collections": "Kolekcje", + "item.page.collections.loading": "Åadowanie...", + "item.page.collections.load-more": "ZaÅ‚aduj wiÄ™cej", + "item.page.date": "Data", + "item.page.edit": "Edytuj pozycjÄ™", + "item.page.files": "Pliki", + "item.page.filesection.description": "Opis:", + "item.page.filesection.download": "Pobierz", + "item.page.filesection.format": "Format:", + "item.page.filesection.name": "Nazwa:", + "item.page.filesection.size": "Rozmiar:", + "item.page.journal.search.title": "ArtykuÅ‚y w czasopiÅ›mie", + "item.page.link.full": "Zobacz szczegóły", + "item.page.link.simple": "Uproszczony widok", + "item.page.person.search.title": "ArtykuÅ‚y tego autora", + "item.page.related-items.view-more": "Pokaż o {{ amount }} wiÄ™cej", + "item.page.related-items.view-less": "Ukryj {{ amount }}", + "item.page.relationships.isAuthorOfPublication": "Publikacje", + "item.page.relationships.isJournalOfPublication": "Publikacje", + "item.page.relationships.isOrgUnitOfPerson": "Autorzy", + "item.page.relationships.isOrgUnitOfProject": "Projekty naukowe", + "item.page.subject": "SÅ‚owa kluczowe", + "item.page.uri": "URI", + "item.page.bitstreams.view-more": "Pokaż wiÄ™cej", + "item.page.bitstreams.collapse": "Pokaż mniej", + "item.page.filesection.original.bundle": "Oryginalne pliki", + "item.page.filesection.license.bundle": "Licencja", + "item.page.return": "Powrót", + "item.page.version.create": "Utwórz nowÄ… wersjÄ™", + "item.page.version.hasDraft": "Nowa wersja nie może zostać utworzona, ponieważ istnieje już oczekujÄ…ce na akceptacjÄ™ zgÅ‚oszenie dokumentu tego pliku", + "item.preview.dc.identifier.doi": "DOI", + "item.preview.dc.relation.ispartof": "Czasopismo lub seria", + "item.preview.dc.identifier.isbn": "ISBN", + "item.preview.dc.identifier.uri": "Identyfikator:", + "item.preview.dc.contributor.author": "Autorzy:", + "item.preview.dc.date.issued": "Data publikacji:", + "item.preview.dc.description.abstract": "Abstrakt:", + "item.preview.dc.identifier.other": "Inny identyfikator:", + "item.preview.dc.language.iso": "JÄ™zyk:", + "item.preview.dc.title": "TytuÅ‚:", + "item.preview.dc.title.alternative": "TytuÅ‚ alternatywny", + "item.preview.dc.type": "Typ:", + "item.preview.dc.identifier": "Identyfikator:", + "item.preview.dc.relation.issn": "ISSN", + "item.preview.oaire.citation.issue": "Numer wydania", + "item.preview.oaire.citation.volume": "Numer tomu", + "item.preview.person.familyName": "Nazwisko:", + "item.preview.person.givenName": "Nazwa:", + "item.preview.person.identifier.orcid": "ORCID:", + "item.preview.project.funder.name": "Fundator:", + "item.preview.project.funder.identifier": "Identyfikator fundatora:", + "item.preview.oaire.awardNumber": "ID finansowania:", + "item.preview.dc.coverage.spatial": "Jurysdykcja:", + "item.preview.oaire.fundingStream": "ŹródÅ‚o finansowania:", + "item.select.confirm": "Potwierdź zaznaczone", + "item.select.empty": "Brak pozycji do wyÅ›wietlenia", + "item.select.table.author": "Autor", + "item.select.table.collection": "Kolekcja", + "item.select.table.title": "TytuÅ‚", + "item.version.history.empty": "Jeszcze nie ma innych wersji tej pozycji.", + "item.version.history.head": "Poprzednie wersje", + "item.version.history.return": "Powrót", + "item.version.history.selected": "Wybrane wersje", + "item.version.history.selected.alert": "W tym momencie wyÅ›wietlono wersjÄ™ {{version}} pozycji.", + "item.version.history.table.version": "Wersja", + "item.version.history.table.item": "Pozycja", + "item.version.history.table.editor": "Redaktor", + "item.version.history.table.date": "Data", + "item.version.history.table.summary": "Podsumowanie", + "item.version.history.table.workspaceItem": "Wersja robocza", + "item.version.history.table.workflowItem": "Pozycja workflow", + "item.version.history.table.actions": "Akcja", + "item.version.history.table.action.editWorkspaceItem": "Edytuj wersjÄ™ roboczÄ… pozycji", + "item.version.history.table.action.editSummary": "Edytuj podsumowanie", + "item.version.history.table.action.saveSummary": "Zapisz edycje podsumowania", + "item.version.history.table.action.discardSummary": "Odrzuć edycje podsumowania", + "item.version.history.table.action.newVersion": "Utwórz nowÄ… wersjÄ™ z tej wersji", + "item.version.history.table.action.deleteVersion": "Wersja usuniÄ™ta", + "item.version.history.table.action.hasDraft": "Nowa wersja nie może zostać utworzona, ponieważ istnieje już oczekujÄ…ce na akceptacjÄ™ zgÅ‚oszenie dokumentu tego pliku", + "item.version.notice": "To nie jest najnowsza wersja tej pozycji. Najnowsza wersja jest dostÄ™pna <a href='{{destination}}'>tutaj</a>.", + "item.version.create.modal.header": "Nowa wersja", + "item.version.create.modal.text": "Utwórz nowÄ… wersjÄ™ tej pozycji", + "item.version.create.modal.text.startingFrom": "zaczynajÄ…c od wersji {{version}}", + "item.version.create.modal.button.confirm": "Utwórz", + "item.version.create.modal.button.confirm.tooltip": "Utwórz nowÄ… wersjÄ™", + "item.version.create.modal.button.cancel": "Anuluj", + "item.version.create.modal.button.cancel.tooltip": "Nie stwarzaj nowej wersji", + "item.version.create.modal.form.summary.label": "Podsumowanie", + "item.version.create.modal.form.summary.placeholder": "Wprowadź podsumowanie nowej wersji", + "item.version.create.notification.success": "Nowa wersja zostaÅ‚a utworzona z numerem {{version}}", + "item.version.create.notification.failure": "Nowa wersja nie zostaÅ‚a utworzona", + "item.version.create.notification.inProgress": "Nowa wersja nie może być utworzona, ponieważ propozycja innej wersji jest już zÅ‚ożona do zaakceptowania", + "item.version.delete.modal.header": "UsuÅ„ wersjÄ™", + "item.version.delete.modal.text": "Czy chcesz usunąć wersjÄ™ {{version}}?", + "item.version.delete.modal.button.confirm": "UsuÅ„", + "item.version.delete.modal.button.confirm.tooltip": "UsuÅ„ wersjÄ™", + "item.version.delete.modal.button.cancel": "Anuluj", + "item.version.delete.modal.button.cancel.tooltip": "Nie usuwaj tej wersji", + "item.version.delete.notification.success": "Wersja {{version}} zostaÅ‚a usuniÄ™ta", + "item.version.delete.notification.failure": "Wersja {{version}} nie zostaÅ‚a usuniÄ™ta", + "item.version.edit.notification.success": "Podsumowanie wersji {{version}} zostaÅ‚o zmienione", + "item.version.edit.notification.failure": "Podsumowanie wersji {{version}} nie zostaÅ‚o zmienione", + "journal.listelement.badge": "Czasopismo", + "journal.page.description": "Opis", + "journal.page.edit": "Edytuj tÄ™ pozycjÄ™", + "journal.page.editor": "Redaktor naczelny", + "journal.page.issn": "ISSN", + "journal.page.publisher": "Wydawca", + "journal.page.titleprefix": "Czasopismo: ", + "journal.search.results.head": "Wyniki wyszukiwania czasopism", + "journal.search.title": "Wyszukiwanie czasopism", + "journalissue.listelement.badge": "Numer czasopisma", + "journalissue.page.description": "Opis", + "journalissue.page.edit": "Edytuj pozycjÄ™", + "journalissue.page.issuedate": "Data wydania", + "journalissue.page.journal-issn": "ISSN czasopisma", + "journalissue.page.journal-title": "TytuÅ‚ czasopisma", + "journalissue.page.keyword": "SÅ‚owa kluczowe", + "journalissue.page.number": "Numer", + "journalissue.page.titleprefix": "Wydanie czasopisma: ", + "journalvolume.listelement.badge": "Numer tomu czasopisma", + "journalvolume.page.description": "Opis", + "journalvolume.page.edit": "Edytuj pozycjÄ™", + "journalvolume.page.issuedate": "Data wydania", + "journalvolume.page.titleprefix": "Numer tomu czasopisma: ", + "journalvolume.page.volume": "Numer wydania", + "iiifsearchable.listelement.badge": "Multimedia dokumentu", + "iiifsearchable.page.titleprefix": "Dokument: ", + "iiifsearchable.page.doi": "StaÅ‚y link: ", + "iiifsearchable.page.issue": "Wydanie: ", + "iiifsearchable.page.description": "Opis: ", + "iiifviewer.fullscreen.notice": "WyÅ›wietl na peÅ‚nym ekranie dla lepszego widoku.", + "iiif.listelement.badge": "Multimedia obrazu", + "iiif.page.titleprefix": "Obraz: ", + "iiif.page.doi": "StaÅ‚y link: ", + "iiif.page.issue": "Numer wydania: ", + "iiif.page.description": "Opis: ", + "loading.bitstream": "Åadowanie pliku...", + "loading.bitstreams": "Åadowanie plików...", + "loading.browse-by": "Åadowanie pozycji...", + "loading.browse-by-page": "Åadowanie strony...", + "loading.collection": "Åadowanie kolekcji...", + "loading.collections": "Åadowanie kolekcji...", + "loading.content-source": "Åadowanie źródÅ‚a treÅ›ci...", + "loading.community": "Åadowanie zbioru...", + "loading.default": "Åadowanie...", + "loading.item": "Åadowanie pozycji...", + "loading.items": "Åadowanie pozycji...", + "loading.mydspace-results": "Åadowanie pozycji...", + "loading.objects": "Åadowanie...", + "loading.recent-submissions": "Åadowanie ostatnich zgÅ‚oszeÅ„...", + "loading.search-results": "Åadowanie wyników wyszukiwania...", + "loading.sub-collections": "Åadowanie podkolekcji...", + "loading.sub-communities": "Åadowanie podzbioru...", + "loading.top-level-communities": "Åadowanie zbioru wyszego szczebla...", + "login.form.email": "Adres e-mail", + "login.form.forgot-password": "Nie pamiÄ™tasz hasÅ‚a?", + "login.form.header": "Zaloguj siÄ™ do DSpace", + "login.form.new-user": "Nie masz konta? Zarejestruj siÄ™.", + "login.form.or-divider": "lub", + "login.form.orcid": "Zaloguj za pomocÄ… ORCID", + "login.form.oidc": "Zaloguj za pomocÄ… OIDC", + "login.form.password": "HasÅ‚o", + "login.form.shibboleth": "Zaloguj za pomocÄ… Shibboleth", + "login.form.submit": "Zaloguj siÄ™", + "login.title": "Zaloguj", + "login.breadcrumbs": "Zaloguj", + "logout.form.header": "Wyloguj siÄ™ z DSpace", + "logout.form.submit": "Wyloguj siÄ™", + "logout.title": "Wylogowywanie", + "menu.header.admin": "Panel administracyjny", + "menu.header.image.logo": "Logo repozytorium", + "menu.header.admin.description": "Menu administratora", + "menu.section.access_control": "Uprawnienia", + "menu.section.access_control_authorizations": "DostÄ™py", + "menu.section.access_control_groups": "Grupy", + "menu.section.access_control_people": "Użytkownicy", + "menu.section.admin_search": "Wyszukiwanie administracyjne", + "menu.section.browse_community": "Ten zbiór", + "menu.section.browse_community_by_author": "Wg autorów", + "menu.section.browse_community_by_issue_date": "Wg daty wydania", + "menu.section.browse_community_by_title": "Wg tytułów", + "menu.section.browse_global": "Wszystko na DSpace", + "menu.section.browse_global_by_author": "Wg autorów", + "menu.section.browse_global_by_dateissued": "Wg daty wydania", + "menu.section.browse_global_by_subject": "Wg tematu", + "menu.section.browse_global_by_title": "Wg tytuÅ‚u", + "menu.section.browse_global_communities_and_collections": "Zbiory i kolekcje", + "menu.section.control_panel": "Panel sterowania", + "menu.section.curation_task": "Zadanie administracyjne", + "menu.section.edit": "Edytuj", + "menu.section.edit_collection": "Kolekcja", + "menu.section.edit_community": "Zbiór", + "menu.section.edit_item": "Pozycja", + "menu.section.export": "Eksport", + "menu.section.export_collection": "Kolekcja", + "menu.section.export_community": "Zbiór", + "menu.section.export_item": "Pozycja", + "menu.section.export_metadata": "Metadane", + "menu.section.icon.access_control": "Sekcja menu Uprawnienia", + "menu.section.icon.admin_search": "Sekcja menu Wyszukiwanie administracyjne", + "menu.section.icon.control_panel": "Sekcja menu Panel sterowania", + "menu.section.icon.curation_tasks": "Sekcja menu Zadanie administracyjne", + "menu.section.icon.edit": "Sekcja menu Edycja", + "menu.section.icon.export": "Sekcja menu Eksport", + "menu.section.icon.find": "Sekcja menu Wyszukiwanie", + "menu.section.icon.import": "Sekcja menu Import", + "menu.section.icon.new": "Sekcja menu Dodaj", + "menu.section.icon.pin": "Przypnij boczny pasek", + "menu.section.icon.processes": "Sekcja menu Procesy", + "menu.section.icon.registries": "Sekcja menu Rejestry", + "menu.section.icon.statistics_task": "Sekcja menu Zadanie statystyczne", + "menu.section.icon.workflow": "Sekcja menu ZarzÄ…dzanie workflow", + "menu.section.icon.unpin": "Odepnij boczny pasek", + "menu.section.import": "Import", + "menu.section.import_batch": "Import masowy (ZIP)", + "menu.section.import_metadata": "Metadane", + "menu.section.new": "Dodaj", + "menu.section.new_collection": "Kolekcja", + "menu.section.new_community": "Zbiór", + "menu.section.new_item": "Pozycja", + "menu.section.new_item_version": "Wersja pozycji", + "menu.section.new_process": "Proces", + "menu.section.pin": "Przypnij pasek boczny", + "menu.section.unpin": "Odepnij pasek boczny", + "menu.section.processes": "Procesy", + "menu.section.registries": "Rejestry", + "menu.section.registries_format": "Formaty", + "menu.section.registries_metadata": "Metadane", + "menu.section.statistics": "Statystyki", + "menu.section.statistics_task": "Zadanie statystyczne", + "menu.section.toggle.access_control": "PrzeÅ‚Ä…cz sekcjÄ™ Uprawnienia", + "menu.section.toggle.control_panel": "PrzeÅ‚Ä…cz sekcjÄ™ Panel sterowania", + "menu.section.toggle.curation_task": "PrzeÅ‚Ä…cz sekcjÄ™ Zadanie kuratora", + "menu.section.toggle.edit": "PrzeÅ‚Ä…cz sekcjÄ™ Edytuj", + "menu.section.toggle.export": "PrzeÅ‚Ä…cz sekcjÄ™ Eksport", + "menu.section.toggle.find": "PrzeÅ‚Ä…cz sekcjÄ™ Wyszukiwanie", + "menu.section.toggle.import": "PrzeÅ‚Ä…cz sekcjÄ™ Import", + "menu.section.toggle.new": "PrzeÅ‚Ä…cz nowÄ… sekcjÄ™", + "menu.section.toggle.registries": "PrzeÅ‚Ä…cz sekcjÄ™ Rejestry", + "menu.section.toggle.statistics_task": "PrzeÅ‚Ä…cz sekcjÄ™ Zadanie statystyczne", + "menu.section.workflow": "ZarzÄ…dzaj Workflow", + "mydspace.breadcrumbs": "Mój DSpace", + "mydspace.description": "", + "mydspace.messages.controller-help": "Wybierz tÄ™ opcjÄ™, aby przesÅ‚ać wiadomość do zgÅ‚aszajÄ…cego.", + "mydspace.messages.description-placeholder": "Wpisz swojÄ… wiadomość tutaj...", + "mydspace.messages.hide-msg": "Ukryj wiadomość", + "mydspace.messages.mark-as-read": "Oznacz jako przeczytane", + "mydspace.messages.mark-as-unread": "Oznacz jako nieprzeczytane", + "mydspace.messages.no-content": "Brak treÅ›ci.", + "mydspace.messages.no-messages": "Brak wiadomoÅ›ci.", + "mydspace.messages.send-btn": "WysÅ‚ano", + "mydspace.messages.show-msg": "Pokaż wiadomość", + "mydspace.messages.subject-placeholder": "Temat...", + "mydspace.messages.submitter-help": "Wybierz tÄ™ opcjÄ™, aby przesÅ‚ać wiadomość do osoby kontrolujÄ…cej.", + "mydspace.messages.title": "WiadomoÅ›ci", + "mydspace.messages.to": "Do", + "mydspace.new-submission": "Nowe zgÅ‚oszenie", + "mydspace.new-submission-external": "Import medatanych z zewnÄ™trznego źródÅ‚a", + "mydspace.new-submission-external-short": "Import metadanych", + "mydspace.results.head": "Twoje zadania", + "mydspace.results.no-abstract": "Brak abstraktu", + "mydspace.results.no-authors": "Brak autorów", + "mydspace.results.no-collections": "Brak kolekcji", + "mydspace.results.no-date": "Brak daty", + "mydspace.results.no-files": "Brak plików", + "mydspace.results.no-results": "Brak pozycji do wyÅ›wietlenia", + "mydspace.results.no-title": "Brak tytuÅ‚u", + "mydspace.results.no-uri": "Brak Uri", + "mydspace.search-form.placeholder": "Wyszukaj w mydspace...", + "mydspace.show.workflow": "Wszystkie zadania", + "mydspace.show.workspace": "Twoje zadania", + "mydspace.status.mydspaceArchived": "Zarchiwizowano", + "mydspace.status.mydspaceValidation": "Walidacja", + "mydspace.status.mydspaceWaitingController": "Oczekiwanie na redaktora", + "mydspace.status.mydspaceWorkflow": "Workflow", + "mydspace.status.mydspaceWorkspace": "Wersja robocza", + "mydspace.title": "Mój DSpace", + "mydspace.upload.upload-failed": "BÅ‚ad podczas tworzenia nowej wersji roboczej. Sprawdź poprawność plików i spróbuj ponownie.", + "mydspace.upload.upload-failed-manyentries": "Plik jest niemożliwy do przetworzenia. Wykryto wiele wejść, a dopuszczalne jest tylko jedno dla jednego pliku.", + "mydspace.upload.upload-failed-moreonefile": "Zapytanie niemożliwe do przetworzenia. Tylko jeden plik jest dopuszczalny.", + "mydspace.upload.upload-multiple-successful": "Utworzono {{qty}} przestrzeni roboczych.", + "mydspace.view-btn": "Widok", + "nav.browse.header": "CaÅ‚y DSpace", + "nav.community-browse.header": "Wg zbiorów", + "nav.language": "ZmieÅ„ jÄ™zyk", + "nav.login": "Zaloguj", + "nav.logout": "Menu profilu użytkownika i wylogowywanie", + "nav.main.description": "Główny pasek nawigacji", + "nav.mydspace": "Mój DSpace", + "nav.profile": "Profil", + "nav.search": "Wyszukiwanie", + "nav.statistics.header": "Statystyki", + "nav.stop-impersonating": "PrzestaÅ„ impersonifikować użytkownika", + "nav.toggle": "PrzeÅ‚Ä…cz nawigacjÄ™", + "nav.user.description": "Pasek profilu użytkownika", + "none.listelement.badge": "Pozycja", + "person.listelement.badge": "Osoba", + "person.listelement.no-title": "Nie znaleziono imienia", + "person.page.birthdate": "Data urodzenia", + "person.page.edit": "Edytuj pozycjÄ™", + "person.page.email": "Adres e-mail", + "person.page.firstname": "ImiÄ™", + "person.page.jobtitle": "Stanowisko", + "person.page.lastname": "Nazwisko", + "person.page.link.full": "Pokaż wszystkie metadane", + "person.page.orcid": "ORCID", + "person.page.orcid.create": "Utwórz ORCID ID", + "person.page.orcid.granted-authorizations": "Udzielone dostÄ™py", + "person.page.orcid.grant-authorizations": "Udziel dostÄ™pu", + "person.page.orcid.link": "PoÅ‚Ä…cz z ORCID ID", + "person.page.orcid.orcid-not-linked-message": "ORCID iD tego profilu ({{ orcid }}) nie jest poÅ‚Ä…czony z bazÄ… ORCID lub poÅ‚Ä…czenie wygasÅ‚o.", + "person.page.orcid.unlink": "Odepnij z ORCID", + "person.page.orcid.unlink.processing": "Procesowanie...", + "person.page.orcid.missing-authorizations": "Brak dostÄ™pów", + "person.page.orcid.missing-authorizations-message": "Brakuj nastÄ™pujÄ…cych dostÄ™pów:", + "person.page.orcid.no-missing-authorizations-message": "Åšwietnie! To miejsce jest puste, co oznacza, że masz dostÄ™p do wszystkich uprawnieÅ„, które sÄ… dostÄ™pne w Twojej instytucji.", + "person.page.orcid.no-orcid-message": "Brak przypisanego ORCID iD. Poprez wybranie przycisku poniżej możesz powiÄ…zać ten profil wraz z kontem ORCID.", + "person.page.orcid.profile-preferences": "Preferencje profilu", + "person.page.orcid.funding-preferences": "Preferencje finansowania", + "person.page.orcid.publications-preferences": "Preferencje publikacji", + "person.page.orcid.remove-orcid-message": "JeÅ›li chcesz usunąć Twój ORCID, skontaktuj siÄ™ z administratorem repozytorium", + "person.page.orcid.save.preference.changes": "Aktualizuj ustawienia", + "person.page.orcid.sync-profile.affiliation": "Afiliacja", + "person.page.orcid.sync-profile.biographical": "Biografia", + "person.page.orcid.sync-profile.education": "Edukacja", + "person.page.orcid.sync-profile.identifiers": "Identyfikatory", + "person.page.orcid.sync-fundings.all": "Wszystkie źrodÅ‚a finansowania", + "person.page.orcid.sync-fundings.mine": "Moje źrodÅ‚a finansowania", + "person.page.orcid.sync-fundings.my_selected": "Wybrane źródÅ‚a finansowania", + "person.page.orcid.sync-fundings.disabled": "Nieaktywne", + "person.page.orcid.sync-publications.all": "Wszystkie publikacje", + "person.page.orcid.sync-publications.mine": "Moje publikacje", + "person.page.orcid.sync-publications.my_selected": "Wybrane publikacje", + "person.page.orcid.sync-publications.disabled": "Nieaktywne", + "person.page.orcid.sync-queue.discard": "Odrzuć zmianÄ™ i nie synchronizuj z ORCID", + "person.page.orcid.sync-queue.discard.error": "Rekord kolejki ORCID nie zostaÅ‚ odrzucony", + "person.page.orcid.sync-queue.discard.success": "Rekord kolejki ORCID zostaÅ‚ odrzucony", + "person.page.orcid.sync-queue.empty-message": "Rejestr kolejki w ORCID jest pusty", + "person.page.orcid.sync-queue.description.affiliation": "Afiliacje", + "person.page.orcid.sync-queue.description.country": "Kraj", + "person.page.orcid.sync-queue.description.education": "Edukacja", + "person.page.orcid.sync-queue.description.external_ids": "ZewnÄ™trzne identyfikatory", + "person.page.orcid.sync-queue.description.other_names": "Inne imiona", + "person.page.orcid.sync-queue.description.qualification": "Kwalifikacje", + "person.page.orcid.sync-queue.description.researcher_urls": "URL naukowca", + "person.page.orcid.sync-queue.description.keywords": "SÅ‚owa kluczowe", + "person.page.orcid.sync-queue.tooltip.insert": "Dodaj nowy wpis w rejestrze ORCID", + "person.page.orcid.sync-queue.tooltip.update": "Aktualizuj ten wpis w rejestrze ORCID", + "person.page.orcid.sync-queue.tooltip.delete": "UsuÅ„ ten wpis z rejestru ORCID", + "person.page.orcid.sync-queue.tooltip.publication": "Publikacja", + "person.page.orcid.sync-queue.tooltip.affiliation": "Afiliacja", + "person.page.orcid.sync-queue.tooltip.education": "Edukacja", + "person.page.orcid.sync-queue.tooltip.qualification": "Kwalifikacje", + "person.page.orcid.sync-queue.tooltip.other_names": "Inna nazwa", + "person.page.orcid.sync-queue.tooltip.country": "Kraj", + "person.page.orcid.sync-queue.tooltip.keywords": "SÅ‚owa kluczowe", + "person.page.orcid.sync-queue.tooltip.external_ids": "ZewnÄ™trzny identyfikator", + "person.page.orcid.sync-queue.tooltip.researcher_urls": "URL naukowca", + "person.page.orcid.sync-queue.send": "Synchronizuj z rejestrem ORCID", + "person.page.orcid.sync-queue.send.unauthorized-error.title": "WysÅ‚anie zgÅ‚oszenia do ORCID nieudane z powodu braku uprawnieÅ„.", + "person.page.orcid.sync-queue.send.unauthorized-error.content": "Wybierz <a href='{{orcid}}'>here</a>, aby wystÄ…pić o niezbÄ™dne uprawnienia. JeÅ›li problem wciąż wystÄ™puje, skontaktuj siÄ™ z administratorem", + "person.page.orcid.sync-queue.send.bad-request-error": "WysÅ‚anie zgÅ‚oszenia do ORCID nie powiodÅ‚o siÄ™ ponieważ źródÅ‚a wysÅ‚ane do rejestru ORCID nie jest poprawne", + "person.page.orcid.sync-queue.send.error": "WysÅ‚anie zgÅ‚oszenia do ORCID nie powiodÅ‚o siÄ™", + "person.page.orcid.sync-queue.send.conflict-error": "ZgÅ‚oszenie do ORCID nie powiodÅ‚o siÄ™, ponieważ ta pozycja jest już dodana do rejestru ORCID", + "person.page.orcid.sync-queue.send.not-found-warning": "Pozycja nie istnieje już w rejestrze ORCID.", + "person.page.orcid.sync-queue.send.success": "ZgÅ‚oszenie do ORCID zostaÅ‚o zakoÅ„czone pomyÅ›lnie", + "person.page.orcid.sync-queue.send.validation-error": "Dane, które chcesz zsynchronizować z ORCID nie sÄ… poprawne", + "person.page.orcid.sync-queue.send.validation-error.amount-currency.required": "Waluta jest wymagana", + "person.page.orcid.sync-queue.send.validation-error.external-id.required": "Aby wysÅ‚ać pozycjÄ™, należy podać przynajmniej jeden identyfikator", + "person.page.orcid.sync-queue.send.validation-error.title.required": "TytuÅ‚ jest wymagany", + "person.page.orcid.sync-queue.send.validation-error.type.required": "Typ jest wymagany", + "person.page.orcid.sync-queue.send.validation-error.start-date.required": "Data poczÄ…tkowa jest wymagana", + "person.page.orcid.sync-queue.send.validation-error.funder.required": "Instytucja finansujÄ…ca jest wymagana", + "person.page.orcid.sync-queue.send.validation-error.organization.required": "Instytucja jest wymagana", + "person.page.orcid.sync-queue.send.validation-error.organization.name-required": "Nazwa instytucji jest wymagana", + "person.page.orcid.sync-queue.send.validation-error.organization.address-required": "Aby wysÅ‚ać instytucjÄ™, należy podać adres", + "person.page.orcid.sync-queue.send.validation-error.organization.city-required": "Aby wysÅ‚ać adres, należy podać miasto", + "person.page.orcid.sync-queue.send.validation-error.organization.country-required": "Aby wysÅ‚ać adres, należy podać kraj", + "person.page.orcid.sync-queue.send.validation-error.disambiguated-organization.required": "Wymagany jest identyfikator umożliwiajÄ…cy rozróżnienie instytucji. ObsÅ‚ugiwane identyfikatory to GRID, Ringgold, kod LEI oraz identyfikatory z rejestru instytucji finansujÄ…cych Crossref.", + "person.page.orcid.sync-queue.send.validation-error.disambiguated-organization.value-required": "Należy uzupeÅ‚nić wartość w identyfikatorze instytucji", + "person.page.orcid.sync-queue.send.validation-error.disambiguation-source.required": "Należy uzupeÅ‚nić źródÅ‚o w identyfikatorze instytucji", + "person.page.orcid.sync-queue.send.validation-error.disambiguation-source.invalid": "ŹródÅ‚o jednego z identyfikatorów organizcji jest niepoprawne. Wspierane źródÅ‚a to RINGGOLD, GRID, LEI and FUNDREF", + "person.page.orcid.synchronization-mode": "Tryb synchronizacji", + "person.page.orcid.synchronization-mode.batch": "Wsad", + "person.page.orcid.synchronization-mode.label": "Tryb synchronizacji", + "person.page.orcid.synchronization-mode-message": "WÅ‚Ä…cz tryb 'Manual' synchronizacja, aby wyÅ‚aczyć tryb synchronizacji wsadowej, wtedy dane do rejestru ORCID bÄ™dÄ… musiaÅ‚y zostać wysÅ‚ane rÄ™cznie", + "person.page.orcid.synchronization-settings-update.success": "Opcje synchronizacji zostaÅ‚y zaktualizowane", + "person.page.orcid.synchronization-settings-update.error": "Opcje synchronizacji nie zostaÅ‚y zaktualizowane", + "person.page.orcid.synchronization-mode.manual": "RÄ™czna", + "person.page.orcid.scope.authenticate": "Uzyskaj swój ORCID iD", + "person.page.orcid.scope.read-limited": "Przeczytaj informacje o ustawieniach widocznoÅ›ci z firmami trzeciami", + "person.page.orcid.scope.activities-update": "Dodaj/aktualizuj swoje aktywnoÅ›ci naukowe", + "person.page.orcid.scope.person-update": "Dodaj/aktualizuj inne informacje o Tobie", + "person.page.orcid.unlink.success": "OdÅ‚Ä…czenie Twojego profilu od rejestru ORCID powiodÅ‚o siÄ™", + "person.page.orcid.unlink.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas odÅ‚Ä…czania Twojego profilu od rejestru ORCID. Spróbuj ponownie", + "person.page.staffid": "ID pracownika", + "person.page.titleprefix": "Osoba: ", + "person.search.results.head": "Wyniki wyszukiwania użytkowników", + "person.search.title": "Wyniki wyszukiwania użytkowników", + "process.new.select-parameters": "Parametry", + "process.new.cancel": "Anuluj", + "process.new.submit": "Zapisz", + "process.new.select-script": "Skrypt", + "process.new.select-script.placeholder": "Wybierz skrypt...", + "process.new.select-script.required": "Skrypt jest wymagany", + "process.new.parameter.file.upload-button": "Wybierz plik...", + "process.new.parameter.file.required": "ProszÄ™ wybrać plik", + "process.new.parameter.string.required": "Wartość parametru jest wymagana", + "process.new.parameter.type.value": "wartość", + "process.new.parameter.type.file": "plik", + "process.new.parameter.required.missing": "Te parametry sÄ… wymagane, ale nie zostaÅ‚y uzupeÅ‚nione:", + "process.new.notification.success.title": "UdaÅ‚o siÄ™", + "process.new.notification.success.content": "UdaÅ‚o siÄ™ stworzyć proces", + "process.new.notification.error.title": "BÅ‚Ä…d", + "process.new.notification.error.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia procesu", + "process.new.header": "Utwórz nowy proces", + "process.new.title": "Utwórz nowy proces", + "process.new.breadcrumbs": "Utwórz nowy proces", + "process.detail.arguments": "Argumenty", + "process.detail.arguments.empty": "Do tego procesu nie zostaÅ‚y przypisane żadne argumenty", + "process.detail.back": "Cofnij", + "process.detail.output": "Dane wyjÅ›ciowe procesu", + "process.detail.logs.button": "Odzyskaj dane wyjÅ›ciowe procesu", + "process.detail.logs.loading": "Odzyskiwanie", + "process.detail.logs.none": "Ten proces nie ma danych wyjÅ›ciowych", + "process.detail.output-files": "Pliki", + "process.detail.output-files.empty": "Ten proces nie ma żadnych plików danych wyjÅ›ciowych", + "process.detail.script": "Skrypt", + "process.detail.title": "Proces: {{ id }} - {{ name }}", + "process.detail.start-time": "Czas rozpoczÄ™cia procesu", + "process.detail.end-time": "Czas zakoÅ„czenia procesu", + "process.detail.status": "Status", + "process.detail.create": "Stwórz podobny proces", + "process.overview.table.finish": "Czas zakoÅ„czenia (UTC)", + "process.overview.table.id": "Identyfikator procesu", + "process.overview.table.name": "Nazwa", + "process.overview.table.start": "Czas rozpoczÄ™cia (UTC)", + "process.overview.table.status": "Status", + "process.overview.table.user": "Użytkownik", + "process.overview.title": "PrzeglÄ…d procesów", + "process.overview.breadcrumbs": "PrzeglÄ…d procesów", + "process.overview.new": "Nowy", + "profile.breadcrumbs": "Zaktualizuj profil", + "profile.card.identify": "Dane", + "profile.card.security": "BezpieczeÅ„stwo", + "profile.form.submit": "Zaktualizuj profil", + "profile.groups.head": "Posiadane uprawnienia do kolekcji", + "profile.head": "Zaktualizuj profil", + "profile.metadata.form.error.firstname.required": "ImiÄ™ jest wymagane", + "profile.metadata.form.error.lastname.required": "Nazwisko jest wymagane", + "profile.metadata.form.label.email": "Adres e-mail", + "profile.metadata.form.label.firstname": "ImiÄ™", + "profile.metadata.form.label.language": "JÄ™zyk", + "profile.metadata.form.label.lastname": "Nazwisko", + "profile.metadata.form.label.phone": "Telefon kontaktowy", + "profile.metadata.form.notifications.success.content": "Zmiany w profilu zostaÅ‚y zapisane.", + "profile.metadata.form.notifications.success.title": "Profil zapisany", + "profile.notifications.warning.no-changes.content": "Nie dokonano żadnych zmian w profilu.", + "profile.notifications.warning.no-changes.title": "Brak zmian", + "profile.security.form.error.matching-passwords": "HasÅ‚a nie sÄ… identyczne.", + "profile.security.form.info": "Możesz wprowadzić nowe hasÅ‚o w polu poniżej i zatwierdzić poprzez ponowne wpisanie. HasÅ‚o musi mieć przynajmniej 6 znaków.", + "profile.security.form.label.password": "HasÅ‚o", + "profile.security.form.label.passwordrepeat": "Potwierdź hasÅ‚o", + "profile.security.form.notifications.success.content": "Twoje zmiany w haÅ›le zostaÅ‚y zapisane.", + "profile.security.form.notifications.success.title": "HasÅ‚o zapisane", + "profile.security.form.notifications.error.title": "BÅ‚Ä…d podczas próby zmiany hasÅ‚a", + "profile.security.form.notifications.error.not-same": "HasÅ‚a nie sÄ… identyczne.", + "profile.title": "Zaktualizuj profil", + "profile.card.researcher": "Profil naukowca", + "project.listelement.badge": "Projekt badawczy", + "project.page.contributor": "Autorzy", + "project.page.description": "Opis", + "project.page.edit": "Edytuj pozycjÄ™", + "project.page.expectedcompletion": "Spodziewany termin zakoÅ„czenia", + "project.page.funder": "Instytucje finansujÄ…ce", + "project.page.id": "ID", + "project.page.keyword": "SÅ‚owa kluczowe", + "project.page.status": "Status", + "project.page.titleprefix": "Projekt badawczy: ", + "project.search.results.head": "Wyniki wyszukiwania projektów", + "publication.listelement.badge": "Publikacja", + "publication.page.description": "Opis", + "publication.page.edit": "Edytuj pozycjÄ™", + "publication.page.journal-issn": "ISSN czasopisma", + "publication.page.journal-title": "TytuÅ‚ czasopisma", + "publication.page.publisher": "Wydawca", + "publication.page.titleprefix": "Publikacja: ", + "publication.page.volume-title": "TytuÅ‚ tomu", + "publication.search.results.head": "Wyniki wyszukiwania publikacji", + "publication.search.title": "Wyszukiwanie publikacji", + "media-viewer.next": "Nowy", + "media-viewer.previous": "Poprzedni", + "media-viewer.playlist": "Playlista", + "register-email.title": "Rejestracja nowego użytkownika", + "register-page.create-profile.header": "Stwórz profil", + "register-page.create-profile.identification.header": "Dane", + "register-page.create-profile.identification.email": "Adres e-mail", + "register-page.create-profile.identification.first-name": "ImiÄ™ *", + "register-page.create-profile.identification.first-name.error": "Wpisz imiÄ™", + "register-page.create-profile.identification.last-name": "Nazwisko *", + "register-page.create-profile.identification.last-name.error": "Wpisz nazwisko", + "register-page.create-profile.identification.contact": "Telefon kontaktowy", + "register-page.create-profile.identification.language": "JÄ™zyk", + "register-page.create-profile.security.header": "BezpieczeÅ„stwo", + "register-page.create-profile.security.info": "Wprowadź nowe hasÅ‚o w polu poniżej i zatwierdź poprzez ponowne wpisanie w drugim polu. HasÅ‚o musi mieć przynajmniej 6 znaków.", + "register-page.create-profile.security.label.password": "HasÅ‚o *", + "register-page.create-profile.security.label.passwordrepeat": "Potwierdź hasÅ‚o *", + "register-page.create-profile.security.error.empty-password": "Wprowadź hasÅ‚o w polu poniżej.", + "register-page.create-profile.security.error.matching-passwords": "HasÅ‚a nie sÄ… identyczne.", + "register-page.create-profile.submit": "Rejestracja zakoÅ„czona", + "register-page.create-profile.submit.error.content": "CoÅ› siÄ™ nie udaÅ‚o podczas rejestracji nowego użytkownika.", + "register-page.create-profile.submit.error.head": "Rejestracja nie powiodÅ‚a siÄ™", + "register-page.create-profile.submit.success.content": "Rejestracja powiodÅ‚a siÄ™. Zalogowano jako stworzony użytkownik.", + "register-page.create-profile.submit.success.head": "Rejestracja zakoÅ„czona", + "register-page.registration.header": "Rejestracja nowego użytkownika", + "register-page.registration.info": "Zarejestruj siÄ™, aby otrzymywać wiadomoÅ›ci o nowych pozycjach w obserowanych kolekcjach, a także przesyÅ‚ać nowe pozycje do repozytorium.", + "register-page.registration.email": "Adres e-mail *", + "register-page.registration.email.error.required": "WypeÅ‚nij adres e-mail", + "register-page.registration.email.error.pattern": "WypeÅ‚nij poprawny adres e-mail", + "register-page.registration.email.hint": "Ten adres e-mail bÄ™dzie zweryfikowany i bÄ™dziesz go używać jako swój login.", + "register-page.registration.submit": "Zarejestruj siÄ™", + "register-page.registration.success.head": "Wiadomość weryfikacyjna zostaÅ‚Ä… wysÅ‚ana", + "register-page.registration.success.content": "Wiadomość zostaÅ‚a wysÅ‚ana na adres e-mail {{ email }}. Zawiera ona unikatowy link i dalsze instrukcje postÄ™powania.", + "register-page.registration.error.head": "BÅ‚Ä…d podczas próby rejestracji adresu e-mail", + "register-page.registration.error.content": "BÅ‚Ä…d podczas próby rejestracji adresu e-mail: {{ email }}", + "relationships.add.error.relationship-type.content": "Nie znaleziono dopasowania dla typu relacji {{ type }} pomiÄ™dzy dwoma pozycjami", + "relationships.add.error.server.content": "BÅ‚Ä…d serwera", + "relationships.add.error.title": "Nie można dodać relacji", + "relationships.isAuthorOf": "Autorzy", + "relationships.isAuthorOf.Person": "Autorzy (osoby)", + "relationships.isAuthorOf.OrgUnit": "Autorzy (jednostki organizacyjne)", + "relationships.isIssueOf": "Numery czasopisma", + "relationships.isJournalIssueOf": "Numer czasopisma", + "relationships.isJournalOf": "Czasopisma", + "relationships.isOrgUnitOf": "Jednostki organizacyjne", + "relationships.isPersonOf": "Autorzy", + "relationships.isProjectOf": "Projekty badawcze", + "relationships.isPublicationOf": "Publikacje", + "relationships.isPublicationOfJournalIssue": "ArtykuÅ‚y", + "relationships.isSingleJournalOf": "Czasopismo", + "relationships.isSingleVolumeOf": "Tom czasopisma", + "relationships.isVolumeOf": "Tomy czasopisma", + "relationships.isContributorOf": "Autorzy", + "relationships.isContributorOf.OrgUnit": "Autor (Jednostka organizacyjna)", + "relationships.isContributorOf.Person": "Autor", + "relationships.isFundingAgencyOf.OrgUnit": "Instytucja finansujÄ…ca", + "repository.image.logo": "Logo repozytorium", + "repository.title.prefix": "DSpace Angular :: ", + "researcher.profile.action.processing": "Procesowanie...", + "researcher.profile.associated": "Przypisanie profilu badacza", + "researcher.profile.create.new": "Utwórz nowy", + "researcher.profile.create.success": "Profil badacza zostaÅ‚ utworzony", + "researcher.profile.create.fail": "WystÄ…piÅ‚ bÅ‚Ä…d poczas tworzenia profilu badacza.", + "researcher.profile.delete": "UsuÅ„", + "researcher.profile.expose": "Ujawnij", + "researcher.profile.hide": "Ukryj", + "researcher.profile.not.associated": "Profil badacza nie zostaÅ‚ jeszcze przypisany", + "researcher.profile.view": "Widok", + "researcher.profile.private.visibility": "PRYWATNY", + "researcher.profile.public.visibility": "PUBLICZNY", + "researcher.profile.status": "Status:", + "researcherprofile.claim.not-authorized": "Nie masz uprawnieÅ„, aby wystÄ…pić o tÄ™ pozycjÄ™. Aby otrzymać wiÄ™cej szczegółów, skontaktuj siÄ™ z administratorami.", + "researcherprofile.error.claim.body": "WystÄ…piÅ‚ bÅ‚Ä…d podczas wystÄ…pienia z proÅ›bÄ… o przypisanie profilu. Spróbuj ponownie później.", + "researcherprofile.error.claim.title": "BÅ‚Ä…d", + "researcherprofile.success.claim.body": "WystÄ…pienie z proÅ›bÄ… o przypisanie profilu udane", + "researcherprofile.success.claim.title": "Sukces", + "repository.title.prefixDSpace": "DSpace Angular ::", + "resource-policies.add.button": "Dodaj", + "resource-policies.add.for.": "Dodaj nowÄ… politykÄ™", + "resource-policies.add.for.bitstream": "Dodaj nowÄ… politykÄ™ dla plików", + "resource-policies.add.for.bundle": "Dodaj nowÄ… politykÄ™ paczek", + "resource-policies.add.for.item": "Dodaj nowÄ… politykÄ™ pozycji", + "resource-policies.add.for.community": "Dodaj nowÄ… politykÄ™ zbioru", + "resource-policies.add.for.collection": "Dodaj nowÄ… politykÄ™ kolekcji", + "resource-policies.create.page.heading": "Utwórz nowÄ… politykÄ™ zasobu dla ", + "resource-policies.create.page.failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas dodawania polityki zasobów.", + "resource-policies.create.page.success.content": "DziaÅ‚anie powiodÅ‚o siÄ™", + "resource-policies.create.page.title": "Utwórz nowÄ… politykÄ™ zasobu", + "resource-policies.delete.btn": "UsuÅ„ zaznaczone", + "resource-policies.delete.btn.title": "UsuÅ„ zaznaczone polityki zasobów", + "resource-policies.delete.failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas usuwania wybranych polityk zasobów.", + "resource-policies.delete.success.content": "DziaÅ‚anie powiodÅ‚o siÄ™", + "resource-policies.edit.page.heading": "Edytuj politykÄ™ zasobu ", + "resource-policies.edit.page.failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d poczas edytowania polityki zasobu.", + "resource-policies.edit.page.success.content": "DziaÅ‚anie udaÅ‚o siÄ™", + "resource-policies.edit.page.title": "Edytuj politykÄ™ zasobu", + "resource-policies.form.action-type.label": "Wybierz ten typ akcji", + "resource-policies.form.action-type.required": "Musisz wybrać akcjÄ™ polityki zasobu.", + "resource-policies.form.eperson-group-list.label": "Użytkownik lub grupa, która otrzyma uprawnienia.", + "resource-policies.form.eperson-group-list.select.btn": "Wybierz", + "resource-policies.form.eperson-group-list.tab.eperson": "Wyszukaj użytkownika", + "resource-policies.form.eperson-group-list.tab.group": "Wyszukaj grupÄ™", + "resource-policies.form.eperson-group-list.table.headers.action": "Akcja", + "resource-policies.form.eperson-group-list.table.headers.id": "ID", + "resource-policies.form.eperson-group-list.table.headers.name": "Nazwa", + "resource-policies.form.date.end.label": "Data zakoÅ„czenia", + "resource-policies.form.date.start.label": "Data rozpoczÄ™cia", + "resource-policies.form.description.label": "Opis", + "resource-policies.form.name.label": "Nazwa", + "resource-policies.form.policy-type.label": "Wybierz typ polityki", + "resource-policies.form.policy-type.required": "Musisz wybrać typ polityki zasobu.", + "resource-policies.table.headers.action": "Akcja", + "resource-policies.table.headers.date.end": "Data zakoÅ„czenia", + "resource-policies.table.headers.date.start": "Data rozpoczÄ™cia", + "resource-policies.table.headers.edit": "Edytuj", + "resource-policies.table.headers.edit.group": "Edytuj grupÄ™", + "resource-policies.table.headers.edit.policy": "Edytuj politykÄ™", + "resource-policies.table.headers.eperson": "Użytkownik", + "resource-policies.table.headers.group": "Grupa", + "resource-policies.table.headers.id": "ID", + "resource-policies.table.headers.name": "Nazwa", + "resource-policies.table.headers.policyType": "typ", + "resource-policies.table.headers.title.for.bitstream": "Polityki dla plików", + "resource-policies.table.headers.title.for.bundle": "Polityki dla paczek", + "resource-policies.table.headers.title.for.item": "Polityki dla pozycji", + "resource-policies.table.headers.title.for.community": "Polityki dla zbioru", + "resource-policies.table.headers.title.for.collection": "Polityki dla kolekcji", + "search.description": "", + "search.switch-configuration.title": "Pokaż", + "search.title": "Szukaj", + "search.breadcrumbs": "Szukaj", + "search.search-form.placeholder": "Szukaj w repozytorium...", + "search.filters.applied.f.author": "Autor", + "search.filters.applied.f.dateIssued.max": "Data zakoÅ„czenia", + "search.filters.applied.f.dateIssued.min": "Data rozpoczÄ™cia", + "search.filters.applied.f.dateSubmitted": "Data zgÅ‚oszenia", + "search.filters.applied.f.discoverable": "Ukryty", + "search.filters.applied.f.entityType": "Typ pozycji", + "search.filters.applied.f.has_content_in_original_bundle": "Ma przypisane pliki", + "search.filters.applied.f.itemtype": "Typ", + "search.filters.applied.f.namedresourcetype": "Status", + "search.filters.applied.f.subject": "Temat", + "search.filters.applied.f.submitter": "ZgÅ‚aszajÄ…cy", + "search.filters.applied.f.jobTitle": "Stanowisko", + "search.filters.applied.f.birthDate.max": "Data zakoÅ„czenia tworzenia", + "search.filters.applied.f.birthDate.min": "Data rozpoczÄ™cia tworzenia", + "search.filters.applied.f.withdrawn": "Wycofane", + "search.filters.filter.author.head": "Autor", + "search.filters.filter.author.placeholder": "Autor", + "search.filters.filter.author.label": "Wyszukaj autora", + "search.filters.filter.birthDate.head": "Data urodzenia", + "search.filters.filter.birthDate.placeholder": "Data urodzenia", + "search.filters.filter.birthDate.label": "Wyszukaj datÄ™ urodzenia", + "search.filters.filter.collapse": "Ukryj filtr", + "search.filters.filter.creativeDatePublished.head": "Data opublikowania", + "search.filters.filter.creativeDatePublished.placeholder": "Data opublikowania", + "search.filters.filter.creativeDatePublished.label": "Wyszukaj datÄ™ opublikowania", + "search.filters.filter.creativeWorkEditor.head": "Redaktor", + "search.filters.filter.creativeWorkEditor.placeholder": "Redaktor", + "search.filters.filter.creativeWorkEditor.label": "Wyszukaj redaktora", + "search.filters.filter.creativeWorkKeywords.head": "SÅ‚owo kluczowe", + "search.filters.filter.creativeWorkKeywords.placeholder": "SÅ‚owo kluczowe", + "search.filters.filter.creativeWorkKeywords.label": "Wyszukaj temat", + "search.filters.filter.creativeWorkPublisher.head": "Wydawca", + "search.filters.filter.creativeWorkPublisher.placeholder": "Wydawca", + "search.filters.filter.creativeWorkPublisher.label": "Wyszukaj wydawcÄ™", + "search.filters.filter.dateIssued.head": "Data", + "search.filters.filter.dateIssued.max.placeholder": "Data maksymalna", + "search.filters.filter.dateIssued.max.label": "Koniec", + "search.filters.filter.dateIssued.min.placeholder": "Data minimalna", + "search.filters.filter.dateIssued.min.label": "Start", + "search.filters.filter.dateSubmitted.head": "Data zgÅ‚oszenia", + "search.filters.filter.dateSubmitted.placeholder": "Data zgÅ‚oszenia", + "search.filters.filter.dateSubmitted.label": "Wyszukaj datÄ™ zgÅ‚oszenia", + "search.filters.filter.discoverable.head": "Ukryty", + "search.filters.filter.withdrawn.head": "Wycofane", + "search.filters.filter.entityType.head": "Typ pozycji", + "search.filters.filter.entityType.placeholder": "Typ pozycji", + "search.filters.filter.entityType.label": "Wyszukaj typ pozycji", + "search.filters.filter.expand": "RozwiÅ„ filtr", + "search.filters.filter.has_content_in_original_bundle.head": "Ma przypisane pliki", + "search.filters.filter.itemtype.head": "Typ", + "search.filters.filter.itemtype.placeholder": "Typ", + "search.filters.filter.itemtype.label": "Wyszukaj typ", + "search.filters.filter.jobTitle.head": "Stanowisko", + "search.filters.filter.jobTitle.placeholder": "Stanowisko", + "search.filters.filter.jobTitle.label": "Wyszukaj stanowisko", + "search.filters.filter.knowsLanguage.head": "Znajomość jÄ™zyka", + "search.filters.filter.knowsLanguage.placeholder": "Znajomość jÄ™zyka", + "search.filters.filter.knowsLanguage.label": "Wyszukaj wg znajomoÅ›ci jÄ™zyka", + "search.filters.filter.namedresourcetype.head": "Status", + "search.filters.filter.namedresourcetype.placeholder": "Status", + "search.filters.filter.namedresourcetype.label": "Wyszukaj status", + "search.filters.filter.objectpeople.head": "Osoby", + "search.filters.filter.objectpeople.placeholder": "Osoby", + "search.filters.filter.objectpeople.label": "Wyszukaj użytkowników", + "search.filters.filter.organizationAddressCountry.head": "Kraj", + "search.filters.filter.organizationAddressCountry.placeholder": "Kraj", + "search.filters.filter.organizationAddressCountry.label": "Wyszukaj kraj", + "search.filters.filter.organizationAddressLocality.head": "Miasto", + "search.filters.filter.organizationAddressLocality.placeholder": "Miasto", + "search.filters.filter.organizationAddressLocality.label": "Wyszukaj miasto", + "search.filters.filter.organizationFoundingDate.head": "Data zaÅ‚ożenia", + "search.filters.filter.organizationFoundingDate.placeholder": "Data zaÅ‚ożenia", + "search.filters.filter.organizationFoundingDate.label": "Wyszukaj datÄ™ zaÅ‚ożenia", + "search.filters.filter.scope.head": "Zakres", + "search.filters.filter.scope.placeholder": "Filtr zakresu", + "search.filters.filter.scope.label": "Wyszukaj filtr zakresu", + "search.filters.filter.show-less": "Pokaż mniej", + "search.filters.filter.show-more": "Pokaż wiÄ™cej", + "search.filters.filter.subject.head": "Temat", + "search.filters.filter.subject.placeholder": "Temat", + "search.filters.filter.subject.label": "Wyszukaj temat", + "search.filters.filter.submitter.head": "ZgÅ‚aszajÄ…cy", + "search.filters.filter.submitter.placeholder": "ZgÅ‚aszajÄ…cy", + "search.filters.filter.submitter.label": "Wyszukaj zgÅ‚aszajÄ…cego", + "search.filters.entityType.JournalIssue": "Numer czasopisma", + "search.filters.entityType.JournalVolume": "Tom czasopisma", + "search.filters.entityType.OrgUnit": "Jednostka organizacyjna", + "search.filters.has_content_in_original_bundle.true": "Tak", + "search.filters.has_content_in_original_bundle.false": "Nie", + "search.filters.discoverable.true": "Nie", + "search.filters.discoverable.false": "Tak", + "search.filters.withdrawn.true": "Tak", + "search.filters.withdrawn.false": "Nie", + "search.filters.head": "Filtry", + "search.filters.reset": "Resetuj filtry", + "search.filters.search.submit": "Zastosuj", + "search.form.search": "Wyszukaj", + "search.form.search_dspace": "W repozytorium", + "search.form.scope.all": "W caÅ‚ym DSpace", + "search.results.head": "Wyniki wyszukiwania", + "default.search.results.head": "Wyniki wyszukiwania", + "search.results.no-results": "Twoj wyszukiwanie nie zwróciÅ‚o żadnych rezultatów. Masz problem ze znalezieniem tego czego szukasz? Spróbuj użyć", + "search.results.no-results-link": "fraz podobnych do Twojego wyszukiwania", + "search.results.empty": "Twoje wyszukiwanie nie zwróciÅ‚o żadnych rezultatów.", + "search.sidebar.close": "Wróć do wyników wyszukiwania", + "search.sidebar.filters.title": "Filtry", + "search.sidebar.open": "NarzÄ™dzia wyszukiwania", + "search.sidebar.results": "wyniki", + "search.sidebar.settings.rpp": "Wyników na stronie", + "search.sidebar.settings.sort-by": "Sortuj wedÅ‚ug", + "search.sidebar.settings.title": "Ustawienia", + "search.view-switch.show-detail": "WyÅ›wietl widok szczegółowy", + "search.view-switch.show-grid": "WyÅ›wietl jako siatkÄ™", + "search.view-switch.show-list": "WyÅ›wietl jako listÄ™", + "sorting.ASC": "RosnÄ…co", + "sorting.DESC": "MalejÄ…co", + "sorting.dc.title.ASC": "TytuÅ‚ami rosnÄ…co", + "sorting.dc.title.DESC": "TytuÅ‚ami malejÄ…co", + "sorting.score.ASC": "Najmniej trafne", + "sorting.score.DESC": "Najbardziej trafne", + "sorting.dc.date.issued.ASC": "Data wydania rosnÄ…co", + "sorting.dc.date.issued.DESC": "Data wydania malejÄ…co", + "sorting.dc.date.accessioned.ASC": "Data dostÄ™pu rosnÄ…co", + "sorting.dc.date.accessioned.DESC": "Data dostÄ™pu malejÄ…co", + "sorting.lastModified.ASC": "Ostatnia modyfikacja rosnÄ…co", + "sorting.lastModified.DESC": "Ostatnia modyfikacja malejÄ…co", + "statistics.title": "Statystyki", + "statistics.header": "Statystyki dla {{ scope }}", + "statistics.breadcrumbs": "Statystyki", + "statistics.page.no-data": "Brak dostÄ™pnych danych", + "statistics.table.no-data": "Brak dostÄ™pnych danych", + "statistics.table.header.views": "WyÅ›wietlenia", + "submission.edit.breadcrumbs": "Edytuj zgÅ‚oszenie", + "submission.edit.title": "Edytuj zgÅ‚oszenie", + "submission.general.cancel": "Anuluj", + "submission.general.cannot_submit": "Nie masz uprawnieÅ„, aby utworzyć nowe zgÅ‚oszenie.", + "submission.general.deposit": "Deponuj", + "submission.general.discard.confirm.cancel": "Anuluj", + "submission.general.discard.confirm.info": "Czy na pewno? To dziaÅ‚anie nie może zostać cofniÄ™te.", + "submission.general.discard.confirm.submit": "Tak, na pewno", + "submission.general.discard.confirm.title": "Odrzuć zgÅ‚oszenie", + "submission.general.discard.submit": "Odrzuć", + "submission.general.info.saved": "Zapisane", + "submission.general.info.pending-changes": "Niezapisane zmiany", + "submission.general.save": "Zapisz", + "submission.general.save-later": "Zapisz wersjÄ™ roboczÄ…", + "submission.import-external.page.title": "Importuj metdane z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title": "Importuj metadane z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title.Journal": "Importuj czasopismo z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title.JournalIssue": "Importuj numer czasopisma z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title.JournalVolume": "Importuj tom czasopisma z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title.OrgUnit": "Importuj wydawcÄ™ z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title.Person": "Importuj osobÄ™ z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title.Project": "Importuj projekt z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title.Publication": "Importuj publikacjÄ™ z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title.none": "Importuj metadane z zewnÄ™trznego źródÅ‚a", + "submission.import-external.page.hint": "Enter a query above to find items from the web to import in to DSpace.", + "submission.import-external.back-to-my-dspace": "Powrót do MyDSpace", + "submission.import-external.search.placeholder": "Wyszukaj zewnÄ™trzne źródÅ‚a danych", + "submission.import-external.search.button": "Szukaj", + "submission.import-external.search.button.hint": "Zacznij wpisywać frazÄ™, aby wyszukać", + "submission.import-external.search.source.hint": "Wybierz zewnÄ™trzne źródÅ‚o", + "submission.import-external.source.ads": "NASA/ADS", + "submission.import-external.source.arxiv": "arXiv", + "submission.import-external.source.cinii": "CiNii", + "submission.import-external.source.crossref": "CrossRef", + "submission.import-external.source.loading": "Å‚adowanie...", + "submission.import-external.source.sherpaJournal": "Czasopisma w SHERPA", + "submission.import-external.source.sherpaJournalIssn": "Czasopisma w SHERPA wg ISSN", + "submission.import-external.source.sherpaPublisher": "Wydawcy w SHERPA", + "submission.import-external.source.openAIREFunding": "Finansowanie OpenAIRE API", + "submission.import-external.source.orcid": "ORCID", + "submission.import-external.source.orcidWorks": "ORCID", + "submission.import-external.source.pubmed": "Pubmed", + "submission.import-external.source.pubmedeu": "Pubmed Europe", + "submission.import-external.source.lcname": "Nazwy Biblioteki Kongresu", + "submission.import-external.source.scielo": "SciELO", + "submission.import-external.source.scopus": "Scopus", + "submission.import-external.source.vufind": "VuFind", + "submission.import-external.source.wos": "Web Of Science", + "submission.import-external.source.epo": "Europejski UrzÄ…d Patentowy (EPO)", + "submission.import-external.preview.title.Journal": "PodglÄ…d czasopisma", + "submission.import-external.preview.title.OrgUnit": "PodglÄ…d organizacji", + "submission.import-external.preview.title.Person": "PodglÄ…d osoby", + "submission.import-external.preview.title.Project": "PodglÄ…d projektu", + "submission.import-external.preview.title.Publication": "PodglÄ…d publikacji", + "submission.import-external.preview.subtitle": "Metadane poniżej zostaÅ‚y zaimportowane z zewnÄ™trznego źródÅ‚a. Niektóre pola zostanÄ… uzupeÅ‚nione automatycznie, kiedy rozpoczniesz zgÅ‚aszanie pozycji.", + "submission.import-external.preview.button.import": "Rozpocznij zgÅ‚oszenie", + "submission.import-external.preview.error.import.title": "BÅ‚Ä…d zgÅ‚oszenia", + "submission.import-external.preview.error.import.body": "WystÄ…piÅ‚ bÅ‚Ä…d podczas procesu importowania pozycji z zewnÄ™trznego źródÅ‚a.", + "submission.sections.describe.relationship-lookup.close": "Zamknij", + "submission.sections.describe.relationship-lookup.external-source.added": "UdaÅ‚o siÄ™ dodać wpis do selekcji", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.isAuthorOfPublication": "Importuj zdalnego autora", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal": "Importuj zdalne czasopismo", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Issue": "Importuj zdalny numer czasopisma", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Volume": "Importuj zdalny tom czasopisma", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.isProjectOfPublication": "Projekt", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.added.new-entity": "Nowy typ danych dodany!", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.title": "Projekt", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.openAIREFunding": "Finansowanie OpenAIRE API", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.title": "Importuj zdalnego autora", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Person": "Importuj zdalnÄ… osobÄ™", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Product": "Importuj zdalny produkt", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Equipment": "Importuj zdalnÄ… aparaturÄ™ badawczÄ…", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Event": "Importuj zdalne wydarzenie", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Funding": "Importuj zdalnÄ… instytucjÄ™ finansujÄ…cÄ…", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.OrgUnit": "Importuj zdalnego wydawcÄ™", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Patent": "Importuj zdalnie patent", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Project": "Importuj zdalnie projekt", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Publication": "Importuj zdalnie publikacjÄ™", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.added.local-entity": "UdaÅ‚o siÄ™ dodać autora do selekcji", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.added.new-entity": "UdaÅ‚o siÄ™ zaimportować i dodać zewnÄ™trznego autora do selekcji", + "submission.sections.describe.relationship-lookup.external-source.import-modal.authority": "NadrzÄ™dność", + "submission.sections.describe.relationship-lookup.external-source.import-modal.authority.new": "Importuj jako nowÄ…, lokalnÄ…, nadrzÄ™dnÄ… pozycjÄ™", + "submission.sections.describe.relationship-lookup.external-source.import-modal.cancel": "Anuluj", + "submission.sections.describe.relationship-lookup.external-source.import-modal.collection": "Wybierz kolekcjÄ™ do zaimportowania nowych pozycji", + "submission.sections.describe.relationship-lookup.external-source.import-modal.entities": "Typ danych", + "submission.sections.describe.relationship-lookup.external-source.import-modal.entities.new": "Importuj jako nowy lokalny typ danych", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.lcname": "Importuj z LC Name", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.orcid": "Importuj z ORCID", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaJournal": "Importuj z Sherpa Journal", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaPublisher": "Importuj z Sherpa Publisher", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.pubmed": "Importuj z PubMed", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.arxiv": "Importuj z arXiv", + "submission.sections.describe.relationship-lookup.external-source.import-modal.import": "Import", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.title": "Importuj zdalne czasopismo", + "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.new-entity": "Successfully imported and added external journal to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.title": "Importuj zdalny numer czasopisma", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.local-entity": "UdaÅ‚o siÄ™ dodać lokalne czasopismo do zaznaczenia", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.new-entity": "UdaÅ‚o siÄ™ zaimportować i dodać czasopismo zewnÄ™trzne do zaznaczenia", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.title": "Importuj zdalny numer czasopisma", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.local-entity": "UdaÅ‚o siÄ™ dodać lokalny numer czasopismo do zaznaczenia", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.new-entity": "UdaÅ‚o siÄ™ zaimportować i dodać zewnÄ™trzny numer czasopisma do zaznaczenia", + "submission.sections.describe.relationship-lookup.external-source.import-modal.select": "Wybierz lokalne powiÄ…zanie:", + "submission.sections.describe.relationship-lookup.search-tab.deselect-all": "Odznacz wszystko", + "submission.sections.describe.relationship-lookup.search-tab.deselect-page": "Odznacz stronÄ™", + "submission.sections.describe.relationship-lookup.search-tab.loading": "Åadowanie...", + "submission.sections.describe.relationship-lookup.search-tab.placeholder": "Wyszukaj zapytanie", + "submission.sections.describe.relationship-lookup.search-tab.search": "Zastosuj", + "submission.sections.describe.relationship-lookup.search-tab.search-form.placeholder": "Wyszukaj...", + "submission.sections.describe.relationship-lookup.search-tab.select-all": "Zaznacz wszystko", + "submission.sections.describe.relationship-lookup.search-tab.select-page": "Zaznacz stronÄ™", + "submission.sections.describe.relationship-lookup.selected": "Zaznacz {{ size }} pozycji", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isAuthorOfPublication": "Autorzy lokalni ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalOfPublication": "Czasopisma lokalne ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Project": "Projekty lokalne ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Publication": "Publikacje lokalne ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Person": "Autorzy lokalni ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.OrgUnit": "Lokalne jednostki organizacyjne ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.DataPackage": "Lokalne paczki danych ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.DataFile": "Lokalne pliki danych ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Journal": "Lokalne czasopisma ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalIssueOfPublication": "Lokalne numery czasopism ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.JournalIssue": "Lokalne numery czasopism ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalVolumeOfPublication": "Lokalne tomy czasopism ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.JournalVolume": "Lokalne tomy czasopism ({{ 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.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.pubmed": "PubMed ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.arxiv": "arXiv ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfPublication": "Wyszukaj instytucje finansujÄ…ce", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingOfPublication": "Wyszukaj finansowanie", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isChildOrgUnitOf": "Wyszukaj jednostki organizacyjne", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.openAIREFunding": "Finansowanie OpenAIRE API", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isProjectOfPublication": "Projekty", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfProject": "Instytucja finansujÄ…ca projekt", + "submission.sections.describe.relationship-lookup.selection-tab.title.openAIREFunding": "Finansowanie OpenAIRE API", + "submission.sections.describe.relationship-lookup.selection-tab.title.isProjectOfPublication": "Projekt", + "submission.sections.describe.relationship-lookup.title.isProjectOfPublication": "Projekty", + "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfProject": "Instytucja finansujÄ…ca projekt", + "submission.sections.describe.relationship-lookup.selection-tab.search-form.placeholder": "Wyszukaj...", + "submission.sections.describe.relationship-lookup.selection-tab.tab-title": "Aktualne zaznaczenie ({{ count }})", + "submission.sections.describe.relationship-lookup.title.isJournalIssueOfPublication": "Numery czasopisma", + "submission.sections.describe.relationship-lookup.title.JournalIssue": "Numery czasopisma", + "submission.sections.describe.relationship-lookup.title.isJournalVolumeOfPublication": "Tomy czasopisma", + "submission.sections.describe.relationship-lookup.title.JournalVolume": "Tomy czasopisma", + "submission.sections.describe.relationship-lookup.title.isJournalOfPublication": "Czasopisma", + "submission.sections.describe.relationship-lookup.title.isAuthorOfPublication": "Autorzy", + "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfPublication": "Instytucja finansujÄ…ca", + "submission.sections.describe.relationship-lookup.title.Project": "Projekty", + "submission.sections.describe.relationship-lookup.title.Publication": "Publikacje", + "submission.sections.describe.relationship-lookup.title.Person": "Autorzy", + "submission.sections.describe.relationship-lookup.title.OrgUnit": "Jednostki organizacyjne", + "submission.sections.describe.relationship-lookup.title.DataPackage": "Paczki danych", + "submission.sections.describe.relationship-lookup.title.DataFile": "Pliki danych", + "submission.sections.describe.relationship-lookup.title.Funding Agency": "Instytucja finansujÄ…ca", + "submission.sections.describe.relationship-lookup.title.isFundingOfPublication": "Finansowanie", + "submission.sections.describe.relationship-lookup.title.isChildOrgUnitOf": "NadrzÄ™dna jednostka organizacyjna", + "submission.sections.describe.relationship-lookup.search-tab.toggle-dropdown": "PrzeÅ‚Ä…cz na listÄ™ rozwijanÄ…", + "submission.sections.describe.relationship-lookup.selection-tab.settings": "Ustawienia", + "submission.sections.describe.relationship-lookup.selection-tab.no-selection": "Twoje zaznaczenie jest puste.", + "submission.sections.describe.relationship-lookup.selection-tab.title.isAuthorOfPublication": "Wybrani autorzy", + "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalOfPublication": "Wybrane czasopisma", + "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalVolumeOfPublication": "Wybrane tomy czasopisma", + "submission.sections.describe.relationship-lookup.selection-tab.title.Project": "Wybrane projekty", + "submission.sections.describe.relationship-lookup.selection-tab.title.Publication": "Wybrane publikacje", + "submission.sections.describe.relationship-lookup.selection-tab.title.Person": "Wybrani autorzy", + "submission.sections.describe.relationship-lookup.selection-tab.title.OrgUnit": "Wybrane jednostki organizacyjne", + "submission.sections.describe.relationship-lookup.selection-tab.title.DataPackage": "Wybrane pakiety danych", + "submission.sections.describe.relationship-lookup.selection-tab.title.DataFile": "Wybrane pliki danych", + "submission.sections.describe.relationship-lookup.selection-tab.title.Journal": "Wybrane czasopisma", + "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalIssueOfPublication": "Wybrany numer wydania", + "submission.sections.describe.relationship-lookup.selection-tab.title.JournalVolume": "Wybrany tom czasopisma", + "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingAgencyOfPublication": "Wybrane instytucje finansujÄ…ce", + "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingOfPublication": "Wybrane finansowanie", + "submission.sections.describe.relationship-lookup.selection-tab.title.JournalIssue": "Wybrany numer wydania", + "submission.sections.describe.relationship-lookup.selection-tab.title.isChildOrgUnitOf": "Wybrana jednostka organizacyjna", + "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaJournal": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.crossref": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaPublisher": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.orcid": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.orcidv2": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.lcname": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.pubmed": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.arxiv": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.epo": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.scopus": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.scielo": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.wos": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.name-variant.notification.content": "Czy chcesz zapisać \"{{ value }}\" jako wariant imienia dla tego użytkownika, aby Ty lub inni użytkownicy mogli używać tego wariantu w przyszÅ‚ych zgÅ‚oszeniach?. JeÅ›li nie, nadal możesz użyć tego wariantu w tym zgÅ‚oszeniu.", + "submission.sections.describe.relationship-lookup.name-variant.notification.confirm": "Zapisz nowy wariant imienia", + "submission.sections.describe.relationship-lookup.name-variant.notification.decline": "Użyj tylko w tym zgÅ‚oszeniu", + "submission.sections.ccLicense.type": "Typ licencji", + "submission.sections.ccLicense.select": "Wybierz typ licencji…", + "submission.sections.ccLicense.change": "ZmieÅ„ typ licencji…", + "submission.sections.ccLicense.none": "Brak dostÄ™pnych licencji", + "submission.sections.ccLicense.option.select": "Wybierz opcję…", + "submission.sections.ccLicense.link": "Wybrano licencjÄ™:", + "submission.sections.ccLicense.confirmation": "Udzielam powyższej licencji", + "submission.sections.general.add-more": "Dodaj wiÄ™cej", + "submission.sections.general.collection": "Kolekcja", + "submission.sections.general.deposit_error_notice": "WystÄ…piÅ‚ bÅ‚Ä…d podczas zgÅ‚aszania pozycji. Spróbuj ponownie później.", + "submission.sections.general.deposit_success_notice": "UdaÅ‚o siÄ™ wprowadzić pozycjÄ™.", + "submission.sections.general.discard_error_notice": "WystÄ…piÅ‚ bÅ‚Ä…d podczas odrzucania pozycji. Spróbuj ponownie później.", + "submission.sections.general.discard_success_notice": "UdaÅ‚o siÄ™ odrzucić pozycjÄ™.", + "submission.sections.general.metadata-extracted": "Nowe metadane zostany rozpakowane i dodane do sekcji <strong>{{sectionId}}</strong>.", + "submission.sections.general.metadata-extracted-new-section": "Nowa sekcja <strong>{{sectionId}}</strong> zostaÅ‚a dodana do zgÅ‚oszenia.", + "submission.sections.general.no-collection": "Nie znaleziono kolekcji", + "submission.sections.general.no-sections": "Opcje niedostÄ™pne", + "submission.sections.general.save_error_notice": "WystÄ…piÅ‚ bÅ‚Ä…d podczas zapisywania numeru. Spróbuj ponownie później. Po odÅ›wieżeniu strony niezapisane zmiany mogÄ… zostać utracone.", + "submission.sections.general.save_success_notice": "UdaÅ‚o siÄ™ zapisać zgÅ‚oszenie.", + "submission.sections.general.search-collection": "Szukaj kolekcji", + "submission.sections.general.sections_not_valid": "Niektóre sekcje sÄ… niekompletne.", + "submission.sections.submit.progressbar.CClicense": "Licencja Creative Commons", + "submission.sections.submit.progressbar.describe.recycle": "Odzyskaj", + "submission.sections.submit.progressbar.describe.stepcustom": "Opisz", + "submission.sections.submit.progressbar.describe.stepone": "Opisz", + "submission.sections.submit.progressbar.describe.steptwo": "Opisz", + "submission.sections.submit.progressbar.detect-duplicate": "Potencjalne duplikaty", + "submission.sections.submit.progressbar.license": "Zdeponuj licencjÄ™", + "submission.sections.submit.progressbar.upload": "PrzeÅ›lij pliki", + "submission.sections.status.errors.title": "BÅ‚Ä™dy", + "submission.sections.status.valid.title": "Poprawność", + "submission.sections.status.warnings.title": "Ostrzeżenia", + "submission.sections.status.errors.aria": "ma bÅ‚Ä™dy", + "submission.sections.status.valid.aria": "jest poprawne", + "submission.sections.status.warnings.aria": "ma ostrzeżenia", + "submission.sections.toggle.open": "Otwórz sekcjÄ™", + "submission.sections.toggle.close": "Zamknij sekcjÄ™", + "submission.sections.toggle.aria.open": "RozwiÅ„ sekcjÄ™ {{sectionHeader}}", + "submission.sections.toggle.aria.close": "ZwiÅ„ sekcjÄ™ {{sectionHeader}}", + "submission.sections.upload.delete.confirm.cancel": "Anuluj", + "submission.sections.upload.delete.confirm.info": "Czy na pewno? To dziaÅ‚anie nie może zostać cofniÄ™te.", + "submission.sections.upload.delete.confirm.submit": "Tak, na pewno", + "submission.sections.upload.delete.confirm.title": "UsuÅ„ plik", + "submission.sections.upload.delete.submit": "UsuÅ„", + "submission.sections.upload.download.title": "Pobierz plik", + "submission.sections.upload.drop-message": "Upuść pliki, aby zaÅ‚Ä…czyć je do tej pozycji", + "submission.sections.upload.edit.title": "Edytuj plik", + "submission.sections.upload.form.access-condition-label": "Typ dostÄ™pu", + "submission.sections.upload.form.date-required": "Data jest wymagana.", + "submission.sections.upload.form.date-required-from": "Data przyznania dostÄ™pu od jest wymagana.", + "submission.sections.upload.form.date-required-until": "Data przyznania dostÄ™pu do jest wymagana.", + "submission.sections.upload.form.from-label": "Pozwól na dostÄ™p od", + "submission.sections.upload.form.from-placeholder": "Od", + "submission.sections.upload.form.group-label": "Grupa", + "submission.sections.upload.form.group-required": "Grupa jest wymagana", + "submission.sections.upload.form.until-label": "Pozwól na dostÄ™p do", + "submission.sections.upload.form.until-placeholder": "Do", + "submission.sections.upload.header.policy.default.nolist": "Pliki wgrane do kolekcji {{collectionName}} bÄ™dÄ… dostÄ™pne dla poniższych grup:", + "submission.sections.upload.header.policy.default.withlist": "Zwróć uwagÄ™ na to, że pliki w kolekcji {{collectionName}} bÄ™dÄ… dostÄ™pne dla poniższych grup, z wyjÄ…tkiem tych, które zostaÅ‚y wyÅ‚Ä…czone z dostÄ™pu:", + "submission.sections.upload.info": "Tutaj znajdujÄ… siÄ™ wszystkie pliki dodane w tym momencie do pozycji. Możesz zaktualizować metadane pliku i warunki dostÄ™pu lub <strong>przesÅ‚ać dodatkowe pliki, przeciÄ…gajÄ…c i opuszczajÄ…c je gdziekolwiek na tej stronie</strong>", + "submission.sections.upload.no-entry": "Nie", + "submission.sections.upload.no-file-uploaded": "Pliki nie zostaÅ‚y jeszcze wgrane.", + "submission.sections.upload.save-metadata": "Zapisz metadane", + "submission.sections.upload.undo": "Anuluj", + "submission.sections.upload.upload-failed": "PrzesyÅ‚anie nieudane", + "submission.sections.upload.upload-successful": "PrzesyÅ‚anie udane", + "submission.submit.breadcrumbs": "Nowe zgÅ‚oszenie", + "submission.submit.title": "Nowe zgÅ‚oszenie", + "submission.workflow.generic.delete": "UsuÅ„", + "submission.workflow.generic.delete-help": "JeÅ›li chcesz odrzucić tÄ™ pozycjÄ™, wybierz \"Delete\". BÄ™dzie wymagane potwierdzenie tej decyzji.", + "submission.workflow.generic.edit": "Edytuj", + "submission.workflow.generic.edit-help": "Wybierz tÄ™ opcjÄ™, aby zmienić metadane pozycji.", + "submission.workflow.generic.view": "PodglÄ…d", + "submission.workflow.generic.view-help": "Wybierz tÄ™ opcjÄ™, aby wyÅ›wietlić metadane pozycji.", + "submission.workflow.tasks.claimed.approve": "Zatwierdź", + "submission.workflow.tasks.claimed.approve_help": "JeÅ›li ta pozycja ma zostać zatwierdzona i wprowadzona do kolekcji, wybierz \"Approve\".", + "submission.workflow.tasks.claimed.edit": "Edytuj", + "submission.workflow.tasks.claimed.edit_help": "Wybierz tÄ™ opcjÄ™, aby zmienić metadane pozycji.", + "submission.workflow.tasks.claimed.reject.reason.info": "ProszÄ™ wpisać powód odrzucenia zgÅ‚oszenia w poniższe pole, wskazujÄ…c, czy zgÅ‚aszajÄ…cy może poprawić problem i ponownie przesÅ‚ać zgÅ‚oszenie.", + "submission.workflow.tasks.claimed.reject.reason.placeholder": "Opisz powód odrzucenia zgÅ‚oszenia", + "submission.workflow.tasks.claimed.reject.reason.submit": "Odrzuć pozycjÄ™", + "submission.workflow.tasks.claimed.reject.reason.title": "Powód", + "submission.workflow.tasks.claimed.reject.submit": "Odrzuć", + "submission.workflow.tasks.claimed.reject_help": "JeÅ›li po przejrzeniu pozycji stwierdzono, że nie nadaje siÄ™ ona do wÅ‚Ä…czenia do kolekcji, wybierz opcjÄ™ \"Reject\". Zostaniesz wtedy poproszony o okreÅ›lenie powodu odrzucenia, i wskazanie czy zgÅ‚aszajÄ…cy powinien wprowadzić zmiany i przesÅ‚ać ponownie pozycjÄ™.", + "submission.workflow.tasks.claimed.return": "Cofnij do puli zadaÅ„", + "submission.workflow.tasks.claimed.return_help": "Cofnij zadanie do puli, aby inny użytkownik mógÅ‚ siÄ™ go podjąć.", + "submission.workflow.tasks.generic.error": "Podczas dziaÅ‚ania wystÄ…piÅ‚ bÅ‚Ä…d...", + "submission.workflow.tasks.generic.processing": "Procesowanie...", + "submission.workflow.tasks.generic.submitter": "ZgÅ‚aszajÄ…cy", + "submission.workflow.tasks.generic.success": "UdaÅ‚o siÄ™", + "submission.workflow.tasks.pool.claim": "Podejmij pracÄ™", + "submission.workflow.tasks.pool.claim_help": "Przypisz to zadanie do siebie.", + "submission.workflow.tasks.pool.hide-detail": "Ukryj szczegóły", + "submission.workflow.tasks.pool.show-detail": "Pokaż szczegóły", + "thumbnail.default.alt": "Miniatura", + "thumbnail.default.placeholder": "Brak miniatury", + "thumbnail.project.alt": "Logo projektu", + "thumbnail.project.placeholder": "Obraz zastÄ™pczy projketu", + "thumbnail.orgunit.alt": "Logo jednostki organizacyjnej", + "thumbnail.orgunit.placeholder": "Obraz zastÄ™pczy jednostki organizacyjnej", + "thumbnail.person.alt": "ZdjÄ™cie profilowe", + "thumbnail.person.placeholder": "Brak zdjÄ™cia profilowego", + "title": "DSpace", + "vocabulary-treeview.header": "Widok drzewka", + "vocabulary-treeview.load-more": "Pokaż wiÄ™cej", + "vocabulary-treeview.search.form.reset": "Resetuj", + "vocabulary-treeview.search.form.search": "Szukaj", + "vocabulary-treeview.search.no-result": "Brak pozycji do wyÅ›wietlenia", + "vocabulary-treeview.tree.description.nsi": "The Norwegian Science Index", + "vocabulary-treeview.tree.description.srsc": "Kategorie tematów badaÅ„", + "uploader.browse": "wyszukaj na swoim urzÄ…dzeniu", + "uploader.drag-message": "PrzeciÄ…gnij i upuść pliki tutaj", + "uploader.delete.btn-title": "UsuÅ„", + "uploader.or": ", lub ", + "uploader.processing": "Procesowanie", + "uploader.queue-length": "DÅ‚ugość kolejki", + "virtual-metadata.delete-item.info": "Wybierz typy, dla których chcesz zapisać wirtualne metadane jako rzeczywiste metadane", + "virtual-metadata.delete-item.modal-head": "Wirtualne metadane tego powiÄ…zania", + "virtual-metadata.delete-relationship.modal-head": "Wybierz pozycje, dla których chcesz zapisać wirtualne metadane jako rzeczywiste metadane", + "workflowAdmin.search.results.head": "ZarzÄ…dzaj procesami", + "workflow-item.edit.breadcrumbs": "Edytuj pozycjÄ™ procesu", + "workflow-item.edit.title": "Edytuj pozycjÄ™ procesu", + "workflow-item.delete.notification.success.title": "UsuniÄ™te", + "workflow-item.delete.notification.success.content": "Ten element procesu zostaÅ‚ usuniÄ™ty", + "workflow-item.delete.notification.error.title": "CoÅ› poszÅ‚o nie tak", + "workflow-item.delete.notification.error.content": "Ten element procesu nie mógÅ‚ zostać usuniÄ™ty", + "workflow-item.delete.title": "UsuÅ„ element procesu", + "workflow-item.delete.header": "UsuÅ„ element procesu", + "workflow-item.delete.button.cancel": "Anuluj", + "workflow-item.delete.button.confirm": "UsuÅ„", + "workflow-item.send-back.notification.success.title": "SOdeÅ›lij do zgÅ‚aszajÄ…cego", + "workflow-item.send-back.notification.success.content": "Ten element procesu zostaÅ‚ odesÅ‚any do zgÅ‚aszajÄ…cego", + "workflow-item.send-back.notification.error.title": "CoÅ› poszÅ‚o nie tak", + "workflow-item.send-back.notification.error.content": "Ten element procesu nie mógÅ‚ zostać odesÅ‚any do zgÅ‚aszajÄ…cego", + "workflow-item.send-back.title": "OdeÅ›lij element procesu do zgÅ‚aszajÄ…cego", + "workflow-item.send-back.header": "OdeÅ›lij element procesu do zgÅ‚aszajÄ…cego", + "workflow-item.send-back.button.cancel": "Anuluj", + "workflow-item.send-back.button.confirm": "OdeÅ›lij", + "workflow-item.view.breadcrumbs": "Widok procesu", + "idle-modal.header": "Sesja wkrótce wygaÅ›nie", + "idle-modal.info": "Ze wzglÄ™dów bezpieczeÅ„stwa sesja wygaÅ›nie po {{ timeToExpire }} minutach nieaktywnoÅ›ci. Twoja sesja wkrótce wygaÅ›nie. Czy chcesz jÄ… przedÅ‚użyć albo wylogować siÄ™?", + "idle-modal.log-out": "Wyloguj", + "idle-modal.extend-session": "WydÅ‚uż sesjÄ™", + "workspace.search.results.head": "Twoje zadania", + "orgunit.listelement.badge": "Jednostka organizacyjna", + "orgunit.page.city": "Miasto", + "orgunit.page.country": "Kraj", + "orgunit.page.dateestablished": "Data zaÅ‚ożenia", + "orgunit.page.description": "Opis", + "orgunit.page.edit": "Edytuj pozycjÄ™", + "orgunit.page.id": "ID", + "orgunit.page.titleprefix": "Jednostka organizacyjna: ", + "pagination.options.description": "Opcje strony", + "pagination.results-per-page": "Wyników na stronÄ™", + "pagination.showing.detail": "{{ range }} z {{ total }}", + "pagination.showing.label": "Teraz wyÅ›wietlane ", + "pagination.sort-direction": "Opcje sortowania", + "cookies.consent.purpose.sharing": "UdostÄ™pnianie", + "item.preview.dc.identifier.issn": "ISSN", + "500.page-internal-server-error": "UsÅ‚uga niedostÄ™pna", + "500.help": "Serwer jest tymczasowo niezdolny do obsÅ‚ugi Twojego żądania z powodu przestoju konserwacyjnego lub problemów z przepustowoÅ›ciÄ…. Prosimy spróbować ponownie później.", + "500.link.home-page": "Zabierz mnie na stronÄ™ głównÄ…", + "error-page.description.401": "brak autoryzacji", + "error-page.description.403": "brak dostÄ™pu", + "error-page.description.500": "usÅ‚uga niedostÄ™pna", + "error-page.description.404": "nie znaleziono strony", + "error-page.orcid.generic-error": "Podczas logowania za pomocÄ… ORCID wystÄ…piÅ‚ bÅ‚Ä…d. Upewnij siÄ™, że udostÄ™pniÅ‚eÅ› DSpace adres e-mail swojego konta ORCID. JeÅ›li bÅ‚Ä…d nadal wystÄ™puje, skontaktuj siÄ™ z administratorem", + "access-status.embargo.listelement.badge": "Embargo", + "access-status.metadata.only.listelement.badge": "Tylko metadane", + "access-status.open.access.listelement.badge": "Open Access", + "access-status.restricted.listelement.badge": "Brak dostÄ™pu", + "access-status.unknown.listelement.badge": "Nieznane", + "admin.access-control.groups.table.edit.buttons.remove": "UsuÅ„ \"{{name}}\"", + "admin.metadata-import.page.validateOnly": "Tylko waliduj", + "admin.metadata-import.page.validateOnly.hint": "Po wybraniu tej opcji przesÅ‚any plik CSV zostanie poddany walidacji. Otrzymasz raport o wykrytych zmianach, ale żadne zmiany nie zostanÄ… zapisane.", + "bitstream.edit.form.iiifLabel.label": "Etykieta canvyIIIF", + "bitstream.edit.form.iiifLabel.hint": "Etykieta dla tego obrazu. JeÅ›li nie zostaÅ‚a dostarczona, zostanie użyta domyÅ›lna etykieta.", + "bitstream.edit.form.iiifToc.label": "Spis treÅ›ci IIIF", + "bitstream.edit.form.iiifToc.hint": "Dodanie tekstu tutaj zapoczÄ…tkuje nowy zakres spisu treÅ›ci.", + "bitstream.edit.form.iiifWidth.label": "Szerokość canvy IIIF", + "bitstream.edit.form.iiifWidth.hint": "Szerokość canvy jest zwykle równa szerokoÅ›ci obrazu.", + "bitstream.edit.form.iiifHeight.label": "Wysokość canvy IIIF", + "bitstream.edit.form.iiifHeight.hint": "Wysokość canvy jest zwykle równa szerokoÅ›ci obrazu.", + "browse.back.all-results": "Wszystkie wyniki wyszukiwania", + "pagination.next.button": "NastÄ™pny", + "pagination.previous.button": "Poprzedni", + "pagination.next.button.disabled.tooltip": "Brak wiÄ™cej stron z wynikami wyszukiwania", + "browse.startsWith": ", zaczyna siÄ™ od {{ startsWith }}", + "browse.title.page": "Przeszukiwanie {{ collection }} wg {{ field }} {{ value }}", + "collection.edit.item.authorizations.load-bundle-button": "ZaÅ‚aduj wiÄ™cej paczek", + "collection.edit.item.authorizations.load-more-button": "ZaÅ‚aduj wiÄ™cej", + "collection.edit.item.authorizations.show-bitstreams-button": "Pokaż polityki plików dla paczek", + "comcol-role.edit.create.error.title": "Nie udaÅ‚o siÄ™ utworzyć grupy dla roli '{{ role }}'", + "curation.form.submit.error.invalid-handle": "Nie ustalono identyfikatora dla tego obiektu", + "confirmation-modal.delete-profile.header": "UsuÅ„ profil", + "confirmation-modal.delete-profile.info": "Czy na pewno chcesz usunąć profil", + "confirmation-modal.delete-profile.cancel": "Anuluj", + "confirmation-modal.delete-profile.confirm": "UsuÅ„", + "error.invalid-search-query": "Zapytanie nie jest poprawne. Wejdź na <a href=\"https://solr.apache.org/guide/query-syntax-and-parsing.html\" target=\"_blank\">Solr query syntax</a>, aby dowiedzieć siÄ™ o najlepszych praktykach i dodatkowych informacjach o tym bÅ‚Ä™dzie.", + "feed.description": "AktualnoÅ›ci", + "footer.link.feedback": "PrzeÅ›lij uwagi", + "form.group-collapse": "ZwiÅ„", + "form.group-collapse-help": "Kliknij tutaj, aby zwinąć", + "form.group-expand": "RozwiÅ„", + "form.group-expand-help": "Kliknij tutaj, aby rozwinąć", + "health.breadcrumbs": "Stan systemu", + "health-page.heading": "Stan systemu", + "health-page.info-tab": "Informacje", + "health-page.status-tab": "Status", + "health-page.error.msg": "Serwis stanu systemu jest tymczasowo niedostÄ™pny", + "health-page.property.status": "Kod statusu", + "health-page.section.db.title": "Baza danych", + "health-page.section.geoIp.title": "GeoIp", + "health-page.section.solrAuthorityCore.title": "Autentykacja", + "health-page.section.solrOaiCore.title": "OAI", + "health-page.section.solrSearchCore.title": "Wyszukiwarka", + "health-page.section.solrStatisticsCore.title": "Statystyki", + "health-page.section-info.app.title": "Backend aplikacji", + "health-page.section-info.java.title": "Java", + "health-page.status": "Status", + "health-page.status.ok.info": "operacyjny", + "health-page.status.error.info": "Wykryte problemy", + "health-page.status.warning.info": "Wykryte potencjalne problemy", + "health-page.title": "Stan systemu", + "health-page.section.no-issues": "Nie wykryto żadnych problemów", + "info.feedback.breadcrumbs": "Uwagi", + "info.feedback.head": "Uwagi", + "info.feedback.title": "Uwagi", + "info.feedback.info": "DziÄ™kujemy za podzielenie siÄ™ opiniÄ… na temat systemu DSpace. Doceniamy Twój wkÅ‚ad w lepsze dziaÅ‚anie systemu!", + "info.feedback.email_help": "Ten adres zostanie użyty, aby przesÅ‚ać odpowiedź na uwagi.", + "info.feedback.send": "PrzeÅ›lij uwagi", + "info.feedback.comments": "Komentarz", + "info.feedback.email-label": "Twoj adres e-mail", + "info.feedback.create.success": "Uwagi przesÅ‚ane!", + "info.feedback.error.email.required": "Poprawny adres e-mail jest wymagany", + "info.feedback.error.message.required": "Treść komentarza jest wymagana", + "info.feedback.page-label": "Strona", + "info.feedback.page_help": "Ta strona odnosi siÄ™ do uwag.", + "item.orcid.return": "Powrót", + "item.truncatable-part.show-more": "Pokaż wiÄ™cej", + "item.truncatable-part.show-less": "Pokaż mniej", + "item.page.orcid.title": "ORCID", + "item.page.orcid.tooltip": "Otwórz ustawienia ORCID", + "item.page.claim.button": "Podejmij pracÄ™", + "item.page.claim.tooltip": "Podejmij pracÄ™ jako profil", + "item.version.create.modal.submitted.header": "Tworzenie nowej wersji...", + "item.version.create.modal.submitted.text": "Nowa wersja zostaÅ‚a utworzona. MogÅ‚o to trwać chwilÄ™, jeÅ›li pozycja ma wiele powiÄ…zaÅ„.", + "journal-relationships.search.results.head": "Wyniki wyszukiwania czasopism", + "menu.section.icon.health": "Sekcja menu Stan systemu", + "menu.section.health": "Stan systemu", + "metadata-export-search.tooltip": "Eksportuj wyniki wyszukiwania w formacie CSV", + "metadata-export-search.submit.success": "Eksport rozpoczÄ…Å‚ siÄ™", + "metadata-export-search.submit.error": "Eksport nie rozpoczÄ…Å‚ siÄ™", + "person.page.name": "Nazwa", + "person-relationships.search.results.head": "Wyniki wyszukiwania osób", + "profile.special.groups.head": "Autoryzacja do specjalnych grup, do których należysz", + "project-relationships.search.results.head": "Wyniki wyszukiwania projektów", + "publication-relationships.search.results.head": "Wyniki wyszukiwania publikacji", + "resource-policies.edit.page.target-failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas edycji (użytkownika lub grupy) zwiÄ…zany z politykÄ… zasobu.", + "resource-policies.edit.page.other-failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas edycji polityki zasobu. Użytkownik lub grupa zostaÅ‚y zaktualizowane pomyÅ›lnie.", + "resource-policies.form.eperson-group-list.modal.header": "Nie można zmienić typu", + "resource-policies.form.eperson-group-list.modal.text1.toGroup": "Nie można zastÄ…pić użytkownika grupÄ….", + "resource-policies.form.eperson-group-list.modal.text1.toEPerson": "Nie można zastÄ…pić grupy użytkownikiem.", + "resource-policies.form.eperson-group-list.modal.text2": "UsuÅ„ obecnÄ… polityke zasobu i stwórz nowÄ… o okreÅ›lonym typie.", + "resource-policies.form.eperson-group-list.modal.close": "Ok", + "search.results.view-result": "Widok", + "default-relationships.search.results.head": "Wyniki wyszukiwania", + "statistics.table.title.TotalVisits": "WyÅ›wietlnia ogółem", + "statistics.table.title.TotalVisitsPerMonth": "WyÅ›wietlenia w miesiÄ…cu", + "statistics.table.title.TotalDownloads": "Pobrania", + "statistics.table.title.TopCountries": "WyÅ›wietlenia wg krajów", + "statistics.table.title.TopCities": "WyÅ›wietlenia wg miast", + "submission.import-external.preview.title": "PodglÄ…d pozycji", + "submission.import-external.preview.title.none": "PodglÄ…d pozycji", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.none": "Import pozycji zdalnie", + "submission.sections.general.cannot_deposit": "Nie można zakoÅ„czyć deponowania, ponieważ w formularzu wystÄ…piÅ‚y bÅ‚Ä™dy.<br>Aby zakoÅ„czyć deponowanie, wypeÅ‚nij wszystkie obowiÄ…zkowe pola.", + "submission.sections.submit.progressbar.accessCondition": "Warunki dostÄ™pu do pozycji", + "submission.sections.submit.progressbar.sherpapolicy": "Polityki Sherpa", + "submission.sections.submit.progressbar.sherpaPolicies": "Informacje o polityce open access wydawcy.", + "submission.sections.status.info.title": "Dodatkowe informacje", + "submission.sections.status.info.aria": "Dodatkowe informacje", + "submission.sections.upload.form.access-condition-hint": "Wybierz w jaki sposób pliki dla tej pozycji po jest zdeponowaniu bÄ™dÄ… mogÅ‚y być udostÄ™pnione", + "submission.sections.upload.form.from-hint": "Wybierz datÄ™, od której ma zostać zastosowany warunek dostÄ™pu", + "submission.sections.upload.form.until-hint": "Wybierz datÄ™, do której ma zostać zastosowany warunek dostÄ™pu", + "submission.sections.accesses.form.discoverable-description": "JeÅ›li checkbox jest zaznaczony, pozycja bÄ™dzie wyÅ›wietlana w wynikach wyszukiwania. JeÅ›li checkbox jest odznaczony, dostÄ™p do pozycji bÄ™dzie dostÄ™pny tylko przez bezpoÅ›redni link, pozycja nie bÄ™dzie wyÅ›wietlana w wynikach wyszukiwania.", + "submission.sections.accesses.form.discoverable-label": "Niemożliwe do wyszukania", + "submission.sections.accesses.form.access-condition-label": "Typ warunku dostÄ™pu", + "submission.sections.accesses.form.access-condition-hint": "Wybierz warunek dostÄ™pu, aby przypisać go do pozycji, kiedy zostanie zdeponowany.", + "submission.sections.accesses.form.date-required": "Data jest wymagana.", + "submission.sections.accesses.form.date-required-from": "PoczÄ…tkowa data przyznania dostÄ™pu jest wymagana.", + "submission.sections.accesses.form.date-required-until": "KoÅ„cowa data przyznania dostÄ™pu jest wymagana.", + "submission.sections.accesses.form.from-label": "Udziel dostÄ™pu od", + "submission.sections.accesses.form.from-hint": "Wybierz datÄ™, od kiedy zostanie przyznany dostÄ™p do tej pozycji", + "submission.sections.accesses.form.from-placeholder": "Od", + "submission.sections.accesses.form.group-label": "Grupa", + "submission.sections.accesses.form.group-required": "Grupa jest wymagana.", + "submission.sections.accesses.form.until-label": "Udziel dostÄ™pu do", + "submission.sections.accesses.form.until-hint": "Wybierz datÄ™, do kiedy zostanie przyznany dostÄ™p do tej pozycji", + "submission.sections.accesses.form.until-placeholder": "Do", + "submission.sections.sherpa.publication.information": "Informacje o publikacji", + "submission.sections.sherpa.publication.information.title": "TytuÅ‚", + "submission.sections.sherpa.publication.information.issns": "Numery ISSN", + "submission.sections.sherpa.publication.information.url": "URL", + "submission.sections.sherpa.publication.information.publishers": "Wydawca", + "submission.sections.sherpa.publication.information.romeoPub": "Wydawca Romeo", + "submission.sections.sherpa.publication.information.zetoPub": "Wydawca Zeto", + "submission.sections.sherpa.publisher.policy": "Polityka wydawnicza", + "submission.sections.sherpa.publisher.policy.description": "Poniższe informacje zostaÅ‚y znalezione za poÅ›rednictwem Sherpa Romeo. W oparciu o politykÄ™ Twojego wydawcy, zawiera ona porady dotyczÄ…ce tego, czy embargo może być konieczne i/lub jakie pliki możesz przesÅ‚ać. JeÅ›li masz pytania, skontaktuj siÄ™ z administratorem strony poprzez formularz.", + "submission.sections.sherpa.publisher.policy.openaccess": "Rodzaje Open Access dozwolone przez politykÄ™ wydawniczÄ… tego czasopisma sÄ… wymienione poniżej. Kliknij na wybrany rodzaj, aby przejść do szczegółowego widoku", + "submission.sections.sherpa.publisher.policy.more.information": "Aby uzuyskać wiÄ™cej informacji, kliknij tutaj:", + "submission.sections.sherpa.publisher.policy.version": "Wersja", + "submission.sections.sherpa.publisher.policy.embargo": "Embargo", + "submission.sections.sherpa.publisher.policy.noembargo": "Brak embargo", + "submission.sections.sherpa.publisher.policy.nolocation": "Brak", + "submission.sections.sherpa.publisher.policy.license": "Licencja", + "submission.sections.sherpa.publisher.policy.prerequisites": "Wymagania wstÄ™pne", + "submission.sections.sherpa.publisher.policy.location": "Lokalizacja", + "submission.sections.sherpa.publisher.policy.conditions": "Wymagania", + "submission.sections.sherpa.publisher.policy.refresh": "OdÅ›wież", + "submission.sections.sherpa.record.information": "Informacje o rekordzie", + "submission.sections.sherpa.record.information.id": "ID", + "submission.sections.sherpa.record.information.date.created": "Data utworzenia", + "submission.sections.sherpa.record.information.date.modified": "Ostatnia modyfikacja", + "submission.sections.sherpa.record.information.uri": "URI", + "submission.sections.sherpa.error.message": "WystÄ…piÅ‚ bÅ‚Ä…d podczas pobierania informacji z Sherpa", + "submission.workspace.generic.view": "PodglÄ…d", + "submission.workspace.generic.view-help": "Wybierz tÄ™ opcje, aby zobaczyć metadane.", + "workflow.search.results.head": "Zadania na workflow", + "workspace-item.view.breadcrumbs": "Widok wersji roboczej", + "workspace-item.view.title": "Widok wersji roboczej", + "researcher.profile.change-visibility.fail": "WystÄ…piÅ‚ niespodziewany bÅ‚Ä…d podczas zmiany widocznoÅ›ci profilu", + "person.page.orcid.link.processing": "ÅÄ…czenie profilu z ORCID...", + "person.page.orcid.link.error.message": "CoÅ› poszÅ‚o nie tak podczas Å‚Ä…czenia z ORCID. JeÅ›li problem bÄ™dzie siÄ™ powtarzaÅ‚, skontaktuj siÄ™ z administratorem.", + "person.page.orcid.sync-queue.table.header.type": "Typ", + "person.page.orcid.sync-queue.table.header.description": "Opis", + "person.page.orcid.sync-queue.table.header.action": "Akcja", + "person.page.orcid.sync-queue.tooltip.project": "Projekt", + "person.page.orcid.sync-queue.send.validation-error.country.invalid": "NiewÅ‚aÅ›ciwy dwuznakowy kod kraju ISO 3166", + "person.page.orcid.sync-queue.send.validation-error.publication.date-invalid": "Wymagana data publikacji to co najmniej rok po 1900", + "person.page.orcid.synchronization-mode-funding-message": "Wybierz, czy chcesz wysÅ‚ać swoje projekty na swojÄ… listÄ™ informacji o projektach w profilu ORCID.", + "person.page.orcid.synchronization-mode-publication-message": "Wybierz, czy chcesz wysÅ‚ać swoje publikacje na swojÄ… listÄ™ informacji o publikacjach w profilu ORCID.", + "person.page.orcid.synchronization-mode-profile-message": "Wybierz, czy chcesz wysÅ‚ać swoje dane bibliograficzne lub osobiste identyfikatory do swojego profilu ORCID.", + "person.orcid.sync.setting": "Ustawienia synchronizacji z ORCID", + "person.orcid.registry.queue": "Kolejka rejestru z ORCID", + "person.orcid.registry.auth": "Autoryzacje z ORCID", + "home.recent-submissions.head": "Najnowsze publikacje", + "submission.sections.sherpa-policy.title-empty": "Nie wybrano ISSN i informacje o polityce wydawniczej czasopisma sÄ… niedostÄ™pne", + "admin.batch-import.breadcrumbs": "Import zbiorczy", + "admin.batch-import.page.dropMsg": "Drop a batch ZIP to import", + "admin.batch-import.page.dropMsgReplace": "Drop to replace the batch ZIP to import", + "admin.batch-import.page.error.addFile": "Najpierw wybierz plik (ZIP)", + "admin.batch-import.page.header": "Import masowy", + "admin.batch-import.page.help": "Wybierz kolekcjÄ™ do zaimportowania kolekcji. Potem, upuść lub przeszukaj plik SAF, który zawiera pozycje do importu", + "admin.batch-import.page.remove": "usuÅ„", + "admin.batch-import.page.validateOnly.hint": "JeÅ›li wybrano, importowany plik ZIP bÄ™dzie walidowany. Otrzymasz raport ze zmianami, ale żadne zmiany nie zostanÄ… wykonane zapisane.", + "collection.form.correctionSubmissionDefinition": "Wzór zgÅ‚oszenia do proÅ›by o korektÄ™", + "comcol-role.edit.delete.error.title": "Nie udaÅ‚o siÄ™ usunąć roli '{{ role }}' dla grup", + "confirmation-modal.export-batch.header": "Eksport maasowy (ZIP) {{ dsoName }}", + "confirmation-modal.export-batch.info": "Czy na pewno chcesz wyeksportować plik ZIP z {{ dsoName }}", + "dso-selector.export-batch.dspaceobject.head": "Eksport masowy (ZIP) z", + "menu.section.export_batch": "Eksport masowy (ZIP)", + "nav.user-profile-menu-and-logout": "Profil użytkownika i wylogowywanie", + "process.detail.actions": "Akcje", + "process.detail.delete.body": "Czy na pewno chcesz usunąć bieżący proces?", + "process.detail.delete.button": "UsuÅ„ proces", + "process.detail.delete.cancel": "Anuluj", + "process.detail.delete.confirm": "UsuÅ„ proces", + "process.detail.delete.error": "Nie udaÅ‚o siÄ™ usunąć procesu", + "process.detail.delete.header": "UsuÅ„ proces", + "process.detail.delete.success": "Proces zostaÅ‚ usuniÄ™ty.", + "admin.batch-import.title": "Masowy import", + "admin.metadata-import.page.button.select-collection": "Wybierz kolekcjÄ™", + "admin.registries.bitstream-formats.table.id": "ID", + "admin.registries.schema.fields.table.id": "ID", + "cookies.consent.app.description.google-recaptcha": "Podczas rejestracji i odzyskiwania hasÅ‚a używamy narzÄ™dzia google reCAPTCHA", + "cookies.consent.app.disable-all.description": "PrzeÅ‚Ä…cz, aby zaakceptować lub odrzucić wszystkie", + "cookies.consent.app.disable-all.title": "Akceptowacja lub odrzucenie wszystkich", + "cookies.consent.app.title.google-recaptcha": "Google reCaptcha", + "cookies.consent.content-modal.service": "usÅ‚uga", + "cookies.consent.content-modal.services": "usÅ‚ugi", + "cookies.consent.content-notice.description.no-privacy": "Zbieramy i przetwarzamy Twoje dane w celu: <strong>autentykacji, ustawieÅ„ preferencji i zgód oraz do celów statystycznych</strong>.", + "cookies.consent.content-notice.title": "Zgoda na ciasteczka", + "cookies.consent.ok": "Zgadzam siÄ™", + "cookies.consent.purpose.registration-password-recovery": "Rejestracja i odzyskiwanie hasÅ‚a", + "cookies.consent.save": "Zapisz", + "curation-task.task.citationpage.label": "Generuj stronÄ™ z cytowaniem", + "dso-selector.import-batch.dspaceobject.head": "Import masowy z", + "orgunit.listelement.no-title": "Brak tytyÅ‚u", + "process.bulk.delete.error.body": "Proces z ID {{processId}} nie może być usuniÄ™ty. PozostaÅ‚e procesy zostanÄ… usuniÄ™te.", + "process.bulk.delete.error.head": "BÅ‚Ä…d podczas usuwania procesu", + "process.bulk.delete.success": "{{count}} proces/y zostaÅ‚/y usuniÄ™te", + "process.overview.delete": "UsuÅ„ {{count}} proces/y", + "process.overview.delete.body": "Czy na pewno usunąć {{count}} proces/y?", + "process.overview.delete.clear": "Wyczyść selekcjÄ™ procesów do usuniÄ™cia", + "process.overview.delete.header": "UsuÅ„ procesy", + "process.overview.delete.processing": "{{count}} procesów zostanie usuniÄ™tych. Poczekaj, gdy usuwanie siÄ™ zakoÅ„czy. Może to zająć chwilÄ™.", + "process.overview.table.actions": "Akcje", + "profile.security.form.label.current-password": "Aktualne hasÅ‚o", + "profile.security.form.notifications.error.change-failed": "WystÄ…piÅ‚ bÅ‚Ä…d podczas próby zmiany hasÅ‚a. Sprawdź czy aktualne hasÅ‚o jest prawidÅ‚owe.", + "profile.security.form.notifications.error.general": "UzupeÅ‚nij wymagane pola dla bezpieczeÅ„stwa na formularzu", + "register-page.registration.error.recaptcha": "WystÄ…piÅ‚ bÅ‚Ä…d podczas próby autentykacji przez reCAPTCHA", + "register-page.registration.google-recaptcha.must-accept-cookies": "Aby siÄ™ zarejestrować, musisz zaakceptować ciasteczka dla <b>rejestracji i odzyskiwania hasÅ‚a</b> (Google reCaptcha).", + "register-page.registration.google-recaptcha.notification.message.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas weryfikacji reCaptcha", + "register-page.registration.google-recaptcha.notification.message.expired": "Weryfikacja wygasÅ‚a. Zweryfikuj ponownie.", + "register-page.registration.google-recaptcha.notification.title": "Google reCaptcha", + "register-page.registration.google-recaptcha.open-cookie-settings": "Otwórz ustawienia plików cookies", + "search.results.response.500": "WystÄ…piÅ‚ bÅ‚Ä…d podczas wysyÅ‚ania zapytania. Spróbuj ponownie później", + "submission.sections.license.granted-label": "Potwierdzam akceptacjÄ™ powyższej licencji", + "submission.sections.license.notgranted": "Najpierw musisz zaakceptować licencjÄ™", + "submission.sections.license.required": "Najpierw musisz zaakceptować licencjÄ™", + "confirmation-modal.export-batch.confirm": "Eksportuj", + "confirmation-modal.export-batch.cancel": "Anuluj", + "admin.access-control.bulk-access.breadcrumbs": "Zbiorcza edycja dostÄ™pu do osiÄ…gnięć", + "administrativeBulkAccess.search.results.head": "Wyniki wyszukiwania", + "admin.access-control.bulk-access": "Zbiorcza edycja dostÄ™pu do osiÄ…gnięć", + "admin.access-control.bulk-access.title": "Zbiorcza edycja dostÄ™pu do osiÄ…gnięć", + "admin.access-control.bulk-access-browse.header": "Krok 1: Wybierz pozycje", + "admin.access-control.bulk-access-browse.search.header": "Wyszukaj", + "admin.access-control.bulk-access-browse.selected.header": "Obecny wybór({{number}})", + "admin.access-control.bulk-access-settings.header": "Krok 2: DziaÅ‚anie do wykonania", + "admin.access-control.groups.form.tooltip.editGroupPage": "Na tej stronie można edytować opcje grupy i przypisane do niej osoby. W górnej sekcji można edytować nazwÄ™ i opis grupy, chyba że jest to grupa administratorów dla zbioru i kolekcji. W tym przypadku nazwa i opis grupy sÄ… generowane automatycznie i nie można ich edytować. W kolejnych sekcjach można edytować przypisanie użytkowników do grupy. Szczegóły na [stronie](https://wiki.lyrasis.org/display/DSDOC7x/Create+or+manage+a+user+group).", + "admin.access-control.groups.form.tooltip.editGroup.addEpeople": "Aby dodać lub usunąć użytkownika do/z tej grupy, kliknij przycisk 'PrzeglÄ…daj wszystko' lub użyj paska wyszukiwania poniżej, aby wyszukać użytkowników (użyj listy rozwijanej po lewej stronie paska wyszukiwania, aby wybrać, czy chcesz wyszukiwać wedÅ‚ug imienia i nazwiska, czy wedÅ‚ug adresu e-mail). NastÄ™pnie kliknij ikonÄ™ plusa przy każdym użytkowniku, którego chcesz dodać do poniższej listy, lub ikonÄ™ kosza przy każdym użytkowniku, którego chcesz usunąć. Poniższa lista może mieć kilka stron: użyj strzaÅ‚ek pod listÄ…, aby przejść do kolejnych stron. Gdy wszystkie zmiany zostanÄ… wprowadzone, zapisz je, klikajÄ…c przycisk 'Zapisz' w górnej sekcji.", + "admin.access-control.groups.form.tooltip.editGroup.addSubgroups": "Aby dodać lub usunąć podgrupÄ™ do/z tej grupy, kliknij przycisk 'PrzeglÄ…daj wszystko' lub użyj wyszukiwarki poniżej, aby wyszukać użytkowników. NastÄ™pnie kliknij ikonÄ™ plusa przy każdym użytkowniku, którego chcesz dodać do poniższej listy, lub ikonÄ™ kosza przy każdym użytkowniku, którego chcesz usunąć. Poniższa lista może skÅ‚adać siÄ™ z kilku stron: użyj przycisków pod listÄ…, aby przejść do kolejnych stron. Gdy wszystkie zmiany zostanÄ… wprowadzone, zapisz je, klikajÄ…c przycisk 'Zapisz' w górnej sekcji.", + "admin.workflow.item.workspace": "PrzestrzeÅ„ robocza", + "admin.workflow.item.policies": "Polityki", + "admin.workflow.item.supervision": "Recenzja", + "admin.batch-import.page.toggle.help": "It is possible to perform import either with file upload or via URL, use above toggle to set the input source", + "admin.metadata-import.page.error.addFileUrl": "Najpierw wpisz URL pliku!", + "admin.metadata-import.page.toggle.upload": "PrzeÅ›lij", + "admin.metadata-import.page.toggle.url": "URL", + "admin.metadata-import.page.urlMsg": "Wpisz URL pliku ZIP, aby wykonać import masowy", + "advanced-workflow-action.rating.form.rating.label": "Ocena", + "advanced-workflow-action.rating.form.rating.error": "Ta pozycja musi zostać oceniona", + "advanced-workflow-action.rating.form.review.label": "Recenzja", + "advanced-workflow-action.rating.form.review.error": "Musisz wpisać tekst recenzji", + "advanced-workflow-action.rating.description": "Wybierz ocenÄ™ poniżej", + "advanced-workflow-action.rating.description-requiredDescription": "Wybierz ocenÄ™ poniżej i wpisz uzasadnienie", + "advanced-workflow-action.select-reviewer.description-single": "Wybierz recenzenta przed zdeponowaniem pozycji", + "advanced-workflow-action.select-reviewer.description-multiple": "Wybierz jednego lub wiÄ™cej recenzentów przed zdeponowaniem pozycji", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.head": "Użytkownicy", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.head": "Dodaj użytkownika", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.button.see-all": "PrzeglÄ…daj wszystko", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.headMembers": "Aktualni użytkownicy", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.metadata": "Metadane", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.email": "Adres e-mail (dokÅ‚adny)", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.button": "Wyszukaj", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.id": "ID", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.name": "Nazwa", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.identity": "Tożsamość", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.email": "Adres e-mail", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.netid": "NetID", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit": "UsuÅ„ / Dodaj", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.remove": "UsuÅ„ użytkownika z nazwÄ™ "{{name}}"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.addMember": "Dodano użytkownika o nazwie: "{{name}}"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.addMember": "Nie dodano użytkownika: "{{name}}"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.deleteMember": "UsuniÄ™to użytkownika: "{{name}}"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.deleteMember": "Nie usuniÄ™to użytkownika: "{{name}}"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.add": "Dodano użytkownika "{{name}}"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.noActiveGroup": "Brak aktywnej grupy, najpierw wpisz nazwÄ™.", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-members-yet": "W tej grupie nie ma użytkowników, wyszukaj ich i dodaj.", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-items": "Nie znaleziono żadnych użytkowników", + "advanced-workflow-action.select-reviewer.no-reviewer-selected.error": "Recenzent nie jest wybrany.", + "bitstream.edit.notifications.error.primaryBitstream.title": "WystÄ…piÅ‚ bÅ‚Ä…d podczas zapisu pliku.", + "browse.comcol.by.srsc": "Wg słów kluczowych", + "browse.metadata.srsc.breadcrumbs": "PrzeglÄ…daj wg słów kluczowych", + "browse.startsWith.input": "Filtr", + "browse.taxonomy.button": "PrzeglÄ…daj", + "search.browse.item-back": "Powrót do wyników wyszukiwania", + "claimed-approved-search-result-list-element.title": "Zaakceptowano", + "claimed-declined-search-result-list-element.title": "Odrzucono i przesÅ‚ano do deponujÄ…cego", + "claimed-declined-task-search-result-list-element.title": "Odrzucono i przesÅ‚ano do recenzenta", + "collection.edit.tabs.access-control.head": "DostÄ™py", + "collection.edit.tabs.access-control.title": "Edycja kolekcji - dostÄ™py", + "collection.listelement.badge": "Kolekcja", + "community.edit.tabs.access-control.head": "DostÄ™py", + "community.edit.tabs.access-control.title": "Edycja zbioru - dostÄ™py", + "comcol-role.edit.scorereviewers.name": "Ocena recenzenta", + "comcol-role.edit.scorereviewers.description": "Recenzenci mogÄ… oceniać zdeponowane pozycje, co okreÅ›li, czy pozycja zostanie przyjÄ™ta lub odrzucona.", + "curation-task.task.register-doi.label": "Rejestracja DOI", + "dso.name.unnamed": "Bez nazwy", + "dso-selector.create.community.or-divider": "lub", + "dso-selector.set-scope.community.or-divider": "lub", + "dso-selector.results-could-not-be-retrieved": "WystÄ…piÅ‚ bÅ‚Ä…d, proszÄ™ odÅ›wieżyć stronÄ™", + "supervision-group-selector.header": "Wybór grupy recenzenckiej", + "supervision-group-selector.select.type-of-order.label": "Wybierz typ funkcji", + "supervision-group-selector.select.type-of-order.option.none": "BRAK", + "supervision-group-selector.select.type-of-order.option.editor": "REDAKTOR", + "supervision-group-selector.select.type-of-order.option.observer": "OBSERWATOR", + "supervision-group-selector.select.group.label": "Wybierz grupÄ™", + "supervision-group-selector.button.cancel": "Anuluj", + "supervision-group-selector.button.save": "Zapisz", + "supervision-group-selector.select.type-of-order.error": "Wybierz typ funkcji", + "supervision-group-selector.select.group.error": "Wybierz grupÄ™", + "supervision-group-selector.notification.create.success.title": "Grupa recenzencka zostaÅ‚ dodana dla grupy {{ name }}", + "supervision-group-selector.notification.create.failure.title": "BÅ‚Ä…d", + "supervision-group-selector.notification.create.already-existing": "Funkcja recenzenta już jest przypisana do tej grupy", + "confirmation-modal.delete-subscription.header": "UsuÅ„ subksrypcje", + "confirmation-modal.delete-subscription.info": "Czy na pewno chcesz usunąć subskrypcjÄ™: "{{ dsoName }}"", + "confirmation-modal.delete-subscription.cancel": "Anuluj", + "confirmation-modal.delete-subscription.confirm": "UsuÅ„", + "error.validation.metadata.name.invalid-pattern": "To pole nie może zawierać kropek, przecinków i spacji. Zamiast tego This field cannot contain dots, commas or spaces. Zamiast tego może użyć pól z notacji SNEQ", + "error.validation.metadata.name.max-length": "To pole nie może zawierać wiÄ™cej niż 32 znaki", + "error.validation.metadata.namespace.max-length": "To pole nie może zawierać wiÄ™cej niż 256 znaków", + "error.validation.metadata.element.invalid-pattern": "To pole nie może zawierać kropek, przecinków i spacji. Zamiast tego This field cannot contain dots, commas or spaces. Zamiast tego może użyć pól z notacji SNEQ", + "error.validation.metadata.element.max-length": "To pole nie może zawierać wiÄ™cej niż 64 znaki", + "error.validation.metadata.qualifier.invalid-pattern": "To pole nie może zawierać kropek, przecinków i spacji", + "error.validation.metadata.qualifier.max-length": "To pole nie może zawierać wiÄ™cej niż 64 znaki", + "forgot-email.form.email.error.not-email-form": "Wpisz prawidÅ‚owy adres e-mail", + "form.other-information.email": "Adres e-mail", + "form.other-information.first-name": "ImiÄ™", + "form.other-information.insolr": "Solr Index", + "form.other-information.institution": "Instytucja", + "form.other-information.last-name": "Nazwisko", + "form.other-information.orcid": "ORCID", + "form.create": "Utwórz", + "info.end-user-agreement.hosting-country": "Stany Zjednoczone", + "item.edit.identifiers.doi.status.UNKNOWN": "Nieznane", + "item.edit.identifiers.doi.status.TO_BE_REGISTERED": "W kolejce do rejestracji", + "item.edit.identifiers.doi.status.TO_BE_RESERVED": "W kolejce do rezerwacji", + "item.edit.identifiers.doi.status.IS_REGISTERED": "Zarejestrowane", + "item.edit.identifiers.doi.status.IS_RESERVED": "Zarezerwowane", + "item.edit.identifiers.doi.status.UPDATE_RESERVED": "Zarezerwowane (aktualizacja w kolejce)", + "item.edit.identifiers.doi.status.UPDATE_REGISTERED": "Zarejestrowane (aktualizacja w kolejce)", + "item.edit.identifiers.doi.status.UPDATE_BEFORE_REGISTRATION": "W kolejce do aktualizacji i rejestracji", + "item.edit.identifiers.doi.status.TO_BE_DELETED": "Zakolejkowane do usuniÄ™cia", + "item.edit.identifiers.doi.status.DELETED": "UsuniÄ™te", + "item.edit.identifiers.doi.status.PENDING": "OczekujÄ…ce (niezarejestrowane)", + "item.edit.identifiers.doi.status.MINTED": "Rezerwowanie nazwy (niezarejestrowane)", + "item.edit.tabs.status.buttons.register-doi.label": "Zarejestruj nowe lub oczekujÄ…ce DOI", + "item.edit.tabs.status.buttons.register-doi.button": "Rejestruj DOI...", + "item.edit.register-doi.header": "Zarejestruj nowe lub oczekujÄ…ce DOI", + "item.edit.register-doi.description": "Zweryfikuj poniższe identyfikatory i metadane pozycji i rozpocznij rejestracjÄ™ DOI lub anuluj", + "item.edit.register-doi.confirm": "Zatwierdź", + "item.edit.register-doi.cancel": "Anuluj", + "item.edit.register-doi.success": "DOI jest w kolejce do rejestracji.", + "item.edit.register-doi.error": "WystÄ…piÅ‚ bÅ‚Ä…d poczas rejestracji DOI", + "item.edit.register-doi.to-update": "To DOI zostaÅ‚o zarezerwowane i bÄ™dzie znajdować siÄ™ w kolejce do rejestracji", + "item.edit.metadata.edit.buttons.confirm": "Zatwierdź", + "item.edit.metadata.edit.buttons.drag": "PrzeciÄ…gnij, aby zmienić kolejność", + "item.edit.metadata.edit.buttons.virtual": "To pole przechowuje wirutalne wartoÅ›ci metadanych, np. wartość pobranÄ… z encji, z którÄ… jest poÅ‚Ä…czona ta pozycja. Dodaj lub usuÅ„ relacjÄ™ w zakÅ‚adce 'Relacje' ", + "item.edit.metadata.metadatafield.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas walidcji pól metadanych", + "item.edit.metadata.reset-order-button": "Cofnij zamianÄ™ kolejnoÅ›ci", + "item.edit.curate.title": "ZarzÄ…dzaj pozycjÄ…: {{item}}", + "item.edit.tabs.access-control.head": "DostÄ™p", + "item.edit.tabs.access-control.title": "Edycja pozycji - dostÄ™p", + "workflow-item.search.result.delete-supervision.modal.header": "UsuÅ„ zadanie dla recenzenta", + "workflow-item.search.result.delete-supervision.modal.info": "Czy na pewno usunąć zadanie dla recenzenta", + "workflow-item.search.result.delete-supervision.modal.cancel": "Anuluj", + "workflow-item.search.result.delete-supervision.modal.confirm": "UsuÅ„", + "workflow-item.search.result.notification.deleted.success": "UsuniÄ™to zadanie dla recenzenta "{{name}}"", + "workflow-item.search.result.notification.deleted.failure": "Nie usuniÄ™to zadania dla recenzenta "{{name}}"", + "workflow-item.search.result.list.element.supervised-by": "Recenzja:", + "workflow-item.search.result.list.element.supervised.remove-tooltip": "UsuÅ„ grupÄ™ recenzenckÄ…", + "item.preview.dc.subject": "SÅ‚owo kluczowe:", + "item.preview.dc.publisher": "Wydawca:", + "itemtemplate.edit.metadata.add-button": "Dodaj", + "itemtemplate.edit.metadata.discard-button": "Cofnij", + "itemtemplate.edit.metadata.edit.buttons.confirm": "Zatwierdź", + "itemtemplate.edit.metadata.edit.buttons.drag": "PrzeciÄ…gnij, aby zmienić kolejność", + "itemtemplate.edit.metadata.edit.buttons.edit": "Edytuj", + "itemtemplate.edit.metadata.edit.buttons.remove": "UsuÅ„", + "itemtemplate.edit.metadata.edit.buttons.undo": "Cofnij zmiany", + "itemtemplate.edit.metadata.edit.buttons.unedit": "Nie edytuj", + "itemtemplate.edit.metadata.empty": "To pozycja nie zawiera żadnych metadanych. Wybierz Dodaj, aby je wprowadzić.", + "itemtemplate.edit.metadata.headers.edit": "Edytuj", + "itemtemplate.edit.metadata.headers.field": "Pole", + "itemtemplate.edit.metadata.headers.language": "JÄ™zyk", + "itemtemplate.edit.metadata.headers.value": "Wartość", + "itemtemplate.edit.metadata.metadatafield.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas walidowania pola metadanych", + "itemtemplate.edit.metadata.metadatafield.invalid": "Wybierz odpowiednie pole metadanych", + "itemtemplate.edit.metadata.notifications.discarded.content": "Twoje zmiany nie zostaÅ‚y zachowane. Aby spróbować wprowadzić je ponownie wybierz Cofnij", + "itemtemplate.edit.metadata.notifications.discarded.title": "Zmiany nie zostaÅ‚y zachowane", + "itemtemplate.edit.metadata.notifications.error.title": "WystÄ…piÅ‚ bÅ‚Ä…d", + "itemtemplate.edit.metadata.notifications.invalid.content": "Twoje zmiany nie zostaÅ‚y zapisane. Upewnij siÄ™, że wszystkie pola zostaÅ‚y wypeÅ‚nione prawidÅ‚owo.", + "itemtemplate.edit.metadata.notifications.invalid.title": "NieprawidÅ‚owe metadan", + "itemtemplate.edit.metadata.notifications.outdated.content": "Wzór dla pozycji, na którÄ… w tym momencie pracujesz, zostaÅ‚ zmodyfikowany przez innego użytkownika. Twoje zmiany zostaÅ‚y odrzucone, aby uniknąć konfliktów pomiÄ™dzy wersjami.", + "itemtemplate.edit.metadata.notifications.outdated.title": "Zmiany zostaÅ‚y odrzucone", + "itemtemplate.edit.metadata.notifications.saved.content": "Zmiany w metadanych wzoru pozycji zostaÅ‚y zapisane.", + "itemtemplate.edit.metadata.notifications.saved.title": "Metadane zostaÅ‚y zapisane", + "itemtemplate.edit.metadata.reinstate-button": "Cofnij", + "itemtemplate.edit.metadata.reset-order-button": "Cofnij zmianÄ™ kolejnoÅ›ci", + "itemtemplate.edit.metadata.save-button": "Zapisz", + "menu.section.access_control_bulk": "Zbiorowe zarzÄ…dzanie dostÄ™pem", + "menu.section.browse_global_by_srsc": "Wg słów kluczowych", + "mydspace.show.supervisedWorkspace": "Pozycje recenzowane", + "mydspace.status.mydspaceArchived": "Opublikowano", + "mydspace.status.mydspaceValidation": "Walidacja", + "mydspace.status.mydspaceWaitingController": "Oczekiwanie na redakctora", + "mydspace.status.mydspaceWorkflow": "Redakcja", + "mydspace.status.mydspaceWorkspace": "PrzestrzeÅ„ robocza", + "nav.context-help-toggle": "PrzeÅ‚Ä…cz pomoc kontekstowÄ…", + "nav.search.button": "Wpisz wyszukiwanÄ… frazÄ™", + "nav.subscriptions": "Subksrypcje", + "process.new.notification.error.max-upload.content": "Plik jest wiÄ™kszy niż maksymalny dozwolony rozmiar pliku", + "register-page.registration.email.error.not-email-form": "Wprowadź poprawny adres e-mail", + "register-page.registration.email.error.not-valid-domain": "Użyj adresu e-mail z domeny: {{ domains }}", + "register-page.registration.error.maildomain": "Tego adresu e-mail nie możesz zarejestrować, ponieważ nie ma go na liÅ›cie domen. Dozwolone domeny to: {{ domains }}", + "register-page.registration.info.maildomain": "Konta mogÄ… być zaÅ‚ożone dla adresów e-mail z domenÄ…", + "repository.title": "Repozytorium DSpace" + "search.filters.applied.f.supervisedBy": "Recenzent" + "search.filters.filter.show-tree": "PrzeglÄ…daj {{ name }} strukturÄ™ recenzentów", + "search.filters.filter.supervisedBy.head": "Recenzent", + "search.filters.filter.supervisedBy.placeholder": "Recenzent", + "search.filters.filter.supervisedBy.label": "Wyszukaj recenzenta", + "statistics.table.no-name": "(nazwa obiektu nie może zostać zaÅ‚adowana)", + "submission.import-external.source.datacite": "DataCite", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isPublicationOfAuthor": "Publikacje autora", + "submission.sections.describe.relationship-lookup.title.isPublicationOfAuthor": "Publikacje", + "submission.sections.identifiers.info": "Te identyfikatory zostanÄ… utworzone dla pozycji:", + "submission.sections.identifiers.no_handle": "Do tej pozycji nie zostaÅ‚y przypisane żadne Handle", + "submission.sections.identifiers.no_doi": "Do tej pozycji nie zostaÅ‚y przypisane żadne DOI", + "submission.sections.identifiers.handle_label": "Handle: ", + "submission.sections.identifiers.doi_label": "DOI: ", + "submission.sections.identifiers.otherIdentifiers_label": "Inne identyfikatory: ", + "submission.sections.submit.progressbar.identifiers": "Identyfikatory", + "submission.workflow.generic.submit_select_reviewer": "Wybierz recenzenta", + "submission.workflow.generic.submit_select_reviewer-help": "", + "submission.workflow.generic.submit_score": "Wynik", + "submission.workflow.generic.submit_score-help": "", + "submission.workflow.tasks.claimed.decline": "Odrzuć", + "submission.workflow.tasks.claimed.decline_help": "", + "submitter.empty": "n.d.", + "subscriptions.title": "Subskrypcje", + "subscriptions.item": "Subskrypcje pozycji", + "subscriptions.collection": "Subskrypcje kolekcji", + "subscriptions.community": "Subskrypcje zbiorów", + "subscriptions.subscription_type": "Typ subksrypcji", + "subscriptions.frequency": "CzÄ™stotliwość subskrypcji", + "subscriptions.frequency.D": "Codziennie", + "subscriptions.frequency.M": "Co miesiÄ…c", + "subscriptions.frequency.W": "Co tydzieÅ„", + "subscriptions.tooltip": "Subskrybuj", + "subscriptions.modal.title": "Subksrypcje", + "subscriptions.modal.type-frequency": "Rodzaj i czÄ™stotliwość subksrypcji", + "subscriptions.modal.close": "Zamknij", + "subscriptions.modal.delete-info": "Aby usunąć tÄ™ subksrypcjÄ™ przejdź do strony 'Subskrypcje', która znajduje siÄ™ w profilu użytkownika", + "subscriptions.modal.new-subscription-form.type.content": "Zawartość", + "subscriptions.modal.new-subscription-form.frequency.D": "Codziennie", + "subscriptions.modal.new-subscription-form.frequency.W": "Co tydzieÅ„", + "subscriptions.modal.new-subscription-form.frequency.M": "Co miesiÄ…c", + "subscriptions.modal.new-subscription-form.submit": "Zapisz", + "subscriptions.modal.new-subscription-form.processing": "Åadowanie...", + "subscriptions.modal.create.success": "Zasubskrybowano {{ type }}", + "subscriptions.modal.delete.success": "Subskrypcja zostaÅ‚a anulowana", + "subscriptions.modal.update.success": "Twoja subskrypcja {{ type }} zostaÅ‚a zaktualizowana", + "subscriptions.modal.create.error": "WystÄ…piÅ‚ bÅ‚ad podczas tworzenia subskrypcji", + "subscriptions.modal.delete.error": "WystÄ…piÅ‚ bÅ‚ad podczas usuwania subskrypcji", + "subscriptions.modal.update.error": "WystÄ…piÅ‚ bÅ‚ad podczas aktualizacji subskrypcji", + "subscriptions.table.dso": "SÅ‚owo kluczowe", + "subscriptions.table.subscription_type": "Typ subskrypcji", + "subscriptions.table.subscription_frequency": "CzÄ™stotliwość subskrypcji", + "subscriptions.table.action": "Akcja", + "subscriptions.table.edit": "Edytuj", + "subscriptions.table.delete": "UsuÅ„", + "subscriptions.table.not-available": "NiedostÄ™pne", + "subscriptions.table.not-available-message": "Ta pozycja zostaÅ‚a usuniÄ™ta lun nie masz do niej dostÄ™pu, aby jÄ… wyswietlić", + "subscriptions.table.empty.message": "Ta pozycja nie ma w tym momencie żadnych subksrypcji. Aby zasubkrybować i otrzymywać aktualizacje o tym zbiorze lub kolekcji, wybierz przycisk subskrypcji na stronie pozycji.", + "vocabulary-treeview.info": "Wybierz sÅ‚owo kluczowe, aby dodać je do filtra", + "supervisedWorkspace.search.results.head": "Pozycje recenzowane", + "supervision.search.results.head": "Status zadaÅ„: Szkic i redakcja", + "workspace-item.delete.breadcrumbs": "UsuniÄ™to wersjÄ™ roboczÄ…", + "workspace-item.delete.header": "UsuÅ„ wersjÄ™ roboczÄ…", + "workspace-item.delete.button.confirm": "UsuÅ„", + "workspace-item.delete.button.cancel": "Anuluj", + "workspace-item.delete.notification.success.title": "UsuniÄ™to", + "workspace-item.delete.title": "Wersja robocza zostaÅ‚a usunieta", + "workspace-item.delete.notification.error.title": "CoÅ› poszÅ‚o nie tak", + "workspace-item.delete.notification.error.content": "Wersja robocza nie może zostać usunieta", + "workflow-item.advanced.title": "Zaawansowane workflow", + "workflow-item.selectrevieweraction.notification.success.title": "Wybrany recenzent", + "workflow-item.selectrevieweraction.notification.success.content": "Recenzent zostaÅ‚ przypisany", + "workflow-item.selectrevieweraction.notification.error.title": "CoÅ› poszÅ‚o nie tak", + "workflow-item.selectrevieweraction.notification.error.content": "Nie udaÅ‚o siÄ™ wybrać recenzenta dla pozycji", + "workflow-item.selectrevieweraction.title": "Wybierz recenzenta", + "workflow-item.selectrevieweraction.header": "Wybierz recenzenta", + "workflow-item.selectrevieweraction.button.cancel": "Anuluj", + "workflow-item.selectrevieweraction.button.confirm": "Zatwierdź", + "workflow-item.scorereviewaction.notification.success.title": "Ocena recenzji", + "workflow-item.scorereviewaction.notification.success.content": "Ocena tej pozycji zostaÅ‚a zapisana", + "workflow-item.scorereviewaction.notification.error.title": "CoÅ› poszÅ‚o nie tak", + "workflow-item.scorereviewaction.notification.error.content": "Nie można ocenić tej pozycji", + "workflow-item.scorereviewaction.title": "OceÅ„ pozycjÄ™", + "workflow-item.scorereviewaction.header": "OceÅ„ pozycjÄ™", + "workflow-item.scorereviewaction.button.cancel": "Anuluj", + "workflow-item.scorereviewaction.button.confirm": "Potwierdź", + "listable-notification-object.default-message": "Ta pozycja nie może być odzyskana", + "system-wide-alert-banner.retrieval.error": "CoÅ› poszÅ‚o nie tak podczas odzyskiwania alertu systemowego", + "system-wide-alert-banner.countdown.prefix": "W", + "system-wide-alert-banner.countdown.days": "{{days}} dni,", + "system-wide-alert-banner.countdown.hours": "{{hours}} godziny", + "system-wide-alert-banner.countdown.minutes": "{{minutes}} minut:", + "menu.section.system-wide-alert": "Alert systemowy", + "system-wide-alert.form.header": "Alert systemowy", + "system-wide-alert-form.retrieval.error": "CoÅ› poszÅ‚o nie tak podczas odzyskiwania alertu systemowego", + "system-wide-alert.form.cancel": "Anuluj", + "system-wide-alert.form.save": "Zapisz", + "system-wide-alert.form.label.active": "AKTYWNE", + "system-wide-alert.form.label.inactive": "NIEAKTYWNE", + "system-wide-alert.form.error.message": "Alert systemowy musi zawierać wiadomość", + "system-wide-alert.form.label.message": "Alert systemowy", + "system-wide-alert.form.label.countdownTo.enable": "Wprowadź licznik czasowy", + "system-wide-alert.form.label.countdownTo.hint": "Wskazówka: Wpisz wartość licznika czasu. Kiedy licznik jest wÅ‚Ä…czony, alert systemowy zostanie wyÅ›wietlony o wybranym czasie. Kiedy odliczanie zostanie zakoÅ„czone, alert systemowy zostanie wyÅ‚Ä…czony. Serwer NIE zostanie zatrzymany automatycznie.", + "system-wide-alert.form.label.preview": "PodglÄ…d alertu systemowego", + "system-wide-alert.form.update.success": "Alert systemowy zostaÅ‚ zaktualizowany", + "system-wide-alert.form.update.error": "CoÅ› poszÅ‚o nie tak podczas aktualizacji alertu systemowego", + "system-wide-alert.form.create.success": "Alert systemowy zostaÅ‚ utworzony", + "system-wide-alert.form.create.error": "CoÅ› poszÅ‚o nie tak podczas tworzenia alertu systemowego", + "admin.system-wide-alert.breadcrumbs": "Alerty systemowe", + "admin.system-wide-alert.title": "Alerty systemowe", + "item-access-control-title": "Ta strona pozwala na zmianÄ™ dostÄ™pów metadanych pozycji i plików do nich doÅ‚Ä…czonych.", + "collection-access-control-title": "Ta strona pozwala na zmianÄ™ warunków dostÄ™pu dla wszystkich pozycji w tej kolekcji. Zmiany mogÄ… być wykonywane zarówno na metadanych pozycji jak i plikach do nich doÅ‚Ä…czonych.", + "community-access-control-title": "Ta strona pozwala na zmianÄ™ warunków dostÄ™pu dla wszystkich pozycji w każdej kolekcji w tym zbiorze. Zmiany mogÄ… być wykonywane zarówno na metadanych pozycji jak i plikach do nich doÅ‚Ä…czonych.", + "access-control-item-header-toggle": "Metadane pozycji", + "access-control-bitstream-header-toggle": "Pliki", + "access-control-mode": "Tryb", + "access-control-access-conditions": "Warunki dostÄ™pu", + "access-control-no-access-conditions-warning-message": "W tym momencie żadne warunki dostÄ™pu nie zostaÅ‚y okreÅ›lone. JeÅ›li zadanie zostanie rozpoczÄ™te, obecne warunki dostÄ™pu zostanÄ… zastÄ…pione domyÅ›lnymi warunkami dostÄ™pu z nadrzÄ™dnej kolekcji.", + "access-control-replace-all": "ZastÄ…p warunki dostÄ™pu", + "access-control-add-to-existing": "Dodaj do już istniejÄ…cych", + "access-control-limit-to-specific": "Ogranicz zmiany do wybranych plików", + "access-control-process-all-bitstreams": "Zaktualizuj wszystkie pliki dla tej pozycji", + "access-control-bitstreams-selected": "wybrane pliki", + "access-control-cancel": "Anuluj", + "access-control-execute": "Wykonaj", + "access-control-add-more": "Dodaj wiÄ™cej", + "access-control-select-bitstreams-modal.title": "Wybierz pliki", + "access-control-select-bitstreams-modal.no-items": "Brak pozycji do wyÅ›wietlenia.", + "access-control-select-bitstreams-modal.close": "Zamknij", + "access-control-option-label": "Typ warunków dostÄ™pu", + "access-control-option-note": "Wybierz warunki dostÄ™pu, które chcesz przypisać do zaznaczonych pozycji.", + "access-control-option-start-date": "DostÄ™p od", + "access-control-option-start-date-note": "Wybierz datÄ™, kiedy wybrane warunki dostÄ™pu majÄ… obowiÄ…zywać", + "access-control-option-end-date": "DostÄ™p do", + "access-control-option-end-date-note": "Wybierz datÄ™, kiedy wybrane warunki dostÄ™pu majÄ… obowiÄ…zywać", } -- GitLab From 95cde220e6a9cebb335223478718fc05e96d3d6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Dykas?= <96572102+michdyk@users.noreply.github.com> Date: Tue, 22 Aug 2023 15:50:37 +0200 Subject: [PATCH 038/183] Update pl.json5 fix issues from tests (cherry picked from commit 93299ec83da645189b1183806faee1d11a8e2e20) --- src/assets/i18n/pl.json5 | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/assets/i18n/pl.json5 b/src/assets/i18n/pl.json5 index 39e1fce8e6..0bc2b2ec4a 100644 --- a/src/assets/i18n/pl.json5 +++ b/src/assets/i18n/pl.json5 @@ -2336,12 +2336,12 @@ "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.email": "Adres e-mail", "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.netid": "NetID", "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit": "UsuÅ„ / Dodaj", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.remove": "UsuÅ„ użytkownika z nazwÄ™ "{{name}}"", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.addMember": "Dodano użytkownika o nazwie: "{{name}}"", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.addMember": "Nie dodano użytkownika: "{{name}}"", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.deleteMember": "UsuniÄ™to użytkownika: "{{name}}"", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.deleteMember": "Nie usuniÄ™to użytkownika: "{{name}}"", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.add": "Dodano użytkownika "{{name}}"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.remove": "UsuÅ„ użytkownika z nazwÄ™ \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.addMember": "Dodano użytkownika o nazwie: \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.addMember": "Nie dodano użytkownika: \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.deleteMember": "UsuniÄ™to użytkownika: \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.deleteMember": "Nie usuniÄ™to użytkownika: \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.add": "Dodano użytkownika \"{{name}}\"", "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.noActiveGroup": "Brak aktywnej grupy, najpierw wpisz nazwÄ™.", "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-members-yet": "W tej grupie nie ma użytkowników, wyszukaj ich i dodaj.", "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-items": "Nie znaleziono żadnych użytkowników", @@ -2381,7 +2381,7 @@ "supervision-group-selector.notification.create.failure.title": "BÅ‚Ä…d", "supervision-group-selector.notification.create.already-existing": "Funkcja recenzenta już jest przypisana do tej grupy", "confirmation-modal.delete-subscription.header": "UsuÅ„ subksrypcje", - "confirmation-modal.delete-subscription.info": "Czy na pewno chcesz usunąć subskrypcjÄ™: "{{ dsoName }}"", + "confirmation-modal.delete-subscription.info": "Czy na pewno chcesz usunąć subskrypcjÄ™: \"{{ dsoName }}\"", "confirmation-modal.delete-subscription.cancel": "Anuluj", "confirmation-modal.delete-subscription.confirm": "UsuÅ„", "error.validation.metadata.name.invalid-pattern": "To pole nie może zawierać kropek, przecinków i spacji. Zamiast tego This field cannot contain dots, commas or spaces. Zamiast tego może użyć pól z notacji SNEQ", @@ -2433,8 +2433,8 @@ "workflow-item.search.result.delete-supervision.modal.info": "Czy na pewno usunąć zadanie dla recenzenta", "workflow-item.search.result.delete-supervision.modal.cancel": "Anuluj", "workflow-item.search.result.delete-supervision.modal.confirm": "UsuÅ„", - "workflow-item.search.result.notification.deleted.success": "UsuniÄ™to zadanie dla recenzenta "{{name}}"", - "workflow-item.search.result.notification.deleted.failure": "Nie usuniÄ™to zadania dla recenzenta "{{name}}"", + "workflow-item.search.result.notification.deleted.success": "UsuniÄ™to zadanie dla recenzenta \"{{name}}\"", + "workflow-item.search.result.notification.deleted.failure": "Nie usuniÄ™to zadania dla recenzenta \"{{name}}\"", "workflow-item.search.result.list.element.supervised-by": "Recenzja:", "workflow-item.search.result.list.element.supervised.remove-tooltip": "UsuÅ„ grupÄ™ recenzenckÄ…", "item.preview.dc.subject": "SÅ‚owo kluczowe:", @@ -2482,8 +2482,8 @@ "register-page.registration.email.error.not-valid-domain": "Użyj adresu e-mail z domeny: {{ domains }}", "register-page.registration.error.maildomain": "Tego adresu e-mail nie możesz zarejestrować, ponieważ nie ma go na liÅ›cie domen. Dozwolone domeny to: {{ domains }}", "register-page.registration.info.maildomain": "Konta mogÄ… być zaÅ‚ożone dla adresów e-mail z domenÄ…", - "repository.title": "Repozytorium DSpace" - "search.filters.applied.f.supervisedBy": "Recenzent" + "repository.title": "Repozytorium DSpace", + "search.filters.applied.f.supervisedBy": "Recenzent", "search.filters.filter.show-tree": "PrzeglÄ…daj {{ name }} strukturÄ™ recenzentów", "search.filters.filter.supervisedBy.head": "Recenzent", "search.filters.filter.supervisedBy.placeholder": "Recenzent", -- GitLab From 0efb95825da776d709470706a70ea49e5ce2c42a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Dykas?= <96572102+michdyk@users.noreply.github.com> Date: Tue, 22 Aug 2023 16:18:36 +0200 Subject: [PATCH 039/183] Update pl.json5 fix test 2 spaces instead of 1 (cherry picked from commit f58a7a2e9b4ea09359c48604d1867ca94185977b) --- src/assets/i18n/pl.json5 | 5238 +++++++++++++++++++------------------- 1 file changed, 2619 insertions(+), 2619 deletions(-) diff --git a/src/assets/i18n/pl.json5 b/src/assets/i18n/pl.json5 index 0bc2b2ec4a..7a857ae4fd 100644 --- a/src/assets/i18n/pl.json5 +++ b/src/assets/i18n/pl.json5 @@ -1,2621 +1,2621 @@ { - "401.help": "Nie masz uprawnieÅ„ do dostÄ™pu do tej strony. Możesz użyć przycisku poniżej, aby powrócić do strony głównej.", - "401.link.home-page": "Zabierz mnie na stronÄ™ głównÄ…", - "401.unauthorized": "nieautoryzowany", - "403.help": "Nie masz uprawnieÅ„ do dostÄ™pu do tej strony. Możesz użyć przycisku poniżej, aby wrócić do strony głównej.", - "403.link.home-page": "Zabierz mnie na stronÄ™ głównÄ…", - "403.forbidden": "zabroniony", - "404.help": "Nie możemy znaleźć strony, której szukasz. Strona mogÅ‚a zostać przeniesiona lub usuniÄ™ta. Możesz użyć przycisku poniżej, aby powrócić do strony głównej. ", - "404.link.home-page": "Zabierz mnie na stronÄ™ głównÄ…", - "404.page-not-found": "strona nie zostaÅ‚a znaleziona", - "admin.curation-tasks.breadcrumbs": "Systemowe zadania administracyjne", - "admin.curation-tasks.title": "Systemowe zadania administracyjne", - "admin.curation-tasks.header": "Systemowe zadania administracyjne", - "admin.registries.bitstream-formats.breadcrumbs": "Rejestr formatów", - "admin.registries.bitstream-formats.create.breadcrumbs": "Format strumienia bitów", - "admin.registries.bitstream-formats.create.failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia nowego formatu strumienia bitów.", - "admin.registries.bitstream-formats.create.failure.head": "Nie udaÅ‚o siÄ™", - "admin.registries.bitstream-formats.create.head": "Utwórz nowy format", - "admin.registries.bitstream-formats.create.new": "Dodaj nowy format", - "admin.registries.bitstream-formats.create.success.content": "Nowy format strumienia bitów zostaÅ‚ pomyÅ›lnie utworzony.", - "admin.registries.bitstream-formats.create.success.head": "UdaÅ‚o siÄ™", - "admin.registries.bitstream-formats.delete.failure.amount": "Nie udaÅ‚o siÄ™ usunąć {{ amount }} formatu(ów)", - "admin.registries.bitstream-formats.delete.failure.head": "Nie udaÅ‚o siÄ™", - "admin.registries.bitstream-formats.delete.success.amount": "UdaÅ‚o siÄ™ usunąć {{ amount }} formatu(ów)", - "admin.registries.bitstream-formats.delete.success.head": "UdaÅ‚o siÄ™", - "admin.registries.bitstream-formats.description": "Na liÅ›cie formatów wyÅ›wietlono informacje o obsÅ‚ugiwanych formatach i czy sÄ… one wspierane przez system.", - "admin.registries.bitstream-formats.edit.breadcrumbs": "Format strumienia bitów", - "admin.registries.bitstream-formats.edit.description.hint": "", - "admin.registries.bitstream-formats.edit.description.label": "Opis", - "admin.registries.bitstream-formats.edit.extensions.hint": "Rozszerzenia to rozszerzenia plików, które sÄ… używane do automatycznej identyfikacji formatu przesyÅ‚anych plików. Możesz wprowadzić kilka rozszerzeÅ„ dla każdego formatu.", - "admin.registries.bitstream-formats.edit.extensions.label": "Rozszerzenia plików", - "admin.registries.bitstream-formats.edit.extensions.placeholder": "Wprowadź rozszerzenie pliku bez kropki", - "admin.registries.bitstream-formats.edit.failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas edycji formatu pliku.", - "admin.registries.bitstream-formats.edit.failure.head": "Nie udaÅ‚o siÄ™", - "admin.registries.bitstream-formats.edit.head": "Format plików: {{ format }}", - "admin.registries.bitstream-formats.edit.internal.hint": "Formaty oznaczone jako wewnÄ™trzne sÄ… ukryte przed użytkownikiem i wykorzystywane do celów administracyjnych.", - "admin.registries.bitstream-formats.edit.internal.label": "WewnÄ™trzny", - "admin.registries.bitstream-formats.edit.mimetype.hint": "Typ MIME powiÄ…zany z tym formatem, nie musi być unikalny.", - "admin.registries.bitstream-formats.edit.mimetype.label": "Typ MIME", - "admin.registries.bitstream-formats.edit.shortDescription.hint": "Unikalna nazwa dla tego formatu, (np. Microsoft Word XP lub Microsoft Word 2000)", - "admin.registries.bitstream-formats.edit.shortDescription.label": "Nazwa", - "admin.registries.bitstream-formats.edit.success.content": "Format strumienia bitów zostaÅ‚ pomyÅ›lnie edytowany.", - "admin.registries.bitstream-formats.edit.success.head": "UdaÅ‚o siÄ™", - "admin.registries.bitstream-formats.edit.supportLevel.hint": "Poziom wsparcia, jaki Twoja instytucja deklaruje dla tego formatu.", - "admin.registries.bitstream-formats.edit.supportLevel.label": "ObsÅ‚ugiwany format", - "admin.registries.bitstream-formats.head": "Rejestr formatów", - "admin.registries.bitstream-formats.no-items": "Brak formatów plików do wyÅ›wietlenia.", - "admin.registries.bitstream-formats.table.delete": "UsuÅ„ zaznaczone", - "admin.registries.bitstream-formats.table.deselect-all": "Odznacz wszystkie", - "admin.registries.bitstream-formats.table.internal": "wewnÄ™trzne", - "admin.registries.bitstream-formats.table.mimetype": "Typ MIME", - "admin.registries.bitstream-formats.table.name": "Nazwa", - "admin.registries.bitstream-formats.table.return": "Powrót", - "admin.registries.bitstream-formats.table.supportLevel.KNOWN": "Znane", - "admin.registries.bitstream-formats.table.supportLevel.SUPPORTED": "Wspierane", - "admin.registries.bitstream-formats.table.supportLevel.UNKNOWN": "Nieznane", - "admin.registries.bitstream-formats.table.supportLevel.head": "ObsÅ‚ugiwany format", - "admin.registries.bitstream-formats.title": "Rejestr formatów plików", - "admin.registries.metadata.breadcrumbs": "Rejestr metadanych", - "admin.registries.metadata.description": "W rejestrze metadanych przechowywana jest lista wszystkich pól metadanych dostÄ™pnych w repozytorium. Przechowywane pola sÄ… przechowywane w kilku rejestrach. DSpace wymaga kwalifikowanego rejestru metadanych Dublin Core.", - "admin.registries.metadata.form.create": "Utwórz schemat metadanych", - "admin.registries.metadata.form.edit": "Edytuj schemat metadanych", - "admin.registries.metadata.form.name": "Nazwa", - "admin.registries.metadata.form.namespace": "Nazwa schematu", - "admin.registries.metadata.head": "Rejestr metadanych", - "admin.registries.metadata.schemas.no-items": "Brak rejestrów metadanych do pokazania.", - "admin.registries.metadata.schemas.table.delete": "UsuÅ„ zaznaczone", - "admin.registries.metadata.schemas.table.id": "ID", - "admin.registries.metadata.schemas.table.name": "Nazwa", - "admin.registries.metadata.schemas.table.namespace": "Nazwa schematu", - "admin.registries.metadata.title": "Rejestr metadanych", - "admin.registries.schema.breadcrumbs": "Schemat metadanych", - "admin.registries.schema.description": "Ten schemat metadanych jest stworzony na podstawie \"{{namespace}}\".", - "admin.registries.schema.fields.head": "Pola schematu metadanych", - "admin.registries.schema.fields.no-items": "Brak pól metadanych do pokazania.", - "admin.registries.schema.fields.table.delete": "UsuÅ„ zaznaczone", - "admin.registries.schema.fields.table.field": "Pole", - "admin.registries.schema.fields.table.scopenote": "Uwagi", - "admin.registries.schema.form.create": "Stwórz pole metadanych", - "admin.registries.schema.form.edit": "Edytuj pole metadanych", - "admin.registries.schema.form.element": "Element", - "admin.registries.schema.form.qualifier": "Kwalifikator", - "admin.registries.schema.form.scopenote": "Uwagi", - "admin.registries.schema.head": "Schemat metadanych", - "admin.registries.schema.notification.created": "UdaÅ‚o siÄ™ utworzyć schemat metdanych \"{{prefix}}\"", - "admin.registries.schema.notification.deleted.failure": "Nie udaÅ‚o siÄ™ usunąć {{amount}} schematów metadanych", - "admin.registries.schema.notification.deleted.success": "UdaÅ‚o siÄ™ usunąć {{amount}} schematów metadanych", - "admin.registries.schema.notification.edited": "UdaÅ‚o siÄ™ edytować schemat metadanych \"{{prefix}}\"", - "admin.registries.schema.notification.failure": "BÅ‚Ä…d", - "admin.registries.schema.notification.field.created": "UdaÅ‚o siÄ™ utworzyć pole metadanych \"{{field}}\"", - "admin.registries.schema.notification.field.deleted.failure": "Nie udaÅ‚o siÄ™ usunąć {{amount}} pól metadanych", - "admin.registries.schema.notification.field.deleted.success": "UdaÅ‚o siÄ™ usunąć {{amount}} pól metadanych", - "admin.registries.schema.notification.field.edited": "SUdaÅ‚o siÄ™ edytować pole metadanych \"{{field}}\"", - "admin.registries.schema.notification.success": "UdaÅ‚o siÄ™", - "admin.registries.schema.return": "Powrót", - "admin.registries.schema.title": "Rejestr schematów metadanych", - "admin.access-control.epeople.actions.delete": "UsuÅ„ użytkownika", - "admin.access-control.epeople.actions.impersonate": "Personifikuj użytkownika", - "admin.access-control.epeople.actions.reset": "Zresetuj hasÅ‚o", - "admin.access-control.epeople.actions.stop-impersonating": "PrzestaÅ„ personifikować użytkownika", - "admin.access-control.epeople.breadcrumbs": "Użytkownicy", - "admin.access-control.epeople.title": "Użytkownicy", - "admin.access-control.epeople.head": "Użytkownicy", - "admin.access-control.epeople.search.head": "Wyszukaj", - "admin.access-control.epeople.button.see-all": "PrzeglÄ…daj wszystko", - "admin.access-control.epeople.search.scope.metadata": "Metadane", - "admin.access-control.epeople.search.scope.email": "E-mail", - "admin.access-control.epeople.search.button": "Wyszukaj", - "admin.access-control.epeople.search.placeholder": "Wyszukaj użytkownika...", - "admin.access-control.epeople.button.add": "Dodaj użytkownika", - "admin.access-control.epeople.table.id": "ID", - "admin.access-control.epeople.table.name": "Nazwa", - "admin.access-control.epeople.table.email": "E-mail", - "admin.access-control.epeople.table.edit": "Edytuj", - "admin.access-control.epeople.table.edit.buttons.edit": "Edytuj \"{{name}}\"", - "admin.access-control.epeople.table.edit.buttons.edit-disabled": "Brak uprawnieÅ„ do edycji wybranej grupy", - "admin.access-control.epeople.table.edit.buttons.remove": "UsuÅ„ \"{{name}}\"", - "admin.access-control.epeople.no-items": "Brak użytkowników do wyÅ›wietlenia.", - "admin.access-control.epeople.form.create": "Utwórz użytkownika", - "admin.access-control.epeople.form.edit": "Edytuj użytkownika", - "admin.access-control.epeople.form.firstName": "ImiÄ™", - "admin.access-control.epeople.form.lastName": "Nazwisko", - "admin.access-control.epeople.form.email": "E-mail", - "admin.access-control.epeople.form.emailHint": "Adres e-mail musi być poprawny", - "admin.access-control.epeople.form.canLogIn": "Możliwość zalogowania", - "admin.access-control.epeople.form.requireCertificate": "Wymagany certyfikat", - "admin.access-control.epeople.form.return": "Powrót", - "admin.access-control.epeople.form.notification.created.success": "UdaÅ‚o siÄ™ utworzyć użytkownika \"{{name}}\"", - "admin.access-control.epeople.form.notification.created.failure": "Nie udaÅ‚o siÄ™ utworzyć użytkownika \"{{name}}\"", - "admin.access-control.epeople.form.notification.created.failure.emailInUse": "Nie udaÅ‚o siÄ™ utworzyć użytkownika \"{{name}}\", email \"{{email}}\" już w użyciu.", - "admin.access-control.epeople.form.notification.edited.failure.emailInUse": "Nie udaÅ‚o siÄ™ utworzyć użytkownika \"{{name}}\", email \"{{email}}\" już w użyciu.", - "admin.access-control.epeople.form.notification.edited.success": "UdaÅ‚o siÄ™ edytować użytkownika \"{{name}}\"", - "admin.access-control.epeople.form.notification.edited.failure": "Nie udaÅ‚o siÄ™ edytować użytkownika \"{{name}}\"", - "admin.access-control.epeople.form.notification.deleted.success": "UdaÅ‚o siÄ™ usunąć użytkownika \"{{name}}\"", - "admin.access-control.epeople.form.notification.deleted.failure": "Nie udaÅ‚o siÄ™ usunąć użytkownika \"{{name}}\"", - "admin.access-control.epeople.form.groupsEPersonIsMemberOf": "CzÅ‚onek grup:", - "admin.access-control.epeople.form.table.id": "ID", - "admin.access-control.epeople.form.table.name": "Nazwa", - "admin.access-control.epeople.form.table.collectionOrCommunity": "Zbiór/kolekcja", - "admin.access-control.epeople.form.memberOfNoGroups": "Ten użytkownik nie jest czÅ‚onkiem żadnej grupy", - "admin.access-control.epeople.form.goToGroups": "Dodaj do grup", - "admin.access-control.epeople.notification.deleted.failure": "Nie udaÅ‚o siÄ™ usunąć użytkownika: \"{{name}}\"", - "admin.access-control.epeople.notification.deleted.success": "UdaÅ‚o siÄ™ usunąć użytkownika: \"{{name}}\"", - "admin.access-control.groups.title": "Grupy", - "admin.access-control.groups.breadcrumbs": "Grupy", - "admin.access-control.groups.singleGroup.breadcrumbs": "Edytuj grupÄ™", - "admin.access-control.groups.title.singleGroup": "Edytuj grupÄ™", - "admin.access-control.groups.title.addGroup": "Nowa grupa", - "admin.access-control.groups.addGroup.breadcrumbs": "Nowa grupa", - "admin.access-control.groups.head": "Grupy/role", - "admin.access-control.groups.button.add": "Dodaj grupÄ™", - "admin.access-control.groups.search.head": "Szukaj grup", - "admin.access-control.groups.button.see-all": "Przeszukaj wszystko", - "admin.access-control.groups.search.button": "Wyszukaj", - "admin.access-control.groups.search.placeholder": "Wyszukaj grupy...", - "admin.access-control.groups.table.id": "ID", - "admin.access-control.groups.table.name": "Nazwa", - "admin.access-control.groups.table.collectionOrCommunity": "Zbiór/kolekcja", - "admin.access-control.groups.table.members": "CzÅ‚onkowie", - "admin.access-control.groups.table.edit": "Edytuj", - "admin.access-control.groups.table.edit.buttons.edit": "Edytuj \"{{name}}\"", - "admin.access-control.groups.no-items": "Nie znaleziono grup z podanÄ… frazÄ… lub podanym UUID", - "admin.access-control.groups.notification.deleted.success": "UdaÅ‚o siÄ™ usunąć grupÄ™ \"{{name}}\"", - "admin.access-control.groups.notification.deleted.failure.title": "Nie udaÅ‚o siÄ™ usunąć grupy \"{{name}}\"", - "admin.access-control.groups.notification.deleted.failure.content": "Powód: \"{{cause}}\"", - "admin.access-control.groups.form.alert.permanent": "Ta grupa jest staÅ‚a, wiÄ™c nie może być edytowana ani usuniÄ™ta. Nadal możesz dodawać i usuwać czÅ‚onków grupy za pomocÄ… tej strony.", - "admin.access-control.groups.form.alert.workflowGroup": "Ta grupa nie może być edytowana lub usuniÄ™ta, ponieważ odnosi siÄ™ do roli lub bierze udziaÅ‚ w procesie \"{{name}}\" {{comcol}}. Możesz jÄ… usunąć ze strony <a href='{{comcolEditRolesRoute}}'>\"assign roles\"</a> edycji {{comcol}}. Wciąż może dodawać i usuwać czÅ‚onków tej grupy, korzystajÄ…c z tej strony.", - "admin.access-control.groups.form.head.create": "Utwórz grupÄ™", - "admin.access-control.groups.form.head.edit": "Edytuj grupÄ™", - "admin.access-control.groups.form.groupName": "Nazwa grupy", - "admin.access-control.groups.form.groupCommunity": "Zbiór lub kolekcja", - "admin.access-control.groups.form.groupDescription": "Opis", - "admin.access-control.groups.form.notification.created.success": "UdaÅ‚o siÄ™ utworzyć grupÄ™ \"{{name}}\"", - "admin.access-control.groups.form.notification.created.failure": "Nie udaÅ‚o siÄ™ utworzyć grupy \"{{name}}\"", - "admin.access-control.groups.form.notification.created.failure.groupNameInUse": "Nie udaÅ‚o siÄ™ utworzyć grupy o nazwie: \"{{name}}\", upewnij siÄ™, że nazwa nie jest już używana.", - "admin.access-control.groups.form.notification.edited.failure": "Nie udaÅ‚o siÄ™ edytować grupy \"{{name}}\"", - "admin.access-control.groups.form.notification.edited.failure.groupNameInUse": "Nazwa \"{{name}}\" już w użyciu!", - "admin.access-control.groups.form.notification.edited.success": "UdaÅ‚o siÄ™ edytować grupÄ™ \"{{name}}\"", - "admin.access-control.groups.form.actions.delete": "UsuÅ„ grupÄ™", - "admin.access-control.groups.form.delete-group.modal.header": "UsuÅ„ grupÄ™ \"{{ dsoName }}\"", - "admin.access-control.groups.form.delete-group.modal.info": "Czy na pewno chcesz usunąć grupÄ™ \"{{ dsoName }}\"", - "admin.access-control.groups.form.delete-group.modal.cancel": "Anuluj", - "admin.access-control.groups.form.delete-group.modal.confirm": "UsuÅ„", - "admin.access-control.groups.form.notification.deleted.success": "UdaÅ‚o siÄ™ usunąć grupÄ™ \"{{ name }}\"", - "admin.access-control.groups.form.notification.deleted.failure.title": "Nie udaÅ‚o siÄ™ usunąć grupy \"{{ name }}\"", - "admin.access-control.groups.form.notification.deleted.failure.content": "Powód: \"{{ cause }}\"", - "admin.access-control.groups.form.members-list.head": "Użytkownik", - "admin.access-control.groups.form.members-list.search.head": "Dodaj użytkownika", - "admin.access-control.groups.form.members-list.button.see-all": "Pokaż wszystkich", - "admin.access-control.groups.form.members-list.headMembers": "Aktualni czÅ‚onkowie", - "admin.access-control.groups.form.members-list.search.scope.metadata": "Metadane", - "admin.access-control.groups.form.members-list.search.scope.email": "E-mail", - "admin.access-control.groups.form.members-list.search.button": "Wyszukaj", - "admin.access-control.groups.form.members-list.table.id": "ID", - "admin.access-control.groups.form.members-list.table.name": "Nazwa", - "admin.access-control.groups.form.members-list.table.identity": "Tożsamość", - "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.edit": "UsuÅ„ / Dodaj", - "admin.access-control.groups.form.members-list.table.edit.buttons.remove": "UsuÅ„ użytkownika o nazwie \"{{name}}\"", - "admin.access-control.groups.form.members-list.notification.success.addMember": "UdaÅ‚o siÄ™ dodać użytkownika o nazwie: \"{{name}}\"", - "admin.access-control.groups.form.members-list.notification.failure.addMember": "Nie udaÅ‚o siÄ™ dodać użytkownika o nazwie: \"{{name}}\"", - "admin.access-control.groups.form.members-list.notification.success.deleteMember": "UdaÅ‚o siÄ™ usunąć użytkownika o nazwie: \"{{name}}\"", - "admin.access-control.groups.form.members-list.notification.failure.deleteMember": "Nie udaÅ‚o siÄ™ usunąć użytkownika o nazwie: \"{{name}}\"", - "admin.access-control.groups.form.members-list.table.edit.buttons.add": "Dodaj użytkownika o nazwie \"{{name}}\"", - "admin.access-control.groups.form.members-list.notification.failure.noActiveGroup": "Brak aktywnej grupy, najpierw wpisz nazwÄ™ grupy.", - "admin.access-control.groups.form.members-list.no-members-yet": "Brak użytkowników w grupie, wyszukaj ich i dodaj.", - "admin.access-control.groups.form.members-list.no-items": "Nie znaleziono użytkowników podczas wyszukiwania", - "admin.access-control.groups.form.subgroups-list.notification.failure": "CoÅ› poszÅ‚o nie tak: \"{{cause}}\"", - "admin.access-control.groups.form.subgroups-list.head": "Grupy", - "admin.access-control.groups.form.subgroups-list.search.head": "Dodaj podgrupÄ™", - "admin.access-control.groups.form.subgroups-list.button.see-all": "PrzeglÄ…daj wszystkie", - "admin.access-control.groups.form.subgroups-list.headSubgroups": "Aktualne podgrupy", - "admin.access-control.groups.form.subgroups-list.search.button": "Wyszukaj", - "admin.access-control.groups.form.subgroups-list.table.id": "ID", - "admin.access-control.groups.form.subgroups-list.table.name": "Nazwa", - "admin.access-control.groups.form.subgroups-list.table.collectionOrCommunity": "Zbiór/kolekcja", - "admin.access-control.groups.form.subgroups-list.table.edit": "UsuÅ„ / Dodaj", - "admin.access-control.groups.form.subgroups-list.table.edit.buttons.remove": "UsuÅ„ podgrupÄ™ o nazwie \"{{name}}\"", - "admin.access-control.groups.form.subgroups-list.table.edit.buttons.add": "Dodaj podgrupÄ™ o nazwie \"{{name}}\"", - "admin.access-control.groups.form.subgroups-list.table.edit.currentGroup": "Aktualna grupa", - "admin.access-control.groups.form.subgroups-list.notification.success.addSubgroup": "UdaÅ‚o siÄ™ dodać podgrupÄ™: \"{{name}}\"", - "admin.access-control.groups.form.subgroups-list.notification.failure.addSubgroup": "Nie udaÅ‚o siÄ™ dodać podgrupy: \"{{name}}\"", - "admin.access-control.groups.form.subgroups-list.notification.success.deleteSubgroup": "UdaÅ‚o siÄ™ usunąć podgrupÄ™: \"{{name}}\"", - "admin.access-control.groups.form.subgroups-list.notification.failure.deleteSubgroup": "Nie udaÅ‚o siÄ™ usunąć podgrupy: \"{{name}}\"", - "admin.access-control.groups.form.subgroups-list.notification.failure.noActiveGroup": "Brak aktywnej grupy, najpierw wpisz nazwÄ™ grupy.", - "admin.access-control.groups.form.subgroups-list.notification.failure.subgroupToAddIsActiveGroup": "Ta grupa jest już stworzona i nie może zostać dodana pononwie.", - "admin.access-control.groups.form.subgroups-list.no-items": "Nie znaleziono grup z tÄ… nazwÄ… lub UUID", - "admin.access-control.groups.form.subgroups-list.no-subgroups-yet": "Brak podgrup w grupie.", - "admin.access-control.groups.form.return": "Powrót", - "admin.search.breadcrumbs": "Wyszukiwanie administracyjne", - "admin.search.collection.edit": "Edytuj", - "admin.search.community.edit": "Edytuj", - "admin.search.item.delete": "UsuÅ„", - "admin.search.item.edit": "Edytuj", - "admin.search.item.make-private": "Ukryj", - "admin.search.item.make-public": "Upublicznij", - "admin.search.item.move": "PrzenieÅ›", - "admin.search.item.reinstate": "ZmieÅ„ instancjÄ™", - "admin.search.item.withdraw": "Wycofane", - "admin.search.title": "Wyszukiwanie administracyjne", - "administrativeView.search.results.head": "Wyszukiwanie administracyjne", - "admin.workflow.breadcrumbs": "ZarzÄ…dzaj procesem", - "admin.workflow.title": "ZarzÄ…dzaj procesem", - "admin.workflow.item.workflow": "Proces", - "admin.workflow.item.delete": "UsuÅ„", - "admin.workflow.item.send-back": "OdeÅ›lij z powrotem", - "admin.metadata-import.breadcrumbs": "Importuj metadane", - "admin.metadata-import.title": "Importuj metadane", - "admin.metadata-import.page.header": "Importuj metadane", - "admin.metadata-import.page.help": "Tutaj możesz zaimportować pliki CSV, w których znajdujÄ… siÄ™ metadane do operacji wsadowej. Zaimportuj je poprzez upuszczenie ich lub znajdź je na swoim komputerze", - "admin.metadata-import.page.dropMsg": "Upuść plik w formacie CSV", - "admin.metadata-import.page.dropMsgReplace": "Upuść, aby zastÄ…pić metadane w formacie CSV do importu", - "admin.metadata-import.page.button.return": "Powrót", - "admin.metadata-import.page.button.proceed": "Zastosuj", - "admin.metadata-import.page.error.addFile": "Najpierw wybierz plik!", - "auth.errors.invalid-user": "NiewÅ‚aÅ›ciwy adres e-mail lub hasÅ‚o.", - "auth.messages.expired": "Twoja sesja wygasÅ‚a. Zaloguj siÄ™ ponownie.", - "auth.messages.token-refresh-failed": "OdÅ›wieżenie sesji nie powiodÅ‚o siÄ™. Zaloguj siÄ™ ponownie.", - "bitstream.download.page": "Pobieranie {{bitstream}}...", - "bitstream.download.page.back": "Powrót", - "bitstream.edit.authorizations.link": "Edytuj polityki plików", - "bitstream.edit.authorizations.title": "Edytuj polityki plików", - "bitstream.edit.return": "Powrót", - "bitstream.edit.bitstream": "Pliki: ", - "bitstream.edit.form.description.hint": "Opcjonalnie wprowadź krótki opis pliku, np.: \"<i>Główna część artykuÅ‚u</i>\" lub \"<i>Dane z eksperymentu</i>\".", - "bitstream.edit.form.description.label": "Opis", - "bitstream.edit.form.embargo.hint": "Pierwszy dzieÅ„, od kiedy dostÄ™p zostanie udzielony. <b>Tej daty nie może być edytować w tym formularzu.</b> Aby wybrać okres embarga czasowego, wybierz <i>Status pozycji</i> tab, kliknij <i>Autoryzacje...</i>, stwórz lub edytuj plik <i>PRZEYCZTAJ</i> zasady i wybierz okreÅ›lonÄ… <i>DatÄ™ poczÄ…tkowÄ…</i>.", - "bitstream.edit.form.embargo.label": "Embargo do wybranej daty", - "bitstream.edit.form.fileName.hint": "Zmiana nazwy pliku dla strumienia bitów. Zauważ, że zmieni to wyÅ›wietlany adres URL strumienia bitów, ale stare linki nadal bÄ™dÄ… dziaÅ‚ać, o ile nie zmieni siÄ™ identyfikator sekwencji.", - "bitstream.edit.form.fileName.label": "Nazwa pliku", - "bitstream.edit.form.newFormat.label": "Opisz nowy format", - "bitstream.edit.form.newFormat.hint": "Program, którego użyto do stworzenia pliku i numer wersji (np.: \"<i>ACMESoft SuperApp version 1.5</i>\").", - "bitstream.edit.form.primaryBitstream.label": "Pierwotny plik", - "bitstream.edit.form.selectedFormat.hint": "JeÅ›li formatu nie ma na powyższej liÅ›cie, <b>wybierz \"format not in list\" above</b> i opisz jako \"Describe new format\".", - "bitstream.edit.form.selectedFormat.label": "Wybrany format", - "bitstream.edit.form.selectedFormat.unknown": "Tego formatu nie ma na liÅ›cie", - "bitstream.edit.notifications.error.format.title": "WystÄ…piÅ‚ bÅ‚Ä…d podczas zapisu formatu pliku", - "bitstream.edit.notifications.saved.content": "Zmiany w pliku zostaÅ‚y zapisane.", - "bitstream.edit.notifications.saved.title": "Plik zostaÅ‚ zapisany", - "bitstream.edit.title": "Edytuj plik", - "bitstream-request-a-copy.alert.canDownload1": "Masz już dostÄ™p do tego pliki. JeÅ›li chcesz go pobrać, kliknij ", - "bitstream-request-a-copy.alert.canDownload2": "tutaj", - "bitstream-request-a-copy.header": "WystÄ…p o kopiÄ™ wybranego pliku", - "bitstream-request-a-copy.intro": "Wpisz nastÄ™pujÄ…ce informacje, aby wystÄ…pić o kopiÄ™ tej pozycji: ", - "bitstream-request-a-copy.intro.bitstream.one": "WystÄ…pienie o dostÄ™p do nastÄ™pujÄ…cych plików: ", - "bitstream-request-a-copy.intro.bitstream.all": "WystÄ…pienie o dostÄ™p do wszystkich plików. ", - "bitstream-request-a-copy.name.label": "ImiÄ™ *", - "bitstream-request-a-copy.name.error": "ImiÄ™ jest wymagane", - "bitstream-request-a-copy.email.label": "Adres e-mail *", - "bitstream-request-a-copy.email.hint": "Plik zostanie przesÅ‚any na podany adres e-mail", - "bitstream-request-a-copy.email.error": "ProszÄ™ wprowadzić prawidÅ‚owy adres e-mail", - "bitstream-request-a-copy.allfiles.label": "Pliki", - "bitstream-request-a-copy.files-all-false.label": "Tylko plik, dla którego wystÄ…piono o dostÄ™p", - "bitstream-request-a-copy.files-all-true.label": "Wszystkie pliki (w tej pozycji) z ograniczonym dostÄ™pem", - "bitstream-request-a-copy.message.label": "Wiadomość", - "bitstream-request-a-copy.return": "Powrót", - "bitstream-request-a-copy.submit": "WystÄ…p o kopiÄ™", - "bitstream-request-a-copy.submit.success": "WystÄ…pienie o dostÄ™p do pliku zostaÅ‚o przesÅ‚ane.", - "bitstream-request-a-copy.submit.error": "CoÅ› poszÅ‚o nie tak podczas wysyÅ‚ania wystÄ…pienia o dostÄ™p do pliku", - "browse.comcol.by.author": "wg autorów", - "browse.comcol.by.dateissued": "wg daty wydania", - "browse.comcol.by.subject": "wg tematu", - "browse.comcol.by.title": "wg tytuÅ‚u", - "browse.comcol.head": "PrzeglÄ…daj", - "browse.empty": "Brak rekordów do wyÅ›wietlenia.", - "browse.metadata.author": "Autor", - "browse.metadata.dateissued": "Data wydania", - "browse.metadata.subject": "Temat", - "browse.metadata.title": "TytuÅ‚", - "browse.metadata.author.breadcrumbs": "PrzeglÄ…daj wg autorów", - "browse.metadata.dateissued.breadcrumbs": "PrzeglÄ…daj wg daty wydania", - "browse.metadata.subject.breadcrumbs": "PrzeglÄ…daj wg tematów", - "browse.metadata.title.breadcrumbs": "PrzeglÄ…daj wg tytułów", - "browse.startsWith.choose_start": "(Wybierz start)", - "browse.startsWith.choose_year": "(Wybierz rok)", - "browse.startsWith.choose_year.label": "Wybierz rok wydania", - "browse.startsWith.jump": "Przejdź do miejsca w indeksie:", - "browse.startsWith.months.april": "kwiecieÅ„", - "browse.startsWith.months.august": "sierpieÅ„", - "browse.startsWith.months.december": "grudzieÅ„", - "browse.startsWith.months.february": "luty", - "browse.startsWith.months.january": "styczeÅ„", - "browse.startsWith.months.july": "lipiec", - "browse.startsWith.months.june": "czerwiec", - "browse.startsWith.months.march": "marzec", - "browse.startsWith.months.may": "maj", - "browse.startsWith.months.none": "(wybierz miesiÄ…c)", - "browse.startsWith.months.none.label": "Wybierz miesiÄ…c wydania", - "browse.startsWith.months.november": "listopad", - "browse.startsWith.months.october": "październik", - "browse.startsWith.months.september": "wrzesieÅ„", - "browse.startsWith.submit": "Zastosuj", - "browse.startsWith.type_date": "Lub wybierz datÄ™ (rok-miesiÄ…c) i kliknij 'PrzeglÄ…daj'", - "browse.startsWith.type_date.label": "Lub wybierz datÄ™ (rok-miesiÄ…c) i kliknij przycisk przeglÄ…dania", - "browse.startsWith.type_text": "Wpisz kilka pierwszych liter i kliknij przycisk przeglÄ…dania", - "browse.title": "PrzeglÄ…daj {{ collection }} wg {{ field }} {{ value }}", - "chips.remove": "UsuÅ„ chip", - "collection.create.head": "Utwórz kolekcjÄ™", - "collection.create.notifications.success": "UdaÅ‚o siÄ™ utworzyć kolekcjÄ™", - "collection.create.sub-head": "UdaÅ‚o siÄ™ utworzyć kolekcjÄ™ dla zbioru {{ parent }}", - "collection.curate.header": "Administrator kolekcji: {{collection}}", - "collection.delete.cancel": "Anuluj", - "collection.delete.confirm": "Zatwierdź", - "collection.delete.processing": "Usuwanie", - "collection.delete.head": "UsuÅ„ kolekcjÄ™", - "collection.delete.notification.fail": "Kolekcja nie może być usuniÄ™t", - "collection.delete.notification.success": "UdaÅ‚o siÄ™ usunąć kolekcjÄ™", - "collection.delete.text": "Czy na pewno chcesz usunąć kolekcjÄ™ \"{{ dso }}\"", - "collection.edit.delete": "UsuÅ„ kolekcjÄ™", - "collection.edit.head": "Edytuj kolekcjÄ™", - "collection.edit.breadcrumbs": "Edytuj kolekcjÄ™", - "collection.edit.tabs.mapper.head": "Item Mapper", - "collection.edit.tabs.item-mapper.title": "Edytuj kolekcjÄ™ - Item Mapper", - "collection.edit.item-mapper.cancel": "Anuluj", - "collection.edit.item-mapper.collection": "Kolekcja: \"<b>{{name}}</b>\"", - "collection.edit.item-mapper.confirm": "Mapuj wybrane elementy", - "collection.edit.item-mapper.description": "To jest narzÄ™dzie mapowania elementów, które pozwala administratorom kolekcji mapować elementy z innych kolekcji do tej kolekcji. Możesz wyszukiwać elementy z innych kolekcji i mapować je lub przeglÄ…dać listÄ™ aktualnie zmapowanych elementów.", - "collection.edit.item-mapper.head": "Item Mapper - Mapuj pozycje z innych kolekcji", - "collection.edit.item-mapper.no-search": "Wpisz co chcesz wyszukać", - "collection.edit.item-mapper.notifications.map.error.content": "WystÄ…piÅ‚y bÅ‚Ä™dy podczas mapowania {{amount}} pozycji.", - "collection.edit.item-mapper.notifications.map.error.head": "Mapowanie bÅ‚Ä™dów", - "collection.edit.item-mapper.notifications.map.success.content": "UdaÅ‚o siÄ™ zmapować {{amount}} pozycji.", - "collection.edit.item-mapper.notifications.map.success.head": "Mapowanie zakoÅ„czone", - "collection.edit.item-mapper.notifications.unmap.error.content": "BÅ‚Ä™dy wystÄ…piÅ‚y podczas usuwania mapowania z {{amount}} elementów.", - "collection.edit.item-mapper.notifications.unmap.error.head": "UsuÅ„ bÅ‚Ä™dy mapowania", - "collection.edit.item-mapper.notifications.unmap.success.content": "UdaÅ‚o siÄ™ usunąć bÅ‚Ä™dy mapowania z {{amount}} elementów.", - "collection.edit.item-mapper.notifications.unmap.success.head": "Usuwanie mapowania zakoÅ„czone", - "collection.edit.item-mapper.remove": "UsuÅ„ wybrane mapowanie elementów", - "collection.edit.item-mapper.search-form.placeholder": "Wyszukaj pozycje...", - "collection.edit.item-mapper.tabs.browse": "Wyszukaj mapowane elementy", - "collection.edit.item-mapper.tabs.map": "Mapuj nowe elementy", - "collection.edit.logo.delete.title": "UsuÅ„", - "collection.edit.logo.delete-undo.title": "Cofnij usuniÄ™cie", - "collection.edit.logo.label": "Logo kolekcji", - "collection.edit.logo.notifications.add.error": "PrzesyÅ‚anie logo kolekcji nie powiodÅ‚o siÄ™. ProszÄ™ zweryfikować zawartość przed ponownÄ… ", - "collection.edit.logo.notifications.add.success": "UdaÅ‚o siÄ™ przesÅ‚ać logo kolekcji.", - "collection.edit.logo.notifications.delete.success.title": "Logo usuniÄ™te", - "collection.edit.logo.notifications.delete.success.content": "UdaÅ‚o siÄ™ usunąć logo kolekcji", - "collection.edit.logo.notifications.delete.error.title": "BÅ‚Ä…d podczas usuwania loga", - "collection.edit.logo.upload": "Upuść logo kolekcji, aby je wgrać", - "collection.edit.notifications.success": "UdaÅ‚o siÄ™ edytować kolekcjÄ™", - "collection.edit.return": "Powrót", - "collection.edit.tabs.curate.head": "Kurator", - "collection.edit.tabs.curate.title": "Edytowanie kolekcji - kurator", - "collection.edit.tabs.authorizations.head": "Autoryzacje", - "collection.edit.tabs.authorizations.title": "Edytowanie kolekcji - autoryzacje", - "collection.edit.tabs.metadata.head": "Edytuj metadane", - "collection.edit.tabs.metadata.title": "Edytowanie kolekcji - metadane", - "collection.edit.tabs.roles.head": "Przypisz role", - "collection.edit.tabs.roles.title": "Edytowanie kolekcji - role", - "collection.edit.tabs.source.external": "Ta kolekcja pobiera swojÄ… zawartość z zewnÄ™trznego źródÅ‚a", - "collection.edit.tabs.source.form.errors.oaiSource.required": "Musisz wskazać id docelowej kolekcji.", - "collection.edit.tabs.source.form.harvestType": "Odczytywanie zawartoÅ›ci", - "collection.edit.tabs.source.form.head": "Skonfiguruj zewnÄ™trzne źródÅ‚o", - "collection.edit.tabs.source.form.metadataConfigId": "Format metadanych", - "collection.edit.tabs.source.form.oaiSetId": "OkreÅ›lony zestaw ID OAI", - "collection.edit.tabs.source.form.oaiSource": "Dostawca OAI", - "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_BITSTREAMS": "Odczytaj metadane i pliki (wymaga wsparcia ORE)", - "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_REF": "Odczytaj metadane i bibliografiÄ™ (wymaga wsparcia ORE)", - "collection.edit.tabs.source.form.options.harvestType.METADATA_ONLY": "Odczytaj tylko metadane", - "collection.edit.tabs.source.head": "ŹródÅ‚o treÅ›ci", - "collection.edit.tabs.source.notifications.discarded.content": "Twoje zmiany zostaÅ‚y odrzucone. Aby odzyskać swoje zmiany wybierz 'Powrót'", - "collection.edit.tabs.source.notifications.discarded.title": "Zmiany odrzucone", - "collection.edit.tabs.source.notifications.invalid.content": "Zmiany nie zostaÅ‚y zapisane. Sprawdź czy wszystkie pola sÄ… wypeÅ‚nione poprawne przed zapisem.", - "collection.edit.tabs.source.notifications.invalid.title": "NieprawidÅ‚owe metadane", - "collection.edit.tabs.source.notifications.saved.content": "Zmiany wprowadzone w kolekcji zostaÅ‚y zapisane.", - "collection.edit.tabs.source.notifications.saved.title": "ŹródÅ‚o treÅ›ci zapisane", - "collection.edit.tabs.source.title": "Collection Edit - ŹródÅ‚o treÅ›ci", - "collection.edit.template.add-button": "Dodaj", - "collection.edit.template.breadcrumbs": "Szablon pozycji", - "collection.edit.template.cancel": "Anuluj", - "collection.edit.template.delete-button": "UsuÅ„", - "collection.edit.template.edit-button": "Edytuj", - "collection.edit.template.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas odzyskiwania szablonu pozycji", - "collection.edit.template.head": "Edytuj szablon dla kolekcji \"{{ collection }}\"", - "collection.edit.template.label": "Szablon pozycji", - "collection.edit.template.loading": "Å‚adowanie szablonu pozycji...", - "collection.edit.template.notifications.delete.error": "Nie udaÅ‚o siÄ™ usunąć szablonu pozycji", - "collection.edit.template.notifications.delete.success": "UdaÅ‚o siÄ™ usunąć szablon pozycji", - "collection.edit.template.title": "Edytuj szablon pozycji", - "collection.form.abstract": "Opis skrócony", - "collection.form.description": "Tekst powitalny (HTML)", - "collection.form.errors.title.required": "Wpisz nazwÄ™ kolekcji", - "collection.form.license": "Licencja", - "collection.form.provenance": "Pochodzenie", - "collection.form.rights": "Tekst praw autorskich (HTML)", - "collection.form.tableofcontents": "WiadomoÅ›ci (HTML)", - "collection.form.title": "Nazwa", - "collection.form.entityType": "Typ danych", - "collection.page.browse.recent.head": "Ostatnie zgÅ‚oszenia", - "collection.page.browse.recent.empty": "Brak pozycji do wyÅ›wietlenia", - "collection.page.edit": "Edytuj kolekcjÄ™", - "collection.page.handle": "StaÅ‚y URI dla kolekcji", - "collection.page.license": "Licencja", - "collection.page.news": "WiadomoÅ›ci", - "collection.select.confirm": "Zaakceptuj zaznaczone", - "collection.select.empty": "Brak kolekcji do wyÅ›wietlenia", - "collection.select.table.title": "TytuÅ‚", - "collection.source.controls.head": "Kontrolki odczytywania", - "collection.source.controls.test.submit.error": "CoÅ› poszÅ‚o nie tak podczas rozpoczynania testów ustawieÅ„", - "collection.source.controls.test.failed": "Scenariusz testowy ustawieÅ„ nie zadziaÅ‚aÅ‚", - "collection.source.controls.test.completed": "Scenariusz testowy ustawieÅ„ zostaÅ‚ zakoÅ„czony", - "collection.source.controls.test.submit": "Konfiguracja testowa", - "collection.source.controls.test.running": "Testowanie konfiguracji...", - "collection.source.controls.import.submit.success": "Import zostaÅ‚ rozpoczÄ™ty", - "collection.source.controls.import.submit.error": "CoÅ› poszÅ‚o nie tak podczas rozpoczynania importu", - "collection.source.controls.import.submit": "Importuj teraz", - "collection.source.controls.import.running": "Importowanie...", - "collection.source.controls.import.failed": "WystÄ…piÅ‚ bÅ‚Ä…d podczas importu", - "collection.source.controls.import.completed": "Import zakoÅ„czony", - "collection.source.controls.reset.submit.success": "Reset ustawieÅ„ i powtórny import zostaÅ‚y rozpoczÄ™te poprawnie", - "collection.source.controls.reset.submit.error": "CoÅ› poszÅ‚o nie tak podczas rozpoczynania zresetowanego, powtórnego importu", - "collection.source.controls.reset.failed": "WystÄ…piÅ‚ bÅ‚Ä…d podczas resetowania ustawieÅ„ i ponownego importu", - "collection.source.controls.reset.completed": "Reset ustawieÅ„ i powtórny import zostaÅ‚y zakoÅ„czone", - "collection.source.controls.reset.submit": "Resetowanie i powtórny import", - "collection.source.controls.reset.running": "Resetowanie i powtórny import...", - "collection.source.controls.harvest.status": "Status odczytywania:", - "collection.source.controls.harvest.start": "Czas rozpoczÄ™cia odczytywania:", - "collection.source.controls.harvest.last": "Czas ostatniego odczytywania:", - "collection.source.controls.harvest.message": "Informacje nt. odczytywania:", - "collection.source.controls.harvest.no-information": "bd.", - "collection.source.update.notifications.error.content": "Te ustawienia zostaÅ‚y przetestowane i nie dziaÅ‚ajÄ….", - "collection.source.update.notifications.error.title": "BÅ‚Ä…d serwera", - "communityList.breadcrumbs": "Lista zbiorów", - "communityList.tabTitle": "Lista zbiorów", - "communityList.title": "Lista zbiorów", - "communityList.showMore": "Pokaż wiÄ™cej", - "community.create.head": "Utwórz zbiór", - "community.create.notifications.success": "UdaÅ‚o siÄ™ utworzyć zbiór", - "community.create.sub-head": "Utwórz podzbiór dla zbioru {{ parent }}", - "community.curate.header": "ZarzÄ…dzaj zbiorem: {{community}}", - "community.delete.cancel": "Anuluj", - "community.delete.confirm": "Potwierdź", - "community.delete.processing": "Usuwanie...", - "community.delete.head": "UsuÅ„ zbiór", - "community.delete.notification.fail": "Zbiór nie może być usuniÄ™ty", - "community.delete.notification.success": "UdaÅ‚o siÄ™ usunąć zbiór", - "community.delete.text": "Czy na pewno chcesz usunąć zbiór \"{{ dso }}\"", - "community.edit.delete": "UsuÅ„ ten zbiór", - "community.edit.head": "Edytuj zbiór", - "community.edit.breadcrumbs": "Edytuj zbiór", - "community.edit.logo.delete.title": "UsuÅ„ logo", - "community.edit.logo.delete-undo.title": "Cofnij usuniÄ™cie", - "community.edit.logo.label": "Logo zbioru", - "community.edit.logo.notifications.add.error": "PrzesÅ‚anie loga zbioru nie powiodÅ‚o siÄ™. Sprawdź czy wszystkie parametry sÄ… odpowiednie przed próbÄ… ponownego przesÅ‚ania.", - "community.edit.logo.notifications.add.success": "PrzesÅ‚anie loga powiodÅ‚o siÄ™.", - "community.edit.logo.notifications.delete.success.title": "Logo usuniÄ™te", - "community.edit.logo.notifications.delete.success.content": "UsuniÄ™cie loga zbioru powiodÅ‚o siÄ™", - "community.edit.logo.notifications.delete.error.title": "BÅ‚Ä…d podczas usuwania loga", - "community.edit.logo.upload": "Upuść logo zbioru, aby je przesÅ‚ać", - "community.edit.notifications.success": "UdaÅ‚o siÄ™ edytować zbiór", - "community.edit.notifications.unauthorized": "Nie masz uprawnieÅ„, aby wykonać te zmiany", - "community.edit.notifications.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas edycji zbioru", - "community.edit.return": "Cofnij", - "community.edit.tabs.curate.head": "Administruj", - "community.edit.tabs.curate.title": "Edycja zbioru - administrator", - "community.edit.tabs.metadata.head": "Edytuj metadane", - "community.edit.tabs.metadata.title": "Edycja zbioru - metadane", - "community.edit.tabs.roles.head": "Przypisz role", - "community.edit.tabs.roles.title": "Edycja zbioru - role", - "community.edit.tabs.authorizations.head": "Uprawnienia", - "community.edit.tabs.authorizations.title": "Edycja zbioru - uprawnienia", - "community.listelement.badge": "Zbiór", - "comcol-role.edit.no-group": "Brak", - "comcol-role.edit.create": "Utwórz", - "comcol-role.edit.restrict": "Ogranicz", - "comcol-role.edit.delete": "UsuÅ„", - "comcol-role.edit.community-admin.name": "Administratorzy", - "comcol-role.edit.collection-admin.name": "Administratorzy", - "comcol-role.edit.community-admin.description": "Administratorzy zbioru mogÄ… tworzyć podzbiory lub kolekcje i zarzÄ…dzać nimi lub przydzielać zarzÄ…dzanie tymi podzbiorami lub kolekcji innym użytkownikom. Ponadto decydujÄ…, kto może przesyÅ‚ać elementy do dowolnych podkolekcji, edytować metadane pozycji (po przesÅ‚aniu) i dodawać (mapować) istniejÄ…ce pozycje z innych kolekcji (z zastrzeżeniem autoryzacji).", - "comcol-role.edit.collection-admin.description": "Administratorzy kolekcji decydujÄ… o tym, kto może przesyÅ‚ać pozycje do kolekcji, edytować metadane pozycji (po ich przesÅ‚aniu) oraz dodawać (mapować) istniejÄ…ce elementy z innych kolekcji do tej kolekcji (z zastrzeżeniem uprawnieÅ„ dla danej kolekcji).", - "comcol-role.edit.submitters.name": "ZgÅ‚aszajÄ…cy", - "comcol-role.edit.submitters.description": "Użytkownicy i grupy, którzy majÄ… uprawnienia do przesyÅ‚ania nowych pozycji do tej kolekcji.", - "comcol-role.edit.item_read.name": "DomyÅ›lny dostÄ™p do odczytu pozycji", - "comcol-role.edit.item_read.description": "Użytkownicy i grupy, które mogÄ… odczytywać nowe pozycje zgÅ‚oszone do tej kolekcji. Zmiany w tej roli nie dziaÅ‚ajÄ… wstecz. IstniejÄ…ce pozycje w systemie bÄ™dÄ… nadal widoczne dla osób, które miaÅ‚y dostÄ™p do odczytu w momencie ich dodania.", - "comcol-role.edit.item_read.anonymous-group": "DomyÅ›lny odczyt dla nowych pozycji jest obecnie ustawiony na Anonimowy.", - "comcol-role.edit.bitstream_read.name": "DomyÅ›lny dostÄ™p do oczytu plików", - "comcol-role.edit.bitstream_read.description": "Administratorzy zbiorów mogÄ… tworzyć podzbiory lub kolekcje, a także zarzÄ…dzać nimi. Ponadto decydujÄ… o tym, kto może przesyÅ‚ać elementy do podkolekcji, edytować metadane pozycji (po ich przesÅ‚aniu) oraz dodawać (mapować) istniejÄ…ce pozycje z innych kolekcji (pod warunkiem posiadania odpowiednich uprawnieÅ„).", - "comcol-role.edit.bitstream_read.anonymous-group": "DomyÅ›lny status odczytu dla nowych plików to Anonimowy.", - "comcol-role.edit.editor.name": "Redaktorzy", - "comcol-role.edit.editor.description": "Redaktorzy mogÄ… edytować metadane nowych pozycji, a nastÄ™pnie akceptować je lub odrzucać.", - "comcol-role.edit.finaleditor.name": "Redaktorzy koÅ„cowi", - "comcol-role.edit.finaleditor.description": "Redaktorzy koÅ„cowi mogÄ… edytować metadane nowych pozycji, ale nie mogÄ™ odrzucać pozycji.", - "comcol-role.edit.reviewer.name": "Recenzenci", - "comcol-role.edit.reviewer.description": "Recenzenci mogÄ… akceptować lub odrzucać nowe pozycje, ale nie mogÄ™ edytować ich metadanych.", - "community.form.abstract": "Opis skrócony", - "community.form.description": "WstÄ™p (HTML)", - "community.form.errors.title.required": "Wprowadź nazwÄ™ zbioru", - "community.form.rights": "Prawa autoskie (HTML)", - "community.form.tableofcontents": "WiadomoÅ›ci (HTML)", - "community.form.title": "Nazwa", - "community.page.edit": "Edytuj ten zbiór", - "community.page.handle": "StaÅ‚y URI zbioru", - "community.page.license": "Licencja", - "community.page.news": "WiadomoÅ›ci", - "community.all-lists.head": "Podzbiory i kolekcje", - "community.sub-collection-list.head": "Kolekcje w tym zbiorze", - "community.sub-community-list.head": "Kolekcje w tym zbiorze", - "cookies.consent.accept-all": "Zaakceptuj wszystko", - "cookies.consent.accept-selected": "Zaakceptuj wybrane", - "cookies.consent.app.opt-out.description": "Aplikacja jest domyÅ›lnie wÅ‚Ä…czona (możesz jÄ… wyÅ‚Ä…czyć)", - "cookies.consent.app.opt-out.title": "(możesz jÄ… wyÅ‚aczyć)", - "cookies.consent.app.purpose": "cel", - "cookies.consent.app.required.description": "Ta aplikacja jest zawsze wymagana", - "cookies.consent.app.required.title": "(zawsze wymagana)", - "cookies.consent.update": "Od ostatniej wizyty zostaÅ‚y wprowadzone zmiany. Zweryfikuj swoje zgody.", - "cookies.consent.close": "Zamknij", - "cookies.consent.decline": "Odrzuć", - "cookies.consent.content-notice.description": "Zbieramy i przetwarzamy Twoje dane do nastÄ™pujÄ…cych celów: <strong>weryfikacja, preferencje, zgody i statystyka</strong>. <br/> JeÅ›li chcesz siÄ™ dowiedzieć wiÄ™cej, przycztaj naszÄ… {privacyPolicy}.", - "cookies.consent.content-notice.learnMore": "Dostosuj", - "cookies.consent.content-modal.description": "Tutaj sÄ… wyÅ›wietlane informacje, które zbieramy o Tobie. Możesz je dostosować wedÅ‚ug swojego uznania.", - "cookies.consent.content-modal.privacy-policy.name": "polityka prywatnoÅ›ci", - "cookies.consent.content-modal.privacy-policy.text": "Aby dowiedzieć siÄ™ wiÄ™cej przeczytaj naszÄ… {privacyPolicy}.", - "cookies.consent.content-modal.title": "Informacje, które zbieramy", - "cookies.consent.app.title.authentication": "Logowanie", - "cookies.consent.app.description.authentication": "Musisz siÄ™ zalogować", - "cookies.consent.app.title.preferences": "Preferencje", - "cookies.consent.app.description.preferences": "Wymagane, aby zapisać Twoje preferencje", - "cookies.consent.app.title.acknowledgement": "Zgody", - "cookies.consent.app.description.acknowledgement": "Wymagane, aby zapisać Twoje preferencje", - "cookies.consent.app.title.google-analytics": "Google Analytics", - "cookies.consent.app.description.google-analytics": "Pozwól na Å›ledzenie do celów statystycznych", - "cookies.consent.purpose.functional": "Funkcjonalne", - "cookies.consent.purpose.statistical": "Statystyczne", - "curation-task.task.checklinks.label": "Sprawdź odnoÅ›niki w metadanych", - "curation-task.task.noop.label": "NOOP", - "curation-task.task.profileformats.label": "Profil formatów plików", - "curation-task.task.requiredmetadata.label": "Sprawdź poprawność wymaganych metadanych", - "curation-task.task.translate.label": "Microsoft Translator", - "curation-task.task.vscan.label": "Skan antywirusowy", - "curation.form.task-select.label": "Zadanie:", - "curation.form.submit": "Start", - "curation.form.submit.success.head": "UdaÅ‚o siÄ™ rozpocząć zadanie administratora", - "curation.form.submit.success.content": "Zostaniesz przeniesiony na stronÄ™ procesu.", - "curation.form.submit.error.head": "Nie udaÅ‚o siÄ™ siÄ™ zakoÅ„czyć zadania administratora", - "curation.form.submit.error.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas rozpoczynania zadania administracyjnego.", - "curation.form.handle.label": "Automatyzacja:", - "curation.form.handle.hint": "Wskazówka: Wpisz [prefix swojego identyfikatora]/0, aby zautomatyzować zadanie (nie wszystkie zadania mogÄ… wspierać tÄ™ funkcjÄ™)", - "deny-request-copy.email.message": "Drogi użytkowniku {{ recipientName }},\nW odpowiedzi na PaÅ„stwa zapytanie, przykro mi poinformować, że to niemożliwe, aby przestać kopiÄ™ pliku, o który PaÅ„stwo prosili: \"{{ itemUrl }}\" ({{ itemName }}), którego jestem autorem.\n\nPozdrawiam serdecznie,\n{{ authorName }} <{{ authorEmail }}>", - "deny-request-copy.email.subject": "WystÄ…p o kopiÄ™ dokumentu", - "deny-request-copy.error": "WystÄ…piÅ‚ bÅ‚Ä…d", - "deny-request-copy.header": "Odrzuć proÅ›bÄ™ o przesÅ‚anie kopii dokumentu", - "deny-request-copy.intro": "Ta wiadomość zostanie przesÅ‚ana do osoby, która wystÄ…piÅ‚a o dostÄ™p", - "deny-request-copy.success": "Z powodzeniem odrzucono proÅ›bÄ™ o udostÄ™pnienie pozycji", - "dso.name.untitled": "Brak tytuÅ‚u", - "dso-selector.claim.item.head": "Wskazówki profilu", - "dso-selector.claim.item.body": "IstniejÄ… profile, które mogÄ… odnosić siÄ™ do Ciebie. JeÅ›li, któryÅ› z tych profilów jest Twój, wybierz go i przejdź do szczegółów, z opcji wybierz opcjÄ™ przypisania profilu. W innym przypadku możesz utworzyć nowy profil z szablonu, wybierajÄ…c przycisk poniżej.", - "dso-selector.claim.item.create-from-scratch": "Utwórz nowy", - "dso-selector.claim.item.not-mine-label": "Å»aden nie jest mój", - "dso-selector.create.collection.head": "Nowa kolekcja", - "dso-selector.create.collection.sub-level": "Utwórz nowÄ… kolekcjÄ™ w", - "dso-selector.create.community.head": "Nowy zbiór", - "dso-selector.create.community.sub-level": "Utwórz nowy zbiór", - "dso-selector.create.community.top-level": "Utwórz nowy nadrzÄ™dny zbiór", - "dso-selector.create.item.head": "Nowa pozycja", - "dso-selector.create.item.sub-level": "Utwórz nowÄ… pozycjÄ™ w", - "dso-selector.create.submission.head": "Nowe zgÅ‚oszenie", - "dso-selector.edit.collection.head": "Edytuj kolekcjÄ™", - "dso-selector.edit.community.head": "Edytuj zbiór", - "dso-selector.edit.item.head": "Edytuj pozycjÄ™", - "dso-selector.error.title": "WystÄ…piÅ‚ bÅ‚Ä…d podczas wyszukiwania typu {{ type }}", - "dso-selector.export-metadata.dspaceobject.head": "Eksportuj metadane z", - "dso-selector.no-results": "Nie znaleziono {{ type }}", - "dso-selector.placeholder": "Wyszukaj {{ type }}", - "dso-selector.select.collection.head": "Wybierz kolekcjÄ™", - "dso-selector.set-scope.community.head": "Wybierz wyszukiwanie zakresu", - "dso-selector.set-scope.community.button": "Wyszukaj w caÅ‚ym DSpace", - "dso-selector.set-scope.community.input-header": "Wyszukaj zbiór lub kolekcjÄ™", - "confirmation-modal.export-metadata.header": "Eksportuj metadane z {{ dsoName }}", - "confirmation-modal.export-metadata.info": "Czy na pewno chcesz eksportować metadane z {{ dsoName }}", - "confirmation-modal.export-metadata.cancel": "Anuluj", - "confirmation-modal.export-metadata.confirm": "Eksportuj", - "confirmation-modal.delete-eperson.header": "UsuÅ„ użytkownika \"{{ dsoName }}\"", - "confirmation-modal.delete-eperson.info": "Czy na pewno chcesz usunąć użytkownika \"{{ dsoName }}\"", - "confirmation-modal.delete-eperson.cancel": "Anuluj", - "confirmation-modal.delete-eperson.confirm": "UsuÅ„", - "error.bitstream": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia plików", - "error.browse-by": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia pozycji", - "error.collection": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia kolekcji", - "error.collections": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia kolekcji", - "error.community": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia ziboru", - "error.identifier": "Nie znaleziono pozycji z podanym identyfikatorem", - "error.default": "BÅ‚Ä…d", - "error.item": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia pozycji", - "error.items": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia pozycji", - "error.objects": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia obiektów", - "error.recent-submissions": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia ostatniego zgÅ‚oszenia", - "error.search-results": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia wyników wyszukiwania", - "error.sub-collections": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia podkolekcji", - "error.sub-communities": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia podzbiorów", - "error.submission.sections.init-form-error": "WystÄ…piÅ‚ bÅ‚Ä…d w czasie inicjalizacji sekcji, sprawdź konfiguracjÄ™. Szczegóły poniżej: <br> <br>", - "error.top-level-communities": "BÅ‚Ä…d podczas pobierania nadrzÄ™dnego zbioru", - "error.validation.license.notgranted": "Musisz wyrazić tÄ™ zgodÄ™, aby przesÅ‚ać swoje zgÅ‚oszenie. JeÅ›li nie możesz wyrazić zgody w tym momencie, możesz zapisać swojÄ… pracÄ™ i wrócić do niej później lub usunąć zgÅ‚oszenie.", - "error.validation.pattern": "Te dane wejÅ›ciowe sÄ… ograniczone przez aktualny wzór: {{ pattern }}.", - "error.validation.filerequired": "PrzesÅ‚anie pliku jest obowiÄ…zkowe", - "error.validation.required": "Pole jest wymagane", - "error.validation.NotValidEmail": "E-mail nie jest poprawny", - "error.validation.emailTaken": "E-mail jest już zarejestrowany", - "error.validation.groupExists": "Ta grupa już istnieje", - "file-section.error.header": "BÅ‚Ä…d podczas uzyskiwania plików dla tej pozycji", - "footer.copyright": "copyright © 2002-{{ year }}", - "footer.link.dspace": "oprogramowanie DSpace", - "footer.link.lyrasis": "LYRASIS", - "footer.link.cookies": "Ustawienia plików cookies", - "footer.link.privacy-policy": "Polityka prywatnoÅ›ci", - "footer.link.end-user-agreement": "Umowa użytkownika", - "forgot-email.form.header": "Nie pamiÄ™tam hasÅ‚a", - "forgot-email.form.info": "Zarejestruj siÄ™, aby otrzymywać wiadomoÅ›ci o nowych pozycjach w obserowanych kolekcjach, a także przesyÅ‚ać nowe pozycje do repozytorium.", - "forgot-email.form.email": "Adres e-mail *", - "forgot-email.form.email.error.required": "UzupeÅ‚nij adres e-mail", - "forgot-email.form.email.error.pattern": "UzupeÅ‚nij prawidÅ‚owy adres e-mail", - "forgot-email.form.email.hint": "Ten adres e-mail bÄ™dzie zweryfikowany i bÄ™dziesz go używać jako swój login.", - "forgot-email.form.submit": "WyÅ›lij", - "forgot-email.form.success.head": "WysÅ‚ano wiadomość weryfikacyjnÄ…", - "forgot-email.form.success.content": "Wiadomość zostaÅ‚a wysÅ‚ana na adres e-mail {{ email }}. Zawiera ona unikatowy link i dalsze instrukcje postÄ™powania.", - "forgot-email.form.error.head": "BÅ‚Ä…d podczas rejestracji adresu e-mail", - "forgot-email.form.error.content": "WystÄ…piÅ‚ bÅ‚Ä…d poczas próby rejestracji tego adresu e-mail: {{ email }}", - "forgot-password.title": "Nie pamiÄ™tam hasÅ‚a", - "forgot-password.form.head": "Nie pamiÄ™tam hasÅ‚a", - "forgot-password.form.info": "Wpisz nowe hasÅ‚o w polu poniżej i potwierdź je wpisujÄ…c je ponownie w drugim polu. HasÅ‚o powinno mieć co najmniej sześć znaków.", - "forgot-password.form.card.security": "BezpieczeÅ„stwo", - "forgot-password.form.identification.header": "Identifikacja", - "forgot-password.form.identification.email": "Adres e-mail: ", - "forgot-password.form.label.password": "HasÅ‚o", - "forgot-password.form.label.passwordrepeat": "Potwierdź hasÅ‚o", - "forgot-password.form.error.empty-password": "Wpisz hasÅ‚o poniżej.", - "forgot-password.form.error.matching-passwords": "HasÅ‚a nie sÄ… identyczne.", - "forgot-password.form.notification.error.title": "BÅ‚Ä…d podczas próby ustawienia nowego hasÅ‚a", - "forgot-password.form.notification.success.content": "Resetowanie hasÅ‚a udaÅ‚o siÄ™. Zalogowano jako stworzony przed momemntem użytkownik.", - "forgot-password.form.notification.success.title": "Resetowanie hasÅ‚a udane", - "forgot-password.form.submit": "Wpisz hasÅ‚o", - "form.add": "Dodaj", - "form.add-help": "Wybierz ten przycisk, aby dodać aktualny wpis lub dodać nastÄ™pny", - "form.cancel": "Anuluj", - "form.clear": "Wyczyść", - "form.clear-help": "Kliknij tutaj, aby usunąć wybranÄ… wartość", - "form.discard": "Odrzuć", - "form.drag": "PrzeciÄ…gnij", - "form.edit": "Edytuj", - "form.edit-help": "Kliknij tutaj, aby edytować wybranÄ… wartość", - "form.first-name": "ImiÄ™", - "form.last-name": "Nazwisko", - "form.loading": "Åadowanie...", - "form.lookup": "PrzeglÄ…daj", - "form.lookup-help": "Kliknij tutaj, aby zobaczyć istniejÄ…ce powiÄ…zania", - "form.no-results": "Nie znaleziono rezultatów", - "form.no-value": "Nie wprowadzono wartoÅ›ci", - "form.remove": "UsuÅ„", - "form.save": "Zapisz", - "form.save-help": "Zapisz zmiany", - "form.search": "Wyszukaj", - "form.search-help": "Kliknij tutaj, aby wyszukać w istniejÄ…cych komentarzach", - "form.submit": "Zapisz", - "form.repeatable.sort.tip": "Upuść nowÄ… pozycjÄ™ w nowym miejscu", - "grant-deny-request-copy.deny": "Nie przesyÅ‚aj kopii", - "grant-deny-request-copy.email.back": "Cofnij", - "grant-deny-request-copy.email.message": "WiadomoÅ›ci", - "grant-deny-request-copy.email.message.empty": "ProszÄ™ wprowadzić wiadomość", - "grant-deny-request-copy.email.permissions.info": "W tym miejscu możesz przemyÅ›leć ograniczenie dostÄ™pu do dokumentu, aby odpowiadać na mniej próśb o dostÄ™p. JeÅ›li chcesz wystÄ…pić do administratorów reposytorium o zniesienie restrykcji, zaznacz okienko poniżej.", - "grant-deny-request-copy.email.permissions.label": "Ustaw jako otwarty dostÄ™p", - "grant-deny-request-copy.email.send": "WyÅ›lij", - "grant-deny-request-copy.email.subject": "Temat", - "grant-deny-request-copy.email.subject.empty": "Wpisz temat", - "grant-deny-request-copy.grant": "WyÅ›lij kopiÄ™", - "grant-deny-request-copy.header": "ProÅ›ba o przesÅ‚anie kopii dokumentu", - "grant-deny-request-copy.home-page": "Zabierz mnie na stronÄ™ głównÄ…", - "grant-deny-request-copy.intro1": "JeÅ›li jesteÅ› jednym z autorów dokumentu <a href='{{ url }}'>{{ name }}</a>, wybierz jednÄ… z poniższych opcji, aby odpowiedzieć zapytaniu użytkownika.", - "grant-deny-request-copy.intro2": "Po wybraniu opcji, zostanÄ… wyÅ›wietlone sugerowane odpowiedzi, które można edytować.", - "grant-deny-request-copy.processed": "Ta proÅ›ba jest już procesowana. Możesz użyć przycisku poniżej, aby wrócić do strony głównej.", - "grant-request-copy.email.message": "Drogi użytkowniku {{ recipientName }},\nW odpowiedzi na PaÅ„stwa zapytanie, miÅ‚o mi poinformować, że w zaÅ‚Ä…czniku przesyÅ‚am kopiÄ™ dokumentu, o który PaÅ„stwo prosili: \"{{ itemUrl }}\" ({{ itemName }}), którego jestem autorem.\n\nPozdrawiam serdecznie,\n{{ authorName }} <{{ authorEmail }}>", - "grant-request-copy.email.subject": "ProÅ›ba o kopiÄ™ dokumentu", - "grant-request-copy.error": "WystÄ…piÅ‚ bÅ‚Ä…d", - "grant-request-copy.header": "Zezwól na wysÅ‚anie kopii dokumentu", - "grant-request-copy.intro": "To wiadomość zostanie wysÅ‚ana do osoby, która wystÄ…piÅ‚a o dostÄ™p. Wskazane dokumenty zostanÄ… doÅ‚Ä…czone jako zaÅ‚Ä…cznik.", - "grant-request-copy.success": "ProÅ›ba o dostÄ™p do dokumentu zostaÅ‚a przyjÄ™ta", - "home.description": "", - "home.breadcrumbs": "Strona główna", - "home.search-form.placeholder": "Przeszukaj repozytorium...", - "home.title": "Strona główna", - "home.top-level-communities.head": "Zbiory w DSpace", - "home.top-level-communities.help": "Przeszukaj kolekcje", - "info.end-user-agreement.accept": "PrzeczytaÅ‚em/am i akceptujÄ™ umowÄ™ użytkownika", - "info.end-user-agreement.accept.error": "BÅ‚Ä…d wystÄ…piÅ‚ podczas akceptowania umowy użytkownika", - "info.end-user-agreement.accept.success": "UdaÅ‚o siÄ™ zaktualizować umowÄ™ użytkownika", - "info.end-user-agreement.breadcrumbs": "Umowa użytkownika", - "info.end-user-agreement.buttons.cancel": "Anuluj", - "info.end-user-agreement.buttons.save": "Zapisz", - "info.end-user-agreement.head": "Umowa użytkownika", - "info.end-user-agreement.title": "Umowa użytkownika", - "info.privacy.breadcrumbs": "OÅ›wiadczenie polityki prywatnoÅ›ci", - "info.privacy.head": "OÅ›wiadczenie polityki prywatnoÅ›ci", - "info.privacy.title": "OÅ›wiadczenie polityki prywatnoÅ›ci", - "item.alerts.private": "Ta pozycja jest prywatna", - "item.alerts.withdrawn": "Ta pozycja zostaÅ‚a wycofana", - "item.edit.authorizations.heading": "Za pomocÄ… tego edytora możesz przeglÄ…dać i zmieniać polityki dla danej pozycji, a także zmieniać polityki dla poszczególnych części pozycji: paczek i strumieni bitów. W skrócie, pozycja jest kontenerem pakietów, a pakiety sÄ… kontenerami strumieni bitów. Kontenery zazwyczaj majÄ… polityki ADD/REMOVE/READ/WRITE, natomiast strumienie bitów majÄ… tylko polityki READ/WRITE.", - "item.edit.authorizations.title": "Edytuj politykÄ™ tej pozycji", - "item.badge.private": "Prywatny status publikacji", - "item.badge.withdrawn": "Wycofane publikacje", - "item.bitstreams.upload.bundle": "Pakiet", - "item.bitstreams.upload.bundle.placeholder": "Wybierz pakiet", - "item.bitstreams.upload.bundle.new": "Utworz pakiet", - "item.bitstreams.upload.bundles.empty": "Ta pozycja nie zawiera żadnych pakietów, do których można przesÅ‚ać strumieÅ„ bitów.", - "item.bitstreams.upload.cancel": "Anuluj", - "item.bitstreams.upload.drop-message": "Upuść plik, aby przesÅ‚ać", - "item.bitstreams.upload.item": "Pozycja: ", - "item.bitstreams.upload.notifications.bundle.created.content": "UdaÅ‚o siÄ™ utworzyć nowy pakiet.", - "item.bitstreams.upload.notifications.bundle.created.title": "Utwórz pakiet", - "item.bitstreams.upload.notifications.upload.failed": "Zweryfikuj pliki przed spróbowaniem ponownie.", - "item.bitstreams.upload.title": "PrzeÅ›lij strumieÅ„ bitów", - "item.edit.bitstreams.bundle.edit.buttons.upload": "PrzeÅ›lij", - "item.edit.bitstreams.bundle.displaying": "Obecnie wyÅ›wietlono {{ amount }} plików z {{ total }}.", - "item.edit.bitstreams.bundle.load.all": "ZaÅ‚aduj wszystkie ({{ total }})", - "item.edit.bitstreams.bundle.load.more": "ZaÅ‚aduj wiÄ™cej", - "item.edit.bitstreams.bundle.name": "PACZKA: {{ name }}", - "item.edit.bitstreams.discard-button": "Odrzuć", - "item.edit.bitstreams.edit.buttons.download": "Pobierz", - "item.edit.bitstreams.edit.buttons.drag": "PrzeciÄ…gnij", - "item.edit.bitstreams.edit.buttons.edit": "Edytuj", - "item.edit.bitstreams.edit.buttons.remove": "UsuÅ„", - "item.edit.bitstreams.edit.buttons.undo": "Cofnij zmiany", - "item.edit.bitstreams.empty": "Ta pozycja nie zawiera żadnych strumieni bitów. Wybierz strumienie do zaÅ‚adowania, aby je utworzyć.", - "item.edit.bitstreams.headers.actions": "Akcje", - "item.edit.bitstreams.headers.bundle": "Paczka", - "item.edit.bitstreams.headers.description": "Opis", - "item.edit.bitstreams.headers.format": "Format", - "item.edit.bitstreams.headers.name": "Nazwa", - "item.edit.bitstreams.notifications.discarded.content": "Twoje zmiany zostaÅ‚y odrzucone. Aby je przywrócić, wybierz przycisk 'Cofnij'", - "item.edit.bitstreams.notifications.discarded.title": "Zmiany odrzucone", - "item.edit.bitstreams.notifications.move.failed.title": "BÅ‚Ä…d podczas przenoszenia plików", - "item.edit.bitstreams.notifications.move.saved.content": "Zmiany pozycji dla pliku tej pozycji oraz jego paczki zostaÅ‚y zapisane.", - "item.edit.bitstreams.notifications.move.saved.title": "Zmiana pozycji zostaÅ‚a zapisana", - "item.edit.bitstreams.notifications.outdated.content": "Pozycja zostaÅ‚a w miÄ™dzyczasie zmieniona przez innego użytkownika. Twoje zmiany zostaÅ‚y cofniÄ™te, aby uniknąć ewentualnych konfliktów", - "item.edit.bitstreams.notifications.outdated.title": "Zmiany nieaktualne", - "item.edit.bitstreams.notifications.remove.failed.title": "BÅ‚Ä…d podczas usuwania pliku", - "item.edit.bitstreams.notifications.remove.saved.content": "Twoje zmiany dotyczÄ…ce usuniÄ™cia plików z tej pozycji zostaÅ‚y zapisane.", - "item.edit.bitstreams.notifications.remove.saved.title": "Zmiany dotyczÄ…ce usuniÄ™cia zapisane", - "item.edit.bitstreams.reinstate-button": "Cofnij", - "item.edit.bitstreams.save-button": "Zapisz", - "item.edit.bitstreams.upload-button": "PrzeÅ›lij", - "item.edit.delete.cancel": "Anuluj", - "item.edit.delete.confirm": "UsuÅ„", - "item.edit.delete.description": "Czy jesteÅ› pewien, że ta pozycja powinna zostać caÅ‚kowicie usuniÄ™ta? Ostrożnie: Teraz nie pozostanie po tej pozycji żaden Å›lad.", - "item.edit.delete.error": "BÅ‚Ä…d wystÄ…piÅ‚ podczas usuwania pozycji", - "item.edit.delete.header": "UsuÅ„ pozycjÄ™: {{ id }}", - "item.edit.delete.success": "Ta pozycja zostaÅ‚a usuniÄ™ta", - "item.edit.head": "Edytuj pozycjÄ™", - "item.edit.breadcrumbs": "Edytuj pozycjÄ™", - "item.edit.tabs.disabled.tooltip": "Nie masz dostÄ™pu do tej strony", - "item.edit.tabs.mapper.head": "Mapper kolekcji", - "item.edit.tabs.item-mapper.title": "Edytowanie pozycji - Mapper kolekcji", - "item.edit.item-mapper.buttons.add": "Mapowanie pozycji do wybranych kolekcji", - "item.edit.item-mapper.buttons.remove": "UsuÅ„ mapowanie pozycji do wybranych kolekcji", - "item.edit.item-mapper.cancel": "Anuluj", - "item.edit.item-mapper.description": "To jest narzÄ™dzie do mapowania elementów, które pozwala administratorom mapować tÄ™ pozycjÄ™ do innych kolekcji. Możesz wyszukiwać kolekcje i je mapować lub przeglÄ…dać listÄ™ kolekcji, do których dana pozycja jest aktualnie zmapowana.", - "item.edit.item-mapper.head": "Mapper pozycji - Mapowanie pozycji do kolekcji", - "item.edit.item-mapper.item": "Pozycja: \"<b>{{name}}</b>\"", - "item.edit.item-mapper.no-search": "Wpisz zapytanie, które chcesz wyszukać", - "item.edit.item-mapper.notifications.add.error.content": "WystÄ…piÅ‚y bÅ‚Ä™dy dla mapowania pozycji w {{amount}} kolekcjach.", - "item.edit.item-mapper.notifications.add.error.head": "BÅ‚Ä™dy mapowania", - "item.edit.item-mapper.notifications.add.success.content": "UdaÅ‚o siÄ™ zmapować elementy dla {{amount}} kolekcji.", - "item.edit.item-mapper.notifications.add.success.head": "Mapowanie zakoÅ„czone", - "item.edit.item-mapper.notifications.remove.error.content": "WystÄ…piÅ‚y bÅ‚Ä™dy podczas usuwania mapowania do {{amount}} kolekcji.", - "item.edit.item-mapper.notifications.remove.error.head": "UsuniÄ™cie mapowania bÅ‚Ä™dów", - "item.edit.item-mapper.notifications.remove.success.content": "UdaÅ‚o siÄ™ usunąć mapowanie pozycji w {{amount}} kolekcjach.", - "item.edit.item-mapper.notifications.remove.success.head": "Usuwanie mapowania zakoÅ„czone", - "item.edit.item-mapper.search-form.placeholder": "Przeszukaj kolekcje...", - "item.edit.item-mapper.tabs.browse": "PrzeglÄ…daj zmapowane kolekcje", - "item.edit.item-mapper.tabs.map": "Mapuj nowe kolekcje", - "item.edit.metadata.add-button": "Dodaj", - "item.edit.metadata.discard-button": "Odrzuć", - "item.edit.metadata.edit.buttons.edit": "Edytuj", - "item.edit.metadata.edit.buttons.remove": "UsuÅ„", - "item.edit.metadata.edit.buttons.undo": "Cofnij zmiany", - "item.edit.metadata.edit.buttons.unedit": "Zatrzymaj edycjÄ™", - "item.edit.metadata.empty": "Ta pozycja nie zawiera żadnych metadanych. Wybierz Dodaj, aby dodać metadane.", - "item.edit.metadata.headers.edit": "Edytuj", - "item.edit.metadata.headers.field": "Pole", - "item.edit.metadata.headers.language": "JÄ™zyk", - "item.edit.metadata.headers.value": "Wartość", - "item.edit.metadata.metadatafield.invalid": "Wybierz aktualne pole metadanych", - "item.edit.metadata.notifications.discarded.content": "Twoje zmiany zostaÅ‚y odrzucone. Aby wgrać je ponownie wybierz przycisk 'Cofnij'", - "item.edit.metadata.notifications.discarded.title": "Zmiany odrzucone", - "item.edit.metadata.notifications.error.title": "WystÄ…piÅ‚ bÅ‚Ä…d", - "item.edit.metadata.notifications.invalid.content": "Twoje zmiany nie zostaÅ‚y zapisane. Przed zapisaniem upewnij siÄ™, że wszystkie pola sÄ… wypeÅ‚nione prawidÅ‚owo.", - "item.edit.metadata.notifications.invalid.title": "NieprawidÅ‚owe metadane", - "item.edit.metadata.notifications.outdated.content": "Pozycja zostaÅ‚a w miÄ™dzyczasie zmieniona przez innego użytkownika. Twoje zmiany zostaÅ‚y cofniÄ™te, aby zapobiec ewentualnym konfliktom", - "item.edit.metadata.notifications.outdated.title": "Zmiany nieaktualne", - "item.edit.metadata.notifications.saved.content": "Twoje zmiany metadanych tej pozycji zostaÅ‚y zapisane.", - "item.edit.metadata.notifications.saved.title": "Metadane zostaÅ‚y zapisane", - "item.edit.metadata.reinstate-button": "Cofnij", - "item.edit.metadata.save-button": "Zapisz", - "item.edit.modify.overview.field": "Pole", - "item.edit.modify.overview.language": "JÄ™zyk", - "item.edit.modify.overview.value": "Wartość", - "item.edit.move.cancel": "Anuluj", - "item.edit.move.save-button": "Zapisz", - "item.edit.move.discard-button": "Odrzuć", - "item.edit.move.description": "Wybierz kolekcjÄ™, do której chcesz przenieść tÄ™ pozycjÄ™. Aby zawÄ™zić listÄ™ wyÅ›wietlanych kolekcji, możesz wprowadzić zapytanie w polu wyszukiwania.", - "item.edit.move.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas przenoszenia pozycji", - "item.edit.move.head": "PrzenieÅ› pozycjÄ™: {{id}}", - "item.edit.move.inheritpolicies.checkbox": "Dziedziczenie polityk", - "item.edit.move.inheritpolicies.description": "Dziedzczenie domyÅ›lnych polityk z kolekcji docelowej", - "item.edit.move.move": "PrzenieÅ›", - "item.edit.move.processing": "Przenoszenie...", - "item.edit.move.search.placeholder": "Wpisz zapytanie, aby wyszukać w kolekcjach", - "item.edit.move.success": "Pozycja zostaÅ‚a przeniesiona", - "item.edit.move.title": "PrzenieÅ› pozycjÄ™", - "item.edit.private.cancel": "Anuluj", - "item.edit.private.confirm": "Ukryj", - "item.edit.private.description": "Czy chcesz ukryć tÄ™ pozycjÄ™?", - "item.edit.private.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas ukrywania pozycji", - "item.edit.private.header": "Ukryj pozycjÄ™: {{ id }}", - "item.edit.private.success": "Pozycja jest teraz ukryta", - "item.edit.public.cancel": "Anuluj", - "item.edit.public.confirm": "Upublicznij", - "item.edit.public.description": "Czy chcesz upublicznić tÄ™ pozycjÄ™?", - "item.edit.public.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas upubliczniania pozycji", - "item.edit.public.header": "Upublicznij pozycjÄ™: {{ id }}", - "item.edit.public.success": "Pozycja jest teraz publiczna", - "item.edit.reinstate.cancel": "Anuluj", - "item.edit.reinstate.confirm": "Przywróć", - "item.edit.reinstate.description": "Czy chcesz przywrócić tÄ™ pozycjÄ™?", - "item.edit.reinstate.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas przywracania pozycji", - "item.edit.reinstate.header": "Przywróć pozycjÄ™: {{ id }}", - "item.edit.reinstate.success": "Pozycja zostaÅ‚a przywrócona", - "item.edit.relationships.discard-button": "Odrzuć", - "item.edit.relationships.edit.buttons.add": "Dodaj", - "item.edit.relationships.edit.buttons.remove": "UsuÅ„", - "item.edit.relationships.edit.buttons.undo": "Cofnij zmiany", - "item.edit.relationships.no-relationships": "Brak relacji", - "item.edit.relationships.notifications.discarded.content": "Twoje zmiany zostaÅ‚y cofniÄ™te. Aby przywrócić zmiany wybierz przycisk 'Cofnij'", - "item.edit.relationships.notifications.discarded.title": "Zmiany zostaÅ‚y cofniÄ™te", - "item.edit.relationships.notifications.failed.title": "WystÄ…piÅ‚ bÅ‚Ä…d podczas edytowania relacji", - "item.edit.relationships.notifications.outdated.content": "Ta pozycja zostaÅ‚a wÅ‚aÅ›nie zmieniona przez innego użytkownika. Twoje zmiany zostaÅ‚y cofniÄ™te, aby uniknąć konfliktów", - "item.edit.relationships.notifications.outdated.title": "Zmiany sÄ… nieaktualne", - "item.edit.relationships.notifications.saved.content": "Twoje zmiany w relacjach tej pozycji zostaÅ‚y zapisane.", - "item.edit.relationships.notifications.saved.title": "Relacje zostaÅ‚y zapisane", - "item.edit.relationships.reinstate-button": "Cofnij", - "item.edit.relationships.save-button": "Zapisz", - "item.edit.relationships.no-entity-type": "Dodaj metadanÄ… 'dspace.entity.type', aby umożliwić dodawanie relacji do pozycji", - "item.edit.return": "Cofnij", - "item.edit.tabs.bitstreams.head": "Pliki", - "item.edit.tabs.bitstreams.title": "Edycja pozycji - pliki", - "item.edit.tabs.curate.head": "Administruj", - "item.edit.tabs.curate.title": "Edytowanie pozycji - administruj", - "item.edit.tabs.metadata.head": "Metadane", - "item.edit.tabs.metadata.title": "Edycja pozycji - metadane", - "item.edit.tabs.relationships.head": "Relacje", - "item.edit.tabs.relationships.title": "Edycja pozycja - relacje", - "item.edit.tabs.status.buttons.authorizations.button": "DostÄ™py...", - "item.edit.tabs.status.buttons.authorizations.label": "OkreÅ›lu dostÄ™p do pozycji", - "item.edit.tabs.status.buttons.delete.button": "UsuÅ„ permanentnie", - "item.edit.tabs.status.buttons.delete.label": "UsuÅ„ pozycjÄ™ permanentnie", - "item.edit.tabs.status.buttons.mappedCollections.button": "Zmapowane kolekcje", - "item.edit.tabs.status.buttons.mappedCollections.label": "ZarzÄ…dzaj mapowanymi kolekcjami", - "item.edit.tabs.status.buttons.move.button": "PrzenieÅ›...", - "item.edit.tabs.status.buttons.move.label": "PrzenieÅ› pozycjÄ™ do innej kolekcji", - "item.edit.tabs.status.buttons.private.button": "Ukryj...", - "item.edit.tabs.status.buttons.private.label": "Ukry pozycjÄ™", - "item.edit.tabs.status.buttons.public.button": "Upublicznij...", - "item.edit.tabs.status.buttons.public.label": "Upublicznij pozycjÄ™", - "item.edit.tabs.status.buttons.reinstate.button": "Przywróć...", - "item.edit.tabs.status.buttons.reinstate.label": "Przywróć pozycjÄ™", - "item.edit.tabs.status.buttons.unauthorized": "You're not authorized to perform this action", - "item.edit.tabs.status.buttons.withdraw.button": "Wycofaj...", - "item.edit.tabs.status.buttons.withdraw.label": "Wycofaj z repozytorium", - "item.edit.tabs.status.description": "Witamy na stronie zarzÄ…dzania pozycjami. Z tego miejsca możesz wycofać, przywrócić, przenieść lub usunąć danÄ… pozycjÄ™. Możesz również aktualizować lub dodawać nowe metadane lub pliki..", - "item.edit.tabs.status.head": "Status", - "item.edit.tabs.status.labels.handle": "Identyfikator", - "item.edit.tabs.status.labels.id": "ID pozycji", - "item.edit.tabs.status.labels.itemPage": "Strona pozycji", - "item.edit.tabs.status.labels.lastModified": "Ostatnia modyfikacja", - "item.edit.tabs.status.title": "Edycja pozycji - Status", - "item.edit.tabs.versionhistory.head": "Historia wersji", - "item.edit.tabs.versionhistory.title": "Edycja pozycji - historia wersji", - "item.edit.tabs.versionhistory.under-construction": "Edytowanie lub dodawanie nowych wersji jest niedostÄ™pne w tego poziomu interfejsu.", - "item.edit.tabs.view.head": "Widok pozycji", - "item.edit.tabs.view.title": "Edycja pozycji - widok", - "item.edit.withdraw.cancel": "Anuluj", - "item.edit.withdraw.confirm": "Wycofaj", - "item.edit.withdraw.description": "Czy na pewno chcesz wycofać pozycjÄ™?", - "item.edit.withdraw.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas wycofywania pozycji", - "item.edit.withdraw.header": "Wycofaj pozycjÄ™: {{ id }}", - "item.edit.withdraw.success": "Pozycja zostaÅ‚a wycofana", - "item.listelement.badge": "Pozycja", - "item.page.description": "Opis", - "item.page.journal-issn": "ISSN czasopisma", - "item.page.journal-title": "TytuÅ‚ czasopisma", - "item.page.publisher": "Wydawca", - "item.page.titleprefix": "Pozycja: ", - "item.page.volume-title": "TytuÅ‚ tomu", - "item.search.results.head": "Wyniki wyszukiwania pozycji", - "item.search.title": "Wyszukiwanie pozycji", - "item.page.abstract": "Abstrakt", - "item.page.author": "Autorzy", - "item.page.citation": "Cytowanie", - "item.page.collections": "Kolekcje", - "item.page.collections.loading": "Åadowanie...", - "item.page.collections.load-more": "ZaÅ‚aduj wiÄ™cej", - "item.page.date": "Data", - "item.page.edit": "Edytuj pozycjÄ™", - "item.page.files": "Pliki", - "item.page.filesection.description": "Opis:", - "item.page.filesection.download": "Pobierz", - "item.page.filesection.format": "Format:", - "item.page.filesection.name": "Nazwa:", - "item.page.filesection.size": "Rozmiar:", - "item.page.journal.search.title": "ArtykuÅ‚y w czasopiÅ›mie", - "item.page.link.full": "Zobacz szczegóły", - "item.page.link.simple": "Uproszczony widok", - "item.page.person.search.title": "ArtykuÅ‚y tego autora", - "item.page.related-items.view-more": "Pokaż o {{ amount }} wiÄ™cej", - "item.page.related-items.view-less": "Ukryj {{ amount }}", - "item.page.relationships.isAuthorOfPublication": "Publikacje", - "item.page.relationships.isJournalOfPublication": "Publikacje", - "item.page.relationships.isOrgUnitOfPerson": "Autorzy", - "item.page.relationships.isOrgUnitOfProject": "Projekty naukowe", - "item.page.subject": "SÅ‚owa kluczowe", - "item.page.uri": "URI", - "item.page.bitstreams.view-more": "Pokaż wiÄ™cej", - "item.page.bitstreams.collapse": "Pokaż mniej", - "item.page.filesection.original.bundle": "Oryginalne pliki", - "item.page.filesection.license.bundle": "Licencja", - "item.page.return": "Powrót", - "item.page.version.create": "Utwórz nowÄ… wersjÄ™", - "item.page.version.hasDraft": "Nowa wersja nie może zostać utworzona, ponieważ istnieje już oczekujÄ…ce na akceptacjÄ™ zgÅ‚oszenie dokumentu tego pliku", - "item.preview.dc.identifier.doi": "DOI", - "item.preview.dc.relation.ispartof": "Czasopismo lub seria", - "item.preview.dc.identifier.isbn": "ISBN", - "item.preview.dc.identifier.uri": "Identyfikator:", - "item.preview.dc.contributor.author": "Autorzy:", - "item.preview.dc.date.issued": "Data publikacji:", - "item.preview.dc.description.abstract": "Abstrakt:", - "item.preview.dc.identifier.other": "Inny identyfikator:", - "item.preview.dc.language.iso": "JÄ™zyk:", - "item.preview.dc.title": "TytuÅ‚:", - "item.preview.dc.title.alternative": "TytuÅ‚ alternatywny", - "item.preview.dc.type": "Typ:", - "item.preview.dc.identifier": "Identyfikator:", - "item.preview.dc.relation.issn": "ISSN", - "item.preview.oaire.citation.issue": "Numer wydania", - "item.preview.oaire.citation.volume": "Numer tomu", - "item.preview.person.familyName": "Nazwisko:", - "item.preview.person.givenName": "Nazwa:", - "item.preview.person.identifier.orcid": "ORCID:", - "item.preview.project.funder.name": "Fundator:", - "item.preview.project.funder.identifier": "Identyfikator fundatora:", - "item.preview.oaire.awardNumber": "ID finansowania:", - "item.preview.dc.coverage.spatial": "Jurysdykcja:", - "item.preview.oaire.fundingStream": "ŹródÅ‚o finansowania:", - "item.select.confirm": "Potwierdź zaznaczone", - "item.select.empty": "Brak pozycji do wyÅ›wietlenia", - "item.select.table.author": "Autor", - "item.select.table.collection": "Kolekcja", - "item.select.table.title": "TytuÅ‚", - "item.version.history.empty": "Jeszcze nie ma innych wersji tej pozycji.", - "item.version.history.head": "Poprzednie wersje", - "item.version.history.return": "Powrót", - "item.version.history.selected": "Wybrane wersje", - "item.version.history.selected.alert": "W tym momencie wyÅ›wietlono wersjÄ™ {{version}} pozycji.", - "item.version.history.table.version": "Wersja", - "item.version.history.table.item": "Pozycja", - "item.version.history.table.editor": "Redaktor", - "item.version.history.table.date": "Data", - "item.version.history.table.summary": "Podsumowanie", - "item.version.history.table.workspaceItem": "Wersja robocza", - "item.version.history.table.workflowItem": "Pozycja workflow", - "item.version.history.table.actions": "Akcja", - "item.version.history.table.action.editWorkspaceItem": "Edytuj wersjÄ™ roboczÄ… pozycji", - "item.version.history.table.action.editSummary": "Edytuj podsumowanie", - "item.version.history.table.action.saveSummary": "Zapisz edycje podsumowania", - "item.version.history.table.action.discardSummary": "Odrzuć edycje podsumowania", - "item.version.history.table.action.newVersion": "Utwórz nowÄ… wersjÄ™ z tej wersji", - "item.version.history.table.action.deleteVersion": "Wersja usuniÄ™ta", - "item.version.history.table.action.hasDraft": "Nowa wersja nie może zostać utworzona, ponieważ istnieje już oczekujÄ…ce na akceptacjÄ™ zgÅ‚oszenie dokumentu tego pliku", - "item.version.notice": "To nie jest najnowsza wersja tej pozycji. Najnowsza wersja jest dostÄ™pna <a href='{{destination}}'>tutaj</a>.", - "item.version.create.modal.header": "Nowa wersja", - "item.version.create.modal.text": "Utwórz nowÄ… wersjÄ™ tej pozycji", - "item.version.create.modal.text.startingFrom": "zaczynajÄ…c od wersji {{version}}", - "item.version.create.modal.button.confirm": "Utwórz", - "item.version.create.modal.button.confirm.tooltip": "Utwórz nowÄ… wersjÄ™", - "item.version.create.modal.button.cancel": "Anuluj", - "item.version.create.modal.button.cancel.tooltip": "Nie stwarzaj nowej wersji", - "item.version.create.modal.form.summary.label": "Podsumowanie", - "item.version.create.modal.form.summary.placeholder": "Wprowadź podsumowanie nowej wersji", - "item.version.create.notification.success": "Nowa wersja zostaÅ‚a utworzona z numerem {{version}}", - "item.version.create.notification.failure": "Nowa wersja nie zostaÅ‚a utworzona", - "item.version.create.notification.inProgress": "Nowa wersja nie może być utworzona, ponieważ propozycja innej wersji jest już zÅ‚ożona do zaakceptowania", - "item.version.delete.modal.header": "UsuÅ„ wersjÄ™", - "item.version.delete.modal.text": "Czy chcesz usunąć wersjÄ™ {{version}}?", - "item.version.delete.modal.button.confirm": "UsuÅ„", - "item.version.delete.modal.button.confirm.tooltip": "UsuÅ„ wersjÄ™", - "item.version.delete.modal.button.cancel": "Anuluj", - "item.version.delete.modal.button.cancel.tooltip": "Nie usuwaj tej wersji", - "item.version.delete.notification.success": "Wersja {{version}} zostaÅ‚a usuniÄ™ta", - "item.version.delete.notification.failure": "Wersja {{version}} nie zostaÅ‚a usuniÄ™ta", - "item.version.edit.notification.success": "Podsumowanie wersji {{version}} zostaÅ‚o zmienione", - "item.version.edit.notification.failure": "Podsumowanie wersji {{version}} nie zostaÅ‚o zmienione", - "journal.listelement.badge": "Czasopismo", - "journal.page.description": "Opis", - "journal.page.edit": "Edytuj tÄ™ pozycjÄ™", - "journal.page.editor": "Redaktor naczelny", - "journal.page.issn": "ISSN", - "journal.page.publisher": "Wydawca", - "journal.page.titleprefix": "Czasopismo: ", - "journal.search.results.head": "Wyniki wyszukiwania czasopism", - "journal.search.title": "Wyszukiwanie czasopism", - "journalissue.listelement.badge": "Numer czasopisma", - "journalissue.page.description": "Opis", - "journalissue.page.edit": "Edytuj pozycjÄ™", - "journalissue.page.issuedate": "Data wydania", - "journalissue.page.journal-issn": "ISSN czasopisma", - "journalissue.page.journal-title": "TytuÅ‚ czasopisma", - "journalissue.page.keyword": "SÅ‚owa kluczowe", - "journalissue.page.number": "Numer", - "journalissue.page.titleprefix": "Wydanie czasopisma: ", - "journalvolume.listelement.badge": "Numer tomu czasopisma", - "journalvolume.page.description": "Opis", - "journalvolume.page.edit": "Edytuj pozycjÄ™", - "journalvolume.page.issuedate": "Data wydania", - "journalvolume.page.titleprefix": "Numer tomu czasopisma: ", - "journalvolume.page.volume": "Numer wydania", - "iiifsearchable.listelement.badge": "Multimedia dokumentu", - "iiifsearchable.page.titleprefix": "Dokument: ", - "iiifsearchable.page.doi": "StaÅ‚y link: ", - "iiifsearchable.page.issue": "Wydanie: ", - "iiifsearchable.page.description": "Opis: ", - "iiifviewer.fullscreen.notice": "WyÅ›wietl na peÅ‚nym ekranie dla lepszego widoku.", - "iiif.listelement.badge": "Multimedia obrazu", - "iiif.page.titleprefix": "Obraz: ", - "iiif.page.doi": "StaÅ‚y link: ", - "iiif.page.issue": "Numer wydania: ", - "iiif.page.description": "Opis: ", - "loading.bitstream": "Åadowanie pliku...", - "loading.bitstreams": "Åadowanie plików...", - "loading.browse-by": "Åadowanie pozycji...", - "loading.browse-by-page": "Åadowanie strony...", - "loading.collection": "Åadowanie kolekcji...", - "loading.collections": "Åadowanie kolekcji...", - "loading.content-source": "Åadowanie źródÅ‚a treÅ›ci...", - "loading.community": "Åadowanie zbioru...", - "loading.default": "Åadowanie...", - "loading.item": "Åadowanie pozycji...", - "loading.items": "Åadowanie pozycji...", - "loading.mydspace-results": "Åadowanie pozycji...", - "loading.objects": "Åadowanie...", - "loading.recent-submissions": "Åadowanie ostatnich zgÅ‚oszeÅ„...", - "loading.search-results": "Åadowanie wyników wyszukiwania...", - "loading.sub-collections": "Åadowanie podkolekcji...", - "loading.sub-communities": "Åadowanie podzbioru...", - "loading.top-level-communities": "Åadowanie zbioru wyszego szczebla...", - "login.form.email": "Adres e-mail", - "login.form.forgot-password": "Nie pamiÄ™tasz hasÅ‚a?", - "login.form.header": "Zaloguj siÄ™ do DSpace", - "login.form.new-user": "Nie masz konta? Zarejestruj siÄ™.", - "login.form.or-divider": "lub", - "login.form.orcid": "Zaloguj za pomocÄ… ORCID", - "login.form.oidc": "Zaloguj za pomocÄ… OIDC", - "login.form.password": "HasÅ‚o", - "login.form.shibboleth": "Zaloguj za pomocÄ… Shibboleth", - "login.form.submit": "Zaloguj siÄ™", - "login.title": "Zaloguj", - "login.breadcrumbs": "Zaloguj", - "logout.form.header": "Wyloguj siÄ™ z DSpace", - "logout.form.submit": "Wyloguj siÄ™", - "logout.title": "Wylogowywanie", - "menu.header.admin": "Panel administracyjny", - "menu.header.image.logo": "Logo repozytorium", - "menu.header.admin.description": "Menu administratora", - "menu.section.access_control": "Uprawnienia", - "menu.section.access_control_authorizations": "DostÄ™py", - "menu.section.access_control_groups": "Grupy", - "menu.section.access_control_people": "Użytkownicy", - "menu.section.admin_search": "Wyszukiwanie administracyjne", - "menu.section.browse_community": "Ten zbiór", - "menu.section.browse_community_by_author": "Wg autorów", - "menu.section.browse_community_by_issue_date": "Wg daty wydania", - "menu.section.browse_community_by_title": "Wg tytułów", - "menu.section.browse_global": "Wszystko na DSpace", - "menu.section.browse_global_by_author": "Wg autorów", - "menu.section.browse_global_by_dateissued": "Wg daty wydania", - "menu.section.browse_global_by_subject": "Wg tematu", - "menu.section.browse_global_by_title": "Wg tytuÅ‚u", - "menu.section.browse_global_communities_and_collections": "Zbiory i kolekcje", - "menu.section.control_panel": "Panel sterowania", - "menu.section.curation_task": "Zadanie administracyjne", - "menu.section.edit": "Edytuj", - "menu.section.edit_collection": "Kolekcja", - "menu.section.edit_community": "Zbiór", - "menu.section.edit_item": "Pozycja", - "menu.section.export": "Eksport", - "menu.section.export_collection": "Kolekcja", - "menu.section.export_community": "Zbiór", - "menu.section.export_item": "Pozycja", - "menu.section.export_metadata": "Metadane", - "menu.section.icon.access_control": "Sekcja menu Uprawnienia", - "menu.section.icon.admin_search": "Sekcja menu Wyszukiwanie administracyjne", - "menu.section.icon.control_panel": "Sekcja menu Panel sterowania", - "menu.section.icon.curation_tasks": "Sekcja menu Zadanie administracyjne", - "menu.section.icon.edit": "Sekcja menu Edycja", - "menu.section.icon.export": "Sekcja menu Eksport", - "menu.section.icon.find": "Sekcja menu Wyszukiwanie", - "menu.section.icon.import": "Sekcja menu Import", - "menu.section.icon.new": "Sekcja menu Dodaj", - "menu.section.icon.pin": "Przypnij boczny pasek", - "menu.section.icon.processes": "Sekcja menu Procesy", - "menu.section.icon.registries": "Sekcja menu Rejestry", - "menu.section.icon.statistics_task": "Sekcja menu Zadanie statystyczne", - "menu.section.icon.workflow": "Sekcja menu ZarzÄ…dzanie workflow", - "menu.section.icon.unpin": "Odepnij boczny pasek", - "menu.section.import": "Import", - "menu.section.import_batch": "Import masowy (ZIP)", - "menu.section.import_metadata": "Metadane", - "menu.section.new": "Dodaj", - "menu.section.new_collection": "Kolekcja", - "menu.section.new_community": "Zbiór", - "menu.section.new_item": "Pozycja", - "menu.section.new_item_version": "Wersja pozycji", - "menu.section.new_process": "Proces", - "menu.section.pin": "Przypnij pasek boczny", - "menu.section.unpin": "Odepnij pasek boczny", - "menu.section.processes": "Procesy", - "menu.section.registries": "Rejestry", - "menu.section.registries_format": "Formaty", - "menu.section.registries_metadata": "Metadane", - "menu.section.statistics": "Statystyki", - "menu.section.statistics_task": "Zadanie statystyczne", - "menu.section.toggle.access_control": "PrzeÅ‚Ä…cz sekcjÄ™ Uprawnienia", - "menu.section.toggle.control_panel": "PrzeÅ‚Ä…cz sekcjÄ™ Panel sterowania", - "menu.section.toggle.curation_task": "PrzeÅ‚Ä…cz sekcjÄ™ Zadanie kuratora", - "menu.section.toggle.edit": "PrzeÅ‚Ä…cz sekcjÄ™ Edytuj", - "menu.section.toggle.export": "PrzeÅ‚Ä…cz sekcjÄ™ Eksport", - "menu.section.toggle.find": "PrzeÅ‚Ä…cz sekcjÄ™ Wyszukiwanie", - "menu.section.toggle.import": "PrzeÅ‚Ä…cz sekcjÄ™ Import", - "menu.section.toggle.new": "PrzeÅ‚Ä…cz nowÄ… sekcjÄ™", - "menu.section.toggle.registries": "PrzeÅ‚Ä…cz sekcjÄ™ Rejestry", - "menu.section.toggle.statistics_task": "PrzeÅ‚Ä…cz sekcjÄ™ Zadanie statystyczne", - "menu.section.workflow": "ZarzÄ…dzaj Workflow", - "mydspace.breadcrumbs": "Mój DSpace", - "mydspace.description": "", - "mydspace.messages.controller-help": "Wybierz tÄ™ opcjÄ™, aby przesÅ‚ać wiadomość do zgÅ‚aszajÄ…cego.", - "mydspace.messages.description-placeholder": "Wpisz swojÄ… wiadomość tutaj...", - "mydspace.messages.hide-msg": "Ukryj wiadomość", - "mydspace.messages.mark-as-read": "Oznacz jako przeczytane", - "mydspace.messages.mark-as-unread": "Oznacz jako nieprzeczytane", - "mydspace.messages.no-content": "Brak treÅ›ci.", - "mydspace.messages.no-messages": "Brak wiadomoÅ›ci.", - "mydspace.messages.send-btn": "WysÅ‚ano", - "mydspace.messages.show-msg": "Pokaż wiadomość", - "mydspace.messages.subject-placeholder": "Temat...", - "mydspace.messages.submitter-help": "Wybierz tÄ™ opcjÄ™, aby przesÅ‚ać wiadomość do osoby kontrolujÄ…cej.", - "mydspace.messages.title": "WiadomoÅ›ci", - "mydspace.messages.to": "Do", - "mydspace.new-submission": "Nowe zgÅ‚oszenie", - "mydspace.new-submission-external": "Import medatanych z zewnÄ™trznego źródÅ‚a", - "mydspace.new-submission-external-short": "Import metadanych", - "mydspace.results.head": "Twoje zadania", - "mydspace.results.no-abstract": "Brak abstraktu", - "mydspace.results.no-authors": "Brak autorów", - "mydspace.results.no-collections": "Brak kolekcji", - "mydspace.results.no-date": "Brak daty", - "mydspace.results.no-files": "Brak plików", - "mydspace.results.no-results": "Brak pozycji do wyÅ›wietlenia", - "mydspace.results.no-title": "Brak tytuÅ‚u", - "mydspace.results.no-uri": "Brak Uri", - "mydspace.search-form.placeholder": "Wyszukaj w mydspace...", - "mydspace.show.workflow": "Wszystkie zadania", - "mydspace.show.workspace": "Twoje zadania", - "mydspace.status.mydspaceArchived": "Zarchiwizowano", - "mydspace.status.mydspaceValidation": "Walidacja", - "mydspace.status.mydspaceWaitingController": "Oczekiwanie na redaktora", - "mydspace.status.mydspaceWorkflow": "Workflow", - "mydspace.status.mydspaceWorkspace": "Wersja robocza", - "mydspace.title": "Mój DSpace", - "mydspace.upload.upload-failed": "BÅ‚ad podczas tworzenia nowej wersji roboczej. Sprawdź poprawność plików i spróbuj ponownie.", - "mydspace.upload.upload-failed-manyentries": "Plik jest niemożliwy do przetworzenia. Wykryto wiele wejść, a dopuszczalne jest tylko jedno dla jednego pliku.", - "mydspace.upload.upload-failed-moreonefile": "Zapytanie niemożliwe do przetworzenia. Tylko jeden plik jest dopuszczalny.", - "mydspace.upload.upload-multiple-successful": "Utworzono {{qty}} przestrzeni roboczych.", - "mydspace.view-btn": "Widok", - "nav.browse.header": "CaÅ‚y DSpace", - "nav.community-browse.header": "Wg zbiorów", - "nav.language": "ZmieÅ„ jÄ™zyk", - "nav.login": "Zaloguj", - "nav.logout": "Menu profilu użytkownika i wylogowywanie", - "nav.main.description": "Główny pasek nawigacji", - "nav.mydspace": "Mój DSpace", - "nav.profile": "Profil", - "nav.search": "Wyszukiwanie", - "nav.statistics.header": "Statystyki", - "nav.stop-impersonating": "PrzestaÅ„ impersonifikować użytkownika", - "nav.toggle": "PrzeÅ‚Ä…cz nawigacjÄ™", - "nav.user.description": "Pasek profilu użytkownika", - "none.listelement.badge": "Pozycja", - "person.listelement.badge": "Osoba", - "person.listelement.no-title": "Nie znaleziono imienia", - "person.page.birthdate": "Data urodzenia", - "person.page.edit": "Edytuj pozycjÄ™", - "person.page.email": "Adres e-mail", - "person.page.firstname": "ImiÄ™", - "person.page.jobtitle": "Stanowisko", - "person.page.lastname": "Nazwisko", - "person.page.link.full": "Pokaż wszystkie metadane", - "person.page.orcid": "ORCID", - "person.page.orcid.create": "Utwórz ORCID ID", - "person.page.orcid.granted-authorizations": "Udzielone dostÄ™py", - "person.page.orcid.grant-authorizations": "Udziel dostÄ™pu", - "person.page.orcid.link": "PoÅ‚Ä…cz z ORCID ID", - "person.page.orcid.orcid-not-linked-message": "ORCID iD tego profilu ({{ orcid }}) nie jest poÅ‚Ä…czony z bazÄ… ORCID lub poÅ‚Ä…czenie wygasÅ‚o.", - "person.page.orcid.unlink": "Odepnij z ORCID", - "person.page.orcid.unlink.processing": "Procesowanie...", - "person.page.orcid.missing-authorizations": "Brak dostÄ™pów", - "person.page.orcid.missing-authorizations-message": "Brakuj nastÄ™pujÄ…cych dostÄ™pów:", - "person.page.orcid.no-missing-authorizations-message": "Åšwietnie! To miejsce jest puste, co oznacza, że masz dostÄ™p do wszystkich uprawnieÅ„, które sÄ… dostÄ™pne w Twojej instytucji.", - "person.page.orcid.no-orcid-message": "Brak przypisanego ORCID iD. Poprez wybranie przycisku poniżej możesz powiÄ…zać ten profil wraz z kontem ORCID.", - "person.page.orcid.profile-preferences": "Preferencje profilu", - "person.page.orcid.funding-preferences": "Preferencje finansowania", - "person.page.orcid.publications-preferences": "Preferencje publikacji", - "person.page.orcid.remove-orcid-message": "JeÅ›li chcesz usunąć Twój ORCID, skontaktuj siÄ™ z administratorem repozytorium", - "person.page.orcid.save.preference.changes": "Aktualizuj ustawienia", - "person.page.orcid.sync-profile.affiliation": "Afiliacja", - "person.page.orcid.sync-profile.biographical": "Biografia", - "person.page.orcid.sync-profile.education": "Edukacja", - "person.page.orcid.sync-profile.identifiers": "Identyfikatory", - "person.page.orcid.sync-fundings.all": "Wszystkie źrodÅ‚a finansowania", - "person.page.orcid.sync-fundings.mine": "Moje źrodÅ‚a finansowania", - "person.page.orcid.sync-fundings.my_selected": "Wybrane źródÅ‚a finansowania", - "person.page.orcid.sync-fundings.disabled": "Nieaktywne", - "person.page.orcid.sync-publications.all": "Wszystkie publikacje", - "person.page.orcid.sync-publications.mine": "Moje publikacje", - "person.page.orcid.sync-publications.my_selected": "Wybrane publikacje", - "person.page.orcid.sync-publications.disabled": "Nieaktywne", - "person.page.orcid.sync-queue.discard": "Odrzuć zmianÄ™ i nie synchronizuj z ORCID", - "person.page.orcid.sync-queue.discard.error": "Rekord kolejki ORCID nie zostaÅ‚ odrzucony", - "person.page.orcid.sync-queue.discard.success": "Rekord kolejki ORCID zostaÅ‚ odrzucony", - "person.page.orcid.sync-queue.empty-message": "Rejestr kolejki w ORCID jest pusty", - "person.page.orcid.sync-queue.description.affiliation": "Afiliacje", - "person.page.orcid.sync-queue.description.country": "Kraj", - "person.page.orcid.sync-queue.description.education": "Edukacja", - "person.page.orcid.sync-queue.description.external_ids": "ZewnÄ™trzne identyfikatory", - "person.page.orcid.sync-queue.description.other_names": "Inne imiona", - "person.page.orcid.sync-queue.description.qualification": "Kwalifikacje", - "person.page.orcid.sync-queue.description.researcher_urls": "URL naukowca", - "person.page.orcid.sync-queue.description.keywords": "SÅ‚owa kluczowe", - "person.page.orcid.sync-queue.tooltip.insert": "Dodaj nowy wpis w rejestrze ORCID", - "person.page.orcid.sync-queue.tooltip.update": "Aktualizuj ten wpis w rejestrze ORCID", - "person.page.orcid.sync-queue.tooltip.delete": "UsuÅ„ ten wpis z rejestru ORCID", - "person.page.orcid.sync-queue.tooltip.publication": "Publikacja", - "person.page.orcid.sync-queue.tooltip.affiliation": "Afiliacja", - "person.page.orcid.sync-queue.tooltip.education": "Edukacja", - "person.page.orcid.sync-queue.tooltip.qualification": "Kwalifikacje", - "person.page.orcid.sync-queue.tooltip.other_names": "Inna nazwa", - "person.page.orcid.sync-queue.tooltip.country": "Kraj", - "person.page.orcid.sync-queue.tooltip.keywords": "SÅ‚owa kluczowe", - "person.page.orcid.sync-queue.tooltip.external_ids": "ZewnÄ™trzny identyfikator", - "person.page.orcid.sync-queue.tooltip.researcher_urls": "URL naukowca", - "person.page.orcid.sync-queue.send": "Synchronizuj z rejestrem ORCID", - "person.page.orcid.sync-queue.send.unauthorized-error.title": "WysÅ‚anie zgÅ‚oszenia do ORCID nieudane z powodu braku uprawnieÅ„.", - "person.page.orcid.sync-queue.send.unauthorized-error.content": "Wybierz <a href='{{orcid}}'>here</a>, aby wystÄ…pić o niezbÄ™dne uprawnienia. JeÅ›li problem wciąż wystÄ™puje, skontaktuj siÄ™ z administratorem", - "person.page.orcid.sync-queue.send.bad-request-error": "WysÅ‚anie zgÅ‚oszenia do ORCID nie powiodÅ‚o siÄ™ ponieważ źródÅ‚a wysÅ‚ane do rejestru ORCID nie jest poprawne", - "person.page.orcid.sync-queue.send.error": "WysÅ‚anie zgÅ‚oszenia do ORCID nie powiodÅ‚o siÄ™", - "person.page.orcid.sync-queue.send.conflict-error": "ZgÅ‚oszenie do ORCID nie powiodÅ‚o siÄ™, ponieważ ta pozycja jest już dodana do rejestru ORCID", - "person.page.orcid.sync-queue.send.not-found-warning": "Pozycja nie istnieje już w rejestrze ORCID.", - "person.page.orcid.sync-queue.send.success": "ZgÅ‚oszenie do ORCID zostaÅ‚o zakoÅ„czone pomyÅ›lnie", - "person.page.orcid.sync-queue.send.validation-error": "Dane, które chcesz zsynchronizować z ORCID nie sÄ… poprawne", - "person.page.orcid.sync-queue.send.validation-error.amount-currency.required": "Waluta jest wymagana", - "person.page.orcid.sync-queue.send.validation-error.external-id.required": "Aby wysÅ‚ać pozycjÄ™, należy podać przynajmniej jeden identyfikator", - "person.page.orcid.sync-queue.send.validation-error.title.required": "TytuÅ‚ jest wymagany", - "person.page.orcid.sync-queue.send.validation-error.type.required": "Typ jest wymagany", - "person.page.orcid.sync-queue.send.validation-error.start-date.required": "Data poczÄ…tkowa jest wymagana", - "person.page.orcid.sync-queue.send.validation-error.funder.required": "Instytucja finansujÄ…ca jest wymagana", - "person.page.orcid.sync-queue.send.validation-error.organization.required": "Instytucja jest wymagana", - "person.page.orcid.sync-queue.send.validation-error.organization.name-required": "Nazwa instytucji jest wymagana", - "person.page.orcid.sync-queue.send.validation-error.organization.address-required": "Aby wysÅ‚ać instytucjÄ™, należy podać adres", - "person.page.orcid.sync-queue.send.validation-error.organization.city-required": "Aby wysÅ‚ać adres, należy podać miasto", - "person.page.orcid.sync-queue.send.validation-error.organization.country-required": "Aby wysÅ‚ać adres, należy podać kraj", - "person.page.orcid.sync-queue.send.validation-error.disambiguated-organization.required": "Wymagany jest identyfikator umożliwiajÄ…cy rozróżnienie instytucji. ObsÅ‚ugiwane identyfikatory to GRID, Ringgold, kod LEI oraz identyfikatory z rejestru instytucji finansujÄ…cych Crossref.", - "person.page.orcid.sync-queue.send.validation-error.disambiguated-organization.value-required": "Należy uzupeÅ‚nić wartość w identyfikatorze instytucji", - "person.page.orcid.sync-queue.send.validation-error.disambiguation-source.required": "Należy uzupeÅ‚nić źródÅ‚o w identyfikatorze instytucji", - "person.page.orcid.sync-queue.send.validation-error.disambiguation-source.invalid": "ŹródÅ‚o jednego z identyfikatorów organizcji jest niepoprawne. Wspierane źródÅ‚a to RINGGOLD, GRID, LEI and FUNDREF", - "person.page.orcid.synchronization-mode": "Tryb synchronizacji", - "person.page.orcid.synchronization-mode.batch": "Wsad", - "person.page.orcid.synchronization-mode.label": "Tryb synchronizacji", - "person.page.orcid.synchronization-mode-message": "WÅ‚Ä…cz tryb 'Manual' synchronizacja, aby wyÅ‚aczyć tryb synchronizacji wsadowej, wtedy dane do rejestru ORCID bÄ™dÄ… musiaÅ‚y zostać wysÅ‚ane rÄ™cznie", - "person.page.orcid.synchronization-settings-update.success": "Opcje synchronizacji zostaÅ‚y zaktualizowane", - "person.page.orcid.synchronization-settings-update.error": "Opcje synchronizacji nie zostaÅ‚y zaktualizowane", - "person.page.orcid.synchronization-mode.manual": "RÄ™czna", - "person.page.orcid.scope.authenticate": "Uzyskaj swój ORCID iD", - "person.page.orcid.scope.read-limited": "Przeczytaj informacje o ustawieniach widocznoÅ›ci z firmami trzeciami", - "person.page.orcid.scope.activities-update": "Dodaj/aktualizuj swoje aktywnoÅ›ci naukowe", - "person.page.orcid.scope.person-update": "Dodaj/aktualizuj inne informacje o Tobie", - "person.page.orcid.unlink.success": "OdÅ‚Ä…czenie Twojego profilu od rejestru ORCID powiodÅ‚o siÄ™", - "person.page.orcid.unlink.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas odÅ‚Ä…czania Twojego profilu od rejestru ORCID. Spróbuj ponownie", - "person.page.staffid": "ID pracownika", - "person.page.titleprefix": "Osoba: ", - "person.search.results.head": "Wyniki wyszukiwania użytkowników", - "person.search.title": "Wyniki wyszukiwania użytkowników", - "process.new.select-parameters": "Parametry", - "process.new.cancel": "Anuluj", - "process.new.submit": "Zapisz", - "process.new.select-script": "Skrypt", - "process.new.select-script.placeholder": "Wybierz skrypt...", - "process.new.select-script.required": "Skrypt jest wymagany", - "process.new.parameter.file.upload-button": "Wybierz plik...", - "process.new.parameter.file.required": "ProszÄ™ wybrać plik", - "process.new.parameter.string.required": "Wartość parametru jest wymagana", - "process.new.parameter.type.value": "wartość", - "process.new.parameter.type.file": "plik", - "process.new.parameter.required.missing": "Te parametry sÄ… wymagane, ale nie zostaÅ‚y uzupeÅ‚nione:", - "process.new.notification.success.title": "UdaÅ‚o siÄ™", - "process.new.notification.success.content": "UdaÅ‚o siÄ™ stworzyć proces", - "process.new.notification.error.title": "BÅ‚Ä…d", - "process.new.notification.error.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia procesu", - "process.new.header": "Utwórz nowy proces", - "process.new.title": "Utwórz nowy proces", - "process.new.breadcrumbs": "Utwórz nowy proces", - "process.detail.arguments": "Argumenty", - "process.detail.arguments.empty": "Do tego procesu nie zostaÅ‚y przypisane żadne argumenty", - "process.detail.back": "Cofnij", - "process.detail.output": "Dane wyjÅ›ciowe procesu", - "process.detail.logs.button": "Odzyskaj dane wyjÅ›ciowe procesu", - "process.detail.logs.loading": "Odzyskiwanie", - "process.detail.logs.none": "Ten proces nie ma danych wyjÅ›ciowych", - "process.detail.output-files": "Pliki", - "process.detail.output-files.empty": "Ten proces nie ma żadnych plików danych wyjÅ›ciowych", - "process.detail.script": "Skrypt", - "process.detail.title": "Proces: {{ id }} - {{ name }}", - "process.detail.start-time": "Czas rozpoczÄ™cia procesu", - "process.detail.end-time": "Czas zakoÅ„czenia procesu", - "process.detail.status": "Status", - "process.detail.create": "Stwórz podobny proces", - "process.overview.table.finish": "Czas zakoÅ„czenia (UTC)", - "process.overview.table.id": "Identyfikator procesu", - "process.overview.table.name": "Nazwa", - "process.overview.table.start": "Czas rozpoczÄ™cia (UTC)", - "process.overview.table.status": "Status", - "process.overview.table.user": "Użytkownik", - "process.overview.title": "PrzeglÄ…d procesów", - "process.overview.breadcrumbs": "PrzeglÄ…d procesów", - "process.overview.new": "Nowy", - "profile.breadcrumbs": "Zaktualizuj profil", - "profile.card.identify": "Dane", - "profile.card.security": "BezpieczeÅ„stwo", - "profile.form.submit": "Zaktualizuj profil", - "profile.groups.head": "Posiadane uprawnienia do kolekcji", - "profile.head": "Zaktualizuj profil", - "profile.metadata.form.error.firstname.required": "ImiÄ™ jest wymagane", - "profile.metadata.form.error.lastname.required": "Nazwisko jest wymagane", - "profile.metadata.form.label.email": "Adres e-mail", - "profile.metadata.form.label.firstname": "ImiÄ™", - "profile.metadata.form.label.language": "JÄ™zyk", - "profile.metadata.form.label.lastname": "Nazwisko", - "profile.metadata.form.label.phone": "Telefon kontaktowy", - "profile.metadata.form.notifications.success.content": "Zmiany w profilu zostaÅ‚y zapisane.", - "profile.metadata.form.notifications.success.title": "Profil zapisany", - "profile.notifications.warning.no-changes.content": "Nie dokonano żadnych zmian w profilu.", - "profile.notifications.warning.no-changes.title": "Brak zmian", - "profile.security.form.error.matching-passwords": "HasÅ‚a nie sÄ… identyczne.", - "profile.security.form.info": "Możesz wprowadzić nowe hasÅ‚o w polu poniżej i zatwierdzić poprzez ponowne wpisanie. HasÅ‚o musi mieć przynajmniej 6 znaków.", - "profile.security.form.label.password": "HasÅ‚o", - "profile.security.form.label.passwordrepeat": "Potwierdź hasÅ‚o", - "profile.security.form.notifications.success.content": "Twoje zmiany w haÅ›le zostaÅ‚y zapisane.", - "profile.security.form.notifications.success.title": "HasÅ‚o zapisane", - "profile.security.form.notifications.error.title": "BÅ‚Ä…d podczas próby zmiany hasÅ‚a", - "profile.security.form.notifications.error.not-same": "HasÅ‚a nie sÄ… identyczne.", - "profile.title": "Zaktualizuj profil", - "profile.card.researcher": "Profil naukowca", - "project.listelement.badge": "Projekt badawczy", - "project.page.contributor": "Autorzy", - "project.page.description": "Opis", - "project.page.edit": "Edytuj pozycjÄ™", - "project.page.expectedcompletion": "Spodziewany termin zakoÅ„czenia", - "project.page.funder": "Instytucje finansujÄ…ce", - "project.page.id": "ID", - "project.page.keyword": "SÅ‚owa kluczowe", - "project.page.status": "Status", - "project.page.titleprefix": "Projekt badawczy: ", - "project.search.results.head": "Wyniki wyszukiwania projektów", - "publication.listelement.badge": "Publikacja", - "publication.page.description": "Opis", - "publication.page.edit": "Edytuj pozycjÄ™", - "publication.page.journal-issn": "ISSN czasopisma", - "publication.page.journal-title": "TytuÅ‚ czasopisma", - "publication.page.publisher": "Wydawca", - "publication.page.titleprefix": "Publikacja: ", - "publication.page.volume-title": "TytuÅ‚ tomu", - "publication.search.results.head": "Wyniki wyszukiwania publikacji", - "publication.search.title": "Wyszukiwanie publikacji", - "media-viewer.next": "Nowy", - "media-viewer.previous": "Poprzedni", - "media-viewer.playlist": "Playlista", - "register-email.title": "Rejestracja nowego użytkownika", - "register-page.create-profile.header": "Stwórz profil", - "register-page.create-profile.identification.header": "Dane", - "register-page.create-profile.identification.email": "Adres e-mail", - "register-page.create-profile.identification.first-name": "ImiÄ™ *", - "register-page.create-profile.identification.first-name.error": "Wpisz imiÄ™", - "register-page.create-profile.identification.last-name": "Nazwisko *", - "register-page.create-profile.identification.last-name.error": "Wpisz nazwisko", - "register-page.create-profile.identification.contact": "Telefon kontaktowy", - "register-page.create-profile.identification.language": "JÄ™zyk", - "register-page.create-profile.security.header": "BezpieczeÅ„stwo", - "register-page.create-profile.security.info": "Wprowadź nowe hasÅ‚o w polu poniżej i zatwierdź poprzez ponowne wpisanie w drugim polu. HasÅ‚o musi mieć przynajmniej 6 znaków.", - "register-page.create-profile.security.label.password": "HasÅ‚o *", - "register-page.create-profile.security.label.passwordrepeat": "Potwierdź hasÅ‚o *", - "register-page.create-profile.security.error.empty-password": "Wprowadź hasÅ‚o w polu poniżej.", - "register-page.create-profile.security.error.matching-passwords": "HasÅ‚a nie sÄ… identyczne.", - "register-page.create-profile.submit": "Rejestracja zakoÅ„czona", - "register-page.create-profile.submit.error.content": "CoÅ› siÄ™ nie udaÅ‚o podczas rejestracji nowego użytkownika.", - "register-page.create-profile.submit.error.head": "Rejestracja nie powiodÅ‚a siÄ™", - "register-page.create-profile.submit.success.content": "Rejestracja powiodÅ‚a siÄ™. Zalogowano jako stworzony użytkownik.", - "register-page.create-profile.submit.success.head": "Rejestracja zakoÅ„czona", - "register-page.registration.header": "Rejestracja nowego użytkownika", - "register-page.registration.info": "Zarejestruj siÄ™, aby otrzymywać wiadomoÅ›ci o nowych pozycjach w obserowanych kolekcjach, a także przesyÅ‚ać nowe pozycje do repozytorium.", - "register-page.registration.email": "Adres e-mail *", - "register-page.registration.email.error.required": "WypeÅ‚nij adres e-mail", - "register-page.registration.email.error.pattern": "WypeÅ‚nij poprawny adres e-mail", - "register-page.registration.email.hint": "Ten adres e-mail bÄ™dzie zweryfikowany i bÄ™dziesz go używać jako swój login.", - "register-page.registration.submit": "Zarejestruj siÄ™", - "register-page.registration.success.head": "Wiadomość weryfikacyjna zostaÅ‚Ä… wysÅ‚ana", - "register-page.registration.success.content": "Wiadomość zostaÅ‚a wysÅ‚ana na adres e-mail {{ email }}. Zawiera ona unikatowy link i dalsze instrukcje postÄ™powania.", - "register-page.registration.error.head": "BÅ‚Ä…d podczas próby rejestracji adresu e-mail", - "register-page.registration.error.content": "BÅ‚Ä…d podczas próby rejestracji adresu e-mail: {{ email }}", - "relationships.add.error.relationship-type.content": "Nie znaleziono dopasowania dla typu relacji {{ type }} pomiÄ™dzy dwoma pozycjami", - "relationships.add.error.server.content": "BÅ‚Ä…d serwera", - "relationships.add.error.title": "Nie można dodać relacji", - "relationships.isAuthorOf": "Autorzy", - "relationships.isAuthorOf.Person": "Autorzy (osoby)", - "relationships.isAuthorOf.OrgUnit": "Autorzy (jednostki organizacyjne)", - "relationships.isIssueOf": "Numery czasopisma", - "relationships.isJournalIssueOf": "Numer czasopisma", - "relationships.isJournalOf": "Czasopisma", - "relationships.isOrgUnitOf": "Jednostki organizacyjne", - "relationships.isPersonOf": "Autorzy", - "relationships.isProjectOf": "Projekty badawcze", - "relationships.isPublicationOf": "Publikacje", - "relationships.isPublicationOfJournalIssue": "ArtykuÅ‚y", - "relationships.isSingleJournalOf": "Czasopismo", - "relationships.isSingleVolumeOf": "Tom czasopisma", - "relationships.isVolumeOf": "Tomy czasopisma", - "relationships.isContributorOf": "Autorzy", - "relationships.isContributorOf.OrgUnit": "Autor (Jednostka organizacyjna)", - "relationships.isContributorOf.Person": "Autor", - "relationships.isFundingAgencyOf.OrgUnit": "Instytucja finansujÄ…ca", - "repository.image.logo": "Logo repozytorium", - "repository.title.prefix": "DSpace Angular :: ", - "researcher.profile.action.processing": "Procesowanie...", - "researcher.profile.associated": "Przypisanie profilu badacza", - "researcher.profile.create.new": "Utwórz nowy", - "researcher.profile.create.success": "Profil badacza zostaÅ‚ utworzony", - "researcher.profile.create.fail": "WystÄ…piÅ‚ bÅ‚Ä…d poczas tworzenia profilu badacza.", - "researcher.profile.delete": "UsuÅ„", - "researcher.profile.expose": "Ujawnij", - "researcher.profile.hide": "Ukryj", - "researcher.profile.not.associated": "Profil badacza nie zostaÅ‚ jeszcze przypisany", - "researcher.profile.view": "Widok", - "researcher.profile.private.visibility": "PRYWATNY", - "researcher.profile.public.visibility": "PUBLICZNY", - "researcher.profile.status": "Status:", - "researcherprofile.claim.not-authorized": "Nie masz uprawnieÅ„, aby wystÄ…pić o tÄ™ pozycjÄ™. Aby otrzymać wiÄ™cej szczegółów, skontaktuj siÄ™ z administratorami.", - "researcherprofile.error.claim.body": "WystÄ…piÅ‚ bÅ‚Ä…d podczas wystÄ…pienia z proÅ›bÄ… o przypisanie profilu. Spróbuj ponownie później.", - "researcherprofile.error.claim.title": "BÅ‚Ä…d", - "researcherprofile.success.claim.body": "WystÄ…pienie z proÅ›bÄ… o przypisanie profilu udane", - "researcherprofile.success.claim.title": "Sukces", - "repository.title.prefixDSpace": "DSpace Angular ::", - "resource-policies.add.button": "Dodaj", - "resource-policies.add.for.": "Dodaj nowÄ… politykÄ™", - "resource-policies.add.for.bitstream": "Dodaj nowÄ… politykÄ™ dla plików", - "resource-policies.add.for.bundle": "Dodaj nowÄ… politykÄ™ paczek", - "resource-policies.add.for.item": "Dodaj nowÄ… politykÄ™ pozycji", - "resource-policies.add.for.community": "Dodaj nowÄ… politykÄ™ zbioru", - "resource-policies.add.for.collection": "Dodaj nowÄ… politykÄ™ kolekcji", - "resource-policies.create.page.heading": "Utwórz nowÄ… politykÄ™ zasobu dla ", - "resource-policies.create.page.failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas dodawania polityki zasobów.", - "resource-policies.create.page.success.content": "DziaÅ‚anie powiodÅ‚o siÄ™", - "resource-policies.create.page.title": "Utwórz nowÄ… politykÄ™ zasobu", - "resource-policies.delete.btn": "UsuÅ„ zaznaczone", - "resource-policies.delete.btn.title": "UsuÅ„ zaznaczone polityki zasobów", - "resource-policies.delete.failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas usuwania wybranych polityk zasobów.", - "resource-policies.delete.success.content": "DziaÅ‚anie powiodÅ‚o siÄ™", - "resource-policies.edit.page.heading": "Edytuj politykÄ™ zasobu ", - "resource-policies.edit.page.failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d poczas edytowania polityki zasobu.", - "resource-policies.edit.page.success.content": "DziaÅ‚anie udaÅ‚o siÄ™", - "resource-policies.edit.page.title": "Edytuj politykÄ™ zasobu", - "resource-policies.form.action-type.label": "Wybierz ten typ akcji", - "resource-policies.form.action-type.required": "Musisz wybrać akcjÄ™ polityki zasobu.", - "resource-policies.form.eperson-group-list.label": "Użytkownik lub grupa, która otrzyma uprawnienia.", - "resource-policies.form.eperson-group-list.select.btn": "Wybierz", - "resource-policies.form.eperson-group-list.tab.eperson": "Wyszukaj użytkownika", - "resource-policies.form.eperson-group-list.tab.group": "Wyszukaj grupÄ™", - "resource-policies.form.eperson-group-list.table.headers.action": "Akcja", - "resource-policies.form.eperson-group-list.table.headers.id": "ID", - "resource-policies.form.eperson-group-list.table.headers.name": "Nazwa", - "resource-policies.form.date.end.label": "Data zakoÅ„czenia", - "resource-policies.form.date.start.label": "Data rozpoczÄ™cia", - "resource-policies.form.description.label": "Opis", - "resource-policies.form.name.label": "Nazwa", - "resource-policies.form.policy-type.label": "Wybierz typ polityki", - "resource-policies.form.policy-type.required": "Musisz wybrać typ polityki zasobu.", - "resource-policies.table.headers.action": "Akcja", - "resource-policies.table.headers.date.end": "Data zakoÅ„czenia", - "resource-policies.table.headers.date.start": "Data rozpoczÄ™cia", - "resource-policies.table.headers.edit": "Edytuj", - "resource-policies.table.headers.edit.group": "Edytuj grupÄ™", - "resource-policies.table.headers.edit.policy": "Edytuj politykÄ™", - "resource-policies.table.headers.eperson": "Użytkownik", - "resource-policies.table.headers.group": "Grupa", - "resource-policies.table.headers.id": "ID", - "resource-policies.table.headers.name": "Nazwa", - "resource-policies.table.headers.policyType": "typ", - "resource-policies.table.headers.title.for.bitstream": "Polityki dla plików", - "resource-policies.table.headers.title.for.bundle": "Polityki dla paczek", - "resource-policies.table.headers.title.for.item": "Polityki dla pozycji", - "resource-policies.table.headers.title.for.community": "Polityki dla zbioru", - "resource-policies.table.headers.title.for.collection": "Polityki dla kolekcji", - "search.description": "", - "search.switch-configuration.title": "Pokaż", - "search.title": "Szukaj", - "search.breadcrumbs": "Szukaj", - "search.search-form.placeholder": "Szukaj w repozytorium...", - "search.filters.applied.f.author": "Autor", - "search.filters.applied.f.dateIssued.max": "Data zakoÅ„czenia", - "search.filters.applied.f.dateIssued.min": "Data rozpoczÄ™cia", - "search.filters.applied.f.dateSubmitted": "Data zgÅ‚oszenia", - "search.filters.applied.f.discoverable": "Ukryty", - "search.filters.applied.f.entityType": "Typ pozycji", - "search.filters.applied.f.has_content_in_original_bundle": "Ma przypisane pliki", - "search.filters.applied.f.itemtype": "Typ", - "search.filters.applied.f.namedresourcetype": "Status", - "search.filters.applied.f.subject": "Temat", - "search.filters.applied.f.submitter": "ZgÅ‚aszajÄ…cy", - "search.filters.applied.f.jobTitle": "Stanowisko", - "search.filters.applied.f.birthDate.max": "Data zakoÅ„czenia tworzenia", - "search.filters.applied.f.birthDate.min": "Data rozpoczÄ™cia tworzenia", - "search.filters.applied.f.withdrawn": "Wycofane", - "search.filters.filter.author.head": "Autor", - "search.filters.filter.author.placeholder": "Autor", - "search.filters.filter.author.label": "Wyszukaj autora", - "search.filters.filter.birthDate.head": "Data urodzenia", - "search.filters.filter.birthDate.placeholder": "Data urodzenia", - "search.filters.filter.birthDate.label": "Wyszukaj datÄ™ urodzenia", - "search.filters.filter.collapse": "Ukryj filtr", - "search.filters.filter.creativeDatePublished.head": "Data opublikowania", - "search.filters.filter.creativeDatePublished.placeholder": "Data opublikowania", - "search.filters.filter.creativeDatePublished.label": "Wyszukaj datÄ™ opublikowania", - "search.filters.filter.creativeWorkEditor.head": "Redaktor", - "search.filters.filter.creativeWorkEditor.placeholder": "Redaktor", - "search.filters.filter.creativeWorkEditor.label": "Wyszukaj redaktora", - "search.filters.filter.creativeWorkKeywords.head": "SÅ‚owo kluczowe", - "search.filters.filter.creativeWorkKeywords.placeholder": "SÅ‚owo kluczowe", - "search.filters.filter.creativeWorkKeywords.label": "Wyszukaj temat", - "search.filters.filter.creativeWorkPublisher.head": "Wydawca", - "search.filters.filter.creativeWorkPublisher.placeholder": "Wydawca", - "search.filters.filter.creativeWorkPublisher.label": "Wyszukaj wydawcÄ™", - "search.filters.filter.dateIssued.head": "Data", - "search.filters.filter.dateIssued.max.placeholder": "Data maksymalna", - "search.filters.filter.dateIssued.max.label": "Koniec", - "search.filters.filter.dateIssued.min.placeholder": "Data minimalna", - "search.filters.filter.dateIssued.min.label": "Start", - "search.filters.filter.dateSubmitted.head": "Data zgÅ‚oszenia", - "search.filters.filter.dateSubmitted.placeholder": "Data zgÅ‚oszenia", - "search.filters.filter.dateSubmitted.label": "Wyszukaj datÄ™ zgÅ‚oszenia", - "search.filters.filter.discoverable.head": "Ukryty", - "search.filters.filter.withdrawn.head": "Wycofane", - "search.filters.filter.entityType.head": "Typ pozycji", - "search.filters.filter.entityType.placeholder": "Typ pozycji", - "search.filters.filter.entityType.label": "Wyszukaj typ pozycji", - "search.filters.filter.expand": "RozwiÅ„ filtr", - "search.filters.filter.has_content_in_original_bundle.head": "Ma przypisane pliki", - "search.filters.filter.itemtype.head": "Typ", - "search.filters.filter.itemtype.placeholder": "Typ", - "search.filters.filter.itemtype.label": "Wyszukaj typ", - "search.filters.filter.jobTitle.head": "Stanowisko", - "search.filters.filter.jobTitle.placeholder": "Stanowisko", - "search.filters.filter.jobTitle.label": "Wyszukaj stanowisko", - "search.filters.filter.knowsLanguage.head": "Znajomość jÄ™zyka", - "search.filters.filter.knowsLanguage.placeholder": "Znajomość jÄ™zyka", - "search.filters.filter.knowsLanguage.label": "Wyszukaj wg znajomoÅ›ci jÄ™zyka", - "search.filters.filter.namedresourcetype.head": "Status", - "search.filters.filter.namedresourcetype.placeholder": "Status", - "search.filters.filter.namedresourcetype.label": "Wyszukaj status", - "search.filters.filter.objectpeople.head": "Osoby", - "search.filters.filter.objectpeople.placeholder": "Osoby", - "search.filters.filter.objectpeople.label": "Wyszukaj użytkowników", - "search.filters.filter.organizationAddressCountry.head": "Kraj", - "search.filters.filter.organizationAddressCountry.placeholder": "Kraj", - "search.filters.filter.organizationAddressCountry.label": "Wyszukaj kraj", - "search.filters.filter.organizationAddressLocality.head": "Miasto", - "search.filters.filter.organizationAddressLocality.placeholder": "Miasto", - "search.filters.filter.organizationAddressLocality.label": "Wyszukaj miasto", - "search.filters.filter.organizationFoundingDate.head": "Data zaÅ‚ożenia", - "search.filters.filter.organizationFoundingDate.placeholder": "Data zaÅ‚ożenia", - "search.filters.filter.organizationFoundingDate.label": "Wyszukaj datÄ™ zaÅ‚ożenia", - "search.filters.filter.scope.head": "Zakres", - "search.filters.filter.scope.placeholder": "Filtr zakresu", - "search.filters.filter.scope.label": "Wyszukaj filtr zakresu", - "search.filters.filter.show-less": "Pokaż mniej", - "search.filters.filter.show-more": "Pokaż wiÄ™cej", - "search.filters.filter.subject.head": "Temat", - "search.filters.filter.subject.placeholder": "Temat", - "search.filters.filter.subject.label": "Wyszukaj temat", - "search.filters.filter.submitter.head": "ZgÅ‚aszajÄ…cy", - "search.filters.filter.submitter.placeholder": "ZgÅ‚aszajÄ…cy", - "search.filters.filter.submitter.label": "Wyszukaj zgÅ‚aszajÄ…cego", - "search.filters.entityType.JournalIssue": "Numer czasopisma", - "search.filters.entityType.JournalVolume": "Tom czasopisma", - "search.filters.entityType.OrgUnit": "Jednostka organizacyjna", - "search.filters.has_content_in_original_bundle.true": "Tak", - "search.filters.has_content_in_original_bundle.false": "Nie", - "search.filters.discoverable.true": "Nie", - "search.filters.discoverable.false": "Tak", - "search.filters.withdrawn.true": "Tak", - "search.filters.withdrawn.false": "Nie", - "search.filters.head": "Filtry", - "search.filters.reset": "Resetuj filtry", - "search.filters.search.submit": "Zastosuj", - "search.form.search": "Wyszukaj", - "search.form.search_dspace": "W repozytorium", - "search.form.scope.all": "W caÅ‚ym DSpace", - "search.results.head": "Wyniki wyszukiwania", - "default.search.results.head": "Wyniki wyszukiwania", - "search.results.no-results": "Twoj wyszukiwanie nie zwróciÅ‚o żadnych rezultatów. Masz problem ze znalezieniem tego czego szukasz? Spróbuj użyć", - "search.results.no-results-link": "fraz podobnych do Twojego wyszukiwania", - "search.results.empty": "Twoje wyszukiwanie nie zwróciÅ‚o żadnych rezultatów.", - "search.sidebar.close": "Wróć do wyników wyszukiwania", - "search.sidebar.filters.title": "Filtry", - "search.sidebar.open": "NarzÄ™dzia wyszukiwania", - "search.sidebar.results": "wyniki", - "search.sidebar.settings.rpp": "Wyników na stronie", - "search.sidebar.settings.sort-by": "Sortuj wedÅ‚ug", - "search.sidebar.settings.title": "Ustawienia", - "search.view-switch.show-detail": "WyÅ›wietl widok szczegółowy", - "search.view-switch.show-grid": "WyÅ›wietl jako siatkÄ™", - "search.view-switch.show-list": "WyÅ›wietl jako listÄ™", - "sorting.ASC": "RosnÄ…co", - "sorting.DESC": "MalejÄ…co", - "sorting.dc.title.ASC": "TytuÅ‚ami rosnÄ…co", - "sorting.dc.title.DESC": "TytuÅ‚ami malejÄ…co", - "sorting.score.ASC": "Najmniej trafne", - "sorting.score.DESC": "Najbardziej trafne", - "sorting.dc.date.issued.ASC": "Data wydania rosnÄ…co", - "sorting.dc.date.issued.DESC": "Data wydania malejÄ…co", - "sorting.dc.date.accessioned.ASC": "Data dostÄ™pu rosnÄ…co", - "sorting.dc.date.accessioned.DESC": "Data dostÄ™pu malejÄ…co", - "sorting.lastModified.ASC": "Ostatnia modyfikacja rosnÄ…co", - "sorting.lastModified.DESC": "Ostatnia modyfikacja malejÄ…co", - "statistics.title": "Statystyki", - "statistics.header": "Statystyki dla {{ scope }}", - "statistics.breadcrumbs": "Statystyki", - "statistics.page.no-data": "Brak dostÄ™pnych danych", - "statistics.table.no-data": "Brak dostÄ™pnych danych", - "statistics.table.header.views": "WyÅ›wietlenia", - "submission.edit.breadcrumbs": "Edytuj zgÅ‚oszenie", - "submission.edit.title": "Edytuj zgÅ‚oszenie", - "submission.general.cancel": "Anuluj", - "submission.general.cannot_submit": "Nie masz uprawnieÅ„, aby utworzyć nowe zgÅ‚oszenie.", - "submission.general.deposit": "Deponuj", - "submission.general.discard.confirm.cancel": "Anuluj", - "submission.general.discard.confirm.info": "Czy na pewno? To dziaÅ‚anie nie może zostać cofniÄ™te.", - "submission.general.discard.confirm.submit": "Tak, na pewno", - "submission.general.discard.confirm.title": "Odrzuć zgÅ‚oszenie", - "submission.general.discard.submit": "Odrzuć", - "submission.general.info.saved": "Zapisane", - "submission.general.info.pending-changes": "Niezapisane zmiany", - "submission.general.save": "Zapisz", - "submission.general.save-later": "Zapisz wersjÄ™ roboczÄ…", - "submission.import-external.page.title": "Importuj metdane z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title": "Importuj metadane z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title.Journal": "Importuj czasopismo z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title.JournalIssue": "Importuj numer czasopisma z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title.JournalVolume": "Importuj tom czasopisma z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title.OrgUnit": "Importuj wydawcÄ™ z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title.Person": "Importuj osobÄ™ z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title.Project": "Importuj projekt z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title.Publication": "Importuj publikacjÄ™ z zewnÄ™trznego źródÅ‚a", - "submission.import-external.title.none": "Importuj metadane z zewnÄ™trznego źródÅ‚a", - "submission.import-external.page.hint": "Enter a query above to find items from the web to import in to DSpace.", - "submission.import-external.back-to-my-dspace": "Powrót do MyDSpace", - "submission.import-external.search.placeholder": "Wyszukaj zewnÄ™trzne źródÅ‚a danych", - "submission.import-external.search.button": "Szukaj", - "submission.import-external.search.button.hint": "Zacznij wpisywać frazÄ™, aby wyszukać", - "submission.import-external.search.source.hint": "Wybierz zewnÄ™trzne źródÅ‚o", - "submission.import-external.source.ads": "NASA/ADS", - "submission.import-external.source.arxiv": "arXiv", - "submission.import-external.source.cinii": "CiNii", - "submission.import-external.source.crossref": "CrossRef", - "submission.import-external.source.loading": "Å‚adowanie...", - "submission.import-external.source.sherpaJournal": "Czasopisma w SHERPA", - "submission.import-external.source.sherpaJournalIssn": "Czasopisma w SHERPA wg ISSN", - "submission.import-external.source.sherpaPublisher": "Wydawcy w SHERPA", - "submission.import-external.source.openAIREFunding": "Finansowanie OpenAIRE API", - "submission.import-external.source.orcid": "ORCID", - "submission.import-external.source.orcidWorks": "ORCID", - "submission.import-external.source.pubmed": "Pubmed", - "submission.import-external.source.pubmedeu": "Pubmed Europe", - "submission.import-external.source.lcname": "Nazwy Biblioteki Kongresu", - "submission.import-external.source.scielo": "SciELO", - "submission.import-external.source.scopus": "Scopus", - "submission.import-external.source.vufind": "VuFind", - "submission.import-external.source.wos": "Web Of Science", - "submission.import-external.source.epo": "Europejski UrzÄ…d Patentowy (EPO)", - "submission.import-external.preview.title.Journal": "PodglÄ…d czasopisma", - "submission.import-external.preview.title.OrgUnit": "PodglÄ…d organizacji", - "submission.import-external.preview.title.Person": "PodglÄ…d osoby", - "submission.import-external.preview.title.Project": "PodglÄ…d projektu", - "submission.import-external.preview.title.Publication": "PodglÄ…d publikacji", - "submission.import-external.preview.subtitle": "Metadane poniżej zostaÅ‚y zaimportowane z zewnÄ™trznego źródÅ‚a. Niektóre pola zostanÄ… uzupeÅ‚nione automatycznie, kiedy rozpoczniesz zgÅ‚aszanie pozycji.", - "submission.import-external.preview.button.import": "Rozpocznij zgÅ‚oszenie", - "submission.import-external.preview.error.import.title": "BÅ‚Ä…d zgÅ‚oszenia", - "submission.import-external.preview.error.import.body": "WystÄ…piÅ‚ bÅ‚Ä…d podczas procesu importowania pozycji z zewnÄ™trznego źródÅ‚a.", - "submission.sections.describe.relationship-lookup.close": "Zamknij", - "submission.sections.describe.relationship-lookup.external-source.added": "UdaÅ‚o siÄ™ dodać wpis do selekcji", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.isAuthorOfPublication": "Importuj zdalnego autora", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal": "Importuj zdalne czasopismo", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Issue": "Importuj zdalny numer czasopisma", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Volume": "Importuj zdalny tom czasopisma", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.isProjectOfPublication": "Projekt", - "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.added.new-entity": "Nowy typ danych dodany!", - "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.title": "Projekt", - "submission.sections.describe.relationship-lookup.external-source.import-modal.head.openAIREFunding": "Finansowanie OpenAIRE API", - "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.title": "Importuj zdalnego autora", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Person": "Importuj zdalnÄ… osobÄ™", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Product": "Importuj zdalny produkt", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Equipment": "Importuj zdalnÄ… aparaturÄ™ badawczÄ…", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Event": "Importuj zdalne wydarzenie", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Funding": "Importuj zdalnÄ… instytucjÄ™ finansujÄ…cÄ…", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.OrgUnit": "Importuj zdalnego wydawcÄ™", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Patent": "Importuj zdalnie patent", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Project": "Importuj zdalnie projekt", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.Publication": "Importuj zdalnie publikacjÄ™", - "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.added.local-entity": "UdaÅ‚o siÄ™ dodać autora do selekcji", - "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.added.new-entity": "UdaÅ‚o siÄ™ zaimportować i dodać zewnÄ™trznego autora do selekcji", - "submission.sections.describe.relationship-lookup.external-source.import-modal.authority": "NadrzÄ™dność", - "submission.sections.describe.relationship-lookup.external-source.import-modal.authority.new": "Importuj jako nowÄ…, lokalnÄ…, nadrzÄ™dnÄ… pozycjÄ™", - "submission.sections.describe.relationship-lookup.external-source.import-modal.cancel": "Anuluj", - "submission.sections.describe.relationship-lookup.external-source.import-modal.collection": "Wybierz kolekcjÄ™ do zaimportowania nowych pozycji", - "submission.sections.describe.relationship-lookup.external-source.import-modal.entities": "Typ danych", - "submission.sections.describe.relationship-lookup.external-source.import-modal.entities.new": "Importuj jako nowy lokalny typ danych", - "submission.sections.describe.relationship-lookup.external-source.import-modal.head.lcname": "Importuj z LC Name", - "submission.sections.describe.relationship-lookup.external-source.import-modal.head.orcid": "Importuj z ORCID", - "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaJournal": "Importuj z Sherpa Journal", - "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaPublisher": "Importuj z Sherpa Publisher", - "submission.sections.describe.relationship-lookup.external-source.import-modal.head.pubmed": "Importuj z PubMed", - "submission.sections.describe.relationship-lookup.external-source.import-modal.head.arxiv": "Importuj z arXiv", - "submission.sections.describe.relationship-lookup.external-source.import-modal.import": "Import", - "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.title": "Importuj zdalne czasopismo", - "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.new-entity": "Successfully imported and added external journal to the selection", - "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.title": "Importuj zdalny numer czasopisma", - "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.local-entity": "UdaÅ‚o siÄ™ dodać lokalne czasopismo do zaznaczenia", - "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.new-entity": "UdaÅ‚o siÄ™ zaimportować i dodać czasopismo zewnÄ™trzne do zaznaczenia", - "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.title": "Importuj zdalny numer czasopisma", - "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.local-entity": "UdaÅ‚o siÄ™ dodać lokalny numer czasopismo do zaznaczenia", - "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.new-entity": "UdaÅ‚o siÄ™ zaimportować i dodać zewnÄ™trzny numer czasopisma do zaznaczenia", - "submission.sections.describe.relationship-lookup.external-source.import-modal.select": "Wybierz lokalne powiÄ…zanie:", - "submission.sections.describe.relationship-lookup.search-tab.deselect-all": "Odznacz wszystko", - "submission.sections.describe.relationship-lookup.search-tab.deselect-page": "Odznacz stronÄ™", - "submission.sections.describe.relationship-lookup.search-tab.loading": "Åadowanie...", - "submission.sections.describe.relationship-lookup.search-tab.placeholder": "Wyszukaj zapytanie", - "submission.sections.describe.relationship-lookup.search-tab.search": "Zastosuj", - "submission.sections.describe.relationship-lookup.search-tab.search-form.placeholder": "Wyszukaj...", - "submission.sections.describe.relationship-lookup.search-tab.select-all": "Zaznacz wszystko", - "submission.sections.describe.relationship-lookup.search-tab.select-page": "Zaznacz stronÄ™", - "submission.sections.describe.relationship-lookup.selected": "Zaznacz {{ size }} pozycji", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isAuthorOfPublication": "Autorzy lokalni ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalOfPublication": "Czasopisma lokalne ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.Project": "Projekty lokalne ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.Publication": "Publikacje lokalne ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.Person": "Autorzy lokalni ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.OrgUnit": "Lokalne jednostki organizacyjne ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.DataPackage": "Lokalne paczki danych ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.DataFile": "Lokalne pliki danych ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.Journal": "Lokalne czasopisma ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalIssueOfPublication": "Lokalne numery czasopism ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.JournalIssue": "Lokalne numery czasopism ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalVolumeOfPublication": "Lokalne tomy czasopism ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.JournalVolume": "Lokalne tomy czasopism ({{ 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.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.pubmed": "PubMed ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.arxiv": "arXiv ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfPublication": "Wyszukaj instytucje finansujÄ…ce", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingOfPublication": "Wyszukaj finansowanie", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isChildOrgUnitOf": "Wyszukaj jednostki organizacyjne", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.openAIREFunding": "Finansowanie OpenAIRE API", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isProjectOfPublication": "Projekty", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfProject": "Instytucja finansujÄ…ca projekt", - "submission.sections.describe.relationship-lookup.selection-tab.title.openAIREFunding": "Finansowanie OpenAIRE API", - "submission.sections.describe.relationship-lookup.selection-tab.title.isProjectOfPublication": "Projekt", - "submission.sections.describe.relationship-lookup.title.isProjectOfPublication": "Projekty", - "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfProject": "Instytucja finansujÄ…ca projekt", - "submission.sections.describe.relationship-lookup.selection-tab.search-form.placeholder": "Wyszukaj...", - "submission.sections.describe.relationship-lookup.selection-tab.tab-title": "Aktualne zaznaczenie ({{ count }})", - "submission.sections.describe.relationship-lookup.title.isJournalIssueOfPublication": "Numery czasopisma", - "submission.sections.describe.relationship-lookup.title.JournalIssue": "Numery czasopisma", - "submission.sections.describe.relationship-lookup.title.isJournalVolumeOfPublication": "Tomy czasopisma", - "submission.sections.describe.relationship-lookup.title.JournalVolume": "Tomy czasopisma", - "submission.sections.describe.relationship-lookup.title.isJournalOfPublication": "Czasopisma", - "submission.sections.describe.relationship-lookup.title.isAuthorOfPublication": "Autorzy", - "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfPublication": "Instytucja finansujÄ…ca", - "submission.sections.describe.relationship-lookup.title.Project": "Projekty", - "submission.sections.describe.relationship-lookup.title.Publication": "Publikacje", - "submission.sections.describe.relationship-lookup.title.Person": "Autorzy", - "submission.sections.describe.relationship-lookup.title.OrgUnit": "Jednostki organizacyjne", - "submission.sections.describe.relationship-lookup.title.DataPackage": "Paczki danych", - "submission.sections.describe.relationship-lookup.title.DataFile": "Pliki danych", - "submission.sections.describe.relationship-lookup.title.Funding Agency": "Instytucja finansujÄ…ca", - "submission.sections.describe.relationship-lookup.title.isFundingOfPublication": "Finansowanie", - "submission.sections.describe.relationship-lookup.title.isChildOrgUnitOf": "NadrzÄ™dna jednostka organizacyjna", - "submission.sections.describe.relationship-lookup.search-tab.toggle-dropdown": "PrzeÅ‚Ä…cz na listÄ™ rozwijanÄ…", - "submission.sections.describe.relationship-lookup.selection-tab.settings": "Ustawienia", - "submission.sections.describe.relationship-lookup.selection-tab.no-selection": "Twoje zaznaczenie jest puste.", - "submission.sections.describe.relationship-lookup.selection-tab.title.isAuthorOfPublication": "Wybrani autorzy", - "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalOfPublication": "Wybrane czasopisma", - "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalVolumeOfPublication": "Wybrane tomy czasopisma", - "submission.sections.describe.relationship-lookup.selection-tab.title.Project": "Wybrane projekty", - "submission.sections.describe.relationship-lookup.selection-tab.title.Publication": "Wybrane publikacje", - "submission.sections.describe.relationship-lookup.selection-tab.title.Person": "Wybrani autorzy", - "submission.sections.describe.relationship-lookup.selection-tab.title.OrgUnit": "Wybrane jednostki organizacyjne", - "submission.sections.describe.relationship-lookup.selection-tab.title.DataPackage": "Wybrane pakiety danych", - "submission.sections.describe.relationship-lookup.selection-tab.title.DataFile": "Wybrane pliki danych", - "submission.sections.describe.relationship-lookup.selection-tab.title.Journal": "Wybrane czasopisma", - "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalIssueOfPublication": "Wybrany numer wydania", - "submission.sections.describe.relationship-lookup.selection-tab.title.JournalVolume": "Wybrany tom czasopisma", - "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingAgencyOfPublication": "Wybrane instytucje finansujÄ…ce", - "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingOfPublication": "Wybrane finansowanie", - "submission.sections.describe.relationship-lookup.selection-tab.title.JournalIssue": "Wybrany numer wydania", - "submission.sections.describe.relationship-lookup.selection-tab.title.isChildOrgUnitOf": "Wybrana jednostka organizacyjna", - "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaJournal": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.crossref": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaPublisher": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.orcid": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.orcidv2": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.lcname": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.pubmed": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.arxiv": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.epo": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.scopus": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.scielo": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title.wos": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.selection-tab.title": "Wyniki wyszukiwania", - "submission.sections.describe.relationship-lookup.name-variant.notification.content": "Czy chcesz zapisać \"{{ value }}\" jako wariant imienia dla tego użytkownika, aby Ty lub inni użytkownicy mogli używać tego wariantu w przyszÅ‚ych zgÅ‚oszeniach?. JeÅ›li nie, nadal możesz użyć tego wariantu w tym zgÅ‚oszeniu.", - "submission.sections.describe.relationship-lookup.name-variant.notification.confirm": "Zapisz nowy wariant imienia", - "submission.sections.describe.relationship-lookup.name-variant.notification.decline": "Użyj tylko w tym zgÅ‚oszeniu", - "submission.sections.ccLicense.type": "Typ licencji", - "submission.sections.ccLicense.select": "Wybierz typ licencji…", - "submission.sections.ccLicense.change": "ZmieÅ„ typ licencji…", - "submission.sections.ccLicense.none": "Brak dostÄ™pnych licencji", - "submission.sections.ccLicense.option.select": "Wybierz opcję…", - "submission.sections.ccLicense.link": "Wybrano licencjÄ™:", - "submission.sections.ccLicense.confirmation": "Udzielam powyższej licencji", - "submission.sections.general.add-more": "Dodaj wiÄ™cej", - "submission.sections.general.collection": "Kolekcja", - "submission.sections.general.deposit_error_notice": "WystÄ…piÅ‚ bÅ‚Ä…d podczas zgÅ‚aszania pozycji. Spróbuj ponownie później.", - "submission.sections.general.deposit_success_notice": "UdaÅ‚o siÄ™ wprowadzić pozycjÄ™.", - "submission.sections.general.discard_error_notice": "WystÄ…piÅ‚ bÅ‚Ä…d podczas odrzucania pozycji. Spróbuj ponownie później.", - "submission.sections.general.discard_success_notice": "UdaÅ‚o siÄ™ odrzucić pozycjÄ™.", - "submission.sections.general.metadata-extracted": "Nowe metadane zostany rozpakowane i dodane do sekcji <strong>{{sectionId}}</strong>.", - "submission.sections.general.metadata-extracted-new-section": "Nowa sekcja <strong>{{sectionId}}</strong> zostaÅ‚a dodana do zgÅ‚oszenia.", - "submission.sections.general.no-collection": "Nie znaleziono kolekcji", - "submission.sections.general.no-sections": "Opcje niedostÄ™pne", - "submission.sections.general.save_error_notice": "WystÄ…piÅ‚ bÅ‚Ä…d podczas zapisywania numeru. Spróbuj ponownie później. Po odÅ›wieżeniu strony niezapisane zmiany mogÄ… zostać utracone.", - "submission.sections.general.save_success_notice": "UdaÅ‚o siÄ™ zapisać zgÅ‚oszenie.", - "submission.sections.general.search-collection": "Szukaj kolekcji", - "submission.sections.general.sections_not_valid": "Niektóre sekcje sÄ… niekompletne.", - "submission.sections.submit.progressbar.CClicense": "Licencja Creative Commons", - "submission.sections.submit.progressbar.describe.recycle": "Odzyskaj", - "submission.sections.submit.progressbar.describe.stepcustom": "Opisz", - "submission.sections.submit.progressbar.describe.stepone": "Opisz", - "submission.sections.submit.progressbar.describe.steptwo": "Opisz", - "submission.sections.submit.progressbar.detect-duplicate": "Potencjalne duplikaty", - "submission.sections.submit.progressbar.license": "Zdeponuj licencjÄ™", - "submission.sections.submit.progressbar.upload": "PrzeÅ›lij pliki", - "submission.sections.status.errors.title": "BÅ‚Ä™dy", - "submission.sections.status.valid.title": "Poprawność", - "submission.sections.status.warnings.title": "Ostrzeżenia", - "submission.sections.status.errors.aria": "ma bÅ‚Ä™dy", - "submission.sections.status.valid.aria": "jest poprawne", - "submission.sections.status.warnings.aria": "ma ostrzeżenia", - "submission.sections.toggle.open": "Otwórz sekcjÄ™", - "submission.sections.toggle.close": "Zamknij sekcjÄ™", - "submission.sections.toggle.aria.open": "RozwiÅ„ sekcjÄ™ {{sectionHeader}}", - "submission.sections.toggle.aria.close": "ZwiÅ„ sekcjÄ™ {{sectionHeader}}", - "submission.sections.upload.delete.confirm.cancel": "Anuluj", - "submission.sections.upload.delete.confirm.info": "Czy na pewno? To dziaÅ‚anie nie może zostać cofniÄ™te.", - "submission.sections.upload.delete.confirm.submit": "Tak, na pewno", - "submission.sections.upload.delete.confirm.title": "UsuÅ„ plik", - "submission.sections.upload.delete.submit": "UsuÅ„", - "submission.sections.upload.download.title": "Pobierz plik", - "submission.sections.upload.drop-message": "Upuść pliki, aby zaÅ‚Ä…czyć je do tej pozycji", - "submission.sections.upload.edit.title": "Edytuj plik", - "submission.sections.upload.form.access-condition-label": "Typ dostÄ™pu", - "submission.sections.upload.form.date-required": "Data jest wymagana.", - "submission.sections.upload.form.date-required-from": "Data przyznania dostÄ™pu od jest wymagana.", - "submission.sections.upload.form.date-required-until": "Data przyznania dostÄ™pu do jest wymagana.", - "submission.sections.upload.form.from-label": "Pozwól na dostÄ™p od", - "submission.sections.upload.form.from-placeholder": "Od", - "submission.sections.upload.form.group-label": "Grupa", - "submission.sections.upload.form.group-required": "Grupa jest wymagana", - "submission.sections.upload.form.until-label": "Pozwól na dostÄ™p do", - "submission.sections.upload.form.until-placeholder": "Do", - "submission.sections.upload.header.policy.default.nolist": "Pliki wgrane do kolekcji {{collectionName}} bÄ™dÄ… dostÄ™pne dla poniższych grup:", - "submission.sections.upload.header.policy.default.withlist": "Zwróć uwagÄ™ na to, że pliki w kolekcji {{collectionName}} bÄ™dÄ… dostÄ™pne dla poniższych grup, z wyjÄ…tkiem tych, które zostaÅ‚y wyÅ‚Ä…czone z dostÄ™pu:", - "submission.sections.upload.info": "Tutaj znajdujÄ… siÄ™ wszystkie pliki dodane w tym momencie do pozycji. Możesz zaktualizować metadane pliku i warunki dostÄ™pu lub <strong>przesÅ‚ać dodatkowe pliki, przeciÄ…gajÄ…c i opuszczajÄ…c je gdziekolwiek na tej stronie</strong>", - "submission.sections.upload.no-entry": "Nie", - "submission.sections.upload.no-file-uploaded": "Pliki nie zostaÅ‚y jeszcze wgrane.", - "submission.sections.upload.save-metadata": "Zapisz metadane", - "submission.sections.upload.undo": "Anuluj", - "submission.sections.upload.upload-failed": "PrzesyÅ‚anie nieudane", - "submission.sections.upload.upload-successful": "PrzesyÅ‚anie udane", - "submission.submit.breadcrumbs": "Nowe zgÅ‚oszenie", - "submission.submit.title": "Nowe zgÅ‚oszenie", - "submission.workflow.generic.delete": "UsuÅ„", - "submission.workflow.generic.delete-help": "JeÅ›li chcesz odrzucić tÄ™ pozycjÄ™, wybierz \"Delete\". BÄ™dzie wymagane potwierdzenie tej decyzji.", - "submission.workflow.generic.edit": "Edytuj", - "submission.workflow.generic.edit-help": "Wybierz tÄ™ opcjÄ™, aby zmienić metadane pozycji.", - "submission.workflow.generic.view": "PodglÄ…d", - "submission.workflow.generic.view-help": "Wybierz tÄ™ opcjÄ™, aby wyÅ›wietlić metadane pozycji.", - "submission.workflow.tasks.claimed.approve": "Zatwierdź", - "submission.workflow.tasks.claimed.approve_help": "JeÅ›li ta pozycja ma zostać zatwierdzona i wprowadzona do kolekcji, wybierz \"Approve\".", - "submission.workflow.tasks.claimed.edit": "Edytuj", - "submission.workflow.tasks.claimed.edit_help": "Wybierz tÄ™ opcjÄ™, aby zmienić metadane pozycji.", - "submission.workflow.tasks.claimed.reject.reason.info": "ProszÄ™ wpisać powód odrzucenia zgÅ‚oszenia w poniższe pole, wskazujÄ…c, czy zgÅ‚aszajÄ…cy może poprawić problem i ponownie przesÅ‚ać zgÅ‚oszenie.", - "submission.workflow.tasks.claimed.reject.reason.placeholder": "Opisz powód odrzucenia zgÅ‚oszenia", - "submission.workflow.tasks.claimed.reject.reason.submit": "Odrzuć pozycjÄ™", - "submission.workflow.tasks.claimed.reject.reason.title": "Powód", - "submission.workflow.tasks.claimed.reject.submit": "Odrzuć", - "submission.workflow.tasks.claimed.reject_help": "JeÅ›li po przejrzeniu pozycji stwierdzono, że nie nadaje siÄ™ ona do wÅ‚Ä…czenia do kolekcji, wybierz opcjÄ™ \"Reject\". Zostaniesz wtedy poproszony o okreÅ›lenie powodu odrzucenia, i wskazanie czy zgÅ‚aszajÄ…cy powinien wprowadzić zmiany i przesÅ‚ać ponownie pozycjÄ™.", - "submission.workflow.tasks.claimed.return": "Cofnij do puli zadaÅ„", - "submission.workflow.tasks.claimed.return_help": "Cofnij zadanie do puli, aby inny użytkownik mógÅ‚ siÄ™ go podjąć.", - "submission.workflow.tasks.generic.error": "Podczas dziaÅ‚ania wystÄ…piÅ‚ bÅ‚Ä…d...", - "submission.workflow.tasks.generic.processing": "Procesowanie...", - "submission.workflow.tasks.generic.submitter": "ZgÅ‚aszajÄ…cy", - "submission.workflow.tasks.generic.success": "UdaÅ‚o siÄ™", - "submission.workflow.tasks.pool.claim": "Podejmij pracÄ™", - "submission.workflow.tasks.pool.claim_help": "Przypisz to zadanie do siebie.", - "submission.workflow.tasks.pool.hide-detail": "Ukryj szczegóły", - "submission.workflow.tasks.pool.show-detail": "Pokaż szczegóły", - "thumbnail.default.alt": "Miniatura", - "thumbnail.default.placeholder": "Brak miniatury", - "thumbnail.project.alt": "Logo projektu", - "thumbnail.project.placeholder": "Obraz zastÄ™pczy projketu", - "thumbnail.orgunit.alt": "Logo jednostki organizacyjnej", - "thumbnail.orgunit.placeholder": "Obraz zastÄ™pczy jednostki organizacyjnej", - "thumbnail.person.alt": "ZdjÄ™cie profilowe", - "thumbnail.person.placeholder": "Brak zdjÄ™cia profilowego", - "title": "DSpace", - "vocabulary-treeview.header": "Widok drzewka", - "vocabulary-treeview.load-more": "Pokaż wiÄ™cej", - "vocabulary-treeview.search.form.reset": "Resetuj", - "vocabulary-treeview.search.form.search": "Szukaj", - "vocabulary-treeview.search.no-result": "Brak pozycji do wyÅ›wietlenia", - "vocabulary-treeview.tree.description.nsi": "The Norwegian Science Index", - "vocabulary-treeview.tree.description.srsc": "Kategorie tematów badaÅ„", - "uploader.browse": "wyszukaj na swoim urzÄ…dzeniu", - "uploader.drag-message": "PrzeciÄ…gnij i upuść pliki tutaj", - "uploader.delete.btn-title": "UsuÅ„", - "uploader.or": ", lub ", - "uploader.processing": "Procesowanie", - "uploader.queue-length": "DÅ‚ugość kolejki", - "virtual-metadata.delete-item.info": "Wybierz typy, dla których chcesz zapisać wirtualne metadane jako rzeczywiste metadane", - "virtual-metadata.delete-item.modal-head": "Wirtualne metadane tego powiÄ…zania", - "virtual-metadata.delete-relationship.modal-head": "Wybierz pozycje, dla których chcesz zapisać wirtualne metadane jako rzeczywiste metadane", - "workflowAdmin.search.results.head": "ZarzÄ…dzaj procesami", - "workflow-item.edit.breadcrumbs": "Edytuj pozycjÄ™ procesu", - "workflow-item.edit.title": "Edytuj pozycjÄ™ procesu", - "workflow-item.delete.notification.success.title": "UsuniÄ™te", - "workflow-item.delete.notification.success.content": "Ten element procesu zostaÅ‚ usuniÄ™ty", - "workflow-item.delete.notification.error.title": "CoÅ› poszÅ‚o nie tak", - "workflow-item.delete.notification.error.content": "Ten element procesu nie mógÅ‚ zostać usuniÄ™ty", - "workflow-item.delete.title": "UsuÅ„ element procesu", - "workflow-item.delete.header": "UsuÅ„ element procesu", - "workflow-item.delete.button.cancel": "Anuluj", - "workflow-item.delete.button.confirm": "UsuÅ„", - "workflow-item.send-back.notification.success.title": "SOdeÅ›lij do zgÅ‚aszajÄ…cego", - "workflow-item.send-back.notification.success.content": "Ten element procesu zostaÅ‚ odesÅ‚any do zgÅ‚aszajÄ…cego", - "workflow-item.send-back.notification.error.title": "CoÅ› poszÅ‚o nie tak", - "workflow-item.send-back.notification.error.content": "Ten element procesu nie mógÅ‚ zostać odesÅ‚any do zgÅ‚aszajÄ…cego", - "workflow-item.send-back.title": "OdeÅ›lij element procesu do zgÅ‚aszajÄ…cego", - "workflow-item.send-back.header": "OdeÅ›lij element procesu do zgÅ‚aszajÄ…cego", - "workflow-item.send-back.button.cancel": "Anuluj", - "workflow-item.send-back.button.confirm": "OdeÅ›lij", - "workflow-item.view.breadcrumbs": "Widok procesu", - "idle-modal.header": "Sesja wkrótce wygaÅ›nie", - "idle-modal.info": "Ze wzglÄ™dów bezpieczeÅ„stwa sesja wygaÅ›nie po {{ timeToExpire }} minutach nieaktywnoÅ›ci. Twoja sesja wkrótce wygaÅ›nie. Czy chcesz jÄ… przedÅ‚użyć albo wylogować siÄ™?", - "idle-modal.log-out": "Wyloguj", - "idle-modal.extend-session": "WydÅ‚uż sesjÄ™", - "workspace.search.results.head": "Twoje zadania", - "orgunit.listelement.badge": "Jednostka organizacyjna", - "orgunit.page.city": "Miasto", - "orgunit.page.country": "Kraj", - "orgunit.page.dateestablished": "Data zaÅ‚ożenia", - "orgunit.page.description": "Opis", - "orgunit.page.edit": "Edytuj pozycjÄ™", - "orgunit.page.id": "ID", - "orgunit.page.titleprefix": "Jednostka organizacyjna: ", - "pagination.options.description": "Opcje strony", - "pagination.results-per-page": "Wyników na stronÄ™", - "pagination.showing.detail": "{{ range }} z {{ total }}", - "pagination.showing.label": "Teraz wyÅ›wietlane ", - "pagination.sort-direction": "Opcje sortowania", - "cookies.consent.purpose.sharing": "UdostÄ™pnianie", - "item.preview.dc.identifier.issn": "ISSN", - "500.page-internal-server-error": "UsÅ‚uga niedostÄ™pna", - "500.help": "Serwer jest tymczasowo niezdolny do obsÅ‚ugi Twojego żądania z powodu przestoju konserwacyjnego lub problemów z przepustowoÅ›ciÄ…. Prosimy spróbować ponownie później.", - "500.link.home-page": "Zabierz mnie na stronÄ™ głównÄ…", - "error-page.description.401": "brak autoryzacji", - "error-page.description.403": "brak dostÄ™pu", - "error-page.description.500": "usÅ‚uga niedostÄ™pna", - "error-page.description.404": "nie znaleziono strony", - "error-page.orcid.generic-error": "Podczas logowania za pomocÄ… ORCID wystÄ…piÅ‚ bÅ‚Ä…d. Upewnij siÄ™, że udostÄ™pniÅ‚eÅ› DSpace adres e-mail swojego konta ORCID. JeÅ›li bÅ‚Ä…d nadal wystÄ™puje, skontaktuj siÄ™ z administratorem", - "access-status.embargo.listelement.badge": "Embargo", - "access-status.metadata.only.listelement.badge": "Tylko metadane", - "access-status.open.access.listelement.badge": "Open Access", - "access-status.restricted.listelement.badge": "Brak dostÄ™pu", - "access-status.unknown.listelement.badge": "Nieznane", - "admin.access-control.groups.table.edit.buttons.remove": "UsuÅ„ \"{{name}}\"", - "admin.metadata-import.page.validateOnly": "Tylko waliduj", - "admin.metadata-import.page.validateOnly.hint": "Po wybraniu tej opcji przesÅ‚any plik CSV zostanie poddany walidacji. Otrzymasz raport o wykrytych zmianach, ale żadne zmiany nie zostanÄ… zapisane.", - "bitstream.edit.form.iiifLabel.label": "Etykieta canvyIIIF", - "bitstream.edit.form.iiifLabel.hint": "Etykieta dla tego obrazu. JeÅ›li nie zostaÅ‚a dostarczona, zostanie użyta domyÅ›lna etykieta.", - "bitstream.edit.form.iiifToc.label": "Spis treÅ›ci IIIF", - "bitstream.edit.form.iiifToc.hint": "Dodanie tekstu tutaj zapoczÄ…tkuje nowy zakres spisu treÅ›ci.", - "bitstream.edit.form.iiifWidth.label": "Szerokość canvy IIIF", - "bitstream.edit.form.iiifWidth.hint": "Szerokość canvy jest zwykle równa szerokoÅ›ci obrazu.", - "bitstream.edit.form.iiifHeight.label": "Wysokość canvy IIIF", - "bitstream.edit.form.iiifHeight.hint": "Wysokość canvy jest zwykle równa szerokoÅ›ci obrazu.", - "browse.back.all-results": "Wszystkie wyniki wyszukiwania", - "pagination.next.button": "NastÄ™pny", - "pagination.previous.button": "Poprzedni", - "pagination.next.button.disabled.tooltip": "Brak wiÄ™cej stron z wynikami wyszukiwania", - "browse.startsWith": ", zaczyna siÄ™ od {{ startsWith }}", - "browse.title.page": "Przeszukiwanie {{ collection }} wg {{ field }} {{ value }}", - "collection.edit.item.authorizations.load-bundle-button": "ZaÅ‚aduj wiÄ™cej paczek", - "collection.edit.item.authorizations.load-more-button": "ZaÅ‚aduj wiÄ™cej", - "collection.edit.item.authorizations.show-bitstreams-button": "Pokaż polityki plików dla paczek", - "comcol-role.edit.create.error.title": "Nie udaÅ‚o siÄ™ utworzyć grupy dla roli '{{ role }}'", - "curation.form.submit.error.invalid-handle": "Nie ustalono identyfikatora dla tego obiektu", - "confirmation-modal.delete-profile.header": "UsuÅ„ profil", - "confirmation-modal.delete-profile.info": "Czy na pewno chcesz usunąć profil", - "confirmation-modal.delete-profile.cancel": "Anuluj", - "confirmation-modal.delete-profile.confirm": "UsuÅ„", - "error.invalid-search-query": "Zapytanie nie jest poprawne. Wejdź na <a href=\"https://solr.apache.org/guide/query-syntax-and-parsing.html\" target=\"_blank\">Solr query syntax</a>, aby dowiedzieć siÄ™ o najlepszych praktykach i dodatkowych informacjach o tym bÅ‚Ä™dzie.", - "feed.description": "AktualnoÅ›ci", - "footer.link.feedback": "PrzeÅ›lij uwagi", - "form.group-collapse": "ZwiÅ„", - "form.group-collapse-help": "Kliknij tutaj, aby zwinąć", - "form.group-expand": "RozwiÅ„", - "form.group-expand-help": "Kliknij tutaj, aby rozwinąć", - "health.breadcrumbs": "Stan systemu", - "health-page.heading": "Stan systemu", - "health-page.info-tab": "Informacje", - "health-page.status-tab": "Status", - "health-page.error.msg": "Serwis stanu systemu jest tymczasowo niedostÄ™pny", - "health-page.property.status": "Kod statusu", - "health-page.section.db.title": "Baza danych", - "health-page.section.geoIp.title": "GeoIp", - "health-page.section.solrAuthorityCore.title": "Autentykacja", - "health-page.section.solrOaiCore.title": "OAI", - "health-page.section.solrSearchCore.title": "Wyszukiwarka", - "health-page.section.solrStatisticsCore.title": "Statystyki", - "health-page.section-info.app.title": "Backend aplikacji", - "health-page.section-info.java.title": "Java", - "health-page.status": "Status", - "health-page.status.ok.info": "operacyjny", - "health-page.status.error.info": "Wykryte problemy", - "health-page.status.warning.info": "Wykryte potencjalne problemy", - "health-page.title": "Stan systemu", - "health-page.section.no-issues": "Nie wykryto żadnych problemów", - "info.feedback.breadcrumbs": "Uwagi", - "info.feedback.head": "Uwagi", - "info.feedback.title": "Uwagi", - "info.feedback.info": "DziÄ™kujemy za podzielenie siÄ™ opiniÄ… na temat systemu DSpace. Doceniamy Twój wkÅ‚ad w lepsze dziaÅ‚anie systemu!", - "info.feedback.email_help": "Ten adres zostanie użyty, aby przesÅ‚ać odpowiedź na uwagi.", - "info.feedback.send": "PrzeÅ›lij uwagi", - "info.feedback.comments": "Komentarz", - "info.feedback.email-label": "Twoj adres e-mail", - "info.feedback.create.success": "Uwagi przesÅ‚ane!", - "info.feedback.error.email.required": "Poprawny adres e-mail jest wymagany", - "info.feedback.error.message.required": "Treść komentarza jest wymagana", - "info.feedback.page-label": "Strona", - "info.feedback.page_help": "Ta strona odnosi siÄ™ do uwag.", - "item.orcid.return": "Powrót", - "item.truncatable-part.show-more": "Pokaż wiÄ™cej", - "item.truncatable-part.show-less": "Pokaż mniej", - "item.page.orcid.title": "ORCID", - "item.page.orcid.tooltip": "Otwórz ustawienia ORCID", - "item.page.claim.button": "Podejmij pracÄ™", - "item.page.claim.tooltip": "Podejmij pracÄ™ jako profil", - "item.version.create.modal.submitted.header": "Tworzenie nowej wersji...", - "item.version.create.modal.submitted.text": "Nowa wersja zostaÅ‚a utworzona. MogÅ‚o to trwać chwilÄ™, jeÅ›li pozycja ma wiele powiÄ…zaÅ„.", - "journal-relationships.search.results.head": "Wyniki wyszukiwania czasopism", - "menu.section.icon.health": "Sekcja menu Stan systemu", - "menu.section.health": "Stan systemu", - "metadata-export-search.tooltip": "Eksportuj wyniki wyszukiwania w formacie CSV", - "metadata-export-search.submit.success": "Eksport rozpoczÄ…Å‚ siÄ™", - "metadata-export-search.submit.error": "Eksport nie rozpoczÄ…Å‚ siÄ™", - "person.page.name": "Nazwa", - "person-relationships.search.results.head": "Wyniki wyszukiwania osób", - "profile.special.groups.head": "Autoryzacja do specjalnych grup, do których należysz", - "project-relationships.search.results.head": "Wyniki wyszukiwania projektów", - "publication-relationships.search.results.head": "Wyniki wyszukiwania publikacji", - "resource-policies.edit.page.target-failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas edycji (użytkownika lub grupy) zwiÄ…zany z politykÄ… zasobu.", - "resource-policies.edit.page.other-failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas edycji polityki zasobu. Użytkownik lub grupa zostaÅ‚y zaktualizowane pomyÅ›lnie.", - "resource-policies.form.eperson-group-list.modal.header": "Nie można zmienić typu", - "resource-policies.form.eperson-group-list.modal.text1.toGroup": "Nie można zastÄ…pić użytkownika grupÄ….", - "resource-policies.form.eperson-group-list.modal.text1.toEPerson": "Nie można zastÄ…pić grupy użytkownikiem.", - "resource-policies.form.eperson-group-list.modal.text2": "UsuÅ„ obecnÄ… polityke zasobu i stwórz nowÄ… o okreÅ›lonym typie.", - "resource-policies.form.eperson-group-list.modal.close": "Ok", - "search.results.view-result": "Widok", - "default-relationships.search.results.head": "Wyniki wyszukiwania", - "statistics.table.title.TotalVisits": "WyÅ›wietlnia ogółem", - "statistics.table.title.TotalVisitsPerMonth": "WyÅ›wietlenia w miesiÄ…cu", - "statistics.table.title.TotalDownloads": "Pobrania", - "statistics.table.title.TopCountries": "WyÅ›wietlenia wg krajów", - "statistics.table.title.TopCities": "WyÅ›wietlenia wg miast", - "submission.import-external.preview.title": "PodglÄ…d pozycji", - "submission.import-external.preview.title.none": "PodglÄ…d pozycji", - "submission.sections.describe.relationship-lookup.external-source.import-button-title.none": "Import pozycji zdalnie", - "submission.sections.general.cannot_deposit": "Nie można zakoÅ„czyć deponowania, ponieważ w formularzu wystÄ…piÅ‚y bÅ‚Ä™dy.<br>Aby zakoÅ„czyć deponowanie, wypeÅ‚nij wszystkie obowiÄ…zkowe pola.", - "submission.sections.submit.progressbar.accessCondition": "Warunki dostÄ™pu do pozycji", - "submission.sections.submit.progressbar.sherpapolicy": "Polityki Sherpa", - "submission.sections.submit.progressbar.sherpaPolicies": "Informacje o polityce open access wydawcy.", - "submission.sections.status.info.title": "Dodatkowe informacje", - "submission.sections.status.info.aria": "Dodatkowe informacje", - "submission.sections.upload.form.access-condition-hint": "Wybierz w jaki sposób pliki dla tej pozycji po jest zdeponowaniu bÄ™dÄ… mogÅ‚y być udostÄ™pnione", - "submission.sections.upload.form.from-hint": "Wybierz datÄ™, od której ma zostać zastosowany warunek dostÄ™pu", - "submission.sections.upload.form.until-hint": "Wybierz datÄ™, do której ma zostać zastosowany warunek dostÄ™pu", - "submission.sections.accesses.form.discoverable-description": "JeÅ›li checkbox jest zaznaczony, pozycja bÄ™dzie wyÅ›wietlana w wynikach wyszukiwania. JeÅ›li checkbox jest odznaczony, dostÄ™p do pozycji bÄ™dzie dostÄ™pny tylko przez bezpoÅ›redni link, pozycja nie bÄ™dzie wyÅ›wietlana w wynikach wyszukiwania.", - "submission.sections.accesses.form.discoverable-label": "Niemożliwe do wyszukania", - "submission.sections.accesses.form.access-condition-label": "Typ warunku dostÄ™pu", - "submission.sections.accesses.form.access-condition-hint": "Wybierz warunek dostÄ™pu, aby przypisać go do pozycji, kiedy zostanie zdeponowany.", - "submission.sections.accesses.form.date-required": "Data jest wymagana.", - "submission.sections.accesses.form.date-required-from": "PoczÄ…tkowa data przyznania dostÄ™pu jest wymagana.", - "submission.sections.accesses.form.date-required-until": "KoÅ„cowa data przyznania dostÄ™pu jest wymagana.", - "submission.sections.accesses.form.from-label": "Udziel dostÄ™pu od", - "submission.sections.accesses.form.from-hint": "Wybierz datÄ™, od kiedy zostanie przyznany dostÄ™p do tej pozycji", - "submission.sections.accesses.form.from-placeholder": "Od", - "submission.sections.accesses.form.group-label": "Grupa", - "submission.sections.accesses.form.group-required": "Grupa jest wymagana.", - "submission.sections.accesses.form.until-label": "Udziel dostÄ™pu do", - "submission.sections.accesses.form.until-hint": "Wybierz datÄ™, do kiedy zostanie przyznany dostÄ™p do tej pozycji", - "submission.sections.accesses.form.until-placeholder": "Do", - "submission.sections.sherpa.publication.information": "Informacje o publikacji", - "submission.sections.sherpa.publication.information.title": "TytuÅ‚", - "submission.sections.sherpa.publication.information.issns": "Numery ISSN", - "submission.sections.sherpa.publication.information.url": "URL", - "submission.sections.sherpa.publication.information.publishers": "Wydawca", - "submission.sections.sherpa.publication.information.romeoPub": "Wydawca Romeo", - "submission.sections.sherpa.publication.information.zetoPub": "Wydawca Zeto", - "submission.sections.sherpa.publisher.policy": "Polityka wydawnicza", - "submission.sections.sherpa.publisher.policy.description": "Poniższe informacje zostaÅ‚y znalezione za poÅ›rednictwem Sherpa Romeo. W oparciu o politykÄ™ Twojego wydawcy, zawiera ona porady dotyczÄ…ce tego, czy embargo może być konieczne i/lub jakie pliki możesz przesÅ‚ać. JeÅ›li masz pytania, skontaktuj siÄ™ z administratorem strony poprzez formularz.", - "submission.sections.sherpa.publisher.policy.openaccess": "Rodzaje Open Access dozwolone przez politykÄ™ wydawniczÄ… tego czasopisma sÄ… wymienione poniżej. Kliknij na wybrany rodzaj, aby przejść do szczegółowego widoku", - "submission.sections.sherpa.publisher.policy.more.information": "Aby uzuyskać wiÄ™cej informacji, kliknij tutaj:", - "submission.sections.sherpa.publisher.policy.version": "Wersja", - "submission.sections.sherpa.publisher.policy.embargo": "Embargo", - "submission.sections.sherpa.publisher.policy.noembargo": "Brak embargo", - "submission.sections.sherpa.publisher.policy.nolocation": "Brak", - "submission.sections.sherpa.publisher.policy.license": "Licencja", - "submission.sections.sherpa.publisher.policy.prerequisites": "Wymagania wstÄ™pne", - "submission.sections.sherpa.publisher.policy.location": "Lokalizacja", - "submission.sections.sherpa.publisher.policy.conditions": "Wymagania", - "submission.sections.sherpa.publisher.policy.refresh": "OdÅ›wież", - "submission.sections.sherpa.record.information": "Informacje o rekordzie", - "submission.sections.sherpa.record.information.id": "ID", - "submission.sections.sherpa.record.information.date.created": "Data utworzenia", - "submission.sections.sherpa.record.information.date.modified": "Ostatnia modyfikacja", - "submission.sections.sherpa.record.information.uri": "URI", - "submission.sections.sherpa.error.message": "WystÄ…piÅ‚ bÅ‚Ä…d podczas pobierania informacji z Sherpa", - "submission.workspace.generic.view": "PodglÄ…d", - "submission.workspace.generic.view-help": "Wybierz tÄ™ opcje, aby zobaczyć metadane.", - "workflow.search.results.head": "Zadania na workflow", - "workspace-item.view.breadcrumbs": "Widok wersji roboczej", - "workspace-item.view.title": "Widok wersji roboczej", - "researcher.profile.change-visibility.fail": "WystÄ…piÅ‚ niespodziewany bÅ‚Ä…d podczas zmiany widocznoÅ›ci profilu", - "person.page.orcid.link.processing": "ÅÄ…czenie profilu z ORCID...", - "person.page.orcid.link.error.message": "CoÅ› poszÅ‚o nie tak podczas Å‚Ä…czenia z ORCID. JeÅ›li problem bÄ™dzie siÄ™ powtarzaÅ‚, skontaktuj siÄ™ z administratorem.", - "person.page.orcid.sync-queue.table.header.type": "Typ", - "person.page.orcid.sync-queue.table.header.description": "Opis", - "person.page.orcid.sync-queue.table.header.action": "Akcja", - "person.page.orcid.sync-queue.tooltip.project": "Projekt", - "person.page.orcid.sync-queue.send.validation-error.country.invalid": "NiewÅ‚aÅ›ciwy dwuznakowy kod kraju ISO 3166", - "person.page.orcid.sync-queue.send.validation-error.publication.date-invalid": "Wymagana data publikacji to co najmniej rok po 1900", - "person.page.orcid.synchronization-mode-funding-message": "Wybierz, czy chcesz wysÅ‚ać swoje projekty na swojÄ… listÄ™ informacji o projektach w profilu ORCID.", - "person.page.orcid.synchronization-mode-publication-message": "Wybierz, czy chcesz wysÅ‚ać swoje publikacje na swojÄ… listÄ™ informacji o publikacjach w profilu ORCID.", - "person.page.orcid.synchronization-mode-profile-message": "Wybierz, czy chcesz wysÅ‚ać swoje dane bibliograficzne lub osobiste identyfikatory do swojego profilu ORCID.", - "person.orcid.sync.setting": "Ustawienia synchronizacji z ORCID", - "person.orcid.registry.queue": "Kolejka rejestru z ORCID", - "person.orcid.registry.auth": "Autoryzacje z ORCID", - "home.recent-submissions.head": "Najnowsze publikacje", - "submission.sections.sherpa-policy.title-empty": "Nie wybrano ISSN i informacje o polityce wydawniczej czasopisma sÄ… niedostÄ™pne", - "admin.batch-import.breadcrumbs": "Import zbiorczy", - "admin.batch-import.page.dropMsg": "Drop a batch ZIP to import", - "admin.batch-import.page.dropMsgReplace": "Drop to replace the batch ZIP to import", - "admin.batch-import.page.error.addFile": "Najpierw wybierz plik (ZIP)", - "admin.batch-import.page.header": "Import masowy", - "admin.batch-import.page.help": "Wybierz kolekcjÄ™ do zaimportowania kolekcji. Potem, upuść lub przeszukaj plik SAF, który zawiera pozycje do importu", - "admin.batch-import.page.remove": "usuÅ„", - "admin.batch-import.page.validateOnly.hint": "JeÅ›li wybrano, importowany plik ZIP bÄ™dzie walidowany. Otrzymasz raport ze zmianami, ale żadne zmiany nie zostanÄ… wykonane zapisane.", - "collection.form.correctionSubmissionDefinition": "Wzór zgÅ‚oszenia do proÅ›by o korektÄ™", - "comcol-role.edit.delete.error.title": "Nie udaÅ‚o siÄ™ usunąć roli '{{ role }}' dla grup", - "confirmation-modal.export-batch.header": "Eksport maasowy (ZIP) {{ dsoName }}", - "confirmation-modal.export-batch.info": "Czy na pewno chcesz wyeksportować plik ZIP z {{ dsoName }}", - "dso-selector.export-batch.dspaceobject.head": "Eksport masowy (ZIP) z", - "menu.section.export_batch": "Eksport masowy (ZIP)", - "nav.user-profile-menu-and-logout": "Profil użytkownika i wylogowywanie", - "process.detail.actions": "Akcje", - "process.detail.delete.body": "Czy na pewno chcesz usunąć bieżący proces?", - "process.detail.delete.button": "UsuÅ„ proces", - "process.detail.delete.cancel": "Anuluj", - "process.detail.delete.confirm": "UsuÅ„ proces", - "process.detail.delete.error": "Nie udaÅ‚o siÄ™ usunąć procesu", - "process.detail.delete.header": "UsuÅ„ proces", - "process.detail.delete.success": "Proces zostaÅ‚ usuniÄ™ty.", - "admin.batch-import.title": "Masowy import", - "admin.metadata-import.page.button.select-collection": "Wybierz kolekcjÄ™", - "admin.registries.bitstream-formats.table.id": "ID", - "admin.registries.schema.fields.table.id": "ID", - "cookies.consent.app.description.google-recaptcha": "Podczas rejestracji i odzyskiwania hasÅ‚a używamy narzÄ™dzia google reCAPTCHA", - "cookies.consent.app.disable-all.description": "PrzeÅ‚Ä…cz, aby zaakceptować lub odrzucić wszystkie", - "cookies.consent.app.disable-all.title": "Akceptowacja lub odrzucenie wszystkich", - "cookies.consent.app.title.google-recaptcha": "Google reCaptcha", - "cookies.consent.content-modal.service": "usÅ‚uga", - "cookies.consent.content-modal.services": "usÅ‚ugi", - "cookies.consent.content-notice.description.no-privacy": "Zbieramy i przetwarzamy Twoje dane w celu: <strong>autentykacji, ustawieÅ„ preferencji i zgód oraz do celów statystycznych</strong>.", - "cookies.consent.content-notice.title": "Zgoda na ciasteczka", - "cookies.consent.ok": "Zgadzam siÄ™", - "cookies.consent.purpose.registration-password-recovery": "Rejestracja i odzyskiwanie hasÅ‚a", - "cookies.consent.save": "Zapisz", - "curation-task.task.citationpage.label": "Generuj stronÄ™ z cytowaniem", - "dso-selector.import-batch.dspaceobject.head": "Import masowy z", - "orgunit.listelement.no-title": "Brak tytyÅ‚u", - "process.bulk.delete.error.body": "Proces z ID {{processId}} nie może być usuniÄ™ty. PozostaÅ‚e procesy zostanÄ… usuniÄ™te.", - "process.bulk.delete.error.head": "BÅ‚Ä…d podczas usuwania procesu", - "process.bulk.delete.success": "{{count}} proces/y zostaÅ‚/y usuniÄ™te", - "process.overview.delete": "UsuÅ„ {{count}} proces/y", - "process.overview.delete.body": "Czy na pewno usunąć {{count}} proces/y?", - "process.overview.delete.clear": "Wyczyść selekcjÄ™ procesów do usuniÄ™cia", - "process.overview.delete.header": "UsuÅ„ procesy", - "process.overview.delete.processing": "{{count}} procesów zostanie usuniÄ™tych. Poczekaj, gdy usuwanie siÄ™ zakoÅ„czy. Może to zająć chwilÄ™.", - "process.overview.table.actions": "Akcje", - "profile.security.form.label.current-password": "Aktualne hasÅ‚o", - "profile.security.form.notifications.error.change-failed": "WystÄ…piÅ‚ bÅ‚Ä…d podczas próby zmiany hasÅ‚a. Sprawdź czy aktualne hasÅ‚o jest prawidÅ‚owe.", - "profile.security.form.notifications.error.general": "UzupeÅ‚nij wymagane pola dla bezpieczeÅ„stwa na formularzu", - "register-page.registration.error.recaptcha": "WystÄ…piÅ‚ bÅ‚Ä…d podczas próby autentykacji przez reCAPTCHA", - "register-page.registration.google-recaptcha.must-accept-cookies": "Aby siÄ™ zarejestrować, musisz zaakceptować ciasteczka dla <b>rejestracji i odzyskiwania hasÅ‚a</b> (Google reCaptcha).", - "register-page.registration.google-recaptcha.notification.message.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas weryfikacji reCaptcha", - "register-page.registration.google-recaptcha.notification.message.expired": "Weryfikacja wygasÅ‚a. Zweryfikuj ponownie.", - "register-page.registration.google-recaptcha.notification.title": "Google reCaptcha", - "register-page.registration.google-recaptcha.open-cookie-settings": "Otwórz ustawienia plików cookies", - "search.results.response.500": "WystÄ…piÅ‚ bÅ‚Ä…d podczas wysyÅ‚ania zapytania. Spróbuj ponownie później", - "submission.sections.license.granted-label": "Potwierdzam akceptacjÄ™ powyższej licencji", - "submission.sections.license.notgranted": "Najpierw musisz zaakceptować licencjÄ™", - "submission.sections.license.required": "Najpierw musisz zaakceptować licencjÄ™", - "confirmation-modal.export-batch.confirm": "Eksportuj", - "confirmation-modal.export-batch.cancel": "Anuluj", - "admin.access-control.bulk-access.breadcrumbs": "Zbiorcza edycja dostÄ™pu do osiÄ…gnięć", - "administrativeBulkAccess.search.results.head": "Wyniki wyszukiwania", - "admin.access-control.bulk-access": "Zbiorcza edycja dostÄ™pu do osiÄ…gnięć", - "admin.access-control.bulk-access.title": "Zbiorcza edycja dostÄ™pu do osiÄ…gnięć", - "admin.access-control.bulk-access-browse.header": "Krok 1: Wybierz pozycje", - "admin.access-control.bulk-access-browse.search.header": "Wyszukaj", - "admin.access-control.bulk-access-browse.selected.header": "Obecny wybór({{number}})", - "admin.access-control.bulk-access-settings.header": "Krok 2: DziaÅ‚anie do wykonania", - "admin.access-control.groups.form.tooltip.editGroupPage": "Na tej stronie można edytować opcje grupy i przypisane do niej osoby. W górnej sekcji można edytować nazwÄ™ i opis grupy, chyba że jest to grupa administratorów dla zbioru i kolekcji. W tym przypadku nazwa i opis grupy sÄ… generowane automatycznie i nie można ich edytować. W kolejnych sekcjach można edytować przypisanie użytkowników do grupy. Szczegóły na [stronie](https://wiki.lyrasis.org/display/DSDOC7x/Create+or+manage+a+user+group).", - "admin.access-control.groups.form.tooltip.editGroup.addEpeople": "Aby dodać lub usunąć użytkownika do/z tej grupy, kliknij przycisk 'PrzeglÄ…daj wszystko' lub użyj paska wyszukiwania poniżej, aby wyszukać użytkowników (użyj listy rozwijanej po lewej stronie paska wyszukiwania, aby wybrać, czy chcesz wyszukiwać wedÅ‚ug imienia i nazwiska, czy wedÅ‚ug adresu e-mail). NastÄ™pnie kliknij ikonÄ™ plusa przy każdym użytkowniku, którego chcesz dodać do poniższej listy, lub ikonÄ™ kosza przy każdym użytkowniku, którego chcesz usunąć. Poniższa lista może mieć kilka stron: użyj strzaÅ‚ek pod listÄ…, aby przejść do kolejnych stron. Gdy wszystkie zmiany zostanÄ… wprowadzone, zapisz je, klikajÄ…c przycisk 'Zapisz' w górnej sekcji.", - "admin.access-control.groups.form.tooltip.editGroup.addSubgroups": "Aby dodać lub usunąć podgrupÄ™ do/z tej grupy, kliknij przycisk 'PrzeglÄ…daj wszystko' lub użyj wyszukiwarki poniżej, aby wyszukać użytkowników. NastÄ™pnie kliknij ikonÄ™ plusa przy każdym użytkowniku, którego chcesz dodać do poniższej listy, lub ikonÄ™ kosza przy każdym użytkowniku, którego chcesz usunąć. Poniższa lista może skÅ‚adać siÄ™ z kilku stron: użyj przycisków pod listÄ…, aby przejść do kolejnych stron. Gdy wszystkie zmiany zostanÄ… wprowadzone, zapisz je, klikajÄ…c przycisk 'Zapisz' w górnej sekcji.", - "admin.workflow.item.workspace": "PrzestrzeÅ„ robocza", - "admin.workflow.item.policies": "Polityki", - "admin.workflow.item.supervision": "Recenzja", - "admin.batch-import.page.toggle.help": "It is possible to perform import either with file upload or via URL, use above toggle to set the input source", - "admin.metadata-import.page.error.addFileUrl": "Najpierw wpisz URL pliku!", - "admin.metadata-import.page.toggle.upload": "PrzeÅ›lij", - "admin.metadata-import.page.toggle.url": "URL", - "admin.metadata-import.page.urlMsg": "Wpisz URL pliku ZIP, aby wykonać import masowy", - "advanced-workflow-action.rating.form.rating.label": "Ocena", - "advanced-workflow-action.rating.form.rating.error": "Ta pozycja musi zostać oceniona", - "advanced-workflow-action.rating.form.review.label": "Recenzja", - "advanced-workflow-action.rating.form.review.error": "Musisz wpisać tekst recenzji", - "advanced-workflow-action.rating.description": "Wybierz ocenÄ™ poniżej", - "advanced-workflow-action.rating.description-requiredDescription": "Wybierz ocenÄ™ poniżej i wpisz uzasadnienie", - "advanced-workflow-action.select-reviewer.description-single": "Wybierz recenzenta przed zdeponowaniem pozycji", - "advanced-workflow-action.select-reviewer.description-multiple": "Wybierz jednego lub wiÄ™cej recenzentów przed zdeponowaniem pozycji", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.head": "Użytkownicy", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.head": "Dodaj użytkownika", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.button.see-all": "PrzeglÄ…daj wszystko", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.headMembers": "Aktualni użytkownicy", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.metadata": "Metadane", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.email": "Adres e-mail (dokÅ‚adny)", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.button": "Wyszukaj", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.id": "ID", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.name": "Nazwa", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.identity": "Tożsamość", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.email": "Adres e-mail", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.netid": "NetID", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit": "UsuÅ„ / Dodaj", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.remove": "UsuÅ„ użytkownika z nazwÄ™ \"{{name}}\"", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.addMember": "Dodano użytkownika o nazwie: \"{{name}}\"", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.addMember": "Nie dodano użytkownika: \"{{name}}\"", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.deleteMember": "UsuniÄ™to użytkownika: \"{{name}}\"", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.deleteMember": "Nie usuniÄ™to użytkownika: \"{{name}}\"", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.add": "Dodano użytkownika \"{{name}}\"", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.noActiveGroup": "Brak aktywnej grupy, najpierw wpisz nazwÄ™.", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-members-yet": "W tej grupie nie ma użytkowników, wyszukaj ich i dodaj.", - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-items": "Nie znaleziono żadnych użytkowników", - "advanced-workflow-action.select-reviewer.no-reviewer-selected.error": "Recenzent nie jest wybrany.", - "bitstream.edit.notifications.error.primaryBitstream.title": "WystÄ…piÅ‚ bÅ‚Ä…d podczas zapisu pliku.", - "browse.comcol.by.srsc": "Wg słów kluczowych", - "browse.metadata.srsc.breadcrumbs": "PrzeglÄ…daj wg słów kluczowych", - "browse.startsWith.input": "Filtr", - "browse.taxonomy.button": "PrzeglÄ…daj", - "search.browse.item-back": "Powrót do wyników wyszukiwania", - "claimed-approved-search-result-list-element.title": "Zaakceptowano", - "claimed-declined-search-result-list-element.title": "Odrzucono i przesÅ‚ano do deponujÄ…cego", - "claimed-declined-task-search-result-list-element.title": "Odrzucono i przesÅ‚ano do recenzenta", - "collection.edit.tabs.access-control.head": "DostÄ™py", - "collection.edit.tabs.access-control.title": "Edycja kolekcji - dostÄ™py", - "collection.listelement.badge": "Kolekcja", - "community.edit.tabs.access-control.head": "DostÄ™py", - "community.edit.tabs.access-control.title": "Edycja zbioru - dostÄ™py", - "comcol-role.edit.scorereviewers.name": "Ocena recenzenta", - "comcol-role.edit.scorereviewers.description": "Recenzenci mogÄ… oceniać zdeponowane pozycje, co okreÅ›li, czy pozycja zostanie przyjÄ™ta lub odrzucona.", - "curation-task.task.register-doi.label": "Rejestracja DOI", - "dso.name.unnamed": "Bez nazwy", - "dso-selector.create.community.or-divider": "lub", - "dso-selector.set-scope.community.or-divider": "lub", - "dso-selector.results-could-not-be-retrieved": "WystÄ…piÅ‚ bÅ‚Ä…d, proszÄ™ odÅ›wieżyć stronÄ™", - "supervision-group-selector.header": "Wybór grupy recenzenckiej", - "supervision-group-selector.select.type-of-order.label": "Wybierz typ funkcji", - "supervision-group-selector.select.type-of-order.option.none": "BRAK", - "supervision-group-selector.select.type-of-order.option.editor": "REDAKTOR", - "supervision-group-selector.select.type-of-order.option.observer": "OBSERWATOR", - "supervision-group-selector.select.group.label": "Wybierz grupÄ™", - "supervision-group-selector.button.cancel": "Anuluj", - "supervision-group-selector.button.save": "Zapisz", - "supervision-group-selector.select.type-of-order.error": "Wybierz typ funkcji", - "supervision-group-selector.select.group.error": "Wybierz grupÄ™", - "supervision-group-selector.notification.create.success.title": "Grupa recenzencka zostaÅ‚ dodana dla grupy {{ name }}", - "supervision-group-selector.notification.create.failure.title": "BÅ‚Ä…d", - "supervision-group-selector.notification.create.already-existing": "Funkcja recenzenta już jest przypisana do tej grupy", - "confirmation-modal.delete-subscription.header": "UsuÅ„ subksrypcje", - "confirmation-modal.delete-subscription.info": "Czy na pewno chcesz usunąć subskrypcjÄ™: \"{{ dsoName }}\"", - "confirmation-modal.delete-subscription.cancel": "Anuluj", - "confirmation-modal.delete-subscription.confirm": "UsuÅ„", - "error.validation.metadata.name.invalid-pattern": "To pole nie może zawierać kropek, przecinków i spacji. Zamiast tego This field cannot contain dots, commas or spaces. Zamiast tego może użyć pól z notacji SNEQ", - "error.validation.metadata.name.max-length": "To pole nie może zawierać wiÄ™cej niż 32 znaki", - "error.validation.metadata.namespace.max-length": "To pole nie może zawierać wiÄ™cej niż 256 znaków", - "error.validation.metadata.element.invalid-pattern": "To pole nie może zawierać kropek, przecinków i spacji. Zamiast tego This field cannot contain dots, commas or spaces. Zamiast tego może użyć pól z notacji SNEQ", - "error.validation.metadata.element.max-length": "To pole nie może zawierać wiÄ™cej niż 64 znaki", - "error.validation.metadata.qualifier.invalid-pattern": "To pole nie może zawierać kropek, przecinków i spacji", - "error.validation.metadata.qualifier.max-length": "To pole nie może zawierać wiÄ™cej niż 64 znaki", - "forgot-email.form.email.error.not-email-form": "Wpisz prawidÅ‚owy adres e-mail", - "form.other-information.email": "Adres e-mail", - "form.other-information.first-name": "ImiÄ™", - "form.other-information.insolr": "Solr Index", - "form.other-information.institution": "Instytucja", - "form.other-information.last-name": "Nazwisko", - "form.other-information.orcid": "ORCID", - "form.create": "Utwórz", - "info.end-user-agreement.hosting-country": "Stany Zjednoczone", - "item.edit.identifiers.doi.status.UNKNOWN": "Nieznane", - "item.edit.identifiers.doi.status.TO_BE_REGISTERED": "W kolejce do rejestracji", - "item.edit.identifiers.doi.status.TO_BE_RESERVED": "W kolejce do rezerwacji", - "item.edit.identifiers.doi.status.IS_REGISTERED": "Zarejestrowane", - "item.edit.identifiers.doi.status.IS_RESERVED": "Zarezerwowane", - "item.edit.identifiers.doi.status.UPDATE_RESERVED": "Zarezerwowane (aktualizacja w kolejce)", - "item.edit.identifiers.doi.status.UPDATE_REGISTERED": "Zarejestrowane (aktualizacja w kolejce)", - "item.edit.identifiers.doi.status.UPDATE_BEFORE_REGISTRATION": "W kolejce do aktualizacji i rejestracji", - "item.edit.identifiers.doi.status.TO_BE_DELETED": "Zakolejkowane do usuniÄ™cia", - "item.edit.identifiers.doi.status.DELETED": "UsuniÄ™te", - "item.edit.identifiers.doi.status.PENDING": "OczekujÄ…ce (niezarejestrowane)", - "item.edit.identifiers.doi.status.MINTED": "Rezerwowanie nazwy (niezarejestrowane)", - "item.edit.tabs.status.buttons.register-doi.label": "Zarejestruj nowe lub oczekujÄ…ce DOI", - "item.edit.tabs.status.buttons.register-doi.button": "Rejestruj DOI...", - "item.edit.register-doi.header": "Zarejestruj nowe lub oczekujÄ…ce DOI", - "item.edit.register-doi.description": "Zweryfikuj poniższe identyfikatory i metadane pozycji i rozpocznij rejestracjÄ™ DOI lub anuluj", - "item.edit.register-doi.confirm": "Zatwierdź", - "item.edit.register-doi.cancel": "Anuluj", - "item.edit.register-doi.success": "DOI jest w kolejce do rejestracji.", - "item.edit.register-doi.error": "WystÄ…piÅ‚ bÅ‚Ä…d poczas rejestracji DOI", - "item.edit.register-doi.to-update": "To DOI zostaÅ‚o zarezerwowane i bÄ™dzie znajdować siÄ™ w kolejce do rejestracji", - "item.edit.metadata.edit.buttons.confirm": "Zatwierdź", - "item.edit.metadata.edit.buttons.drag": "PrzeciÄ…gnij, aby zmienić kolejność", - "item.edit.metadata.edit.buttons.virtual": "To pole przechowuje wirutalne wartoÅ›ci metadanych, np. wartość pobranÄ… z encji, z którÄ… jest poÅ‚Ä…czona ta pozycja. Dodaj lub usuÅ„ relacjÄ™ w zakÅ‚adce 'Relacje' ", - "item.edit.metadata.metadatafield.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas walidcji pól metadanych", - "item.edit.metadata.reset-order-button": "Cofnij zamianÄ™ kolejnoÅ›ci", - "item.edit.curate.title": "ZarzÄ…dzaj pozycjÄ…: {{item}}", - "item.edit.tabs.access-control.head": "DostÄ™p", - "item.edit.tabs.access-control.title": "Edycja pozycji - dostÄ™p", - "workflow-item.search.result.delete-supervision.modal.header": "UsuÅ„ zadanie dla recenzenta", - "workflow-item.search.result.delete-supervision.modal.info": "Czy na pewno usunąć zadanie dla recenzenta", - "workflow-item.search.result.delete-supervision.modal.cancel": "Anuluj", - "workflow-item.search.result.delete-supervision.modal.confirm": "UsuÅ„", - "workflow-item.search.result.notification.deleted.success": "UsuniÄ™to zadanie dla recenzenta \"{{name}}\"", - "workflow-item.search.result.notification.deleted.failure": "Nie usuniÄ™to zadania dla recenzenta \"{{name}}\"", - "workflow-item.search.result.list.element.supervised-by": "Recenzja:", - "workflow-item.search.result.list.element.supervised.remove-tooltip": "UsuÅ„ grupÄ™ recenzenckÄ…", - "item.preview.dc.subject": "SÅ‚owo kluczowe:", - "item.preview.dc.publisher": "Wydawca:", - "itemtemplate.edit.metadata.add-button": "Dodaj", - "itemtemplate.edit.metadata.discard-button": "Cofnij", - "itemtemplate.edit.metadata.edit.buttons.confirm": "Zatwierdź", - "itemtemplate.edit.metadata.edit.buttons.drag": "PrzeciÄ…gnij, aby zmienić kolejność", - "itemtemplate.edit.metadata.edit.buttons.edit": "Edytuj", - "itemtemplate.edit.metadata.edit.buttons.remove": "UsuÅ„", - "itemtemplate.edit.metadata.edit.buttons.undo": "Cofnij zmiany", - "itemtemplate.edit.metadata.edit.buttons.unedit": "Nie edytuj", - "itemtemplate.edit.metadata.empty": "To pozycja nie zawiera żadnych metadanych. Wybierz Dodaj, aby je wprowadzić.", - "itemtemplate.edit.metadata.headers.edit": "Edytuj", - "itemtemplate.edit.metadata.headers.field": "Pole", - "itemtemplate.edit.metadata.headers.language": "JÄ™zyk", - "itemtemplate.edit.metadata.headers.value": "Wartość", - "itemtemplate.edit.metadata.metadatafield.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas walidowania pola metadanych", - "itemtemplate.edit.metadata.metadatafield.invalid": "Wybierz odpowiednie pole metadanych", - "itemtemplate.edit.metadata.notifications.discarded.content": "Twoje zmiany nie zostaÅ‚y zachowane. Aby spróbować wprowadzić je ponownie wybierz Cofnij", - "itemtemplate.edit.metadata.notifications.discarded.title": "Zmiany nie zostaÅ‚y zachowane", - "itemtemplate.edit.metadata.notifications.error.title": "WystÄ…piÅ‚ bÅ‚Ä…d", - "itemtemplate.edit.metadata.notifications.invalid.content": "Twoje zmiany nie zostaÅ‚y zapisane. Upewnij siÄ™, że wszystkie pola zostaÅ‚y wypeÅ‚nione prawidÅ‚owo.", - "itemtemplate.edit.metadata.notifications.invalid.title": "NieprawidÅ‚owe metadan", - "itemtemplate.edit.metadata.notifications.outdated.content": "Wzór dla pozycji, na którÄ… w tym momencie pracujesz, zostaÅ‚ zmodyfikowany przez innego użytkownika. Twoje zmiany zostaÅ‚y odrzucone, aby uniknąć konfliktów pomiÄ™dzy wersjami.", - "itemtemplate.edit.metadata.notifications.outdated.title": "Zmiany zostaÅ‚y odrzucone", - "itemtemplate.edit.metadata.notifications.saved.content": "Zmiany w metadanych wzoru pozycji zostaÅ‚y zapisane.", - "itemtemplate.edit.metadata.notifications.saved.title": "Metadane zostaÅ‚y zapisane", - "itemtemplate.edit.metadata.reinstate-button": "Cofnij", - "itemtemplate.edit.metadata.reset-order-button": "Cofnij zmianÄ™ kolejnoÅ›ci", - "itemtemplate.edit.metadata.save-button": "Zapisz", - "menu.section.access_control_bulk": "Zbiorowe zarzÄ…dzanie dostÄ™pem", - "menu.section.browse_global_by_srsc": "Wg słów kluczowych", - "mydspace.show.supervisedWorkspace": "Pozycje recenzowane", - "mydspace.status.mydspaceArchived": "Opublikowano", - "mydspace.status.mydspaceValidation": "Walidacja", - "mydspace.status.mydspaceWaitingController": "Oczekiwanie na redakctora", - "mydspace.status.mydspaceWorkflow": "Redakcja", - "mydspace.status.mydspaceWorkspace": "PrzestrzeÅ„ robocza", - "nav.context-help-toggle": "PrzeÅ‚Ä…cz pomoc kontekstowÄ…", - "nav.search.button": "Wpisz wyszukiwanÄ… frazÄ™", - "nav.subscriptions": "Subksrypcje", - "process.new.notification.error.max-upload.content": "Plik jest wiÄ™kszy niż maksymalny dozwolony rozmiar pliku", - "register-page.registration.email.error.not-email-form": "Wprowadź poprawny adres e-mail", - "register-page.registration.email.error.not-valid-domain": "Użyj adresu e-mail z domeny: {{ domains }}", - "register-page.registration.error.maildomain": "Tego adresu e-mail nie możesz zarejestrować, ponieważ nie ma go na liÅ›cie domen. Dozwolone domeny to: {{ domains }}", - "register-page.registration.info.maildomain": "Konta mogÄ… być zaÅ‚ożone dla adresów e-mail z domenÄ…", - "repository.title": "Repozytorium DSpace", - "search.filters.applied.f.supervisedBy": "Recenzent", - "search.filters.filter.show-tree": "PrzeglÄ…daj {{ name }} strukturÄ™ recenzentów", - "search.filters.filter.supervisedBy.head": "Recenzent", - "search.filters.filter.supervisedBy.placeholder": "Recenzent", - "search.filters.filter.supervisedBy.label": "Wyszukaj recenzenta", - "statistics.table.no-name": "(nazwa obiektu nie może zostać zaÅ‚adowana)", - "submission.import-external.source.datacite": "DataCite", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.isPublicationOfAuthor": "Publikacje autora", - "submission.sections.describe.relationship-lookup.title.isPublicationOfAuthor": "Publikacje", - "submission.sections.identifiers.info": "Te identyfikatory zostanÄ… utworzone dla pozycji:", - "submission.sections.identifiers.no_handle": "Do tej pozycji nie zostaÅ‚y przypisane żadne Handle", - "submission.sections.identifiers.no_doi": "Do tej pozycji nie zostaÅ‚y przypisane żadne DOI", - "submission.sections.identifiers.handle_label": "Handle: ", - "submission.sections.identifiers.doi_label": "DOI: ", - "submission.sections.identifiers.otherIdentifiers_label": "Inne identyfikatory: ", - "submission.sections.submit.progressbar.identifiers": "Identyfikatory", - "submission.workflow.generic.submit_select_reviewer": "Wybierz recenzenta", - "submission.workflow.generic.submit_select_reviewer-help": "", - "submission.workflow.generic.submit_score": "Wynik", - "submission.workflow.generic.submit_score-help": "", - "submission.workflow.tasks.claimed.decline": "Odrzuć", - "submission.workflow.tasks.claimed.decline_help": "", - "submitter.empty": "n.d.", - "subscriptions.title": "Subskrypcje", - "subscriptions.item": "Subskrypcje pozycji", - "subscriptions.collection": "Subskrypcje kolekcji", - "subscriptions.community": "Subskrypcje zbiorów", - "subscriptions.subscription_type": "Typ subksrypcji", - "subscriptions.frequency": "CzÄ™stotliwość subskrypcji", - "subscriptions.frequency.D": "Codziennie", - "subscriptions.frequency.M": "Co miesiÄ…c", - "subscriptions.frequency.W": "Co tydzieÅ„", - "subscriptions.tooltip": "Subskrybuj", - "subscriptions.modal.title": "Subksrypcje", - "subscriptions.modal.type-frequency": "Rodzaj i czÄ™stotliwość subksrypcji", - "subscriptions.modal.close": "Zamknij", - "subscriptions.modal.delete-info": "Aby usunąć tÄ™ subksrypcjÄ™ przejdź do strony 'Subskrypcje', która znajduje siÄ™ w profilu użytkownika", - "subscriptions.modal.new-subscription-form.type.content": "Zawartość", - "subscriptions.modal.new-subscription-form.frequency.D": "Codziennie", - "subscriptions.modal.new-subscription-form.frequency.W": "Co tydzieÅ„", - "subscriptions.modal.new-subscription-form.frequency.M": "Co miesiÄ…c", - "subscriptions.modal.new-subscription-form.submit": "Zapisz", - "subscriptions.modal.new-subscription-form.processing": "Åadowanie...", - "subscriptions.modal.create.success": "Zasubskrybowano {{ type }}", - "subscriptions.modal.delete.success": "Subskrypcja zostaÅ‚a anulowana", - "subscriptions.modal.update.success": "Twoja subskrypcja {{ type }} zostaÅ‚a zaktualizowana", - "subscriptions.modal.create.error": "WystÄ…piÅ‚ bÅ‚ad podczas tworzenia subskrypcji", - "subscriptions.modal.delete.error": "WystÄ…piÅ‚ bÅ‚ad podczas usuwania subskrypcji", - "subscriptions.modal.update.error": "WystÄ…piÅ‚ bÅ‚ad podczas aktualizacji subskrypcji", - "subscriptions.table.dso": "SÅ‚owo kluczowe", - "subscriptions.table.subscription_type": "Typ subskrypcji", - "subscriptions.table.subscription_frequency": "CzÄ™stotliwość subskrypcji", - "subscriptions.table.action": "Akcja", - "subscriptions.table.edit": "Edytuj", - "subscriptions.table.delete": "UsuÅ„", - "subscriptions.table.not-available": "NiedostÄ™pne", - "subscriptions.table.not-available-message": "Ta pozycja zostaÅ‚a usuniÄ™ta lun nie masz do niej dostÄ™pu, aby jÄ… wyswietlić", - "subscriptions.table.empty.message": "Ta pozycja nie ma w tym momencie żadnych subksrypcji. Aby zasubkrybować i otrzymywać aktualizacje o tym zbiorze lub kolekcji, wybierz przycisk subskrypcji na stronie pozycji.", - "vocabulary-treeview.info": "Wybierz sÅ‚owo kluczowe, aby dodać je do filtra", - "supervisedWorkspace.search.results.head": "Pozycje recenzowane", - "supervision.search.results.head": "Status zadaÅ„: Szkic i redakcja", - "workspace-item.delete.breadcrumbs": "UsuniÄ™to wersjÄ™ roboczÄ…", - "workspace-item.delete.header": "UsuÅ„ wersjÄ™ roboczÄ…", - "workspace-item.delete.button.confirm": "UsuÅ„", - "workspace-item.delete.button.cancel": "Anuluj", - "workspace-item.delete.notification.success.title": "UsuniÄ™to", - "workspace-item.delete.title": "Wersja robocza zostaÅ‚a usunieta", - "workspace-item.delete.notification.error.title": "CoÅ› poszÅ‚o nie tak", - "workspace-item.delete.notification.error.content": "Wersja robocza nie może zostać usunieta", - "workflow-item.advanced.title": "Zaawansowane workflow", - "workflow-item.selectrevieweraction.notification.success.title": "Wybrany recenzent", - "workflow-item.selectrevieweraction.notification.success.content": "Recenzent zostaÅ‚ przypisany", - "workflow-item.selectrevieweraction.notification.error.title": "CoÅ› poszÅ‚o nie tak", - "workflow-item.selectrevieweraction.notification.error.content": "Nie udaÅ‚o siÄ™ wybrać recenzenta dla pozycji", - "workflow-item.selectrevieweraction.title": "Wybierz recenzenta", - "workflow-item.selectrevieweraction.header": "Wybierz recenzenta", - "workflow-item.selectrevieweraction.button.cancel": "Anuluj", - "workflow-item.selectrevieweraction.button.confirm": "Zatwierdź", - "workflow-item.scorereviewaction.notification.success.title": "Ocena recenzji", - "workflow-item.scorereviewaction.notification.success.content": "Ocena tej pozycji zostaÅ‚a zapisana", - "workflow-item.scorereviewaction.notification.error.title": "CoÅ› poszÅ‚o nie tak", - "workflow-item.scorereviewaction.notification.error.content": "Nie można ocenić tej pozycji", - "workflow-item.scorereviewaction.title": "OceÅ„ pozycjÄ™", - "workflow-item.scorereviewaction.header": "OceÅ„ pozycjÄ™", - "workflow-item.scorereviewaction.button.cancel": "Anuluj", - "workflow-item.scorereviewaction.button.confirm": "Potwierdź", - "listable-notification-object.default-message": "Ta pozycja nie może być odzyskana", - "system-wide-alert-banner.retrieval.error": "CoÅ› poszÅ‚o nie tak podczas odzyskiwania alertu systemowego", - "system-wide-alert-banner.countdown.prefix": "W", - "system-wide-alert-banner.countdown.days": "{{days}} dni,", - "system-wide-alert-banner.countdown.hours": "{{hours}} godziny", - "system-wide-alert-banner.countdown.minutes": "{{minutes}} minut:", - "menu.section.system-wide-alert": "Alert systemowy", - "system-wide-alert.form.header": "Alert systemowy", - "system-wide-alert-form.retrieval.error": "CoÅ› poszÅ‚o nie tak podczas odzyskiwania alertu systemowego", - "system-wide-alert.form.cancel": "Anuluj", - "system-wide-alert.form.save": "Zapisz", - "system-wide-alert.form.label.active": "AKTYWNE", - "system-wide-alert.form.label.inactive": "NIEAKTYWNE", - "system-wide-alert.form.error.message": "Alert systemowy musi zawierać wiadomość", - "system-wide-alert.form.label.message": "Alert systemowy", - "system-wide-alert.form.label.countdownTo.enable": "Wprowadź licznik czasowy", - "system-wide-alert.form.label.countdownTo.hint": "Wskazówka: Wpisz wartość licznika czasu. Kiedy licznik jest wÅ‚Ä…czony, alert systemowy zostanie wyÅ›wietlony o wybranym czasie. Kiedy odliczanie zostanie zakoÅ„czone, alert systemowy zostanie wyÅ‚Ä…czony. Serwer NIE zostanie zatrzymany automatycznie.", - "system-wide-alert.form.label.preview": "PodglÄ…d alertu systemowego", - "system-wide-alert.form.update.success": "Alert systemowy zostaÅ‚ zaktualizowany", - "system-wide-alert.form.update.error": "CoÅ› poszÅ‚o nie tak podczas aktualizacji alertu systemowego", - "system-wide-alert.form.create.success": "Alert systemowy zostaÅ‚ utworzony", - "system-wide-alert.form.create.error": "CoÅ› poszÅ‚o nie tak podczas tworzenia alertu systemowego", - "admin.system-wide-alert.breadcrumbs": "Alerty systemowe", - "admin.system-wide-alert.title": "Alerty systemowe", - "item-access-control-title": "Ta strona pozwala na zmianÄ™ dostÄ™pów metadanych pozycji i plików do nich doÅ‚Ä…czonych.", - "collection-access-control-title": "Ta strona pozwala na zmianÄ™ warunków dostÄ™pu dla wszystkich pozycji w tej kolekcji. Zmiany mogÄ… być wykonywane zarówno na metadanych pozycji jak i plikach do nich doÅ‚Ä…czonych.", - "community-access-control-title": "Ta strona pozwala na zmianÄ™ warunków dostÄ™pu dla wszystkich pozycji w każdej kolekcji w tym zbiorze. Zmiany mogÄ… być wykonywane zarówno na metadanych pozycji jak i plikach do nich doÅ‚Ä…czonych.", - "access-control-item-header-toggle": "Metadane pozycji", - "access-control-bitstream-header-toggle": "Pliki", - "access-control-mode": "Tryb", - "access-control-access-conditions": "Warunki dostÄ™pu", - "access-control-no-access-conditions-warning-message": "W tym momencie żadne warunki dostÄ™pu nie zostaÅ‚y okreÅ›lone. JeÅ›li zadanie zostanie rozpoczÄ™te, obecne warunki dostÄ™pu zostanÄ… zastÄ…pione domyÅ›lnymi warunkami dostÄ™pu z nadrzÄ™dnej kolekcji.", - "access-control-replace-all": "ZastÄ…p warunki dostÄ™pu", - "access-control-add-to-existing": "Dodaj do już istniejÄ…cych", - "access-control-limit-to-specific": "Ogranicz zmiany do wybranych plików", - "access-control-process-all-bitstreams": "Zaktualizuj wszystkie pliki dla tej pozycji", - "access-control-bitstreams-selected": "wybrane pliki", - "access-control-cancel": "Anuluj", - "access-control-execute": "Wykonaj", - "access-control-add-more": "Dodaj wiÄ™cej", - "access-control-select-bitstreams-modal.title": "Wybierz pliki", - "access-control-select-bitstreams-modal.no-items": "Brak pozycji do wyÅ›wietlenia.", - "access-control-select-bitstreams-modal.close": "Zamknij", - "access-control-option-label": "Typ warunków dostÄ™pu", - "access-control-option-note": "Wybierz warunki dostÄ™pu, które chcesz przypisać do zaznaczonych pozycji.", - "access-control-option-start-date": "DostÄ™p od", - "access-control-option-start-date-note": "Wybierz datÄ™, kiedy wybrane warunki dostÄ™pu majÄ… obowiÄ…zywać", - "access-control-option-end-date": "DostÄ™p do", - "access-control-option-end-date-note": "Wybierz datÄ™, kiedy wybrane warunki dostÄ™pu majÄ… obowiÄ…zywać", + "401.help": "Nie masz uprawnieÅ„ do dostÄ™pu do tej strony. Możesz użyć przycisku poniżej, aby powrócić do strony głównej.", + "401.link.home-page": "Zabierz mnie na stronÄ™ głównÄ…", + "401.unauthorized": "nieautoryzowany", + "403.help": "Nie masz uprawnieÅ„ do dostÄ™pu do tej strony. Możesz użyć przycisku poniżej, aby wrócić do strony głównej.", + "403.link.home-page": "Zabierz mnie na stronÄ™ głównÄ…", + "403.forbidden": "zabroniony", + "404.help": "Nie możemy znaleźć strony, której szukasz. Strona mogÅ‚a zostać przeniesiona lub usuniÄ™ta. Możesz użyć przycisku poniżej, aby powrócić do strony głównej. ", + "404.link.home-page": "Zabierz mnie na stronÄ™ głównÄ…", + "404.page-not-found": "strona nie zostaÅ‚a znaleziona", + "admin.curation-tasks.breadcrumbs": "Systemowe zadania administracyjne", + "admin.curation-tasks.title": "Systemowe zadania administracyjne", + "admin.curation-tasks.header": "Systemowe zadania administracyjne", + "admin.registries.bitstream-formats.breadcrumbs": "Rejestr formatów", + "admin.registries.bitstream-formats.create.breadcrumbs": "Format strumienia bitów", + "admin.registries.bitstream-formats.create.failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia nowego formatu strumienia bitów.", + "admin.registries.bitstream-formats.create.failure.head": "Nie udaÅ‚o siÄ™", + "admin.registries.bitstream-formats.create.head": "Utwórz nowy format", + "admin.registries.bitstream-formats.create.new": "Dodaj nowy format", + "admin.registries.bitstream-formats.create.success.content": "Nowy format strumienia bitów zostaÅ‚ pomyÅ›lnie utworzony.", + "admin.registries.bitstream-formats.create.success.head": "UdaÅ‚o siÄ™", + "admin.registries.bitstream-formats.delete.failure.amount": "Nie udaÅ‚o siÄ™ usunąć {{ amount }} formatu(ów)", + "admin.registries.bitstream-formats.delete.failure.head": "Nie udaÅ‚o siÄ™", + "admin.registries.bitstream-formats.delete.success.amount": "UdaÅ‚o siÄ™ usunąć {{ amount }} formatu(ów)", + "admin.registries.bitstream-formats.delete.success.head": "UdaÅ‚o siÄ™", + "admin.registries.bitstream-formats.description": "Na liÅ›cie formatów wyÅ›wietlono informacje o obsÅ‚ugiwanych formatach i czy sÄ… one wspierane przez system.", + "admin.registries.bitstream-formats.edit.breadcrumbs": "Format strumienia bitów", + "admin.registries.bitstream-formats.edit.description.hint": "", + "admin.registries.bitstream-formats.edit.description.label": "Opis", + "admin.registries.bitstream-formats.edit.extensions.hint": "Rozszerzenia to rozszerzenia plików, które sÄ… używane do automatycznej identyfikacji formatu przesyÅ‚anych plików. Możesz wprowadzić kilka rozszerzeÅ„ dla każdego formatu.", + "admin.registries.bitstream-formats.edit.extensions.label": "Rozszerzenia plików", + "admin.registries.bitstream-formats.edit.extensions.placeholder": "Wprowadź rozszerzenie pliku bez kropki", + "admin.registries.bitstream-formats.edit.failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas edycji formatu pliku.", + "admin.registries.bitstream-formats.edit.failure.head": "Nie udaÅ‚o siÄ™", + "admin.registries.bitstream-formats.edit.head": "Format plików: {{ format }}", + "admin.registries.bitstream-formats.edit.internal.hint": "Formaty oznaczone jako wewnÄ™trzne sÄ… ukryte przed użytkownikiem i wykorzystywane do celów administracyjnych.", + "admin.registries.bitstream-formats.edit.internal.label": "WewnÄ™trzny", + "admin.registries.bitstream-formats.edit.mimetype.hint": "Typ MIME powiÄ…zany z tym formatem, nie musi być unikalny.", + "admin.registries.bitstream-formats.edit.mimetype.label": "Typ MIME", + "admin.registries.bitstream-formats.edit.shortDescription.hint": "Unikalna nazwa dla tego formatu, (np. Microsoft Word XP lub Microsoft Word 2000)", + "admin.registries.bitstream-formats.edit.shortDescription.label": "Nazwa", + "admin.registries.bitstream-formats.edit.success.content": "Format strumienia bitów zostaÅ‚ pomyÅ›lnie edytowany.", + "admin.registries.bitstream-formats.edit.success.head": "UdaÅ‚o siÄ™", + "admin.registries.bitstream-formats.edit.supportLevel.hint": "Poziom wsparcia, jaki Twoja instytucja deklaruje dla tego formatu.", + "admin.registries.bitstream-formats.edit.supportLevel.label": "ObsÅ‚ugiwany format", + "admin.registries.bitstream-formats.head": "Rejestr formatów", + "admin.registries.bitstream-formats.no-items": "Brak formatów plików do wyÅ›wietlenia.", + "admin.registries.bitstream-formats.table.delete": "UsuÅ„ zaznaczone", + "admin.registries.bitstream-formats.table.deselect-all": "Odznacz wszystkie", + "admin.registries.bitstream-formats.table.internal": "wewnÄ™trzne", + "admin.registries.bitstream-formats.table.mimetype": "Typ MIME", + "admin.registries.bitstream-formats.table.name": "Nazwa", + "admin.registries.bitstream-formats.table.return": "Powrót", + "admin.registries.bitstream-formats.table.supportLevel.KNOWN": "Znane", + "admin.registries.bitstream-formats.table.supportLevel.SUPPORTED": "Wspierane", + "admin.registries.bitstream-formats.table.supportLevel.UNKNOWN": "Nieznane", + "admin.registries.bitstream-formats.table.supportLevel.head": "ObsÅ‚ugiwany format", + "admin.registries.bitstream-formats.title": "Rejestr formatów plików", + "admin.registries.metadata.breadcrumbs": "Rejestr metadanych", + "admin.registries.metadata.description": "W rejestrze metadanych przechowywana jest lista wszystkich pól metadanych dostÄ™pnych w repozytorium. Przechowywane pola sÄ… przechowywane w kilku rejestrach. DSpace wymaga kwalifikowanego rejestru metadanych Dublin Core.", + "admin.registries.metadata.form.create": "Utwórz schemat metadanych", + "admin.registries.metadata.form.edit": "Edytuj schemat metadanych", + "admin.registries.metadata.form.name": "Nazwa", + "admin.registries.metadata.form.namespace": "Nazwa schematu", + "admin.registries.metadata.head": "Rejestr metadanych", + "admin.registries.metadata.schemas.no-items": "Brak rejestrów metadanych do pokazania.", + "admin.registries.metadata.schemas.table.delete": "UsuÅ„ zaznaczone", + "admin.registries.metadata.schemas.table.id": "ID", + "admin.registries.metadata.schemas.table.name": "Nazwa", + "admin.registries.metadata.schemas.table.namespace": "Nazwa schematu", + "admin.registries.metadata.title": "Rejestr metadanych", + "admin.registries.schema.breadcrumbs": "Schemat metadanych", + "admin.registries.schema.description": "Ten schemat metadanych jest stworzony na podstawie \"{{namespace}}\".", + "admin.registries.schema.fields.head": "Pola schematu metadanych", + "admin.registries.schema.fields.no-items": "Brak pól metadanych do pokazania.", + "admin.registries.schema.fields.table.delete": "UsuÅ„ zaznaczone", + "admin.registries.schema.fields.table.field": "Pole", + "admin.registries.schema.fields.table.scopenote": "Uwagi", + "admin.registries.schema.form.create": "Stwórz pole metadanych", + "admin.registries.schema.form.edit": "Edytuj pole metadanych", + "admin.registries.schema.form.element": "Element", + "admin.registries.schema.form.qualifier": "Kwalifikator", + "admin.registries.schema.form.scopenote": "Uwagi", + "admin.registries.schema.head": "Schemat metadanych", + "admin.registries.schema.notification.created": "UdaÅ‚o siÄ™ utworzyć schemat metdanych \"{{prefix}}\"", + "admin.registries.schema.notification.deleted.failure": "Nie udaÅ‚o siÄ™ usunąć {{amount}} schematów metadanych", + "admin.registries.schema.notification.deleted.success": "UdaÅ‚o siÄ™ usunąć {{amount}} schematów metadanych", + "admin.registries.schema.notification.edited": "UdaÅ‚o siÄ™ edytować schemat metadanych \"{{prefix}}\"", + "admin.registries.schema.notification.failure": "BÅ‚Ä…d", + "admin.registries.schema.notification.field.created": "UdaÅ‚o siÄ™ utworzyć pole metadanych \"{{field}}\"", + "admin.registries.schema.notification.field.deleted.failure": "Nie udaÅ‚o siÄ™ usunąć {{amount}} pól metadanych", + "admin.registries.schema.notification.field.deleted.success": "UdaÅ‚o siÄ™ usunąć {{amount}} pól metadanych", + "admin.registries.schema.notification.field.edited": "SUdaÅ‚o siÄ™ edytować pole metadanych \"{{field}}\"", + "admin.registries.schema.notification.success": "UdaÅ‚o siÄ™", + "admin.registries.schema.return": "Powrót", + "admin.registries.schema.title": "Rejestr schematów metadanych", + "admin.access-control.epeople.actions.delete": "UsuÅ„ użytkownika", + "admin.access-control.epeople.actions.impersonate": "Personifikuj użytkownika", + "admin.access-control.epeople.actions.reset": "Zresetuj hasÅ‚o", + "admin.access-control.epeople.actions.stop-impersonating": "PrzestaÅ„ personifikować użytkownika", + "admin.access-control.epeople.breadcrumbs": "Użytkownicy", + "admin.access-control.epeople.title": "Użytkownicy", + "admin.access-control.epeople.head": "Użytkownicy", + "admin.access-control.epeople.search.head": "Wyszukaj", + "admin.access-control.epeople.button.see-all": "PrzeglÄ…daj wszystko", + "admin.access-control.epeople.search.scope.metadata": "Metadane", + "admin.access-control.epeople.search.scope.email": "E-mail", + "admin.access-control.epeople.search.button": "Wyszukaj", + "admin.access-control.epeople.search.placeholder": "Wyszukaj użytkownika...", + "admin.access-control.epeople.button.add": "Dodaj użytkownika", + "admin.access-control.epeople.table.id": "ID", + "admin.access-control.epeople.table.name": "Nazwa", + "admin.access-control.epeople.table.email": "E-mail", + "admin.access-control.epeople.table.edit": "Edytuj", + "admin.access-control.epeople.table.edit.buttons.edit": "Edytuj \"{{name}}\"", + "admin.access-control.epeople.table.edit.buttons.edit-disabled": "Brak uprawnieÅ„ do edycji wybranej grupy", + "admin.access-control.epeople.table.edit.buttons.remove": "UsuÅ„ \"{{name}}\"", + "admin.access-control.epeople.no-items": "Brak użytkowników do wyÅ›wietlenia.", + "admin.access-control.epeople.form.create": "Utwórz użytkownika", + "admin.access-control.epeople.form.edit": "Edytuj użytkownika", + "admin.access-control.epeople.form.firstName": "ImiÄ™", + "admin.access-control.epeople.form.lastName": "Nazwisko", + "admin.access-control.epeople.form.email": "E-mail", + "admin.access-control.epeople.form.emailHint": "Adres e-mail musi być poprawny", + "admin.access-control.epeople.form.canLogIn": "Możliwość zalogowania", + "admin.access-control.epeople.form.requireCertificate": "Wymagany certyfikat", + "admin.access-control.epeople.form.return": "Powrót", + "admin.access-control.epeople.form.notification.created.success": "UdaÅ‚o siÄ™ utworzyć użytkownika \"{{name}}\"", + "admin.access-control.epeople.form.notification.created.failure": "Nie udaÅ‚o siÄ™ utworzyć użytkownika \"{{name}}\"", + "admin.access-control.epeople.form.notification.created.failure.emailInUse": "Nie udaÅ‚o siÄ™ utworzyć użytkownika \"{{name}}\", email \"{{email}}\" już w użyciu.", + "admin.access-control.epeople.form.notification.edited.failure.emailInUse": "Nie udaÅ‚o siÄ™ utworzyć użytkownika \"{{name}}\", email \"{{email}}\" już w użyciu.", + "admin.access-control.epeople.form.notification.edited.success": "UdaÅ‚o siÄ™ edytować użytkownika \"{{name}}\"", + "admin.access-control.epeople.form.notification.edited.failure": "Nie udaÅ‚o siÄ™ edytować użytkownika \"{{name}}\"", + "admin.access-control.epeople.form.notification.deleted.success": "UdaÅ‚o siÄ™ usunąć użytkownika \"{{name}}\"", + "admin.access-control.epeople.form.notification.deleted.failure": "Nie udaÅ‚o siÄ™ usunąć użytkownika \"{{name}}\"", + "admin.access-control.epeople.form.groupsEPersonIsMemberOf": "CzÅ‚onek grup:", + "admin.access-control.epeople.form.table.id": "ID", + "admin.access-control.epeople.form.table.name": "Nazwa", + "admin.access-control.epeople.form.table.collectionOrCommunity": "Zbiór/kolekcja", + "admin.access-control.epeople.form.memberOfNoGroups": "Ten użytkownik nie jest czÅ‚onkiem żadnej grupy", + "admin.access-control.epeople.form.goToGroups": "Dodaj do grup", + "admin.access-control.epeople.notification.deleted.failure": "Nie udaÅ‚o siÄ™ usunąć użytkownika: \"{{name}}\"", + "admin.access-control.epeople.notification.deleted.success": "UdaÅ‚o siÄ™ usunąć użytkownika: \"{{name}}\"", + "admin.access-control.groups.title": "Grupy", + "admin.access-control.groups.breadcrumbs": "Grupy", + "admin.access-control.groups.singleGroup.breadcrumbs": "Edytuj grupÄ™", + "admin.access-control.groups.title.singleGroup": "Edytuj grupÄ™", + "admin.access-control.groups.title.addGroup": "Nowa grupa", + "admin.access-control.groups.addGroup.breadcrumbs": "Nowa grupa", + "admin.access-control.groups.head": "Grupy/role", + "admin.access-control.groups.button.add": "Dodaj grupÄ™", + "admin.access-control.groups.search.head": "Szukaj grup", + "admin.access-control.groups.button.see-all": "Przeszukaj wszystko", + "admin.access-control.groups.search.button": "Wyszukaj", + "admin.access-control.groups.search.placeholder": "Wyszukaj grupy...", + "admin.access-control.groups.table.id": "ID", + "admin.access-control.groups.table.name": "Nazwa", + "admin.access-control.groups.table.collectionOrCommunity": "Zbiór/kolekcja", + "admin.access-control.groups.table.members": "CzÅ‚onkowie", + "admin.access-control.groups.table.edit": "Edytuj", + "admin.access-control.groups.table.edit.buttons.edit": "Edytuj \"{{name}}\"", + "admin.access-control.groups.no-items": "Nie znaleziono grup z podanÄ… frazÄ… lub podanym UUID", + "admin.access-control.groups.notification.deleted.success": "UdaÅ‚o siÄ™ usunąć grupÄ™ \"{{name}}\"", + "admin.access-control.groups.notification.deleted.failure.title": "Nie udaÅ‚o siÄ™ usunąć grupy \"{{name}}\"", + "admin.access-control.groups.notification.deleted.failure.content": "Powód: \"{{cause}}\"", + "admin.access-control.groups.form.alert.permanent": "Ta grupa jest staÅ‚a, wiÄ™c nie może być edytowana ani usuniÄ™ta. Nadal możesz dodawać i usuwać czÅ‚onków grupy za pomocÄ… tej strony.", + "admin.access-control.groups.form.alert.workflowGroup": "Ta grupa nie może być edytowana lub usuniÄ™ta, ponieważ odnosi siÄ™ do roli lub bierze udziaÅ‚ w procesie \"{{name}}\" {{comcol}}. Możesz jÄ… usunąć ze strony <a href='{{comcolEditRolesRoute}}'>\"assign roles\"</a> edycji {{comcol}}. Wciąż może dodawać i usuwać czÅ‚onków tej grupy, korzystajÄ…c z tej strony.", + "admin.access-control.groups.form.head.create": "Utwórz grupÄ™", + "admin.access-control.groups.form.head.edit": "Edytuj grupÄ™", + "admin.access-control.groups.form.groupName": "Nazwa grupy", + "admin.access-control.groups.form.groupCommunity": "Zbiór lub kolekcja", + "admin.access-control.groups.form.groupDescription": "Opis", + "admin.access-control.groups.form.notification.created.success": "UdaÅ‚o siÄ™ utworzyć grupÄ™ \"{{name}}\"", + "admin.access-control.groups.form.notification.created.failure": "Nie udaÅ‚o siÄ™ utworzyć grupy \"{{name}}\"", + "admin.access-control.groups.form.notification.created.failure.groupNameInUse": "Nie udaÅ‚o siÄ™ utworzyć grupy o nazwie: \"{{name}}\", upewnij siÄ™, że nazwa nie jest już używana.", + "admin.access-control.groups.form.notification.edited.failure": "Nie udaÅ‚o siÄ™ edytować grupy \"{{name}}\"", + "admin.access-control.groups.form.notification.edited.failure.groupNameInUse": "Nazwa \"{{name}}\" już w użyciu!", + "admin.access-control.groups.form.notification.edited.success": "UdaÅ‚o siÄ™ edytować grupÄ™ \"{{name}}\"", + "admin.access-control.groups.form.actions.delete": "UsuÅ„ grupÄ™", + "admin.access-control.groups.form.delete-group.modal.header": "UsuÅ„ grupÄ™ \"{{ dsoName }}\"", + "admin.access-control.groups.form.delete-group.modal.info": "Czy na pewno chcesz usunąć grupÄ™ \"{{ dsoName }}\"", + "admin.access-control.groups.form.delete-group.modal.cancel": "Anuluj", + "admin.access-control.groups.form.delete-group.modal.confirm": "UsuÅ„", + "admin.access-control.groups.form.notification.deleted.success": "UdaÅ‚o siÄ™ usunąć grupÄ™ \"{{ name }}\"", + "admin.access-control.groups.form.notification.deleted.failure.title": "Nie udaÅ‚o siÄ™ usunąć grupy \"{{ name }}\"", + "admin.access-control.groups.form.notification.deleted.failure.content": "Powód: \"{{ cause }}\"", + "admin.access-control.groups.form.members-list.head": "Użytkownik", + "admin.access-control.groups.form.members-list.search.head": "Dodaj użytkownika", + "admin.access-control.groups.form.members-list.button.see-all": "Pokaż wszystkich", + "admin.access-control.groups.form.members-list.headMembers": "Aktualni czÅ‚onkowie", + "admin.access-control.groups.form.members-list.search.scope.metadata": "Metadane", + "admin.access-control.groups.form.members-list.search.scope.email": "E-mail", + "admin.access-control.groups.form.members-list.search.button": "Wyszukaj", + "admin.access-control.groups.form.members-list.table.id": "ID", + "admin.access-control.groups.form.members-list.table.name": "Nazwa", + "admin.access-control.groups.form.members-list.table.identity": "Tożsamość", + "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.edit": "UsuÅ„ / Dodaj", + "admin.access-control.groups.form.members-list.table.edit.buttons.remove": "UsuÅ„ użytkownika o nazwie \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.success.addMember": "UdaÅ‚o siÄ™ dodać użytkownika o nazwie: \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.failure.addMember": "Nie udaÅ‚o siÄ™ dodać użytkownika o nazwie: \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.success.deleteMember": "UdaÅ‚o siÄ™ usunąć użytkownika o nazwie: \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.failure.deleteMember": "Nie udaÅ‚o siÄ™ usunąć użytkownika o nazwie: \"{{name}}\"", + "admin.access-control.groups.form.members-list.table.edit.buttons.add": "Dodaj użytkownika o nazwie \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.failure.noActiveGroup": "Brak aktywnej grupy, najpierw wpisz nazwÄ™ grupy.", + "admin.access-control.groups.form.members-list.no-members-yet": "Brak użytkowników w grupie, wyszukaj ich i dodaj.", + "admin.access-control.groups.form.members-list.no-items": "Nie znaleziono użytkowników podczas wyszukiwania", + "admin.access-control.groups.form.subgroups-list.notification.failure": "CoÅ› poszÅ‚o nie tak: \"{{cause}}\"", + "admin.access-control.groups.form.subgroups-list.head": "Grupy", + "admin.access-control.groups.form.subgroups-list.search.head": "Dodaj podgrupÄ™", + "admin.access-control.groups.form.subgroups-list.button.see-all": "PrzeglÄ…daj wszystkie", + "admin.access-control.groups.form.subgroups-list.headSubgroups": "Aktualne podgrupy", + "admin.access-control.groups.form.subgroups-list.search.button": "Wyszukaj", + "admin.access-control.groups.form.subgroups-list.table.id": "ID", + "admin.access-control.groups.form.subgroups-list.table.name": "Nazwa", + "admin.access-control.groups.form.subgroups-list.table.collectionOrCommunity": "Zbiór/kolekcja", + "admin.access-control.groups.form.subgroups-list.table.edit": "UsuÅ„ / Dodaj", + "admin.access-control.groups.form.subgroups-list.table.edit.buttons.remove": "UsuÅ„ podgrupÄ™ o nazwie \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.table.edit.buttons.add": "Dodaj podgrupÄ™ o nazwie \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.table.edit.currentGroup": "Aktualna grupa", + "admin.access-control.groups.form.subgroups-list.notification.success.addSubgroup": "UdaÅ‚o siÄ™ dodać podgrupÄ™: \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.notification.failure.addSubgroup": "Nie udaÅ‚o siÄ™ dodać podgrupy: \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.notification.success.deleteSubgroup": "UdaÅ‚o siÄ™ usunąć podgrupÄ™: \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.notification.failure.deleteSubgroup": "Nie udaÅ‚o siÄ™ usunąć podgrupy: \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.notification.failure.noActiveGroup": "Brak aktywnej grupy, najpierw wpisz nazwÄ™ grupy.", + "admin.access-control.groups.form.subgroups-list.notification.failure.subgroupToAddIsActiveGroup": "Ta grupa jest już stworzona i nie może zostać dodana pononwie.", + "admin.access-control.groups.form.subgroups-list.no-items": "Nie znaleziono grup z tÄ… nazwÄ… lub UUID", + "admin.access-control.groups.form.subgroups-list.no-subgroups-yet": "Brak podgrup w grupie.", + "admin.access-control.groups.form.return": "Powrót", + "admin.search.breadcrumbs": "Wyszukiwanie administracyjne", + "admin.search.collection.edit": "Edytuj", + "admin.search.community.edit": "Edytuj", + "admin.search.item.delete": "UsuÅ„", + "admin.search.item.edit": "Edytuj", + "admin.search.item.make-private": "Ukryj", + "admin.search.item.make-public": "Upublicznij", + "admin.search.item.move": "PrzenieÅ›", + "admin.search.item.reinstate": "ZmieÅ„ instancjÄ™", + "admin.search.item.withdraw": "Wycofane", + "admin.search.title": "Wyszukiwanie administracyjne", + "administrativeView.search.results.head": "Wyszukiwanie administracyjne", + "admin.workflow.breadcrumbs": "ZarzÄ…dzaj procesem", + "admin.workflow.title": "ZarzÄ…dzaj procesem", + "admin.workflow.item.workflow": "Proces", + "admin.workflow.item.delete": "UsuÅ„", + "admin.workflow.item.send-back": "OdeÅ›lij z powrotem", + "admin.metadata-import.breadcrumbs": "Importuj metadane", + "admin.metadata-import.title": "Importuj metadane", + "admin.metadata-import.page.header": "Importuj metadane", + "admin.metadata-import.page.help": "Tutaj możesz zaimportować pliki CSV, w których znajdujÄ… siÄ™ metadane do operacji wsadowej. Zaimportuj je poprzez upuszczenie ich lub znajdź je na swoim komputerze", + "admin.metadata-import.page.dropMsg": "Upuść plik w formacie CSV", + "admin.metadata-import.page.dropMsgReplace": "Upuść, aby zastÄ…pić metadane w formacie CSV do importu", + "admin.metadata-import.page.button.return": "Powrót", + "admin.metadata-import.page.button.proceed": "Zastosuj", + "admin.metadata-import.page.error.addFile": "Najpierw wybierz plik!", + "auth.errors.invalid-user": "NiewÅ‚aÅ›ciwy adres e-mail lub hasÅ‚o.", + "auth.messages.expired": "Twoja sesja wygasÅ‚a. Zaloguj siÄ™ ponownie.", + "auth.messages.token-refresh-failed": "OdÅ›wieżenie sesji nie powiodÅ‚o siÄ™. Zaloguj siÄ™ ponownie.", + "bitstream.download.page": "Pobieranie {{bitstream}}...", + "bitstream.download.page.back": "Powrót", + "bitstream.edit.authorizations.link": "Edytuj polityki plików", + "bitstream.edit.authorizations.title": "Edytuj polityki plików", + "bitstream.edit.return": "Powrót", + "bitstream.edit.bitstream": "Pliki: ", + "bitstream.edit.form.description.hint": "Opcjonalnie wprowadź krótki opis pliku, np.: \"<i>Główna część artykuÅ‚u</i>\" lub \"<i>Dane z eksperymentu</i>\".", + "bitstream.edit.form.description.label": "Opis", + "bitstream.edit.form.embargo.hint": "Pierwszy dzieÅ„, od kiedy dostÄ™p zostanie udzielony. <b>Tej daty nie może być edytować w tym formularzu.</b> Aby wybrać okres embarga czasowego, wybierz <i>Status pozycji</i> tab, kliknij <i>Autoryzacje...</i>, stwórz lub edytuj plik <i>PRZEYCZTAJ</i> zasady i wybierz okreÅ›lonÄ… <i>DatÄ™ poczÄ…tkowÄ…</i>.", + "bitstream.edit.form.embargo.label": "Embargo do wybranej daty", + "bitstream.edit.form.fileName.hint": "Zmiana nazwy pliku dla strumienia bitów. Zauważ, że zmieni to wyÅ›wietlany adres URL strumienia bitów, ale stare linki nadal bÄ™dÄ… dziaÅ‚ać, o ile nie zmieni siÄ™ identyfikator sekwencji.", + "bitstream.edit.form.fileName.label": "Nazwa pliku", + "bitstream.edit.form.newFormat.label": "Opisz nowy format", + "bitstream.edit.form.newFormat.hint": "Program, którego użyto do stworzenia pliku i numer wersji (np.: \"<i>ACMESoft SuperApp version 1.5</i>\").", + "bitstream.edit.form.primaryBitstream.label": "Pierwotny plik", + "bitstream.edit.form.selectedFormat.hint": "JeÅ›li formatu nie ma na powyższej liÅ›cie, <b>wybierz \"format not in list\" above</b> i opisz jako \"Describe new format\".", + "bitstream.edit.form.selectedFormat.label": "Wybrany format", + "bitstream.edit.form.selectedFormat.unknown": "Tego formatu nie ma na liÅ›cie", + "bitstream.edit.notifications.error.format.title": "WystÄ…piÅ‚ bÅ‚Ä…d podczas zapisu formatu pliku", + "bitstream.edit.notifications.saved.content": "Zmiany w pliku zostaÅ‚y zapisane.", + "bitstream.edit.notifications.saved.title": "Plik zostaÅ‚ zapisany", + "bitstream.edit.title": "Edytuj plik", + "bitstream-request-a-copy.alert.canDownload1": "Masz już dostÄ™p do tego pliki. JeÅ›li chcesz go pobrać, kliknij ", + "bitstream-request-a-copy.alert.canDownload2": "tutaj", + "bitstream-request-a-copy.header": "WystÄ…p o kopiÄ™ wybranego pliku", + "bitstream-request-a-copy.intro": "Wpisz nastÄ™pujÄ…ce informacje, aby wystÄ…pić o kopiÄ™ tej pozycji: ", + "bitstream-request-a-copy.intro.bitstream.one": "WystÄ…pienie o dostÄ™p do nastÄ™pujÄ…cych plików: ", + "bitstream-request-a-copy.intro.bitstream.all": "WystÄ…pienie o dostÄ™p do wszystkich plików. ", + "bitstream-request-a-copy.name.label": "ImiÄ™ *", + "bitstream-request-a-copy.name.error": "ImiÄ™ jest wymagane", + "bitstream-request-a-copy.email.label": "Adres e-mail *", + "bitstream-request-a-copy.email.hint": "Plik zostanie przesÅ‚any na podany adres e-mail", + "bitstream-request-a-copy.email.error": "ProszÄ™ wprowadzić prawidÅ‚owy adres e-mail", + "bitstream-request-a-copy.allfiles.label": "Pliki", + "bitstream-request-a-copy.files-all-false.label": "Tylko plik, dla którego wystÄ…piono o dostÄ™p", + "bitstream-request-a-copy.files-all-true.label": "Wszystkie pliki (w tej pozycji) z ograniczonym dostÄ™pem", + "bitstream-request-a-copy.message.label": "Wiadomość", + "bitstream-request-a-copy.return": "Powrót", + "bitstream-request-a-copy.submit": "WystÄ…p o kopiÄ™", + "bitstream-request-a-copy.submit.success": "WystÄ…pienie o dostÄ™p do pliku zostaÅ‚o przesÅ‚ane.", + "bitstream-request-a-copy.submit.error": "CoÅ› poszÅ‚o nie tak podczas wysyÅ‚ania wystÄ…pienia o dostÄ™p do pliku", + "browse.comcol.by.author": "wg autorów", + "browse.comcol.by.dateissued": "wg daty wydania", + "browse.comcol.by.subject": "wg tematu", + "browse.comcol.by.title": "wg tytuÅ‚u", + "browse.comcol.head": "PrzeglÄ…daj", + "browse.empty": "Brak rekordów do wyÅ›wietlenia.", + "browse.metadata.author": "Autor", + "browse.metadata.dateissued": "Data wydania", + "browse.metadata.subject": "Temat", + "browse.metadata.title": "TytuÅ‚", + "browse.metadata.author.breadcrumbs": "PrzeglÄ…daj wg autorów", + "browse.metadata.dateissued.breadcrumbs": "PrzeglÄ…daj wg daty wydania", + "browse.metadata.subject.breadcrumbs": "PrzeglÄ…daj wg tematów", + "browse.metadata.title.breadcrumbs": "PrzeglÄ…daj wg tytułów", + "browse.startsWith.choose_start": "(Wybierz start)", + "browse.startsWith.choose_year": "(Wybierz rok)", + "browse.startsWith.choose_year.label": "Wybierz rok wydania", + "browse.startsWith.jump": "Przejdź do miejsca w indeksie:", + "browse.startsWith.months.april": "kwiecieÅ„", + "browse.startsWith.months.august": "sierpieÅ„", + "browse.startsWith.months.december": "grudzieÅ„", + "browse.startsWith.months.february": "luty", + "browse.startsWith.months.january": "styczeÅ„", + "browse.startsWith.months.july": "lipiec", + "browse.startsWith.months.june": "czerwiec", + "browse.startsWith.months.march": "marzec", + "browse.startsWith.months.may": "maj", + "browse.startsWith.months.none": "(wybierz miesiÄ…c)", + "browse.startsWith.months.none.label": "Wybierz miesiÄ…c wydania", + "browse.startsWith.months.november": "listopad", + "browse.startsWith.months.october": "październik", + "browse.startsWith.months.september": "wrzesieÅ„", + "browse.startsWith.submit": "Zastosuj", + "browse.startsWith.type_date": "Lub wybierz datÄ™ (rok-miesiÄ…c) i kliknij 'PrzeglÄ…daj'", + "browse.startsWith.type_date.label": "Lub wybierz datÄ™ (rok-miesiÄ…c) i kliknij przycisk przeglÄ…dania", + "browse.startsWith.type_text": "Wpisz kilka pierwszych liter i kliknij przycisk przeglÄ…dania", + "browse.title": "PrzeglÄ…daj {{ collection }} wg {{ field }} {{ value }}", + "chips.remove": "UsuÅ„ chip", + "collection.create.head": "Utwórz kolekcjÄ™", + "collection.create.notifications.success": "UdaÅ‚o siÄ™ utworzyć kolekcjÄ™", + "collection.create.sub-head": "UdaÅ‚o siÄ™ utworzyć kolekcjÄ™ dla zbioru {{ parent }}", + "collection.curate.header": "Administrator kolekcji: {{collection}}", + "collection.delete.cancel": "Anuluj", + "collection.delete.confirm": "Zatwierdź", + "collection.delete.processing": "Usuwanie", + "collection.delete.head": "UsuÅ„ kolekcjÄ™", + "collection.delete.notification.fail": "Kolekcja nie może być usuniÄ™t", + "collection.delete.notification.success": "UdaÅ‚o siÄ™ usunąć kolekcjÄ™", + "collection.delete.text": "Czy na pewno chcesz usunąć kolekcjÄ™ \"{{ dso }}\"", + "collection.edit.delete": "UsuÅ„ kolekcjÄ™", + "collection.edit.head": "Edytuj kolekcjÄ™", + "collection.edit.breadcrumbs": "Edytuj kolekcjÄ™", + "collection.edit.tabs.mapper.head": "Item Mapper", + "collection.edit.tabs.item-mapper.title": "Edytuj kolekcjÄ™ - Item Mapper", + "collection.edit.item-mapper.cancel": "Anuluj", + "collection.edit.item-mapper.collection": "Kolekcja: \"<b>{{name}}</b>\"", + "collection.edit.item-mapper.confirm": "Mapuj wybrane elementy", + "collection.edit.item-mapper.description": "To jest narzÄ™dzie mapowania elementów, które pozwala administratorom kolekcji mapować elementy z innych kolekcji do tej kolekcji. Możesz wyszukiwać elementy z innych kolekcji i mapować je lub przeglÄ…dać listÄ™ aktualnie zmapowanych elementów.", + "collection.edit.item-mapper.head": "Item Mapper - Mapuj pozycje z innych kolekcji", + "collection.edit.item-mapper.no-search": "Wpisz co chcesz wyszukać", + "collection.edit.item-mapper.notifications.map.error.content": "WystÄ…piÅ‚y bÅ‚Ä™dy podczas mapowania {{amount}} pozycji.", + "collection.edit.item-mapper.notifications.map.error.head": "Mapowanie bÅ‚Ä™dów", + "collection.edit.item-mapper.notifications.map.success.content": "UdaÅ‚o siÄ™ zmapować {{amount}} pozycji.", + "collection.edit.item-mapper.notifications.map.success.head": "Mapowanie zakoÅ„czone", + "collection.edit.item-mapper.notifications.unmap.error.content": "BÅ‚Ä™dy wystÄ…piÅ‚y podczas usuwania mapowania z {{amount}} elementów.", + "collection.edit.item-mapper.notifications.unmap.error.head": "UsuÅ„ bÅ‚Ä™dy mapowania", + "collection.edit.item-mapper.notifications.unmap.success.content": "UdaÅ‚o siÄ™ usunąć bÅ‚Ä™dy mapowania z {{amount}} elementów.", + "collection.edit.item-mapper.notifications.unmap.success.head": "Usuwanie mapowania zakoÅ„czone", + "collection.edit.item-mapper.remove": "UsuÅ„ wybrane mapowanie elementów", + "collection.edit.item-mapper.search-form.placeholder": "Wyszukaj pozycje...", + "collection.edit.item-mapper.tabs.browse": "Wyszukaj mapowane elementy", + "collection.edit.item-mapper.tabs.map": "Mapuj nowe elementy", + "collection.edit.logo.delete.title": "UsuÅ„", + "collection.edit.logo.delete-undo.title": "Cofnij usuniÄ™cie", + "collection.edit.logo.label": "Logo kolekcji", + "collection.edit.logo.notifications.add.error": "PrzesyÅ‚anie logo kolekcji nie powiodÅ‚o siÄ™. ProszÄ™ zweryfikować zawartość przed ponownÄ… ", + "collection.edit.logo.notifications.add.success": "UdaÅ‚o siÄ™ przesÅ‚ać logo kolekcji.", + "collection.edit.logo.notifications.delete.success.title": "Logo usuniÄ™te", + "collection.edit.logo.notifications.delete.success.content": "UdaÅ‚o siÄ™ usunąć logo kolekcji", + "collection.edit.logo.notifications.delete.error.title": "BÅ‚Ä…d podczas usuwania loga", + "collection.edit.logo.upload": "Upuść logo kolekcji, aby je wgrać", + "collection.edit.notifications.success": "UdaÅ‚o siÄ™ edytować kolekcjÄ™", + "collection.edit.return": "Powrót", + "collection.edit.tabs.curate.head": "Kurator", + "collection.edit.tabs.curate.title": "Edytowanie kolekcji - kurator", + "collection.edit.tabs.authorizations.head": "Autoryzacje", + "collection.edit.tabs.authorizations.title": "Edytowanie kolekcji - autoryzacje", + "collection.edit.tabs.metadata.head": "Edytuj metadane", + "collection.edit.tabs.metadata.title": "Edytowanie kolekcji - metadane", + "collection.edit.tabs.roles.head": "Przypisz role", + "collection.edit.tabs.roles.title": "Edytowanie kolekcji - role", + "collection.edit.tabs.source.external": "Ta kolekcja pobiera swojÄ… zawartość z zewnÄ™trznego źródÅ‚a", + "collection.edit.tabs.source.form.errors.oaiSource.required": "Musisz wskazać id docelowej kolekcji.", + "collection.edit.tabs.source.form.harvestType": "Odczytywanie zawartoÅ›ci", + "collection.edit.tabs.source.form.head": "Skonfiguruj zewnÄ™trzne źródÅ‚o", + "collection.edit.tabs.source.form.metadataConfigId": "Format metadanych", + "collection.edit.tabs.source.form.oaiSetId": "OkreÅ›lony zestaw ID OAI", + "collection.edit.tabs.source.form.oaiSource": "Dostawca OAI", + "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_BITSTREAMS": "Odczytaj metadane i pliki (wymaga wsparcia ORE)", + "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_REF": "Odczytaj metadane i bibliografiÄ™ (wymaga wsparcia ORE)", + "collection.edit.tabs.source.form.options.harvestType.METADATA_ONLY": "Odczytaj tylko metadane", + "collection.edit.tabs.source.head": "ŹródÅ‚o treÅ›ci", + "collection.edit.tabs.source.notifications.discarded.content": "Twoje zmiany zostaÅ‚y odrzucone. Aby odzyskać swoje zmiany wybierz 'Powrót'", + "collection.edit.tabs.source.notifications.discarded.title": "Zmiany odrzucone", + "collection.edit.tabs.source.notifications.invalid.content": "Zmiany nie zostaÅ‚y zapisane. Sprawdź czy wszystkie pola sÄ… wypeÅ‚nione poprawne przed zapisem.", + "collection.edit.tabs.source.notifications.invalid.title": "NieprawidÅ‚owe metadane", + "collection.edit.tabs.source.notifications.saved.content": "Zmiany wprowadzone w kolekcji zostaÅ‚y zapisane.", + "collection.edit.tabs.source.notifications.saved.title": "ŹródÅ‚o treÅ›ci zapisane", + "collection.edit.tabs.source.title": "Collection Edit - ŹródÅ‚o treÅ›ci", + "collection.edit.template.add-button": "Dodaj", + "collection.edit.template.breadcrumbs": "Szablon pozycji", + "collection.edit.template.cancel": "Anuluj", + "collection.edit.template.delete-button": "UsuÅ„", + "collection.edit.template.edit-button": "Edytuj", + "collection.edit.template.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas odzyskiwania szablonu pozycji", + "collection.edit.template.head": "Edytuj szablon dla kolekcji \"{{ collection }}\"", + "collection.edit.template.label": "Szablon pozycji", + "collection.edit.template.loading": "Å‚adowanie szablonu pozycji...", + "collection.edit.template.notifications.delete.error": "Nie udaÅ‚o siÄ™ usunąć szablonu pozycji", + "collection.edit.template.notifications.delete.success": "UdaÅ‚o siÄ™ usunąć szablon pozycji", + "collection.edit.template.title": "Edytuj szablon pozycji", + "collection.form.abstract": "Opis skrócony", + "collection.form.description": "Tekst powitalny (HTML)", + "collection.form.errors.title.required": "Wpisz nazwÄ™ kolekcji", + "collection.form.license": "Licencja", + "collection.form.provenance": "Pochodzenie", + "collection.form.rights": "Tekst praw autorskich (HTML)", + "collection.form.tableofcontents": "WiadomoÅ›ci (HTML)", + "collection.form.title": "Nazwa", + "collection.form.entityType": "Typ danych", + "collection.page.browse.recent.head": "Ostatnie zgÅ‚oszenia", + "collection.page.browse.recent.empty": "Brak pozycji do wyÅ›wietlenia", + "collection.page.edit": "Edytuj kolekcjÄ™", + "collection.page.handle": "StaÅ‚y URI dla kolekcji", + "collection.page.license": "Licencja", + "collection.page.news": "WiadomoÅ›ci", + "collection.select.confirm": "Zaakceptuj zaznaczone", + "collection.select.empty": "Brak kolekcji do wyÅ›wietlenia", + "collection.select.table.title": "TytuÅ‚", + "collection.source.controls.head": "Kontrolki odczytywania", + "collection.source.controls.test.submit.error": "CoÅ› poszÅ‚o nie tak podczas rozpoczynania testów ustawieÅ„", + "collection.source.controls.test.failed": "Scenariusz testowy ustawieÅ„ nie zadziaÅ‚aÅ‚", + "collection.source.controls.test.completed": "Scenariusz testowy ustawieÅ„ zostaÅ‚ zakoÅ„czony", + "collection.source.controls.test.submit": "Konfiguracja testowa", + "collection.source.controls.test.running": "Testowanie konfiguracji...", + "collection.source.controls.import.submit.success": "Import zostaÅ‚ rozpoczÄ™ty", + "collection.source.controls.import.submit.error": "CoÅ› poszÅ‚o nie tak podczas rozpoczynania importu", + "collection.source.controls.import.submit": "Importuj teraz", + "collection.source.controls.import.running": "Importowanie...", + "collection.source.controls.import.failed": "WystÄ…piÅ‚ bÅ‚Ä…d podczas importu", + "collection.source.controls.import.completed": "Import zakoÅ„czony", + "collection.source.controls.reset.submit.success": "Reset ustawieÅ„ i powtórny import zostaÅ‚y rozpoczÄ™te poprawnie", + "collection.source.controls.reset.submit.error": "CoÅ› poszÅ‚o nie tak podczas rozpoczynania zresetowanego, powtórnego importu", + "collection.source.controls.reset.failed": "WystÄ…piÅ‚ bÅ‚Ä…d podczas resetowania ustawieÅ„ i ponownego importu", + "collection.source.controls.reset.completed": "Reset ustawieÅ„ i powtórny import zostaÅ‚y zakoÅ„czone", + "collection.source.controls.reset.submit": "Resetowanie i powtórny import", + "collection.source.controls.reset.running": "Resetowanie i powtórny import...", + "collection.source.controls.harvest.status": "Status odczytywania:", + "collection.source.controls.harvest.start": "Czas rozpoczÄ™cia odczytywania:", + "collection.source.controls.harvest.last": "Czas ostatniego odczytywania:", + "collection.source.controls.harvest.message": "Informacje nt. odczytywania:", + "collection.source.controls.harvest.no-information": "bd.", + "collection.source.update.notifications.error.content": "Te ustawienia zostaÅ‚y przetestowane i nie dziaÅ‚ajÄ….", + "collection.source.update.notifications.error.title": "BÅ‚Ä…d serwera", + "communityList.breadcrumbs": "Lista zbiorów", + "communityList.tabTitle": "Lista zbiorów", + "communityList.title": "Lista zbiorów", + "communityList.showMore": "Pokaż wiÄ™cej", + "community.create.head": "Utwórz zbiór", + "community.create.notifications.success": "UdaÅ‚o siÄ™ utworzyć zbiór", + "community.create.sub-head": "Utwórz podzbiór dla zbioru {{ parent }}", + "community.curate.header": "ZarzÄ…dzaj zbiorem: {{community}}", + "community.delete.cancel": "Anuluj", + "community.delete.confirm": "Potwierdź", + "community.delete.processing": "Usuwanie...", + "community.delete.head": "UsuÅ„ zbiór", + "community.delete.notification.fail": "Zbiór nie może być usuniÄ™ty", + "community.delete.notification.success": "UdaÅ‚o siÄ™ usunąć zbiór", + "community.delete.text": "Czy na pewno chcesz usunąć zbiór \"{{ dso }}\"", + "community.edit.delete": "UsuÅ„ ten zbiór", + "community.edit.head": "Edytuj zbiór", + "community.edit.breadcrumbs": "Edytuj zbiór", + "community.edit.logo.delete.title": "UsuÅ„ logo", + "community.edit.logo.delete-undo.title": "Cofnij usuniÄ™cie", + "community.edit.logo.label": "Logo zbioru", + "community.edit.logo.notifications.add.error": "PrzesÅ‚anie loga zbioru nie powiodÅ‚o siÄ™. Sprawdź czy wszystkie parametry sÄ… odpowiednie przed próbÄ… ponownego przesÅ‚ania.", + "community.edit.logo.notifications.add.success": "PrzesÅ‚anie loga powiodÅ‚o siÄ™.", + "community.edit.logo.notifications.delete.success.title": "Logo usuniÄ™te", + "community.edit.logo.notifications.delete.success.content": "UsuniÄ™cie loga zbioru powiodÅ‚o siÄ™", + "community.edit.logo.notifications.delete.error.title": "BÅ‚Ä…d podczas usuwania loga", + "community.edit.logo.upload": "Upuść logo zbioru, aby je przesÅ‚ać", + "community.edit.notifications.success": "UdaÅ‚o siÄ™ edytować zbiór", + "community.edit.notifications.unauthorized": "Nie masz uprawnieÅ„, aby wykonać te zmiany", + "community.edit.notifications.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas edycji zbioru", + "community.edit.return": "Cofnij", + "community.edit.tabs.curate.head": "Administruj", + "community.edit.tabs.curate.title": "Edycja zbioru - administrator", + "community.edit.tabs.metadata.head": "Edytuj metadane", + "community.edit.tabs.metadata.title": "Edycja zbioru - metadane", + "community.edit.tabs.roles.head": "Przypisz role", + "community.edit.tabs.roles.title": "Edycja zbioru - role", + "community.edit.tabs.authorizations.head": "Uprawnienia", + "community.edit.tabs.authorizations.title": "Edycja zbioru - uprawnienia", + "community.listelement.badge": "Zbiór", + "comcol-role.edit.no-group": "Brak", + "comcol-role.edit.create": "Utwórz", + "comcol-role.edit.restrict": "Ogranicz", + "comcol-role.edit.delete": "UsuÅ„", + "comcol-role.edit.community-admin.name": "Administratorzy", + "comcol-role.edit.collection-admin.name": "Administratorzy", + "comcol-role.edit.community-admin.description": "Administratorzy zbioru mogÄ… tworzyć podzbiory lub kolekcje i zarzÄ…dzać nimi lub przydzielać zarzÄ…dzanie tymi podzbiorami lub kolekcji innym użytkownikom. Ponadto decydujÄ…, kto może przesyÅ‚ać elementy do dowolnych podkolekcji, edytować metadane pozycji (po przesÅ‚aniu) i dodawać (mapować) istniejÄ…ce pozycje z innych kolekcji (z zastrzeżeniem autoryzacji).", + "comcol-role.edit.collection-admin.description": "Administratorzy kolekcji decydujÄ… o tym, kto może przesyÅ‚ać pozycje do kolekcji, edytować metadane pozycji (po ich przesÅ‚aniu) oraz dodawać (mapować) istniejÄ…ce elementy z innych kolekcji do tej kolekcji (z zastrzeżeniem uprawnieÅ„ dla danej kolekcji).", + "comcol-role.edit.submitters.name": "ZgÅ‚aszajÄ…cy", + "comcol-role.edit.submitters.description": "Użytkownicy i grupy, którzy majÄ… uprawnienia do przesyÅ‚ania nowych pozycji do tej kolekcji.", + "comcol-role.edit.item_read.name": "DomyÅ›lny dostÄ™p do odczytu pozycji", + "comcol-role.edit.item_read.description": "Użytkownicy i grupy, które mogÄ… odczytywać nowe pozycje zgÅ‚oszone do tej kolekcji. Zmiany w tej roli nie dziaÅ‚ajÄ… wstecz. IstniejÄ…ce pozycje w systemie bÄ™dÄ… nadal widoczne dla osób, które miaÅ‚y dostÄ™p do odczytu w momencie ich dodania.", + "comcol-role.edit.item_read.anonymous-group": "DomyÅ›lny odczyt dla nowych pozycji jest obecnie ustawiony na Anonimowy.", + "comcol-role.edit.bitstream_read.name": "DomyÅ›lny dostÄ™p do oczytu plików", + "comcol-role.edit.bitstream_read.description": "Administratorzy zbiorów mogÄ… tworzyć podzbiory lub kolekcje, a także zarzÄ…dzać nimi. Ponadto decydujÄ… o tym, kto może przesyÅ‚ać elementy do podkolekcji, edytować metadane pozycji (po ich przesÅ‚aniu) oraz dodawać (mapować) istniejÄ…ce pozycje z innych kolekcji (pod warunkiem posiadania odpowiednich uprawnieÅ„).", + "comcol-role.edit.bitstream_read.anonymous-group": "DomyÅ›lny status odczytu dla nowych plików to Anonimowy.", + "comcol-role.edit.editor.name": "Redaktorzy", + "comcol-role.edit.editor.description": "Redaktorzy mogÄ… edytować metadane nowych pozycji, a nastÄ™pnie akceptować je lub odrzucać.", + "comcol-role.edit.finaleditor.name": "Redaktorzy koÅ„cowi", + "comcol-role.edit.finaleditor.description": "Redaktorzy koÅ„cowi mogÄ… edytować metadane nowych pozycji, ale nie mogÄ™ odrzucać pozycji.", + "comcol-role.edit.reviewer.name": "Recenzenci", + "comcol-role.edit.reviewer.description": "Recenzenci mogÄ… akceptować lub odrzucać nowe pozycje, ale nie mogÄ™ edytować ich metadanych.", + "community.form.abstract": "Opis skrócony", + "community.form.description": "WstÄ™p (HTML)", + "community.form.errors.title.required": "Wprowadź nazwÄ™ zbioru", + "community.form.rights": "Prawa autoskie (HTML)", + "community.form.tableofcontents": "WiadomoÅ›ci (HTML)", + "community.form.title": "Nazwa", + "community.page.edit": "Edytuj ten zbiór", + "community.page.handle": "StaÅ‚y URI zbioru", + "community.page.license": "Licencja", + "community.page.news": "WiadomoÅ›ci", + "community.all-lists.head": "Podzbiory i kolekcje", + "community.sub-collection-list.head": "Kolekcje w tym zbiorze", + "community.sub-community-list.head": "Kolekcje w tym zbiorze", + "cookies.consent.accept-all": "Zaakceptuj wszystko", + "cookies.consent.accept-selected": "Zaakceptuj wybrane", + "cookies.consent.app.opt-out.description": "Aplikacja jest domyÅ›lnie wÅ‚Ä…czona (możesz jÄ… wyÅ‚Ä…czyć)", + "cookies.consent.app.opt-out.title": "(możesz jÄ… wyÅ‚aczyć)", + "cookies.consent.app.purpose": "cel", + "cookies.consent.app.required.description": "Ta aplikacja jest zawsze wymagana", + "cookies.consent.app.required.title": "(zawsze wymagana)", + "cookies.consent.update": "Od ostatniej wizyty zostaÅ‚y wprowadzone zmiany. Zweryfikuj swoje zgody.", + "cookies.consent.close": "Zamknij", + "cookies.consent.decline": "Odrzuć", + "cookies.consent.content-notice.description": "Zbieramy i przetwarzamy Twoje dane do nastÄ™pujÄ…cych celów: <strong>weryfikacja, preferencje, zgody i statystyka</strong>. <br/> JeÅ›li chcesz siÄ™ dowiedzieć wiÄ™cej, przycztaj naszÄ… {privacyPolicy}.", + "cookies.consent.content-notice.learnMore": "Dostosuj", + "cookies.consent.content-modal.description": "Tutaj sÄ… wyÅ›wietlane informacje, które zbieramy o Tobie. Możesz je dostosować wedÅ‚ug swojego uznania.", + "cookies.consent.content-modal.privacy-policy.name": "polityka prywatnoÅ›ci", + "cookies.consent.content-modal.privacy-policy.text": "Aby dowiedzieć siÄ™ wiÄ™cej przeczytaj naszÄ… {privacyPolicy}.", + "cookies.consent.content-modal.title": "Informacje, które zbieramy", + "cookies.consent.app.title.authentication": "Logowanie", + "cookies.consent.app.description.authentication": "Musisz siÄ™ zalogować", + "cookies.consent.app.title.preferences": "Preferencje", + "cookies.consent.app.description.preferences": "Wymagane, aby zapisać Twoje preferencje", + "cookies.consent.app.title.acknowledgement": "Zgody", + "cookies.consent.app.description.acknowledgement": "Wymagane, aby zapisać Twoje preferencje", + "cookies.consent.app.title.google-analytics": "Google Analytics", + "cookies.consent.app.description.google-analytics": "Pozwól na Å›ledzenie do celów statystycznych", + "cookies.consent.purpose.functional": "Funkcjonalne", + "cookies.consent.purpose.statistical": "Statystyczne", + "curation-task.task.checklinks.label": "Sprawdź odnoÅ›niki w metadanych", + "curation-task.task.noop.label": "NOOP", + "curation-task.task.profileformats.label": "Profil formatów plików", + "curation-task.task.requiredmetadata.label": "Sprawdź poprawność wymaganych metadanych", + "curation-task.task.translate.label": "Microsoft Translator", + "curation-task.task.vscan.label": "Skan antywirusowy", + "curation.form.task-select.label": "Zadanie:", + "curation.form.submit": "Start", + "curation.form.submit.success.head": "UdaÅ‚o siÄ™ rozpocząć zadanie administratora", + "curation.form.submit.success.content": "Zostaniesz przeniesiony na stronÄ™ procesu.", + "curation.form.submit.error.head": "Nie udaÅ‚o siÄ™ siÄ™ zakoÅ„czyć zadania administratora", + "curation.form.submit.error.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas rozpoczynania zadania administracyjnego.", + "curation.form.handle.label": "Automatyzacja:", + "curation.form.handle.hint": "Wskazówka: Wpisz [prefix swojego identyfikatora]/0, aby zautomatyzować zadanie (nie wszystkie zadania mogÄ… wspierać tÄ™ funkcjÄ™)", + "deny-request-copy.email.message": "Drogi użytkowniku {{ recipientName }},\nW odpowiedzi na PaÅ„stwa zapytanie, przykro mi poinformować, że to niemożliwe, aby przestać kopiÄ™ pliku, o który PaÅ„stwo prosili: \"{{ itemUrl }}\" ({{ itemName }}), którego jestem autorem.\n\nPozdrawiam serdecznie,\n{{ authorName }} <{{ authorEmail }}>", + "deny-request-copy.email.subject": "WystÄ…p o kopiÄ™ dokumentu", + "deny-request-copy.error": "WystÄ…piÅ‚ bÅ‚Ä…d", + "deny-request-copy.header": "Odrzuć proÅ›bÄ™ o przesÅ‚anie kopii dokumentu", + "deny-request-copy.intro": "Ta wiadomość zostanie przesÅ‚ana do osoby, która wystÄ…piÅ‚a o dostÄ™p", + "deny-request-copy.success": "Z powodzeniem odrzucono proÅ›bÄ™ o udostÄ™pnienie pozycji", + "dso.name.untitled": "Brak tytuÅ‚u", + "dso-selector.claim.item.head": "Wskazówki profilu", + "dso-selector.claim.item.body": "IstniejÄ… profile, które mogÄ… odnosić siÄ™ do Ciebie. JeÅ›li, któryÅ› z tych profilów jest Twój, wybierz go i przejdź do szczegółów, z opcji wybierz opcjÄ™ przypisania profilu. W innym przypadku możesz utworzyć nowy profil z szablonu, wybierajÄ…c przycisk poniżej.", + "dso-selector.claim.item.create-from-scratch": "Utwórz nowy", + "dso-selector.claim.item.not-mine-label": "Å»aden nie jest mój", + "dso-selector.create.collection.head": "Nowa kolekcja", + "dso-selector.create.collection.sub-level": "Utwórz nowÄ… kolekcjÄ™ w", + "dso-selector.create.community.head": "Nowy zbiór", + "dso-selector.create.community.sub-level": "Utwórz nowy zbiór", + "dso-selector.create.community.top-level": "Utwórz nowy nadrzÄ™dny zbiór", + "dso-selector.create.item.head": "Nowa pozycja", + "dso-selector.create.item.sub-level": "Utwórz nowÄ… pozycjÄ™ w", + "dso-selector.create.submission.head": "Nowe zgÅ‚oszenie", + "dso-selector.edit.collection.head": "Edytuj kolekcjÄ™", + "dso-selector.edit.community.head": "Edytuj zbiór", + "dso-selector.edit.item.head": "Edytuj pozycjÄ™", + "dso-selector.error.title": "WystÄ…piÅ‚ bÅ‚Ä…d podczas wyszukiwania typu {{ type }}", + "dso-selector.export-metadata.dspaceobject.head": "Eksportuj metadane z", + "dso-selector.no-results": "Nie znaleziono {{ type }}", + "dso-selector.placeholder": "Wyszukaj {{ type }}", + "dso-selector.select.collection.head": "Wybierz kolekcjÄ™", + "dso-selector.set-scope.community.head": "Wybierz wyszukiwanie zakresu", + "dso-selector.set-scope.community.button": "Wyszukaj w caÅ‚ym DSpace", + "dso-selector.set-scope.community.input-header": "Wyszukaj zbiór lub kolekcjÄ™", + "confirmation-modal.export-metadata.header": "Eksportuj metadane z {{ dsoName }}", + "confirmation-modal.export-metadata.info": "Czy na pewno chcesz eksportować metadane z {{ dsoName }}", + "confirmation-modal.export-metadata.cancel": "Anuluj", + "confirmation-modal.export-metadata.confirm": "Eksportuj", + "confirmation-modal.delete-eperson.header": "UsuÅ„ użytkownika \"{{ dsoName }}\"", + "confirmation-modal.delete-eperson.info": "Czy na pewno chcesz usunąć użytkownika \"{{ dsoName }}\"", + "confirmation-modal.delete-eperson.cancel": "Anuluj", + "confirmation-modal.delete-eperson.confirm": "UsuÅ„", + "error.bitstream": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia plików", + "error.browse-by": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia pozycji", + "error.collection": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia kolekcji", + "error.collections": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia kolekcji", + "error.community": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia ziboru", + "error.identifier": "Nie znaleziono pozycji z podanym identyfikatorem", + "error.default": "BÅ‚Ä…d", + "error.item": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia pozycji", + "error.items": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia pozycji", + "error.objects": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia obiektów", + "error.recent-submissions": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia ostatniego zgÅ‚oszenia", + "error.search-results": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia wyników wyszukiwania", + "error.sub-collections": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia podkolekcji", + "error.sub-communities": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia podzbiorów", + "error.submission.sections.init-form-error": "WystÄ…piÅ‚ bÅ‚Ä…d w czasie inicjalizacji sekcji, sprawdź konfiguracjÄ™. Szczegóły poniżej: <br> <br>", + "error.top-level-communities": "BÅ‚Ä…d podczas pobierania nadrzÄ™dnego zbioru", + "error.validation.license.notgranted": "Musisz wyrazić tÄ™ zgodÄ™, aby przesÅ‚ać swoje zgÅ‚oszenie. JeÅ›li nie możesz wyrazić zgody w tym momencie, możesz zapisać swojÄ… pracÄ™ i wrócić do niej później lub usunąć zgÅ‚oszenie.", + "error.validation.pattern": "Te dane wejÅ›ciowe sÄ… ograniczone przez aktualny wzór: {{ pattern }}.", + "error.validation.filerequired": "PrzesÅ‚anie pliku jest obowiÄ…zkowe", + "error.validation.required": "Pole jest wymagane", + "error.validation.NotValidEmail": "E-mail nie jest poprawny", + "error.validation.emailTaken": "E-mail jest już zarejestrowany", + "error.validation.groupExists": "Ta grupa już istnieje", + "file-section.error.header": "BÅ‚Ä…d podczas uzyskiwania plików dla tej pozycji", + "footer.copyright": "copyright © 2002-{{ year }}", + "footer.link.dspace": "oprogramowanie DSpace", + "footer.link.lyrasis": "LYRASIS", + "footer.link.cookies": "Ustawienia plików cookies", + "footer.link.privacy-policy": "Polityka prywatnoÅ›ci", + "footer.link.end-user-agreement": "Umowa użytkownika", + "forgot-email.form.header": "Nie pamiÄ™tam hasÅ‚a", + "forgot-email.form.info": "Zarejestruj siÄ™, aby otrzymywać wiadomoÅ›ci o nowych pozycjach w obserowanych kolekcjach, a także przesyÅ‚ać nowe pozycje do repozytorium.", + "forgot-email.form.email": "Adres e-mail *", + "forgot-email.form.email.error.required": "UzupeÅ‚nij adres e-mail", + "forgot-email.form.email.error.pattern": "UzupeÅ‚nij prawidÅ‚owy adres e-mail", + "forgot-email.form.email.hint": "Ten adres e-mail bÄ™dzie zweryfikowany i bÄ™dziesz go używać jako swój login.", + "forgot-email.form.submit": "WyÅ›lij", + "forgot-email.form.success.head": "WysÅ‚ano wiadomość weryfikacyjnÄ…", + "forgot-email.form.success.content": "Wiadomość zostaÅ‚a wysÅ‚ana na adres e-mail {{ email }}. Zawiera ona unikatowy link i dalsze instrukcje postÄ™powania.", + "forgot-email.form.error.head": "BÅ‚Ä…d podczas rejestracji adresu e-mail", + "forgot-email.form.error.content": "WystÄ…piÅ‚ bÅ‚Ä…d poczas próby rejestracji tego adresu e-mail: {{ email }}", + "forgot-password.title": "Nie pamiÄ™tam hasÅ‚a", + "forgot-password.form.head": "Nie pamiÄ™tam hasÅ‚a", + "forgot-password.form.info": "Wpisz nowe hasÅ‚o w polu poniżej i potwierdź je wpisujÄ…c je ponownie w drugim polu. HasÅ‚o powinno mieć co najmniej sześć znaków.", + "forgot-password.form.card.security": "BezpieczeÅ„stwo", + "forgot-password.form.identification.header": "Identifikacja", + "forgot-password.form.identification.email": "Adres e-mail: ", + "forgot-password.form.label.password": "HasÅ‚o", + "forgot-password.form.label.passwordrepeat": "Potwierdź hasÅ‚o", + "forgot-password.form.error.empty-password": "Wpisz hasÅ‚o poniżej.", + "forgot-password.form.error.matching-passwords": "HasÅ‚a nie sÄ… identyczne.", + "forgot-password.form.notification.error.title": "BÅ‚Ä…d podczas próby ustawienia nowego hasÅ‚a", + "forgot-password.form.notification.success.content": "Resetowanie hasÅ‚a udaÅ‚o siÄ™. Zalogowano jako stworzony przed momemntem użytkownik.", + "forgot-password.form.notification.success.title": "Resetowanie hasÅ‚a udane", + "forgot-password.form.submit": "Wpisz hasÅ‚o", + "form.add": "Dodaj", + "form.add-help": "Wybierz ten przycisk, aby dodać aktualny wpis lub dodać nastÄ™pny", + "form.cancel": "Anuluj", + "form.clear": "Wyczyść", + "form.clear-help": "Kliknij tutaj, aby usunąć wybranÄ… wartość", + "form.discard": "Odrzuć", + "form.drag": "PrzeciÄ…gnij", + "form.edit": "Edytuj", + "form.edit-help": "Kliknij tutaj, aby edytować wybranÄ… wartość", + "form.first-name": "ImiÄ™", + "form.last-name": "Nazwisko", + "form.loading": "Åadowanie...", + "form.lookup": "PrzeglÄ…daj", + "form.lookup-help": "Kliknij tutaj, aby zobaczyć istniejÄ…ce powiÄ…zania", + "form.no-results": "Nie znaleziono rezultatów", + "form.no-value": "Nie wprowadzono wartoÅ›ci", + "form.remove": "UsuÅ„", + "form.save": "Zapisz", + "form.save-help": "Zapisz zmiany", + "form.search": "Wyszukaj", + "form.search-help": "Kliknij tutaj, aby wyszukać w istniejÄ…cych komentarzach", + "form.submit": "Zapisz", + "form.repeatable.sort.tip": "Upuść nowÄ… pozycjÄ™ w nowym miejscu", + "grant-deny-request-copy.deny": "Nie przesyÅ‚aj kopii", + "grant-deny-request-copy.email.back": "Cofnij", + "grant-deny-request-copy.email.message": "WiadomoÅ›ci", + "grant-deny-request-copy.email.message.empty": "ProszÄ™ wprowadzić wiadomość", + "grant-deny-request-copy.email.permissions.info": "W tym miejscu możesz przemyÅ›leć ograniczenie dostÄ™pu do dokumentu, aby odpowiadać na mniej próśb o dostÄ™p. JeÅ›li chcesz wystÄ…pić do administratorów reposytorium o zniesienie restrykcji, zaznacz okienko poniżej.", + "grant-deny-request-copy.email.permissions.label": "Ustaw jako otwarty dostÄ™p", + "grant-deny-request-copy.email.send": "WyÅ›lij", + "grant-deny-request-copy.email.subject": "Temat", + "grant-deny-request-copy.email.subject.empty": "Wpisz temat", + "grant-deny-request-copy.grant": "WyÅ›lij kopiÄ™", + "grant-deny-request-copy.header": "ProÅ›ba o przesÅ‚anie kopii dokumentu", + "grant-deny-request-copy.home-page": "Zabierz mnie na stronÄ™ głównÄ…", + "grant-deny-request-copy.intro1": "JeÅ›li jesteÅ› jednym z autorów dokumentu <a href='{{ url }}'>{{ name }}</a>, wybierz jednÄ… z poniższych opcji, aby odpowiedzieć zapytaniu użytkownika.", + "grant-deny-request-copy.intro2": "Po wybraniu opcji, zostanÄ… wyÅ›wietlone sugerowane odpowiedzi, które można edytować.", + "grant-deny-request-copy.processed": "Ta proÅ›ba jest już procesowana. Możesz użyć przycisku poniżej, aby wrócić do strony głównej.", + "grant-request-copy.email.message": "Drogi użytkowniku {{ recipientName }},\nW odpowiedzi na PaÅ„stwa zapytanie, miÅ‚o mi poinformować, że w zaÅ‚Ä…czniku przesyÅ‚am kopiÄ™ dokumentu, o który PaÅ„stwo prosili: \"{{ itemUrl }}\" ({{ itemName }}), którego jestem autorem.\n\nPozdrawiam serdecznie,\n{{ authorName }} <{{ authorEmail }}>", + "grant-request-copy.email.subject": "ProÅ›ba o kopiÄ™ dokumentu", + "grant-request-copy.error": "WystÄ…piÅ‚ bÅ‚Ä…d", + "grant-request-copy.header": "Zezwól na wysÅ‚anie kopii dokumentu", + "grant-request-copy.intro": "To wiadomość zostanie wysÅ‚ana do osoby, która wystÄ…piÅ‚a o dostÄ™p. Wskazane dokumenty zostanÄ… doÅ‚Ä…czone jako zaÅ‚Ä…cznik.", + "grant-request-copy.success": "ProÅ›ba o dostÄ™p do dokumentu zostaÅ‚a przyjÄ™ta", + "home.description": "", + "home.breadcrumbs": "Strona główna", + "home.search-form.placeholder": "Przeszukaj repozytorium...", + "home.title": "Strona główna", + "home.top-level-communities.head": "Zbiory w DSpace", + "home.top-level-communities.help": "Przeszukaj kolekcje", + "info.end-user-agreement.accept": "PrzeczytaÅ‚em/am i akceptujÄ™ umowÄ™ użytkownika", + "info.end-user-agreement.accept.error": "BÅ‚Ä…d wystÄ…piÅ‚ podczas akceptowania umowy użytkownika", + "info.end-user-agreement.accept.success": "UdaÅ‚o siÄ™ zaktualizować umowÄ™ użytkownika", + "info.end-user-agreement.breadcrumbs": "Umowa użytkownika", + "info.end-user-agreement.buttons.cancel": "Anuluj", + "info.end-user-agreement.buttons.save": "Zapisz", + "info.end-user-agreement.head": "Umowa użytkownika", + "info.end-user-agreement.title": "Umowa użytkownika", + "info.privacy.breadcrumbs": "OÅ›wiadczenie polityki prywatnoÅ›ci", + "info.privacy.head": "OÅ›wiadczenie polityki prywatnoÅ›ci", + "info.privacy.title": "OÅ›wiadczenie polityki prywatnoÅ›ci", + "item.alerts.private": "Ta pozycja jest prywatna", + "item.alerts.withdrawn": "Ta pozycja zostaÅ‚a wycofana", + "item.edit.authorizations.heading": "Za pomocÄ… tego edytora możesz przeglÄ…dać i zmieniać polityki dla danej pozycji, a także zmieniać polityki dla poszczególnych części pozycji: paczek i strumieni bitów. W skrócie, pozycja jest kontenerem pakietów, a pakiety sÄ… kontenerami strumieni bitów. Kontenery zazwyczaj majÄ… polityki ADD/REMOVE/READ/WRITE, natomiast strumienie bitów majÄ… tylko polityki READ/WRITE.", + "item.edit.authorizations.title": "Edytuj politykÄ™ tej pozycji", + "item.badge.private": "Prywatny status publikacji", + "item.badge.withdrawn": "Wycofane publikacje", + "item.bitstreams.upload.bundle": "Pakiet", + "item.bitstreams.upload.bundle.placeholder": "Wybierz pakiet", + "item.bitstreams.upload.bundle.new": "Utworz pakiet", + "item.bitstreams.upload.bundles.empty": "Ta pozycja nie zawiera żadnych pakietów, do których można przesÅ‚ać strumieÅ„ bitów.", + "item.bitstreams.upload.cancel": "Anuluj", + "item.bitstreams.upload.drop-message": "Upuść plik, aby przesÅ‚ać", + "item.bitstreams.upload.item": "Pozycja: ", + "item.bitstreams.upload.notifications.bundle.created.content": "UdaÅ‚o siÄ™ utworzyć nowy pakiet.", + "item.bitstreams.upload.notifications.bundle.created.title": "Utwórz pakiet", + "item.bitstreams.upload.notifications.upload.failed": "Zweryfikuj pliki przed spróbowaniem ponownie.", + "item.bitstreams.upload.title": "PrzeÅ›lij strumieÅ„ bitów", + "item.edit.bitstreams.bundle.edit.buttons.upload": "PrzeÅ›lij", + "item.edit.bitstreams.bundle.displaying": "Obecnie wyÅ›wietlono {{ amount }} plików z {{ total }}.", + "item.edit.bitstreams.bundle.load.all": "ZaÅ‚aduj wszystkie ({{ total }})", + "item.edit.bitstreams.bundle.load.more": "ZaÅ‚aduj wiÄ™cej", + "item.edit.bitstreams.bundle.name": "PACZKA: {{ name }}", + "item.edit.bitstreams.discard-button": "Odrzuć", + "item.edit.bitstreams.edit.buttons.download": "Pobierz", + "item.edit.bitstreams.edit.buttons.drag": "PrzeciÄ…gnij", + "item.edit.bitstreams.edit.buttons.edit": "Edytuj", + "item.edit.bitstreams.edit.buttons.remove": "UsuÅ„", + "item.edit.bitstreams.edit.buttons.undo": "Cofnij zmiany", + "item.edit.bitstreams.empty": "Ta pozycja nie zawiera żadnych strumieni bitów. Wybierz strumienie do zaÅ‚adowania, aby je utworzyć.", + "item.edit.bitstreams.headers.actions": "Akcje", + "item.edit.bitstreams.headers.bundle": "Paczka", + "item.edit.bitstreams.headers.description": "Opis", + "item.edit.bitstreams.headers.format": "Format", + "item.edit.bitstreams.headers.name": "Nazwa", + "item.edit.bitstreams.notifications.discarded.content": "Twoje zmiany zostaÅ‚y odrzucone. Aby je przywrócić, wybierz przycisk 'Cofnij'", + "item.edit.bitstreams.notifications.discarded.title": "Zmiany odrzucone", + "item.edit.bitstreams.notifications.move.failed.title": "BÅ‚Ä…d podczas przenoszenia plików", + "item.edit.bitstreams.notifications.move.saved.content": "Zmiany pozycji dla pliku tej pozycji oraz jego paczki zostaÅ‚y zapisane.", + "item.edit.bitstreams.notifications.move.saved.title": "Zmiana pozycji zostaÅ‚a zapisana", + "item.edit.bitstreams.notifications.outdated.content": "Pozycja zostaÅ‚a w miÄ™dzyczasie zmieniona przez innego użytkownika. Twoje zmiany zostaÅ‚y cofniÄ™te, aby uniknąć ewentualnych konfliktów", + "item.edit.bitstreams.notifications.outdated.title": "Zmiany nieaktualne", + "item.edit.bitstreams.notifications.remove.failed.title": "BÅ‚Ä…d podczas usuwania pliku", + "item.edit.bitstreams.notifications.remove.saved.content": "Twoje zmiany dotyczÄ…ce usuniÄ™cia plików z tej pozycji zostaÅ‚y zapisane.", + "item.edit.bitstreams.notifications.remove.saved.title": "Zmiany dotyczÄ…ce usuniÄ™cia zapisane", + "item.edit.bitstreams.reinstate-button": "Cofnij", + "item.edit.bitstreams.save-button": "Zapisz", + "item.edit.bitstreams.upload-button": "PrzeÅ›lij", + "item.edit.delete.cancel": "Anuluj", + "item.edit.delete.confirm": "UsuÅ„", + "item.edit.delete.description": "Czy jesteÅ› pewien, że ta pozycja powinna zostać caÅ‚kowicie usuniÄ™ta? Ostrożnie: Teraz nie pozostanie po tej pozycji żaden Å›lad.", + "item.edit.delete.error": "BÅ‚Ä…d wystÄ…piÅ‚ podczas usuwania pozycji", + "item.edit.delete.header": "UsuÅ„ pozycjÄ™: {{ id }}", + "item.edit.delete.success": "Ta pozycja zostaÅ‚a usuniÄ™ta", + "item.edit.head": "Edytuj pozycjÄ™", + "item.edit.breadcrumbs": "Edytuj pozycjÄ™", + "item.edit.tabs.disabled.tooltip": "Nie masz dostÄ™pu do tej strony", + "item.edit.tabs.mapper.head": "Mapper kolekcji", + "item.edit.tabs.item-mapper.title": "Edytowanie pozycji - Mapper kolekcji", + "item.edit.item-mapper.buttons.add": "Mapowanie pozycji do wybranych kolekcji", + "item.edit.item-mapper.buttons.remove": "UsuÅ„ mapowanie pozycji do wybranych kolekcji", + "item.edit.item-mapper.cancel": "Anuluj", + "item.edit.item-mapper.description": "To jest narzÄ™dzie do mapowania elementów, które pozwala administratorom mapować tÄ™ pozycjÄ™ do innych kolekcji. Możesz wyszukiwać kolekcje i je mapować lub przeglÄ…dać listÄ™ kolekcji, do których dana pozycja jest aktualnie zmapowana.", + "item.edit.item-mapper.head": "Mapper pozycji - Mapowanie pozycji do kolekcji", + "item.edit.item-mapper.item": "Pozycja: \"<b>{{name}}</b>\"", + "item.edit.item-mapper.no-search": "Wpisz zapytanie, które chcesz wyszukać", + "item.edit.item-mapper.notifications.add.error.content": "WystÄ…piÅ‚y bÅ‚Ä™dy dla mapowania pozycji w {{amount}} kolekcjach.", + "item.edit.item-mapper.notifications.add.error.head": "BÅ‚Ä™dy mapowania", + "item.edit.item-mapper.notifications.add.success.content": "UdaÅ‚o siÄ™ zmapować elementy dla {{amount}} kolekcji.", + "item.edit.item-mapper.notifications.add.success.head": "Mapowanie zakoÅ„czone", + "item.edit.item-mapper.notifications.remove.error.content": "WystÄ…piÅ‚y bÅ‚Ä™dy podczas usuwania mapowania do {{amount}} kolekcji.", + "item.edit.item-mapper.notifications.remove.error.head": "UsuniÄ™cie mapowania bÅ‚Ä™dów", + "item.edit.item-mapper.notifications.remove.success.content": "UdaÅ‚o siÄ™ usunąć mapowanie pozycji w {{amount}} kolekcjach.", + "item.edit.item-mapper.notifications.remove.success.head": "Usuwanie mapowania zakoÅ„czone", + "item.edit.item-mapper.search-form.placeholder": "Przeszukaj kolekcje...", + "item.edit.item-mapper.tabs.browse": "PrzeglÄ…daj zmapowane kolekcje", + "item.edit.item-mapper.tabs.map": "Mapuj nowe kolekcje", + "item.edit.metadata.add-button": "Dodaj", + "item.edit.metadata.discard-button": "Odrzuć", + "item.edit.metadata.edit.buttons.edit": "Edytuj", + "item.edit.metadata.edit.buttons.remove": "UsuÅ„", + "item.edit.metadata.edit.buttons.undo": "Cofnij zmiany", + "item.edit.metadata.edit.buttons.unedit": "Zatrzymaj edycjÄ™", + "item.edit.metadata.empty": "Ta pozycja nie zawiera żadnych metadanych. Wybierz Dodaj, aby dodać metadane.", + "item.edit.metadata.headers.edit": "Edytuj", + "item.edit.metadata.headers.field": "Pole", + "item.edit.metadata.headers.language": "JÄ™zyk", + "item.edit.metadata.headers.value": "Wartość", + "item.edit.metadata.metadatafield.invalid": "Wybierz aktualne pole metadanych", + "item.edit.metadata.notifications.discarded.content": "Twoje zmiany zostaÅ‚y odrzucone. Aby wgrać je ponownie wybierz przycisk 'Cofnij'", + "item.edit.metadata.notifications.discarded.title": "Zmiany odrzucone", + "item.edit.metadata.notifications.error.title": "WystÄ…piÅ‚ bÅ‚Ä…d", + "item.edit.metadata.notifications.invalid.content": "Twoje zmiany nie zostaÅ‚y zapisane. Przed zapisaniem upewnij siÄ™, że wszystkie pola sÄ… wypeÅ‚nione prawidÅ‚owo.", + "item.edit.metadata.notifications.invalid.title": "NieprawidÅ‚owe metadane", + "item.edit.metadata.notifications.outdated.content": "Pozycja zostaÅ‚a w miÄ™dzyczasie zmieniona przez innego użytkownika. Twoje zmiany zostaÅ‚y cofniÄ™te, aby zapobiec ewentualnym konfliktom", + "item.edit.metadata.notifications.outdated.title": "Zmiany nieaktualne", + "item.edit.metadata.notifications.saved.content": "Twoje zmiany metadanych tej pozycji zostaÅ‚y zapisane.", + "item.edit.metadata.notifications.saved.title": "Metadane zostaÅ‚y zapisane", + "item.edit.metadata.reinstate-button": "Cofnij", + "item.edit.metadata.save-button": "Zapisz", + "item.edit.modify.overview.field": "Pole", + "item.edit.modify.overview.language": "JÄ™zyk", + "item.edit.modify.overview.value": "Wartość", + "item.edit.move.cancel": "Anuluj", + "item.edit.move.save-button": "Zapisz", + "item.edit.move.discard-button": "Odrzuć", + "item.edit.move.description": "Wybierz kolekcjÄ™, do której chcesz przenieść tÄ™ pozycjÄ™. Aby zawÄ™zić listÄ™ wyÅ›wietlanych kolekcji, możesz wprowadzić zapytanie w polu wyszukiwania.", + "item.edit.move.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas przenoszenia pozycji", + "item.edit.move.head": "PrzenieÅ› pozycjÄ™: {{id}}", + "item.edit.move.inheritpolicies.checkbox": "Dziedziczenie polityk", + "item.edit.move.inheritpolicies.description": "Dziedzczenie domyÅ›lnych polityk z kolekcji docelowej", + "item.edit.move.move": "PrzenieÅ›", + "item.edit.move.processing": "Przenoszenie...", + "item.edit.move.search.placeholder": "Wpisz zapytanie, aby wyszukać w kolekcjach", + "item.edit.move.success": "Pozycja zostaÅ‚a przeniesiona", + "item.edit.move.title": "PrzenieÅ› pozycjÄ™", + "item.edit.private.cancel": "Anuluj", + "item.edit.private.confirm": "Ukryj", + "item.edit.private.description": "Czy chcesz ukryć tÄ™ pozycjÄ™?", + "item.edit.private.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas ukrywania pozycji", + "item.edit.private.header": "Ukryj pozycjÄ™: {{ id }}", + "item.edit.private.success": "Pozycja jest teraz ukryta", + "item.edit.public.cancel": "Anuluj", + "item.edit.public.confirm": "Upublicznij", + "item.edit.public.description": "Czy chcesz upublicznić tÄ™ pozycjÄ™?", + "item.edit.public.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas upubliczniania pozycji", + "item.edit.public.header": "Upublicznij pozycjÄ™: {{ id }}", + "item.edit.public.success": "Pozycja jest teraz publiczna", + "item.edit.reinstate.cancel": "Anuluj", + "item.edit.reinstate.confirm": "Przywróć", + "item.edit.reinstate.description": "Czy chcesz przywrócić tÄ™ pozycjÄ™?", + "item.edit.reinstate.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas przywracania pozycji", + "item.edit.reinstate.header": "Przywróć pozycjÄ™: {{ id }}", + "item.edit.reinstate.success": "Pozycja zostaÅ‚a przywrócona", + "item.edit.relationships.discard-button": "Odrzuć", + "item.edit.relationships.edit.buttons.add": "Dodaj", + "item.edit.relationships.edit.buttons.remove": "UsuÅ„", + "item.edit.relationships.edit.buttons.undo": "Cofnij zmiany", + "item.edit.relationships.no-relationships": "Brak relacji", + "item.edit.relationships.notifications.discarded.content": "Twoje zmiany zostaÅ‚y cofniÄ™te. Aby przywrócić zmiany wybierz przycisk 'Cofnij'", + "item.edit.relationships.notifications.discarded.title": "Zmiany zostaÅ‚y cofniÄ™te", + "item.edit.relationships.notifications.failed.title": "WystÄ…piÅ‚ bÅ‚Ä…d podczas edytowania relacji", + "item.edit.relationships.notifications.outdated.content": "Ta pozycja zostaÅ‚a wÅ‚aÅ›nie zmieniona przez innego użytkownika. Twoje zmiany zostaÅ‚y cofniÄ™te, aby uniknąć konfliktów", + "item.edit.relationships.notifications.outdated.title": "Zmiany sÄ… nieaktualne", + "item.edit.relationships.notifications.saved.content": "Twoje zmiany w relacjach tej pozycji zostaÅ‚y zapisane.", + "item.edit.relationships.notifications.saved.title": "Relacje zostaÅ‚y zapisane", + "item.edit.relationships.reinstate-button": "Cofnij", + "item.edit.relationships.save-button": "Zapisz", + "item.edit.relationships.no-entity-type": "Dodaj metadanÄ… 'dspace.entity.type', aby umożliwić dodawanie relacji do pozycji", + "item.edit.return": "Cofnij", + "item.edit.tabs.bitstreams.head": "Pliki", + "item.edit.tabs.bitstreams.title": "Edycja pozycji - pliki", + "item.edit.tabs.curate.head": "Administruj", + "item.edit.tabs.curate.title": "Edytowanie pozycji - administruj", + "item.edit.tabs.metadata.head": "Metadane", + "item.edit.tabs.metadata.title": "Edycja pozycji - metadane", + "item.edit.tabs.relationships.head": "Relacje", + "item.edit.tabs.relationships.title": "Edycja pozycja - relacje", + "item.edit.tabs.status.buttons.authorizations.button": "DostÄ™py...", + "item.edit.tabs.status.buttons.authorizations.label": "OkreÅ›lu dostÄ™p do pozycji", + "item.edit.tabs.status.buttons.delete.button": "UsuÅ„ permanentnie", + "item.edit.tabs.status.buttons.delete.label": "UsuÅ„ pozycjÄ™ permanentnie", + "item.edit.tabs.status.buttons.mappedCollections.button": "Zmapowane kolekcje", + "item.edit.tabs.status.buttons.mappedCollections.label": "ZarzÄ…dzaj mapowanymi kolekcjami", + "item.edit.tabs.status.buttons.move.button": "PrzenieÅ›...", + "item.edit.tabs.status.buttons.move.label": "PrzenieÅ› pozycjÄ™ do innej kolekcji", + "item.edit.tabs.status.buttons.private.button": "Ukryj...", + "item.edit.tabs.status.buttons.private.label": "Ukry pozycjÄ™", + "item.edit.tabs.status.buttons.public.button": "Upublicznij...", + "item.edit.tabs.status.buttons.public.label": "Upublicznij pozycjÄ™", + "item.edit.tabs.status.buttons.reinstate.button": "Przywróć...", + "item.edit.tabs.status.buttons.reinstate.label": "Przywróć pozycjÄ™", + "item.edit.tabs.status.buttons.unauthorized": "You're not authorized to perform this action", + "item.edit.tabs.status.buttons.withdraw.button": "Wycofaj...", + "item.edit.tabs.status.buttons.withdraw.label": "Wycofaj z repozytorium", + "item.edit.tabs.status.description": "Witamy na stronie zarzÄ…dzania pozycjami. Z tego miejsca możesz wycofać, przywrócić, przenieść lub usunąć danÄ… pozycjÄ™. Możesz również aktualizować lub dodawać nowe metadane lub pliki..", + "item.edit.tabs.status.head": "Status", + "item.edit.tabs.status.labels.handle": "Identyfikator", + "item.edit.tabs.status.labels.id": "ID pozycji", + "item.edit.tabs.status.labels.itemPage": "Strona pozycji", + "item.edit.tabs.status.labels.lastModified": "Ostatnia modyfikacja", + "item.edit.tabs.status.title": "Edycja pozycji - Status", + "item.edit.tabs.versionhistory.head": "Historia wersji", + "item.edit.tabs.versionhistory.title": "Edycja pozycji - historia wersji", + "item.edit.tabs.versionhistory.under-construction": "Edytowanie lub dodawanie nowych wersji jest niedostÄ™pne w tego poziomu interfejsu.", + "item.edit.tabs.view.head": "Widok pozycji", + "item.edit.tabs.view.title": "Edycja pozycji - widok", + "item.edit.withdraw.cancel": "Anuluj", + "item.edit.withdraw.confirm": "Wycofaj", + "item.edit.withdraw.description": "Czy na pewno chcesz wycofać pozycjÄ™?", + "item.edit.withdraw.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas wycofywania pozycji", + "item.edit.withdraw.header": "Wycofaj pozycjÄ™: {{ id }}", + "item.edit.withdraw.success": "Pozycja zostaÅ‚a wycofana", + "item.listelement.badge": "Pozycja", + "item.page.description": "Opis", + "item.page.journal-issn": "ISSN czasopisma", + "item.page.journal-title": "TytuÅ‚ czasopisma", + "item.page.publisher": "Wydawca", + "item.page.titleprefix": "Pozycja: ", + "item.page.volume-title": "TytuÅ‚ tomu", + "item.search.results.head": "Wyniki wyszukiwania pozycji", + "item.search.title": "Wyszukiwanie pozycji", + "item.page.abstract": "Abstrakt", + "item.page.author": "Autorzy", + "item.page.citation": "Cytowanie", + "item.page.collections": "Kolekcje", + "item.page.collections.loading": "Åadowanie...", + "item.page.collections.load-more": "ZaÅ‚aduj wiÄ™cej", + "item.page.date": "Data", + "item.page.edit": "Edytuj pozycjÄ™", + "item.page.files": "Pliki", + "item.page.filesection.description": "Opis:", + "item.page.filesection.download": "Pobierz", + "item.page.filesection.format": "Format:", + "item.page.filesection.name": "Nazwa:", + "item.page.filesection.size": "Rozmiar:", + "item.page.journal.search.title": "ArtykuÅ‚y w czasopiÅ›mie", + "item.page.link.full": "Zobacz szczegóły", + "item.page.link.simple": "Uproszczony widok", + "item.page.person.search.title": "ArtykuÅ‚y tego autora", + "item.page.related-items.view-more": "Pokaż o {{ amount }} wiÄ™cej", + "item.page.related-items.view-less": "Ukryj {{ amount }}", + "item.page.relationships.isAuthorOfPublication": "Publikacje", + "item.page.relationships.isJournalOfPublication": "Publikacje", + "item.page.relationships.isOrgUnitOfPerson": "Autorzy", + "item.page.relationships.isOrgUnitOfProject": "Projekty naukowe", + "item.page.subject": "SÅ‚owa kluczowe", + "item.page.uri": "URI", + "item.page.bitstreams.view-more": "Pokaż wiÄ™cej", + "item.page.bitstreams.collapse": "Pokaż mniej", + "item.page.filesection.original.bundle": "Oryginalne pliki", + "item.page.filesection.license.bundle": "Licencja", + "item.page.return": "Powrót", + "item.page.version.create": "Utwórz nowÄ… wersjÄ™", + "item.page.version.hasDraft": "Nowa wersja nie może zostać utworzona, ponieważ istnieje już oczekujÄ…ce na akceptacjÄ™ zgÅ‚oszenie dokumentu tego pliku", + "item.preview.dc.identifier.doi": "DOI", + "item.preview.dc.relation.ispartof": "Czasopismo lub seria", + "item.preview.dc.identifier.isbn": "ISBN", + "item.preview.dc.identifier.uri": "Identyfikator:", + "item.preview.dc.contributor.author": "Autorzy:", + "item.preview.dc.date.issued": "Data publikacji:", + "item.preview.dc.description.abstract": "Abstrakt:", + "item.preview.dc.identifier.other": "Inny identyfikator:", + "item.preview.dc.language.iso": "JÄ™zyk:", + "item.preview.dc.title": "TytuÅ‚:", + "item.preview.dc.title.alternative": "TytuÅ‚ alternatywny", + "item.preview.dc.type": "Typ:", + "item.preview.dc.identifier": "Identyfikator:", + "item.preview.dc.relation.issn": "ISSN", + "item.preview.oaire.citation.issue": "Numer wydania", + "item.preview.oaire.citation.volume": "Numer tomu", + "item.preview.person.familyName": "Nazwisko:", + "item.preview.person.givenName": "Nazwa:", + "item.preview.person.identifier.orcid": "ORCID:", + "item.preview.project.funder.name": "Fundator:", + "item.preview.project.funder.identifier": "Identyfikator fundatora:", + "item.preview.oaire.awardNumber": "ID finansowania:", + "item.preview.dc.coverage.spatial": "Jurysdykcja:", + "item.preview.oaire.fundingStream": "ŹródÅ‚o finansowania:", + "item.select.confirm": "Potwierdź zaznaczone", + "item.select.empty": "Brak pozycji do wyÅ›wietlenia", + "item.select.table.author": "Autor", + "item.select.table.collection": "Kolekcja", + "item.select.table.title": "TytuÅ‚", + "item.version.history.empty": "Jeszcze nie ma innych wersji tej pozycji.", + "item.version.history.head": "Poprzednie wersje", + "item.version.history.return": "Powrót", + "item.version.history.selected": "Wybrane wersje", + "item.version.history.selected.alert": "W tym momencie wyÅ›wietlono wersjÄ™ {{version}} pozycji.", + "item.version.history.table.version": "Wersja", + "item.version.history.table.item": "Pozycja", + "item.version.history.table.editor": "Redaktor", + "item.version.history.table.date": "Data", + "item.version.history.table.summary": "Podsumowanie", + "item.version.history.table.workspaceItem": "Wersja robocza", + "item.version.history.table.workflowItem": "Pozycja workflow", + "item.version.history.table.actions": "Akcja", + "item.version.history.table.action.editWorkspaceItem": "Edytuj wersjÄ™ roboczÄ… pozycji", + "item.version.history.table.action.editSummary": "Edytuj podsumowanie", + "item.version.history.table.action.saveSummary": "Zapisz edycje podsumowania", + "item.version.history.table.action.discardSummary": "Odrzuć edycje podsumowania", + "item.version.history.table.action.newVersion": "Utwórz nowÄ… wersjÄ™ z tej wersji", + "item.version.history.table.action.deleteVersion": "Wersja usuniÄ™ta", + "item.version.history.table.action.hasDraft": "Nowa wersja nie może zostać utworzona, ponieważ istnieje już oczekujÄ…ce na akceptacjÄ™ zgÅ‚oszenie dokumentu tego pliku", + "item.version.notice": "To nie jest najnowsza wersja tej pozycji. Najnowsza wersja jest dostÄ™pna <a href='{{destination}}'>tutaj</a>.", + "item.version.create.modal.header": "Nowa wersja", + "item.version.create.modal.text": "Utwórz nowÄ… wersjÄ™ tej pozycji", + "item.version.create.modal.text.startingFrom": "zaczynajÄ…c od wersji {{version}}", + "item.version.create.modal.button.confirm": "Utwórz", + "item.version.create.modal.button.confirm.tooltip": "Utwórz nowÄ… wersjÄ™", + "item.version.create.modal.button.cancel": "Anuluj", + "item.version.create.modal.button.cancel.tooltip": "Nie stwarzaj nowej wersji", + "item.version.create.modal.form.summary.label": "Podsumowanie", + "item.version.create.modal.form.summary.placeholder": "Wprowadź podsumowanie nowej wersji", + "item.version.create.notification.success": "Nowa wersja zostaÅ‚a utworzona z numerem {{version}}", + "item.version.create.notification.failure": "Nowa wersja nie zostaÅ‚a utworzona", + "item.version.create.notification.inProgress": "Nowa wersja nie może być utworzona, ponieważ propozycja innej wersji jest już zÅ‚ożona do zaakceptowania", + "item.version.delete.modal.header": "UsuÅ„ wersjÄ™", + "item.version.delete.modal.text": "Czy chcesz usunąć wersjÄ™ {{version}}?", + "item.version.delete.modal.button.confirm": "UsuÅ„", + "item.version.delete.modal.button.confirm.tooltip": "UsuÅ„ wersjÄ™", + "item.version.delete.modal.button.cancel": "Anuluj", + "item.version.delete.modal.button.cancel.tooltip": "Nie usuwaj tej wersji", + "item.version.delete.notification.success": "Wersja {{version}} zostaÅ‚a usuniÄ™ta", + "item.version.delete.notification.failure": "Wersja {{version}} nie zostaÅ‚a usuniÄ™ta", + "item.version.edit.notification.success": "Podsumowanie wersji {{version}} zostaÅ‚o zmienione", + "item.version.edit.notification.failure": "Podsumowanie wersji {{version}} nie zostaÅ‚o zmienione", + "journal.listelement.badge": "Czasopismo", + "journal.page.description": "Opis", + "journal.page.edit": "Edytuj tÄ™ pozycjÄ™", + "journal.page.editor": "Redaktor naczelny", + "journal.page.issn": "ISSN", + "journal.page.publisher": "Wydawca", + "journal.page.titleprefix": "Czasopismo: ", + "journal.search.results.head": "Wyniki wyszukiwania czasopism", + "journal.search.title": "Wyszukiwanie czasopism", + "journalissue.listelement.badge": "Numer czasopisma", + "journalissue.page.description": "Opis", + "journalissue.page.edit": "Edytuj pozycjÄ™", + "journalissue.page.issuedate": "Data wydania", + "journalissue.page.journal-issn": "ISSN czasopisma", + "journalissue.page.journal-title": "TytuÅ‚ czasopisma", + "journalissue.page.keyword": "SÅ‚owa kluczowe", + "journalissue.page.number": "Numer", + "journalissue.page.titleprefix": "Wydanie czasopisma: ", + "journalvolume.listelement.badge": "Numer tomu czasopisma", + "journalvolume.page.description": "Opis", + "journalvolume.page.edit": "Edytuj pozycjÄ™", + "journalvolume.page.issuedate": "Data wydania", + "journalvolume.page.titleprefix": "Numer tomu czasopisma: ", + "journalvolume.page.volume": "Numer wydania", + "iiifsearchable.listelement.badge": "Multimedia dokumentu", + "iiifsearchable.page.titleprefix": "Dokument: ", + "iiifsearchable.page.doi": "StaÅ‚y link: ", + "iiifsearchable.page.issue": "Wydanie: ", + "iiifsearchable.page.description": "Opis: ", + "iiifviewer.fullscreen.notice": "WyÅ›wietl na peÅ‚nym ekranie dla lepszego widoku.", + "iiif.listelement.badge": "Multimedia obrazu", + "iiif.page.titleprefix": "Obraz: ", + "iiif.page.doi": "StaÅ‚y link: ", + "iiif.page.issue": "Numer wydania: ", + "iiif.page.description": "Opis: ", + "loading.bitstream": "Åadowanie pliku...", + "loading.bitstreams": "Åadowanie plików...", + "loading.browse-by": "Åadowanie pozycji...", + "loading.browse-by-page": "Åadowanie strony...", + "loading.collection": "Åadowanie kolekcji...", + "loading.collections": "Åadowanie kolekcji...", + "loading.content-source": "Åadowanie źródÅ‚a treÅ›ci...", + "loading.community": "Åadowanie zbioru...", + "loading.default": "Åadowanie...", + "loading.item": "Åadowanie pozycji...", + "loading.items": "Åadowanie pozycji...", + "loading.mydspace-results": "Åadowanie pozycji...", + "loading.objects": "Åadowanie...", + "loading.recent-submissions": "Åadowanie ostatnich zgÅ‚oszeÅ„...", + "loading.search-results": "Åadowanie wyników wyszukiwania...", + "loading.sub-collections": "Åadowanie podkolekcji...", + "loading.sub-communities": "Åadowanie podzbioru...", + "loading.top-level-communities": "Åadowanie zbioru wyszego szczebla...", + "login.form.email": "Adres e-mail", + "login.form.forgot-password": "Nie pamiÄ™tasz hasÅ‚a?", + "login.form.header": "Zaloguj siÄ™ do DSpace", + "login.form.new-user": "Nie masz konta? Zarejestruj siÄ™.", + "login.form.or-divider": "lub", + "login.form.orcid": "Zaloguj za pomocÄ… ORCID", + "login.form.oidc": "Zaloguj za pomocÄ… OIDC", + "login.form.password": "HasÅ‚o", + "login.form.shibboleth": "Zaloguj za pomocÄ… Shibboleth", + "login.form.submit": "Zaloguj siÄ™", + "login.title": "Zaloguj", + "login.breadcrumbs": "Zaloguj", + "logout.form.header": "Wyloguj siÄ™ z DSpace", + "logout.form.submit": "Wyloguj siÄ™", + "logout.title": "Wylogowywanie", + "menu.header.admin": "Panel administracyjny", + "menu.header.image.logo": "Logo repozytorium", + "menu.header.admin.description": "Menu administratora", + "menu.section.access_control": "Uprawnienia", + "menu.section.access_control_authorizations": "DostÄ™py", + "menu.section.access_control_groups": "Grupy", + "menu.section.access_control_people": "Użytkownicy", + "menu.section.admin_search": "Wyszukiwanie administracyjne", + "menu.section.browse_community": "Ten zbiór", + "menu.section.browse_community_by_author": "Wg autorów", + "menu.section.browse_community_by_issue_date": "Wg daty wydania", + "menu.section.browse_community_by_title": "Wg tytułów", + "menu.section.browse_global": "Wszystko na DSpace", + "menu.section.browse_global_by_author": "Wg autorów", + "menu.section.browse_global_by_dateissued": "Wg daty wydania", + "menu.section.browse_global_by_subject": "Wg tematu", + "menu.section.browse_global_by_title": "Wg tytuÅ‚u", + "menu.section.browse_global_communities_and_collections": "Zbiory i kolekcje", + "menu.section.control_panel": "Panel sterowania", + "menu.section.curation_task": "Zadanie administracyjne", + "menu.section.edit": "Edytuj", + "menu.section.edit_collection": "Kolekcja", + "menu.section.edit_community": "Zbiór", + "menu.section.edit_item": "Pozycja", + "menu.section.export": "Eksport", + "menu.section.export_collection": "Kolekcja", + "menu.section.export_community": "Zbiór", + "menu.section.export_item": "Pozycja", + "menu.section.export_metadata": "Metadane", + "menu.section.icon.access_control": "Sekcja menu Uprawnienia", + "menu.section.icon.admin_search": "Sekcja menu Wyszukiwanie administracyjne", + "menu.section.icon.control_panel": "Sekcja menu Panel sterowania", + "menu.section.icon.curation_tasks": "Sekcja menu Zadanie administracyjne", + "menu.section.icon.edit": "Sekcja menu Edycja", + "menu.section.icon.export": "Sekcja menu Eksport", + "menu.section.icon.find": "Sekcja menu Wyszukiwanie", + "menu.section.icon.import": "Sekcja menu Import", + "menu.section.icon.new": "Sekcja menu Dodaj", + "menu.section.icon.pin": "Przypnij boczny pasek", + "menu.section.icon.processes": "Sekcja menu Procesy", + "menu.section.icon.registries": "Sekcja menu Rejestry", + "menu.section.icon.statistics_task": "Sekcja menu Zadanie statystyczne", + "menu.section.icon.workflow": "Sekcja menu ZarzÄ…dzanie workflow", + "menu.section.icon.unpin": "Odepnij boczny pasek", + "menu.section.import": "Import", + "menu.section.import_batch": "Import masowy (ZIP)", + "menu.section.import_metadata": "Metadane", + "menu.section.new": "Dodaj", + "menu.section.new_collection": "Kolekcja", + "menu.section.new_community": "Zbiór", + "menu.section.new_item": "Pozycja", + "menu.section.new_item_version": "Wersja pozycji", + "menu.section.new_process": "Proces", + "menu.section.pin": "Przypnij pasek boczny", + "menu.section.unpin": "Odepnij pasek boczny", + "menu.section.processes": "Procesy", + "menu.section.registries": "Rejestry", + "menu.section.registries_format": "Formaty", + "menu.section.registries_metadata": "Metadane", + "menu.section.statistics": "Statystyki", + "menu.section.statistics_task": "Zadanie statystyczne", + "menu.section.toggle.access_control": "PrzeÅ‚Ä…cz sekcjÄ™ Uprawnienia", + "menu.section.toggle.control_panel": "PrzeÅ‚Ä…cz sekcjÄ™ Panel sterowania", + "menu.section.toggle.curation_task": "PrzeÅ‚Ä…cz sekcjÄ™ Zadanie kuratora", + "menu.section.toggle.edit": "PrzeÅ‚Ä…cz sekcjÄ™ Edytuj", + "menu.section.toggle.export": "PrzeÅ‚Ä…cz sekcjÄ™ Eksport", + "menu.section.toggle.find": "PrzeÅ‚Ä…cz sekcjÄ™ Wyszukiwanie", + "menu.section.toggle.import": "PrzeÅ‚Ä…cz sekcjÄ™ Import", + "menu.section.toggle.new": "PrzeÅ‚Ä…cz nowÄ… sekcjÄ™", + "menu.section.toggle.registries": "PrzeÅ‚Ä…cz sekcjÄ™ Rejestry", + "menu.section.toggle.statistics_task": "PrzeÅ‚Ä…cz sekcjÄ™ Zadanie statystyczne", + "menu.section.workflow": "ZarzÄ…dzaj Workflow", + "mydspace.breadcrumbs": "Mój DSpace", + "mydspace.description": "", + "mydspace.messages.controller-help": "Wybierz tÄ™ opcjÄ™, aby przesÅ‚ać wiadomość do zgÅ‚aszajÄ…cego.", + "mydspace.messages.description-placeholder": "Wpisz swojÄ… wiadomość tutaj...", + "mydspace.messages.hide-msg": "Ukryj wiadomość", + "mydspace.messages.mark-as-read": "Oznacz jako przeczytane", + "mydspace.messages.mark-as-unread": "Oznacz jako nieprzeczytane", + "mydspace.messages.no-content": "Brak treÅ›ci.", + "mydspace.messages.no-messages": "Brak wiadomoÅ›ci.", + "mydspace.messages.send-btn": "WysÅ‚ano", + "mydspace.messages.show-msg": "Pokaż wiadomość", + "mydspace.messages.subject-placeholder": "Temat...", + "mydspace.messages.submitter-help": "Wybierz tÄ™ opcjÄ™, aby przesÅ‚ać wiadomość do osoby kontrolujÄ…cej.", + "mydspace.messages.title": "WiadomoÅ›ci", + "mydspace.messages.to": "Do", + "mydspace.new-submission": "Nowe zgÅ‚oszenie", + "mydspace.new-submission-external": "Import medatanych z zewnÄ™trznego źródÅ‚a", + "mydspace.new-submission-external-short": "Import metadanych", + "mydspace.results.head": "Twoje zadania", + "mydspace.results.no-abstract": "Brak abstraktu", + "mydspace.results.no-authors": "Brak autorów", + "mydspace.results.no-collections": "Brak kolekcji", + "mydspace.results.no-date": "Brak daty", + "mydspace.results.no-files": "Brak plików", + "mydspace.results.no-results": "Brak pozycji do wyÅ›wietlenia", + "mydspace.results.no-title": "Brak tytuÅ‚u", + "mydspace.results.no-uri": "Brak Uri", + "mydspace.search-form.placeholder": "Wyszukaj w mydspace...", + "mydspace.show.workflow": "Wszystkie zadania", + "mydspace.show.workspace": "Twoje zadania", + "mydspace.status.mydspaceArchived": "Zarchiwizowano", + "mydspace.status.mydspaceValidation": "Walidacja", + "mydspace.status.mydspaceWaitingController": "Oczekiwanie na redaktora", + "mydspace.status.mydspaceWorkflow": "Workflow", + "mydspace.status.mydspaceWorkspace": "Wersja robocza", + "mydspace.title": "Mój DSpace", + "mydspace.upload.upload-failed": "BÅ‚ad podczas tworzenia nowej wersji roboczej. Sprawdź poprawność plików i spróbuj ponownie.", + "mydspace.upload.upload-failed-manyentries": "Plik jest niemożliwy do przetworzenia. Wykryto wiele wejść, a dopuszczalne jest tylko jedno dla jednego pliku.", + "mydspace.upload.upload-failed-moreonefile": "Zapytanie niemożliwe do przetworzenia. Tylko jeden plik jest dopuszczalny.", + "mydspace.upload.upload-multiple-successful": "Utworzono {{qty}} przestrzeni roboczych.", + "mydspace.view-btn": "Widok", + "nav.browse.header": "CaÅ‚y DSpace", + "nav.community-browse.header": "Wg zbiorów", + "nav.language": "ZmieÅ„ jÄ™zyk", + "nav.login": "Zaloguj", + "nav.logout": "Menu profilu użytkownika i wylogowywanie", + "nav.main.description": "Główny pasek nawigacji", + "nav.mydspace": "Mój DSpace", + "nav.profile": "Profil", + "nav.search": "Wyszukiwanie", + "nav.statistics.header": "Statystyki", + "nav.stop-impersonating": "PrzestaÅ„ impersonifikować użytkownika", + "nav.toggle": "PrzeÅ‚Ä…cz nawigacjÄ™", + "nav.user.description": "Pasek profilu użytkownika", + "none.listelement.badge": "Pozycja", + "person.listelement.badge": "Osoba", + "person.listelement.no-title": "Nie znaleziono imienia", + "person.page.birthdate": "Data urodzenia", + "person.page.edit": "Edytuj pozycjÄ™", + "person.page.email": "Adres e-mail", + "person.page.firstname": "ImiÄ™", + "person.page.jobtitle": "Stanowisko", + "person.page.lastname": "Nazwisko", + "person.page.link.full": "Pokaż wszystkie metadane", + "person.page.orcid": "ORCID", + "person.page.orcid.create": "Utwórz ORCID ID", + "person.page.orcid.granted-authorizations": "Udzielone dostÄ™py", + "person.page.orcid.grant-authorizations": "Udziel dostÄ™pu", + "person.page.orcid.link": "PoÅ‚Ä…cz z ORCID ID", + "person.page.orcid.orcid-not-linked-message": "ORCID iD tego profilu ({{ orcid }}) nie jest poÅ‚Ä…czony z bazÄ… ORCID lub poÅ‚Ä…czenie wygasÅ‚o.", + "person.page.orcid.unlink": "Odepnij z ORCID", + "person.page.orcid.unlink.processing": "Procesowanie...", + "person.page.orcid.missing-authorizations": "Brak dostÄ™pów", + "person.page.orcid.missing-authorizations-message": "Brakuj nastÄ™pujÄ…cych dostÄ™pów:", + "person.page.orcid.no-missing-authorizations-message": "Åšwietnie! To miejsce jest puste, co oznacza, że masz dostÄ™p do wszystkich uprawnieÅ„, które sÄ… dostÄ™pne w Twojej instytucji.", + "person.page.orcid.no-orcid-message": "Brak przypisanego ORCID iD. Poprez wybranie przycisku poniżej możesz powiÄ…zać ten profil wraz z kontem ORCID.", + "person.page.orcid.profile-preferences": "Preferencje profilu", + "person.page.orcid.funding-preferences": "Preferencje finansowania", + "person.page.orcid.publications-preferences": "Preferencje publikacji", + "person.page.orcid.remove-orcid-message": "JeÅ›li chcesz usunąć Twój ORCID, skontaktuj siÄ™ z administratorem repozytorium", + "person.page.orcid.save.preference.changes": "Aktualizuj ustawienia", + "person.page.orcid.sync-profile.affiliation": "Afiliacja", + "person.page.orcid.sync-profile.biographical": "Biografia", + "person.page.orcid.sync-profile.education": "Edukacja", + "person.page.orcid.sync-profile.identifiers": "Identyfikatory", + "person.page.orcid.sync-fundings.all": "Wszystkie źrodÅ‚a finansowania", + "person.page.orcid.sync-fundings.mine": "Moje źrodÅ‚a finansowania", + "person.page.orcid.sync-fundings.my_selected": "Wybrane źródÅ‚a finansowania", + "person.page.orcid.sync-fundings.disabled": "Nieaktywne", + "person.page.orcid.sync-publications.all": "Wszystkie publikacje", + "person.page.orcid.sync-publications.mine": "Moje publikacje", + "person.page.orcid.sync-publications.my_selected": "Wybrane publikacje", + "person.page.orcid.sync-publications.disabled": "Nieaktywne", + "person.page.orcid.sync-queue.discard": "Odrzuć zmianÄ™ i nie synchronizuj z ORCID", + "person.page.orcid.sync-queue.discard.error": "Rekord kolejki ORCID nie zostaÅ‚ odrzucony", + "person.page.orcid.sync-queue.discard.success": "Rekord kolejki ORCID zostaÅ‚ odrzucony", + "person.page.orcid.sync-queue.empty-message": "Rejestr kolejki w ORCID jest pusty", + "person.page.orcid.sync-queue.description.affiliation": "Afiliacje", + "person.page.orcid.sync-queue.description.country": "Kraj", + "person.page.orcid.sync-queue.description.education": "Edukacja", + "person.page.orcid.sync-queue.description.external_ids": "ZewnÄ™trzne identyfikatory", + "person.page.orcid.sync-queue.description.other_names": "Inne imiona", + "person.page.orcid.sync-queue.description.qualification": "Kwalifikacje", + "person.page.orcid.sync-queue.description.researcher_urls": "URL naukowca", + "person.page.orcid.sync-queue.description.keywords": "SÅ‚owa kluczowe", + "person.page.orcid.sync-queue.tooltip.insert": "Dodaj nowy wpis w rejestrze ORCID", + "person.page.orcid.sync-queue.tooltip.update": "Aktualizuj ten wpis w rejestrze ORCID", + "person.page.orcid.sync-queue.tooltip.delete": "UsuÅ„ ten wpis z rejestru ORCID", + "person.page.orcid.sync-queue.tooltip.publication": "Publikacja", + "person.page.orcid.sync-queue.tooltip.affiliation": "Afiliacja", + "person.page.orcid.sync-queue.tooltip.education": "Edukacja", + "person.page.orcid.sync-queue.tooltip.qualification": "Kwalifikacje", + "person.page.orcid.sync-queue.tooltip.other_names": "Inna nazwa", + "person.page.orcid.sync-queue.tooltip.country": "Kraj", + "person.page.orcid.sync-queue.tooltip.keywords": "SÅ‚owa kluczowe", + "person.page.orcid.sync-queue.tooltip.external_ids": "ZewnÄ™trzny identyfikator", + "person.page.orcid.sync-queue.tooltip.researcher_urls": "URL naukowca", + "person.page.orcid.sync-queue.send": "Synchronizuj z rejestrem ORCID", + "person.page.orcid.sync-queue.send.unauthorized-error.title": "WysÅ‚anie zgÅ‚oszenia do ORCID nieudane z powodu braku uprawnieÅ„.", + "person.page.orcid.sync-queue.send.unauthorized-error.content": "Wybierz <a href='{{orcid}}'>here</a>, aby wystÄ…pić o niezbÄ™dne uprawnienia. JeÅ›li problem wciąż wystÄ™puje, skontaktuj siÄ™ z administratorem", + "person.page.orcid.sync-queue.send.bad-request-error": "WysÅ‚anie zgÅ‚oszenia do ORCID nie powiodÅ‚o siÄ™ ponieważ źródÅ‚a wysÅ‚ane do rejestru ORCID nie jest poprawne", + "person.page.orcid.sync-queue.send.error": "WysÅ‚anie zgÅ‚oszenia do ORCID nie powiodÅ‚o siÄ™", + "person.page.orcid.sync-queue.send.conflict-error": "ZgÅ‚oszenie do ORCID nie powiodÅ‚o siÄ™, ponieważ ta pozycja jest już dodana do rejestru ORCID", + "person.page.orcid.sync-queue.send.not-found-warning": "Pozycja nie istnieje już w rejestrze ORCID.", + "person.page.orcid.sync-queue.send.success": "ZgÅ‚oszenie do ORCID zostaÅ‚o zakoÅ„czone pomyÅ›lnie", + "person.page.orcid.sync-queue.send.validation-error": "Dane, które chcesz zsynchronizować z ORCID nie sÄ… poprawne", + "person.page.orcid.sync-queue.send.validation-error.amount-currency.required": "Waluta jest wymagana", + "person.page.orcid.sync-queue.send.validation-error.external-id.required": "Aby wysÅ‚ać pozycjÄ™, należy podać przynajmniej jeden identyfikator", + "person.page.orcid.sync-queue.send.validation-error.title.required": "TytuÅ‚ jest wymagany", + "person.page.orcid.sync-queue.send.validation-error.type.required": "Typ jest wymagany", + "person.page.orcid.sync-queue.send.validation-error.start-date.required": "Data poczÄ…tkowa jest wymagana", + "person.page.orcid.sync-queue.send.validation-error.funder.required": "Instytucja finansujÄ…ca jest wymagana", + "person.page.orcid.sync-queue.send.validation-error.organization.required": "Instytucja jest wymagana", + "person.page.orcid.sync-queue.send.validation-error.organization.name-required": "Nazwa instytucji jest wymagana", + "person.page.orcid.sync-queue.send.validation-error.organization.address-required": "Aby wysÅ‚ać instytucjÄ™, należy podać adres", + "person.page.orcid.sync-queue.send.validation-error.organization.city-required": "Aby wysÅ‚ać adres, należy podać miasto", + "person.page.orcid.sync-queue.send.validation-error.organization.country-required": "Aby wysÅ‚ać adres, należy podać kraj", + "person.page.orcid.sync-queue.send.validation-error.disambiguated-organization.required": "Wymagany jest identyfikator umożliwiajÄ…cy rozróżnienie instytucji. ObsÅ‚ugiwane identyfikatory to GRID, Ringgold, kod LEI oraz identyfikatory z rejestru instytucji finansujÄ…cych Crossref.", + "person.page.orcid.sync-queue.send.validation-error.disambiguated-organization.value-required": "Należy uzupeÅ‚nić wartość w identyfikatorze instytucji", + "person.page.orcid.sync-queue.send.validation-error.disambiguation-source.required": "Należy uzupeÅ‚nić źródÅ‚o w identyfikatorze instytucji", + "person.page.orcid.sync-queue.send.validation-error.disambiguation-source.invalid": "ŹródÅ‚o jednego z identyfikatorów organizcji jest niepoprawne. Wspierane źródÅ‚a to RINGGOLD, GRID, LEI and FUNDREF", + "person.page.orcid.synchronization-mode": "Tryb synchronizacji", + "person.page.orcid.synchronization-mode.batch": "Wsad", + "person.page.orcid.synchronization-mode.label": "Tryb synchronizacji", + "person.page.orcid.synchronization-mode-message": "WÅ‚Ä…cz tryb 'Manual' synchronizacja, aby wyÅ‚aczyć tryb synchronizacji wsadowej, wtedy dane do rejestru ORCID bÄ™dÄ… musiaÅ‚y zostać wysÅ‚ane rÄ™cznie", + "person.page.orcid.synchronization-settings-update.success": "Opcje synchronizacji zostaÅ‚y zaktualizowane", + "person.page.orcid.synchronization-settings-update.error": "Opcje synchronizacji nie zostaÅ‚y zaktualizowane", + "person.page.orcid.synchronization-mode.manual": "RÄ™czna", + "person.page.orcid.scope.authenticate": "Uzyskaj swój ORCID iD", + "person.page.orcid.scope.read-limited": "Przeczytaj informacje o ustawieniach widocznoÅ›ci z firmami trzeciami", + "person.page.orcid.scope.activities-update": "Dodaj/aktualizuj swoje aktywnoÅ›ci naukowe", + "person.page.orcid.scope.person-update": "Dodaj/aktualizuj inne informacje o Tobie", + "person.page.orcid.unlink.success": "OdÅ‚Ä…czenie Twojego profilu od rejestru ORCID powiodÅ‚o siÄ™", + "person.page.orcid.unlink.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas odÅ‚Ä…czania Twojego profilu od rejestru ORCID. Spróbuj ponownie", + "person.page.staffid": "ID pracownika", + "person.page.titleprefix": "Osoba: ", + "person.search.results.head": "Wyniki wyszukiwania użytkowników", + "person.search.title": "Wyniki wyszukiwania użytkowników", + "process.new.select-parameters": "Parametry", + "process.new.cancel": "Anuluj", + "process.new.submit": "Zapisz", + "process.new.select-script": "Skrypt", + "process.new.select-script.placeholder": "Wybierz skrypt...", + "process.new.select-script.required": "Skrypt jest wymagany", + "process.new.parameter.file.upload-button": "Wybierz plik...", + "process.new.parameter.file.required": "ProszÄ™ wybrać plik", + "process.new.parameter.string.required": "Wartość parametru jest wymagana", + "process.new.parameter.type.value": "wartość", + "process.new.parameter.type.file": "plik", + "process.new.parameter.required.missing": "Te parametry sÄ… wymagane, ale nie zostaÅ‚y uzupeÅ‚nione:", + "process.new.notification.success.title": "UdaÅ‚o siÄ™", + "process.new.notification.success.content": "UdaÅ‚o siÄ™ stworzyć proces", + "process.new.notification.error.title": "BÅ‚Ä…d", + "process.new.notification.error.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas tworzenia procesu", + "process.new.header": "Utwórz nowy proces", + "process.new.title": "Utwórz nowy proces", + "process.new.breadcrumbs": "Utwórz nowy proces", + "process.detail.arguments": "Argumenty", + "process.detail.arguments.empty": "Do tego procesu nie zostaÅ‚y przypisane żadne argumenty", + "process.detail.back": "Cofnij", + "process.detail.output": "Dane wyjÅ›ciowe procesu", + "process.detail.logs.button": "Odzyskaj dane wyjÅ›ciowe procesu", + "process.detail.logs.loading": "Odzyskiwanie", + "process.detail.logs.none": "Ten proces nie ma danych wyjÅ›ciowych", + "process.detail.output-files": "Pliki", + "process.detail.output-files.empty": "Ten proces nie ma żadnych plików danych wyjÅ›ciowych", + "process.detail.script": "Skrypt", + "process.detail.title": "Proces: {{ id }} - {{ name }}", + "process.detail.start-time": "Czas rozpoczÄ™cia procesu", + "process.detail.end-time": "Czas zakoÅ„czenia procesu", + "process.detail.status": "Status", + "process.detail.create": "Stwórz podobny proces", + "process.overview.table.finish": "Czas zakoÅ„czenia (UTC)", + "process.overview.table.id": "Identyfikator procesu", + "process.overview.table.name": "Nazwa", + "process.overview.table.start": "Czas rozpoczÄ™cia (UTC)", + "process.overview.table.status": "Status", + "process.overview.table.user": "Użytkownik", + "process.overview.title": "PrzeglÄ…d procesów", + "process.overview.breadcrumbs": "PrzeglÄ…d procesów", + "process.overview.new": "Nowy", + "profile.breadcrumbs": "Zaktualizuj profil", + "profile.card.identify": "Dane", + "profile.card.security": "BezpieczeÅ„stwo", + "profile.form.submit": "Zaktualizuj profil", + "profile.groups.head": "Posiadane uprawnienia do kolekcji", + "profile.head": "Zaktualizuj profil", + "profile.metadata.form.error.firstname.required": "ImiÄ™ jest wymagane", + "profile.metadata.form.error.lastname.required": "Nazwisko jest wymagane", + "profile.metadata.form.label.email": "Adres e-mail", + "profile.metadata.form.label.firstname": "ImiÄ™", + "profile.metadata.form.label.language": "JÄ™zyk", + "profile.metadata.form.label.lastname": "Nazwisko", + "profile.metadata.form.label.phone": "Telefon kontaktowy", + "profile.metadata.form.notifications.success.content": "Zmiany w profilu zostaÅ‚y zapisane.", + "profile.metadata.form.notifications.success.title": "Profil zapisany", + "profile.notifications.warning.no-changes.content": "Nie dokonano żadnych zmian w profilu.", + "profile.notifications.warning.no-changes.title": "Brak zmian", + "profile.security.form.error.matching-passwords": "HasÅ‚a nie sÄ… identyczne.", + "profile.security.form.info": "Możesz wprowadzić nowe hasÅ‚o w polu poniżej i zatwierdzić poprzez ponowne wpisanie. HasÅ‚o musi mieć przynajmniej 6 znaków.", + "profile.security.form.label.password": "HasÅ‚o", + "profile.security.form.label.passwordrepeat": "Potwierdź hasÅ‚o", + "profile.security.form.notifications.success.content": "Twoje zmiany w haÅ›le zostaÅ‚y zapisane.", + "profile.security.form.notifications.success.title": "HasÅ‚o zapisane", + "profile.security.form.notifications.error.title": "BÅ‚Ä…d podczas próby zmiany hasÅ‚a", + "profile.security.form.notifications.error.not-same": "HasÅ‚a nie sÄ… identyczne.", + "profile.title": "Zaktualizuj profil", + "profile.card.researcher": "Profil naukowca", + "project.listelement.badge": "Projekt badawczy", + "project.page.contributor": "Autorzy", + "project.page.description": "Opis", + "project.page.edit": "Edytuj pozycjÄ™", + "project.page.expectedcompletion": "Spodziewany termin zakoÅ„czenia", + "project.page.funder": "Instytucje finansujÄ…ce", + "project.page.id": "ID", + "project.page.keyword": "SÅ‚owa kluczowe", + "project.page.status": "Status", + "project.page.titleprefix": "Projekt badawczy: ", + "project.search.results.head": "Wyniki wyszukiwania projektów", + "publication.listelement.badge": "Publikacja", + "publication.page.description": "Opis", + "publication.page.edit": "Edytuj pozycjÄ™", + "publication.page.journal-issn": "ISSN czasopisma", + "publication.page.journal-title": "TytuÅ‚ czasopisma", + "publication.page.publisher": "Wydawca", + "publication.page.titleprefix": "Publikacja: ", + "publication.page.volume-title": "TytuÅ‚ tomu", + "publication.search.results.head": "Wyniki wyszukiwania publikacji", + "publication.search.title": "Wyszukiwanie publikacji", + "media-viewer.next": "Nowy", + "media-viewer.previous": "Poprzedni", + "media-viewer.playlist": "Playlista", + "register-email.title": "Rejestracja nowego użytkownika", + "register-page.create-profile.header": "Stwórz profil", + "register-page.create-profile.identification.header": "Dane", + "register-page.create-profile.identification.email": "Adres e-mail", + "register-page.create-profile.identification.first-name": "ImiÄ™ *", + "register-page.create-profile.identification.first-name.error": "Wpisz imiÄ™", + "register-page.create-profile.identification.last-name": "Nazwisko *", + "register-page.create-profile.identification.last-name.error": "Wpisz nazwisko", + "register-page.create-profile.identification.contact": "Telefon kontaktowy", + "register-page.create-profile.identification.language": "JÄ™zyk", + "register-page.create-profile.security.header": "BezpieczeÅ„stwo", + "register-page.create-profile.security.info": "Wprowadź nowe hasÅ‚o w polu poniżej i zatwierdź poprzez ponowne wpisanie w drugim polu. HasÅ‚o musi mieć przynajmniej 6 znaków.", + "register-page.create-profile.security.label.password": "HasÅ‚o *", + "register-page.create-profile.security.label.passwordrepeat": "Potwierdź hasÅ‚o *", + "register-page.create-profile.security.error.empty-password": "Wprowadź hasÅ‚o w polu poniżej.", + "register-page.create-profile.security.error.matching-passwords": "HasÅ‚a nie sÄ… identyczne.", + "register-page.create-profile.submit": "Rejestracja zakoÅ„czona", + "register-page.create-profile.submit.error.content": "CoÅ› siÄ™ nie udaÅ‚o podczas rejestracji nowego użytkownika.", + "register-page.create-profile.submit.error.head": "Rejestracja nie powiodÅ‚a siÄ™", + "register-page.create-profile.submit.success.content": "Rejestracja powiodÅ‚a siÄ™. Zalogowano jako stworzony użytkownik.", + "register-page.create-profile.submit.success.head": "Rejestracja zakoÅ„czona", + "register-page.registration.header": "Rejestracja nowego użytkownika", + "register-page.registration.info": "Zarejestruj siÄ™, aby otrzymywać wiadomoÅ›ci o nowych pozycjach w obserowanych kolekcjach, a także przesyÅ‚ać nowe pozycje do repozytorium.", + "register-page.registration.email": "Adres e-mail *", + "register-page.registration.email.error.required": "WypeÅ‚nij adres e-mail", + "register-page.registration.email.error.pattern": "WypeÅ‚nij poprawny adres e-mail", + "register-page.registration.email.hint": "Ten adres e-mail bÄ™dzie zweryfikowany i bÄ™dziesz go używać jako swój login.", + "register-page.registration.submit": "Zarejestruj siÄ™", + "register-page.registration.success.head": "Wiadomość weryfikacyjna zostaÅ‚Ä… wysÅ‚ana", + "register-page.registration.success.content": "Wiadomość zostaÅ‚a wysÅ‚ana na adres e-mail {{ email }}. Zawiera ona unikatowy link i dalsze instrukcje postÄ™powania.", + "register-page.registration.error.head": "BÅ‚Ä…d podczas próby rejestracji adresu e-mail", + "register-page.registration.error.content": "BÅ‚Ä…d podczas próby rejestracji adresu e-mail: {{ email }}", + "relationships.add.error.relationship-type.content": "Nie znaleziono dopasowania dla typu relacji {{ type }} pomiÄ™dzy dwoma pozycjami", + "relationships.add.error.server.content": "BÅ‚Ä…d serwera", + "relationships.add.error.title": "Nie można dodać relacji", + "relationships.isAuthorOf": "Autorzy", + "relationships.isAuthorOf.Person": "Autorzy (osoby)", + "relationships.isAuthorOf.OrgUnit": "Autorzy (jednostki organizacyjne)", + "relationships.isIssueOf": "Numery czasopisma", + "relationships.isJournalIssueOf": "Numer czasopisma", + "relationships.isJournalOf": "Czasopisma", + "relationships.isOrgUnitOf": "Jednostki organizacyjne", + "relationships.isPersonOf": "Autorzy", + "relationships.isProjectOf": "Projekty badawcze", + "relationships.isPublicationOf": "Publikacje", + "relationships.isPublicationOfJournalIssue": "ArtykuÅ‚y", + "relationships.isSingleJournalOf": "Czasopismo", + "relationships.isSingleVolumeOf": "Tom czasopisma", + "relationships.isVolumeOf": "Tomy czasopisma", + "relationships.isContributorOf": "Autorzy", + "relationships.isContributorOf.OrgUnit": "Autor (Jednostka organizacyjna)", + "relationships.isContributorOf.Person": "Autor", + "relationships.isFundingAgencyOf.OrgUnit": "Instytucja finansujÄ…ca", + "repository.image.logo": "Logo repozytorium", + "repository.title.prefix": "DSpace Angular :: ", + "researcher.profile.action.processing": "Procesowanie...", + "researcher.profile.associated": "Przypisanie profilu badacza", + "researcher.profile.create.new": "Utwórz nowy", + "researcher.profile.create.success": "Profil badacza zostaÅ‚ utworzony", + "researcher.profile.create.fail": "WystÄ…piÅ‚ bÅ‚Ä…d poczas tworzenia profilu badacza.", + "researcher.profile.delete": "UsuÅ„", + "researcher.profile.expose": "Ujawnij", + "researcher.profile.hide": "Ukryj", + "researcher.profile.not.associated": "Profil badacza nie zostaÅ‚ jeszcze przypisany", + "researcher.profile.view": "Widok", + "researcher.profile.private.visibility": "PRYWATNY", + "researcher.profile.public.visibility": "PUBLICZNY", + "researcher.profile.status": "Status:", + "researcherprofile.claim.not-authorized": "Nie masz uprawnieÅ„, aby wystÄ…pić o tÄ™ pozycjÄ™. Aby otrzymać wiÄ™cej szczegółów, skontaktuj siÄ™ z administratorami.", + "researcherprofile.error.claim.body": "WystÄ…piÅ‚ bÅ‚Ä…d podczas wystÄ…pienia z proÅ›bÄ… o przypisanie profilu. Spróbuj ponownie później.", + "researcherprofile.error.claim.title": "BÅ‚Ä…d", + "researcherprofile.success.claim.body": "WystÄ…pienie z proÅ›bÄ… o przypisanie profilu udane", + "researcherprofile.success.claim.title": "Sukces", + "repository.title.prefixDSpace": "DSpace Angular ::", + "resource-policies.add.button": "Dodaj", + "resource-policies.add.for.": "Dodaj nowÄ… politykÄ™", + "resource-policies.add.for.bitstream": "Dodaj nowÄ… politykÄ™ dla plików", + "resource-policies.add.for.bundle": "Dodaj nowÄ… politykÄ™ paczek", + "resource-policies.add.for.item": "Dodaj nowÄ… politykÄ™ pozycji", + "resource-policies.add.for.community": "Dodaj nowÄ… politykÄ™ zbioru", + "resource-policies.add.for.collection": "Dodaj nowÄ… politykÄ™ kolekcji", + "resource-policies.create.page.heading": "Utwórz nowÄ… politykÄ™ zasobu dla ", + "resource-policies.create.page.failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas dodawania polityki zasobów.", + "resource-policies.create.page.success.content": "DziaÅ‚anie powiodÅ‚o siÄ™", + "resource-policies.create.page.title": "Utwórz nowÄ… politykÄ™ zasobu", + "resource-policies.delete.btn": "UsuÅ„ zaznaczone", + "resource-policies.delete.btn.title": "UsuÅ„ zaznaczone polityki zasobów", + "resource-policies.delete.failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas usuwania wybranych polityk zasobów.", + "resource-policies.delete.success.content": "DziaÅ‚anie powiodÅ‚o siÄ™", + "resource-policies.edit.page.heading": "Edytuj politykÄ™ zasobu ", + "resource-policies.edit.page.failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d poczas edytowania polityki zasobu.", + "resource-policies.edit.page.success.content": "DziaÅ‚anie udaÅ‚o siÄ™", + "resource-policies.edit.page.title": "Edytuj politykÄ™ zasobu", + "resource-policies.form.action-type.label": "Wybierz ten typ akcji", + "resource-policies.form.action-type.required": "Musisz wybrać akcjÄ™ polityki zasobu.", + "resource-policies.form.eperson-group-list.label": "Użytkownik lub grupa, która otrzyma uprawnienia.", + "resource-policies.form.eperson-group-list.select.btn": "Wybierz", + "resource-policies.form.eperson-group-list.tab.eperson": "Wyszukaj użytkownika", + "resource-policies.form.eperson-group-list.tab.group": "Wyszukaj grupÄ™", + "resource-policies.form.eperson-group-list.table.headers.action": "Akcja", + "resource-policies.form.eperson-group-list.table.headers.id": "ID", + "resource-policies.form.eperson-group-list.table.headers.name": "Nazwa", + "resource-policies.form.date.end.label": "Data zakoÅ„czenia", + "resource-policies.form.date.start.label": "Data rozpoczÄ™cia", + "resource-policies.form.description.label": "Opis", + "resource-policies.form.name.label": "Nazwa", + "resource-policies.form.policy-type.label": "Wybierz typ polityki", + "resource-policies.form.policy-type.required": "Musisz wybrać typ polityki zasobu.", + "resource-policies.table.headers.action": "Akcja", + "resource-policies.table.headers.date.end": "Data zakoÅ„czenia", + "resource-policies.table.headers.date.start": "Data rozpoczÄ™cia", + "resource-policies.table.headers.edit": "Edytuj", + "resource-policies.table.headers.edit.group": "Edytuj grupÄ™", + "resource-policies.table.headers.edit.policy": "Edytuj politykÄ™", + "resource-policies.table.headers.eperson": "Użytkownik", + "resource-policies.table.headers.group": "Grupa", + "resource-policies.table.headers.id": "ID", + "resource-policies.table.headers.name": "Nazwa", + "resource-policies.table.headers.policyType": "typ", + "resource-policies.table.headers.title.for.bitstream": "Polityki dla plików", + "resource-policies.table.headers.title.for.bundle": "Polityki dla paczek", + "resource-policies.table.headers.title.for.item": "Polityki dla pozycji", + "resource-policies.table.headers.title.for.community": "Polityki dla zbioru", + "resource-policies.table.headers.title.for.collection": "Polityki dla kolekcji", + "search.description": "", + "search.switch-configuration.title": "Pokaż", + "search.title": "Szukaj", + "search.breadcrumbs": "Szukaj", + "search.search-form.placeholder": "Szukaj w repozytorium...", + "search.filters.applied.f.author": "Autor", + "search.filters.applied.f.dateIssued.max": "Data zakoÅ„czenia", + "search.filters.applied.f.dateIssued.min": "Data rozpoczÄ™cia", + "search.filters.applied.f.dateSubmitted": "Data zgÅ‚oszenia", + "search.filters.applied.f.discoverable": "Ukryty", + "search.filters.applied.f.entityType": "Typ pozycji", + "search.filters.applied.f.has_content_in_original_bundle": "Ma przypisane pliki", + "search.filters.applied.f.itemtype": "Typ", + "search.filters.applied.f.namedresourcetype": "Status", + "search.filters.applied.f.subject": "Temat", + "search.filters.applied.f.submitter": "ZgÅ‚aszajÄ…cy", + "search.filters.applied.f.jobTitle": "Stanowisko", + "search.filters.applied.f.birthDate.max": "Data zakoÅ„czenia tworzenia", + "search.filters.applied.f.birthDate.min": "Data rozpoczÄ™cia tworzenia", + "search.filters.applied.f.withdrawn": "Wycofane", + "search.filters.filter.author.head": "Autor", + "search.filters.filter.author.placeholder": "Autor", + "search.filters.filter.author.label": "Wyszukaj autora", + "search.filters.filter.birthDate.head": "Data urodzenia", + "search.filters.filter.birthDate.placeholder": "Data urodzenia", + "search.filters.filter.birthDate.label": "Wyszukaj datÄ™ urodzenia", + "search.filters.filter.collapse": "Ukryj filtr", + "search.filters.filter.creativeDatePublished.head": "Data opublikowania", + "search.filters.filter.creativeDatePublished.placeholder": "Data opublikowania", + "search.filters.filter.creativeDatePublished.label": "Wyszukaj datÄ™ opublikowania", + "search.filters.filter.creativeWorkEditor.head": "Redaktor", + "search.filters.filter.creativeWorkEditor.placeholder": "Redaktor", + "search.filters.filter.creativeWorkEditor.label": "Wyszukaj redaktora", + "search.filters.filter.creativeWorkKeywords.head": "SÅ‚owo kluczowe", + "search.filters.filter.creativeWorkKeywords.placeholder": "SÅ‚owo kluczowe", + "search.filters.filter.creativeWorkKeywords.label": "Wyszukaj temat", + "search.filters.filter.creativeWorkPublisher.head": "Wydawca", + "search.filters.filter.creativeWorkPublisher.placeholder": "Wydawca", + "search.filters.filter.creativeWorkPublisher.label": "Wyszukaj wydawcÄ™", + "search.filters.filter.dateIssued.head": "Data", + "search.filters.filter.dateIssued.max.placeholder": "Data maksymalna", + "search.filters.filter.dateIssued.max.label": "Koniec", + "search.filters.filter.dateIssued.min.placeholder": "Data minimalna", + "search.filters.filter.dateIssued.min.label": "Start", + "search.filters.filter.dateSubmitted.head": "Data zgÅ‚oszenia", + "search.filters.filter.dateSubmitted.placeholder": "Data zgÅ‚oszenia", + "search.filters.filter.dateSubmitted.label": "Wyszukaj datÄ™ zgÅ‚oszenia", + "search.filters.filter.discoverable.head": "Ukryty", + "search.filters.filter.withdrawn.head": "Wycofane", + "search.filters.filter.entityType.head": "Typ pozycji", + "search.filters.filter.entityType.placeholder": "Typ pozycji", + "search.filters.filter.entityType.label": "Wyszukaj typ pozycji", + "search.filters.filter.expand": "RozwiÅ„ filtr", + "search.filters.filter.has_content_in_original_bundle.head": "Ma przypisane pliki", + "search.filters.filter.itemtype.head": "Typ", + "search.filters.filter.itemtype.placeholder": "Typ", + "search.filters.filter.itemtype.label": "Wyszukaj typ", + "search.filters.filter.jobTitle.head": "Stanowisko", + "search.filters.filter.jobTitle.placeholder": "Stanowisko", + "search.filters.filter.jobTitle.label": "Wyszukaj stanowisko", + "search.filters.filter.knowsLanguage.head": "Znajomość jÄ™zyka", + "search.filters.filter.knowsLanguage.placeholder": "Znajomość jÄ™zyka", + "search.filters.filter.knowsLanguage.label": "Wyszukaj wg znajomoÅ›ci jÄ™zyka", + "search.filters.filter.namedresourcetype.head": "Status", + "search.filters.filter.namedresourcetype.placeholder": "Status", + "search.filters.filter.namedresourcetype.label": "Wyszukaj status", + "search.filters.filter.objectpeople.head": "Osoby", + "search.filters.filter.objectpeople.placeholder": "Osoby", + "search.filters.filter.objectpeople.label": "Wyszukaj użytkowników", + "search.filters.filter.organizationAddressCountry.head": "Kraj", + "search.filters.filter.organizationAddressCountry.placeholder": "Kraj", + "search.filters.filter.organizationAddressCountry.label": "Wyszukaj kraj", + "search.filters.filter.organizationAddressLocality.head": "Miasto", + "search.filters.filter.organizationAddressLocality.placeholder": "Miasto", + "search.filters.filter.organizationAddressLocality.label": "Wyszukaj miasto", + "search.filters.filter.organizationFoundingDate.head": "Data zaÅ‚ożenia", + "search.filters.filter.organizationFoundingDate.placeholder": "Data zaÅ‚ożenia", + "search.filters.filter.organizationFoundingDate.label": "Wyszukaj datÄ™ zaÅ‚ożenia", + "search.filters.filter.scope.head": "Zakres", + "search.filters.filter.scope.placeholder": "Filtr zakresu", + "search.filters.filter.scope.label": "Wyszukaj filtr zakresu", + "search.filters.filter.show-less": "Pokaż mniej", + "search.filters.filter.show-more": "Pokaż wiÄ™cej", + "search.filters.filter.subject.head": "Temat", + "search.filters.filter.subject.placeholder": "Temat", + "search.filters.filter.subject.label": "Wyszukaj temat", + "search.filters.filter.submitter.head": "ZgÅ‚aszajÄ…cy", + "search.filters.filter.submitter.placeholder": "ZgÅ‚aszajÄ…cy", + "search.filters.filter.submitter.label": "Wyszukaj zgÅ‚aszajÄ…cego", + "search.filters.entityType.JournalIssue": "Numer czasopisma", + "search.filters.entityType.JournalVolume": "Tom czasopisma", + "search.filters.entityType.OrgUnit": "Jednostka organizacyjna", + "search.filters.has_content_in_original_bundle.true": "Tak", + "search.filters.has_content_in_original_bundle.false": "Nie", + "search.filters.discoverable.true": "Nie", + "search.filters.discoverable.false": "Tak", + "search.filters.withdrawn.true": "Tak", + "search.filters.withdrawn.false": "Nie", + "search.filters.head": "Filtry", + "search.filters.reset": "Resetuj filtry", + "search.filters.search.submit": "Zastosuj", + "search.form.search": "Wyszukaj", + "search.form.search_dspace": "W repozytorium", + "search.form.scope.all": "W caÅ‚ym DSpace", + "search.results.head": "Wyniki wyszukiwania", + "default.search.results.head": "Wyniki wyszukiwania", + "search.results.no-results": "Twoj wyszukiwanie nie zwróciÅ‚o żadnych rezultatów. Masz problem ze znalezieniem tego czego szukasz? Spróbuj użyć", + "search.results.no-results-link": "fraz podobnych do Twojego wyszukiwania", + "search.results.empty": "Twoje wyszukiwanie nie zwróciÅ‚o żadnych rezultatów.", + "search.sidebar.close": "Wróć do wyników wyszukiwania", + "search.sidebar.filters.title": "Filtry", + "search.sidebar.open": "NarzÄ™dzia wyszukiwania", + "search.sidebar.results": "wyniki", + "search.sidebar.settings.rpp": "Wyników na stronie", + "search.sidebar.settings.sort-by": "Sortuj wedÅ‚ug", + "search.sidebar.settings.title": "Ustawienia", + "search.view-switch.show-detail": "WyÅ›wietl widok szczegółowy", + "search.view-switch.show-grid": "WyÅ›wietl jako siatkÄ™", + "search.view-switch.show-list": "WyÅ›wietl jako listÄ™", + "sorting.ASC": "RosnÄ…co", + "sorting.DESC": "MalejÄ…co", + "sorting.dc.title.ASC": "TytuÅ‚ami rosnÄ…co", + "sorting.dc.title.DESC": "TytuÅ‚ami malejÄ…co", + "sorting.score.ASC": "Najmniej trafne", + "sorting.score.DESC": "Najbardziej trafne", + "sorting.dc.date.issued.ASC": "Data wydania rosnÄ…co", + "sorting.dc.date.issued.DESC": "Data wydania malejÄ…co", + "sorting.dc.date.accessioned.ASC": "Data dostÄ™pu rosnÄ…co", + "sorting.dc.date.accessioned.DESC": "Data dostÄ™pu malejÄ…co", + "sorting.lastModified.ASC": "Ostatnia modyfikacja rosnÄ…co", + "sorting.lastModified.DESC": "Ostatnia modyfikacja malejÄ…co", + "statistics.title": "Statystyki", + "statistics.header": "Statystyki dla {{ scope }}", + "statistics.breadcrumbs": "Statystyki", + "statistics.page.no-data": "Brak dostÄ™pnych danych", + "statistics.table.no-data": "Brak dostÄ™pnych danych", + "statistics.table.header.views": "WyÅ›wietlenia", + "submission.edit.breadcrumbs": "Edytuj zgÅ‚oszenie", + "submission.edit.title": "Edytuj zgÅ‚oszenie", + "submission.general.cancel": "Anuluj", + "submission.general.cannot_submit": "Nie masz uprawnieÅ„, aby utworzyć nowe zgÅ‚oszenie.", + "submission.general.deposit": "Deponuj", + "submission.general.discard.confirm.cancel": "Anuluj", + "submission.general.discard.confirm.info": "Czy na pewno? To dziaÅ‚anie nie może zostać cofniÄ™te.", + "submission.general.discard.confirm.submit": "Tak, na pewno", + "submission.general.discard.confirm.title": "Odrzuć zgÅ‚oszenie", + "submission.general.discard.submit": "Odrzuć", + "submission.general.info.saved": "Zapisane", + "submission.general.info.pending-changes": "Niezapisane zmiany", + "submission.general.save": "Zapisz", + "submission.general.save-later": "Zapisz wersjÄ™ roboczÄ…", + "submission.import-external.page.title": "Importuj metdane z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title": "Importuj metadane z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title.Journal": "Importuj czasopismo z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title.JournalIssue": "Importuj numer czasopisma z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title.JournalVolume": "Importuj tom czasopisma z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title.OrgUnit": "Importuj wydawcÄ™ z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title.Person": "Importuj osobÄ™ z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title.Project": "Importuj projekt z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title.Publication": "Importuj publikacjÄ™ z zewnÄ™trznego źródÅ‚a", + "submission.import-external.title.none": "Importuj metadane z zewnÄ™trznego źródÅ‚a", + "submission.import-external.page.hint": "Enter a query above to find items from the web to import in to DSpace.", + "submission.import-external.back-to-my-dspace": "Powrót do MyDSpace", + "submission.import-external.search.placeholder": "Wyszukaj zewnÄ™trzne źródÅ‚a danych", + "submission.import-external.search.button": "Szukaj", + "submission.import-external.search.button.hint": "Zacznij wpisywać frazÄ™, aby wyszukać", + "submission.import-external.search.source.hint": "Wybierz zewnÄ™trzne źródÅ‚o", + "submission.import-external.source.ads": "NASA/ADS", + "submission.import-external.source.arxiv": "arXiv", + "submission.import-external.source.cinii": "CiNii", + "submission.import-external.source.crossref": "CrossRef", + "submission.import-external.source.loading": "Å‚adowanie...", + "submission.import-external.source.sherpaJournal": "Czasopisma w SHERPA", + "submission.import-external.source.sherpaJournalIssn": "Czasopisma w SHERPA wg ISSN", + "submission.import-external.source.sherpaPublisher": "Wydawcy w SHERPA", + "submission.import-external.source.openAIREFunding": "Finansowanie OpenAIRE API", + "submission.import-external.source.orcid": "ORCID", + "submission.import-external.source.orcidWorks": "ORCID", + "submission.import-external.source.pubmed": "Pubmed", + "submission.import-external.source.pubmedeu": "Pubmed Europe", + "submission.import-external.source.lcname": "Nazwy Biblioteki Kongresu", + "submission.import-external.source.scielo": "SciELO", + "submission.import-external.source.scopus": "Scopus", + "submission.import-external.source.vufind": "VuFind", + "submission.import-external.source.wos": "Web Of Science", + "submission.import-external.source.epo": "Europejski UrzÄ…d Patentowy (EPO)", + "submission.import-external.preview.title.Journal": "PodglÄ…d czasopisma", + "submission.import-external.preview.title.OrgUnit": "PodglÄ…d organizacji", + "submission.import-external.preview.title.Person": "PodglÄ…d osoby", + "submission.import-external.preview.title.Project": "PodglÄ…d projektu", + "submission.import-external.preview.title.Publication": "PodglÄ…d publikacji", + "submission.import-external.preview.subtitle": "Metadane poniżej zostaÅ‚y zaimportowane z zewnÄ™trznego źródÅ‚a. Niektóre pola zostanÄ… uzupeÅ‚nione automatycznie, kiedy rozpoczniesz zgÅ‚aszanie pozycji.", + "submission.import-external.preview.button.import": "Rozpocznij zgÅ‚oszenie", + "submission.import-external.preview.error.import.title": "BÅ‚Ä…d zgÅ‚oszenia", + "submission.import-external.preview.error.import.body": "WystÄ…piÅ‚ bÅ‚Ä…d podczas procesu importowania pozycji z zewnÄ™trznego źródÅ‚a.", + "submission.sections.describe.relationship-lookup.close": "Zamknij", + "submission.sections.describe.relationship-lookup.external-source.added": "UdaÅ‚o siÄ™ dodać wpis do selekcji", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.isAuthorOfPublication": "Importuj zdalnego autora", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal": "Importuj zdalne czasopismo", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Issue": "Importuj zdalny numer czasopisma", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Volume": "Importuj zdalny tom czasopisma", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.isProjectOfPublication": "Projekt", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.added.new-entity": "Nowy typ danych dodany!", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.title": "Projekt", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.openAIREFunding": "Finansowanie OpenAIRE API", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.title": "Importuj zdalnego autora", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Person": "Importuj zdalnÄ… osobÄ™", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Product": "Importuj zdalny produkt", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Equipment": "Importuj zdalnÄ… aparaturÄ™ badawczÄ…", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Event": "Importuj zdalne wydarzenie", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Funding": "Importuj zdalnÄ… instytucjÄ™ finansujÄ…cÄ…", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.OrgUnit": "Importuj zdalnego wydawcÄ™", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Patent": "Importuj zdalnie patent", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Project": "Importuj zdalnie projekt", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Publication": "Importuj zdalnie publikacjÄ™", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.added.local-entity": "UdaÅ‚o siÄ™ dodać autora do selekcji", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.added.new-entity": "UdaÅ‚o siÄ™ zaimportować i dodać zewnÄ™trznego autora do selekcji", + "submission.sections.describe.relationship-lookup.external-source.import-modal.authority": "NadrzÄ™dność", + "submission.sections.describe.relationship-lookup.external-source.import-modal.authority.new": "Importuj jako nowÄ…, lokalnÄ…, nadrzÄ™dnÄ… pozycjÄ™", + "submission.sections.describe.relationship-lookup.external-source.import-modal.cancel": "Anuluj", + "submission.sections.describe.relationship-lookup.external-source.import-modal.collection": "Wybierz kolekcjÄ™ do zaimportowania nowych pozycji", + "submission.sections.describe.relationship-lookup.external-source.import-modal.entities": "Typ danych", + "submission.sections.describe.relationship-lookup.external-source.import-modal.entities.new": "Importuj jako nowy lokalny typ danych", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.lcname": "Importuj z LC Name", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.orcid": "Importuj z ORCID", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaJournal": "Importuj z Sherpa Journal", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaPublisher": "Importuj z Sherpa Publisher", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.pubmed": "Importuj z PubMed", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.arxiv": "Importuj z arXiv", + "submission.sections.describe.relationship-lookup.external-source.import-modal.import": "Import", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.title": "Importuj zdalne czasopismo", + "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.new-entity": "Successfully imported and added external journal to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.title": "Importuj zdalny numer czasopisma", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.local-entity": "UdaÅ‚o siÄ™ dodać lokalne czasopismo do zaznaczenia", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.new-entity": "UdaÅ‚o siÄ™ zaimportować i dodać czasopismo zewnÄ™trzne do zaznaczenia", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.title": "Importuj zdalny numer czasopisma", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.local-entity": "UdaÅ‚o siÄ™ dodać lokalny numer czasopismo do zaznaczenia", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.new-entity": "UdaÅ‚o siÄ™ zaimportować i dodać zewnÄ™trzny numer czasopisma do zaznaczenia", + "submission.sections.describe.relationship-lookup.external-source.import-modal.select": "Wybierz lokalne powiÄ…zanie:", + "submission.sections.describe.relationship-lookup.search-tab.deselect-all": "Odznacz wszystko", + "submission.sections.describe.relationship-lookup.search-tab.deselect-page": "Odznacz stronÄ™", + "submission.sections.describe.relationship-lookup.search-tab.loading": "Åadowanie...", + "submission.sections.describe.relationship-lookup.search-tab.placeholder": "Wyszukaj zapytanie", + "submission.sections.describe.relationship-lookup.search-tab.search": "Zastosuj", + "submission.sections.describe.relationship-lookup.search-tab.search-form.placeholder": "Wyszukaj...", + "submission.sections.describe.relationship-lookup.search-tab.select-all": "Zaznacz wszystko", + "submission.sections.describe.relationship-lookup.search-tab.select-page": "Zaznacz stronÄ™", + "submission.sections.describe.relationship-lookup.selected": "Zaznacz {{ size }} pozycji", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isAuthorOfPublication": "Autorzy lokalni ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalOfPublication": "Czasopisma lokalne ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Project": "Projekty lokalne ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Publication": "Publikacje lokalne ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Person": "Autorzy lokalni ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.OrgUnit": "Lokalne jednostki organizacyjne ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.DataPackage": "Lokalne paczki danych ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.DataFile": "Lokalne pliki danych ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Journal": "Lokalne czasopisma ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalIssueOfPublication": "Lokalne numery czasopism ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.JournalIssue": "Lokalne numery czasopism ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalVolumeOfPublication": "Lokalne tomy czasopism ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.JournalVolume": "Lokalne tomy czasopism ({{ 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.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.pubmed": "PubMed ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.arxiv": "arXiv ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfPublication": "Wyszukaj instytucje finansujÄ…ce", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingOfPublication": "Wyszukaj finansowanie", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isChildOrgUnitOf": "Wyszukaj jednostki organizacyjne", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.openAIREFunding": "Finansowanie OpenAIRE API", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isProjectOfPublication": "Projekty", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfProject": "Instytucja finansujÄ…ca projekt", + "submission.sections.describe.relationship-lookup.selection-tab.title.openAIREFunding": "Finansowanie OpenAIRE API", + "submission.sections.describe.relationship-lookup.selection-tab.title.isProjectOfPublication": "Projekt", + "submission.sections.describe.relationship-lookup.title.isProjectOfPublication": "Projekty", + "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfProject": "Instytucja finansujÄ…ca projekt", + "submission.sections.describe.relationship-lookup.selection-tab.search-form.placeholder": "Wyszukaj...", + "submission.sections.describe.relationship-lookup.selection-tab.tab-title": "Aktualne zaznaczenie ({{ count }})", + "submission.sections.describe.relationship-lookup.title.isJournalIssueOfPublication": "Numery czasopisma", + "submission.sections.describe.relationship-lookup.title.JournalIssue": "Numery czasopisma", + "submission.sections.describe.relationship-lookup.title.isJournalVolumeOfPublication": "Tomy czasopisma", + "submission.sections.describe.relationship-lookup.title.JournalVolume": "Tomy czasopisma", + "submission.sections.describe.relationship-lookup.title.isJournalOfPublication": "Czasopisma", + "submission.sections.describe.relationship-lookup.title.isAuthorOfPublication": "Autorzy", + "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfPublication": "Instytucja finansujÄ…ca", + "submission.sections.describe.relationship-lookup.title.Project": "Projekty", + "submission.sections.describe.relationship-lookup.title.Publication": "Publikacje", + "submission.sections.describe.relationship-lookup.title.Person": "Autorzy", + "submission.sections.describe.relationship-lookup.title.OrgUnit": "Jednostki organizacyjne", + "submission.sections.describe.relationship-lookup.title.DataPackage": "Paczki danych", + "submission.sections.describe.relationship-lookup.title.DataFile": "Pliki danych", + "submission.sections.describe.relationship-lookup.title.Funding Agency": "Instytucja finansujÄ…ca", + "submission.sections.describe.relationship-lookup.title.isFundingOfPublication": "Finansowanie", + "submission.sections.describe.relationship-lookup.title.isChildOrgUnitOf": "NadrzÄ™dna jednostka organizacyjna", + "submission.sections.describe.relationship-lookup.search-tab.toggle-dropdown": "PrzeÅ‚Ä…cz na listÄ™ rozwijanÄ…", + "submission.sections.describe.relationship-lookup.selection-tab.settings": "Ustawienia", + "submission.sections.describe.relationship-lookup.selection-tab.no-selection": "Twoje zaznaczenie jest puste.", + "submission.sections.describe.relationship-lookup.selection-tab.title.isAuthorOfPublication": "Wybrani autorzy", + "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalOfPublication": "Wybrane czasopisma", + "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalVolumeOfPublication": "Wybrane tomy czasopisma", + "submission.sections.describe.relationship-lookup.selection-tab.title.Project": "Wybrane projekty", + "submission.sections.describe.relationship-lookup.selection-tab.title.Publication": "Wybrane publikacje", + "submission.sections.describe.relationship-lookup.selection-tab.title.Person": "Wybrani autorzy", + "submission.sections.describe.relationship-lookup.selection-tab.title.OrgUnit": "Wybrane jednostki organizacyjne", + "submission.sections.describe.relationship-lookup.selection-tab.title.DataPackage": "Wybrane pakiety danych", + "submission.sections.describe.relationship-lookup.selection-tab.title.DataFile": "Wybrane pliki danych", + "submission.sections.describe.relationship-lookup.selection-tab.title.Journal": "Wybrane czasopisma", + "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalIssueOfPublication": "Wybrany numer wydania", + "submission.sections.describe.relationship-lookup.selection-tab.title.JournalVolume": "Wybrany tom czasopisma", + "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingAgencyOfPublication": "Wybrane instytucje finansujÄ…ce", + "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingOfPublication": "Wybrane finansowanie", + "submission.sections.describe.relationship-lookup.selection-tab.title.JournalIssue": "Wybrany numer wydania", + "submission.sections.describe.relationship-lookup.selection-tab.title.isChildOrgUnitOf": "Wybrana jednostka organizacyjna", + "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaJournal": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.crossref": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaPublisher": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.orcid": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.orcidv2": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.lcname": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.pubmed": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.arxiv": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.epo": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.scopus": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.scielo": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title.wos": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.selection-tab.title": "Wyniki wyszukiwania", + "submission.sections.describe.relationship-lookup.name-variant.notification.content": "Czy chcesz zapisać \"{{ value }}\" jako wariant imienia dla tego użytkownika, aby Ty lub inni użytkownicy mogli używać tego wariantu w przyszÅ‚ych zgÅ‚oszeniach?. JeÅ›li nie, nadal możesz użyć tego wariantu w tym zgÅ‚oszeniu.", + "submission.sections.describe.relationship-lookup.name-variant.notification.confirm": "Zapisz nowy wariant imienia", + "submission.sections.describe.relationship-lookup.name-variant.notification.decline": "Użyj tylko w tym zgÅ‚oszeniu", + "submission.sections.ccLicense.type": "Typ licencji", + "submission.sections.ccLicense.select": "Wybierz typ licencji…", + "submission.sections.ccLicense.change": "ZmieÅ„ typ licencji…", + "submission.sections.ccLicense.none": "Brak dostÄ™pnych licencji", + "submission.sections.ccLicense.option.select": "Wybierz opcję…", + "submission.sections.ccLicense.link": "Wybrano licencjÄ™:", + "submission.sections.ccLicense.confirmation": "Udzielam powyższej licencji", + "submission.sections.general.add-more": "Dodaj wiÄ™cej", + "submission.sections.general.collection": "Kolekcja", + "submission.sections.general.deposit_error_notice": "WystÄ…piÅ‚ bÅ‚Ä…d podczas zgÅ‚aszania pozycji. Spróbuj ponownie później.", + "submission.sections.general.deposit_success_notice": "UdaÅ‚o siÄ™ wprowadzić pozycjÄ™.", + "submission.sections.general.discard_error_notice": "WystÄ…piÅ‚ bÅ‚Ä…d podczas odrzucania pozycji. Spróbuj ponownie później.", + "submission.sections.general.discard_success_notice": "UdaÅ‚o siÄ™ odrzucić pozycjÄ™.", + "submission.sections.general.metadata-extracted": "Nowe metadane zostany rozpakowane i dodane do sekcji <strong>{{sectionId}}</strong>.", + "submission.sections.general.metadata-extracted-new-section": "Nowa sekcja <strong>{{sectionId}}</strong> zostaÅ‚a dodana do zgÅ‚oszenia.", + "submission.sections.general.no-collection": "Nie znaleziono kolekcji", + "submission.sections.general.no-sections": "Opcje niedostÄ™pne", + "submission.sections.general.save_error_notice": "WystÄ…piÅ‚ bÅ‚Ä…d podczas zapisywania numeru. Spróbuj ponownie później. Po odÅ›wieżeniu strony niezapisane zmiany mogÄ… zostać utracone.", + "submission.sections.general.save_success_notice": "UdaÅ‚o siÄ™ zapisać zgÅ‚oszenie.", + "submission.sections.general.search-collection": "Szukaj kolekcji", + "submission.sections.general.sections_not_valid": "Niektóre sekcje sÄ… niekompletne.", + "submission.sections.submit.progressbar.CClicense": "Licencja Creative Commons", + "submission.sections.submit.progressbar.describe.recycle": "Odzyskaj", + "submission.sections.submit.progressbar.describe.stepcustom": "Opisz", + "submission.sections.submit.progressbar.describe.stepone": "Opisz", + "submission.sections.submit.progressbar.describe.steptwo": "Opisz", + "submission.sections.submit.progressbar.detect-duplicate": "Potencjalne duplikaty", + "submission.sections.submit.progressbar.license": "Zdeponuj licencjÄ™", + "submission.sections.submit.progressbar.upload": "PrzeÅ›lij pliki", + "submission.sections.status.errors.title": "BÅ‚Ä™dy", + "submission.sections.status.valid.title": "Poprawność", + "submission.sections.status.warnings.title": "Ostrzeżenia", + "submission.sections.status.errors.aria": "ma bÅ‚Ä™dy", + "submission.sections.status.valid.aria": "jest poprawne", + "submission.sections.status.warnings.aria": "ma ostrzeżenia", + "submission.sections.toggle.open": "Otwórz sekcjÄ™", + "submission.sections.toggle.close": "Zamknij sekcjÄ™", + "submission.sections.toggle.aria.open": "RozwiÅ„ sekcjÄ™ {{sectionHeader}}", + "submission.sections.toggle.aria.close": "ZwiÅ„ sekcjÄ™ {{sectionHeader}}", + "submission.sections.upload.delete.confirm.cancel": "Anuluj", + "submission.sections.upload.delete.confirm.info": "Czy na pewno? To dziaÅ‚anie nie może zostać cofniÄ™te.", + "submission.sections.upload.delete.confirm.submit": "Tak, na pewno", + "submission.sections.upload.delete.confirm.title": "UsuÅ„ plik", + "submission.sections.upload.delete.submit": "UsuÅ„", + "submission.sections.upload.download.title": "Pobierz plik", + "submission.sections.upload.drop-message": "Upuść pliki, aby zaÅ‚Ä…czyć je do tej pozycji", + "submission.sections.upload.edit.title": "Edytuj plik", + "submission.sections.upload.form.access-condition-label": "Typ dostÄ™pu", + "submission.sections.upload.form.date-required": "Data jest wymagana.", + "submission.sections.upload.form.date-required-from": "Data przyznania dostÄ™pu od jest wymagana.", + "submission.sections.upload.form.date-required-until": "Data przyznania dostÄ™pu do jest wymagana.", + "submission.sections.upload.form.from-label": "Pozwól na dostÄ™p od", + "submission.sections.upload.form.from-placeholder": "Od", + "submission.sections.upload.form.group-label": "Grupa", + "submission.sections.upload.form.group-required": "Grupa jest wymagana", + "submission.sections.upload.form.until-label": "Pozwól na dostÄ™p do", + "submission.sections.upload.form.until-placeholder": "Do", + "submission.sections.upload.header.policy.default.nolist": "Pliki wgrane do kolekcji {{collectionName}} bÄ™dÄ… dostÄ™pne dla poniższych grup:", + "submission.sections.upload.header.policy.default.withlist": "Zwróć uwagÄ™ na to, że pliki w kolekcji {{collectionName}} bÄ™dÄ… dostÄ™pne dla poniższych grup, z wyjÄ…tkiem tych, które zostaÅ‚y wyÅ‚Ä…czone z dostÄ™pu:", + "submission.sections.upload.info": "Tutaj znajdujÄ… siÄ™ wszystkie pliki dodane w tym momencie do pozycji. Możesz zaktualizować metadane pliku i warunki dostÄ™pu lub <strong>przesÅ‚ać dodatkowe pliki, przeciÄ…gajÄ…c i opuszczajÄ…c je gdziekolwiek na tej stronie</strong>", + "submission.sections.upload.no-entry": "Nie", + "submission.sections.upload.no-file-uploaded": "Pliki nie zostaÅ‚y jeszcze wgrane.", + "submission.sections.upload.save-metadata": "Zapisz metadane", + "submission.sections.upload.undo": "Anuluj", + "submission.sections.upload.upload-failed": "PrzesyÅ‚anie nieudane", + "submission.sections.upload.upload-successful": "PrzesyÅ‚anie udane", + "submission.submit.breadcrumbs": "Nowe zgÅ‚oszenie", + "submission.submit.title": "Nowe zgÅ‚oszenie", + "submission.workflow.generic.delete": "UsuÅ„", + "submission.workflow.generic.delete-help": "JeÅ›li chcesz odrzucić tÄ™ pozycjÄ™, wybierz \"Delete\". BÄ™dzie wymagane potwierdzenie tej decyzji.", + "submission.workflow.generic.edit": "Edytuj", + "submission.workflow.generic.edit-help": "Wybierz tÄ™ opcjÄ™, aby zmienić metadane pozycji.", + "submission.workflow.generic.view": "PodglÄ…d", + "submission.workflow.generic.view-help": "Wybierz tÄ™ opcjÄ™, aby wyÅ›wietlić metadane pozycji.", + "submission.workflow.tasks.claimed.approve": "Zatwierdź", + "submission.workflow.tasks.claimed.approve_help": "JeÅ›li ta pozycja ma zostać zatwierdzona i wprowadzona do kolekcji, wybierz \"Approve\".", + "submission.workflow.tasks.claimed.edit": "Edytuj", + "submission.workflow.tasks.claimed.edit_help": "Wybierz tÄ™ opcjÄ™, aby zmienić metadane pozycji.", + "submission.workflow.tasks.claimed.reject.reason.info": "ProszÄ™ wpisać powód odrzucenia zgÅ‚oszenia w poniższe pole, wskazujÄ…c, czy zgÅ‚aszajÄ…cy może poprawić problem i ponownie przesÅ‚ać zgÅ‚oszenie.", + "submission.workflow.tasks.claimed.reject.reason.placeholder": "Opisz powód odrzucenia zgÅ‚oszenia", + "submission.workflow.tasks.claimed.reject.reason.submit": "Odrzuć pozycjÄ™", + "submission.workflow.tasks.claimed.reject.reason.title": "Powód", + "submission.workflow.tasks.claimed.reject.submit": "Odrzuć", + "submission.workflow.tasks.claimed.reject_help": "JeÅ›li po przejrzeniu pozycji stwierdzono, że nie nadaje siÄ™ ona do wÅ‚Ä…czenia do kolekcji, wybierz opcjÄ™ \"Reject\". Zostaniesz wtedy poproszony o okreÅ›lenie powodu odrzucenia, i wskazanie czy zgÅ‚aszajÄ…cy powinien wprowadzić zmiany i przesÅ‚ać ponownie pozycjÄ™.", + "submission.workflow.tasks.claimed.return": "Cofnij do puli zadaÅ„", + "submission.workflow.tasks.claimed.return_help": "Cofnij zadanie do puli, aby inny użytkownik mógÅ‚ siÄ™ go podjąć.", + "submission.workflow.tasks.generic.error": "Podczas dziaÅ‚ania wystÄ…piÅ‚ bÅ‚Ä…d...", + "submission.workflow.tasks.generic.processing": "Procesowanie...", + "submission.workflow.tasks.generic.submitter": "ZgÅ‚aszajÄ…cy", + "submission.workflow.tasks.generic.success": "UdaÅ‚o siÄ™", + "submission.workflow.tasks.pool.claim": "Podejmij pracÄ™", + "submission.workflow.tasks.pool.claim_help": "Przypisz to zadanie do siebie.", + "submission.workflow.tasks.pool.hide-detail": "Ukryj szczegóły", + "submission.workflow.tasks.pool.show-detail": "Pokaż szczegóły", + "thumbnail.default.alt": "Miniatura", + "thumbnail.default.placeholder": "Brak miniatury", + "thumbnail.project.alt": "Logo projektu", + "thumbnail.project.placeholder": "Obraz zastÄ™pczy projketu", + "thumbnail.orgunit.alt": "Logo jednostki organizacyjnej", + "thumbnail.orgunit.placeholder": "Obraz zastÄ™pczy jednostki organizacyjnej", + "thumbnail.person.alt": "ZdjÄ™cie profilowe", + "thumbnail.person.placeholder": "Brak zdjÄ™cia profilowego", + "title": "DSpace", + "vocabulary-treeview.header": "Widok drzewka", + "vocabulary-treeview.load-more": "Pokaż wiÄ™cej", + "vocabulary-treeview.search.form.reset": "Resetuj", + "vocabulary-treeview.search.form.search": "Szukaj", + "vocabulary-treeview.search.no-result": "Brak pozycji do wyÅ›wietlenia", + "vocabulary-treeview.tree.description.nsi": "The Norwegian Science Index", + "vocabulary-treeview.tree.description.srsc": "Kategorie tematów badaÅ„", + "uploader.browse": "wyszukaj na swoim urzÄ…dzeniu", + "uploader.drag-message": "PrzeciÄ…gnij i upuść pliki tutaj", + "uploader.delete.btn-title": "UsuÅ„", + "uploader.or": ", lub ", + "uploader.processing": "Procesowanie", + "uploader.queue-length": "DÅ‚ugość kolejki", + "virtual-metadata.delete-item.info": "Wybierz typy, dla których chcesz zapisać wirtualne metadane jako rzeczywiste metadane", + "virtual-metadata.delete-item.modal-head": "Wirtualne metadane tego powiÄ…zania", + "virtual-metadata.delete-relationship.modal-head": "Wybierz pozycje, dla których chcesz zapisać wirtualne metadane jako rzeczywiste metadane", + "workflowAdmin.search.results.head": "ZarzÄ…dzaj procesami", + "workflow-item.edit.breadcrumbs": "Edytuj pozycjÄ™ procesu", + "workflow-item.edit.title": "Edytuj pozycjÄ™ procesu", + "workflow-item.delete.notification.success.title": "UsuniÄ™te", + "workflow-item.delete.notification.success.content": "Ten element procesu zostaÅ‚ usuniÄ™ty", + "workflow-item.delete.notification.error.title": "CoÅ› poszÅ‚o nie tak", + "workflow-item.delete.notification.error.content": "Ten element procesu nie mógÅ‚ zostać usuniÄ™ty", + "workflow-item.delete.title": "UsuÅ„ element procesu", + "workflow-item.delete.header": "UsuÅ„ element procesu", + "workflow-item.delete.button.cancel": "Anuluj", + "workflow-item.delete.button.confirm": "UsuÅ„", + "workflow-item.send-back.notification.success.title": "SOdeÅ›lij do zgÅ‚aszajÄ…cego", + "workflow-item.send-back.notification.success.content": "Ten element procesu zostaÅ‚ odesÅ‚any do zgÅ‚aszajÄ…cego", + "workflow-item.send-back.notification.error.title": "CoÅ› poszÅ‚o nie tak", + "workflow-item.send-back.notification.error.content": "Ten element procesu nie mógÅ‚ zostać odesÅ‚any do zgÅ‚aszajÄ…cego", + "workflow-item.send-back.title": "OdeÅ›lij element procesu do zgÅ‚aszajÄ…cego", + "workflow-item.send-back.header": "OdeÅ›lij element procesu do zgÅ‚aszajÄ…cego", + "workflow-item.send-back.button.cancel": "Anuluj", + "workflow-item.send-back.button.confirm": "OdeÅ›lij", + "workflow-item.view.breadcrumbs": "Widok procesu", + "idle-modal.header": "Sesja wkrótce wygaÅ›nie", + "idle-modal.info": "Ze wzglÄ™dów bezpieczeÅ„stwa sesja wygaÅ›nie po {{ timeToExpire }} minutach nieaktywnoÅ›ci. Twoja sesja wkrótce wygaÅ›nie. Czy chcesz jÄ… przedÅ‚użyć albo wylogować siÄ™?", + "idle-modal.log-out": "Wyloguj", + "idle-modal.extend-session": "WydÅ‚uż sesjÄ™", + "workspace.search.results.head": "Twoje zadania", + "orgunit.listelement.badge": "Jednostka organizacyjna", + "orgunit.page.city": "Miasto", + "orgunit.page.country": "Kraj", + "orgunit.page.dateestablished": "Data zaÅ‚ożenia", + "orgunit.page.description": "Opis", + "orgunit.page.edit": "Edytuj pozycjÄ™", + "orgunit.page.id": "ID", + "orgunit.page.titleprefix": "Jednostka organizacyjna: ", + "pagination.options.description": "Opcje strony", + "pagination.results-per-page": "Wyników na stronÄ™", + "pagination.showing.detail": "{{ range }} z {{ total }}", + "pagination.showing.label": "Teraz wyÅ›wietlane ", + "pagination.sort-direction": "Opcje sortowania", + "cookies.consent.purpose.sharing": "UdostÄ™pnianie", + "item.preview.dc.identifier.issn": "ISSN", + "500.page-internal-server-error": "UsÅ‚uga niedostÄ™pna", + "500.help": "Serwer jest tymczasowo niezdolny do obsÅ‚ugi Twojego żądania z powodu przestoju konserwacyjnego lub problemów z przepustowoÅ›ciÄ…. Prosimy spróbować ponownie później.", + "500.link.home-page": "Zabierz mnie na stronÄ™ głównÄ…", + "error-page.description.401": "brak autoryzacji", + "error-page.description.403": "brak dostÄ™pu", + "error-page.description.500": "usÅ‚uga niedostÄ™pna", + "error-page.description.404": "nie znaleziono strony", + "error-page.orcid.generic-error": "Podczas logowania za pomocÄ… ORCID wystÄ…piÅ‚ bÅ‚Ä…d. Upewnij siÄ™, że udostÄ™pniÅ‚eÅ› DSpace adres e-mail swojego konta ORCID. JeÅ›li bÅ‚Ä…d nadal wystÄ™puje, skontaktuj siÄ™ z administratorem", + "access-status.embargo.listelement.badge": "Embargo", + "access-status.metadata.only.listelement.badge": "Tylko metadane", + "access-status.open.access.listelement.badge": "Open Access", + "access-status.restricted.listelement.badge": "Brak dostÄ™pu", + "access-status.unknown.listelement.badge": "Nieznane", + "admin.access-control.groups.table.edit.buttons.remove": "UsuÅ„ \"{{name}}\"", + "admin.metadata-import.page.validateOnly": "Tylko waliduj", + "admin.metadata-import.page.validateOnly.hint": "Po wybraniu tej opcji przesÅ‚any plik CSV zostanie poddany walidacji. Otrzymasz raport o wykrytych zmianach, ale żadne zmiany nie zostanÄ… zapisane.", + "bitstream.edit.form.iiifLabel.label": "Etykieta canvyIIIF", + "bitstream.edit.form.iiifLabel.hint": "Etykieta dla tego obrazu. JeÅ›li nie zostaÅ‚a dostarczona, zostanie użyta domyÅ›lna etykieta.", + "bitstream.edit.form.iiifToc.label": "Spis treÅ›ci IIIF", + "bitstream.edit.form.iiifToc.hint": "Dodanie tekstu tutaj zapoczÄ…tkuje nowy zakres spisu treÅ›ci.", + "bitstream.edit.form.iiifWidth.label": "Szerokość canvy IIIF", + "bitstream.edit.form.iiifWidth.hint": "Szerokość canvy jest zwykle równa szerokoÅ›ci obrazu.", + "bitstream.edit.form.iiifHeight.label": "Wysokość canvy IIIF", + "bitstream.edit.form.iiifHeight.hint": "Wysokość canvy jest zwykle równa szerokoÅ›ci obrazu.", + "browse.back.all-results": "Wszystkie wyniki wyszukiwania", + "pagination.next.button": "NastÄ™pny", + "pagination.previous.button": "Poprzedni", + "pagination.next.button.disabled.tooltip": "Brak wiÄ™cej stron z wynikami wyszukiwania", + "browse.startsWith": ", zaczyna siÄ™ od {{ startsWith }}", + "browse.title.page": "Przeszukiwanie {{ collection }} wg {{ field }} {{ value }}", + "collection.edit.item.authorizations.load-bundle-button": "ZaÅ‚aduj wiÄ™cej paczek", + "collection.edit.item.authorizations.load-more-button": "ZaÅ‚aduj wiÄ™cej", + "collection.edit.item.authorizations.show-bitstreams-button": "Pokaż polityki plików dla paczek", + "comcol-role.edit.create.error.title": "Nie udaÅ‚o siÄ™ utworzyć grupy dla roli '{{ role }}'", + "curation.form.submit.error.invalid-handle": "Nie ustalono identyfikatora dla tego obiektu", + "confirmation-modal.delete-profile.header": "UsuÅ„ profil", + "confirmation-modal.delete-profile.info": "Czy na pewno chcesz usunąć profil", + "confirmation-modal.delete-profile.cancel": "Anuluj", + "confirmation-modal.delete-profile.confirm": "UsuÅ„", + "error.invalid-search-query": "Zapytanie nie jest poprawne. Wejdź na <a href=\"https://solr.apache.org/guide/query-syntax-and-parsing.html\" target=\"_blank\">Solr query syntax</a>, aby dowiedzieć siÄ™ o najlepszych praktykach i dodatkowych informacjach o tym bÅ‚Ä™dzie.", + "feed.description": "AktualnoÅ›ci", + "footer.link.feedback": "PrzeÅ›lij uwagi", + "form.group-collapse": "ZwiÅ„", + "form.group-collapse-help": "Kliknij tutaj, aby zwinąć", + "form.group-expand": "RozwiÅ„", + "form.group-expand-help": "Kliknij tutaj, aby rozwinąć", + "health.breadcrumbs": "Stan systemu", + "health-page.heading": "Stan systemu", + "health-page.info-tab": "Informacje", + "health-page.status-tab": "Status", + "health-page.error.msg": "Serwis stanu systemu jest tymczasowo niedostÄ™pny", + "health-page.property.status": "Kod statusu", + "health-page.section.db.title": "Baza danych", + "health-page.section.geoIp.title": "GeoIp", + "health-page.section.solrAuthorityCore.title": "Autentykacja", + "health-page.section.solrOaiCore.title": "OAI", + "health-page.section.solrSearchCore.title": "Wyszukiwarka", + "health-page.section.solrStatisticsCore.title": "Statystyki", + "health-page.section-info.app.title": "Backend aplikacji", + "health-page.section-info.java.title": "Java", + "health-page.status": "Status", + "health-page.status.ok.info": "operacyjny", + "health-page.status.error.info": "Wykryte problemy", + "health-page.status.warning.info": "Wykryte potencjalne problemy", + "health-page.title": "Stan systemu", + "health-page.section.no-issues": "Nie wykryto żadnych problemów", + "info.feedback.breadcrumbs": "Uwagi", + "info.feedback.head": "Uwagi", + "info.feedback.title": "Uwagi", + "info.feedback.info": "DziÄ™kujemy za podzielenie siÄ™ opiniÄ… na temat systemu DSpace. Doceniamy Twój wkÅ‚ad w lepsze dziaÅ‚anie systemu!", + "info.feedback.email_help": "Ten adres zostanie użyty, aby przesÅ‚ać odpowiedź na uwagi.", + "info.feedback.send": "PrzeÅ›lij uwagi", + "info.feedback.comments": "Komentarz", + "info.feedback.email-label": "Twoj adres e-mail", + "info.feedback.create.success": "Uwagi przesÅ‚ane!", + "info.feedback.error.email.required": "Poprawny adres e-mail jest wymagany", + "info.feedback.error.message.required": "Treść komentarza jest wymagana", + "info.feedback.page-label": "Strona", + "info.feedback.page_help": "Ta strona odnosi siÄ™ do uwag.", + "item.orcid.return": "Powrót", + "item.truncatable-part.show-more": "Pokaż wiÄ™cej", + "item.truncatable-part.show-less": "Pokaż mniej", + "item.page.orcid.title": "ORCID", + "item.page.orcid.tooltip": "Otwórz ustawienia ORCID", + "item.page.claim.button": "Podejmij pracÄ™", + "item.page.claim.tooltip": "Podejmij pracÄ™ jako profil", + "item.version.create.modal.submitted.header": "Tworzenie nowej wersji...", + "item.version.create.modal.submitted.text": "Nowa wersja zostaÅ‚a utworzona. MogÅ‚o to trwać chwilÄ™, jeÅ›li pozycja ma wiele powiÄ…zaÅ„.", + "journal-relationships.search.results.head": "Wyniki wyszukiwania czasopism", + "menu.section.icon.health": "Sekcja menu Stan systemu", + "menu.section.health": "Stan systemu", + "metadata-export-search.tooltip": "Eksportuj wyniki wyszukiwania w formacie CSV", + "metadata-export-search.submit.success": "Eksport rozpoczÄ…Å‚ siÄ™", + "metadata-export-search.submit.error": "Eksport nie rozpoczÄ…Å‚ siÄ™", + "person.page.name": "Nazwa", + "person-relationships.search.results.head": "Wyniki wyszukiwania osób", + "profile.special.groups.head": "Autoryzacja do specjalnych grup, do których należysz", + "project-relationships.search.results.head": "Wyniki wyszukiwania projektów", + "publication-relationships.search.results.head": "Wyniki wyszukiwania publikacji", + "resource-policies.edit.page.target-failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas edycji (użytkownika lub grupy) zwiÄ…zany z politykÄ… zasobu.", + "resource-policies.edit.page.other-failure.content": "WystÄ…piÅ‚ bÅ‚Ä…d podczas edycji polityki zasobu. Użytkownik lub grupa zostaÅ‚y zaktualizowane pomyÅ›lnie.", + "resource-policies.form.eperson-group-list.modal.header": "Nie można zmienić typu", + "resource-policies.form.eperson-group-list.modal.text1.toGroup": "Nie można zastÄ…pić użytkownika grupÄ….", + "resource-policies.form.eperson-group-list.modal.text1.toEPerson": "Nie można zastÄ…pić grupy użytkownikiem.", + "resource-policies.form.eperson-group-list.modal.text2": "UsuÅ„ obecnÄ… polityke zasobu i stwórz nowÄ… o okreÅ›lonym typie.", + "resource-policies.form.eperson-group-list.modal.close": "Ok", + "search.results.view-result": "Widok", + "default-relationships.search.results.head": "Wyniki wyszukiwania", + "statistics.table.title.TotalVisits": "WyÅ›wietlnia ogółem", + "statistics.table.title.TotalVisitsPerMonth": "WyÅ›wietlenia w miesiÄ…cu", + "statistics.table.title.TotalDownloads": "Pobrania", + "statistics.table.title.TopCountries": "WyÅ›wietlenia wg krajów", + "statistics.table.title.TopCities": "WyÅ›wietlenia wg miast", + "submission.import-external.preview.title": "PodglÄ…d pozycji", + "submission.import-external.preview.title.none": "PodglÄ…d pozycji", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.none": "Import pozycji zdalnie", + "submission.sections.general.cannot_deposit": "Nie można zakoÅ„czyć deponowania, ponieważ w formularzu wystÄ…piÅ‚y bÅ‚Ä™dy.<br>Aby zakoÅ„czyć deponowanie, wypeÅ‚nij wszystkie obowiÄ…zkowe pola.", + "submission.sections.submit.progressbar.accessCondition": "Warunki dostÄ™pu do pozycji", + "submission.sections.submit.progressbar.sherpapolicy": "Polityki Sherpa", + "submission.sections.submit.progressbar.sherpaPolicies": "Informacje o polityce open access wydawcy.", + "submission.sections.status.info.title": "Dodatkowe informacje", + "submission.sections.status.info.aria": "Dodatkowe informacje", + "submission.sections.upload.form.access-condition-hint": "Wybierz w jaki sposób pliki dla tej pozycji po jest zdeponowaniu bÄ™dÄ… mogÅ‚y być udostÄ™pnione", + "submission.sections.upload.form.from-hint": "Wybierz datÄ™, od której ma zostać zastosowany warunek dostÄ™pu", + "submission.sections.upload.form.until-hint": "Wybierz datÄ™, do której ma zostać zastosowany warunek dostÄ™pu", + "submission.sections.accesses.form.discoverable-description": "JeÅ›li checkbox jest zaznaczony, pozycja bÄ™dzie wyÅ›wietlana w wynikach wyszukiwania. JeÅ›li checkbox jest odznaczony, dostÄ™p do pozycji bÄ™dzie dostÄ™pny tylko przez bezpoÅ›redni link, pozycja nie bÄ™dzie wyÅ›wietlana w wynikach wyszukiwania.", + "submission.sections.accesses.form.discoverable-label": "Niemożliwe do wyszukania", + "submission.sections.accesses.form.access-condition-label": "Typ warunku dostÄ™pu", + "submission.sections.accesses.form.access-condition-hint": "Wybierz warunek dostÄ™pu, aby przypisać go do pozycji, kiedy zostanie zdeponowany.", + "submission.sections.accesses.form.date-required": "Data jest wymagana.", + "submission.sections.accesses.form.date-required-from": "PoczÄ…tkowa data przyznania dostÄ™pu jest wymagana.", + "submission.sections.accesses.form.date-required-until": "KoÅ„cowa data przyznania dostÄ™pu jest wymagana.", + "submission.sections.accesses.form.from-label": "Udziel dostÄ™pu od", + "submission.sections.accesses.form.from-hint": "Wybierz datÄ™, od kiedy zostanie przyznany dostÄ™p do tej pozycji", + "submission.sections.accesses.form.from-placeholder": "Od", + "submission.sections.accesses.form.group-label": "Grupa", + "submission.sections.accesses.form.group-required": "Grupa jest wymagana.", + "submission.sections.accesses.form.until-label": "Udziel dostÄ™pu do", + "submission.sections.accesses.form.until-hint": "Wybierz datÄ™, do kiedy zostanie przyznany dostÄ™p do tej pozycji", + "submission.sections.accesses.form.until-placeholder": "Do", + "submission.sections.sherpa.publication.information": "Informacje o publikacji", + "submission.sections.sherpa.publication.information.title": "TytuÅ‚", + "submission.sections.sherpa.publication.information.issns": "Numery ISSN", + "submission.sections.sherpa.publication.information.url": "URL", + "submission.sections.sherpa.publication.information.publishers": "Wydawca", + "submission.sections.sherpa.publication.information.romeoPub": "Wydawca Romeo", + "submission.sections.sherpa.publication.information.zetoPub": "Wydawca Zeto", + "submission.sections.sherpa.publisher.policy": "Polityka wydawnicza", + "submission.sections.sherpa.publisher.policy.description": "Poniższe informacje zostaÅ‚y znalezione za poÅ›rednictwem Sherpa Romeo. W oparciu o politykÄ™ Twojego wydawcy, zawiera ona porady dotyczÄ…ce tego, czy embargo może być konieczne i/lub jakie pliki możesz przesÅ‚ać. JeÅ›li masz pytania, skontaktuj siÄ™ z administratorem strony poprzez formularz.", + "submission.sections.sherpa.publisher.policy.openaccess": "Rodzaje Open Access dozwolone przez politykÄ™ wydawniczÄ… tego czasopisma sÄ… wymienione poniżej. Kliknij na wybrany rodzaj, aby przejść do szczegółowego widoku", + "submission.sections.sherpa.publisher.policy.more.information": "Aby uzuyskać wiÄ™cej informacji, kliknij tutaj:", + "submission.sections.sherpa.publisher.policy.version": "Wersja", + "submission.sections.sherpa.publisher.policy.embargo": "Embargo", + "submission.sections.sherpa.publisher.policy.noembargo": "Brak embargo", + "submission.sections.sherpa.publisher.policy.nolocation": "Brak", + "submission.sections.sherpa.publisher.policy.license": "Licencja", + "submission.sections.sherpa.publisher.policy.prerequisites": "Wymagania wstÄ™pne", + "submission.sections.sherpa.publisher.policy.location": "Lokalizacja", + "submission.sections.sherpa.publisher.policy.conditions": "Wymagania", + "submission.sections.sherpa.publisher.policy.refresh": "OdÅ›wież", + "submission.sections.sherpa.record.information": "Informacje o rekordzie", + "submission.sections.sherpa.record.information.id": "ID", + "submission.sections.sherpa.record.information.date.created": "Data utworzenia", + "submission.sections.sherpa.record.information.date.modified": "Ostatnia modyfikacja", + "submission.sections.sherpa.record.information.uri": "URI", + "submission.sections.sherpa.error.message": "WystÄ…piÅ‚ bÅ‚Ä…d podczas pobierania informacji z Sherpa", + "submission.workspace.generic.view": "PodglÄ…d", + "submission.workspace.generic.view-help": "Wybierz tÄ™ opcje, aby zobaczyć metadane.", + "workflow.search.results.head": "Zadania na workflow", + "workspace-item.view.breadcrumbs": "Widok wersji roboczej", + "workspace-item.view.title": "Widok wersji roboczej", + "researcher.profile.change-visibility.fail": "WystÄ…piÅ‚ niespodziewany bÅ‚Ä…d podczas zmiany widocznoÅ›ci profilu", + "person.page.orcid.link.processing": "ÅÄ…czenie profilu z ORCID...", + "person.page.orcid.link.error.message": "CoÅ› poszÅ‚o nie tak podczas Å‚Ä…czenia z ORCID. JeÅ›li problem bÄ™dzie siÄ™ powtarzaÅ‚, skontaktuj siÄ™ z administratorem.", + "person.page.orcid.sync-queue.table.header.type": "Typ", + "person.page.orcid.sync-queue.table.header.description": "Opis", + "person.page.orcid.sync-queue.table.header.action": "Akcja", + "person.page.orcid.sync-queue.tooltip.project": "Projekt", + "person.page.orcid.sync-queue.send.validation-error.country.invalid": "NiewÅ‚aÅ›ciwy dwuznakowy kod kraju ISO 3166", + "person.page.orcid.sync-queue.send.validation-error.publication.date-invalid": "Wymagana data publikacji to co najmniej rok po 1900", + "person.page.orcid.synchronization-mode-funding-message": "Wybierz, czy chcesz wysÅ‚ać swoje projekty na swojÄ… listÄ™ informacji o projektach w profilu ORCID.", + "person.page.orcid.synchronization-mode-publication-message": "Wybierz, czy chcesz wysÅ‚ać swoje publikacje na swojÄ… listÄ™ informacji o publikacjach w profilu ORCID.", + "person.page.orcid.synchronization-mode-profile-message": "Wybierz, czy chcesz wysÅ‚ać swoje dane bibliograficzne lub osobiste identyfikatory do swojego profilu ORCID.", + "person.orcid.sync.setting": "Ustawienia synchronizacji z ORCID", + "person.orcid.registry.queue": "Kolejka rejestru z ORCID", + "person.orcid.registry.auth": "Autoryzacje z ORCID", + "home.recent-submissions.head": "Najnowsze publikacje", + "submission.sections.sherpa-policy.title-empty": "Nie wybrano ISSN i informacje o polityce wydawniczej czasopisma sÄ… niedostÄ™pne", + "admin.batch-import.breadcrumbs": "Import zbiorczy", + "admin.batch-import.page.dropMsg": "Drop a batch ZIP to import", + "admin.batch-import.page.dropMsgReplace": "Drop to replace the batch ZIP to import", + "admin.batch-import.page.error.addFile": "Najpierw wybierz plik (ZIP)", + "admin.batch-import.page.header": "Import masowy", + "admin.batch-import.page.help": "Wybierz kolekcjÄ™ do zaimportowania kolekcji. Potem, upuść lub przeszukaj plik SAF, który zawiera pozycje do importu", + "admin.batch-import.page.remove": "usuÅ„", + "admin.batch-import.page.validateOnly.hint": "JeÅ›li wybrano, importowany plik ZIP bÄ™dzie walidowany. Otrzymasz raport ze zmianami, ale żadne zmiany nie zostanÄ… wykonane zapisane.", + "collection.form.correctionSubmissionDefinition": "Wzór zgÅ‚oszenia do proÅ›by o korektÄ™", + "comcol-role.edit.delete.error.title": "Nie udaÅ‚o siÄ™ usunąć roli '{{ role }}' dla grup", + "confirmation-modal.export-batch.header": "Eksport maasowy (ZIP) {{ dsoName }}", + "confirmation-modal.export-batch.info": "Czy na pewno chcesz wyeksportować plik ZIP z {{ dsoName }}", + "dso-selector.export-batch.dspaceobject.head": "Eksport masowy (ZIP) z", + "menu.section.export_batch": "Eksport masowy (ZIP)", + "nav.user-profile-menu-and-logout": "Profil użytkownika i wylogowywanie", + "process.detail.actions": "Akcje", + "process.detail.delete.body": "Czy na pewno chcesz usunąć bieżący proces?", + "process.detail.delete.button": "UsuÅ„ proces", + "process.detail.delete.cancel": "Anuluj", + "process.detail.delete.confirm": "UsuÅ„ proces", + "process.detail.delete.error": "Nie udaÅ‚o siÄ™ usunąć procesu", + "process.detail.delete.header": "UsuÅ„ proces", + "process.detail.delete.success": "Proces zostaÅ‚ usuniÄ™ty.", + "admin.batch-import.title": "Masowy import", + "admin.metadata-import.page.button.select-collection": "Wybierz kolekcjÄ™", + "admin.registries.bitstream-formats.table.id": "ID", + "admin.registries.schema.fields.table.id": "ID", + "cookies.consent.app.description.google-recaptcha": "Podczas rejestracji i odzyskiwania hasÅ‚a używamy narzÄ™dzia google reCAPTCHA", + "cookies.consent.app.disable-all.description": "PrzeÅ‚Ä…cz, aby zaakceptować lub odrzucić wszystkie", + "cookies.consent.app.disable-all.title": "Akceptowacja lub odrzucenie wszystkich", + "cookies.consent.app.title.google-recaptcha": "Google reCaptcha", + "cookies.consent.content-modal.service": "usÅ‚uga", + "cookies.consent.content-modal.services": "usÅ‚ugi", + "cookies.consent.content-notice.description.no-privacy": "Zbieramy i przetwarzamy Twoje dane w celu: <strong>autentykacji, ustawieÅ„ preferencji i zgód oraz do celów statystycznych</strong>.", + "cookies.consent.content-notice.title": "Zgoda na ciasteczka", + "cookies.consent.ok": "Zgadzam siÄ™", + "cookies.consent.purpose.registration-password-recovery": "Rejestracja i odzyskiwanie hasÅ‚a", + "cookies.consent.save": "Zapisz", + "curation-task.task.citationpage.label": "Generuj stronÄ™ z cytowaniem", + "dso-selector.import-batch.dspaceobject.head": "Import masowy z", + "orgunit.listelement.no-title": "Brak tytyÅ‚u", + "process.bulk.delete.error.body": "Proces z ID {{processId}} nie może być usuniÄ™ty. PozostaÅ‚e procesy zostanÄ… usuniÄ™te.", + "process.bulk.delete.error.head": "BÅ‚Ä…d podczas usuwania procesu", + "process.bulk.delete.success": "{{count}} proces/y zostaÅ‚/y usuniÄ™te", + "process.overview.delete": "UsuÅ„ {{count}} proces/y", + "process.overview.delete.body": "Czy na pewno usunąć {{count}} proces/y?", + "process.overview.delete.clear": "Wyczyść selekcjÄ™ procesów do usuniÄ™cia", + "process.overview.delete.header": "UsuÅ„ procesy", + "process.overview.delete.processing": "{{count}} procesów zostanie usuniÄ™tych. Poczekaj, gdy usuwanie siÄ™ zakoÅ„czy. Może to zająć chwilÄ™.", + "process.overview.table.actions": "Akcje", + "profile.security.form.label.current-password": "Aktualne hasÅ‚o", + "profile.security.form.notifications.error.change-failed": "WystÄ…piÅ‚ bÅ‚Ä…d podczas próby zmiany hasÅ‚a. Sprawdź czy aktualne hasÅ‚o jest prawidÅ‚owe.", + "profile.security.form.notifications.error.general": "UzupeÅ‚nij wymagane pola dla bezpieczeÅ„stwa na formularzu", + "register-page.registration.error.recaptcha": "WystÄ…piÅ‚ bÅ‚Ä…d podczas próby autentykacji przez reCAPTCHA", + "register-page.registration.google-recaptcha.must-accept-cookies": "Aby siÄ™ zarejestrować, musisz zaakceptować ciasteczka dla <b>rejestracji i odzyskiwania hasÅ‚a</b> (Google reCaptcha).", + "register-page.registration.google-recaptcha.notification.message.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas weryfikacji reCaptcha", + "register-page.registration.google-recaptcha.notification.message.expired": "Weryfikacja wygasÅ‚a. Zweryfikuj ponownie.", + "register-page.registration.google-recaptcha.notification.title": "Google reCaptcha", + "register-page.registration.google-recaptcha.open-cookie-settings": "Otwórz ustawienia plików cookies", + "search.results.response.500": "WystÄ…piÅ‚ bÅ‚Ä…d podczas wysyÅ‚ania zapytania. Spróbuj ponownie później", + "submission.sections.license.granted-label": "Potwierdzam akceptacjÄ™ powyższej licencji", + "submission.sections.license.notgranted": "Najpierw musisz zaakceptować licencjÄ™", + "submission.sections.license.required": "Najpierw musisz zaakceptować licencjÄ™", + "confirmation-modal.export-batch.confirm": "Eksportuj", + "confirmation-modal.export-batch.cancel": "Anuluj", + "admin.access-control.bulk-access.breadcrumbs": "Zbiorcza edycja dostÄ™pu do osiÄ…gnięć", + "administrativeBulkAccess.search.results.head": "Wyniki wyszukiwania", + "admin.access-control.bulk-access": "Zbiorcza edycja dostÄ™pu do osiÄ…gnięć", + "admin.access-control.bulk-access.title": "Zbiorcza edycja dostÄ™pu do osiÄ…gnięć", + "admin.access-control.bulk-access-browse.header": "Krok 1: Wybierz pozycje", + "admin.access-control.bulk-access-browse.search.header": "Wyszukaj", + "admin.access-control.bulk-access-browse.selected.header": "Obecny wybór({{number}})", + "admin.access-control.bulk-access-settings.header": "Krok 2: DziaÅ‚anie do wykonania", + "admin.access-control.groups.form.tooltip.editGroupPage": "Na tej stronie można edytować opcje grupy i przypisane do niej osoby. W górnej sekcji można edytować nazwÄ™ i opis grupy, chyba że jest to grupa administratorów dla zbioru i kolekcji. W tym przypadku nazwa i opis grupy sÄ… generowane automatycznie i nie można ich edytować. W kolejnych sekcjach można edytować przypisanie użytkowników do grupy. Szczegóły na [stronie](https://wiki.lyrasis.org/display/DSDOC7x/Create+or+manage+a+user+group).", + "admin.access-control.groups.form.tooltip.editGroup.addEpeople": "Aby dodać lub usunąć użytkownika do/z tej grupy, kliknij przycisk 'PrzeglÄ…daj wszystko' lub użyj paska wyszukiwania poniżej, aby wyszukać użytkowników (użyj listy rozwijanej po lewej stronie paska wyszukiwania, aby wybrać, czy chcesz wyszukiwać wedÅ‚ug imienia i nazwiska, czy wedÅ‚ug adresu e-mail). NastÄ™pnie kliknij ikonÄ™ plusa przy każdym użytkowniku, którego chcesz dodać do poniższej listy, lub ikonÄ™ kosza przy każdym użytkowniku, którego chcesz usunąć. Poniższa lista może mieć kilka stron: użyj strzaÅ‚ek pod listÄ…, aby przejść do kolejnych stron. Gdy wszystkie zmiany zostanÄ… wprowadzone, zapisz je, klikajÄ…c przycisk 'Zapisz' w górnej sekcji.", + "admin.access-control.groups.form.tooltip.editGroup.addSubgroups": "Aby dodać lub usunąć podgrupÄ™ do/z tej grupy, kliknij przycisk 'PrzeglÄ…daj wszystko' lub użyj wyszukiwarki poniżej, aby wyszukać użytkowników. NastÄ™pnie kliknij ikonÄ™ plusa przy każdym użytkowniku, którego chcesz dodać do poniższej listy, lub ikonÄ™ kosza przy każdym użytkowniku, którego chcesz usunąć. Poniższa lista może skÅ‚adać siÄ™ z kilku stron: użyj przycisków pod listÄ…, aby przejść do kolejnych stron. Gdy wszystkie zmiany zostanÄ… wprowadzone, zapisz je, klikajÄ…c przycisk 'Zapisz' w górnej sekcji.", + "admin.workflow.item.workspace": "PrzestrzeÅ„ robocza", + "admin.workflow.item.policies": "Polityki", + "admin.workflow.item.supervision": "Recenzja", + "admin.batch-import.page.toggle.help": "It is possible to perform import either with file upload or via URL, use above toggle to set the input source", + "admin.metadata-import.page.error.addFileUrl": "Najpierw wpisz URL pliku!", + "admin.metadata-import.page.toggle.upload": "PrzeÅ›lij", + "admin.metadata-import.page.toggle.url": "URL", + "admin.metadata-import.page.urlMsg": "Wpisz URL pliku ZIP, aby wykonać import masowy", + "advanced-workflow-action.rating.form.rating.label": "Ocena", + "advanced-workflow-action.rating.form.rating.error": "Ta pozycja musi zostać oceniona", + "advanced-workflow-action.rating.form.review.label": "Recenzja", + "advanced-workflow-action.rating.form.review.error": "Musisz wpisać tekst recenzji", + "advanced-workflow-action.rating.description": "Wybierz ocenÄ™ poniżej", + "advanced-workflow-action.rating.description-requiredDescription": "Wybierz ocenÄ™ poniżej i wpisz uzasadnienie", + "advanced-workflow-action.select-reviewer.description-single": "Wybierz recenzenta przed zdeponowaniem pozycji", + "advanced-workflow-action.select-reviewer.description-multiple": "Wybierz jednego lub wiÄ™cej recenzentów przed zdeponowaniem pozycji", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.head": "Użytkownicy", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.head": "Dodaj użytkownika", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.button.see-all": "PrzeglÄ…daj wszystko", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.headMembers": "Aktualni użytkownicy", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.metadata": "Metadane", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.email": "Adres e-mail (dokÅ‚adny)", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.button": "Wyszukaj", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.id": "ID", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.name": "Nazwa", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.identity": "Tożsamość", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.email": "Adres e-mail", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.netid": "NetID", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit": "UsuÅ„ / Dodaj", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.remove": "UsuÅ„ użytkownika z nazwÄ™ \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.addMember": "Dodano użytkownika o nazwie: \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.addMember": "Nie dodano użytkownika: \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.deleteMember": "UsuniÄ™to użytkownika: \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.deleteMember": "Nie usuniÄ™to użytkownika: \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.add": "Dodano użytkownika \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.noActiveGroup": "Brak aktywnej grupy, najpierw wpisz nazwÄ™.", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-members-yet": "W tej grupie nie ma użytkowników, wyszukaj ich i dodaj.", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-items": "Nie znaleziono żadnych użytkowników", + "advanced-workflow-action.select-reviewer.no-reviewer-selected.error": "Recenzent nie jest wybrany.", + "bitstream.edit.notifications.error.primaryBitstream.title": "WystÄ…piÅ‚ bÅ‚Ä…d podczas zapisu pliku.", + "browse.comcol.by.srsc": "Wg słów kluczowych", + "browse.metadata.srsc.breadcrumbs": "PrzeglÄ…daj wg słów kluczowych", + "browse.startsWith.input": "Filtr", + "browse.taxonomy.button": "PrzeglÄ…daj", + "search.browse.item-back": "Powrót do wyników wyszukiwania", + "claimed-approved-search-result-list-element.title": "Zaakceptowano", + "claimed-declined-search-result-list-element.title": "Odrzucono i przesÅ‚ano do deponujÄ…cego", + "claimed-declined-task-search-result-list-element.title": "Odrzucono i przesÅ‚ano do recenzenta", + "collection.edit.tabs.access-control.head": "DostÄ™py", + "collection.edit.tabs.access-control.title": "Edycja kolekcji - dostÄ™py", + "collection.listelement.badge": "Kolekcja", + "community.edit.tabs.access-control.head": "DostÄ™py", + "community.edit.tabs.access-control.title": "Edycja zbioru - dostÄ™py", + "comcol-role.edit.scorereviewers.name": "Ocena recenzenta", + "comcol-role.edit.scorereviewers.description": "Recenzenci mogÄ… oceniać zdeponowane pozycje, co okreÅ›li, czy pozycja zostanie przyjÄ™ta lub odrzucona.", + "curation-task.task.register-doi.label": "Rejestracja DOI", + "dso.name.unnamed": "Bez nazwy", + "dso-selector.create.community.or-divider": "lub", + "dso-selector.set-scope.community.or-divider": "lub", + "dso-selector.results-could-not-be-retrieved": "WystÄ…piÅ‚ bÅ‚Ä…d, proszÄ™ odÅ›wieżyć stronÄ™", + "supervision-group-selector.header": "Wybór grupy recenzenckiej", + "supervision-group-selector.select.type-of-order.label": "Wybierz typ funkcji", + "supervision-group-selector.select.type-of-order.option.none": "BRAK", + "supervision-group-selector.select.type-of-order.option.editor": "REDAKTOR", + "supervision-group-selector.select.type-of-order.option.observer": "OBSERWATOR", + "supervision-group-selector.select.group.label": "Wybierz grupÄ™", + "supervision-group-selector.button.cancel": "Anuluj", + "supervision-group-selector.button.save": "Zapisz", + "supervision-group-selector.select.type-of-order.error": "Wybierz typ funkcji", + "supervision-group-selector.select.group.error": "Wybierz grupÄ™", + "supervision-group-selector.notification.create.success.title": "Grupa recenzencka zostaÅ‚ dodana dla grupy {{ name }}", + "supervision-group-selector.notification.create.failure.title": "BÅ‚Ä…d", + "supervision-group-selector.notification.create.already-existing": "Funkcja recenzenta już jest przypisana do tej grupy", + "confirmation-modal.delete-subscription.header": "UsuÅ„ subksrypcje", + "confirmation-modal.delete-subscription.info": "Czy na pewno chcesz usunąć subskrypcjÄ™: \"{{ dsoName }}\"", + "confirmation-modal.delete-subscription.cancel": "Anuluj", + "confirmation-modal.delete-subscription.confirm": "UsuÅ„", + "error.validation.metadata.name.invalid-pattern": "To pole nie może zawierać kropek, przecinków i spacji. Zamiast tego This field cannot contain dots, commas or spaces. Zamiast tego może użyć pól z notacji SNEQ", + "error.validation.metadata.name.max-length": "To pole nie może zawierać wiÄ™cej niż 32 znaki", + "error.validation.metadata.namespace.max-length": "To pole nie może zawierać wiÄ™cej niż 256 znaków", + "error.validation.metadata.element.invalid-pattern": "To pole nie może zawierać kropek, przecinków i spacji. Zamiast tego This field cannot contain dots, commas or spaces. Zamiast tego może użyć pól z notacji SNEQ", + "error.validation.metadata.element.max-length": "To pole nie może zawierać wiÄ™cej niż 64 znaki", + "error.validation.metadata.qualifier.invalid-pattern": "To pole nie może zawierać kropek, przecinków i spacji", + "error.validation.metadata.qualifier.max-length": "To pole nie może zawierać wiÄ™cej niż 64 znaki", + "forgot-email.form.email.error.not-email-form": "Wpisz prawidÅ‚owy adres e-mail", + "form.other-information.email": "Adres e-mail", + "form.other-information.first-name": "ImiÄ™", + "form.other-information.insolr": "Solr Index", + "form.other-information.institution": "Instytucja", + "form.other-information.last-name": "Nazwisko", + "form.other-information.orcid": "ORCID", + "form.create": "Utwórz", + "info.end-user-agreement.hosting-country": "Stany Zjednoczone", + "item.edit.identifiers.doi.status.UNKNOWN": "Nieznane", + "item.edit.identifiers.doi.status.TO_BE_REGISTERED": "W kolejce do rejestracji", + "item.edit.identifiers.doi.status.TO_BE_RESERVED": "W kolejce do rezerwacji", + "item.edit.identifiers.doi.status.IS_REGISTERED": "Zarejestrowane", + "item.edit.identifiers.doi.status.IS_RESERVED": "Zarezerwowane", + "item.edit.identifiers.doi.status.UPDATE_RESERVED": "Zarezerwowane (aktualizacja w kolejce)", + "item.edit.identifiers.doi.status.UPDATE_REGISTERED": "Zarejestrowane (aktualizacja w kolejce)", + "item.edit.identifiers.doi.status.UPDATE_BEFORE_REGISTRATION": "W kolejce do aktualizacji i rejestracji", + "item.edit.identifiers.doi.status.TO_BE_DELETED": "Zakolejkowane do usuniÄ™cia", + "item.edit.identifiers.doi.status.DELETED": "UsuniÄ™te", + "item.edit.identifiers.doi.status.PENDING": "OczekujÄ…ce (niezarejestrowane)", + "item.edit.identifiers.doi.status.MINTED": "Rezerwowanie nazwy (niezarejestrowane)", + "item.edit.tabs.status.buttons.register-doi.label": "Zarejestruj nowe lub oczekujÄ…ce DOI", + "item.edit.tabs.status.buttons.register-doi.button": "Rejestruj DOI...", + "item.edit.register-doi.header": "Zarejestruj nowe lub oczekujÄ…ce DOI", + "item.edit.register-doi.description": "Zweryfikuj poniższe identyfikatory i metadane pozycji i rozpocznij rejestracjÄ™ DOI lub anuluj", + "item.edit.register-doi.confirm": "Zatwierdź", + "item.edit.register-doi.cancel": "Anuluj", + "item.edit.register-doi.success": "DOI jest w kolejce do rejestracji.", + "item.edit.register-doi.error": "WystÄ…piÅ‚ bÅ‚Ä…d poczas rejestracji DOI", + "item.edit.register-doi.to-update": "To DOI zostaÅ‚o zarezerwowane i bÄ™dzie znajdować siÄ™ w kolejce do rejestracji", + "item.edit.metadata.edit.buttons.confirm": "Zatwierdź", + "item.edit.metadata.edit.buttons.drag": "PrzeciÄ…gnij, aby zmienić kolejność", + "item.edit.metadata.edit.buttons.virtual": "To pole przechowuje wirutalne wartoÅ›ci metadanych, np. wartość pobranÄ… z encji, z którÄ… jest poÅ‚Ä…czona ta pozycja. Dodaj lub usuÅ„ relacjÄ™ w zakÅ‚adce 'Relacje' ", + "item.edit.metadata.metadatafield.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas walidcji pól metadanych", + "item.edit.metadata.reset-order-button": "Cofnij zamianÄ™ kolejnoÅ›ci", + "item.edit.curate.title": "ZarzÄ…dzaj pozycjÄ…: {{item}}", + "item.edit.tabs.access-control.head": "DostÄ™p", + "item.edit.tabs.access-control.title": "Edycja pozycji - dostÄ™p", + "workflow-item.search.result.delete-supervision.modal.header": "UsuÅ„ zadanie dla recenzenta", + "workflow-item.search.result.delete-supervision.modal.info": "Czy na pewno usunąć zadanie dla recenzenta", + "workflow-item.search.result.delete-supervision.modal.cancel": "Anuluj", + "workflow-item.search.result.delete-supervision.modal.confirm": "UsuÅ„", + "workflow-item.search.result.notification.deleted.success": "UsuniÄ™to zadanie dla recenzenta \"{{name}}\"", + "workflow-item.search.result.notification.deleted.failure": "Nie usuniÄ™to zadania dla recenzenta \"{{name}}\"", + "workflow-item.search.result.list.element.supervised-by": "Recenzja:", + "workflow-item.search.result.list.element.supervised.remove-tooltip": "UsuÅ„ grupÄ™ recenzenckÄ…", + "item.preview.dc.subject": "SÅ‚owo kluczowe:", + "item.preview.dc.publisher": "Wydawca:", + "itemtemplate.edit.metadata.add-button": "Dodaj", + "itemtemplate.edit.metadata.discard-button": "Cofnij", + "itemtemplate.edit.metadata.edit.buttons.confirm": "Zatwierdź", + "itemtemplate.edit.metadata.edit.buttons.drag": "PrzeciÄ…gnij, aby zmienić kolejność", + "itemtemplate.edit.metadata.edit.buttons.edit": "Edytuj", + "itemtemplate.edit.metadata.edit.buttons.remove": "UsuÅ„", + "itemtemplate.edit.metadata.edit.buttons.undo": "Cofnij zmiany", + "itemtemplate.edit.metadata.edit.buttons.unedit": "Nie edytuj", + "itemtemplate.edit.metadata.empty": "To pozycja nie zawiera żadnych metadanych. Wybierz Dodaj, aby je wprowadzić.", + "itemtemplate.edit.metadata.headers.edit": "Edytuj", + "itemtemplate.edit.metadata.headers.field": "Pole", + "itemtemplate.edit.metadata.headers.language": "JÄ™zyk", + "itemtemplate.edit.metadata.headers.value": "Wartość", + "itemtemplate.edit.metadata.metadatafield.error": "WystÄ…piÅ‚ bÅ‚Ä…d podczas walidowania pola metadanych", + "itemtemplate.edit.metadata.metadatafield.invalid": "Wybierz odpowiednie pole metadanych", + "itemtemplate.edit.metadata.notifications.discarded.content": "Twoje zmiany nie zostaÅ‚y zachowane. Aby spróbować wprowadzić je ponownie wybierz Cofnij", + "itemtemplate.edit.metadata.notifications.discarded.title": "Zmiany nie zostaÅ‚y zachowane", + "itemtemplate.edit.metadata.notifications.error.title": "WystÄ…piÅ‚ bÅ‚Ä…d", + "itemtemplate.edit.metadata.notifications.invalid.content": "Twoje zmiany nie zostaÅ‚y zapisane. Upewnij siÄ™, że wszystkie pola zostaÅ‚y wypeÅ‚nione prawidÅ‚owo.", + "itemtemplate.edit.metadata.notifications.invalid.title": "NieprawidÅ‚owe metadan", + "itemtemplate.edit.metadata.notifications.outdated.content": "Wzór dla pozycji, na którÄ… w tym momencie pracujesz, zostaÅ‚ zmodyfikowany przez innego użytkownika. Twoje zmiany zostaÅ‚y odrzucone, aby uniknąć konfliktów pomiÄ™dzy wersjami.", + "itemtemplate.edit.metadata.notifications.outdated.title": "Zmiany zostaÅ‚y odrzucone", + "itemtemplate.edit.metadata.notifications.saved.content": "Zmiany w metadanych wzoru pozycji zostaÅ‚y zapisane.", + "itemtemplate.edit.metadata.notifications.saved.title": "Metadane zostaÅ‚y zapisane", + "itemtemplate.edit.metadata.reinstate-button": "Cofnij", + "itemtemplate.edit.metadata.reset-order-button": "Cofnij zmianÄ™ kolejnoÅ›ci", + "itemtemplate.edit.metadata.save-button": "Zapisz", + "menu.section.access_control_bulk": "Zbiorowe zarzÄ…dzanie dostÄ™pem", + "menu.section.browse_global_by_srsc": "Wg słów kluczowych", + "mydspace.show.supervisedWorkspace": "Pozycje recenzowane", + "mydspace.status.mydspaceArchived": "Opublikowano", + "mydspace.status.mydspaceValidation": "Walidacja", + "mydspace.status.mydspaceWaitingController": "Oczekiwanie na redakctora", + "mydspace.status.mydspaceWorkflow": "Redakcja", + "mydspace.status.mydspaceWorkspace": "PrzestrzeÅ„ robocza", + "nav.context-help-toggle": "PrzeÅ‚Ä…cz pomoc kontekstowÄ…", + "nav.search.button": "Wpisz wyszukiwanÄ… frazÄ™", + "nav.subscriptions": "Subksrypcje", + "process.new.notification.error.max-upload.content": "Plik jest wiÄ™kszy niż maksymalny dozwolony rozmiar pliku", + "register-page.registration.email.error.not-email-form": "Wprowadź poprawny adres e-mail", + "register-page.registration.email.error.not-valid-domain": "Użyj adresu e-mail z domeny: {{ domains }}", + "register-page.registration.error.maildomain": "Tego adresu e-mail nie możesz zarejestrować, ponieważ nie ma go na liÅ›cie domen. Dozwolone domeny to: {{ domains }}", + "register-page.registration.info.maildomain": "Konta mogÄ… być zaÅ‚ożone dla adresów e-mail z domenÄ…", + "repository.title": "Repozytorium DSpace", + "search.filters.applied.f.supervisedBy": "Recenzent", + "search.filters.filter.show-tree": "PrzeglÄ…daj {{ name }} strukturÄ™ recenzentów", + "search.filters.filter.supervisedBy.head": "Recenzent", + "search.filters.filter.supervisedBy.placeholder": "Recenzent", + "search.filters.filter.supervisedBy.label": "Wyszukaj recenzenta", + "statistics.table.no-name": "(nazwa obiektu nie może zostać zaÅ‚adowana)", + "submission.import-external.source.datacite": "DataCite", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isPublicationOfAuthor": "Publikacje autora", + "submission.sections.describe.relationship-lookup.title.isPublicationOfAuthor": "Publikacje", + "submission.sections.identifiers.info": "Te identyfikatory zostanÄ… utworzone dla pozycji:", + "submission.sections.identifiers.no_handle": "Do tej pozycji nie zostaÅ‚y przypisane żadne Handle", + "submission.sections.identifiers.no_doi": "Do tej pozycji nie zostaÅ‚y przypisane żadne DOI", + "submission.sections.identifiers.handle_label": "Handle: ", + "submission.sections.identifiers.doi_label": "DOI: ", + "submission.sections.identifiers.otherIdentifiers_label": "Inne identyfikatory: ", + "submission.sections.submit.progressbar.identifiers": "Identyfikatory", + "submission.workflow.generic.submit_select_reviewer": "Wybierz recenzenta", + "submission.workflow.generic.submit_select_reviewer-help": "", + "submission.workflow.generic.submit_score": "Wynik", + "submission.workflow.generic.submit_score-help": "", + "submission.workflow.tasks.claimed.decline": "Odrzuć", + "submission.workflow.tasks.claimed.decline_help": "", + "submitter.empty": "n.d.", + "subscriptions.title": "Subskrypcje", + "subscriptions.item": "Subskrypcje pozycji", + "subscriptions.collection": "Subskrypcje kolekcji", + "subscriptions.community": "Subskrypcje zbiorów", + "subscriptions.subscription_type": "Typ subksrypcji", + "subscriptions.frequency": "CzÄ™stotliwość subskrypcji", + "subscriptions.frequency.D": "Codziennie", + "subscriptions.frequency.M": "Co miesiÄ…c", + "subscriptions.frequency.W": "Co tydzieÅ„", + "subscriptions.tooltip": "Subskrybuj", + "subscriptions.modal.title": "Subksrypcje", + "subscriptions.modal.type-frequency": "Rodzaj i czÄ™stotliwość subksrypcji", + "subscriptions.modal.close": "Zamknij", + "subscriptions.modal.delete-info": "Aby usunąć tÄ™ subksrypcjÄ™ przejdź do strony 'Subskrypcje', która znajduje siÄ™ w profilu użytkownika", + "subscriptions.modal.new-subscription-form.type.content": "Zawartość", + "subscriptions.modal.new-subscription-form.frequency.D": "Codziennie", + "subscriptions.modal.new-subscription-form.frequency.W": "Co tydzieÅ„", + "subscriptions.modal.new-subscription-form.frequency.M": "Co miesiÄ…c", + "subscriptions.modal.new-subscription-form.submit": "Zapisz", + "subscriptions.modal.new-subscription-form.processing": "Åadowanie...", + "subscriptions.modal.create.success": "Zasubskrybowano {{ type }}", + "subscriptions.modal.delete.success": "Subskrypcja zostaÅ‚a anulowana", + "subscriptions.modal.update.success": "Twoja subskrypcja {{ type }} zostaÅ‚a zaktualizowana", + "subscriptions.modal.create.error": "WystÄ…piÅ‚ bÅ‚ad podczas tworzenia subskrypcji", + "subscriptions.modal.delete.error": "WystÄ…piÅ‚ bÅ‚ad podczas usuwania subskrypcji", + "subscriptions.modal.update.error": "WystÄ…piÅ‚ bÅ‚ad podczas aktualizacji subskrypcji", + "subscriptions.table.dso": "SÅ‚owo kluczowe", + "subscriptions.table.subscription_type": "Typ subskrypcji", + "subscriptions.table.subscription_frequency": "CzÄ™stotliwość subskrypcji", + "subscriptions.table.action": "Akcja", + "subscriptions.table.edit": "Edytuj", + "subscriptions.table.delete": "UsuÅ„", + "subscriptions.table.not-available": "NiedostÄ™pne", + "subscriptions.table.not-available-message": "Ta pozycja zostaÅ‚a usuniÄ™ta lun nie masz do niej dostÄ™pu, aby jÄ… wyswietlić", + "subscriptions.table.empty.message": "Ta pozycja nie ma w tym momencie żadnych subksrypcji. Aby zasubkrybować i otrzymywać aktualizacje o tym zbiorze lub kolekcji, wybierz przycisk subskrypcji na stronie pozycji.", + "vocabulary-treeview.info": "Wybierz sÅ‚owo kluczowe, aby dodać je do filtra", + "supervisedWorkspace.search.results.head": "Pozycje recenzowane", + "supervision.search.results.head": "Status zadaÅ„: Szkic i redakcja", + "workspace-item.delete.breadcrumbs": "UsuniÄ™to wersjÄ™ roboczÄ…", + "workspace-item.delete.header": "UsuÅ„ wersjÄ™ roboczÄ…", + "workspace-item.delete.button.confirm": "UsuÅ„", + "workspace-item.delete.button.cancel": "Anuluj", + "workspace-item.delete.notification.success.title": "UsuniÄ™to", + "workspace-item.delete.title": "Wersja robocza zostaÅ‚a usunieta", + "workspace-item.delete.notification.error.title": "CoÅ› poszÅ‚o nie tak", + "workspace-item.delete.notification.error.content": "Wersja robocza nie może zostać usunieta", + "workflow-item.advanced.title": "Zaawansowane workflow", + "workflow-item.selectrevieweraction.notification.success.title": "Wybrany recenzent", + "workflow-item.selectrevieweraction.notification.success.content": "Recenzent zostaÅ‚ przypisany", + "workflow-item.selectrevieweraction.notification.error.title": "CoÅ› poszÅ‚o nie tak", + "workflow-item.selectrevieweraction.notification.error.content": "Nie udaÅ‚o siÄ™ wybrać recenzenta dla pozycji", + "workflow-item.selectrevieweraction.title": "Wybierz recenzenta", + "workflow-item.selectrevieweraction.header": "Wybierz recenzenta", + "workflow-item.selectrevieweraction.button.cancel": "Anuluj", + "workflow-item.selectrevieweraction.button.confirm": "Zatwierdź", + "workflow-item.scorereviewaction.notification.success.title": "Ocena recenzji", + "workflow-item.scorereviewaction.notification.success.content": "Ocena tej pozycji zostaÅ‚a zapisana", + "workflow-item.scorereviewaction.notification.error.title": "CoÅ› poszÅ‚o nie tak", + "workflow-item.scorereviewaction.notification.error.content": "Nie można ocenić tej pozycji", + "workflow-item.scorereviewaction.title": "OceÅ„ pozycjÄ™", + "workflow-item.scorereviewaction.header": "OceÅ„ pozycjÄ™", + "workflow-item.scorereviewaction.button.cancel": "Anuluj", + "workflow-item.scorereviewaction.button.confirm": "Potwierdź", + "listable-notification-object.default-message": "Ta pozycja nie może być odzyskana", + "system-wide-alert-banner.retrieval.error": "CoÅ› poszÅ‚o nie tak podczas odzyskiwania alertu systemowego", + "system-wide-alert-banner.countdown.prefix": "W", + "system-wide-alert-banner.countdown.days": "{{days}} dni,", + "system-wide-alert-banner.countdown.hours": "{{hours}} godziny", + "system-wide-alert-banner.countdown.minutes": "{{minutes}} minut:", + "menu.section.system-wide-alert": "Alert systemowy", + "system-wide-alert.form.header": "Alert systemowy", + "system-wide-alert-form.retrieval.error": "CoÅ› poszÅ‚o nie tak podczas odzyskiwania alertu systemowego", + "system-wide-alert.form.cancel": "Anuluj", + "system-wide-alert.form.save": "Zapisz", + "system-wide-alert.form.label.active": "AKTYWNE", + "system-wide-alert.form.label.inactive": "NIEAKTYWNE", + "system-wide-alert.form.error.message": "Alert systemowy musi zawierać wiadomość", + "system-wide-alert.form.label.message": "Alert systemowy", + "system-wide-alert.form.label.countdownTo.enable": "Wprowadź licznik czasowy", + "system-wide-alert.form.label.countdownTo.hint": "Wskazówka: Wpisz wartość licznika czasu. Kiedy licznik jest wÅ‚Ä…czony, alert systemowy zostanie wyÅ›wietlony o wybranym czasie. Kiedy odliczanie zostanie zakoÅ„czone, alert systemowy zostanie wyÅ‚Ä…czony. Serwer NIE zostanie zatrzymany automatycznie.", + "system-wide-alert.form.label.preview": "PodglÄ…d alertu systemowego", + "system-wide-alert.form.update.success": "Alert systemowy zostaÅ‚ zaktualizowany", + "system-wide-alert.form.update.error": "CoÅ› poszÅ‚o nie tak podczas aktualizacji alertu systemowego", + "system-wide-alert.form.create.success": "Alert systemowy zostaÅ‚ utworzony", + "system-wide-alert.form.create.error": "CoÅ› poszÅ‚o nie tak podczas tworzenia alertu systemowego", + "admin.system-wide-alert.breadcrumbs": "Alerty systemowe", + "admin.system-wide-alert.title": "Alerty systemowe", + "item-access-control-title": "Ta strona pozwala na zmianÄ™ dostÄ™pów metadanych pozycji i plików do nich doÅ‚Ä…czonych.", + "collection-access-control-title": "Ta strona pozwala na zmianÄ™ warunków dostÄ™pu dla wszystkich pozycji w tej kolekcji. Zmiany mogÄ… być wykonywane zarówno na metadanych pozycji jak i plikach do nich doÅ‚Ä…czonych.", + "community-access-control-title": "Ta strona pozwala na zmianÄ™ warunków dostÄ™pu dla wszystkich pozycji w każdej kolekcji w tym zbiorze. Zmiany mogÄ… być wykonywane zarówno na metadanych pozycji jak i plikach do nich doÅ‚Ä…czonych.", + "access-control-item-header-toggle": "Metadane pozycji", + "access-control-bitstream-header-toggle": "Pliki", + "access-control-mode": "Tryb", + "access-control-access-conditions": "Warunki dostÄ™pu", + "access-control-no-access-conditions-warning-message": "W tym momencie żadne warunki dostÄ™pu nie zostaÅ‚y okreÅ›lone. JeÅ›li zadanie zostanie rozpoczÄ™te, obecne warunki dostÄ™pu zostanÄ… zastÄ…pione domyÅ›lnymi warunkami dostÄ™pu z nadrzÄ™dnej kolekcji.", + "access-control-replace-all": "ZastÄ…p warunki dostÄ™pu", + "access-control-add-to-existing": "Dodaj do już istniejÄ…cych", + "access-control-limit-to-specific": "Ogranicz zmiany do wybranych plików", + "access-control-process-all-bitstreams": "Zaktualizuj wszystkie pliki dla tej pozycji", + "access-control-bitstreams-selected": "wybrane pliki", + "access-control-cancel": "Anuluj", + "access-control-execute": "Wykonaj", + "access-control-add-more": "Dodaj wiÄ™cej", + "access-control-select-bitstreams-modal.title": "Wybierz pliki", + "access-control-select-bitstreams-modal.no-items": "Brak pozycji do wyÅ›wietlenia.", + "access-control-select-bitstreams-modal.close": "Zamknij", + "access-control-option-label": "Typ warunków dostÄ™pu", + "access-control-option-note": "Wybierz warunki dostÄ™pu, które chcesz przypisać do zaznaczonych pozycji.", + "access-control-option-start-date": "DostÄ™p od", + "access-control-option-start-date-note": "Wybierz datÄ™, kiedy wybrane warunki dostÄ™pu majÄ… obowiÄ…zywać", + "access-control-option-end-date": "DostÄ™p do", + "access-control-option-end-date-note": "Wybierz datÄ™, kiedy wybrane warunki dostÄ™pu majÄ… obowiÄ…zywać", } -- GitLab From 7f00253d3d84a450986a0976deb7cbdca5eb9920 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Mon, 14 Aug 2023 15:54:19 +0200 Subject: [PATCH 040/183] 105265: Made the DsDynamicListComponent's checkbox & radio buttons ids unique for each metadata field to prevent other value-pairs having the same id (cherry picked from commit 4c419e1eee9aca0287216654da38362bce93044e) --- .../ds-dynamic-form-ui/models/list/dynamic-list.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/models/list/dynamic-list.component.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/models/list/dynamic-list.component.ts index aa62e5b40d..16c46fc26b 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/models/list/dynamic-list.component.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/models/list/dynamic-list.component.ts @@ -130,7 +130,7 @@ export class DsDynamicListComponent extends DynamicFormControlComponent implemen (v) => v.value === option.value)); const item: ListItem = { - id: value, + id: `${this.model.id}_${value}`, label: option.display, value: checked, index: key -- GitLab From 815425c10114dc6919ab0e13c31ed8f22bc43715 Mon Sep 17 00:00:00 2001 From: Koen Pauwels <koen.pauwels@atmire.com> Date: Tue, 8 Aug 2023 17:28:05 +0200 Subject: [PATCH 041/183] Fix lint issue. --- src/assets/i18n/en.json5 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 1029e9546b..9d4188deb2 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -2162,7 +2162,7 @@ "item.edit.move.inheritpolicies.description": "Inherit the default policies of the destination collection", - "item.edit.move.inheritpolicies.tooltip" : "Warning: When enabled, the read access policy for the item and any files associated with the item will be replaced by the default read access policy of the collection. This cannot be undone.", + "item.edit.move.inheritpolicies.tooltip": "Warning: When enabled, the read access policy for the item and any files associated with the item will be replaced by the default read access policy of the collection. This cannot be undone.", "item.edit.move.move": "Move", -- GitLab From 0e289b3f394df8b94ac8c83bf29e1d9c8fdadae8 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Tue, 27 Jun 2023 15:26:49 +0200 Subject: [PATCH 042/183] 103176: Fix vcr not being defined yet in OnInit hook --- src/app/shared/theme-support/themed.component.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/app/shared/theme-support/themed.component.ts b/src/app/shared/theme-support/themed.component.ts index 6b0727ccdd..3ef55be301 100644 --- a/src/app/shared/theme-support/themed.component.ts +++ b/src/app/shared/theme-support/themed.component.ts @@ -1,10 +1,10 @@ import { + AfterViewInit, Component, ViewChild, ViewContainerRef, ComponentRef, SimpleChanges, - OnInit, OnDestroy, ComponentFactoryResolver, ChangeDetectorRef, @@ -24,7 +24,7 @@ import { BASE_THEME_NAME } from './theme.constants'; styleUrls: ['./themed.component.scss'], templateUrl: './themed.component.html', }) -export abstract class ThemedComponent<T> implements OnInit, OnDestroy, OnChanges { +export abstract class ThemedComponent<T> implements AfterViewInit, OnDestroy, OnChanges { @ViewChild('vcr', { read: ViewContainerRef }) vcr: ViewContainerRef; @ViewChild('content') themedElementContent: ElementRef; protected compRef: ComponentRef<T>; @@ -74,7 +74,7 @@ export abstract class ThemedComponent<T> implements OnInit, OnDestroy, OnChanges } } - ngOnInit(): void { + ngAfterViewInit(): void { this.destroyComponentInstance(); this.initComponentInstance(); } -- GitLab From 4e14bc0b78d1954c21c1cc3359f83047d92b9be5 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Mon, 24 Jul 2023 23:42:55 +0200 Subject: [PATCH 043/183] 101577: Ensure the component is always destroyed before rendering the new component --- src/app/shared/theme-support/themed.component.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/app/shared/theme-support/themed.component.ts b/src/app/shared/theme-support/themed.component.ts index 3ef55be301..ded83aaf32 100644 --- a/src/app/shared/theme-support/themed.component.ts +++ b/src/app/shared/theme-support/themed.component.ts @@ -75,7 +75,6 @@ export abstract class ThemedComponent<T> implements AfterViewInit, OnDestroy, On } ngAfterViewInit(): void { - this.destroyComponentInstance(); this.initComponentInstance(); } @@ -96,8 +95,6 @@ export abstract class ThemedComponent<T> implements AfterViewInit, OnDestroy, On } if (hasNoValue(this.lazyLoadObs)) { - this.destroyComponentInstance(); - this.lazyLoadObs = combineLatest([ observableOf(changes), this.resolveThemedComponent(this.themeService.getThemeName()).pipe( @@ -120,6 +117,7 @@ export abstract class ThemedComponent<T> implements AfterViewInit, OnDestroy, On } this.lazyLoadSub = this.lazyLoadObs.subscribe(([simpleChanges, constructor]: [SimpleChanges, GenericConstructor<T>]) => { + this.destroyComponentInstance(); const factory = this.resolver.resolveComponentFactory(constructor); this.compRef = this.vcr.createComponent(factory, undefined, undefined, [this.themedElementContent.nativeElement.childNodes]); if (hasValue(simpleChanges)) { -- GitLab From 7352d9e2733e09efe1d3397d8b5af7c59f156816 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Sun, 30 Jul 2023 19:43:20 +0200 Subject: [PATCH 044/183] Reset to base theme when no default theme is set and leaving UUID/handle theme --- src/app/shared/theme-support/theme.service.ts | 9 +++++---- src/config/config.util.ts | 7 +++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/app/shared/theme-support/theme.service.ts b/src/app/shared/theme-support/theme.service.ts index 6d2939a5f8..762aece729 100644 --- a/src/app/shared/theme-support/theme.service.ts +++ b/src/app/shared/theme-support/theme.service.ts @@ -29,7 +29,7 @@ export const themeStateSelector = createFeatureSelector<ThemeState>('theme'); export const currentThemeSelector = createSelector( themeStateSelector, - (state: ThemeState): string => hasValue(state) ? state.currentTheme : undefined + (state: ThemeState): string => hasValue(state) ? state.currentTheme : BASE_THEME_NAME, ); @Injectable({ @@ -262,7 +262,7 @@ export class ThemeService { } // inherit the head tags of the default theme - return this.createHeadTags(defaultThemeConfig.name); + return this.createHeadTags(defaultThemeName); } return headTagConfigs.map(this.createHeadTag.bind(this)); @@ -425,9 +425,10 @@ export class ThemeService { * @private */ private getActionForMatch(newTheme: Theme, currentThemeName: string): SetThemeAction | NoOpAction { - if (hasValue(newTheme) && newTheme.config.name !== currentThemeName) { + const newThemeName: string = newTheme?.config.name ?? BASE_THEME_NAME; + if (newThemeName !== currentThemeName) { // If we have a match, and it isn't already the active theme, set it as the new theme - return new SetThemeAction(newTheme.config.name); + return new SetThemeAction(newThemeName); } else { // Otherwise, do nothing return new NoOpAction(); diff --git a/src/config/config.util.ts b/src/config/config.util.ts index 3d152d4563..9912a817d6 100644 --- a/src/config/config.util.ts +++ b/src/config/config.util.ts @@ -5,7 +5,8 @@ import { environment } from '../environments/environment'; import { hasNoValue } from '../app/shared/empty.util'; import { AppConfig } from './app-config.interface'; -import { ThemeConfig } from './theme.model'; +import { ThemeConfig, NamedThemeConfig } from './theme.model'; +import { BASE_THEME_NAME } from '../app/shared/theme-support/theme.constants'; /** * Extend Angular environment with app config. @@ -44,7 +45,9 @@ const getDefaultThemeConfig = (): ThemeConfig => { hasNoValue(themeConfig.regex) && hasNoValue(themeConfig.handle) && hasNoValue(themeConfig.uuid) - ); + ) ?? { + name: BASE_THEME_NAME, + } as NamedThemeConfig; }; export { -- GitLab From 8b57a2f6af9b779189640033d3cf20945be4cf63 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Sun, 6 Aug 2023 19:59:08 +0200 Subject: [PATCH 045/183] Merge branch 'fix-ngonchanges-not-working-for-themed-components_contribute-7.2' into fix-ngonchanges-not-working-for-themed-components_contribute-7.4 # Conflicts: # src/app/app.component.ts --- src/app/shared/theme-support/theme.service.ts | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/src/app/shared/theme-support/theme.service.ts b/src/app/shared/theme-support/theme.service.ts index 762aece729..4ce976dd58 100644 --- a/src/app/shared/theme-support/theme.service.ts +++ b/src/app/shared/theme-support/theme.service.ts @@ -240,14 +240,7 @@ export class ThemeService { if (hasValue(parentThemeName)) { // inherit the head tags of the parent theme return this.createHeadTags(parentThemeName); - } - const defaultThemeConfig = getDefaultThemeConfig(); - const defaultThemeName = defaultThemeConfig.name; - if ( - hasNoValue(defaultThemeName) || - themeName === defaultThemeName || - themeName === BASE_THEME_NAME - ) { + } else { // last resort, use fallback favicon.ico return [ this.createHeadTag({ @@ -260,9 +253,6 @@ export class ThemeService { }) ]; } - - // inherit the head tags of the default theme - return this.createHeadTags(defaultThemeName); } return headTagConfigs.map(this.createHeadTag.bind(this)); -- GitLab From a343991e744e663dae5608c0633fdc368d99b2d7 Mon Sep 17 00:00:00 2001 From: Hugo Dominguez <hugo@escire.lat> Date: Fri, 25 Aug 2023 13:18:10 -0600 Subject: [PATCH 046/183] =?UTF-8?q?=F0=9F=90=9B=20go=20to=20first=20page?= =?UTF-8?q?=20after=20submit=20search?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 88a7088b47a09c9927a869ebf67e9c174dd1f713) --- src/app/shared/search-form/search-form.component.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/app/shared/search-form/search-form.component.ts b/src/app/shared/search-form/search-form.component.ts index 151ded6f9e..95a063bdd6 100644 --- a/src/app/shared/search-form/search-form.component.ts +++ b/src/app/shared/search-form/search-form.component.ts @@ -114,7 +114,14 @@ export class SearchFormComponent implements OnChanges { * @param data Updated parameters */ updateSearch(data: any) { - const queryParams = Object.assign({}, data); + const goToFirstPage = { 'spc.page': 1 }; + + const queryParams = Object.assign( + { + ...goToFirstPage + }, + data + ); void this.router.navigate(this.getSearchLinkParts(), { queryParams: queryParams, -- GitLab From 5c669fb1b757448d681fecffcf6bae8f29825b03 Mon Sep 17 00:00:00 2001 From: Hugo Dominguez <hugo@escire.lat> Date: Fri, 25 Aug 2023 13:20:37 -0600 Subject: [PATCH 047/183] =?UTF-8?q?=E2=9C=85=20add=20first=20page=20condit?= =?UTF-8?q?ion=20when=20search=20submit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 044230209c3c0d817da9628802b8ef6d0b6aab86) --- .../search-form/search-form.component.spec.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/app/shared/search-form/search-form.component.spec.ts b/src/app/shared/search-form/search-form.component.spec.ts index 584b7c5584..1fe1ea8316 100644 --- a/src/app/shared/search-form/search-form.component.spec.ts +++ b/src/app/shared/search-form/search-form.component.spec.ts @@ -28,6 +28,7 @@ describe('SearchFormComponent', () => { const searchService = new SearchServiceStub(); const paginationService = new PaginationServiceStub(); const searchConfigService = { paginationID: 'test-id' }; + const firstPage = { 'spc.page': 1 }; const dspaceObjectService = { findById: () => createSuccessfulRemoteDataObject$(undefined), }; @@ -104,16 +105,16 @@ describe('SearchFormComponent', () => { const scope = 'MCU'; let searchQuery = {}; - it('should navigate to the search page even when no parameters are provided', () => { + it('should navigate to the search first page even when no parameters are provided', () => { comp.updateSearch(searchQuery); expect(router.navigate).toHaveBeenCalledWith(comp.getSearchLinkParts(), { - queryParams: searchQuery, + queryParams: { ...searchQuery, ...firstPage }, queryParamsHandling: 'merge' }); }); - it('should navigate to the search page with parameters only query if only query is provided', () => { + it('should navigate to the search first page with parameters only query if only query is provided', () => { searchQuery = { query: query }; @@ -121,12 +122,12 @@ describe('SearchFormComponent', () => { comp.updateSearch(searchQuery); expect(router.navigate).toHaveBeenCalledWith(comp.getSearchLinkParts(), { - queryParams: searchQuery, + queryParams: { ...searchQuery, ...firstPage }, queryParamsHandling: 'merge' }); }); - it('should navigate to the search page with parameters only query if only scope is provided', () => { + it('should navigate to the search first page with parameters only query if only scope is provided', () => { searchQuery = { scope: scope }; @@ -134,7 +135,7 @@ describe('SearchFormComponent', () => { comp.updateSearch(searchQuery); expect(router.navigate).toHaveBeenCalledWith(comp.getSearchLinkParts(), { - queryParams: searchQuery, + queryParams: {...searchQuery, ...firstPage}, queryParamsHandling: 'merge' }); }); -- GitLab From eef98d70c35f92a33e4a19dd1f9f92dbff29ca4f Mon Sep 17 00:00:00 2001 From: Hrafn Malmquist <hrafn.malmquist@gmail.com> Date: Tue, 22 Aug 2023 04:26:53 +0100 Subject: [PATCH 048/183] Replace h5 with a span (cherry picked from commit 5ef4a827f5a2f4e03fc373eece317fd1e52aaac0) --- .../community-list/community-list.component.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/community-list-page/community-list/community-list.component.html b/src/app/community-list-page/community-list/community-list.component.html index d6fd77e79b..38c9ed1ad6 100644 --- a/src/app/community-list-page/community-list/community-list.component.html +++ b/src/app/community-list-page/community-list/community-list.component.html @@ -34,13 +34,13 @@ aria-hidden="true"></span> </button> <div class="d-flex flex-row"> - <h5 class="align-middle pt-2"> + <span class="align-middle pt-2 lead"> <a [routerLink]="node.route" class="lead"> {{ dsoNameService.getName(node.payload) }} </a> <span class="pr-2"> </span> <span *ngIf="node.payload.archivedItemsCount >= 0" class="badge badge-pill badge-secondary align-top archived-items-lead">{{node.payload.archivedItemsCount}}</span> - </h5> + </span> </div> </div> <ds-truncatable [id]="node.id"> -- GitLab From 46ac61dcac5e6c3169a846f63d81eada002cff59 Mon Sep 17 00:00:00 2001 From: Hrafn Malmquist <hrafn.malmquist@gmail.com> Date: Tue, 22 Aug 2023 04:27:23 +0100 Subject: [PATCH 049/183] Replace h2 with a h1 (cherry picked from commit 05c53ad1d49da41af474322364891289494a5f02) --- src/app/community-list-page/community-list-page.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/community-list-page/community-list-page.component.html b/src/app/community-list-page/community-list-page.component.html index 9759f4405d..4392fb87d0 100644 --- a/src/app/community-list-page/community-list-page.component.html +++ b/src/app/community-list-page/community-list-page.component.html @@ -1,4 +1,4 @@ <div class="container"> - <h2>{{ 'communityList.title' | translate }}</h2> + <h1>{{ 'communityList.title' | translate }}</h1> <ds-themed-community-list></ds-themed-community-list> </div> -- GitLab From 9fc4e213df758576f393975e12e0ae5b929330c4 Mon Sep 17 00:00:00 2001 From: Hrafn Malmquist <hrafn.malmquist@gmail.com> Date: Tue, 22 Aug 2023 04:28:28 +0100 Subject: [PATCH 050/183] Add trackby function so cdktree can differentiate between new and old nodes (cherry picked from commit 5f71de885bc811152729b3fefcb6fefbeda3001e) --- .../community-list/community-list.component.html | 2 +- .../community-list/community-list.component.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/app/community-list-page/community-list/community-list.component.html b/src/app/community-list-page/community-list/community-list.component.html index 38c9ed1ad6..18e9e84577 100644 --- a/src/app/community-list-page/community-list/community-list.component.html +++ b/src/app/community-list-page/community-list/community-list.component.html @@ -1,5 +1,5 @@ <ds-themed-loading *ngIf="(dataSource.loading$ | async) && !loadingNode" class="ds-themed-loading"></ds-themed-loading> -<cdk-tree [dataSource]="dataSource" [treeControl]="treeControl"> +<cdk-tree [dataSource]="dataSource" [treeControl]="treeControl" [trackBy]="trackBy"> <!-- This is the tree node template for show more node --> <cdk-tree-node *cdkTreeNodeDef="let node; when: isShowMore" cdkTreeNodePadding class="example-tree-node show-more-node"> diff --git a/src/app/community-list-page/community-list/community-list.component.ts b/src/app/community-list-page/community-list/community-list.component.ts index 5b2f930813..e4ad5d8c29 100644 --- a/src/app/community-list-page/community-list/community-list.component.ts +++ b/src/app/community-list-page/community-list/community-list.component.ts @@ -30,6 +30,7 @@ export class CommunityListComponent implements OnInit, OnDestroy { ); dataSource: CommunityListDatasource; + trackBy = (index, node: FlatNode) => node.id; paginationConfig: FindListOptions; -- GitLab From e89a277702aed1b3ec462a88518bffb788ac50ac Mon Sep 17 00:00:00 2001 From: Hrafn Malmquist <hrafn.malmquist@gmail.com> Date: Tue, 22 Aug 2023 04:29:01 +0100 Subject: [PATCH 051/183] Improve documentation (cherry picked from commit d9b6e9d81f2fba70f7c13a1377e2f2472c20d592) --- .../community-list-service.ts | 6 ++--- .../community-list.component.ts | 25 ++++++++++++++----- .../show-more-flat-node.model.ts | 2 +- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/app/community-list-page/community-list-service.ts b/src/app/community-list-page/community-list-service.ts index 99e9dbeb0d..67715716da 100644 --- a/src/app/community-list-page/community-list-service.ts +++ b/src/app/community-list-page/community-list-service.ts @@ -25,7 +25,7 @@ import { ShowMoreFlatNode } from './show-more-flat-node.model'; import { FindListOptions } from '../core/data/find-list-options.model'; import { AppConfig, APP_CONFIG } from 'src/config/app-config.interface'; -// Helper method to combine an flatten an array of observables of flatNode arrays +// Helper method to combine and flatten an array of observables of flatNode arrays export const combineAndFlatten = (obsList: Observable<FlatNode[]>[]): Observable<FlatNode[]> => observableCombineLatest([...obsList]).pipe( map((matrix: any[][]) => [].concat(...matrix)), @@ -199,7 +199,7 @@ export class CommunityListService { * Transforms a community in a list of FlatNodes containing firstly a flatnode of the community itself, * followed by flatNodes of its possible subcommunities and collection * It gets called recursively for each subcommunity to add its subcommunities and collections to the list - * Number of subcommunities and collections added, is dependant on the current page the parent is at for respectively subcommunities and collections. + * Number of subcommunities and collections added, is dependent on the current page the parent is at for respectively subcommunities and collections. * @param community Community being transformed * @param level Depth of the community in the list, subcommunities and collections go one level deeper * @param parent Flatnode of the parent community @@ -275,7 +275,7 @@ export class CommunityListService { /** * Checks if a community has subcommunities or collections by querying the respective services with a pageSize = 0 - * Returns an observable that combines the result.payload.totalElements fo the observables that the + * Returns an observable that combines the result.payload.totalElements of the observables that the * respective services return when queried * @param community Community being checked whether it is expandable (if it has subcommunities or collections) */ diff --git a/src/app/community-list-page/community-list/community-list.component.ts b/src/app/community-list-page/community-list/community-list.component.ts index e4ad5d8c29..bd1d5ecb78 100644 --- a/src/app/community-list-page/community-list/community-list.component.ts +++ b/src/app/community-list-page/community-list/community-list.component.ts @@ -59,18 +59,28 @@ export class CommunityListComponent implements OnInit, OnDestroy { this.communityListService.saveCommunityListStateToStore(this.expandedNodes, this.loadingNode); } - // whether or not this node has children (subcommunities or collections) + /** + * Whether this node has children (subcommunities or collections) + * @param _ + * @param node + */ hasChild(_: number, node: FlatNode) { return node.isExpandable$; } - // whether or not it is a show more node (contains no data, but is indication that there are more topcoms, subcoms or collections + /** + * Whether this is a show more node that contains no data, but indicates that there is + * one or more community or collection. + * @param _ + * @param node + */ isShowMore(_: number, node: FlatNode) { return node.isShowMoreNode; } /** - * Toggles the expanded variable of a node, adds it to the expanded nodes list and reloads the tree so this node is expanded + * Toggles the expanded variable of a node, adds it to the expanded nodes list and reloads the tree + * so this node is expanded * @param node Node we want to expand */ toggleExpanded(node: FlatNode) { @@ -93,9 +103,12 @@ export class CommunityListComponent implements OnInit, OnDestroy { /** * Makes sure the next page of a node is added to the tree (top community, sub community of collection) - * > Finds its parent (if not top community) and increases its corresponding collection/subcommunity currentPage - * > Reloads tree with new page added to corresponding top community lis, sub community list or collection list - * @param node The show more node indicating whether it's an increase in top communities, sub communities or collections + * > Finds its parent (if not top community) and increases its corresponding collection/subcommunity + * currentPage + * > Reloads tree with new page added to corresponding top community lis, sub community list or + * collection list + * @param node The show more node indicating whether it's an increase in top communities, sub communities + * or collections */ getNextPage(node: FlatNode): void { this.loadingNode = node; diff --git a/src/app/community-list-page/show-more-flat-node.model.ts b/src/app/community-list-page/show-more-flat-node.model.ts index 801c9e7388..c7b7162d21 100644 --- a/src/app/community-list-page/show-more-flat-node.model.ts +++ b/src/app/community-list-page/show-more-flat-node.model.ts @@ -1,6 +1,6 @@ /** * The show more links in the community tree are also represented by a flatNode so we know where in - * the tree it should be rendered an who its parent is (needed for the action resulting in clicking this link) + * the tree it should be rendered and who its parent is (needed for the action resulting in clicking this link) */ export class ShowMoreFlatNode { } -- GitLab From 8a5d6897c4a2130f56da71e04fb0e2bdba400b07 Mon Sep 17 00:00:00 2001 From: Hrafn Malmquist <hrafn.malmquist@gmail.com> Date: Tue, 22 Aug 2023 04:59:23 +0100 Subject: [PATCH 052/183] Reorder instance method to come after member declaration (cherry picked from commit e59913acab0e782a743a4f18634e2930de9b71e8) --- .../community-list/community-list.component.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/app/community-list-page/community-list/community-list.component.ts b/src/app/community-list-page/community-list/community-list.component.ts index bd1d5ecb78..90dd6b3c05 100644 --- a/src/app/community-list-page/community-list/community-list.component.ts +++ b/src/app/community-list-page/community-list/community-list.component.ts @@ -28,11 +28,9 @@ export class CommunityListComponent implements OnInit, OnDestroy { treeControl = new FlatTreeControl<FlatNode>( (node: FlatNode) => node.level, (node: FlatNode) => true ); - dataSource: CommunityListDatasource; - trackBy = (index, node: FlatNode) => node.id; - paginationConfig: FindListOptions; + trackBy = (index, node: FlatNode) => node.id; constructor( protected communityListService: CommunityListService, -- GitLab From 2a55e36082c78427fabfb2de8f4ab0a59f98890b Mon Sep 17 00:00:00 2001 From: Mirko Scherf <mscherf@uni-mainz.de> Date: Wed, 26 Jul 2023 13:04:04 +0200 Subject: [PATCH 053/183] fix(i18m): curation-task.task.registerdoi.label changed curation-task.task.register-doi.label back to curation-task.task.registerdoi.label and added German translation (cherry picked from commit 0ec72f679bb8d1bb7611c1de2125f92cb718b1a9) --- src/assets/i18n/de.json5 | 3 ++- src/assets/i18n/en.json5 | 2 +- src/assets/i18n/es.json5 | 4 ++-- src/assets/i18n/hu.json5 | 4 ++-- src/assets/i18n/it.json5 | 4 ++-- src/assets/i18n/pt-PT.json5 | 4 ++-- src/assets/i18n/vi.json5 | 2 +- 7 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/assets/i18n/de.json5 b/src/assets/i18n/de.json5 index 4ebce8012d..5ab57cf3e6 100644 --- a/src/assets/i18n/de.json5 +++ b/src/assets/i18n/de.json5 @@ -1712,7 +1712,8 @@ // "curation-task.task.vscan.label": "Virus Scan", "curation-task.task.vscan.label": "Virenscan", - + // "curation-task.task.registerdoi.label": "Register DOI", + "curation-task.task.registerdoi.label": "DOI registrieren", // "curation.form.task-select.label": "Task:", "curation.form.task-select.label": "Aufgabe:", diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 5c17fc8e42..e12233eb5b 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -1392,7 +1392,7 @@ "curation-task.task.vscan.label": "Virus Scan", - "curation-task.task.register-doi.label": "Register DOI", + "curation-task.task.registerdoi.label": "Register DOI", "curation.form.task-select.label": "Task:", diff --git a/src/assets/i18n/es.json5 b/src/assets/i18n/es.json5 index 5a0e40af42..bb9334cf11 100644 --- a/src/assets/i18n/es.json5 +++ b/src/assets/i18n/es.json5 @@ -2080,8 +2080,8 @@ // "curation-task.task.vscan.label": "Virus Scan", "curation-task.task.vscan.label": "Búsqueda de virus", - // "curation-task.task.register-doi.label": "Register DOI", - "curation-task.task.register-doi.label": "Registro DOI", + // "curation-task.task.registerdoi.label": "Register DOI", + "curation-task.task.registerdoi.label": "Registro DOI", diff --git a/src/assets/i18n/hu.json5 b/src/assets/i18n/hu.json5 index e1076c7512..d186f6435a 100644 --- a/src/assets/i18n/hu.json5 +++ b/src/assets/i18n/hu.json5 @@ -2228,9 +2228,9 @@ // "curation-task.task.vscan.label": "Virus Scan", "curation-task.task.vscan.label": "Virus ellenÅ‘rzés", - // "curation-task.task.register-doi.label": "Register DOI", + // "curation-task.task.registerdoi.label": "Register DOI", // TODO New key - Add a translation - "curation-task.task.register-doi.label": "Register DOI", + "curation-task.task.registerdoi.label": "Register DOI", diff --git a/src/assets/i18n/it.json5 b/src/assets/i18n/it.json5 index 1a97eca501..4fc07cebdf 100644 --- a/src/assets/i18n/it.json5 +++ b/src/assets/i18n/it.json5 @@ -2160,9 +2160,9 @@ // "curation-task.task.vscan.label": "Virus Scan", "curation-task.task.vscan.label": "Scansione antivirus", - // "curation-task.task.register-doi.label": "Register DOI", + // "curation-task.task.registerdoi.label": "Register DOI", // TODO New key - Add a translation - "curation-task.task.register-doi.label": "Register DOI", + "curation-task.task.registerdoi.label": "Register DOI", diff --git a/src/assets/i18n/pt-PT.json5 b/src/assets/i18n/pt-PT.json5 index 622f8cc48b..5aa4817e88 100644 --- a/src/assets/i18n/pt-PT.json5 +++ b/src/assets/i18n/pt-PT.json5 @@ -2054,8 +2054,8 @@ // "curation-task.task.vscan.label": "Virus Scan", "curation-task.task.vscan.label": "Scan de vÃrus", - // "curation-task.task.register-doi.label": "Register DOI", - "curation-task.task.register-doi.label": "Registo DOI", + // "curation-task.task.registerdoi.label": "Register DOI", + "curation-task.task.registerdoi.label": "Registo DOI", // "curation.form.task-select.label": "Task:", "curation.form.task-select.label": "Tarefa:", diff --git a/src/assets/i18n/vi.json5 b/src/assets/i18n/vi.json5 index f254df34fe..f9fb33ebcb 100644 --- a/src/assets/i18n/vi.json5 +++ b/src/assets/i18n/vi.json5 @@ -671,7 +671,7 @@ "curation-task.task.citationpage.label": "Tạo trang trÃch dẫn", "curation-task.task.noop.label": "NOOP", "curation-task.task.profileformats.label": "Äịnh dạng tệp tin", - "curation-task.task.register-doi.label": "Äăng ký DOI", + "curation-task.task.registerdoi.label": "Äăng ký DOI", "curation-task.task.requiredmetadata.label": "Kiểm tra các trÆ°á»ng dữ liệu bắt buá»™c", "curation-task.task.translate.label": "Bá»™ dịch của Microsoft", "curation-task.task.vscan.label": "Quét Virus", -- GitLab From 07a2e333ca5cb0f55178f9352d93b09f4fb311b2 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Sat, 26 Aug 2023 22:02:33 +0200 Subject: [PATCH 054/183] Implemented i18n cache busting --- package.json | 2 +- .../translate-browser.loader.ts | 4 +- .../translate-server.loader.ts | 3 +- webpack/helpers.ts | 47 +++++++++++++++---- webpack/webpack.common.ts | 11 +++-- 5 files changed, 53 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index 719b13b23b..a2dd76d01b 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "analyze": "webpack-bundle-analyzer dist/browser/stats.json", "build": "ng build --configuration development", "build:stats": "ng build --stats-json", - "build:prod": "yarn run build:ssr", + "build:prod": "cross-env NODE_ENV=production yarn run build:ssr", "build:ssr": "ng build --configuration production && ng run dspace-angular:server:production", "test": "ng test --source-map=true --watch=false --configuration test", "test:watch": "nodemon --exec \"ng test --source-map=true --watch=true --configuration test\"", diff --git a/src/ngx-translate-loaders/translate-browser.loader.ts b/src/ngx-translate-loaders/translate-browser.loader.ts index a6188c9f15..85d59c96f0 100644 --- a/src/ngx-translate-loaders/translate-browser.loader.ts +++ b/src/ngx-translate-loaders/translate-browser.loader.ts @@ -5,6 +5,7 @@ import { NGX_TRANSLATE_STATE, NgxTranslateState } from './ngx-translate-state'; import { hasValue } from '../app/shared/empty.util'; import { map } from 'rxjs/operators'; import { of as observableOf, Observable } from 'rxjs'; +import { environment } from '../environments/environment'; /** * A TranslateLoader for ngx-translate to retrieve i18n messages from the TransferState, or download @@ -33,9 +34,10 @@ export class TranslateBrowserLoader implements TranslateLoader { if (hasValue(messages)) { return observableOf(messages); } else { + const translationHash: string = environment.production ? `.${(process.env.languageHashes as any)[lang + '.json5']}` : ''; // If they're not available on the transfer state (e.g. when running in dev mode), retrieve // them using HttpClient - return this.http.get('' + this.prefix + lang + this.suffix, { responseType: 'text' }).pipe( + return this.http.get(`${this.prefix}${lang}${translationHash}${this.suffix}`, { responseType: 'text' }).pipe( map((json: any) => JSON.parse(json)) ); } diff --git a/src/ngx-translate-loaders/translate-server.loader.ts b/src/ngx-translate-loaders/translate-server.loader.ts index c09c71f049..1f47dfe95b 100644 --- a/src/ngx-translate-loaders/translate-server.loader.ts +++ b/src/ngx-translate-loaders/translate-server.loader.ts @@ -23,8 +23,9 @@ export class TranslateServerLoader implements TranslateLoader { * @param lang the language code */ public getTranslation(lang: string): Observable<any> { + const translationHash: string = (process.env.languageHashes as any)[lang + '.json5']; // Retrieve the file for the given language, and parse it - const messages = JSON.parse(readFileSync(`${this.prefix}${lang}${this.suffix}`, 'utf8')); + const messages = JSON.parse(readFileSync(`${this.prefix}${lang}.${translationHash}${this.suffix}`, 'utf8')); // Store the parsed messages in the transfer state so they'll be available immediately when the // app loads on the client this.storeInTransferState(lang, messages); diff --git a/webpack/helpers.ts b/webpack/helpers.ts index 43855f6c72..f0b42a8a69 100644 --- a/webpack/helpers.ts +++ b/webpack/helpers.ts @@ -1,18 +1,49 @@ -const path = require('path'); +import { readFileSync, readdirSync, statSync, Stats } from 'fs'; +import { join, resolve } from 'path'; + +const md5 = require('md5'); export const projectRoot = (relativePath) => { - return path.resolve(__dirname, '..', relativePath); + return resolve(__dirname, '..', relativePath); }; export const globalCSSImports = () => { return [ - projectRoot(path.join('src', 'styles', '_variables.scss')), - projectRoot(path.join('src', 'styles', '_mixins.scss')), + projectRoot(join('src', 'styles', '_variables.scss')), + projectRoot(join('src', 'styles', '_mixins.scss')), ]; }; +/** + * Calculates the md5 hash of a file + * + * @param filePath The path of the file + */ +export function calculateFileHash(filePath: string): string { + const fileContent: Buffer = readFileSync(filePath); + return md5(fileContent); +} -module.exports = { - projectRoot, - globalCSSImports -}; +/** + * Calculate the hashes of all the files (matching the given regex) in a certain folder + * + * @param folderPath The path of the folder + * @param regExp A regex of the files in the folder for which a hash needs to be generated + */ +export function getFileHashes(folderPath: string, regExp: RegExp): { [fileName: string]: string } { + const files: string[] = readdirSync(folderPath); + let hashes: { [fileName: string]: string } = {}; + + for (const file of files) { + if (file.match(regExp)) { + const filePath: string = join(folderPath, file); + const stats: Stats = statSync(filePath); + + if (stats.isFile()) { + hashes[file] = calculateFileHash(filePath); + } + } + } + + return hashes; +} diff --git a/webpack/webpack.common.ts b/webpack/webpack.common.ts index 1a1ecfd6ef..8d433edf39 100644 --- a/webpack/webpack.common.ts +++ b/webpack/webpack.common.ts @@ -1,4 +1,5 @@ -import { globalCSSImports, projectRoot } from './helpers'; +import { globalCSSImports, projectRoot, getFileHashes, calculateFileHash } from './helpers'; +import { EnvironmentPlugin } from 'webpack'; const CopyWebpackPlugin = require('copy-webpack-plugin'); const path = require('path'); @@ -18,12 +19,13 @@ export const copyWebpackOptions = { // use [\/|\\] to match both POSIX and Windows separators const matches = absoluteFilename.match(/.*[\/|\\]assets[\/|\\](.+)\.json5$/); if (matches) { + const fileHash: string = process.env.NODE_ENV === 'production' ? `.${calculateFileHash(absoluteFilename)}` : ''; // matches[1] is the relative path from src/assets to the JSON5 file, without the extension - return path.join('assets', matches[1] + '.json'); + return path.join('assets', `${matches[1]}${fileHash}.json`); } }, transform(content) { - return JSON.stringify(JSON5.parse(content.toString())) + return JSON.stringify(JSON5.parse(content.toString())); } }, { @@ -77,6 +79,9 @@ const SCSS_LOADERS = [ export const commonExports = { plugins: [ + new EnvironmentPlugin({ + languageHashes: getFileHashes(path.join(__dirname, '..', 'src', 'assets', 'i18n'), /.*\.json5/g), + }), new CopyWebpackPlugin(copyWebpackOptions), ], module: { -- GitLab From 13c0cb48ed9fd02a421fdcdfae3c578130f4c985 Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Mon, 28 Aug 2023 13:53:19 -0500 Subject: [PATCH 055/183] Update to latest cypress (cherry picked from commit 68a3323fcaf9b97d260f5032c9eb2fa5f6096bc2) --- package.json | 2 +- yarn.lock | 49 +++++++++++++++++++++++++++++++++++-------------- 2 files changed, 36 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 06d7063240..0cb2b8d41f 100644 --- a/package.json +++ b/package.json @@ -163,7 +163,7 @@ "compression-webpack-plugin": "^9.2.0", "copy-webpack-plugin": "^6.4.1", "cross-env": "^7.0.3", - "cypress": "12.10.0", + "cypress": "12.17.4", "cypress-axe": "^1.4.0", "deep-freeze": "0.0.1", "eslint": "^8.39.0", diff --git a/yarn.lock b/yarn.lock index e53a070d16..a7c8af6c04 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1551,10 +1551,10 @@ resolved "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz" integrity sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw== -"@cypress/request@^2.88.10": - version "2.88.11" - resolved "https://registry.npmjs.org/@cypress/request/-/request-2.88.11.tgz" - integrity sha512-M83/wfQ1EkspjkE2lNWNV5ui2Cv7UCv1swW1DqljahbzLVWltcsexQh8jYtuS/vzFXP+HySntGM83ZXA9fn17w== +"@cypress/request@2.88.12": + version "2.88.12" + resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.12.tgz#ba4911431738494a85e93fb04498cb38bc55d590" + integrity sha512-tOn+0mDZxASFM+cuAP9szGUGPI1HwWVSvdzm7V4cCsPdFTx6qMj29CwaQmRAMIEhORIUBFBsYROYJcveK4uOjA== dependencies: aws-sign2 "~0.7.0" aws4 "^1.8.0" @@ -1571,7 +1571,7 @@ performance-now "^2.1.0" qs "~6.10.3" safe-buffer "^5.1.2" - tough-cookie "~2.5.0" + tough-cookie "^4.1.3" tunnel-agent "^0.6.0" uuid "^8.3.2" @@ -2457,11 +2457,16 @@ resolved "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz" integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== -"@types/node@*", "@types/node@>=10.0.0", "@types/node@^14.14.31", "@types/node@^14.14.9": +"@types/node@*", "@types/node@>=10.0.0", "@types/node@^14.14.9": version "14.18.42" resolved "https://registry.npmjs.org/@types/node/-/node-14.18.42.tgz" integrity sha512-xefu+RBie4xWlK8hwAzGh3npDz/4VhF6icY/shU+zv/1fNn+ZVG7T7CRwe9LId9sAYRPxI+59QBPuKL3WpyGRg== +"@types/node@^16.18.39": + version "16.18.46" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.46.tgz#9f2102d0ba74a318fcbe170cbff5463f119eab59" + integrity sha512-Mnq3O9Xz52exs3mlxMcQuA7/9VFe/dXcrgAyfjLkABIqxXKOgBRjyazTxUbjsxDa4BP7hhPliyjVTP9RDP14xg== + "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz" @@ -4437,14 +4442,14 @@ cypress-axe@^1.4.0: resolved "https://registry.yarnpkg.com/cypress-axe/-/cypress-axe-1.4.0.tgz#e67482bfe9e740796bf77c7823f19781a8a2faff" integrity sha512-Ut7NKfzjyKm0BEbt2WxuKtLkIXmx6FD2j0RwdvO/Ykl7GmB/qRQkwbKLk3VP35+83hiIr8GKD04PDdrTK5BnyA== -cypress@12.10.0: - version "12.10.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-12.10.0.tgz#b6264f77c214d63530ebac2b33c4d099bd40b715" - integrity sha512-Y0wPc221xKKW1/4iAFCphkrG2jNR4MjOne3iGn4mcuCaE7Y5EtXL83N8BzRsAht7GYfWVjJ/UeTqEdDKHz39HQ== +cypress@12.17.4: + version "12.17.4" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-12.17.4.tgz#b4dadf41673058493fa0d2362faa3da1f6ae2e6c" + integrity sha512-gAN8Pmns9MA5eCDFSDJXWKUpaL3IDd89N9TtIupjYnzLSmlpVr+ZR+vb4U/qaMp+lB6tBvAmt7504c3Z4RU5KQ== dependencies: - "@cypress/request" "^2.88.10" + "@cypress/request" "2.88.12" "@cypress/xvfb" "^1.2.4" - "@types/node" "^14.14.31" + "@types/node" "^16.18.39" "@types/sinonjs__fake-timers" "8.1.1" "@types/sizzle" "^2.3.2" arch "^2.2.0" @@ -4477,9 +4482,10 @@ cypress@12.10.0: minimist "^1.2.8" ospath "^1.2.2" pretty-bytes "^5.6.0" + process "^0.11.10" proxy-from-env "1.0.0" request-progress "^3.0.0" - semver "^7.3.2" + semver "^7.5.3" supports-color "^8.1.1" tmp "~0.2.1" untildify "^4.0.0" @@ -9267,6 +9273,11 @@ process-nextick-args@~2.0.0: resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz" @@ -10131,7 +10142,7 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.0.0, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: +semver@^7.0.0, semver@^7.1.1, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -10912,6 +10923,16 @@ tough-cookie@^4.0.0, tough-cookie@^4.1.2: universalify "^0.2.0" url-parse "^1.5.3" +tough-cookie@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" + integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.2.0" + url-parse "^1.5.3" + tough-cookie@~2.5.0: version "2.5.0" resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" -- GitLab From 7ebdc43ca2c5c2d8826da036aa9253158e7ad416 Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Mon, 28 Aug 2023 13:55:05 -0500 Subject: [PATCH 056/183] Update to latest axe-core (cherry picked from commit 50899f1d1b16e322e323507ad7dd42e5173cfbe5) --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 0cb2b8d41f..849002f60e 100644 --- a/package.json +++ b/package.json @@ -159,7 +159,7 @@ "@types/sanitize-html": "^2.9.0", "@typescript-eslint/eslint-plugin": "^5.59.1", "@typescript-eslint/parser": "^5.59.1", - "axe-core": "^4.7.0", + "axe-core": "^4.7.2", "compression-webpack-plugin": "^9.2.0", "copy-webpack-plugin": "^6.4.1", "cross-env": "^7.0.3", diff --git a/yarn.lock b/yarn.lock index a7c8af6c04..58ddfaca4b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3363,10 +3363,10 @@ aws4@^1.8.0: resolved "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz" integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== -axe-core@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.0.tgz#34ba5a48a8b564f67e103f0aa5768d76e15bbbbf" - integrity sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ== +axe-core@^4.7.2: + version "4.7.2" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.2.tgz#040a7342b20765cb18bb50b628394c21bccc17a0" + integrity sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g== axios@0.21.4: version "0.21.4" -- GitLab From baecf2ac111ea4b528ea9893d00d7cee22e4d3a8 Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Tue, 29 Aug 2023 11:41:03 -0500 Subject: [PATCH 057/183] Reenable accessibility check fixed in #2251 (cherry picked from commit 158ebb0e3268a314e18bc4855457166d8b57f2e8) --- cypress/e2e/community-list.cy.ts | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/cypress/e2e/community-list.cy.ts b/cypress/e2e/community-list.cy.ts index 7b60b59dbc..d91260eca1 100644 --- a/cypress/e2e/community-list.cy.ts +++ b/cypress/e2e/community-list.cy.ts @@ -13,13 +13,6 @@ describe('Community List Page', () => { cy.get('[data-test="expand-button"]').click({ multiple: true }); // Analyze <ds-community-list-page> for accessibility issues - // Disable heading-order checks until it is fixed - testA11y('ds-community-list-page', - { - rules: { - 'heading-order': { enabled: false } - } - } as Options - ); + testA11y('ds-community-list-page'); }); }); -- GitLab From a7a807c0bb9b736ea9aa04860ae9ce8035ba5eac Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Tue, 29 Aug 2023 11:43:36 -0500 Subject: [PATCH 058/183] Enable excessibility checking of login menu, and remove unnecessary exclusion from header (cherry picked from commit 339ed63734d4192fb37a12e67b0395aa1669acdb) --- cypress/e2e/header.cy.ts | 3 +-- cypress/e2e/login-modal.cy.ts | 12 ++++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/cypress/e2e/header.cy.ts b/cypress/e2e/header.cy.ts index 236208db68..1a9b841eb7 100644 --- a/cypress/e2e/header.cy.ts +++ b/cypress/e2e/header.cy.ts @@ -11,8 +11,7 @@ describe('Header', () => { testA11y({ include: ['ds-header'], exclude: [ - ['#search-navbar-container'], // search in navbar has duplicative ID. Will be fixed in #1174 - ['.dropdownLogin'] // "Log in" link has color contrast issues. Will be fixed in #1149 + ['#search-navbar-container'] // search in navbar has duplicative ID. Will be fixed in #1174 ], }); }); diff --git a/cypress/e2e/login-modal.cy.ts b/cypress/e2e/login-modal.cy.ts index b169634cfa..d29c13c2f9 100644 --- a/cypress/e2e/login-modal.cy.ts +++ b/cypress/e2e/login-modal.cy.ts @@ -1,4 +1,5 @@ import { TEST_ADMIN_PASSWORD, TEST_ADMIN_USER, TEST_ENTITY_PUBLICATION } from 'cypress/support/e2e'; +import { testA11y } from 'cypress/support/utils'; const page = { openLoginMenu() { @@ -123,4 +124,15 @@ describe('Login Modal', () => { cy.location('pathname').should('eq', '/forgot'); cy.get('ds-forgot-email').should('exist'); }); + + it('should pass accessibility tests', () => { + cy.visit('/'); + + page.openLoginMenu(); + + cy.get('ds-log-in').should('exist'); + + // Analyze <ds-log-in> for accessibility issues + testA11y('ds-log-in'); + }); }); -- GitLab From 13ead8174abf4ab630b40e10002a17e3f988a79a Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Tue, 29 Aug 2023 11:44:03 -0500 Subject: [PATCH 059/183] Fix heading order issue with item page & update accessibility tests to prove it now passes (cherry picked from commit ba244bf6b14bfed06f1b1052cc6407f2537a175b) --- cypress/e2e/item-page.cy.ts | 20 ++++++++++--------- .../item-page-title-field.component.html | 4 ++-- .../metadata-field-wrapper.component.html | 2 +- .../metadata-field-wrapper.component.scss | 3 +++ 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/cypress/e2e/item-page.cy.ts b/cypress/e2e/item-page.cy.ts index 9eed711776..9dba6eb8ce 100644 --- a/cypress/e2e/item-page.cy.ts +++ b/cypress/e2e/item-page.cy.ts @@ -1,4 +1,3 @@ -import { Options } from 'cypress-axe'; import { TEST_ENTITY_PUBLICATION } from 'cypress/support/e2e'; import { testA11y } from 'cypress/support/utils'; @@ -19,13 +18,16 @@ describe('Item Page', () => { cy.get('ds-item-page').should('be.visible'); // Analyze <ds-item-page> for accessibility issues - // Disable heading-order checks until it is fixed - testA11y('ds-item-page', - { - rules: { - 'heading-order': { enabled: false } - } - } as Options - ); + testA11y('ds-item-page'); + }); + + it('should pass accessibility tests on full item page', () => { + cy.visit(ENTITYPAGE + '/full'); + + // <ds-full-item-page> tag must be loaded + cy.get('ds-full-item-page').should('be.visible'); + + // Analyze <ds-full-item-page> for accessibility issues + testA11y('ds-full-item-page'); }); }); diff --git a/src/app/item-page/simple/field-components/specific-field/title/item-page-title-field.component.html b/src/app/item-page/simple/field-components/specific-field/title/item-page-title-field.component.html index 15960bdc9d..85975d4533 100644 --- a/src/app/item-page/simple/field-components/specific-field/title/item-page-title-field.component.html +++ b/src/app/item-page/simple/field-components/specific-field/title/item-page-title-field.component.html @@ -1,6 +1,6 @@ -<h2 class="item-page-title-field"> +<h1 class="item-page-title-field"> <div *ngIf="item.firstMetadataValue('dspace.entity.type') as type" class="d-inline"> {{ type.toLowerCase() + '.page.titleprefix' | translate }} </div> <span class="dont-break-out">{{ dsoNameService.getName(item) }}</span> -</h2> +</h1> diff --git a/src/app/shared/metadata-field-wrapper/metadata-field-wrapper.component.html b/src/app/shared/metadata-field-wrapper/metadata-field-wrapper.component.html index d69f87883b..7748e385ca 100644 --- a/src/app/shared/metadata-field-wrapper/metadata-field-wrapper.component.html +++ b/src/app/shared/metadata-field-wrapper/metadata-field-wrapper.component.html @@ -1,5 +1,5 @@ <div class="simple-view-element" [class.d-none]="hideIfNoTextContent && content.textContent.trim().length === 0"> - <h5 class="simple-view-element-header" *ngIf="label">{{ label }}</h5> + <h2 class="simple-view-element-header" *ngIf="label">{{ label }}</h2> <div #content class="simple-view-element-body"> <ng-content></ng-content> </div> diff --git a/src/app/shared/metadata-field-wrapper/metadata-field-wrapper.component.scss b/src/app/shared/metadata-field-wrapper/metadata-field-wrapper.component.scss index 75dfd09d0d..bf17d63d6c 100644 --- a/src/app/shared/metadata-field-wrapper/metadata-field-wrapper.component.scss +++ b/src/app/shared/metadata-field-wrapper/metadata-field-wrapper.component.scss @@ -2,4 +2,7 @@ .simple-view-element { margin-bottom: 15px; } + .simple-view-element-header { + font-size: 1.25rem; + } } -- GitLab From b90d102e5e252e1bd4bb2b36b02508e36d94da30 Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Tue, 29 Aug 2023 14:58:49 -0500 Subject: [PATCH 060/183] Update ng2-nouislider and nouislider to latest versions (cherry picked from commit 91d8b7e4f7187b68f70c1cf2906f4e6e8d8af2b9) --- package.json | 4 ++-- src/styles/_vendor.scss | 2 +- yarn.lock | 18 ++++++++++-------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 849002f60e..9aec4e0823 100644 --- a/package.json +++ b/package.json @@ -116,12 +116,12 @@ "morgan": "^1.10.0", "ng-mocks": "^14.10.0", "ng2-file-upload": "1.4.0", - "ng2-nouislider": "^1.8.3", + "ng2-nouislider": "^2.0.0", "ngx-infinite-scroll": "^15.0.0", "ngx-pagination": "6.0.3", "ngx-sortablejs": "^11.1.0", "ngx-ui-switch": "^14.0.3", - "nouislider": "^14.6.3", + "nouislider": "^15.7.1", "pem": "1.14.7", "prop-types": "^15.8.1", "react-copy-to-clipboard": "^5.1.0", diff --git a/src/styles/_vendor.scss b/src/styles/_vendor.scss index 9d9842b9b3..b2b94c2826 100644 --- a/src/styles/_vendor.scss +++ b/src/styles/_vendor.scss @@ -1,5 +1,5 @@ // node_modules imports meant for all the themes @import '~node_modules/bootstrap/scss/bootstrap.scss'; -@import '~node_modules/nouislider/distribute/nouislider.min'; +@import '~node_modules/nouislider/dist/nouislider.min'; @import '~node_modules/ngx-ui-switch/ui-switch.component.scss'; diff --git a/yarn.lock b/yarn.lock index 58ddfaca4b..44625c4bd0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8197,10 +8197,12 @@ ng2-file-upload@1.4.0: dependencies: tslib "^1.9.0" -ng2-nouislider@^1.8.3: - version "1.8.3" - resolved "https://registry.npmjs.org/ng2-nouislider/-/ng2-nouislider-1.8.3.tgz" - integrity sha512-Vl8tHCcJ/ioJLAs2t6FBC35sZq1P/O5ZdqdFwYxOCOMVbILGWNg+2gWZIjFstvv9pqb/mVvVUYe6qGG/mA/RBQ== +ng2-nouislider@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ng2-nouislider/-/ng2-nouislider-2.0.0.tgz#a62fd6cf3f1561be19a2691c2f68d21a46dc6006" + integrity sha512-NGbF/0w0+bZqclpSPFOlWIeVJaVwRRYFJzD1x8PClbw9GIeo7fCHoBzZ81y7K7FTJg6to+cgjSTFETPZG/Dizg== + dependencies: + tslib "^2.3.0" ngx-infinite-scroll@^15.0.0: version "15.0.0" @@ -8343,10 +8345,10 @@ normalize-url@^4.5.0: resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz" integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== -nouislider@^14.6.3: - version "14.7.0" - resolved "https://registry.npmjs.org/nouislider/-/nouislider-14.7.0.tgz" - integrity sha512-4RtQ1+LHJKesDCNJrXkQcwXAWCrC2aggdLYMstS/G5fEWL+fXZbUA9pwVNHFghMGuFGRATlDLNInRaPeRKzpFQ== +nouislider@^15.7.1: + version "15.7.1" + resolved "https://registry.yarnpkg.com/nouislider/-/nouislider-15.7.1.tgz#77d55e47d9b4cd771728515713df43b489db9705" + integrity sha512-5N7C1ru/i8y3dg9+Z6ilj6+m1EfabvOoaRa7ztpxBSKKRZso4vA52DGSbBJjw5XLtFr/LZ9SgGAXqyVtlVHO5w== npm-bundled@^3.0.0: version "3.0.0" -- GitLab From 3cdcdaf475f19e2d264c4e3685cf94ac2fc847c5 Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Tue, 29 Aug 2023 15:01:21 -0500 Subject: [PATCH 061/183] Fix accessibility of date sliders by adding aria-labels (cherry picked from commit 2a881791ba76091d2f85d0b068f926043ef33bc9) --- cypress/e2e/my-dspace.cy.ts | 6 +--- cypress/e2e/search-page.cy.ts | 6 +--- .../search-range-filter.component.html | 10 +++---- .../search-range-filter.component.ts | 29 +++++++++++++++++++ 4 files changed, 36 insertions(+), 15 deletions(-) diff --git a/cypress/e2e/my-dspace.cy.ts b/cypress/e2e/my-dspace.cy.ts index 79786c298a..af4aab41f3 100644 --- a/cypress/e2e/my-dspace.cy.ts +++ b/cypress/e2e/my-dspace.cy.ts @@ -22,15 +22,11 @@ describe('My DSpace page', () => { testA11y( { include: ['ds-my-dspace-page'], - exclude: [ - ['nouislider'] // Date filter slider is missing ARIA labels. Will be fixed by #1175 - ], }, { rules: { - // Search filters fail these two "moderate" impact rules + // Search filters fail this "moderate" impact rules 'heading-order': { enabled: false }, - 'landmark-unique': { enabled: false } } } as Options ); diff --git a/cypress/e2e/search-page.cy.ts b/cypress/e2e/search-page.cy.ts index 24519cc236..0d4f70ef03 100644 --- a/cypress/e2e/search-page.cy.ts +++ b/cypress/e2e/search-page.cy.ts @@ -30,15 +30,11 @@ describe('Search Page', () => { testA11y( { include: ['ds-search-page'], - exclude: [ - ['nouislider'] // Date filter slider is missing ARIA labels. Will be fixed by #1175 - ], }, { rules: { - // Search filters fail these two "moderate" impact rules + // Search filters fail this "moderate" impact rule 'heading-order': { enabled: false }, - 'landmark-unique': { enabled: false } } } as Options ); diff --git a/src/app/shared/search/search-filters/search-filter/search-range-filter/search-range-filter.component.html b/src/app/shared/search/search-filters/search-filter/search-range-filter/search-range-filter.component.html index 7834c4c557..251e5ac420 100644 --- a/src/app/shared/search/search-filters/search-filter/search-range-filter/search-range-filter.component.html +++ b/src/app/shared/search/search-filters/search-filter/search-range-filter/search-range-filter.component.html @@ -9,8 +9,8 @@ </span> <input type="text" [(ngModel)]="range[0]" [name]="filterConfig.paramName + '.min'" class="form-control" (blur)="onSubmit()" - aria-label="Mininum value" - [placeholder]="'search.filters.filter.' + filterConfig.name + '.min.placeholder' | translate" + [attr.aria-label]="minLabel" + [placeholder]="minLabel" /> </label> </div> @@ -21,8 +21,8 @@ </span> <input type="text" [(ngModel)]="range[1]" [name]="filterConfig.paramName + '.max'" class="form-control" (blur)="onSubmit()" - aria-label="Maximum value" - [placeholder]="'search.filters.filter.' + filterConfig.name + '.max.placeholder' | translate" + [attr.aria-label]="maxLabel" + [placeholder]="maxLabel" /> </label> </div> @@ -33,7 +33,7 @@ </form> <ng-container *ngIf="shouldShowSlider()"> - <nouislider [connect]="true" [min]="min" [max]="max" [step]="1" + <nouislider [connect]="true" [config]="config" [min]="min" [max]="max" [step]="1" [dsDebounce]="250" (onDebounce)="onSubmit()" (keydown)="startKeyboardControl()" (keyup)="stopKeyboardControl()" [(ngModel)]="range" ngDefaultControl> diff --git a/src/app/shared/search/search-filters/search-filter/search-range-filter/search-range-filter.component.ts b/src/app/shared/search/search-filters/search-filter/search-range-filter/search-range-filter.component.ts index 938f67412e..ed20e63c52 100644 --- a/src/app/shared/search/search-filters/search-filter/search-range-filter/search-range-filter.component.ts +++ b/src/app/shared/search/search-filters/search-filter/search-range-filter/search-range-filter.component.ts @@ -2,6 +2,7 @@ import { BehaviorSubject, combineLatest as observableCombineLatest, Subscription import { map, startWith } from 'rxjs/operators'; import { isPlatformBrowser } from '@angular/common'; import { Component, Inject, OnDestroy, OnInit, PLATFORM_ID } from '@angular/core'; +import { TranslateService } from '@ngx-translate/core'; import { RemoteDataBuildService } from '../../../../../core/cache/builders/remote-data-build.service'; import { FilterType } from '../../../models/filter-type.model'; import { renderFacetFor } from '../search-filter-type-decorator'; @@ -53,11 +54,27 @@ export class SearchRangeFilterComponent extends SearchFacetFilterComponent imple */ min = 1950; + /** + * i18n Label to use for minimum field + */ + minLabel: string; + /** * Fallback maximum for the range */ max = new Date().getUTCFullYear(); + /** + * i18n Label to use for maximum field + */ + maxLabel: string; + + /** + * Base configuration for nouislider + * https://refreshless.com/nouislider/slider-options/ + */ + config = {}; + /** * The current range of the filter */ @@ -78,6 +95,7 @@ export class SearchRangeFilterComponent extends SearchFacetFilterComponent imple protected filterService: SearchFilterService, protected router: Router, protected rdbs: RemoteDataBuildService, + private translateService: TranslateService, @Inject(SEARCH_CONFIG_SERVICE) public searchConfigService: SearchConfigurationService, @Inject(IN_PLACE_SEARCH) public inPlaceSearch: boolean, @Inject(FILTER_CONFIG) public filterConfig: SearchFilterConfig, @@ -96,6 +114,8 @@ export class SearchRangeFilterComponent extends SearchFacetFilterComponent imple super.ngOnInit(); this.min = yearFromString(this.filterConfig.minValue) || this.min; this.max = yearFromString(this.filterConfig.maxValue) || this.max; + this.minLabel = this.translateService.instant('search.filters.filter.' + this.filterConfig.name + '.min.placeholder'); + this.maxLabel = this.translateService.instant('search.filters.filter.' + this.filterConfig.name + '.max.placeholder'); const iniMin = this.route.getQueryParameterValue(this.filterConfig.paramName + RANGE_FILTER_MIN_SUFFIX).pipe(startWith(undefined)); const iniMax = this.route.getQueryParameterValue(this.filterConfig.paramName + RANGE_FILTER_MAX_SUFFIX).pipe(startWith(undefined)); this.sub = observableCombineLatest(iniMin, iniMax).pipe( @@ -105,6 +125,15 @@ export class SearchRangeFilterComponent extends SearchFacetFilterComponent imple return [minimum, maximum]; }) ).subscribe((minmax) => this.range = minmax); + + // Default/base config for nouislider + this.config = { + // Ensure draggable handles have labels + handleAttributes: [ + { 'aria-label': this.minLabel }, + { 'aria-label': this.maxLabel }, + ], + }; } /** -- GitLab From 6df76515ba0980709049ee288e2b2b737bf3614b Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Tue, 29 Aug 2023 15:01:51 -0500 Subject: [PATCH 062/183] Minor fixes to cypress tests (cherry picked from commit 70a7bbe3cbdd24abaf7f6f791ef60e88a3ae8922) --- cypress/e2e/community-list.cy.ts | 1 - cypress/e2e/pagenotfound.cy.ts | 5 +++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/cypress/e2e/community-list.cy.ts b/cypress/e2e/community-list.cy.ts index d91260eca1..c371f6ceae 100644 --- a/cypress/e2e/community-list.cy.ts +++ b/cypress/e2e/community-list.cy.ts @@ -1,4 +1,3 @@ -import { Options } from 'cypress-axe'; import { testA11y } from 'cypress/support/utils'; describe('Community List Page', () => { diff --git a/cypress/e2e/pagenotfound.cy.ts b/cypress/e2e/pagenotfound.cy.ts index 43e3c3af24..d02aa8541c 100644 --- a/cypress/e2e/pagenotfound.cy.ts +++ b/cypress/e2e/pagenotfound.cy.ts @@ -1,8 +1,13 @@ +import { testA11y } from 'cypress/support/utils'; + describe('PageNotFound', () => { it('should contain element ds-pagenotfound when navigating to page that doesnt exist', () => { // request an invalid page (UUIDs at root path aren't valid) cy.visit('/e9019a69-d4f1-4773-b6a3-bd362caa46f2', { failOnStatusCode: false }); cy.get('ds-pagenotfound').should('be.visible'); + + // Analyze <ds-pagenotfound> for accessibility issues + testA11y('ds-pagenotfound'); }); it('should not contain element ds-pagenotfound when navigating to existing page', () => { -- GitLab From 63c752b3f4ad2d4a04438dd66f97c8ffff9ca87b Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Tue, 29 Aug 2023 15:10:12 -0500 Subject: [PATCH 063/183] Fix heading order accessibility issue in search filters/facets (cherry picked from commit 276d80895e38225fcbde38cab01d79cd31a34e9b) --- cypress/e2e/my-dspace.cy.ts | 12 +----------- cypress/e2e/search-page.cy.ts | 12 +----------- .../search-filter/search-filter.component.html | 4 ++-- .../shared/sidebar/sidebar-dropdown.component.html | 2 +- src/themes/dspace/styles/_global-styles.scss | 2 +- 5 files changed, 6 insertions(+), 26 deletions(-) diff --git a/cypress/e2e/my-dspace.cy.ts b/cypress/e2e/my-dspace.cy.ts index af4aab41f3..13f4a1b547 100644 --- a/cypress/e2e/my-dspace.cy.ts +++ b/cypress/e2e/my-dspace.cy.ts @@ -19,17 +19,7 @@ describe('My DSpace page', () => { cy.get('.filter-toggle').click({ multiple: true }); // Analyze <ds-my-dspace-page> for accessibility issues - testA11y( - { - include: ['ds-my-dspace-page'], - }, - { - rules: { - // Search filters fail this "moderate" impact rules - 'heading-order': { enabled: false }, - } - } as Options - ); + testA11y('ds-my-dspace-page'); }); it('should have a working detailed view that passes accessibility tests', () => { diff --git a/cypress/e2e/search-page.cy.ts b/cypress/e2e/search-page.cy.ts index 0d4f70ef03..755f8eaac6 100644 --- a/cypress/e2e/search-page.cy.ts +++ b/cypress/e2e/search-page.cy.ts @@ -27,17 +27,7 @@ describe('Search Page', () => { cy.get('[data-test="filter-toggle"]').click({ multiple: true }); // Analyze <ds-search-page> for accessibility issues - testA11y( - { - include: ['ds-search-page'], - }, - { - rules: { - // Search filters fail this "moderate" impact rule - 'heading-order': { enabled: false }, - } - } as Options - ); + testA11y('ds-search-page'); }); it('should have a working grid view that passes accessibility tests', () => { diff --git a/src/app/shared/search/search-filters/search-filter/search-filter.component.html b/src/app/shared/search/search-filters/search-filter/search-filter.component.html index a6fb0021b7..421d1ede2c 100644 --- a/src/app/shared/search/search-filters/search-filter/search-filter.component.html +++ b/src/app/shared/search/search-filters/search-filter/search-filter.component.html @@ -6,9 +6,9 @@ [attr.aria-label]="(((collapsed$ | async) ? 'search.filters.filter.expand' : 'search.filters.filter.collapse') | translate) + ' ' + (('search.filters.filter.' + filter.name + '.head') | translate | lowercase)" [attr.data-test]="'filter-toggle' | dsBrowserOnly" > - <h5 class="d-inline-block mb-0"> + <h4 class="d-inline-block mb-0"> {{'search.filters.filter.' + filter.name + '.head'| translate}} - </h5> + </h4> <span class="filter-toggle flex-grow-1 fas p-auto" [ngClass]="(collapsed$ | async) ? 'fa-plus' : 'fa-minus'" [title]="((collapsed$ | async) ? 'search.filters.filter.expand' : 'search.filters.filter.collapse') | translate"> diff --git a/src/app/shared/sidebar/sidebar-dropdown.component.html b/src/app/shared/sidebar/sidebar-dropdown.component.html index 0c2a1c05d2..2eadac09f7 100644 --- a/src/app/shared/sidebar/sidebar-dropdown.component.html +++ b/src/app/shared/sidebar/sidebar-dropdown.component.html @@ -1,5 +1,5 @@ <div class="setting-option mb-3 p-3"> - <h5><label for="{{id}}">{{label | translate}}</label></h5> + <h4><label for="{{id}}">{{label | translate}}</label></h4> <select id="{{id}}" class="form-control" (change)="change.emit($event)"> <ng-content></ng-content> </select> diff --git a/src/themes/dspace/styles/_global-styles.scss b/src/themes/dspace/styles/_global-styles.scss index e41dae0e3f..5bd4c19bc0 100644 --- a/src/themes/dspace/styles/_global-styles.scss +++ b/src/themes/dspace/styles/_global-styles.scss @@ -17,7 +17,7 @@ background-color: var(--bs-primary); } - h5 { + h4 { font-size: 1.1rem } } -- GitLab From d1ebf07456681dec8b804099aca6423603d8573c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20Fern=C3=A1ndez=20Celorio?= <sfernandez@arvo.es> Date: Tue, 22 Aug 2023 11:59:54 +0200 Subject: [PATCH 064/183] Spanish translation updated to 7.6 (cherry picked from commit 4cc4192e93aea3eb7dddc8486fe1fad35b6103bc) --- src/assets/i18n/es.json5 | 766 ++++++++++++++++++++------------------- 1 file changed, 385 insertions(+), 381 deletions(-) diff --git a/src/assets/i18n/es.json5 b/src/assets/i18n/es.json5 index bb9334cf11..24ce7159e3 100644 --- a/src/assets/i18n/es.json5 +++ b/src/assets/i18n/es.json5 @@ -9,8 +9,6 @@ // "401.unauthorized": "unauthorized", "401.unauthorized": "no autorizado", - - // "403.help": "You don't have permission to access this page. You can use the button below to get back to the home page.", "403.help": "No tiene permisos para acceder a esta página. Puede utilizar el botón de abajo para volver a la página de inicio.", @@ -29,7 +27,6 @@ // "500.link.home-page": "Take me to the home page", "500.link.home-page": "Llévame a la página de inicio", - // "404.help": "We can't find the page you're looking for. The page may have been moved or deleted. You can use the button below to get back to the home page. ", "404.help": "No podemos encontrar la página que busca. La página puede haber sido movida o eliminada. Puede utilizar el botón de abajo para volver a la página de inicio. ", @@ -52,7 +49,7 @@ "error-page.description.404": "página no encontrada", // "error-page.orcid.generic-error": "An error occurred during login via ORCID. Make sure you have shared your ORCID account email address with DSpace. If the error persists, contact the administrator", - "error-page.orcid.generic-error": "Hubo un error en el login via ORCID. Asegúrese que ha compartido el correo electrónico de su cuenta ORCID con Dspace. Si continuase el error, contacte con el administrador", + "error-page.orcid.generic-error": "Hubo un error en el login vÃa ORCID. Asegúrese que ha compartido el correo electrónico de su cuenta ORCID con Dspace. Si continuase el error, contacte con el administrador", // "access-status.embargo.listelement.badge": "Embargo", "access-status.embargo.listelement.badge": "Embargo", @@ -194,7 +191,8 @@ // "admin.registries.bitstream-formats.table.name": "Name", "admin.registries.bitstream-formats.table.name": "Nombre", - // "admin.registries.bitstream-formats.table.id" : "ID", + + // "admin.registries.bitstream-formats.table.id": "ID", "admin.registries.bitstream-formats.table.id": "ID", // "admin.registries.bitstream-formats.table.return": "Back", @@ -215,8 +213,6 @@ // "admin.registries.bitstream-formats.title": "Bitstream Format Registry", "admin.registries.bitstream-formats.title": "Registro de formato Archivo", - - // "admin.registries.metadata.breadcrumbs": "Metadata registry", "admin.registries.metadata.breadcrumbs": "Registro de metadatos", @@ -256,8 +252,6 @@ // "admin.registries.metadata.title": "Metadata Registry", "admin.registries.metadata.title": "Registro de metadatos", - - // "admin.registries.schema.breadcrumbs": "Metadata schema", "admin.registries.schema.breadcrumbs": "Esquema de metadatos", @@ -275,7 +269,8 @@ // "admin.registries.schema.fields.table.field": "Field", "admin.registries.schema.fields.table.field": "Campo", - // "admin.registries.schema.fields.table.id" : "ID", + + // "admin.registries.schema.fields.table.id": "ID", "admin.registries.schema.fields.table.id": "ID", // "admin.registries.schema.fields.table.scopenote": "Scope Note", @@ -335,7 +330,29 @@ // "admin.registries.schema.title": "Metadata Schema Registry", "admin.registries.schema.title": "Registro de esquemas de metadatos", + // "admin.access-control.bulk-access.breadcrumbs": "Bulk Access Management", + "admin.access-control.bulk-access.breadcrumbs": "Gestión de Acceso Masivo", + + // "administrativeBulkAccess.search.results.head": "Search Results", + "administrativeBulkAccess.search.results.head": "Resultados de la búsqueda", + + // "admin.access-control.bulk-access": "Bulk Access Management", + "admin.access-control.bulk-access": "Gestión de Acceso Masivo", + + // "admin.access-control.bulk-access.title": "Bulk Access Management", + "admin.access-control.bulk-access.title": "Gestión de Acceso Masivo", + // "admin.access-control.bulk-access-browse.header": "Step 1: Select Objects", + "admin.access-control.bulk-access-browse.header": "Paso 1: Seleccione Objetos", + + // "admin.access-control.bulk-access-browse.search.header": "Search", + "admin.access-control.bulk-access-browse.search.header": "Buscar", + + // "admin.access-control.bulk-access-browse.selected.header": "Current selection({{number}})", + "admin.access-control.bulk-access-browse.selected.header": "Selección actual({{number}})", + + // "admin.access-control.bulk-access-settings.header": "Step 2: Operation to Perform", + "admin.access-control.bulk-access-settings.header": "Paso 2: Operación a realizar", // "admin.access-control.epeople.actions.delete": "Delete EPerson", "admin.access-control.epeople.actions.delete": "Eliminar usuario", @@ -347,7 +364,7 @@ "admin.access-control.epeople.actions.reset": "Restablecer la contraseña", // "admin.access-control.epeople.actions.stop-impersonating": "Stop impersonating EPerson", - "admin.access-control.epeople.actions.stop-impersonating": "Deja de hacerse pasar por usuario", + "admin.access-control.epeople.actions.stop-impersonating": "Dejar de hacerse pasar por usuario", // "admin.access-control.epeople.breadcrumbs": "EPeople", "admin.access-control.epeople.breadcrumbs": "Usuarios", @@ -478,8 +495,6 @@ // "admin.access-control.epeople.notification.deleted.success": "Successfully deleted EPerson: \"{{name}}\"", "admin.access-control.epeople.notification.deleted.success": "Usuario eliminado correctamente: \"{{ name }}\"", - - // "admin.access-control.groups.title": "Groups", "admin.access-control.groups.title": "Grupos", @@ -549,8 +564,6 @@ // "admin.access-control.groups.notification.deleted.failure.content": "Cause: \"{{cause}}\"", "admin.access-control.groups.notification.deleted.failure.content": "Causa: \"{{ cause }}\"", - - // "admin.access-control.groups.form.alert.permanent": "This group is permanent, so it can't be edited or deleted. You can still add and remove group members using this page.", "admin.access-control.groups.form.alert.permanent": "Este grupo es permanente, por lo que no se puede editar ni eliminar. Sin embargo, puedes añadir y eliminar miembros del grupo utilizando esta página.", @@ -791,9 +804,6 @@ // "administrativeView.search.results.head": "Administrative Search", "administrativeView.search.results.head": "Búsqueda administrativa", - - - // "admin.workflow.breadcrumbs": "Administer Workflow", "admin.workflow.breadcrumbs": "Administrar flujo de trabajo", @@ -818,8 +828,6 @@ // "admin.workflow.item.supervision": "Supervision", "admin.workflow.item.supervision": "Supervisión", - - // "admin.metadata-import.breadcrumbs": "Import Metadata", "admin.metadata-import.breadcrumbs": "Importar metadatos", @@ -844,6 +852,9 @@ // "admin.batch-import.page.help": "Select the Collection to import into. Then, drop or browse to a Simple Archive Format (SAF) zip file that includes the Items to import", "admin.batch-import.page.help": "Seleccione la Colección a la que importar. Luego, suelte o busque el archivo zip en formato Simple Archive Format (SAF) que incluye los Ãtems a importar", + // "admin.batch-import.page.toggle.help": "It is possible to perform import either with file upload or via URL, use above toggle to set the input source", + "admin.batch-import.page.toggle.help": "Es posible realizar una importación tanto mediante una subida de fichero como a través de una URL. Use el selector de arriba para especificar la fuente de entrada.", + // "admin.metadata-import.page.dropMsg": "Drop a metadata CSV to import", "admin.metadata-import.page.dropMsg": "Suelta un CSV de metadatos para importar", @@ -863,14 +874,26 @@ "admin.metadata-import.page.button.proceed": "Continuar", // "admin.metadata-import.page.button.select-collection": "Select Collection", - "admin.metadata-import.page.button.select-collection": "Selecciona la Colleción", + "admin.metadata-import.page.button.select-collection": "Selecciona la Colección", // "admin.metadata-import.page.error.addFile": "Select file first!", "admin.metadata-import.page.error.addFile": "¡Seleccione el archivo primero!", + // "admin.metadata-import.page.error.addFileUrl": "Insert file url first!", + "admin.metadata-import.page.error.addFileUrl": "¡Seleccione primero la URL del archivo!", + // "admin.batch-import.page.error.addFile": "Select Zip file first!", "admin.batch-import.page.error.addFile": "¡Seleccione el archivo ZIP primero!", + // "admin.metadata-import.page.toggle.upload": "Upload", + "admin.metadata-import.page.toggle.upload": "Subir", + + // "admin.metadata-import.page.toggle.url": "URL", + "admin.metadata-import.page.toggle.url": "URL", + + // "admin.metadata-import.page.urlMsg": "Insert the batch ZIP url to import", + "admin.metadata-import.page.urlMsg": "¡Seleccione primero la URL del archivo ZIP!", + // "admin.metadata-import.page.validateOnly": "Validate Only", "admin.metadata-import.page.validateOnly": "Solo Validar", @@ -895,14 +918,12 @@ // "advanced-workflow-action.rating.description-requiredDescription": "Please select a rating below and also add a review", "advanced-workflow-action.rating.description-requiredDescription": "Por favor, seleccione una evaluación y también agregue una revisión", - // "advanced-workflow-action.select-reviewer.description-single": "Please select a single reviewer below before submitting", "advanced-workflow-action.select-reviewer.description-single": "Por favor, seleccione un revisor antes de realizar el envÃo", // "advanced-workflow-action.select-reviewer.description-multiple": "Please select one or more reviewers below before submitting", "advanced-workflow-action.select-reviewer.description-multiple": "Por favor, seleccione uno o mas revisores antes de realizar el envÃo", - // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.head": "EPeople", "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.head": "Usuario", @@ -987,15 +1008,12 @@ // "auth.messages.token-refresh-failed": "Refreshing your session token failed. Please log in again.", "auth.messages.token-refresh-failed": "No se pudo actualizar el token de la sesión. Inicie sesión de nuevo.", - - - // "bitstream.download.page": "Now downloading {{bitstream}}..." , + // "bitstream.download.page": "Now downloading {{bitstream}}...", "bitstream.download.page": "Descargando {{ bitstream }}...", - // "bitstream.download.page.back": "Back" , + // "bitstream.download.page.back": "Back", "bitstream.download.page.back": "Atrás" , - // "bitstream.edit.authorizations.link": "Edit bitstream's Policies", "bitstream.edit.authorizations.link": "Editar las polÃticas del archivo", @@ -1047,6 +1065,9 @@ // "bitstream.edit.notifications.error.format.title": "An error occurred saving the bitstream's format", "bitstream.edit.notifications.error.format.title": "Se produjo un error al guardar el formato del archivo.", + // "bitstream.edit.notifications.error.primaryBitstream.title": "An error occurred saving the primary bitstream", + "bitstream.edit.notifications.error.primaryBitstream.title": "Se produjo un error al guardar el archivo primario", + // "bitstream.edit.form.iiifLabel.label": "IIIF Label", "bitstream.edit.form.iiifLabel.label": "Etiqueta IIIF", @@ -1071,7 +1092,6 @@ // "bitstream.edit.form.iiifHeight.hint": "The canvas height should usually match the image height.", "bitstream.edit.form.iiifHeight.hint": "La altura del marco normalmente deberÃa coincidir con la altura de la imagen", - // "bitstream.edit.notifications.saved.content": "Your changes to this bitstream were saved.", "bitstream.edit.notifications.saved.content": "Se guardaron sus cambios en este archivo.", @@ -1095,6 +1115,7 @@ // "bitstream-request-a-copy.intro.bitstream.one": "Requesting the following file: ", "bitstream-request-a-copy.intro.bitstream.one": "Solicitando el siguiente fichero: ", + // "bitstream-request-a-copy.intro.bitstream.all": "Requesting all files. ", "bitstream-request-a-copy.intro.bitstream.all": "Solicitando todos los ficheros. ", @@ -1137,8 +1158,6 @@ // "bitstream-request-a-copy.submit.error": "Something went wrong with submitting the item request.", "bitstream-request-a-copy.submit.error": "Hubo un fallo en el envÃo de la solicitud de Ãtem.", - - // "browse.back.all-results": "All browse results", "browse.back.all-results": "Todos los resultados de la búsqueda", @@ -1151,8 +1170,11 @@ // "browse.comcol.by.subject": "By Subject", "browse.comcol.by.subject": "Por materia", + // "browse.comcol.by.srsc": "By Subject Category", + "browse.comcol.by.srsc": "Por categorÃa", + // "browse.comcol.by.title": "By Title", - "browse.comcol.by.title": "Por titulo", + "browse.comcol.by.title": "Por tÃtulo", // "browse.comcol.head": "Browse", "browse.comcol.head": "Examinar", @@ -1181,6 +1203,9 @@ // "browse.metadata.subject.breadcrumbs": "Browse by Subject", "browse.metadata.subject.breadcrumbs": "Examinar por materia", + // "browse.metadata.srsc.breadcrumbs": "Browse by Subject Category", + "browse.metadata.srsc.breadcrumbs": "Examinar por categorÃa", + // "browse.metadata.title.breadcrumbs": "Browse by Title", "browse.metadata.title.breadcrumbs": "Examinar por tÃtulo", @@ -1262,21 +1287,24 @@ // "browse.startsWith.type_text": "Filter results by typing the first few letters", "browse.startsWith.type_text": "Seleccione resultados tecleando las primeras letras", + // "browse.startsWith.input": "Filter", + "browse.startsWith.input": "Filtrar", + + // "browse.taxonomy.button": "Browse", + "browse.taxonomy.button": "Examinar", + // "browse.title": "Browsing {{ collection }} by {{ field }}{{ startsWith }} {{ value }}", "browse.title": "Examinando {{ collection }} por {{ field }} {{ value }}", // "browse.title.page": "Browsing {{ collection }} by {{ field }} {{ value }}", "browse.title.page": "Examinando {{ collection }} por {{ field }} {{ value }}", - // "search.browse.item-back": "Back to Results", "search.browse.item-back": "Volver a los resultados", - // "chips.remove": "Remove chip", "chips.remove": "Quitar chip", - // "claimed-approved-search-result-list-element.title": "Approved", "claimed-approved-search-result-list-element.title": "Aprobado", @@ -1286,7 +1314,6 @@ // "claimed-declined-task-search-result-list-element.title": "Declined, sent back to Review Manager's workflow", "claimed-declined-task-search-result-list-element.title": "Declinado, enviar de vuelta al Administrador de Revisión del flujo de trabajo", - // "collection.create.head": "Create a Collection", "collection.create.head": "Crear una colección", @@ -1320,8 +1347,6 @@ // "collection.delete.text": "Are you sure you want to delete collection \"{{ dso }}\"", "collection.delete.text": "¿Estás seguro de que quieres eliminar la colección \"{{ dso }}\"?", - - // "collection.edit.delete": "Delete this collection", "collection.edit.delete": "Eliminar esta colección", @@ -1331,8 +1356,6 @@ // "collection.edit.breadcrumbs": "Edit Collection", "collection.edit.breadcrumbs": "Editar colección", - - // "collection.edit.tabs.mapper.head": "Item Mapper", "collection.edit.tabs.mapper.head": "Mapeo de Ãtems", @@ -1393,7 +1416,6 @@ // "collection.edit.item-mapper.tabs.map": "Map new items", "collection.edit.item-mapper.tabs.map": "Asignar nuevos Ãtems", - // "collection.edit.logo.delete.title": "Delete logo", "collection.edit.logo.delete.title": "Eliminar logo", @@ -1421,21 +1443,23 @@ // "collection.edit.logo.upload": "Drop a Collection Logo to upload", "collection.edit.logo.upload": "Suelta un logotipo de colección para cargarlo", - - // "collection.edit.notifications.success": "Successfully edited the Collection", "collection.edit.notifications.success": "Editó con éxito la colección", // "collection.edit.return": "Back", "collection.edit.return": "Atrás", + // "collection.edit.tabs.access-control.head": "Access Control", + "collection.edit.tabs.access-control.head": "Control de acceso", + // "collection.edit.tabs.access-control.title": "Collection Edit - Access Control", + "collection.edit.tabs.access-control.title": "Edición de colección: Control de acceso", // "collection.edit.tabs.curate.head": "Curate", "collection.edit.tabs.curate.head": "Curar", // "collection.edit.tabs.curate.title": "Collection Edit - Curate", - "collection.edit.tabs.curate.title": "Edición de colección - Curar", + "collection.edit.tabs.curate.title": "Edición de colección: Curar", // "collection.edit.tabs.authorizations.head": "Authorizations", "collection.edit.tabs.authorizations.head": "Autorizaciones", @@ -1518,8 +1542,6 @@ // "collection.edit.tabs.source.title": "Collection Edit - Content Source", "collection.edit.tabs.source.title": "Edición de colección: fuente de contenido", - - // "collection.edit.template.add-button": "Add", "collection.edit.template.add-button": "Agregar", @@ -1556,8 +1578,6 @@ // "collection.edit.template.title": "Edit Template Item", "collection.edit.template.title": "Editar plantilla de Ãtem", - - // "collection.form.abstract": "Short Description", "collection.form.abstract": "Breve descripción", @@ -1585,13 +1605,9 @@ // "collection.form.entityType": "Entity Type", "collection.form.entityType": "Tipo de entidad", - - // "collection.listelement.badge": "Collection", "collection.listelement.badge": "Colección", - - // "collection.page.browse.recent.head": "Recent Submissions", "collection.page.browse.recent.head": "EnvÃos recientes", @@ -1610,8 +1626,6 @@ // "collection.page.news": "News", "collection.page.news": "Noticias", - - // "collection.select.confirm": "Confirm selected", "collection.select.confirm": "Confirmar seleccionado", @@ -1621,63 +1635,81 @@ // "collection.select.table.title": "Title", "collection.select.table.title": "TÃtulo", - // "collection.source.controls.head": "Harvest Controls", "collection.source.controls.head": "Controles de recolección", + // "collection.source.controls.test.submit.error": "Something went wrong with initiating the testing of the settings", "collection.source.controls.test.submit.error": "Hubo fallos al realizar las pruebas de comprobación de los ajustes", + // "collection.source.controls.test.failed": "The script to test the settings has failed", "collection.source.controls.test.failed": "La prueba de los ajustes ha fallado", + // "collection.source.controls.test.completed": "The script to test the settings has successfully finished", "collection.source.controls.test.completed": "El script de prueba de los ajustes ha terminado correctamente", + // "collection.source.controls.test.submit": "Test configuration", "collection.source.controls.test.submit": "Probar la configuración", + // "collection.source.controls.test.running": "Testing configuration...", "collection.source.controls.test.running": "Probando la configuración...", + // "collection.source.controls.import.submit.success": "The import has been successfully initiated", "collection.source.controls.import.submit.success": "La importación ha comenzado correctamente", + // "collection.source.controls.import.submit.error": "Something went wrong with initiating the import", "collection.source.controls.import.submit.error": "Hubo algún fallo al iniciar la importación", + // "collection.source.controls.import.submit": "Import now", "collection.source.controls.import.submit": "Importar ahora", + // "collection.source.controls.import.running": "Importing...", "collection.source.controls.import.running": "Importando...", + // "collection.source.controls.import.failed": "An error occurred during the import", "collection.source.controls.import.failed": "Ha ocurrido un error durante la importación", + // "collection.source.controls.import.completed": "The import completed", "collection.source.controls.import.completed": "La importación finalizó", + // "collection.source.controls.reset.submit.success": "The reset and reimport has been successfully initiated", "collection.source.controls.reset.submit.success": "La restauración y reimportación ha comenzado correctamente", + // "collection.source.controls.reset.submit.error": "Something went wrong with initiating the reset and reimport", "collection.source.controls.reset.submit.error": "Ha ocurrido un error al iniciar la restauración y reimportación", + // "collection.source.controls.reset.failed": "An error occurred during the reset and reimport", "collection.source.controls.reset.failed": "Ha ocurrido un error en la restauración y reimportación", + // "collection.source.controls.reset.completed": "The reset and reimport completed", "collection.source.controls.reset.completed": "Restauración y reimportación finalizadas", + // "collection.source.controls.reset.submit": "Reset and reimport", "collection.source.controls.reset.submit": "Restauración y reimportación", + // "collection.source.controls.reset.running": "Resetting and reimporting...", "collection.source.controls.reset.running": "Restaurando y reimportando...", + // "collection.source.controls.harvest.status": "Harvest status:", "collection.source.controls.harvest.status": "Estado de la Recolección:", + // "collection.source.controls.harvest.start": "Harvest start time:", "collection.source.controls.harvest.start": "Comienzo de la recolección:", + // "collection.source.controls.harvest.last": "Last time harvested:", "collection.source.controls.harvest.last": "Fecha de la última recolección:", + // "collection.source.controls.harvest.message": "Harvest info:", "collection.source.controls.harvest.message": "Información de recolección:", + // "collection.source.controls.harvest.no-information": "N/A", "collection.source.controls.harvest.no-information": "N/A", - // "collection.source.update.notifications.error.content": "The provided settings have been tested and didn't work.", "collection.source.update.notifications.error.content": "La configuración proporcionada se ha probado y no funcionó.", // "collection.source.update.notifications.error.title": "Server Error", "collection.source.update.notifications.error.title": "Error del Servidor", - - // "communityList.breadcrumbs": "Community List", "communityList.breadcrumbs": "Lista de comunidades", @@ -1690,8 +1722,6 @@ // "communityList.showMore": "Show More", "communityList.showMore": "Mostrar más", - - // "community.create.head": "Create a Community", "community.create.head": "Crear una comunidad", @@ -1734,7 +1764,6 @@ // "community.edit.breadcrumbs": "Edit Community", "community.edit.breadcrumbs": "Editar comunidad", - // "community.edit.logo.delete.title": "Delete logo", "community.edit.logo.delete.title": "Eliminar logo", @@ -1762,8 +1791,6 @@ // "community.edit.logo.upload": "Drop a Community Logo to upload", "community.edit.logo.upload": "Suelta un logotipo de la comunidad para cargar", - - // "community.edit.notifications.success": "Successfully edited the Community", "community.edit.notifications.success": "Editó con éxito la comunidad", @@ -1776,14 +1803,18 @@ // "community.edit.return": "Back", "community.edit.return": "Atrás", - - // "community.edit.tabs.curate.head": "Curate", "community.edit.tabs.curate.head": "Curar", // "community.edit.tabs.curate.title": "Community Edit - Curate", "community.edit.tabs.curate.title": "Edición de la comunidad - Curar", + // "community.edit.tabs.access-control.head": "Access Control", + "community.edit.tabs.access-control.head": "Control de acceso", + + // "community.edit.tabs.access-control.title": "Community Edit - Access Control", + "community.edit.tabs.access-control.title": "Edición de la comunidad: Control de acceso", + // "community.edit.tabs.metadata.head": "Edit Metadata", "community.edit.tabs.metadata.head": "Editar metadatos", @@ -1802,13 +1833,9 @@ // "community.edit.tabs.authorizations.title": "Community Edit - Authorizations", "community.edit.tabs.authorizations.title": "Edición de la comunidad: autorizaciones", - - // "community.listelement.badge": "Community", "community.listelement.badge": "Comunidad", - - // "comcol-role.edit.no-group": "None", "comcol-role.edit.no-group": "Ninguno", @@ -1827,28 +1854,24 @@ // "comcol-role.edit.delete.error.title": "Failed to delete the '{{ role }}' role's group", "comcol-role.edit.delete.error.title": "Error al borrar el grupo del rol '{{ role }}'", - // "comcol-role.edit.community-admin.name": "Administrators", "comcol-role.edit.community-admin.name": "Administradores", // "comcol-role.edit.collection-admin.name": "Administrators", "comcol-role.edit.collection-admin.name": "Administradores", - // "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": "Los administradores de la comunidad pueden crear subcomunidades o colecciones y gestionar o asignar la gestión para esas subcomunidades o colecciones. Además, deciden quién puede enviar Ãtems a las subcolecciones, editar los metadatos del Ãtem (después del envÃo) y agregar (mapear) Ãtems existentes de otras colecciones (sujeto a autorización).", // "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": "Los administradores de la colección deciden quién puede enviar Ãtems a la colección, editar los metadatos del Ãtem (después del envÃo) y agregar (mapear) Ãtems existentes de otras colecciones a esta colección (sujeto a autorización para esa colección).", - // "comcol-role.edit.submitters.name": "Submitters", "comcol-role.edit.submitters.name": "Remitentes", // "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": "Los Usuarios y Grupos que tienen permiso para enviar nuevos Ãtems a esta colección.", - // "comcol-role.edit.item_read.name": "Default item read access", "comcol-role.edit.item_read.name": "Acceso de lectura predeterminado del Ãtem", @@ -1858,7 +1881,6 @@ // "comcol-role.edit.item_read.anonymous-group": "Default read for incoming items is currently set to Anonymous.", "comcol-role.edit.item_read.anonymous-group": "La lectura predeterminada para los Ãtems entrantes está configurada actualmente como Anónimo.", - // "comcol-role.edit.bitstream_read.name": "Default bitstream read access", "comcol-role.edit.bitstream_read.name": "Acceso de lectura predeterminado de archivos", @@ -1868,28 +1890,24 @@ // "comcol-role.edit.bitstream_read.anonymous-group": "Default read for incoming bitstreams is currently set to Anonymous.", "comcol-role.edit.bitstream_read.anonymous-group": "La lectura predeterminada para los archivos entrantes se establece actualmente en Anónimo.", - // "comcol-role.edit.editor.name": "Editors", "comcol-role.edit.editor.name": "Editores", // "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": "Los editores pueden editar los metadatos de los envÃos entrantes y luego aceptarlos o rechazarlos.", - // "comcol-role.edit.finaleditor.name": "Final editors", "comcol-role.edit.finaleditor.name": "Editores finales", // "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": "Los editores finales pueden editar los metadatos de los envÃos entrantes, pero no podrán rechazarlos.", - // "comcol-role.edit.reviewer.name": "Reviewers", "comcol-role.edit.reviewer.name": "Revisores", // "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": "Los revisores pueden aceptar o rechazar envÃos entrantes. Sin embargo, no pueden editar los metadatos del envÃo.", - // "comcol-role.edit.scorereviewers.name": "Score Reviewers", "comcol-role.edit.scorereviewers.name": "Revisores de puntuación", @@ -1929,14 +1947,12 @@ // "community.all-lists.head": "Subcommunities and Collections", "community.all-lists.head": "Subcomunidades y colecciones", - // "community.sub-collection-list.head": "Collections of this Community", + // "community.sub-collection-list.head": "Collections in this Community", "community.sub-collection-list.head": "Colecciones de esta comunidad", - // "community.sub-community-list.head": "Communities of this Community", + // "community.sub-community-list.head": "Communities in this Community", "community.sub-community-list.head": "Comunidades de esta comunidad", - - // "cookies.consent.accept-all": "Accept all", "cookies.consent.accept-all": "Aceptar todo", @@ -2015,38 +2031,30 @@ // "cookies.consent.app.description.authentication": "Required for signing you in", "cookies.consent.app.description.authentication": "Requerido para iniciar sesión", - // "cookies.consent.app.title.preferences": "Preferences", "cookies.consent.app.title.preferences": "Preferencias", // "cookies.consent.app.description.preferences": "Required for saving your preferences", "cookies.consent.app.description.preferences": "Requerido para guardar sus preferencias", - - // "cookies.consent.app.title.acknowledgement": "Acknowledgement", "cookies.consent.app.title.acknowledgement": "Reconocimiento", // "cookies.consent.app.description.acknowledgement": "Required for saving your acknowledgements and consents", "cookies.consent.app.description.acknowledgement": "Requerido para guardar sus reconocimientos y consentimientos", - - // "cookies.consent.app.title.google-analytics": "Google Analytics", "cookies.consent.app.title.google-analytics": "Google Analytics", // "cookies.consent.app.description.google-analytics": "Allows us to track statistical data", "cookies.consent.app.description.google-analytics": "Nos permite rastrear datos estadÃsticos", - - // "cookies.consent.app.title.google-recaptcha": "Google reCaptcha", "cookies.consent.app.title.google-recaptcha": "Google reCaptcha", // "cookies.consent.app.description.google-recaptcha": "We use google reCAPTCHA service during registration and password recovery", "cookies.consent.app.description.google-recaptcha": "Utilizamos el servicio google reCAPTCHA durante el registro y la recuperación de contraseña", - // "cookies.consent.purpose.functional": "Functional", "cookies.consent.purpose.functional": "Funcional", @@ -2059,10 +2067,10 @@ // "cookies.consent.purpose.sharing": "Sharing", "cookies.consent.purpose.sharing": "Compartición", - // "curation-task.task.citationpage.label": "Generate Citation Page", + // "curation-task.task.citationpage.label": "Generate Citation Page", "curation-task.task.citationpage.label": "Generar página de cita", - // "curation-task.task.checklinks.label": "Check Links in Metadata", + // "curation-task.task.checklinks.label": "Check Links in Metadata", "curation-task.task.checklinks.label": "Comprobar enlaces en metadatos", // "curation-task.task.noop.label": "NOOP", @@ -2083,8 +2091,6 @@ // "curation-task.task.registerdoi.label": "Register DOI", "curation-task.task.registerdoi.label": "Registro DOI", - - // "curation.form.task-select.label": "Task:", "curation.form.task-select.label": "Tarea:", @@ -2112,10 +2118,8 @@ // "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": "Sugerencia: Introduzca [su-prefijo-handle]/0 para ejecutar una tarea en toda su instalación (no todas las tareas permiten esta opción)", - - // "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": "Estimado {{ recipientName }},\nEn respuesta a su solicitud, lamento informarle que no es posible enviarle una copia de los archivos que ha solicitado, en relación con el documento: \"{{ itemUrl }}\" ({{ itemName }}), del cual soy autor.\n\nSaludos cordiales,\n{{ authorName }} <{{ authorEmail }}>", + "deny-request-copy.email.message": "Estimado {{ recipientName }},\nEn respuesta a su solicitud, lamento informarle de que no es posible enviarle una copia de los archivos que ha solicitado, en relación con el documento: \"{{ itemUrl }}\" ({{ itemName }}), del cual soy autor.\n\nSaludos cordiales,\n{{ authorName }} <{{ authorEmail }}>", // "deny-request-copy.email.subject": "Request copy of document", "deny-request-copy.email.subject": "Solicitar una copia del documento", @@ -2127,17 +2131,16 @@ "deny-request-copy.header": "Denegar copia del documento", // "deny-request-copy.intro": "This message will be sent to the applicant of the request", - "deny-request-copy.intro": "Éste es el texto que será enviado al solicitante.", + "deny-request-copy.intro": "Éste es el texto que será enviado al solicitante", // "deny-request-copy.success": "Successfully denied item request", "deny-request-copy.success": "Solicitud de copia de documento denegada", - - // "dso.name.untitled": "Untitled", "dso.name.untitled": "Sin tÃtulo", - + // "dso.name.unnamed": "Unnamed", + "dso.name.unnamed": "Sin nombre", // "dso-selector.create.collection.head": "New collection", "dso-selector.create.collection.head": "Nueva colección", @@ -2259,7 +2262,7 @@ // "supervision-group-selector.notification.create.failure.title": "Error", "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", + // "supervision-group-selector.notification.create.already-existing": "A supervision order already exists on this item for selected group", "supervision-group-selector.notification.create.already-existing": "Ya existe una orden de supervisión para este Ãtem en el grupo selecionado", // "confirmation-modal.export-metadata.header": "Export metadata for {{ dsoName }}", @@ -2374,7 +2377,7 @@ "error.top-level-communities": "Error al recuperar las comunidades de primer nivel", // "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": "Debe conceda esta licencia de depósito para completar el envÃo. Si no puede conceder esta licencia en este momento, puede guardar su trabajo y regresar más tarde o bien eliminar el envÃo.", + "error.validation.license.notgranted": "Debe conceder esta licencia de depósito para completar el envÃo. Si no puede conceder esta licencia en este momento, puede guardar su trabajo y regresar más tarde o bien eliminar el envÃo.", // "error.validation.pattern": "This input is restricted by the current pattern: {{ pattern }}.", "error.validation.pattern": "Esta entrada está restringida por este patrón: {{ pattern }}.", @@ -2394,16 +2397,33 @@ // "error.validation.groupExists": "This group already exists", "error.validation.groupExists": "Este grupo ya existe", + // "error.validation.metadata.name.invalid-pattern": "This field cannot contain dots, commas or spaces. Please use the Element & Qualifier fields instead", + "error.validation.metadata.name.invalid-pattern": "Este campo no puede contener puntos, comas o espacios. Use preferiblemente los campos Elemento y Cualificador", + + // "error.validation.metadata.name.max-length": "This field may not contain more than 32 characters", + "error.validation.metadata.name.max-length": "Este campo no puede contener mas de 32 caracteres", + + // "error.validation.metadata.namespace.max-length": "This field may not contain more than 256 characters", + "error.validation.metadata.namespace.max-length": "Este campo no puede contener mas de 256 caracteres", + + // "error.validation.metadata.element.invalid-pattern": "This field cannot contain dots, commas or spaces. Please use the Qualifier field instead", + "error.validation.metadata.element.invalid-pattern": "Este campo no puede contener puntos, comas o espacios. Use preferiblemente el campo Cualificador", + + // "error.validation.metadata.element.max-length": "This field may not contain more than 64 characters", + "error.validation.metadata.element.max-length": "Este campo no puede contener mas de 64 caracteres", + + // "error.validation.metadata.qualifier.invalid-pattern": "This field cannot contain dots, commas or spaces", + "error.validation.metadata.qualifier.invalid-pattern": "This field cannot contain dots, commas or spaces", + + // "error.validation.metadata.qualifier.max-length": "This field may not contain more than 64 characters", + "error.validation.metadata.qualifier.max-length": "Este campo no puede contener mas de 64 caracteres", // "feed.description": "Syndication feed", "feed.description": "Hilo de sindicación", - // "file-section.error.header": "Error obtaining files for this item", "file-section.error.header": "Error al obtener archivos para este Ãtem", - - // "footer.copyright": "copyright © 2002-{{ year }}", "footer.copyright": "copyright © 2002-{{ year }}", @@ -2419,14 +2439,12 @@ // "footer.link.privacy-policy": "Privacy policy", "footer.link.privacy-policy": "PolÃtica de privacidad", - // "footer.link.end-user-agreement":"End User Agreement", + // "footer.link.end-user-agreement": "End User Agreement", "footer.link.end-user-agreement": "Acuerdo de usuario final", - // "footer.link.feedback":"Send Feedback", + // "footer.link.feedback": "Send Feedback", "footer.link.feedback": "Enviar Sugerencias", - - // "forgot-email.form.header": "Forgot Password", "forgot-email.form.header": "Olvido de contraseña", @@ -2460,8 +2478,6 @@ // "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-email.form.error.content": "Ha ocurrido una error intentando restablecer la contraseña para la cuenta asociada al correo electrónico: {{ email }}", - - // "forgot-password.title": "Forgot Password", "forgot-password.title": "Olvido de contraseña", @@ -2504,7 +2520,6 @@ // "forgot-password.form.submit": "Submit password", "forgot-password.form.submit": "Enviar contraseña", - // "form.add": "Add more", "form.add": "Añadir más", @@ -2565,6 +2580,24 @@ // "form.no-value": "No value entered", "form.no-value": "No se introdujo ningún valor", + // "form.other-information.email": "Email", + "form.other-information.email": "Correo electrónico", + + // "form.other-information.first-name": "First Name", + "form.other-information.first-name": "Nombre", + + // "form.other-information.insolr": "In Solr Index", + "form.other-information.insolr": "en el Ãndice Solr", + + // "form.other-information.institution": "Institution", + "form.other-information.institution": "Institución", + + // "form.other-information.last-name": "Last Name", + "form.other-information.last-name": "Apellido", + + // "form.other-information.orcid": "ORCID", + "form.other-information.orcid": "ORCID", + // "form.remove": "Remove", "form.remove": "Eliminar", @@ -2589,16 +2622,14 @@ // "form.repeatable.sort.tip": "Drop the item in the new position", "form.repeatable.sort.tip": "Suelte el Ãtem en la nueva posición", - - // "grant-deny-request-copy.deny": "Don't send copy", "grant-deny-request-copy.deny": "No envÃe copia", // "grant-deny-request-copy.email.back": "Back", "grant-deny-request-copy.email.back": "Atrás", - // "grant-deny-request-copy.email.message": "Message", - "grant-deny-request-copy.email.message": "Mensaje", + // "grant-deny-request-copy.email.message": "Optional additional message", + "grant-deny-request-copy.email.message": "Mensaje adicional (opcional)", // "grant-deny-request-copy.email.message.empty": "Please enter a message", "grant-deny-request-copy.email.message.empty": "Por favor, introduzca un mensaje", @@ -2636,11 +2667,6 @@ // "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": "Esta solicitud ya fue procesada. Puede usar los botones inferiores para regresas a la página de inicio", - - - // "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": "Estimado {{ recipientName }},\nRespondiendo a su solicitud, le envÃo anexada una copia del fichero correspondiente al documento: \"{{ itemUrl }}\" ({{ itemName }}), del que soy autor.\n\nUn cordial saludo,\n{{ authorName }} <{{ authorEmail }}>", - // "grant-request-copy.email.subject": "Request copy of document", "grant-request-copy.email.subject": "Solicitar copia de documento", @@ -2650,24 +2676,23 @@ // "grant-request-copy.header": "Grant document copy request", "grant-request-copy.header": "Conceder solicitud de copia de documento", - // "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": "Este mensaje se enviará al solicitante de la copia. Se le anexará una copia del documento.", + // "grant-request-copy.intro": "A message will be sent to the applicant of the request. The requested document(s) will be attached.", + "grant-request-copy.intro": "Este mensaje se enviará al solicitante de la copia. Se le anexará una copia del documento.", // "grant-request-copy.success": "Successfully granted item request", "grant-request-copy.success": "Solicitud de Ãtem concedida exitosamente", - // "health.breadcrumbs": "Health", "health.breadcrumbs": "Chequeos", - // "health-page.heading" : "Health", - "health-page.heading": "Chequeos", + // "health-page.heading": "Health", + "health-page.heading": "Chequeos", - // "health-page.info-tab" : "Info", - "health-page.info-tab": "Información", + // "health-page.info-tab": "Info", + "health-page.info-tab": "Información", - // "health-page.status-tab" : "Status", - "health-page.status-tab": "Estado", + // "health-page.status-tab": "Status", + "health-page.status-tab": "Estado", // "health-page.error.msg": "The health check service is temporarily unavailable", "health-page.error.msg": "El servicio de comprobación no se encuentra temporalmente disponible", @@ -2717,7 +2742,6 @@ // "health-page.section.no-issues": "No issues detected", "health-page.section.no-issues": "No se detectaron problemas", - // "home.description": "", "home.description": "", @@ -2736,8 +2760,6 @@ // "home.top-level-communities.help": "Select a community to browse its collections.", "home.top-level-communities.help": "Seleccione una comunidad para explorar sus colecciones.", - - // "info.end-user-agreement.accept": "I have read and I agree to the End User Agreement", "info.end-user-agreement.accept": "He leÃdo y acepto el Acuerdo de usuario final.", @@ -2762,6 +2784,9 @@ // "info.end-user-agreement.title": "End User Agreement", "info.end-user-agreement.title": "Acuerdo de usuario final", + // "info.end-user-agreement.hosting-country": "the United States", + "info.end-user-agreement.hosting-country": "los Estados Unidos de América", + // "info.privacy.breadcrumbs": "Privacy Statement", "info.privacy.breadcrumbs": "Declaracion de privacidad", @@ -2795,47 +2820,39 @@ // "info.feedback.email-label": "Your Email", "info.feedback.email-label": "Su correo electrónico", - // "info.feedback.create.success" : "Feedback Sent Successfully!", + // "info.feedback.create.success": "Feedback Sent Successfully!", "info.feedback.create.success": "EnvÃo exitoso de sugerencia", - // "info.feedback.error.email.required" : "A valid email address is required", + // "info.feedback.error.email.required": "A valid email address is required", "info.feedback.error.email.required": "se requiere una dirección válida de correo electrónico", - // "info.feedback.error.message.required" : "A comment is required", + // "info.feedback.error.message.required": "A comment is required", "info.feedback.error.message.required": "Se requiere un comentario", - // "info.feedback.page-label" : "Page", + // "info.feedback.page-label": "Page", "info.feedback.page-label": "Página", - // "info.feedback.page_help" : "Tha page related to your feedback", + // "info.feedback.page_help": "Tha page related to your feedback", "info.feedback.page_help": "La página relacionada con su sugerencia", - - // "item.alerts.private": "This item is non-discoverable", "item.alerts.private": "Este Ãtem es privado", // "item.alerts.withdrawn": "This item has been withdrawn", "item.alerts.withdrawn": "Este Ãtem ha sido retirado", - - // "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 este editor puede ver y modificar las polÃticas de un Ãtem, además de modificar las polÃticas de los componentes individuales del Ãtem: paquetes y archivos. Brevemente, un Ãtem es un contenedor de paquetes y los paquetes son contenedores de archivos. Los contenedores suelen tener polÃticas AGREGAR/ELIMINAR/LEER/ESCRIBIR, mientras que los archivos solo tienen polÃticas LEER/ESCRIBIR.", // "item.edit.authorizations.title": "Edit item's Policies", "item.edit.authorizations.title": "Editar las polÃticas del Ãtem", - - // "item.badge.private": "Non-discoverable", "item.badge.private": "Privado", // "item.badge.withdrawn": "Withdrawn", "item.badge.withdrawn": "Retirado", - - // "item.bitstreams.upload.bundle": "Bundle", "item.bitstreams.upload.bundle": "Bloque", @@ -2869,8 +2886,6 @@ // "item.bitstreams.upload.title": "Upload bitstream", "item.bitstreams.upload.title": "Subir archivo", - - // "item.edit.bitstreams.bundle.edit.buttons.upload": "Upload", "item.edit.bitstreams.bundle.edit.buttons.upload": "Subir", @@ -2961,8 +2976,6 @@ // "item.edit.bitstreams.upload-button": "Upload", "item.edit.bitstreams.upload-button": "Subir", - - // "item.edit.delete.cancel": "Cancel", "item.edit.delete.cancel": "Cancelar", @@ -2990,7 +3003,6 @@ // "item.edit.tabs.disabled.tooltip": "You're not authorized to access this tab", "item.edit.tabs.disabled.tooltip": "No tienes autorización para acceder a esta pestaña", - // "item.edit.tabs.mapper.head": "Collection Mapper", "item.edit.tabs.mapper.head": "Mapeador de colecciones", @@ -3114,8 +3126,6 @@ // "item.edit.item-mapper.tabs.map": "Map new collections", "item.edit.item-mapper.tabs.map": "Mapear nuevas colecciones", - - // "item.edit.metadata.add-button": "Add", "item.edit.metadata.add-button": "Agregar", @@ -3200,8 +3210,6 @@ // "item.edit.metadata.save-button": "Save", "item.edit.metadata.save-button": "Guardar", - - // "item.edit.modify.overview.field": "Field", "item.edit.modify.overview.field": "Campo", @@ -3211,8 +3219,6 @@ // "item.edit.modify.overview.value": "Value", "item.edit.modify.overview.value": "Valor", - - // "item.edit.move.cancel": "Back", "item.edit.move.cancel": "Atrás", @@ -3252,8 +3258,6 @@ // "item.edit.move.title": "Move item", "item.edit.move.title": "Mover Ãtem", - - // "item.edit.private.cancel": "Cancel", "item.edit.private.cancel": "Cancelar", @@ -3272,8 +3276,6 @@ // "item.edit.private.success": "The item is now non-discoverable", "item.edit.private.success": "El Ãtem ahora es privado", - - // "item.edit.public.cancel": "Cancel", "item.edit.public.cancel": "Cancelar", @@ -3292,8 +3294,6 @@ // "item.edit.public.success": "The item is now discoverable", "item.edit.public.success": "El Ãtem ahora es público", - - // "item.edit.reinstate.cancel": "Cancel", "item.edit.reinstate.cancel": "Cancelar", @@ -3312,8 +3312,6 @@ // "item.edit.reinstate.success": "The item was reinstated successfully", "item.edit.reinstate.success": "El Ãtem se reintegró correctamente", - - // "item.edit.relationships.discard-button": "Discard", "item.edit.relationships.discard-button": "Descartar", @@ -3359,11 +3357,9 @@ // "item.edit.relationships.no-entity-type": "Add 'dspace.entity.type' metadata to enable relationships for this item", "item.edit.relationships.no-entity-type": "Agregue metadatos 'dspace.entity.type' para habilitar las relaciones para este Ãtem", - // "item.edit.return": "Back", "item.edit.return": "Atrás", - // "item.edit.tabs.bitstreams.head": "Bitstreams", "item.edit.tabs.bitstreams.head": "Archivos", @@ -3376,6 +3372,15 @@ // "item.edit.tabs.curate.title": "Item Edit - Curate", "item.edit.tabs.curate.title": "Edición de Ãtem: Curar", + // "item.edit.curate.title": "Curate Item: {{item}}", + "item.edit.curate.title": "Curar Ãtem: {{item}}", + + // "item.edit.tabs.access-control.head": "Access Control", + "item.edit.tabs.access-control.head": "Control de acceso", + + // "item.edit.tabs.access-control.title": "Item Edit - Access Control", + "item.edit.tabs.access-control.title": "Edición de Ãtem: Control de acceso", + // "item.edit.tabs.metadata.head": "Metadata", "item.edit.tabs.metadata.head": "Metadatos", @@ -3407,7 +3412,7 @@ "item.edit.tabs.status.buttons.mappedCollections.label": "Administrar colecciones mapeadas", // "item.edit.tabs.status.buttons.move.button": "Move this Item to a different Collection", - "item.edit.tabs.status.buttons.move.button": "Mover éste Ãtem a una colección diferente", + "item.edit.tabs.status.buttons.move.button": "Mover este Ãtem a una colección diferente", // "item.edit.tabs.status.buttons.move.label": "Move item to another collection", "item.edit.tabs.status.buttons.move.label": "Mover Ãtem a otra colección", @@ -3434,7 +3439,7 @@ "item.edit.tabs.status.buttons.unauthorized": "No estás autorizado para realizar esta acción.", // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item", - "item.edit.tabs.status.buttons.withdraw.button": "Retirar éste Ãtem", + "item.edit.tabs.status.buttons.withdraw.button": "Retirar este Ãtem", // "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository", "item.edit.tabs.status.buttons.withdraw.label": "Retirar Ãtem del repositorio", @@ -3475,8 +3480,6 @@ // "item.edit.tabs.view.title": "Item Edit - View", "item.edit.tabs.view.title": "Edición de Ãtem - Ver", - - // "item.edit.withdraw.cancel": "Cancel", "item.edit.withdraw.cancel": "Cancelar", @@ -3498,7 +3501,6 @@ // "item.orcid.return": "Back", "item.orcid.return": "Atrás", - // "item.listelement.badge": "Item", "item.listelement.badge": "Ãtem", @@ -3556,8 +3558,6 @@ // "workflow-item.search.result.list.element.supervised.remove-tooltip": "Remove supervision group", "workflow-item.search.result.list.element.supervised.remove-tooltip": "Borrar grupo de supervisión", - - // "item.page.abstract": "Abstract", "item.page.abstract": "Resumen", @@ -3648,10 +3648,10 @@ // "item.page.bitstreams.collapse": "Collapse", "item.page.bitstreams.collapse": "Contraer", - // "item.page.filesection.original.bundle" : "Original bundle", + // "item.page.filesection.original.bundle": "Original bundle", "item.page.filesection.original.bundle": "Bloque original", - // "item.page.filesection.license.bundle" : "License bundle", + // "item.page.filesection.license.bundle": "License bundle", "item.page.filesection.license.bundle": "Bloque de licencias", // "item.page.return": "Back", @@ -3696,27 +3696,30 @@ // "item.preview.dc.type": "Type:", "item.preview.dc.type": "Tipo:", - // "item.preview.oaire.citation.issue" : "Issue", + // "item.preview.oaire.citation.issue": "Issue", "item.preview.oaire.citation.issue": "Número", - // "item.preview.oaire.citation.volume" : "Volume", + // "item.preview.oaire.citation.volume": "Volume", "item.preview.oaire.citation.volume": "Volumen", - // "item.preview.dc.relation.issn" : "ISSN", + // "item.preview.dc.relation.issn": "ISSN", "item.preview.dc.relation.issn": "ISSN", - // "item.preview.dc.identifier.isbn" : "ISBN", + // "item.preview.dc.identifier.isbn": "ISBN", "item.preview.dc.identifier.isbn": "ISBN", // "item.preview.dc.identifier": "Identifier:", "item.preview.dc.identifier": "Identificador:", - // "item.preview.dc.relation.ispartof" : "Journal or Serie", + // "item.preview.dc.relation.ispartof": "Journal or Series", "item.preview.dc.relation.ispartof": "Revista o Serie", - // "item.preview.dc.identifier.doi" : "DOI", + // "item.preview.dc.identifier.doi": "DOI", "item.preview.dc.identifier.doi": "DOI", + // "item.preview.dc.publisher": "Publisher:", + "item.preview.dc.publisher": "Editor:", + // "item.preview.person.familyName": "Surname:", "item.preview.person.familyName": "Apellido:", @@ -3744,8 +3747,6 @@ // "item.preview.oaire.fundingStream": "Funding Stream:", "item.preview.oaire.fundingStream": "LÃnea de financiación:", - - // "item.select.confirm": "Confirm selected", "item.select.confirm": "Confirmar seleccionado", @@ -3761,7 +3762,6 @@ // "item.select.table.title": "Title", "item.select.table.title": "TÃtulo", - // "item.version.history.empty": "There are no other versions for this item yet.", "item.version.history.empty": "Aún no hay otras versiones para este Ãtem.", @@ -3822,11 +3822,9 @@ // "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": "No es posible crear una nueva versión puesto que existe en el historial de versiones un envÃo pendiente", - // "item.version.notice": "This is not the latest version of this item. The latest version can be found <a href='{{destination}}'>here</a>.", "item.version.notice": "Esta no es la última versión de este Ãtem. La última versión se puede encontrar <a href='{{ destination }}'>aquÃ</a>.", - // "item.version.create.modal.header": "New version", "item.version.create.modal.header": "Nueva versión", @@ -3860,21 +3858,20 @@ // "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": "Se está creando la nueva versión. Si el Ãtem tiene muchas relaciones, este proceso podrÃa tardar.", - // "item.version.create.notification.success" : "New version has been created with version number {{version}}", + // "item.version.create.notification.success": "New version has been created with version number {{version}}", "item.version.create.notification.success": "Se ha creado una nueva versión con número {{version}}", - // "item.version.create.notification.failure" : "New version has not been created", + // "item.version.create.notification.failure": "New version has not been created", "item.version.create.notification.failure": "No se ha creado una nueva versión", - // "item.version.create.notification.inProgress" : "A new version cannot be created because there is an inprogress submission in the version history", + // "item.version.create.notification.inProgress": "A new version cannot be created because there is an inprogress submission in the version history", "item.version.create.notification.inProgress": "No es posible crear una nueva versión puesto que existe en el historial de versiones un envÃo pendiente", - // "item.version.delete.modal.header": "Delete version", "item.version.delete.modal.header": "Borrar versión", // "item.version.delete.modal.text": "Do you want to delete version {{version}}?", - "item.version.delete.modal.text": "Quiere borrar la versión {{version}}?", + "item.version.delete.modal.text": "¿Quiere borrar la versión {{version}}?", // "item.version.delete.modal.button.confirm": "Delete", "item.version.delete.modal.button.confirm": "Borrar", @@ -3888,21 +3885,18 @@ // "item.version.delete.modal.button.cancel.tooltip": "Do not delete this version", "item.version.delete.modal.button.cancel.tooltip": "No borrar esta versión", - // "item.version.delete.notification.success" : "Version number {{version}} has been deleted", + // "item.version.delete.notification.success": "Version number {{version}} has been deleted", "item.version.delete.notification.success": "Se ha borrado la versión número {{version}}", - // "item.version.delete.notification.failure" : "Version number {{version}} has not been deleted", + // "item.version.delete.notification.failure": "Version number {{version}} has not been deleted", "item.version.delete.notification.failure": "No se ha borrado la versión número {{version}}", + // "item.version.edit.notification.success": "The summary of version number {{version}} has been changed", + "item.version.edit.notification.success": "Se ha cambiado el resumen de la versión número {{version}}", - // "item.version.edit.notification.success" : "The summary of version number {{version}} has been changed", - "item.version.edit.notification.success": "Ha cambiado el resumen de la versión número {{version}}", - - // "item.version.edit.notification.failure" : "The summary of version number {{version}} has not been changed", + // "item.version.edit.notification.failure": "The summary of version number {{version}} has not been changed", "item.version.edit.notification.failure": "No ha cambiado el resumen de la versión número {{version}}", - - // "itemtemplate.edit.metadata.add-button": "Add", "itemtemplate.edit.metadata.add-button": "Agregar", @@ -3984,8 +3978,6 @@ // "itemtemplate.edit.metadata.save-button": "Save", "itemtemplate.edit.metadata.save-button": "Guardar", - - // "journal.listelement.badge": "Journal", "journal.listelement.badge": "Revista", @@ -4016,8 +4008,6 @@ // "journal.search.title": "Journal Search", "journal.search.title": "Búsqueda de revistas", - - // "journalissue.listelement.badge": "Journal Issue", "journalissue.listelement.badge": "Número de la revista", @@ -4045,8 +4035,6 @@ // "journalissue.page.titleprefix": "Journal Issue: ", "journalissue.page.titleprefix": "Número de la revista: ", - - // "journalvolume.listelement.badge": "Journal Volume", "journalvolume.listelement.badge": "Volumen de la revista", @@ -4065,7 +4053,6 @@ // "journalvolume.page.volume": "Volume", "journalvolume.page.volume": "Volumen", - // "iiifsearchable.listelement.badge": "Document Media", "iiifsearchable.listelement.badge": "Soporte (media) del documento", @@ -4099,7 +4086,6 @@ // "iiif.page.description": "Description: ", "iiif.page.description": "Descripción: ", - // "loading.bitstream": "Loading bitstream...", "loading.bitstream": "Cargando archivo...", @@ -4154,8 +4140,6 @@ // "loading.top-level-communities": "Loading top-level communities...", "loading.top-level-communities": "Cargando comunidades de primer nivel...", - - // "login.form.email": "Email address", "login.form.email": "Correo electrónico", @@ -4192,8 +4176,6 @@ // "login.breadcrumbs": "Login", "login.breadcrumbs": "Acceso", - - // "logout.form.header": "Log out from DSpace", "logout.form.header": "Cerrar sesión en DSpace", @@ -4203,8 +4185,6 @@ // "logout.title": "Logout", "logout.title": "Cerrar sesión", - - // "menu.header.admin": "Management", "menu.header.admin": "Gestión", @@ -4214,27 +4194,24 @@ // "menu.header.admin.description": "Management menu", "menu.header.admin.description": "Menú de gestión", - - // "menu.section.access_control": "Access Control", "menu.section.access_control": "Control de acceso", // "menu.section.access_control_authorizations": "Authorizations", "menu.section.access_control_authorizations": "Autorizaciones", + // "menu.section.access_control_bulk": "Bulk Access Management", + "menu.section.access_control_bulk": "Gestión de Acceso Masivo", + // "menu.section.access_control_groups": "Groups", "menu.section.access_control_groups": "Grupos", // "menu.section.access_control_people": "People", "menu.section.access_control_people": "Usuarios", - - // "menu.section.admin_search": "Admin Search", "menu.section.admin_search": "Búsqueda de administrador", - - // "menu.section.browse_community": "This Community", "menu.section.browse_community": "Esta comunidad", @@ -4259,22 +4236,21 @@ // "menu.section.browse_global_by_subject": "By Subject", "menu.section.browse_global_by_subject": "Por tema", + // "menu.section.browse_global_by_srsc": "By Subject Category", + "menu.section.browse_global_by_srsc": "Por categorÃa", + // "menu.section.browse_global_by_title": "By Title", "menu.section.browse_global_by_title": "Por titulo", // "menu.section.browse_global_communities_and_collections": "Communities & Collections", "menu.section.browse_global_communities_and_collections": "Comunidades", - - // "menu.section.control_panel": "Control Panel", "menu.section.control_panel": "Panel de control", // "menu.section.curation_task": "Curation Task", "menu.section.curation_task": "Tareas de curación", - - // "menu.section.edit": "Edit", "menu.section.edit": "Editar", @@ -4287,8 +4263,6 @@ // "menu.section.edit_item": "Item", "menu.section.edit_item": "Ãtem", - - // "menu.section.export": "Export", "menu.section.export": "Exportar", @@ -4307,7 +4281,6 @@ // "menu.section.export_batch": "Batch Export (ZIP)", "menu.section.export_batch": "Exportación por lotes (ZIP)", - // "menu.section.icon.access_control": "Access Control menu section", "menu.section.icon.access_control": "Sección del menú de control de acceso", @@ -4356,8 +4329,6 @@ // "menu.section.icon.unpin": "Unpin sidebar", "menu.section.icon.unpin": "Desanclar la barra lateral", - - // "menu.section.import": "Import", "menu.section.import": "Importar", @@ -4367,8 +4338,6 @@ // "menu.section.import_metadata": "Metadata", "menu.section.import_metadata": "Metadatos", - - // "menu.section.new": "New", "menu.section.new": "Nuevo", @@ -4387,24 +4356,18 @@ // "menu.section.new_process": "Process", "menu.section.new_process": "Proceso", - - // "menu.section.pin": "Pin sidebar", "menu.section.pin": "Anclar barra lateral", // "menu.section.unpin": "Unpin sidebar", "menu.section.unpin": "Desanclar la barra lateral", - - // "menu.section.processes": "Processes", "menu.section.processes": "Procesos", // "menu.section.health": "Health", "menu.section.health": "Chequeo", - - // "menu.section.registries": "Registries", "menu.section.registries": "Registros", @@ -4414,16 +4377,12 @@ // "menu.section.registries_metadata": "Metadata", "menu.section.registries_metadata": "Metadatos", - - // "menu.section.statistics": "Statistics", "menu.section.statistics": "EstadÃsticas", // "menu.section.statistics_task": "Statistics Task", "menu.section.statistics_task": "Tarea de estadÃsticas", - - // "menu.section.toggle.access_control": "Toggle Access Control section", "menu.section.toggle.access_control": "Alternar sección de control de acceso", @@ -4454,19 +4413,18 @@ // "menu.section.toggle.statistics_task": "Toggle Statistics Task section", "menu.section.toggle.statistics_task": "Alternar sección de Tarea de estadÃsticas", - // "menu.section.workflow": "Administer Workflow", "menu.section.workflow": "Administrar flujo de trabajo", - // "metadata-export-search.tooltip": "Export search results as CSV", "metadata-export-search.tooltip": "Exportar los resultados de búsqueda a CSV", + // "metadata-export-search.submit.success": "The export was started successfully", "metadata-export-search.submit.success": "La exportación ha comenzado satisfactoriamente", + // "metadata-export-search.submit.error": "Starting the export has failed", "metadata-export-search.submit.error": "Ha fallado el comienzo de la exportación", - // "mydspace.breadcrumbs": "MyDSpace", "mydspace.breadcrumbs": "Mi DSpace", @@ -4593,8 +4551,6 @@ // "mydspace.view-btn": "View", "mydspace.view-btn": "Ver", - - // "nav.browse.header": "All of DSpace", "nav.browse.header": "Todo DSpace", @@ -4628,25 +4584,27 @@ // "nav.search": "Search", "nav.search": "Buscar", + // "nav.search.button": "Submit search", + "nav.search.button": "Buscar", + // "nav.statistics.header": "Statistics", "nav.statistics.header": "EstadÃsticas", // "nav.stop-impersonating": "Stop impersonating EPerson", - "nav.stop-impersonating": "Dejar de hacerse pasar por usuario", + "nav.stop-impersonating": "Dejar de impersonar al usuario", - // "nav.subscriptions" : "Subscriptions", + // "nav.subscriptions": "Subscriptions", "nav.subscriptions": "Suscripciones", - // "nav.toggle" : "Toggle navigation", + // "nav.toggle": "Toggle navigation", "nav.toggle": "Alternar navegación", - // "nav.user.description" : "User profile bar", + // "nav.user.description": "User profile bar", "nav.user.description": "Barra de perfil de usuario", // "none.listelement.badge": "Item", "none.listelement.badge": "Ãtem", - // "orgunit.listelement.badge": "Organizational Unit", "orgunit.listelement.badge": "Unidad organizativa", @@ -4674,8 +4632,6 @@ // "orgunit.page.titleprefix": "Organizational Unit: ", "orgunit.page.titleprefix": "Unidad organizativa: ", - - // "pagination.options.description": "Pagination options", "pagination.options.description": "Opciones de paginación", @@ -4691,8 +4647,6 @@ // "pagination.sort-direction": "Sort Options", "pagination.sort-direction": "Opciones de ordenación", - - // "person.listelement.badge": "Person", "person.listelement.badge": "Persona", @@ -4741,8 +4695,6 @@ // "person.search.title": "Person Search", "person.search.title": "Búsqueda de personas", - - // "process.new.select-parameters": "Parameters", "process.new.select-parameters": "Parámetros", @@ -4791,6 +4743,9 @@ // "process.new.notification.error.content": "An error occurred while creating this process", "process.new.notification.error.content": "Se produjo un error al crear este proceso.", + // "process.new.notification.error.max-upload.content": "The file exceeds the maximum upload size", + "process.new.notification.error.max-upload.content": "El fichero sobrepasa el lÃmte máximo de subida", + // "process.new.header": "Create a new process", "process.new.header": "Crea un nuevo proceso", @@ -4800,18 +4755,16 @@ // "process.new.breadcrumbs": "Create a new process", "process.new.breadcrumbs": "Crea un nuevo proceso", - - - // "process.detail.arguments" : "Arguments", + // "process.detail.arguments": "Arguments", "process.detail.arguments": "Argumentos", - // "process.detail.arguments.empty" : "This process doesn't contain any arguments", + // "process.detail.arguments.empty": "This process doesn't contain any arguments", "process.detail.arguments.empty": "Este proceso no contiene ningún argumento", - // "process.detail.back" : "Back", + // "process.detail.back": "Back", "process.detail.back": "Atrás", - // "process.detail.output" : "Process Output", + // "process.detail.output": "Process Output", "process.detail.output": "Salida del proceso", // "process.detail.logs.button": "Retrieve process output", @@ -4823,28 +4776,29 @@ // "process.detail.logs.none": "This process has no output", "process.detail.logs.none": "Este proceso no tiene salida", - // "process.detail.output-files" : "Output Files", + // "process.detail.output-files": "Output Files", "process.detail.output-files": "Archivos de salida", - // "process.detail.output-files.empty" : "This process doesn't contain any output files", + // "process.detail.output-files.empty": "This process doesn't contain any output files", "process.detail.output-files.empty": "Este proceso no contiene ningún archivo de salida", - // "process.detail.script" : "Script", + // "process.detail.script": "Script", "process.detail.script": "Secuencia de comandos", - // "process.detail.title" : "Process: {{ id }} - {{ name }}", + // "process.detail.title": "Process: {{ id }} - {{ name }}", + "process.detail.title": "Proceso: {{ id }} - {{ name }}", - // "process.detail.start-time" : "Start time", + // "process.detail.start-time": "Start time", "process.detail.start-time": "Hora de inicio", - // "process.detail.end-time" : "Finish time", + // "process.detail.end-time": "Finish time", "process.detail.end-time": "Hora de finalización", - // "process.detail.status" : "Status", + // "process.detail.status": "Status", "process.detail.status": "Estado", - // "process.detail.create" : "Create similar process", + // "process.detail.create": "Create similar process", "process.detail.create": "Crear un proceso similar", // "process.detail.actions": "Actions", @@ -4871,24 +4825,22 @@ // "process.detail.delete.error": "Something went wrong when deleting the process", "process.detail.delete.error": "Algo falló eliminando el proceso", - - - // "process.overview.table.finish" : "Finish time (UTC)", + // "process.overview.table.finish": "Finish time (UTC)", "process.overview.table.finish": "Hora de finalización (UTC)", - // "process.overview.table.id" : "Process ID", + // "process.overview.table.id": "Process ID", "process.overview.table.id": "ID de proceso", - // "process.overview.table.name" : "Name", + // "process.overview.table.name": "Name", "process.overview.table.name": "Nombre", - // "process.overview.table.start" : "Start time (UTC)", + // "process.overview.table.start": "Start time (UTC)", "process.overview.table.start": "Hora de inicio (UTC)", - // "process.overview.table.status" : "Status", + // "process.overview.table.status": "Status", "process.overview.table.status": "Estado", - // "process.overview.table.user" : "User", + // "process.overview.table.user": "User", "process.overview.table.user": "Usuario", // "process.overview.title": "Processes Overview", @@ -4927,8 +4879,6 @@ // "process.bulk.delete.success": "{{count}} process(es) have been succesfully deleted", "process.bulk.delete.success": "{{count}} proceso(s) se han eliminado correctamente", - - // "profile.breadcrumbs": "Update Profile", "profile.breadcrumbs": "Actualización del perfil", @@ -5058,8 +5008,6 @@ // "project-relationships.search.results.head": "Project Search Results", "project-relationships.search.results.head": "Resultados de búsqueda de proyectos", - - // "publication.listelement.badge": "Publication", "publication.listelement.badge": "Publicación", @@ -5093,7 +5041,6 @@ // "publication.search.title": "Publication Search", "publication.search.title": "Búsqueda de publicaciones", - // "media-viewer.next": "Next", "media-viewer.next": "Siguiente", @@ -5103,7 +5050,6 @@ // "media-viewer.playlist": "Playlist", "media-viewer.playlist": "Lista de reproducción", - // "register-email.title": "New user registration", "register-email.title": "Registro de nuevo usuario", @@ -5167,7 +5113,6 @@ // "register-page.create-profile.submit.success.head": "Registration completed", "register-page.create-profile.submit.success.head": "Registro completado", - // "register-page.registration.header": "New user registration", "register-page.registration.header": "Registro de nuevo usuario", @@ -5209,6 +5154,7 @@ // "register-page.registration.google-recaptcha.must-accept-cookies": "In order to register you must accept the <b>Registration and Password recovery</b> (Google reCaptcha) cookies.", "register-page.registration.google-recaptcha.must-accept-cookies": "Para registrarse debe aceptar las cookies de <b>Registro y recuperación de contraseña</b> (Google reCaptcha).", + // "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.error.maildomain": "Este correo electrónico no esta en la lista de dominios que pueden registrarse. Los dominios permitidos son {{ domains }}", @@ -5223,6 +5169,7 @@ // "register-page.registration.google-recaptcha.notification.message.expired": "Verification expired. Please verify again.", "register-page.registration.google-recaptcha.notification.message.expired": "Verificación caducada. Verifique de nuevo.", + // "register-page.registration.info.maildomain": "Accounts can be registered for mail addresses of the domains", "register-page.registration.info.maildomain": "Las cuentas pueden registrarse para las direcciones de correo de los dominios", @@ -5289,16 +5236,14 @@ // "relationships.isFundingAgencyOf.OrgUnit": "Funder", "relationships.isFundingAgencyOf.OrgUnit": "Financiador", - // "repository.image.logo": "Repository logo", "repository.image.logo": "Logotipo del repositorio", - // "repository.title.prefix": "DSpace Angular :: ", - "repository.title.prefix": "DSpace Angular :: ", - - // "repository.title.prefixDSpace": "DSpace Angular ::", - "repository.title.prefixDSpace": "DSpace Angular ::", + // "repository.title": "DSpace Repository", + "repository.title": "Repositorio DSpace", + // "repository.title.prefix": "DSpace Repository :: ", + "repository.title.prefix": "Repositorio DSpace :: ", // "resource-policies.add.button": "Add", "resource-policies.add.button": "Agregar", @@ -5471,8 +5416,6 @@ // "resource-policies.table.headers.title.for.collection": "Policies for Collection", "resource-policies.table.headers.title.for.collection": "PolÃticas para la colección", - - // "search.description": "", "search.description": "", @@ -5488,7 +5431,6 @@ // "search.search-form.placeholder": "Search the repository ...", "search.search-form.placeholder": "Buscar en el repositorio ...", - // "search.filters.applied.f.author": "Author", "search.filters.applied.f.author": "Autor", @@ -5537,8 +5479,6 @@ // "search.filters.applied.f.withdrawn": "Withdrawn", "search.filters.applied.f.withdrawn": "Retirado", - - // "search.filters.filter.author.head": "Author", "search.filters.filter.author.head": "Autor", @@ -5758,8 +5698,6 @@ // "search.filters.filter.supervisedBy.label": "Search Supervised By", "search.filters.filter.supervisedBy.label": "Búsqueda Supervisada Por", - - // "search.filters.entityType.JournalIssue": "Journal Issue", "search.filters.entityType.JournalIssue": "Número de la revista", @@ -5787,7 +5725,6 @@ // "search.filters.withdrawn.false": "No", "search.filters.withdrawn.false": "No", - // "search.filters.head": "Filters", "search.filters.head": "Filtros", @@ -5797,8 +5734,6 @@ // "search.filters.search.submit": "Submit", "search.filters.search.submit": "Enviar", - - // "search.form.search": "Search", "search.form.search": "Buscar", @@ -5808,8 +5743,6 @@ // "search.form.scope.all": "All of DSpace", "search.form.scope.all": "Todo DSpace", - - // "search.results.head": "Search Results", "search.results.head": "Resultados de la búsqueda", @@ -5834,7 +5767,6 @@ // "default-relationships.search.results.head": "Search Results", "default-relationships.search.results.head": "Resultados de la búsqueda", - // "search.sidebar.close": "Back to results", "search.sidebar.close": "Volver a resultados", @@ -5856,8 +5788,6 @@ // "search.sidebar.settings.title": "Settings", "search.sidebar.settings.title": "Ajustes", - - // "search.view-switch.show-detail": "Show detail", "search.view-switch.show-detail": "Mostrar detalle", @@ -5867,8 +5797,6 @@ // "search.view-switch.show-list": "Show as list", "search.view-switch.show-list": "Mostrar como lista", - - // "sorting.ASC": "Ascending", "sorting.ASC": "Ascendente", @@ -5905,7 +5833,6 @@ // "sorting.lastModified.DESC": "Last modified Descending", "sorting.lastModified.DESC": "Última modificación Descendente", - // "statistics.title": "Statistics", "statistics.title": "EstadÃsticas", @@ -5942,7 +5869,6 @@ // "statistics.table.no-name": "(object name could not be loaded)", "statistics.table.no-name": "(el nombre del objeto no pudo ser cargado)", - // "submission.edit.breadcrumbs": "Edit Submission", "submission.edit.breadcrumbs": "Editar envÃo", @@ -5952,7 +5878,7 @@ // "submission.general.cancel": "Cancel", "submission.general.cancel": "Cancelar", - // "submission.general.cannot_submit": "You have not the privilege to make a new submission.", + // "submission.general.cannot_submit": "You don't have permission to make a new submission.", "submission.general.cannot_submit": "No tiene los permisos para realizar un nuevo envÃo.", // "submission.general.deposit": "Deposit", @@ -5985,7 +5911,6 @@ // "submission.general.save-later": "Save for later", "submission.general.save-later": "Guardar para más adelante", - // "submission.import-external.page.title": "Import metadata from an external source", "submission.import-external.page.title": "Importar metadatos desde una fuente externa", @@ -6297,6 +6222,7 @@ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalOfPublication": "Local Journals ({{ count }})", "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalOfPublication": "Revistas locales ({{ count }})", + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.Project": "Local Projects ({{ count }})", "submission.sections.describe.relationship-lookup.search-tab.tab-title.Project": "Proyectos locales ({{ count }})", @@ -6320,16 +6246,18 @@ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalIssueOfPublication": "Local Journal Issues ({{ count }})", "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalIssueOfPublication": "Números de revista locales ({{ 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": "Números de revista locales ({{ 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": "Volúmenes de revista locales ({{ 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": "Volúmenes de revista locales ({{ count }})", // "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaJournal": "Sherpa Journals ({{ count }})", - "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaJournal": "Revistas Sherpa ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaJournal": "Revistas Sherpa ({{ count }})", // "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaPublisher": "Sherpa Publishers ({{ count }})", "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaPublisher": "Editores Sherpa ({{ count }})", @@ -6379,9 +6307,6 @@ // "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfProject": "Funder of the Project", "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfProject": "Financiador del Proyecto", - - - // "submission.sections.describe.relationship-lookup.selection-tab.search-form.placeholder": "Search...", "submission.sections.describe.relationship-lookup.selection-tab.search-form.placeholder": "Buscar...", @@ -6390,11 +6315,13 @@ // "submission.sections.describe.relationship-lookup.title.isJournalIssueOfPublication": "Journal Issues", "submission.sections.describe.relationship-lookup.title.isJournalIssueOfPublication": "Números de revista", + // "submission.sections.describe.relationship-lookup.title.JournalIssue": "Journal Issues", "submission.sections.describe.relationship-lookup.title.JournalIssue": "Números de revista", // "submission.sections.describe.relationship-lookup.title.isJournalVolumeOfPublication": "Journal Volumes", "submission.sections.describe.relationship-lookup.title.isJournalVolumeOfPublication": "Volúmenes de la revista", + // "submission.sections.describe.relationship-lookup.title.JournalVolume": "Journal Volumes", "submission.sections.describe.relationship-lookup.title.JournalVolume": "Volúmenes de la revista", @@ -6406,6 +6333,7 @@ // "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfPublication": "Funding Agency", "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfPublication": "Agencia financiadora", + // "submission.sections.describe.relationship-lookup.title.Project": "Projects", "submission.sections.describe.relationship-lookup.title.Project": "Proyectos", @@ -6453,6 +6381,7 @@ // "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalVolumeOfPublication": "Selected Journal Volume", "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalVolumeOfPublication": "Volumen de revista seleccionada", + // "submission.sections.describe.relationship-lookup.selection-tab.title.Project": "Selected Projects", "submission.sections.describe.relationship-lookup.selection-tab.title.Project": "Proyectos seleccionados", @@ -6476,6 +6405,7 @@ // "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalIssueOfPublication": "Selected Issue", "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalIssueOfPublication": "Número de revista seleccionados", + // "submission.sections.describe.relationship-lookup.selection-tab.title.JournalVolume": "Selected Journal Volume", "submission.sections.describe.relationship-lookup.selection-tab.title.JournalVolume": "Volúmenes de revista seleccionados", @@ -6484,6 +6414,7 @@ // "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingOfPublication": "Selected Funding", "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingOfPublication": "Financiamientos seleccionados", + // "submission.sections.describe.relationship-lookup.selection-tab.title.JournalIssue": "Selected Issue", "submission.sections.describe.relationship-lookup.selection-tab.title.JournalIssue": "Número seleccionado", @@ -6658,7 +6589,6 @@ // "submission.sections.submit.progressbar.sherpaPolicies": "Publisher open access policy information", "submission.sections.submit.progressbar.sherpaPolicies": "Información sobre polÃticas editoriales de acceso abierto", - // "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.sherpa-policy.title-empty": "No se encuentra disponible la información sobre polÃtica editorial. Si tiene un ISSN asociado, introdúzcalo arriba para ver información sobre polÃticas editoriales de acceso abierto.", @@ -6839,10 +6769,9 @@ // "submission.sections.license.required": "You must accept the license", "submission.sections.license.required": "Debe aceptar la licencia", - // "submission.sections.license.notgranted": "You must accept the license", + // "submission.sections.license.notgranted": "You must accept the license", "submission.sections.license.notgranted": "Debe aceptar la licencia", - // "submission.sections.sherpa.publication.information": "Publication information", "submission.sections.sherpa.publication.information": "Información de la Publicación", @@ -6868,7 +6797,7 @@ "submission.sections.sherpa.publisher.policy": "PolÃtica editorial", // "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.description": "La siguiente informacióm se encontró via Sherpa Romeo. En base a esas polÃticas, se proporcionan consejos sobre las necesidad de un embargo y de aquellos ficheros que puede utilizar. Si tiene dudas, por favor, contacte con el administrador del repositorio mediante el formulario de sugerencias.", + "submission.sections.sherpa.publisher.policy.description": "La siguiente informacióm se encontró vÃa Sherpa Romeo. En base a esas polÃticas, se proporcionan consejos sobre las necesidad de un embargo y de aquellos ficheros que puede utilizar. Si tiene dudas, por favor, contacte con el administrador del repositorio mediante el formulario de sugerencias.", // "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.openaccess": "Los caminos hacia el Acceso Abierto que esta revista permite se relacionan, por versión de artÃculo, abajo. Pulse en un camino para una visión mas detallada", @@ -6921,16 +6850,12 @@ // "submission.sections.sherpa.error.message": "There was an error retrieving sherpa informations", "submission.sections.sherpa.error.message": "Hubo un error recuperando la información de Sherpa", - - // "submission.submit.breadcrumbs": "New submission", "submission.submit.breadcrumbs": "Nuevo envÃo", // "submission.submit.title": "New submission", "submission.submit.title": "Nuevo envÃo", - - // "submission.workflow.generic.delete": "Delete", "submission.workflow.generic.delete": "Eliminar", @@ -6949,21 +6874,18 @@ // "submission.workflow.generic.view-help": "Select this option to view the item's metadata.", "submission.workflow.generic.view-help": "Seleccione esta opción para ver los metadatos del Ãtem.", - // "submission.workflow.generic.submit_select_reviewer": "Select Reviewer", "submission.workflow.generic.submit_select_reviewer": "Seleccionar revisor", // "submission.workflow.generic.submit_select_reviewer-help": "", "submission.workflow.generic.submit_select_reviewer-help": "", - // "submission.workflow.generic.submit_score": "Rate", "submission.workflow.generic.submit_score": "Evaluar", // "submission.workflow.generic.submit_score-help": "", "submission.workflow.generic.submit_score-help": "", - // "submission.workflow.tasks.claimed.approve": "Approve", "submission.workflow.tasks.claimed.approve": "Aprobar", @@ -7006,8 +6928,6 @@ // "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": "Devuelva la tarea al pool para que otro usuario pueda realizarla.", - - // "submission.workflow.tasks.generic.error": "Error occurred during operation...", "submission.workflow.tasks.generic.error": "Ocurrió un error durante la operación...", @@ -7020,8 +6940,6 @@ // "submission.workflow.tasks.generic.success": "Operation successful", "submission.workflow.tasks.generic.success": "Operación exitosa", - - // "submission.workflow.tasks.pool.claim": "Claim", "submission.workflow.tasks.pool.claim": "Asumir tarea", @@ -7034,13 +6952,14 @@ // "submission.workflow.tasks.pool.show-detail": "Show detail", "submission.workflow.tasks.pool.show-detail": "Mostrar detalle", - // "submission.workspace.generic.view": "View", "submission.workspace.generic.view": "Ver", // "submission.workspace.generic.view-help": "Select this option to view the item's metadata.", "submission.workspace.generic.view-help": "Seleccione esta opción para ver los metadatos del Ãtem.", + // "submitter.empty": "N/A", + "submitter.empty": "N/A", // "subscriptions.title": "Subscriptions", "subscriptions.title": "Suscripciones", @@ -7147,7 +7066,6 @@ // "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.", "subscriptions.table.empty.message": "Usted no tiene suscripciones. Para subscribirse a las actualizaciones por correo electrónico de una Comunidad o Colección, utilice el botón de suscripción en la página del objeto.", - // "thumbnail.default.alt": "Thumbnail Image", "thumbnail.default.alt": "Miniatura", @@ -7172,13 +7090,9 @@ // "thumbnail.person.placeholder": "No Profile Picture Available", "thumbnail.person.placeholder": "No hay imagen de perfil disponible", - - // "title": "DSpace", "title": "DSpace", - - // "vocabulary-treeview.header": "Hierarchical tree view", "vocabulary-treeview.header": "Vista de árbol jerárquico", @@ -7230,8 +7144,6 @@ // "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": "Seleccione los Ãtems para los que desea guardar los metadatos virtuales como metadatos reales", - - // "supervisedWorkspace.search.results.head": "Supervised Items", "supervisedWorkspace.search.results.head": "Ãtems supervisados", @@ -7247,8 +7159,6 @@ // "supervision.search.results.head": "Workflow and Workspace tasks", "supervision.search.results.head": "Tareas del flujo de trabajo y del espacio de trabajo", - - // "workflow-item.edit.breadcrumbs": "Edit workflowitem", "workflow-item.edit.breadcrumbs": "Editar Ãtem del flujo de trabajo", @@ -7279,7 +7189,6 @@ // "workflow-item.delete.button.confirm": "Delete", "workflow-item.delete.button.confirm": "Borrar", - // "workflow-item.send-back.notification.success.title": "Sent back to submitter", "workflow-item.send-back.notification.success.title": "Devolver al remitente", @@ -7313,11 +7222,33 @@ // "workspace-item.view.title": "Workspace View", "workspace-item.view.title": "Vista del flujo de trabajo", + // "workspace-item.delete.breadcrumbs": "Workspace Delete", + "workspace-item.delete.breadcrumbs": "Borrar espacio de trabajo", + + // "workspace-item.delete.header": "Delete workspace item", + "workspace-item.delete.header": "Borrar Ãtem del espacio de trabajo", + + // "workspace-item.delete.button.confirm": "Delete", + "workspace-item.delete.button.confirm": "Borrar", + + // "workspace-item.delete.button.cancel": "Cancel", + "workspace-item.delete.button.cancel": "Cancelar", + + // "workspace-item.delete.notification.success.title": "Deleted", + "workspace-item.delete.notification.success.title": "Borrado", + + // "workspace-item.delete.title": "This workspace item was successfully deleted", + "workspace-item.delete.title": "Este Ãtem del espacio de trabajo se eliminó correctamente", + + // "workspace-item.delete.notification.error.title": "Something went wrong", + "workspace-item.delete.notification.error.title": "Algo salió mal", + + // "workspace-item.delete.notification.error.content": "The workspace item could not be deleted", + "workspace-item.delete.notification.error.content": "Este Ãtem del espacio de trabajo no pudo borrarse", // "workflow-item.advanced.title": "Advanced workflow", "workflow-item.advanced.title": "Flujo de trabajo avanzado", - // "workflow-item.selectrevieweraction.notification.success.title": "Selected reviewer", "workflow-item.selectrevieweraction.notification.success.title": "Revisor seleccionado", @@ -7342,7 +7273,6 @@ // "workflow-item.selectrevieweraction.button.confirm": "Confirm", "workflow-item.selectrevieweraction.button.confirm": "Confirmar", - // "workflow-item.scorereviewaction.notification.success.title": "Rating review", "workflow-item.scorereviewaction.notification.success.title": "Revisión de evaluación", @@ -7379,7 +7309,7 @@ // "idle-modal.extend-session": "Extend session", "idle-modal.extend-session": "Prolongar la sesión", - // "researcher.profile.action.processing" : "Processing...", + // "researcher.profile.action.processing": "Processing...", "researcher.profile.action.processing": "Procesando...", // "researcher.profile.associated": "Researcher profile associated", @@ -7412,10 +7342,10 @@ // "researcher.profile.view": "View", "researcher.profile.view": "Ver", - // "researcher.profile.private.visibility" : "PRIVATE", + // "researcher.profile.private.visibility": "PRIVATE", "researcher.profile.private.visibility": "PRIVADO", - // "researcher.profile.public.visibility" : "PUBLIC", + // "researcher.profile.public.visibility": "PUBLIC", "researcher.profile.public.visibility": "PÚBLICO", // "researcher.profile.status": "Status:", @@ -7424,16 +7354,16 @@ // "researcherprofile.claim.not-authorized": "You are not authorized to claim this item. For more details contact the administrator(s).", "researcherprofile.claim.not-authorized": "No está autorizado pare reclamar este Ãtem. Contacte con el administrador para mas detalles.", - // "researcherprofile.error.claim.body" : "An error occurred while claiming the profile, please try again later", + // "researcherprofile.error.claim.body": "An error occurred while claiming the profile, please try again later", "researcherprofile.error.claim.body": "Hubo un error reclamando el perfil, por favor, inténtelo mas tarde", - // "researcherprofile.error.claim.title" : "Error", + // "researcherprofile.error.claim.title": "Error", "researcherprofile.error.claim.title": "Error", - // "researcherprofile.success.claim.body" : "Profile claimed with success", + // "researcherprofile.success.claim.body": "Profile claimed with success", "researcherprofile.success.claim.body": "Perfil reclamado con éxito", - // "researcherprofile.success.claim.title" : "Success", + // "researcherprofile.success.claim.title": "Success", "researcherprofile.success.claim.title": "Éxito", // "person.page.orcid.create": "Create an ORCID ID", @@ -7442,7 +7372,7 @@ // "person.page.orcid.granted-authorizations": "Granted authorizations", "person.page.orcid.granted-authorizations": "Autorizaciones concedidas", - // "person.page.orcid.grant-authorizations" : "Grant authorizations", + // "person.page.orcid.grant-authorizations": "Grant authorizations", "person.page.orcid.grant-authorizations": "Conceder autorizaciones", // "person.page.orcid.link": "Connect to ORCID ID", @@ -7458,7 +7388,7 @@ "person.page.orcid.orcid-not-linked-message": "El ORCID iD de este perfil ({{ orcid }}) no se ha conectado aún con una cuenta en el registro ORCID o la conexión caducó.", // "person.page.orcid.unlink": "Disconnect from ORCID", - "person.page.orcid.unlink": "Desconectar de ORCID", + "person.page.orcid.unlink": "Desconectar de ORCID", // "person.page.orcid.unlink.processing": "Processing...", "person.page.orcid.unlink.processing": "Procesando...", @@ -7490,44 +7420,44 @@ // "person.page.orcid.save.preference.changes": "Update settings", "person.page.orcid.save.preference.changes": "Actualizar configuración", - // "person.page.orcid.sync-profile.affiliation" : "Affiliation", + // "person.page.orcid.sync-profile.affiliation": "Affiliation", "person.page.orcid.sync-profile.affiliation": "Afiliación", - // "person.page.orcid.sync-profile.biographical" : "Biographical data", + // "person.page.orcid.sync-profile.biographical": "Biographical data", "person.page.orcid.sync-profile.biographical": "BiografÃa", - // "person.page.orcid.sync-profile.education" : "Education", + // "person.page.orcid.sync-profile.education": "Education", "person.page.orcid.sync-profile.education": "Grados", - // "person.page.orcid.sync-profile.identifiers" : "Identifiers", + // "person.page.orcid.sync-profile.identifiers": "Identifiers", "person.page.orcid.sync-profile.identifiers": "Identificadores", - // "person.page.orcid.sync-fundings.all" : "All fundings", + // "person.page.orcid.sync-fundings.all": "All fundings", "person.page.orcid.sync-fundings.all": "Todas las financiaciones", - // "person.page.orcid.sync-fundings.mine" : "My fundings", + // "person.page.orcid.sync-fundings.mine": "My fundings", "person.page.orcid.sync-fundings.mine": "Mi financiación", - // "person.page.orcid.sync-fundings.my_selected" : "Selected fundings", + // "person.page.orcid.sync-fundings.my_selected": "Selected fundings", "person.page.orcid.sync-fundings.my_selected": "Financiaciones seleccionadas", - // "person.page.orcid.sync-fundings.disabled" : "Disabled", + // "person.page.orcid.sync-fundings.disabled": "Disabled", "person.page.orcid.sync-fundings.disabled": "Deshabilitado", - // "person.page.orcid.sync-publications.all" : "All publications", + // "person.page.orcid.sync-publications.all": "All publications", "person.page.orcid.sync-publications.all": "Todas las publicaciones", - // "person.page.orcid.sync-publications.mine" : "My publications", + // "person.page.orcid.sync-publications.mine": "My publications", "person.page.orcid.sync-publications.mine": "Mis publicaciones", - // "person.page.orcid.sync-publications.my_selected" : "Selected publications", + // "person.page.orcid.sync-publications.my_selected": "Selected publications", "person.page.orcid.sync-publications.my_selected": "Publicaciones seleccionadas", - // "person.page.orcid.sync-publications.disabled" : "Disabled", + // "person.page.orcid.sync-publications.disabled": "Disabled", "person.page.orcid.sync-publications.disabled": "Deshabilitado", - // "person.page.orcid.sync-queue.discard" : "Discard the change and do not synchronize with the ORCID registry", - "person.page.orcid.sync-queue.discard": "Deshechar el cambio y no sincronizar con ORCID", + // "person.page.orcid.sync-queue.discard": "Discard the change and do not synchronize with the ORCID registry", + "person.page.orcid.sync-queue.discard": "Deshechar el cambio y no sincronizar con el registro ORCID", // "person.page.orcid.sync-queue.discard.error": "The discarding of the ORCID queue record failed", "person.page.orcid.sync-queue.discard.error": "Falló el borrado del registro ORCID en la cola", @@ -7538,13 +7468,13 @@ // "person.page.orcid.sync-queue.empty-message": "The ORCID queue registry is empty", "person.page.orcid.sync-queue.empty-message": "La cola del registro de ORCID está vacÃa", - // "person.page.orcid.sync-queue.table.header.type" : "Type", + // "person.page.orcid.sync-queue.table.header.type": "Type", "person.page.orcid.sync-queue.table.header.type": "Tipo", - // "person.page.orcid.sync-queue.table.header.description" : "Description", + // "person.page.orcid.sync-queue.table.header.description": "Description", "person.page.orcid.sync-queue.table.header.description": "Descripción", - // "person.page.orcid.sync-queue.table.header.action" : "Action", + // "person.page.orcid.sync-queue.table.header.action": "Action", "person.page.orcid.sync-queue.table.header.action": "Acción", // "person.page.orcid.sync-queue.description.affiliation": "Affiliations", @@ -7610,7 +7540,7 @@ // "person.page.orcid.sync-queue.tooltip.researcher_urls": "Researcher url", "person.page.orcid.sync-queue.tooltip.researcher_urls": "URL del investigador", - // "person.page.orcid.sync-queue.send" : "Synchronize with ORCID registry", + // "person.page.orcid.sync-queue.send": "Synchronize with ORCID registry", "person.page.orcid.sync-queue.send": "Sincronizar con el registro ORCID", // "person.page.orcid.sync-queue.send.unauthorized-error.title": "The submission to ORCID failed for missing authorizations.", @@ -7620,13 +7550,13 @@ "person.page.orcid.sync-queue.send.unauthorized-error.content": "Pulse <a href='{{orcid}}'>aquÃ</a> para conceder de nuevo los permisos requeridos. Si el problema continuase, contacte con el administrador", // "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": "El envÃo a ORCID falló debido a que el recurso que se envión no era válido", + "person.page.orcid.sync-queue.send.bad-request-error": "El envÃo a ORCID falló debido a que el recurso que se envión no era válido", // "person.page.orcid.sync-queue.send.error": "The submission to ORCID failed", "person.page.orcid.sync-queue.send.error": "Falló el envÃo a ORCID", // "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": "El envÃo a ORCID falló debido a que el recurso ya existÃa en el registro ORCID", + "person.page.orcid.sync-queue.send.conflict-error": "El envÃo a ORCID falló debido a que el recurso ya existÃa en el 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": "El recurso no existe ya en el registro ORCID.", @@ -7664,8 +7594,8 @@ // "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": "Se requiere el nombre de la organización", - // "person.page.orcid.sync-queue.send.validation-error.publication.date-invalid" : "The publication date must be one year after 1900", - "person.page.orcid.sync-queue.send.validation-error.publication.date-invalid": "la fecha de la publicación debe ser posterior a 1900", + // "person.page.orcid.sync-queue.send.validation-error.publication.date-invalid": "The publication date must be one year after 1900", + "person.page.orcid.sync-queue.send.validation-error.publication.date-invalid": "La fecha de publicación debe ser posterior a 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": "Se requiere la dirección de la organización", @@ -7698,7 +7628,7 @@ "person.page.orcid.synchronization-mode.label": "Modo sincronización", // "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).", - "person.page.orcid.synchronization-mode-message": "Seleccione cómo prefiere realizar la sincronización con ORCID. Puede escoger \"Manual\" (usted envÃa los datos a ORCID manualmente), o \"Batch\" (el sistema enviará sus datos a ORCID via un programa planificado).", + "person.page.orcid.synchronization-mode-message": "Seleccione cómo prefiere realizar la sincronización con ORCID. Puede escoger \"Manual\" (usted envÃa los datos a ORCID manualmente), o \"Batch\" (el sistema enviará sus datos a ORCID vÃa un programa planificado).", // "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": "Seleccione si enviará información de sus entidades conectadas de tipo Proyecto a la información de financiación de ORCID.", @@ -7744,13 +7674,13 @@ // "person.orcid.registry.auth": "ORCID Authorizations", "person.orcid.registry.auth": "Autorizaciones ORCID", + // "home.recent-submissions.head": "Recent Submissions", "home.recent-submissions.head": "EnvÃos recientes", // "listable-notification-object.default-message": "This object couldn't be retrieved", "listable-notification-object.default-message": "Este objeto no se pudo recuperar", - // "system-wide-alert-banner.retrieval.error": "Something went wrong retrieving the system-wide alert banner", "system-wide-alert-banner.retrieval.error": "Algo salió mal al recuperar el banner de alerta del sistema", @@ -7766,8 +7696,6 @@ // "system-wide-alert-banner.countdown.minutes": "{{minutes}} minute(s):", "system-wide-alert-banner.countdown.minutes": "{{minutes}} minuto(s):", - - // "menu.section.system-wide-alert": "System-wide Alert", "menu.section.system-wide-alert": "Alerta del Sistema", @@ -7822,5 +7750,81 @@ // "admin.system-wide-alert.title": "System-wide Alerts", "admin.system-wide-alert.title": "Alertas del sistema", + // "item-access-control-title": "This form allows you to perform changes to the access conditions of the item's metadata or its bitstreams.", + "item-access-control-title": "Esta pantalla le permite realizar cambios en las condiciones de acceso a los metadatos o a los archivos del Ãtem.", + + // "collection-access-control-title": "This form allows you to perform changes to the access conditions of all the items owned by this collection. Changes may be performed to either all Item metadata or all content (bitstreams).", + "collection-access-control-title": "Esta pantalla le permite realizar cambios en las condiciones de acceso de todos los Ãtems de la colección. Puede realizar los cambios a los metadatos o a los archivos de todos los Ãtems.", + + // "community-access-control-title": "This form allows you to perform changes to the access conditions of all the items owned by any collection under this community. Changes may be performed to either all Item metadata or all content (bitstreams).", + "community-access-control-title": "Esta pantalla le permite realizar cambios en las condiciones de acceso de todos los Ãtems de todas las colecciones de esta comunidad. Puede realizar los cambios a los metadatos o a los archivos de todos los Ãtems.", + + // "access-control-item-header-toggle": "Item's Metadata", + "access-control-item-header-toggle": "Metadatos del Ãtem", + + // "access-control-bitstream-header-toggle": "Bitstreams", + "access-control-bitstream-header-toggle": "Archivos", + + // "access-control-mode": "Mode", + "access-control-mode": "Modo", + + // "access-control-access-conditions": "Access conditions", + "access-control-access-conditions": "Condiciones de accceso", + + // "access-control-no-access-conditions-warning-message": "Currently, no access conditions are specified below. If executed, this will replace the current access conditions with the default access conditions inherited from the owning collection.", + "access-control-no-access-conditions-warning-message": "No ha especificado condiciones de acceso. Si lo ejecuta, se sustituirán las condiciones actuales con las condiones heredadas de la colección de pertenencia.", + + // "access-control-replace-all": "Replace access conditions", + "access-control-replace-all": "Sustituir condiciones de accceso", + + // "access-control-add-to-existing": "Add to existing ones", + "access-control-add-to-existing": "Añadir a las existentes", + + // "access-control-limit-to-specific": "Limit the changes to specific bitstreams", + "access-control-limit-to-specific": "Limitar los cambios a ficheros especÃficos", + + // "access-control-process-all-bitstreams": "Update all the bitstreams in the item", + "access-control-process-all-bitstreams": "Actualizar todos los archivos del Ãtem", + + // "access-control-bitstreams-selected": "bitstreams selected", + "access-control-bitstreams-selected": "archivos seleccionados", + + // "access-control-cancel": "Cancel", + "access-control-cancel": "Cancelar", + + // "access-control-execute": "Execute", + "access-control-execute": "Ejecutar", + + // "access-control-add-more": "Add more", + "access-control-add-more": "Añadir mas", + + // "access-control-select-bitstreams-modal.title": "Select bitstreams", + "access-control-select-bitstreams-modal.title": "Seleccionar archivos", + + // "access-control-select-bitstreams-modal.no-items": "No items to show.", + "access-control-select-bitstreams-modal.no-items": "No hay Ãtems para mostrar.", + + // "access-control-select-bitstreams-modal.close": "Close", + "access-control-select-bitstreams-modal.close": "Cerrar", + + // "access-control-option-label": "Access condition type", + "access-control-option-label": "Tipo de condición de acceso", + + // "access-control-option-note": "Choose an access condition to apply to selected objects.", + "access-control-option-note": "Seleccione una condición de acceso para aplicar a los objetos seleccionados.", + + // "access-control-option-start-date": "Grant access from", + "access-control-option-start-date": "Establecer acceso desde", + + // "access-control-option-start-date-note": "Select the date from which the related access condition is applied", + "access-control-option-start-date-note": "Escoja la fecha desde la cuál se aplicarán las condiciones de acceso especificadas", + + // "access-control-option-end-date": "Grant access until", + "access-control-option-end-date": "Establecer acceso hasta", + + // "access-control-option-end-date-note": "Select the date until which the related access condition is applied", + "access-control-option-end-date-note": "Escoja la fecha hasta la cuál se aplicarán las condiciones de acceso especificadas", + + } -- GitLab From a4eaf02a4749142828245f58c2ab82fa36f196cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20Fern=C3=A1ndez=20Celorio?= <sfernandez@arvo.es> Date: Tue, 22 Aug 2023 12:57:08 +0200 Subject: [PATCH 065/183] Some lint errors fixed (cherry picked from commit 1885638ba6fadca4c99043db4ce52646bce435a3) --- src/assets/i18n/es.json5 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/assets/i18n/es.json5 b/src/assets/i18n/es.json5 index 24ce7159e3..0d5b27473c 100644 --- a/src/assets/i18n/es.json5 +++ b/src/assets/i18n/es.json5 @@ -854,7 +854,7 @@ // "admin.batch-import.page.toggle.help": "It is possible to perform import either with file upload or via URL, use above toggle to set the input source", "admin.batch-import.page.toggle.help": "Es posible realizar una importación tanto mediante una subida de fichero como a través de una URL. Use el selector de arriba para especificar la fuente de entrada.", - + // "admin.metadata-import.page.dropMsg": "Drop a metadata CSV to import", "admin.metadata-import.page.dropMsg": "Suelta un CSV de metadatos para importar", @@ -2677,7 +2677,7 @@ "grant-request-copy.header": "Conceder solicitud de copia de documento", // "grant-request-copy.intro": "A message will be sent to the applicant of the request. The requested document(s) will be attached.", - "grant-request-copy.intro": "Este mensaje se enviará al solicitante de la copia. Se le anexará una copia del documento.", + "grant-request-copy.intro": "Este mensaje se enviará al solicitante de la copia. Se le anexará una copia del documento.", // "grant-request-copy.success": "Successfully granted item request", "grant-request-copy.success": "Solicitud de Ãtem concedida exitosamente", @@ -2686,13 +2686,13 @@ "health.breadcrumbs": "Chequeos", // "health-page.heading": "Health", - "health-page.heading": "Chequeos", + "health-page.heading": "Chequeos", // "health-page.info-tab": "Info", - "health-page.info-tab": "Información", + "health-page.info-tab": "Información", // "health-page.status-tab": "Status", - "health-page.status-tab": "Estado", + "health-page.status-tab": "Estado", // "health-page.error.msg": "The health check service is temporarily unavailable", "health-page.error.msg": "El servicio de comprobación no se encuentra temporalmente disponible", @@ -4744,7 +4744,7 @@ "process.new.notification.error.content": "Se produjo un error al crear este proceso.", // "process.new.notification.error.max-upload.content": "The file exceeds the maximum upload size", - "process.new.notification.error.max-upload.content": "El fichero sobrepasa el lÃmte máximo de subida", + "process.new.notification.error.max-upload.content": "El fichero sobrepasa el lÃmte máximo de subida", // "process.new.header": "Create a new process", "process.new.header": "Crea un nuevo proceso", -- GitLab From 9afbd8d746738c2b766267a8fac0da9d9f096d2e Mon Sep 17 00:00:00 2001 From: Hugo Dominguez <hugo@escire.lat> Date: Fri, 18 Aug 2023 13:20:19 -0600 Subject: [PATCH 066/183] =?UTF-8?q?=F0=9F=90=9B=20fix=20when=20navbar=20ex?= =?UTF-8?q?pands=20on=20firefox?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 60706720e47abc19b7528719e63676b9b5fa50be) --- src/themes/dspace/app/navbar/navbar.component.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/themes/dspace/app/navbar/navbar.component.scss b/src/themes/dspace/app/navbar/navbar.component.scss index d3aea9f078..2bcd38d5f4 100644 --- a/src/themes/dspace/app/navbar/navbar.component.scss +++ b/src/themes/dspace/app/navbar/navbar.component.scss @@ -7,7 +7,7 @@ nav.navbar { /** Mobile menu styling **/ @media screen and (max-width: map-get($grid-breakpoints, md)-0.02) { .navbar { - width: 100%; + width: 100vw; background-color: var(--bs-white); position: absolute; overflow: hidden; -- GitLab From f88638e9fee32b820c2d983dd112ea65cecb6540 Mon Sep 17 00:00:00 2001 From: Hugo Dominguez <hugo@escire.lat> Date: Sun, 13 Aug 2023 12:10:25 -0600 Subject: [PATCH 067/183] =?UTF-8?q?=F0=9F=90=9B=20Fix=20Value=20of=20dropd?= =?UTF-8?q?own=20changes=20automatically=20on=20item=20submission=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 651305952d706f6c45eb47ff37dfb94f91979760) --- .../dynamic-scrollable-dropdown.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/models/scrollable-dropdown/dynamic-scrollable-dropdown.component.html b/src/app/shared/form/builder/ds-dynamic-form-ui/models/scrollable-dropdown/dynamic-scrollable-dropdown.component.html index 6e2d29b789..1ac38e9943 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/models/scrollable-dropdown/dynamic-scrollable-dropdown.component.html +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/models/scrollable-dropdown/dynamic-scrollable-dropdown.component.html @@ -43,7 +43,7 @@ <button class="dropdown-item disabled" *ngIf="optionsList && optionsList.length == 0">{{'form.no-results' | translate}}</button> <button class="dropdown-item collection-item text-truncate" *ngFor="let listEntry of optionsList" - (click)="onSelect(listEntry); sdRef.close()" (mousedown)="onSelect(listEntry); sdRef.close()" + (keydown.enter)="onSelect(listEntry); sdRef.close()" (mousedown)="onSelect(listEntry); sdRef.close()" title="{{ listEntry.display }}" role="option" [attr.id]="listEntry.display == (currentValue|async) ? ('combobox_' + id + '_selected') : null"> {{inputFormatter(listEntry)}} -- GitLab From eb38b5877e231891a0fc26ab5ea7df86fcacc494 Mon Sep 17 00:00:00 2001 From: Hugo Dominguez <hugo@escire.lat> Date: Sun, 13 Aug 2023 12:12:05 -0600 Subject: [PATCH 068/183] =?UTF-8?q?=E2=9C=85change=20test=20event,=20click?= =?UTF-8?q?=20by=20mousedown=20on=20dynamic-scrollable-dropdown.component.?= =?UTF-8?q?spec.ts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 25479e17942bbd23e56a5f5a479d2e0dcc798087) --- .../dynamic-scrollable-dropdown.component.spec.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/models/scrollable-dropdown/dynamic-scrollable-dropdown.component.spec.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/models/scrollable-dropdown/dynamic-scrollable-dropdown.component.spec.ts index 0fe617e231..05e46c6e6d 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/models/scrollable-dropdown/dynamic-scrollable-dropdown.component.spec.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/models/scrollable-dropdown/dynamic-scrollable-dropdown.component.spec.ts @@ -159,14 +159,15 @@ describe('Dynamic Dynamic Scrollable Dropdown component', () => { let de: any = scrollableDropdownFixture.debugElement.query(By.css('input.form-control')); let btnEl = de.nativeElement; - btnEl.click(); + const mousedownEvent = new MouseEvent('mousedown'); + + btnEl.dispatchEvent(mousedownEvent); scrollableDropdownFixture.detectChanges(); de = scrollableDropdownFixture.debugElement.queryAll(By.css('button.dropdown-item')); btnEl = de[0].nativeElement; - btnEl.click(); - + btnEl.dispatchEvent(mousedownEvent); scrollableDropdownFixture.detectChanges(); expect((scrollableDropdownComp.model as any).value).toEqual(selectedValue); -- GitLab From 8363273f58671e361927326d3873a90afc6e4d74 Mon Sep 17 00:00:00 2001 From: Alan Orth <alan.orth@gmail.com> Date: Thu, 24 Aug 2023 15:01:37 +0300 Subject: [PATCH 069/183] config/config.example.yml: fix example syntax As of DSpace Angular 7.2 the syntax has changed from TypeScript to YAML. (cherry picked from commit 9e46b5310b5038fb3433db2bdd829d48c8107a70) --- config/config.example.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/config/config.example.yml b/config/config.example.yml index 7e61155916..d2efad4fe2 100644 --- a/config/config.example.yml +++ b/config/config.example.yml @@ -292,33 +292,33 @@ themes: # # # A theme with a handle property will match the community, collection or item with the given # # handle, and all collections and/or items within it - # - name: 'custom', - # handle: '10673/1233' + # - name: custom + # handle: 10673/1233 # # # A theme with a regex property will match the route using a regular expression. If it # # matches the route for a community or collection it will also apply to all collections # # and/or items within it - # - name: 'custom', - # regex: 'collections\/e8043bc2.*' + # - name: custom + # regex: collections\/e8043bc2.* # # # A theme with a uuid property will match the community, collection or item with the given # # ID, and all collections and/or items within it - # - name: 'custom', - # uuid: '0958c910-2037-42a9-81c7-dca80e3892b4' + # - name: custom + # uuid: 0958c910-2037-42a9-81c7-dca80e3892b4 # # # The extends property specifies an ancestor theme (by name). Whenever a themed component is not found # # in the current theme, its ancestor theme(s) will be checked recursively before falling back to default. - # - name: 'custom-A', - # extends: 'custom-B', + # - name: custom-A + # extends: custom-B # # Any of the matching properties above can be used - # handle: '10673/34' + # handle: 10673/34 # - # - name: 'custom-B', - # extends: 'custom', - # handle: '10673/12' + # - name: custom-B + # extends: custom + # handle: 10673/12 # # # A theme with only a name will match every route - # name: 'custom' + # name: custom # # # This theme will use the default bootstrap styling for DSpace components # - name: BASE_THEME_NAME -- GitLab From 92e0b6dddfa405226de5a517524017f7cf90a5b6 Mon Sep 17 00:00:00 2001 From: Nona Luypaert <nona.luypaert@atmire.com> Date: Sat, 8 Jul 2023 00:20:30 +0200 Subject: [PATCH 070/183] Fix VocabularyTreeview not updating + i18n for nsi (cherry picked from commit b5a70e8f95d1046bed0e33d5b0bdc8109d645676) --- .../vocabulary-treeview/vocabulary-treeview.component.ts | 9 +++++++-- src/assets/i18n/en.json5 | 6 ++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.ts b/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.ts index 017416e8c2..13d4495e61 100644 --- a/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.ts +++ b/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.ts @@ -1,5 +1,5 @@ import { FlatTreeControl } from '@angular/cdk/tree'; -import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core'; +import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, OnChanges, SimpleChanges } from '@angular/core'; import { map } from 'rxjs/operators'; import { Observable, Subscription } from 'rxjs'; @@ -28,7 +28,7 @@ import { getFirstSucceededRemoteDataPayload } from '../../../core/shared/operato templateUrl: './vocabulary-treeview.component.html', styleUrls: ['./vocabulary-treeview.component.scss'] }) -export class VocabularyTreeviewComponent implements OnDestroy, OnInit { +export class VocabularyTreeviewComponent implements OnDestroy, OnInit, OnChanges { /** * The {@link VocabularyOptions} object @@ -322,4 +322,9 @@ export class VocabularyTreeviewComponent implements OnDestroy, OnInit { private getEntryId(entry: VocabularyEntry): string { return entry.authority || entry.otherInformation.id || undefined; } + + ngOnChanges(changes: SimpleChanges): void { + this.reset(); + this.vocabularyTreeviewService.initialize(this.vocabularyOptions, new PageInfo(), this.selectedItems, null); + } } diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index e12233eb5b..0bc2435554 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -782,6 +782,8 @@ "browse.comcol.by.srsc": "By Subject Category", + "browse.comcol.by.nsi": "By Norwegian Science Index", + "browse.comcol.by.title": "By Title", "browse.comcol.head": "Browse", @@ -804,6 +806,8 @@ "browse.metadata.srsc.breadcrumbs": "Browse by Subject Category", + "browse.metadata.nsi.breadcrumbs": "Browse by Norwegian Science Index", + "browse.metadata.title.breadcrumbs": "Browse by Title", "pagination.next.button": "Next", @@ -2826,6 +2830,8 @@ "menu.section.browse_global_by_srsc": "By Subject Category", + "menu.section.browse_global_by_nsi": "By Norwegian Science Index", + "menu.section.browse_global_by_title": "By Title", "menu.section.browse_global_communities_and_collections": "Communities & Collections", -- GitLab From c2790584bdcc7a4ea277cc8562d8e41d62f5c627 Mon Sep 17 00:00:00 2001 From: Kristof De Langhe <kristof.delanghe@atmire.com> Date: Wed, 12 Jul 2023 15:11:38 +0200 Subject: [PATCH 071/183] 104189: Allow CSV export on related entity search (cherry picked from commit cac1407f08290adbc1a827fb1769011d3ecba803) --- .../related-entities-search.component.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/app/item-page/simple/related-entities/related-entities-search/related-entities-search.component.html b/src/app/item-page/simple/related-entities/related-entities-search/related-entities-search.component.html index 2a08efeb2c..36340bebfa 100644 --- a/src/app/item-page/simple/related-entities/related-entities-search/related-entities-search.component.html +++ b/src/app/item-page/simple/related-entities/related-entities-search/related-entities-search.component.html @@ -2,5 +2,6 @@ [fixedFilterQuery]="fixedFilter" [configuration]="configuration" [searchEnabled]="searchEnabled" - [sideBarWidth]="sideBarWidth"> + [sideBarWidth]="sideBarWidth" + [showCsvExport]="true"> </ds-configuration-search-page> -- GitLab From 4918ff212c2e9cb782286185adbe1a92b3ecafb9 Mon Sep 17 00:00:00 2001 From: Kristof De Langhe <kristof.delanghe@atmire.com> Date: Wed, 12 Jul 2023 16:32:56 +0200 Subject: [PATCH 072/183] 104189: CSV export add fixedFilter (cherry picked from commit 45ad5f73168ccdf3d4f7ab617d44a0e28c94545a) --- .../search-export-csv.component.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/app/shared/search/search-export-csv/search-export-csv.component.ts b/src/app/shared/search/search-export-csv/search-export-csv.component.ts index 6ad105342f..1997a663a1 100644 --- a/src/app/shared/search/search-export-csv/search-export-csv.component.ts +++ b/src/app/shared/search/search-export-csv/search-export-csv.component.ts @@ -94,6 +94,19 @@ export class SearchExportCsvComponent implements OnInit { } }); } + if (isNotEmpty(this.searchConfig.fixedFilter)) { + const fixedFilter = this.searchConfig.fixedFilter.substring(2); + const keyAndValue = fixedFilter.split('='); + if (keyAndValue.length > 1) { + const key = keyAndValue[0]; + const valueAndOperator = keyAndValue[1].split(','); + if (valueAndOperator.length > 1) { + const value = valueAndOperator[0]; + const operator = valueAndOperator[1]; + parameters.push({name: '-f', value: `${key},${operator}=${value}`}); + } + } + } } this.scriptDataService.invoke('metadata-export-search', parameters, []).pipe( -- GitLab From 1622b25aacdd4f140331ab839ad41bf5f1470ad7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Carvalho?= <jnsc@ua.pt> Date: Wed, 30 Aug 2023 15:52:34 +0100 Subject: [PATCH 073/183] Minor pt-PT translation fixes (cherry picked from commit a6c1120700398fb0cf99ffd6e1a7ff52e5858a40) --- src/assets/i18n/pt-PT.json5 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/assets/i18n/pt-PT.json5 b/src/assets/i18n/pt-PT.json5 index 5aa4817e88..faa027705e 100644 --- a/src/assets/i18n/pt-PT.json5 +++ b/src/assets/i18n/pt-PT.json5 @@ -2259,7 +2259,7 @@ "confirmation-modal.delete-eperson.header": "Apagar Utilizador \"{{ dsoName }}\"", // "confirmation-modal.delete-eperson.info": "Are you sure you want to delete EPerson \"{{ dsoName }}\"", - "confirmation-modal.delete-eperson.info": "Pretende apagar o utilizar \"{{ dsoName }}\"", + "confirmation-modal.delete-eperson.info": "Pretende apagar o utilizador \"{{ dsoName }}\"", // "confirmation-modal.delete-eperson.cancel": "Cancel", "confirmation-modal.delete-eperson.cancel": "Cancelar", @@ -2666,7 +2666,7 @@ "health-page.property.status": "Código Estado", // "health-page.section.db.title": "Database", - "health-page.section.db.title": "Base Dados", + "health-page.section.db.title": "Base de Dados", // "health-page.section.geoIp.title": "GeoIp", "health-page.section.geoIp.title": "GeoIp", -- GitLab From 3a465ac45252d7bf2154b9eb67b4e8903d550b5c Mon Sep 17 00:00:00 2001 From: Sascha Szott <szott@gmx.de> Date: Wed, 2 Aug 2023 18:00:03 +0200 Subject: [PATCH 074/183] remove redundant cache default values from server.ts (cherry picked from commit e53abcb69ea3d26461c24bd67894b7de1104a8cb) --- server.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/server.ts b/server.ts index 23327c2058..4feda5209a 100644 --- a/server.ts +++ b/server.ts @@ -320,22 +320,23 @@ function initCache() { if (botCacheEnabled()) { // Initialize a new "least-recently-used" item cache (where least recently used pages are removed first) // See https://www.npmjs.com/package/lru-cache - // When enabled, each page defaults to expiring after 1 day + // When enabled, each page defaults to expiring after 1 day (defined in default-app-config.ts) botCache = new LRU( { max: environment.cache.serverSide.botCache.max, - ttl: environment.cache.serverSide.botCache.timeToLive || 24 * 60 * 60 * 1000, // 1 day - allowStale: environment.cache.serverSide.botCache.allowStale ?? true // if object is stale, return stale value before deleting + ttl: environment.cache.serverSide.botCache.timeToLive, + allowStale: environment.cache.serverSide.botCache.allowStale }); } if (anonymousCacheEnabled()) { // NOTE: While caches may share SSR pages, this cache must be kept separately because the timeToLive // may expire pages more frequently. - // When enabled, each page defaults to expiring after 10 seconds (to minimize anonymous users seeing out-of-date content) + // When enabled, each page defaults to expiring after 10 seconds (defined in default-app-config.ts) + // to minimize anonymous users seeing out-of-date content anonymousCache = new LRU( { max: environment.cache.serverSide.anonymousCache.max, - ttl: environment.cache.serverSide.anonymousCache.timeToLive || 10 * 1000, // 10 seconds - allowStale: environment.cache.serverSide.anonymousCache.allowStale ?? true // if object is stale, return stale value before deleting + ttl: environment.cache.serverSide.anonymousCache.timeToLive, + allowStale: environment.cache.serverSide.anonymousCache.allowStale }); } } -- GitLab From b7b3db5ba8b80cb7559843e5602d60a6de7a48a0 Mon Sep 17 00:00:00 2001 From: Hugo Dominguez <hugo@escire.lat> Date: Fri, 4 Aug 2023 12:44:13 -0600 Subject: [PATCH 075/183] =?UTF-8?q?=F0=9F=9A=B8remove=20thumbnail=20from?= =?UTF-8?q?=20file-upload=20section=20and=20show=20bitstream=20format=20an?= =?UTF-8?q?d=20checksum?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 4c8ec8a4f22fcc4930b898581de098e317e08b5d) --- ...workspaceitem-section-upload-file.model.ts | 16 ++++++++++++-- .../file/section-upload-file.component.html | 15 +++++++------ .../section-upload-file-view.component.html | 12 +++++++++-- .../section-upload-file-view.component.ts | 21 ++++++++++++++----- 4 files changed, 47 insertions(+), 17 deletions(-) diff --git a/src/app/core/submission/models/workspaceitem-section-upload-file.model.ts b/src/app/core/submission/models/workspaceitem-section-upload-file.model.ts index 177473b7d5..59a8faf634 100644 --- a/src/app/core/submission/models/workspaceitem-section-upload-file.model.ts +++ b/src/app/core/submission/models/workspaceitem-section-upload-file.model.ts @@ -1,5 +1,5 @@ -import { SubmissionUploadFileAccessConditionObject } from './submission-upload-file-access-condition.model'; -import { WorkspaceitemSectionFormObject } from './workspaceitem-section-form.model'; +import {SubmissionUploadFileAccessConditionObject} from './submission-upload-file-access-condition.model'; +import {WorkspaceitemSectionFormObject} from './workspaceitem-section-form.model'; /** * An interface to represent submission's upload section file entry. @@ -29,6 +29,18 @@ export class WorkspaceitemSectionUploadFileObject { value: string; }; + /** + * The file check sum + */ + format: { + shortDescription: string, + description: string, + mimetype: string, + supportLevel: string, + internal: boolean, + type: string + }; + /** * The file url */ diff --git a/src/app/submission/sections/upload/file/section-upload-file.component.html b/src/app/submission/sections/upload/file/section-upload-file.component.html index 8999853d72..cd0ee512fd 100644 --- a/src/app/submission/sections/upload/file/section-upload-file.component.html +++ b/src/app/submission/sections/upload/file/section-upload-file.component.html @@ -1,16 +1,13 @@ <ng-container *ngIf="fileData"> <div class="row"> - <div class="col-md-2"> - <!--ds-themed-thumbnail [thumbnail]="bitstreamsList[bitstreamKey].url | async"></ds-themed-thumbnail--> - <ds-themed-thumbnail [thumbnail]="fileData?.thumbnail"></ds-themed-thumbnail> - </div> - <div class="col-md-10"> + <div class="col-md-12"> <div class="float-left w-75"> <h3>{{fileName}} <span class="text-muted">({{fileData?.sizeBytes | dsFileSize}})</span></h3> </div> <div class="float-right w-15"> <ng-container> - <ds-themed-file-download-link [cssClasses]="'btn btn-link-focus'" [isBlank]="true" [bitstream]="getBitstream()" [enableRequestACopy]="false"> + <ds-themed-file-download-link [cssClasses]="'btn btn-link-focus'" [isBlank]="true" + [bitstream]="getBitstream()" [enableRequestACopy]="false"> <i class="fa fa-download fa-2x text-normal" aria-hidden="true"></i> </ds-themed-file-download-link> <button class="btn btn-link-focus" @@ -46,7 +43,9 @@ <p>{{ 'submission.sections.upload.delete.confirm.info' | translate }}</p> </div> <div class="modal-footer"> - <button type="button" class="btn btn-secondary" (click)="c('cancel')">{{ 'submission.sections.upload.delete.confirm.cancel' | translate }}</button> - <button type="button" class="btn btn-danger" (click)="c('ok')">{{ 'submission.sections.upload.delete.confirm.submit' | translate }}</button> + <button type="button" class="btn btn-secondary" + (click)="c('cancel')">{{ 'submission.sections.upload.delete.confirm.cancel' | translate }}</button> + <button type="button" class="btn btn-danger" + (click)="c('ok')">{{ 'submission.sections.upload.delete.confirm.submit' | translate }}</button> </div> </ng-template> diff --git a/src/app/submission/sections/upload/file/view/section-upload-file-view.component.html b/src/app/submission/sections/upload/file/view/section-upload-file-view.component.html index b84ef6f6a8..cc12b5dea6 100644 --- a/src/app/submission/sections/upload/file/view/section-upload-file-view.component.html +++ b/src/app/submission/sections/upload/file/view/section-upload-file-view.component.html @@ -15,15 +15,23 @@ </ng-container> <ng-container *ngFor="let entry of getAllMetadataValue(fileDescrKey)"> <ng-container *ngIf="entry.value !== ''"> - {{entry.value | dsTruncate:['150']}} + {{entry.value | dsTruncate:['150']}} </ng-container> <ng-container *ngIf="entry.value === ''"> - <span *ngIf="metadata[fileDescrKey].indexOf(entry) === 0" class="text-muted">{{'submission.sections.upload.no-entry' | translate}} {{fileDescrKey}}</span> + <span *ngIf="metadata[fileDescrKey].indexOf(entry) === 0" + class="text-muted">{{'submission.sections.upload.no-entry' | translate}} {{fileDescrKey}}</span> </ng-container> <span class="clearfix"></span> </ng-container> </ng-container> + + <div class="mt-1" *ngIf="fileFormat"> + {{'admin.registries.bitstream-formats.edit.head' | translate:{format: fileFormat} }} + </div> + <div class="mt-1" *ngIf="fileCheckSum"> + Checksum {{fileCheckSum.checkSumAlgorithm}}: {{fileCheckSum.value}} + </div> <span class="clearfix"></span> <ds-submission-section-upload-access-conditions [accessConditions]="fileData.accessConditions"></ds-submission-section-upload-access-conditions> </div> diff --git a/src/app/submission/sections/upload/file/view/section-upload-file-view.component.ts b/src/app/submission/sections/upload/file/view/section-upload-file-view.component.ts index bb2fea20f8..b0ea2487e1 100644 --- a/src/app/submission/sections/upload/file/view/section-upload-file-view.component.ts +++ b/src/app/submission/sections/upload/file/view/section-upload-file-view.component.ts @@ -1,9 +1,11 @@ -import { Component, Input, OnInit } from '@angular/core'; +import {Component, Input, OnInit} from '@angular/core'; -import { WorkspaceitemSectionUploadFileObject } from '../../../../../core/submission/models/workspaceitem-section-upload-file.model'; -import { isNotEmpty } from '../../../../../shared/empty.util'; -import { Metadata } from '../../../../../core/shared/metadata.utils'; -import { MetadataMap, MetadataValue } from '../../../../../core/shared/metadata.models'; +import { + WorkspaceitemSectionUploadFileObject +} from '../../../../../core/submission/models/workspaceitem-section-upload-file.model'; +import {isNotEmpty} from '../../../../../shared/empty.util'; +import {Metadata} from '../../../../../core/shared/metadata.utils'; +import {MetadataMap, MetadataValue} from '../../../../../core/shared/metadata.models'; /** * This component allow to show bitstream's metadata @@ -38,6 +40,13 @@ export class SubmissionSectionUploadFileViewComponent implements OnInit { */ public fileDescrKey = 'Description'; + public fileFormat!: string; + + public fileCheckSum!: { + checkSumAlgorithm: string; + value: string; + }; + /** * Initialize instance variables */ @@ -46,6 +55,8 @@ export class SubmissionSectionUploadFileViewComponent implements OnInit { this.metadata[this.fileTitleKey] = Metadata.all(this.fileData.metadata, 'dc.title'); this.metadata[this.fileDescrKey] = Metadata.all(this.fileData.metadata, 'dc.description'); } + this.fileCheckSum = this.fileData.checkSum; + this.fileFormat = this.fileData.format.shortDescription; } /** -- GitLab From 5daf993451d8d75c3fe2260f70d2171184a0f1c9 Mon Sep 17 00:00:00 2001 From: Hugo Dominguez <hugo@escire.lat> Date: Fri, 8 Sep 2023 11:51:42 -0600 Subject: [PATCH 076/183] =?UTF-8?q?=F0=9F=8E=A8revert=20unnecessary=20form?= =?UTF-8?q?at?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 13e4052c4da07014a1c01087bfc6d293a8bb71c5) --- .../workspaceitem-section-upload-file.model.ts | 4 ++-- .../file/view/section-upload-file-view.component.ts | 12 +++++------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/app/core/submission/models/workspaceitem-section-upload-file.model.ts b/src/app/core/submission/models/workspaceitem-section-upload-file.model.ts index 59a8faf634..785d7c402f 100644 --- a/src/app/core/submission/models/workspaceitem-section-upload-file.model.ts +++ b/src/app/core/submission/models/workspaceitem-section-upload-file.model.ts @@ -1,5 +1,5 @@ -import {SubmissionUploadFileAccessConditionObject} from './submission-upload-file-access-condition.model'; -import {WorkspaceitemSectionFormObject} from './workspaceitem-section-form.model'; +import { SubmissionUploadFileAccessConditionObject } from './submission-upload-file-access-condition.model'; +import { WorkspaceitemSectionFormObject } from './workspaceitem-section-form.model'; /** * An interface to represent submission's upload section file entry. diff --git a/src/app/submission/sections/upload/file/view/section-upload-file-view.component.ts b/src/app/submission/sections/upload/file/view/section-upload-file-view.component.ts index b0ea2487e1..b15b0ab321 100644 --- a/src/app/submission/sections/upload/file/view/section-upload-file-view.component.ts +++ b/src/app/submission/sections/upload/file/view/section-upload-file-view.component.ts @@ -1,11 +1,9 @@ -import {Component, Input, OnInit} from '@angular/core'; +import { Component, Input, OnInit } from '@angular/core'; -import { - WorkspaceitemSectionUploadFileObject -} from '../../../../../core/submission/models/workspaceitem-section-upload-file.model'; -import {isNotEmpty} from '../../../../../shared/empty.util'; -import {Metadata} from '../../../../../core/shared/metadata.utils'; -import {MetadataMap, MetadataValue} from '../../../../../core/shared/metadata.models'; +import { WorkspaceitemSectionUploadFileObject } from '../../../../../core/submission/models/workspaceitem-section-upload-file.model'; +import { isNotEmpty } from '../../../../../shared/empty.util'; +import { Metadata } from '../../../../../core/shared/metadata.utils'; +import { MetadataMap, MetadataValue } from '../../../../../core/shared/metadata.models'; /** * This component allow to show bitstream's metadata -- GitLab From 22538f30dc5d615675fc1eb444c803fef80bbb5f Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Fri, 8 Sep 2023 14:28:23 -0500 Subject: [PATCH 077/183] Update workspaceitem-section-upload-file.model.ts Fix code comment (cherry picked from commit 01c8a4d9c3347cb5b30d4d912a3f7e18b81f989a) --- .../models/workspaceitem-section-upload-file.model.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/core/submission/models/workspaceitem-section-upload-file.model.ts b/src/app/core/submission/models/workspaceitem-section-upload-file.model.ts index 785d7c402f..725e646d76 100644 --- a/src/app/core/submission/models/workspaceitem-section-upload-file.model.ts +++ b/src/app/core/submission/models/workspaceitem-section-upload-file.model.ts @@ -30,7 +30,7 @@ export class WorkspaceitemSectionUploadFileObject { }; /** - * The file check sum + * The file format information */ format: { shortDescription: string, -- GitLab From 8d295419c7f9b0f30194d4302c739d4e0b5d2658 Mon Sep 17 00:00:00 2001 From: Hugo Dominguez <hugo@escire.lat> Date: Sat, 19 Aug 2023 14:40:28 -0600 Subject: [PATCH 078/183] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20refactor=20chain?= =?UTF-8?q?=20of=20observables=20to=20avoid=20async=20issues?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 2dc9fd44d7e151f7e96bff16665edf0a09226249) --- .../metadata-schema-form.component.ts | 179 ++++++++++-------- 1 file changed, 100 insertions(+), 79 deletions(-) diff --git a/src/app/admin/admin-registries/metadata-registry/metadata-schema-form/metadata-schema-form.component.ts b/src/app/admin/admin-registries/metadata-registry/metadata-schema-form/metadata-schema-form.component.ts index 1992289ff7..f5fcdef78d 100644 --- a/src/app/admin/admin-registries/metadata-registry/metadata-schema-form/metadata-schema-form.component.ts +++ b/src/app/admin/admin-registries/metadata-registry/metadata-schema-form/metadata-schema-form.component.ts @@ -1,4 +1,10 @@ -import { Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core'; +import { + Component, + EventEmitter, + OnDestroy, + OnInit, + Output, +} from '@angular/core'; import { DynamicFormControlModel, DynamicFormGroupModel, @@ -8,20 +14,19 @@ import { import { UntypedFormGroup } from '@angular/forms'; import { RegistryService } from '../../../../core/registry/registry.service'; import { FormBuilderService } from '../../../../shared/form/builder/form-builder.service'; -import { take } from 'rxjs/operators'; +import { switchMap, take } from 'rxjs/operators'; import { TranslateService } from '@ngx-translate/core'; -import { combineLatest } from 'rxjs'; +import { Observable, combineLatest } from 'rxjs'; import { MetadataSchema } from '../../../../core/metadata/metadata-schema.model'; @Component({ selector: 'ds-metadata-schema-form', - templateUrl: './metadata-schema-form.component.html' + templateUrl: './metadata-schema-form.component.html', }) /** * A form used for creating and editing metadata schemas */ export class MetadataSchemaFormComponent implements OnInit, OnDestroy { - /** * A unique id used for ds-form */ @@ -53,14 +58,14 @@ export class MetadataSchemaFormComponent implements OnInit, OnDestroy { formLayout: DynamicFormLayout = { name: { grid: { - host: 'col col-sm-6 d-inline-block' - } + host: 'col col-sm-6 d-inline-block', + }, }, namespace: { grid: { - host: 'col col-sm-6 d-inline-block' - } - } + host: 'col col-sm-6 d-inline-block', + }, + }, }; /** @@ -73,63 +78,67 @@ export class MetadataSchemaFormComponent implements OnInit, OnDestroy { */ @Output() submitForm: EventEmitter<any> = new EventEmitter(); - constructor(public registryService: RegistryService, private formBuilderService: FormBuilderService, private translateService: TranslateService) { - } + constructor( + public registryService: RegistryService, + private formBuilderService: FormBuilderService, + private translateService: TranslateService + ) {} ngOnInit() { combineLatest([ this.translateService.get(`${this.messagePrefix}.name`), - this.translateService.get(`${this.messagePrefix}.namespace`) + this.translateService.get(`${this.messagePrefix}.namespace`), ]).subscribe(([name, namespace]) => { this.name = new DynamicInputModel({ - id: 'name', - label: name, - name: 'name', - validators: { - required: null, - pattern: '^[^. ,]*$', - maxLength: 32, - }, - required: true, - errorMessages: { - pattern: 'error.validation.metadata.name.invalid-pattern', - maxLength: 'error.validation.metadata.name.max-length', - }, - }); + id: 'name', + label: name, + name: 'name', + validators: { + required: null, + pattern: '^[^. ,]*$', + maxLength: 32, + }, + required: true, + errorMessages: { + pattern: 'error.validation.metadata.name.invalid-pattern', + maxLength: 'error.validation.metadata.name.max-length', + }, + }); this.namespace = new DynamicInputModel({ - id: 'namespace', - label: namespace, - name: 'namespace', - validators: { - required: null, - maxLength: 256, - }, - required: true, - errorMessages: { - maxLength: 'error.validation.metadata.namespace.max-length', - }, - }); + id: 'namespace', + label: namespace, + name: 'namespace', + validators: { + required: null, + maxLength: 256, + }, + required: true, + errorMessages: { + maxLength: 'error.validation.metadata.namespace.max-length', + }, + }); this.formModel = [ - new DynamicFormGroupModel( - { - id: 'metadatadataschemagroup', - group:[this.namespace, this.name] - }) + new DynamicFormGroupModel({ + id: 'metadatadataschemagroup', + group: [this.namespace, this.name], + }), ]; this.formGroup = this.formBuilderService.createFormGroup(this.formModel); - this.registryService.getActiveMetadataSchema().subscribe((schema: MetadataSchema) => { - if (schema == null) { - this.clearFields(); - } else { - this.formGroup.patchValue({ - metadatadataschemagroup: { - name: schema.prefix, - namespace: schema.namespace, - }, - }); - this.name.disabled = true; - } - }); + this.registryService + .getActiveMetadataSchema() + .subscribe((schema: MetadataSchema) => { + if (schema == null) { + this.clearFields(); + } else { + this.formGroup.patchValue({ + metadatadataschemagroup: { + name: schema.prefix, + namespace: schema.namespace, + }, + }); + this.name.disabled = true; + } + }); }); } @@ -147,30 +156,42 @@ export class MetadataSchemaFormComponent implements OnInit, OnDestroy { * Emit the updated/created schema using the EventEmitter submitForm */ onSubmit(): void { - this.registryService.clearMetadataSchemaRequests().subscribe(); - this.registryService.getActiveMetadataSchema().pipe(take(1)).subscribe( - (schema: MetadataSchema) => { - const values = { - prefix: this.name.value, - namespace: this.namespace.value - }; - if (schema == null) { - this.registryService.createOrUpdateMetadataSchema(Object.assign(new MetadataSchema(), values)).subscribe((newSchema) => { - this.submitForm.emit(newSchema); - }); - } else { - this.registryService.createOrUpdateMetadataSchema(Object.assign(new MetadataSchema(), schema, { - id: schema.id, - prefix: schema.prefix, - namespace: values.namespace, - })).subscribe((updatedSchema: MetadataSchema) => { - this.submitForm.emit(updatedSchema); - }); - } + const clearMetadataSchemaRequests$ = + this.registryService.clearMetadataSchemaRequests(); + + clearMetadataSchemaRequests$ + .pipe( + switchMap(() => + this.registryService.getActiveMetadataSchema().pipe(take(1)) + ), + switchMap((schema: MetadataSchema) => { + const metadataValues = { + prefix: this.name.value, + namespace: this.namespace.value, + }; + + let createOrUpdate$: Observable<MetadataSchema>; + + if (schema == null) { + createOrUpdate$ = this.registryService.createOrUpdateMetadataSchema( + Object.assign(new MetadataSchema(), metadataValues) + ); + } else { + const updatedSchema = Object.assign(new MetadataSchema(), schema, { + namespace: metadataValues.namespace, + }); + createOrUpdate$ = + this.registryService.createOrUpdateMetadataSchema(updatedSchema); + } + + return createOrUpdate$; + }) + ) + .subscribe((updatedOrCreatedSchema: MetadataSchema) => { + this.submitForm.emit(updatedOrCreatedSchema); this.clearFields(); this.registryService.cancelEditMetadataSchema(); - } - ); + }); } /** -- GitLab From e3ea2cb2b001ccf08c28b1dd863bfaa0b82da146 Mon Sep 17 00:00:00 2001 From: Hugo Dominguez <hugo@escire.lat> Date: Sat, 19 Aug 2023 15:59:33 -0600 Subject: [PATCH 079/183] =?UTF-8?q?=F0=9F=90=9B=20fix=20bug=20of=20caching?= =?UTF-8?q?=20when=20add=20new=20schema?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 9fb9e5848c70274b7917bead52643e3611308174) --- .../metadata-schema-form.component.ts | 80 ++++++++++--------- 1 file changed, 43 insertions(+), 37 deletions(-) diff --git a/src/app/admin/admin-registries/metadata-registry/metadata-schema-form/metadata-schema-form.component.ts b/src/app/admin/admin-registries/metadata-registry/metadata-schema-form/metadata-schema-form.component.ts index f5fcdef78d..61766a4a10 100644 --- a/src/app/admin/admin-registries/metadata-registry/metadata-schema-form/metadata-schema-form.component.ts +++ b/src/app/admin/admin-registries/metadata-registry/metadata-schema-form/metadata-schema-form.component.ts @@ -14,7 +14,7 @@ import { import { UntypedFormGroup } from '@angular/forms'; import { RegistryService } from '../../../../core/registry/registry.service'; import { FormBuilderService } from '../../../../shared/form/builder/form-builder.service'; -import { switchMap, take } from 'rxjs/operators'; +import { switchMap, take, tap } from 'rxjs/operators'; import { TranslateService } from '@ngx-translate/core'; import { Observable, combineLatest } from 'rxjs'; import { MetadataSchema } from '../../../../core/metadata/metadata-schema.model'; @@ -156,42 +156,48 @@ export class MetadataSchemaFormComponent implements OnInit, OnDestroy { * Emit the updated/created schema using the EventEmitter submitForm */ onSubmit(): void { - const clearMetadataSchemaRequests$ = - this.registryService.clearMetadataSchemaRequests(); - - clearMetadataSchemaRequests$ - .pipe( - switchMap(() => - this.registryService.getActiveMetadataSchema().pipe(take(1)) - ), - switchMap((schema: MetadataSchema) => { - const metadataValues = { - prefix: this.name.value, - namespace: this.namespace.value, - }; - - let createOrUpdate$: Observable<MetadataSchema>; - - if (schema == null) { - createOrUpdate$ = this.registryService.createOrUpdateMetadataSchema( - Object.assign(new MetadataSchema(), metadataValues) - ); - } else { - const updatedSchema = Object.assign(new MetadataSchema(), schema, { - namespace: metadataValues.namespace, - }); - createOrUpdate$ = - this.registryService.createOrUpdateMetadataSchema(updatedSchema); - } - - return createOrUpdate$; - }) - ) - .subscribe((updatedOrCreatedSchema: MetadataSchema) => { - this.submitForm.emit(updatedOrCreatedSchema); - this.clearFields(); - this.registryService.cancelEditMetadataSchema(); - }); + this.registryService + .getActiveMetadataSchema() + .pipe( + take(1), + switchMap((schema: MetadataSchema) => { + const metadataValues = { + prefix: this.name.value, + namespace: this.namespace.value, + }; + + let createOrUpdate$: Observable<MetadataSchema>; + + if (schema == null) { + createOrUpdate$ = + this.registryService.createOrUpdateMetadataSchema( + Object.assign(new MetadataSchema(), metadataValues) + ); + } else { + const updatedSchema = Object.assign( + new MetadataSchema(), + schema, + { + namespace: metadataValues.namespace, + } + ); + createOrUpdate$ = + this.registryService.createOrUpdateMetadataSchema( + updatedSchema + ); + } + + return createOrUpdate$; + }), + tap(() => { + this.registryService.clearMetadataSchemaRequests().subscribe(); + }) + ) + .subscribe((updatedOrCreatedSchema: MetadataSchema) => { + this.submitForm.emit(updatedOrCreatedSchema); + this.clearFields(); + this.registryService.cancelEditMetadataSchema(); + }); } /** -- GitLab From 161d7e069bcc074163ca5ab53c2e343742f3c719 Mon Sep 17 00:00:00 2001 From: Hugo Dominguez <hugo@escire.lat> Date: Fri, 8 Sep 2023 11:31:26 -0600 Subject: [PATCH 080/183] =?UTF-8?q?=F0=9F=8E=A8=20revert=20format?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 3e5524de69fa09808e3a7d0ab4042e5e3ffc98e0) --- .../metadata-schema-form.component.ts | 119 ++++++++---------- 1 file changed, 55 insertions(+), 64 deletions(-) diff --git a/src/app/admin/admin-registries/metadata-registry/metadata-schema-form/metadata-schema-form.component.ts b/src/app/admin/admin-registries/metadata-registry/metadata-schema-form/metadata-schema-form.component.ts index 61766a4a10..24bf430661 100644 --- a/src/app/admin/admin-registries/metadata-registry/metadata-schema-form/metadata-schema-form.component.ts +++ b/src/app/admin/admin-registries/metadata-registry/metadata-schema-form/metadata-schema-form.component.ts @@ -1,10 +1,4 @@ -import { - Component, - EventEmitter, - OnDestroy, - OnInit, - Output, -} from '@angular/core'; +import { Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core'; import { DynamicFormControlModel, DynamicFormGroupModel, @@ -21,12 +15,13 @@ import { MetadataSchema } from '../../../../core/metadata/metadata-schema.model' @Component({ selector: 'ds-metadata-schema-form', - templateUrl: './metadata-schema-form.component.html', + templateUrl: './metadata-schema-form.component.html' }) /** * A form used for creating and editing metadata schemas */ export class MetadataSchemaFormComponent implements OnInit, OnDestroy { + /** * A unique id used for ds-form */ @@ -58,14 +53,14 @@ export class MetadataSchemaFormComponent implements OnInit, OnDestroy { formLayout: DynamicFormLayout = { name: { grid: { - host: 'col col-sm-6 d-inline-block', - }, + host: 'col col-sm-6 d-inline-block' + } }, namespace: { grid: { - host: 'col col-sm-6 d-inline-block', - }, - }, + host: 'col col-sm-6 d-inline-block' + } + } }; /** @@ -78,67 +73,63 @@ export class MetadataSchemaFormComponent implements OnInit, OnDestroy { */ @Output() submitForm: EventEmitter<any> = new EventEmitter(); - constructor( - public registryService: RegistryService, - private formBuilderService: FormBuilderService, - private translateService: TranslateService - ) {} + constructor(public registryService: RegistryService, private formBuilderService: FormBuilderService, private translateService: TranslateService) { + } ngOnInit() { combineLatest([ this.translateService.get(`${this.messagePrefix}.name`), - this.translateService.get(`${this.messagePrefix}.namespace`), + this.translateService.get(`${this.messagePrefix}.namespace`) ]).subscribe(([name, namespace]) => { this.name = new DynamicInputModel({ - id: 'name', - label: name, - name: 'name', - validators: { - required: null, - pattern: '^[^. ,]*$', - maxLength: 32, - }, - required: true, - errorMessages: { - pattern: 'error.validation.metadata.name.invalid-pattern', - maxLength: 'error.validation.metadata.name.max-length', - }, - }); + id: 'name', + label: name, + name: 'name', + validators: { + required: null, + pattern: '^[^. ,]*$', + maxLength: 32, + }, + required: true, + errorMessages: { + pattern: 'error.validation.metadata.name.invalid-pattern', + maxLength: 'error.validation.metadata.name.max-length', + }, + }); this.namespace = new DynamicInputModel({ - id: 'namespace', - label: namespace, - name: 'namespace', - validators: { - required: null, - maxLength: 256, - }, - required: true, - errorMessages: { - maxLength: 'error.validation.metadata.namespace.max-length', - }, - }); + id: 'namespace', + label: namespace, + name: 'namespace', + validators: { + required: null, + maxLength: 256, + }, + required: true, + errorMessages: { + maxLength: 'error.validation.metadata.namespace.max-length', + }, + }); this.formModel = [ - new DynamicFormGroupModel({ - id: 'metadatadataschemagroup', - group: [this.namespace, this.name], - }), + new DynamicFormGroupModel( + { + id: 'metadatadataschemagroup', + group:[this.namespace, this.name] + }) ]; this.formGroup = this.formBuilderService.createFormGroup(this.formModel); - this.registryService - .getActiveMetadataSchema() - .subscribe((schema: MetadataSchema) => { - if (schema == null) { - this.clearFields(); - } else { - this.formGroup.patchValue({ - metadatadataschemagroup: { - name: schema.prefix, - namespace: schema.namespace, - }, - }); - this.name.disabled = true; - } - }); + this.registryService.getActiveMetadataSchema().subscribe((schema: MetadataSchema) => { + if (schema == null) { + this.clearFields(); + } else { + this.formGroup.patchValue({ + metadatadataschemagroup: { + name: schema.prefix, + namespace: schema.namespace, + }, + }); + this.name.disabled = true; + } + }); }); } -- GitLab From 0905a53db5eca45220809831663ba8d6761e55c5 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Fri, 8 Sep 2023 22:35:27 +0200 Subject: [PATCH 081/183] Fix innerText still being undefined in ssr mode --- src/app/shared/log-in/log-in.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/shared/log-in/log-in.component.html b/src/app/shared/log-in/log-in.component.html index 05d8d4370f..857b977360 100644 --- a/src/app/shared/log-in/log-in.component.html +++ b/src/app/shared/log-in/log-in.component.html @@ -1,7 +1,7 @@ <ds-themed-loading *ngIf="(loading | async) || (isAuthenticated | async)" class="m-5"></ds-themed-loading> <div *ngIf="!(loading | async) && !(isAuthenticated | async)" class="px-4 py-3 mx-auto login-container"> <ng-container *ngFor="let authMethod of getOrderedAuthMethods(authMethods | async); let last = last"> - <div [class.d-none]="contentRef.innerText.trim().length === 0"> + <div [class.d-none]="contentRef.innerText?.trim().length === 0"> <div #contentRef> <ds-log-in-container [authMethod]="authMethod" [isStandalonePage]="isStandalonePage"></ds-log-in-container> </div> -- GitLab From b423b49cac0e33232782c580459946e0238adf41 Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Tue, 12 Sep 2023 13:57:26 -0500 Subject: [PATCH 082/183] Correct text of help info on edit group page (cherry picked from commit 49247430e50a708996bef1790c7cc2af2271113a) --- src/assets/i18n/en.json5 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index d12a45b8a8..ecbc43a660 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -508,9 +508,9 @@ "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.", + "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.", - "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.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 groups. Then click the plus icon for each group you wish to add in the list below, or the trash can icon for each group you wish to remove. The list below may have several pages: use the page controls below the list to navigate to the next pages.", "admin.search.breadcrumbs": "Administrative Search", -- GitLab From 15c2af5fbf64bdbf1c55aa1ad85ea222544cfa39 Mon Sep 17 00:00:00 2001 From: "Mark H. Wood" <mwood@iu.edu> Date: Tue, 22 Aug 2023 14:38:04 -0400 Subject: [PATCH 083/183] Graceful shutdown on SIGINT (e.g. from 'pm2 stop'). (cherry picked from commit 6709c3bb5ffe4f4c056debb1295ce499a6ea6932) --- package.json | 1 + server.ts | 23 +++++++++-- yarn.lock | 107 ++++++++++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 122 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 9aec4e0823..69fff84bb4 100644 --- a/package.json +++ b/package.json @@ -99,6 +99,7 @@ "fast-json-patch": "^3.1.1", "filesize": "^6.1.0", "http-proxy-middleware": "^1.0.5", + "http-terminator": "^3.2.0", "isbot": "^3.6.10", "js-cookie": "2.2.1", "js-yaml": "^4.1.0", diff --git a/server.ts b/server.ts index 4feda5209a..0fbec1beae 100644 --- a/server.ts +++ b/server.ts @@ -32,6 +32,7 @@ import isbot from 'isbot'; import { createCertificate } from 'pem'; import { createServer } from 'https'; import { json } from 'body-parser'; +import { createHttpTerminator } from 'http-terminator'; import { readFileSync } from 'fs'; import { join } from 'path'; @@ -488,7 +489,7 @@ function saveToCache(req, page: any) { */ function hasNotSucceeded(statusCode) { const rgx = new RegExp(/^20+/); - return !rgx.test(statusCode) + return !rgx.test(statusCode); } function retrieveHeaders(response) { @@ -526,12 +527,20 @@ function serverStarted() { * @param keys SSL credentials */ function createHttpsServer(keys) { - createServer({ + const listener = createServer({ key: keys.serviceKey, cert: keys.certificate }, app).listen(environment.ui.port, environment.ui.host, () => { serverStarted(); }); + + // Graceful shutdown when signalled + const terminator = createHttpTerminator({server: listener}); + process.on('SIGINT', ()=> { + console.debug('Closing HTTPS server on signal'); + terminator.terminate().catch(e => { console.error(e); }); + console.debug('HTTPS server closed'); + }); } function run() { @@ -540,9 +549,17 @@ function run() { // Start up the Node server const server = app(); - server.listen(port, host, () => { + const listener = server.listen(port, host, () => { serverStarted(); }); + + // Graceful shutdown when signalled + const terminator = createHttpTerminator({server: listener}); + process.on('SIGINT', ()=> { + console.debug('Closing HTTP server on signal'); + terminator.terminate().catch(e => { console.error(e); }); + console.debug('HTTP server closed.'); + }); } function start() { diff --git a/yarn.lock b/yarn.lock index 44625c4bd0..c5a82d9e75 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1761,6 +1761,11 @@ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.39.0.tgz#58b536bcc843f4cd1e02a7e6171da5c040f4d44b" integrity sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng== +"@fastify/deepmerge@^1.0.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@fastify/deepmerge/-/deepmerge-1.3.0.tgz#8116858108f0c7d9fd460d05a7d637a13fe3239a" + integrity sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A== + "@fortawesome/fontawesome-free@^6.4.0": version "6.4.0" resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.0.tgz#1ee0c174e472c84b23cb46c995154dc383e3b4fe" @@ -3066,9 +3071,9 @@ ajv-keywords@^5.0.0: dependencies: fast-deep-equal "^3.1.3" -ajv@8.12.0, ajv@^8.8.0: +ajv@8.12.0, ajv@^8.10.0, ajv@^8.8.0: version "8.12.0" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== dependencies: fast-deep-equal "^3.1.1" @@ -3543,6 +3548,11 @@ boolbase@^1.0.0: resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== +boolean@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.2.0.tgz#9e5294af4e98314494cbb17979fa54ca159f116b" + integrity sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw== + bootstrap@^4.6.1: version "4.6.2" resolved "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz" @@ -4647,6 +4657,11 @@ del@^2.2.0: pinkie-promise "^2.0.0" rimraf "^2.2.8" +delay@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" + integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" @@ -5585,6 +5600,18 @@ fast-json-stable-stringify@2.1.0, fast-json-stable-stringify@^2.0.0: resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== +fast-json-stringify@^5.8.0: + version "5.8.0" + resolved "https://registry.yarnpkg.com/fast-json-stringify/-/fast-json-stringify-5.8.0.tgz#b229ed01ac5f92f3b82001a916c31324652f46d7" + integrity sha512-VVwK8CFMSALIvt14U8AvrSzQAwN/0vaVRiFFUVlpnXSnDGrSkOAO5MtzyN8oQNjLd5AqTW5OZRgyjoNuAuR3jQ== + dependencies: + "@fastify/deepmerge" "^1.0.0" + ajv "^8.10.0" + ajv-formats "^2.1.1" + fast-deep-equal "^3.1.3" + fast-uri "^2.1.0" + rfdc "^1.2.0" + fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" @@ -5595,6 +5622,18 @@ fast-memoize@^2.5.1: resolved "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.5.2.tgz" integrity sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw== +fast-printf@^1.6.9: + version "1.6.9" + resolved "https://registry.yarnpkg.com/fast-printf/-/fast-printf-1.6.9.tgz#212f56570d2dc8ccdd057ee93d50dd414d07d676" + integrity sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg== + dependencies: + boolean "^3.1.4" + +fast-uri@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-2.2.0.tgz#519a0f849bef714aad10e9753d69d8f758f7445a" + integrity sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg== + fastest-levenshtein@^1.0.12: version "1.0.16" resolved "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz" @@ -6027,9 +6066,9 @@ globals@^13.19.0: dependencies: type-fest "^0.20.2" -globalthis@^1.0.3: +globalthis@^1.0.2, globalthis@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== dependencies: define-properties "^1.1.3" @@ -6378,6 +6417,16 @@ http-signature@~1.3.6: jsprim "^2.0.2" sshpk "^1.14.1" +http-terminator@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/http-terminator/-/http-terminator-3.2.0.tgz#bc158d2694b733ca4fbf22a35065a81a609fb3e9" + integrity sha512-JLjck1EzPaWjsmIf8bziM3p9fgR1Y3JoUKAkyYEbZmFrIvJM6I8vVJfBGWlEtV9IWOvzNnaTtjuwZeBY2kwB4g== + dependencies: + delay "^5.0.0" + p-wait-for "^3.2.0" + roarr "^7.0.4" + type-fest "^2.3.3" + https-proxy-agent@5.0.1, https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" @@ -8617,6 +8666,11 @@ ospath@^1.2.2: resolved "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz" integrity sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA== +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + p-limit@^2.2.0: version "2.3.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" @@ -8660,11 +8714,25 @@ p-retry@^4.5.0: "@types/retry" "0.12.0" retry "^0.13.1" +p-timeout@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + p-try@^2.0.0: version "2.2.0" resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +p-wait-for@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-wait-for/-/p-wait-for-3.2.0.tgz#640429bcabf3b0dd9f492c31539c5718cb6a3f1f" + integrity sha512-wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA== + dependencies: + p-timeout "^3.0.0" + pacote@15.1.0: version "15.1.0" resolved "https://registry.npmjs.org/pacote/-/pacote-15.1.0.tgz" @@ -9907,9 +9975,9 @@ reusify@^1.0.4: resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rfdc@^1.3.0: +rfdc@^1.2.0, rfdc@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.6.3: @@ -9926,6 +9994,18 @@ rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" +roarr@^7.0.4: + version "7.15.1" + resolved "https://registry.yarnpkg.com/roarr/-/roarr-7.15.1.tgz#e4d93105c37b5ea7dd1200d96a3500f757ddc39f" + integrity sha512-0ExL9rjOXeQPvQvQo8IcV8SR2GTXmDr1FQFlY2HiAV+gdVQjaVZNOx9d4FI2RqFFsd0sNsiw2TRS/8RU9g0ZfA== + dependencies: + boolean "^3.1.4" + fast-json-stringify "^5.8.0" + fast-printf "^1.6.9" + globalthis "^1.0.2" + safe-stable-stringify "^2.4.3" + semver-compare "^1.0.0" + rtl-css-js@^1.13.1: version "1.16.1" resolved "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.16.1.tgz" @@ -10008,6 +10088,11 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" +safe-stable-stringify@^2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" + integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== + "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" @@ -10127,6 +10212,11 @@ selfsigned@^2.1.1: dependencies: node-forge "^1" +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== + semver@7.3.8: version "7.3.8" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" @@ -11081,6 +11171,11 @@ type-fest@^0.21.3: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== +type-fest@^2.3.3: + version "2.19.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== + type-is@~1.6.18: version "1.6.18" resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" -- GitLab From 46e2f4e22cc469beb2408e6857a6d5711a4d6b2a Mon Sep 17 00:00:00 2001 From: "Mark H. Wood" <mwood@iu.edu> Date: Tue, 22 Aug 2023 15:46:55 -0400 Subject: [PATCH 084/183] Properly await termination. (cherry picked from commit 4449737aed9b96c13ba6a34e2ff72feb1aaebe92) --- server.ts | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/server.ts b/server.ts index 0fbec1beae..baa7321503 100644 --- a/server.ts +++ b/server.ts @@ -536,10 +536,12 @@ function createHttpsServer(keys) { // Graceful shutdown when signalled const terminator = createHttpTerminator({server: listener}); - process.on('SIGINT', ()=> { - console.debug('Closing HTTPS server on signal'); - terminator.terminate().catch(e => { console.error(e); }); - console.debug('HTTPS server closed'); + process.on('SIGINT', () => { + void (async ()=> { + console.debug('Closing HTTPS server on signal'); + await terminator.terminate().catch(e => { console.error(e); }); + console.debug('HTTPS server closed'); + })(); }); } @@ -555,10 +557,12 @@ function run() { // Graceful shutdown when signalled const terminator = createHttpTerminator({server: listener}); - process.on('SIGINT', ()=> { - console.debug('Closing HTTP server on signal'); - terminator.terminate().catch(e => { console.error(e); }); - console.debug('HTTP server closed.'); + process.on('SIGINT', () => { + void (async () => { + console.debug('Closing HTTP server on signal'); + await terminator.terminate().catch(e => { console.error(e); }); + console.debug('HTTP server closed.');return undefined; + })(); }); } -- GitLab From d6cabd1d01209655a1b6a1a8e468a4924b7243fb Mon Sep 17 00:00:00 2001 From: "Mark H. Wood" <mwood@iu.edu> Date: Tue, 22 Aug 2023 17:07:20 -0400 Subject: [PATCH 085/183] Document a modified method as required by PR guidelines. (cherry picked from commit bf9b2b82e1d1d6cd7a901b674d8df92af073794c) --- server.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/server.ts b/server.ts index baa7321503..da085f372f 100644 --- a/server.ts +++ b/server.ts @@ -545,6 +545,9 @@ function createHttpsServer(keys) { }); } +/** + * Create an HTTP server with the configured port and host. + */ function run() { const port = environment.ui.port || 4000; const host = environment.ui.host || '/'; -- GitLab From 3e8d180f1b92adc2c69a4f74d864d165150611ea Mon Sep 17 00:00:00 2001 From: Yana De Pauw <yana@atmire.com> Date: Mon, 18 Sep 2023 16:43:32 +0200 Subject: [PATCH 086/183] 106974: Angular SSR menu issues --- src/app/core/core.effects.ts | 2 ++ src/app/shared/menu/menu.actions.ts | 11 ++++++- src/app/shared/menu/menu.effects.spec.ts | 41 ++++++++++++++++++++++++ src/app/shared/menu/menu.effects.ts | 23 +++++++++++++ src/app/shared/menu/menu.reducer.spec.ts | 13 +++++++- src/app/shared/menu/menu.reducer.ts | 19 ++++++----- src/app/shared/menu/menu.service.spec.ts | 27 ++++++++++++++-- src/app/shared/menu/menu.service.ts | 3 +- 8 files changed, 126 insertions(+), 13 deletions(-) create mode 100644 src/app/shared/menu/menu.effects.spec.ts create mode 100644 src/app/shared/menu/menu.effects.ts diff --git a/src/app/core/core.effects.ts b/src/app/core/core.effects.ts index b569df290d..1724e88743 100644 --- a/src/app/core/core.effects.ts +++ b/src/app/core/core.effects.ts @@ -7,6 +7,7 @@ import { ServerSyncBufferEffects } from './cache/server-sync-buffer.effects'; import { ObjectUpdatesEffects } from './data/object-updates/object-updates.effects'; import { RouteEffects } from './services/route.effects'; import { RouterEffects } from './router/router.effects'; +import { MenuEffects } from '../shared/menu/menu.effects'; export const coreEffects = [ RequestEffects, @@ -18,4 +19,5 @@ export const coreEffects = [ ObjectUpdatesEffects, RouteEffects, RouterEffects, + MenuEffects, ]; diff --git a/src/app/shared/menu/menu.actions.ts b/src/app/shared/menu/menu.actions.ts index f02fd73292..268c149c5b 100644 --- a/src/app/shared/menu/menu.actions.ts +++ b/src/app/shared/menu/menu.actions.ts @@ -18,6 +18,7 @@ export const MenuActionTypes = { EXPAND_MENU: type('dspace/menu/EXPAND_MENU'), SHOW_MENU: type('dspace/menu/SHOW_MENU'), HIDE_MENU: type('dspace/menu/HIDE_MENU'), + REINIT_MENUS: type('dspace/menu/REINIT_MENUS'), COLLAPSE_MENU_PREVIEW: type('dspace/menu/COLLAPSE_MENU_PREVIEW'), EXPAND_MENU_PREVIEW: type('dspace/menu/EXPAND_MENU_PREVIEW'), ADD_SECTION: type('dspace/menu-section/ADD_SECTION'), @@ -115,6 +116,13 @@ export class ExpandMenuPreviewAction implements Action { } } +/** + * Action used to re-initialise the menus + */ +export class ReinitMenuAction implements Action { + type = MenuActionTypes.REINIT_MENUS; +} + // MENU SECTION ACTIONS /** * Action used to perform state changes for a section of a certain menu @@ -224,4 +232,5 @@ export type MenuAction = | DeactivateMenuSectionAction | ToggleActiveMenuSectionAction | CollapseMenuPreviewAction - | ExpandMenuPreviewAction; + | ExpandMenuPreviewAction + | ReinitMenuAction; diff --git a/src/app/shared/menu/menu.effects.spec.ts b/src/app/shared/menu/menu.effects.spec.ts new file mode 100644 index 0000000000..5da5328674 --- /dev/null +++ b/src/app/shared/menu/menu.effects.spec.ts @@ -0,0 +1,41 @@ +import { Observable } from 'rxjs'; +import { TestBed, waitForAsync } from '@angular/core/testing'; +import { provideMockActions } from '@ngrx/effects/testing'; +import { cold, hot } from 'jasmine-marbles'; +import { MenuEffects } from './menu.effects'; +import { ReinitMenuAction } from './menu.actions'; +import { StoreAction, StoreActionTypes } from '../../store.actions'; + +describe('MenuEffects', () => { + let menuEffects: MenuEffects; + let actions: Observable<any>; + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + providers: [ + MenuEffects, + provideMockActions(() => actions), + ], + }); + })); + + beforeEach(() => { + menuEffects = TestBed.inject(MenuEffects); + }); + + describe('reinitDSOMenus', () => { + describe('When a REHYDRATE action is triggered', () => { + let action; + beforeEach(() => { + action = new StoreAction(StoreActionTypes.REHYDRATE, null); + }); + it('should return a ReinitMenuAction', () => { + actions = hot('--a-', {a: action}); + const expected = cold('--b-', {b: new ReinitMenuAction}); + + expect(menuEffects.reinitDSOMenus).toBeObservable(expected); + }); + }); + }); + + +}); diff --git a/src/app/shared/menu/menu.effects.ts b/src/app/shared/menu/menu.effects.ts new file mode 100644 index 0000000000..2787f80b78 --- /dev/null +++ b/src/app/shared/menu/menu.effects.ts @@ -0,0 +1,23 @@ +import { map } from 'rxjs/operators'; +import { Injectable } from '@angular/core'; +import { Actions, createEffect, ofType } from '@ngrx/effects'; + +import { StoreActionTypes } from '../../store.actions'; +import { ReinitMenuAction } from './menu.actions'; + +@Injectable() +export class MenuEffects { + + /** + * When the store is rehydrated in the browser, re-initialise the menus to ensure + * the menus with functions are loaded correctly. + */ + reinitDSOMenus = createEffect(() => this.actions$ + .pipe(ofType(StoreActionTypes.REHYDRATE), + map(() => new ReinitMenuAction()) + )); + + constructor(private actions$: Actions) { + } + +} diff --git a/src/app/shared/menu/menu.reducer.spec.ts b/src/app/shared/menu/menu.reducer.spec.ts index 2865e887fc..8f540c016d 100644 --- a/src/app/shared/menu/menu.reducer.spec.ts +++ b/src/app/shared/menu/menu.reducer.spec.ts @@ -9,7 +9,7 @@ import { ExpandMenuAction, ExpandMenuPreviewAction, HideMenuAction, - HideMenuSectionAction, + HideMenuSectionAction, ReinitMenuAction, RemoveMenuSectionAction, ShowMenuAction, ShowMenuSectionAction, @@ -317,6 +317,17 @@ describe('menusReducer', () => { // is mutated, and any uncaught exception will cause the test to fail }); + it('should reset the menu state to the initial state when performing the REINIT_MENUS action without affecting the previous state', () => { + dummyState[MenuID.ADMIN].visible = true; + const state = dummyState; + deepFreeze([state]); + + const action = new ReinitMenuAction(); + const menusState = menusReducer(state, action); + expect(menusState).toEqual(initialMenusState); + + }); + it('should set add a new section for the correct menu in response to the ADD_SECTION action', () => { const state = dummyState; const action = new AddMenuSectionAction(menuID, visibleSection1); diff --git a/src/app/shared/menu/menu.reducer.ts b/src/app/shared/menu/menu.reducer.ts index c7ea017cc2..4c9ee31403 100644 --- a/src/app/shared/menu/menu.reducer.ts +++ b/src/app/shared/menu/menu.reducer.ts @@ -26,36 +26,39 @@ import { MenuID } from './menu-id.model'; * @returns {MenusState} The new, reducer MenusState */ export function menusReducer(state: MenusState = initialMenusState, action: MenuAction): MenusState { - const menuState: MenuState = state[action.menuID]; switch (action.type) { case MenuActionTypes.COLLAPSE_MENU: { - const newMenuState = Object.assign({}, menuState, { collapsed: true }); + const newMenuState = Object.assign({}, state[action.menuID], { collapsed: true }); return Object.assign({}, state, { [action.menuID]: newMenuState }); } case MenuActionTypes.EXPAND_MENU: { - const newMenuState = Object.assign({}, menuState, { collapsed: false }); + const newMenuState = Object.assign({}, state[action.menuID], { collapsed: false }); return Object.assign({}, state, { [action.menuID]: newMenuState }); } case MenuActionTypes.COLLAPSE_MENU_PREVIEW: { - const newMenuState = Object.assign({}, menuState, { previewCollapsed: true }); + const newMenuState = Object.assign({}, state[action.menuID], { previewCollapsed: true }); return Object.assign({}, state, { [action.menuID]: newMenuState }); } case MenuActionTypes.EXPAND_MENU_PREVIEW: { - const newMenuState = Object.assign({}, menuState, { previewCollapsed: false }); + const newMenuState = Object.assign({}, state[action.menuID], { previewCollapsed: false }); return Object.assign({}, state, { [action.menuID]: newMenuState }); } case MenuActionTypes.TOGGLE_MENU: { + const menuState = state[action.menuID]; const newMenuState = Object.assign({}, menuState, { collapsed: !menuState.collapsed }); return Object.assign({}, state, { [action.menuID]: newMenuState }); } case MenuActionTypes.SHOW_MENU: { - const newMenuState = Object.assign({}, menuState, { visible: true }); + const newMenuState = Object.assign({}, state[action.menuID], { visible: true }); return Object.assign({}, state, { [action.menuID]: newMenuState }); } case MenuActionTypes.HIDE_MENU: { - const newMenuState = Object.assign({}, menuState, { visible: false }); + const newMenuState = Object.assign({}, state[action.menuID], { visible: false }); return Object.assign({}, state, { [action.menuID]: newMenuState }); } + case MenuActionTypes.REINIT_MENUS: { + return Object.assign({}, initialMenusState); + } case MenuActionTypes.ADD_SECTION: { return addSection(state, action as AddMenuSectionAction); } @@ -230,7 +233,7 @@ function toggleActiveSection(state: MenusState, action: ToggleActiveMenuSectionA * @param {MenuSection} section The section that will be added or replaced in the state * @returns {MenusState} The new reduced state */ -function putSectionState(state: MenusState, action: MenuAction, section: MenuSection): MenusState { +function putSectionState(state: MenusState, action: MenuSectionAction, section: MenuSection): MenusState { const menuState: MenuState = state[action.menuID]; const newSections = Object.assign({}, menuState.sections, { [section.id]: section diff --git a/src/app/shared/menu/menu.service.spec.ts b/src/app/shared/menu/menu.service.spec.ts index 0d8d669a0a..6af7c54d58 100644 --- a/src/app/shared/menu/menu.service.spec.ts +++ b/src/app/shared/menu/menu.service.spec.ts @@ -41,6 +41,7 @@ describe('MenuService', () => { let routeDataMenuSection: MenuSection; let routeDataMenuSectionResolved: MenuSection; let routeDataMenuChildSection: MenuSection; + let routeDataMenuOverwrittenChildSection: MenuSection; let toBeRemovedMenuSection: MenuSection; let alreadyPresentMenuSection: MenuSection; let route; @@ -127,6 +128,17 @@ describe('MenuService', () => { link: '' } as LinkMenuItemModel }; + routeDataMenuOverwrittenChildSection = { + id: 'mockChildSection', + parentID: 'mockSection', + active: false, + visible: true, + model: { + type: MenuItemType.LINK, + text: 'menu.section.mockChildOverwrittenSection', + link: '' + } as LinkMenuItemModel + }; toBeRemovedMenuSection = { id: 'toBeRemovedSection', active: false, @@ -167,7 +179,17 @@ describe('MenuService', () => { [MenuID.PUBLIC]: routeDataMenuChildSection } } + }, + firstChild: { + snapshot: { + data: { + menu: { + [MenuID.PUBLIC]: routeDataMenuOverwrittenChildSection + } + } + } } + } } }; @@ -541,7 +563,7 @@ describe('MenuService', () => { }); describe('buildRouteMenuSections', () => { - it('should add and remove menu sections depending on the current route', () => { + it('should add and remove menu sections depending on the current route and overwrite menu sections when they have the same ID with the child route version', () => { spyOn(service, 'addSection'); spyOn(service, 'removeSection'); @@ -550,7 +572,8 @@ describe('MenuService', () => { service.buildRouteMenuSections(MenuID.PUBLIC); expect(service.addSection).toHaveBeenCalledWith(MenuID.PUBLIC, routeDataMenuSectionResolved); - expect(service.addSection).toHaveBeenCalledWith(MenuID.PUBLIC, routeDataMenuChildSection); + expect(service.addSection).not.toHaveBeenCalledWith(MenuID.PUBLIC, routeDataMenuChildSection); + expect(service.addSection).toHaveBeenCalledWith(MenuID.PUBLIC, routeDataMenuOverwrittenChildSection); expect(service.addSection).not.toHaveBeenCalledWith(MenuID.PUBLIC, alreadyPresentMenuSection); expect(service.removeSection).toHaveBeenCalledWith(MenuID.PUBLIC, toBeRemovedMenuSection.id); }); diff --git a/src/app/shared/menu/menu.service.ts b/src/app/shared/menu/menu.service.ts index fac3b3fba7..0ec7d67f25 100644 --- a/src/app/shared/menu/menu.service.ts +++ b/src/app/shared/menu/menu.service.ts @@ -399,7 +399,8 @@ export class MenuService { } if (!last) { - return [...menuSections, ...this.resolveRouteMenuSections(route.firstChild, menuID)]; + const childMenuSections = this.resolveRouteMenuSections(route.firstChild, menuID); + return [...menuSections.filter(menu => !(childMenuSections).map(childMenu => childMenu.id).includes(menu.id)), ...childMenuSections]; } else { return [...menuSections]; } -- GitLab From 47029c0a78d14c8e9d0557040223c0490eed42dd Mon Sep 17 00:00:00 2001 From: Alan Orth <alan.orth@gmail.com> Date: Mon, 18 Sep 2023 14:40:19 +0300 Subject: [PATCH 087/183] src/app/shared/search: don't capitalize metadata values Don't capitalize metadata values for display purposes. --- .../search-facet-selected-option.component.html | 2 +- .../search-labels/search-label/search-label.component.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/shared/search/search-filters/search-filter/search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component.html b/src/app/shared/search/search-filters/search-filter/search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component.html index d5f88c5333..42fa7f9e6b 100644 --- a/src/app/shared/search/search-filters/search-filter/search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component.html +++ b/src/app/shared/search/search-filters/search-filter/search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component.html @@ -4,7 +4,7 @@ [queryParams]="removeQueryParams" queryParamsHandling="merge"> <label class="mb-0 d-flex w-100"> <input type="checkbox" [checked]="true" class="my-1 align-self-stretch filter-checkbox"/> - <span class="filter-value pl-1 text-capitalize break-facet"> + <span class="filter-value pl-1 break-facet"> {{ 'search.filters.' + filterConfig.name + '.' + selectedValue.value | translate: {default: selectedValue.label} }} </span> </label> diff --git a/src/app/shared/search/search-labels/search-label/search-label.component.html b/src/app/shared/search/search-labels/search-label/search-label.component.html index bffb7f9329..17c5a48718 100644 --- a/src/app/shared/search/search-labels/search-label/search-label.component.html +++ b/src/app/shared/search/search-labels/search-label/search-label.component.html @@ -1,4 +1,4 @@ -<a class="badge badge-primary mr-1 mb-1 text-capitalize" +<a class="badge badge-primary mr-1 mb-1" [routerLink]="searchLink" [queryParams]="(removeParameters | async)" queryParamsHandling="merge"> {{('search.filters.applied.' + key) | translate}}: {{'search.filters.' + filterName + '.' + value | translate: {default: normalizeFilterValue(value)} }} -- GitLab From 5ad621b27ea13177196c35ea31f5abdc6714762b Mon Sep 17 00:00:00 2001 From: Art Lowel <art.lowel@gmail.com> Date: Fri, 22 Sep 2023 10:23:07 +0200 Subject: [PATCH 088/183] fix issue where more than one api call was made on every route change --- src/app/core/data/request.service.spec.ts | 37 +++++++++ src/app/core/data/request.service.ts | 30 ++++++- src/app/core/data/root-data.service.spec.ts | 38 ++++----- src/app/core/data/root-data.service.ts | 13 ++- .../server-check/server-check.guard.spec.ts | 80 +++++++++++-------- .../core/server-check/server-check.guard.ts | 34 ++++++-- src/modules/app/browser-init.service.ts | 13 ++- 7 files changed, 174 insertions(+), 71 deletions(-) diff --git a/src/app/core/data/request.service.spec.ts b/src/app/core/data/request.service.spec.ts index 108a588881..12208d7e40 100644 --- a/src/app/core/data/request.service.spec.ts +++ b/src/app/core/data/request.service.spec.ts @@ -638,4 +638,41 @@ describe('RequestService', () => { expect(done$).toBeObservable(cold('-----(t|)', { t: true })); })); }); + + describe('setStaleByHref', () => { + const uuid = 'c574a42c-4818-47ac-bbe1-6c3cd622c81f'; + const href = 'https://rest.api/some/object'; + const freshRE: any = { + request: { uuid, href }, + state: RequestEntryState.Success + }; + const staleRE: any = { + request: { uuid, href }, + state: RequestEntryState.SuccessStale + }; + + it(`should call getByHref to retrieve the RequestEntry matching the href`, () => { + spyOn(service, 'getByHref').and.returnValue(observableOf(staleRE)); + service.setStaleByHref(href); + expect(service.getByHref).toHaveBeenCalledWith(href); + }); + + it(`should dispatch a RequestStaleAction for the RequestEntry returned by getByHref`, (done: DoneFn) => { + spyOn(service, 'getByHref').and.returnValue(observableOf(staleRE)); + spyOn(store, 'dispatch'); + service.setStaleByHref(href).subscribe(() => { + expect(store.dispatch).toHaveBeenCalledWith(new RequestStaleAction(uuid)); + done(); + }); + }); + + it(`should emit true when the request in the store is stale`, () => { + spyOn(service, 'getByHref').and.returnValue(cold('a-b', { + a: freshRE, + b: staleRE + })); + const result$ = service.setStaleByHref(href); + expect(result$).toBeObservable(cold('--(c|)', { c: true })); + }); + }); }); diff --git a/src/app/core/data/request.service.ts b/src/app/core/data/request.service.ts index 1f6680203e..27176390d7 100644 --- a/src/app/core/data/request.service.ts +++ b/src/app/core/data/request.service.ts @@ -16,7 +16,7 @@ import { RequestExecuteAction, RequestStaleAction } from './request.actions'; -import { GetRequest} from './request.models'; +import { GetRequest } from './request.models'; import { CommitSSBAction } from '../cache/server-sync-buffer.actions'; import { RestRequestMethod } from './rest-request-method'; import { coreSelector } from '../core.selectors'; @@ -331,7 +331,29 @@ export class RequestService { map((request: RequestEntry) => isStale(request.state)), filter((stale: boolean) => stale), take(1), - ); + ); + } + + /** + * Mark a request as stale + * @param href the href of the request + * @return an Observable that will emit true once the Request becomes stale + */ + setStaleByHref(href: string): Observable<boolean> { + const requestEntry$ = this.getByHref(href); + + requestEntry$.pipe( + map((re: RequestEntry) => re.request.uuid), + take(1), + ).subscribe((uuid: string) => { + this.store.dispatch(new RequestStaleAction(uuid)); + }); + + return requestEntry$.pipe( + map((request: RequestEntry) => isStale(request.state)), + filter((stale: boolean) => stale), + take(1) + ); } /** @@ -344,10 +366,10 @@ export class RequestService { // if it's not a GET request if (request.method !== RestRequestMethod.GET) { return true; - // if it is a GET request, check it isn't pending + // if it is a GET request, check it isn't pending } else if (this.isPending(request)) { return false; - // if it is pending, check if we're allowed to use a cached version + // if it is pending, check if we're allowed to use a cached version } else if (!useCachedVersionIfAvailable) { return true; } else { diff --git a/src/app/core/data/root-data.service.spec.ts b/src/app/core/data/root-data.service.spec.ts index b65449d007..c34ad37531 100644 --- a/src/app/core/data/root-data.service.spec.ts +++ b/src/app/core/data/root-data.service.spec.ts @@ -1,16 +1,18 @@ import { RootDataService } from './root-data.service'; import { HALEndpointService } from '../shared/hal-endpoint.service'; -import { createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils'; -import { Observable, of } from 'rxjs'; +import { + createSuccessfulRemoteDataObject$, + createFailedRemoteDataObject$ +} from '../../shared/remote-data.utils'; +import { Observable } from 'rxjs'; import { RemoteData } from './remote-data'; import { Root } from './root.model'; -import { RawRestResponse } from '../dspace-rest/raw-rest-response.model'; import { cold } from 'jasmine-marbles'; describe('RootDataService', () => { let service: RootDataService; let halService: HALEndpointService; - let restService; + let requestService; let rootEndpoint; let findByHrefSpy; @@ -19,10 +21,10 @@ describe('RootDataService', () => { halService = jasmine.createSpyObj('halService', { getRootHref: rootEndpoint, }); - restService = jasmine.createSpyObj('halService', { - get: jasmine.createSpy('get'), - }); - service = new RootDataService(null, null, null, halService, restService); + requestService = jasmine.createSpyObj('requestService', [ + 'setStaleByHref', + ]); + service = new RootDataService(requestService, null, null, halService); findByHrefSpy = spyOn(service as any, 'findByHref'); findByHrefSpy.and.returnValue(createSuccessfulRemoteDataObject$({})); @@ -47,12 +49,8 @@ describe('RootDataService', () => { let result$: Observable<boolean>; it('should return observable of true when root endpoint is available', () => { - const mockResponse = { - statusCode: 200, - statusText: 'OK' - } as RawRestResponse; + spyOn(service, 'findRoot').and.returnValue(createSuccessfulRemoteDataObject$<Root>({} as any)); - restService.get.and.returnValue(of(mockResponse)); result$ = service.checkServerAvailability(); expect(result$).toBeObservable(cold('(a|)', { @@ -61,12 +59,8 @@ describe('RootDataService', () => { }); it('should return observable of false when root endpoint is not available', () => { - const mockResponse = { - statusCode: 500, - statusText: 'Internal Server Error' - } as RawRestResponse; + spyOn(service, 'findRoot').and.returnValue(createFailedRemoteDataObject$<Root>('500')); - restService.get.and.returnValue(of(mockResponse)); result$ = service.checkServerAvailability(); expect(result$).toBeObservable(cold('(a|)', { @@ -75,4 +69,12 @@ describe('RootDataService', () => { }); }); + + describe(`invalidateRootCache`, () => { + it(`should set the cached root request to stale`, () => { + service.invalidateRootCache(); + expect(halService.getRootHref).toHaveBeenCalled(); + expect(requestService.setStaleByHref).toHaveBeenCalledWith(rootEndpoint); + }); + }); }); diff --git a/src/app/core/data/root-data.service.ts b/src/app/core/data/root-data.service.ts index 54fe614d3e..88cffdf6cf 100644 --- a/src/app/core/data/root-data.service.ts +++ b/src/app/core/data/root-data.service.ts @@ -7,12 +7,11 @@ import { HALEndpointService } from '../shared/hal-endpoint.service'; import { Observable, of as observableOf } from 'rxjs'; import { RemoteData } from './remote-data'; import { FollowLinkConfig } from '../../shared/utils/follow-link-config.model'; -import { DspaceRestService } from '../dspace-rest/dspace-rest.service'; -import { RawRestResponse } from '../dspace-rest/raw-rest-response.model'; import { catchError, map } from 'rxjs/operators'; import { BaseDataService } from './base/base-data.service'; import { ObjectCacheService } from '../cache/object-cache.service'; import { dataService } from './base/data-service.decorator'; +import { getFirstCompletedRemoteData } from '../shared/operators'; /** * A service to retrieve the {@link Root} object from the REST API. @@ -25,21 +24,21 @@ export class RootDataService extends BaseDataService<Root> { protected rdbService: RemoteDataBuildService, protected objectCache: ObjectCacheService, protected halService: HALEndpointService, - protected restService: DspaceRestService, ) { - super('', requestService, rdbService, objectCache, halService, 6 * 60 * 60 * 1000); + super('', requestService, rdbService, objectCache, halService, 60 * 1000); } /** * Check if root endpoint is available */ checkServerAvailability(): Observable<boolean> { - return this.restService.get(this.halService.getRootHref()).pipe( + return this.findRoot().pipe( catchError((err ) => { console.error(err); return observableOf(false); }), - map((res: RawRestResponse) => res.statusCode === 200) + getFirstCompletedRemoteData(), + map((rootRd: RemoteData<Root>) => rootRd.statusCode === 200) ); } @@ -60,6 +59,6 @@ export class RootDataService extends BaseDataService<Root> { * Set to sale the root endpoint cache hit */ invalidateRootCache() { - this.requestService.setStaleByHrefSubstring(this.halService.getRootHref()); + this.requestService.setStaleByHref(this.halService.getRootHref()); } } diff --git a/src/app/core/server-check/server-check.guard.spec.ts b/src/app/core/server-check/server-check.guard.spec.ts index 1f126be5e5..13045b0ff6 100644 --- a/src/app/core/server-check/server-check.guard.spec.ts +++ b/src/app/core/server-check/server-check.guard.spec.ts @@ -1,68 +1,78 @@ import { ServerCheckGuard } from './server-check.guard'; -import { Router } from '@angular/router'; +import { Router, NavigationStart, UrlTree, NavigationEnd, RouterEvent } from '@angular/router'; -import { of } from 'rxjs'; -import { take } from 'rxjs/operators'; - -import { getPageInternalServerErrorRoute } from '../../app-routing-paths'; +import { of, ReplaySubject } from 'rxjs'; import { RootDataService } from '../data/root-data.service'; +import { TestScheduler } from 'rxjs/testing'; import SpyObj = jasmine.SpyObj; describe('ServerCheckGuard', () => { let guard: ServerCheckGuard; - let router: SpyObj<Router>; + let router: Router; + const eventSubject = new ReplaySubject<RouterEvent>(1); let rootDataServiceStub: SpyObj<RootDataService>; - - rootDataServiceStub = jasmine.createSpyObj('RootDataService', { - checkServerAvailability: jasmine.createSpy('checkServerAvailability'), - invalidateRootCache: jasmine.createSpy('invalidateRootCache') - }); - router = jasmine.createSpyObj('Router', { - navigateByUrl: jasmine.createSpy('navigateByUrl') - }); + let testScheduler: TestScheduler; + let redirectUrlTree: UrlTree; beforeEach(() => { + testScheduler = new TestScheduler((actual, expected) => { + expect(actual).toEqual(expected); + }); + rootDataServiceStub = jasmine.createSpyObj('RootDataService', { + checkServerAvailability: jasmine.createSpy('checkServerAvailability'), + invalidateRootCache: jasmine.createSpy('invalidateRootCache') + }); + redirectUrlTree = new UrlTree(); + router = { + events: eventSubject.asObservable(), + navigateByUrl: jasmine.createSpy('navigateByUrl'), + parseUrl: jasmine.createSpy('parseUrl').and.returnValue(redirectUrlTree) + } as any; guard = new ServerCheckGuard(router, rootDataServiceStub); }); - afterEach(() => { - router.navigateByUrl.calls.reset(); - rootDataServiceStub.invalidateRootCache.calls.reset(); - }); - it('should be created', () => { expect(guard).toBeTruthy(); }); - describe('when root endpoint has succeeded', () => { + describe('when root endpoint request has succeeded', () => { beforeEach(() => { rootDataServiceStub.checkServerAvailability.and.returnValue(of(true)); }); - it('should not redirect to error page', () => { - guard.canActivateChild({} as any, {} as any).pipe( - take(1) - ).subscribe((canActivate: boolean) => { - expect(canActivate).toEqual(true); - expect(rootDataServiceStub.invalidateRootCache).not.toHaveBeenCalled(); - expect(router.navigateByUrl).not.toHaveBeenCalled(); + it('should return true', () => { + testScheduler.run(({ expectObservable }) => { + const result$ = guard.canActivateChild({} as any, {} as any); + expectObservable(result$).toBe('(a|)', { a: true }); }); }); }); - describe('when root endpoint has not succeeded', () => { + describe('when root endpoint request has not succeeded', () => { beforeEach(() => { rootDataServiceStub.checkServerAvailability.and.returnValue(of(false)); }); - it('should redirect to error page', () => { - guard.canActivateChild({} as any, {} as any).pipe( - take(1) - ).subscribe((canActivate: boolean) => { - expect(canActivate).toEqual(false); - expect(rootDataServiceStub.invalidateRootCache).toHaveBeenCalled(); - expect(router.navigateByUrl).toHaveBeenCalledWith(getPageInternalServerErrorRoute()); + it('should return a UrlTree with the route to the 500 error page', () => { + testScheduler.run(({ expectObservable }) => { + const result$ = guard.canActivateChild({} as any, {} as any); + expectObservable(result$).toBe('(b|)', { b: redirectUrlTree }); }); + expect(router.parseUrl).toHaveBeenCalledWith('/500'); + }); + }); + + describe(`listenForRouteChanges`, () => { + it(`should invalidate the root cache on every NavigationStart event`, () => { + testScheduler.run(() => { + guard.listenForRouteChanges(); + eventSubject.next(new NavigationStart(1,'')); + eventSubject.next(new NavigationEnd(1,'', '')); + eventSubject.next(new NavigationStart(2,'')); + eventSubject.next(new NavigationEnd(2,'', '')); + eventSubject.next(new NavigationStart(3,'')); + }); + expect(rootDataServiceStub.invalidateRootCache).toHaveBeenCalledTimes(3); }); }); }); diff --git a/src/app/core/server-check/server-check.guard.ts b/src/app/core/server-check/server-check.guard.ts index 8a0e26c01d..ab3bc2c6e9 100644 --- a/src/app/core/server-check/server-check.guard.ts +++ b/src/app/core/server-check/server-check.guard.ts @@ -1,8 +1,15 @@ import { Injectable } from '@angular/core'; -import { ActivatedRouteSnapshot, CanActivateChild, Router, RouterStateSnapshot } from '@angular/router'; +import { + ActivatedRouteSnapshot, + CanActivateChild, + Router, + RouterStateSnapshot, + UrlTree, + NavigationStart +} from '@angular/router'; import { Observable } from 'rxjs'; -import { take, tap } from 'rxjs/operators'; +import { take, map, filter } from 'rxjs/operators'; import { RootDataService } from '../data/root-data.service'; import { getPageInternalServerErrorRoute } from '../../app-routing-paths'; @@ -23,17 +30,32 @@ export class ServerCheckGuard implements CanActivateChild { */ canActivateChild( route: ActivatedRouteSnapshot, - state: RouterStateSnapshot): Observable<boolean> { + state: RouterStateSnapshot + ): Observable<boolean | UrlTree> { return this.rootDataService.checkServerAvailability().pipe( take(1), - tap((isAvailable: boolean) => { + map((isAvailable: boolean) => { if (!isAvailable) { - this.rootDataService.invalidateRootCache(); - this.router.navigateByUrl(getPageInternalServerErrorRoute()); + return this.router.parseUrl(getPageInternalServerErrorRoute()); + } else { + return true; } }) ); + } + /** + * Listen to all router events. Every time a new navigation starts, invalidate the cache + * for the root endpoint. That way we retrieve it once per routing operation to ensure the + * backend is not down. But if the guard is called multiple times during the same routing + * operation, the cached version is used. + */ + listenForRouteChanges(): void { + this.router.events.pipe( + filter(event => event instanceof NavigationStart), + ).subscribe(() => { + this.rootDataService.invalidateRootCache(); + }); } } diff --git a/src/modules/app/browser-init.service.ts b/src/modules/app/browser-init.service.ts index 61d57f10f9..bf40f0c68b 100644 --- a/src/modules/app/browser-init.service.ts +++ b/src/modules/app/browser-init.service.ts @@ -32,6 +32,7 @@ import { logStartupMessage } from '../../../startup-message'; import { MenuService } from '../../app/shared/menu/menu.service'; import { RootDataService } from '../../app/core/data/root-data.service'; import { firstValueFrom, Subscription } from 'rxjs'; +import { ServerCheckGuard } from '../../app/core/server-check/server-check.guard'; /** * Performs client-side initialization. @@ -56,7 +57,8 @@ export class BrowserInitService extends InitService { protected authService: AuthService, protected themeService: ThemeService, protected menuService: MenuService, - private rootDataService: RootDataService + private rootDataService: RootDataService, + protected serverCheckGuard: ServerCheckGuard, ) { super( store, @@ -172,4 +174,13 @@ export class BrowserInitService extends InitService { }); } + /** + * Start route-listening subscriptions + * @protected + */ + protected initRouteListeners(): void { + super.initRouteListeners(); + this.serverCheckGuard.listenForRouteChanges(); + } + } -- GitLab From 8fbe8c16dc2fe999cc53c851bb8ae9df9b8487e4 Mon Sep 17 00:00:00 2001 From: Art Lowel <art.lowel@gmail.com> Date: Fri, 22 Sep 2023 12:00:59 +0200 Subject: [PATCH 089/183] fix issue where invalidateRootCache didn't happen when the page first loaded --- src/app/core/server-check/server-check.guard.spec.ts | 6 ++++-- src/app/core/server-check/server-check.guard.ts | 4 ++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/app/core/server-check/server-check.guard.spec.ts b/src/app/core/server-check/server-check.guard.spec.ts index 13045b0ff6..f18b386753 100644 --- a/src/app/core/server-check/server-check.guard.spec.ts +++ b/src/app/core/server-check/server-check.guard.spec.ts @@ -63,16 +63,18 @@ describe('ServerCheckGuard', () => { }); describe(`listenForRouteChanges`, () => { - it(`should invalidate the root cache on every NavigationStart event`, () => { + it(`should invalidate the root cache when the method is first called, and then on every NavigationStart event`, () => { testScheduler.run(() => { guard.listenForRouteChanges(); + expect(rootDataServiceStub.invalidateRootCache).toHaveBeenCalledTimes(1); + eventSubject.next(new NavigationStart(1,'')); eventSubject.next(new NavigationEnd(1,'', '')); eventSubject.next(new NavigationStart(2,'')); eventSubject.next(new NavigationEnd(2,'', '')); eventSubject.next(new NavigationStart(3,'')); }); - expect(rootDataServiceStub.invalidateRootCache).toHaveBeenCalledTimes(3); + expect(rootDataServiceStub.invalidateRootCache).toHaveBeenCalledTimes(4); }); }); }); diff --git a/src/app/core/server-check/server-check.guard.ts b/src/app/core/server-check/server-check.guard.ts index ab3bc2c6e9..1cea5f36ba 100644 --- a/src/app/core/server-check/server-check.guard.ts +++ b/src/app/core/server-check/server-check.guard.ts @@ -52,6 +52,10 @@ export class ServerCheckGuard implements CanActivateChild { * operation, the cached version is used. */ listenForRouteChanges(): void { + // we'll always be too late for the first NavigationStart event with the router subscribe below, + // so this statement is for the very first route operation + this.rootDataService.invalidateRootCache(); + this.router.events.pipe( filter(event => event instanceof NavigationStart), ).subscribe(() => { -- GitLab From 742b2d920a58acac444514c13cb7f7d7b16d70a6 Mon Sep 17 00:00:00 2001 From: Sascha Szott <szott@gmx.de> Date: Tue, 19 Sep 2023 17:04:10 +0200 Subject: [PATCH 090/183] remove obsolete label element in metadata-schema.component.html (cherry picked from commit 6847c30e582773b492747dc5dc88d4406f003a91) --- .../metadata-schema/metadata-schema.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/admin/admin-registries/metadata-schema/metadata-schema.component.html b/src/app/admin/admin-registries/metadata-schema/metadata-schema.component.html index 557741df80..a3242bccc0 100644 --- a/src/app/admin/admin-registries/metadata-schema/metadata-schema.component.html +++ b/src/app/admin/admin-registries/metadata-schema/metadata-schema.component.html @@ -41,7 +41,7 @@ </label> </td> <td class="selectable-row" (click)="editField(field)">{{field.id}}</td> - <td class="selectable-row" (click)="editField(field)">{{schema?.prefix}}.{{field.element}}<label *ngIf="field.qualifier" class="mb-0">.</label>{{field.qualifier}}</td> + <td class="selectable-row" (click)="editField(field)">{{schema?.prefix}}.{{field.element}}{{field.qualifier ? '.' + field.qualifier : ''}}</td> <td class="selectable-row" (click)="editField(field)">{{field.scopeNote}}</td> </tr> </tbody> -- GitLab From c7fe310d81cb87b9692d4c85d35b46b45b890892 Mon Sep 17 00:00:00 2001 From: Sascha Szott <szott@gmx.de> Date: Fri, 22 Sep 2023 10:39:17 +0200 Subject: [PATCH 091/183] removed trailing whitespaces as suggested by reviewer (cherry picked from commit 43f19e7d918d0457184160744e9f781db9cd491c) --- .../metadata-schema/metadata-schema.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/admin/admin-registries/metadata-schema/metadata-schema.component.html b/src/app/admin/admin-registries/metadata-schema/metadata-schema.component.html index a3242bccc0..2fe53dfcd8 100644 --- a/src/app/admin/admin-registries/metadata-schema/metadata-schema.component.html +++ b/src/app/admin/admin-registries/metadata-schema/metadata-schema.component.html @@ -41,7 +41,7 @@ </label> </td> <td class="selectable-row" (click)="editField(field)">{{field.id}}</td> - <td class="selectable-row" (click)="editField(field)">{{schema?.prefix}}.{{field.element}}{{field.qualifier ? '.' + field.qualifier : ''}}</td> + <td class="selectable-row" (click)="editField(field)">{{schema?.prefix}}.{{field.element}}{{field.qualifier ? '.' + field.qualifier : ''}}</td> <td class="selectable-row" (click)="editField(field)">{{field.scopeNote}}</td> </tr> </tbody> -- GitLab From f77d01c01fc45c81ed530ea560b0e0742c5c049e Mon Sep 17 00:00:00 2001 From: DSpace Bot <68393067+dspace-bot@users.noreply.github.com> Date: Mon, 25 Sep 2023 04:53:45 -0500 Subject: [PATCH 092/183] [Port dspace-7_x] Update fi.json5 (#2516) * Update fi.json5 Two last translations to the Finnish file. (cherry picked from commit c3a908bccb5ebb52c08c57efd7d02c91e0e5de02) --- src/assets/i18n/fi.json5 | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/assets/i18n/fi.json5 b/src/assets/i18n/fi.json5 index c56fcb6fec..ede41ffb0c 100644 --- a/src/assets/i18n/fi.json5 +++ b/src/assets/i18n/fi.json5 @@ -742,8 +742,7 @@ "admin.access-control.groups.form.tooltip.editGroup.addEpeople": "Voit lisätä tai poistaa ryhmän käyttäjän joko napsauttamalla 'Selaa kaikkia' -painiketta tai käyttämällä alla olevaa hakupalkkia käyttäjien etsimiseen (käytä hakupalkin vasemmalla puolella olevaa pudotusvalikkoa valitaksesi, haetaanko metatietojen vai sähköpostin perusteella). Napsauta sitten plus-kuvaketta jokaisen käyttäjän kohdalla, jonka haluat lisätä alla olevaan luetteloon, tai roskakorikuvaketta jokaisen käyttäjän kohdalla, jonka haluat poistaa. Alla olevassa luettelossa voi olla useita sivuja: voit siirtyä seuraaville sivuille luettelon alapuolella olevilla sivunohjaimilla. Kun olet valmis, tallenna muutokset napsauttamalla yläosassa olevaa Tallenna-painiketta.", // "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 - ree made ticket 2321 to DSpace's github - "admin.access-control.groups.form.tooltip.editGroup.addSubgroups": "Jos haluat lisätä tai poistaa alaryhmän tähän ryhmään tai tästä ryhmästä, napsauta joko 'Selaa kaikkia' -painiketta tai käytä alla olevaa hakupalkkia käyttäjien etsimiseen. Napsauta sitten luettelossa plus-kuvaketta jokaisen käyttäjän kohdalla, jonka haluat lisätä, tai roskakorikuvaketta jokaisen käyttäjän kohdalla, jonka haluat poistaa. Luettelossa voi olla useita sivuja: voit siirtyä seuraaville sivuille luettelon alapuolella olevilla sivunohjaimilla. Kun olet valmis, tallenna muutokset napsauttamalla yläosassa olevaa Tallenna-painiketta.", + "admin.access-control.groups.form.tooltip.editGroup.addSubgroups": "Jos haluat lisätä tai poistaa alaryhmän tähän ryhmään tai tästä ryhmästä, napsauta joko 'Selaa kaikkia' -painiketta tai käytä alla olevaa hakupalkkia ryhmien etsimiseen. Napsauta sitten luettelossa plus-kuvaketta jokaisen ryhmän kohdalla, jonka haluat lisätä, tai roskakorikuvaketta jokaisen ryhmän kohdalla, jonka haluat poistaa. Luettelossa voi olla useita sivuja: voit siirtyä seuraaville sivuille luettelon alapuolella olevilla sivunohjaimilla. Kun olet valmis, tallenna muutokset napsauttamalla yläosassa olevaa Tallenna-painiketta.", // "admin.search.breadcrumbs": "Administrative Search", "admin.search.breadcrumbs": "Ylläpitäjän haku", @@ -7607,8 +7606,7 @@ "person.page.orcid.scope.authenticate": "Hae ORCID-tunnisteesi", // "person.page.orcid.scope.read-limited": "Read your information with visibility set to Trusted Parties", - // TODO New key - Add a translation - "person.page.orcid.scope.read-limited": "Read your information with visibility set to Trusted Parties", + "person.page.orcid.scope.read-limited": "Lue omat tietosi Trusted Parties -näkyvyysasetuksilla", // "person.page.orcid.scope.activities-update": "Add/update your research activities", "person.page.orcid.scope.activities-update": "Lisää/päivitä tutkimustoimiasi", @@ -7706,4 +7704,4 @@ // "admin.system-wide-alert.title": "System-wide Alerts", "admin.system-wide-alert.title": "Järjestelmänlaajuiset hälytykset", -} \ No newline at end of file +} -- GitLab From d6d5a2891c492ab2a5f5389cdca126ae344f8f05 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Fri, 1 Sep 2023 21:09:40 +0200 Subject: [PATCH 093/183] Fix routes not working with baseHref (cherry picked from commit 18febff7a6c8e92d3d30016e6a4d93f7fe521dd0) --- .../item-edit-bitstream/item-edit-bitstream.component.html | 2 +- .../item-edit-bitstream.component.spec.ts | 6 +++++- src/app/shared/cookies/klaro-configuration.ts | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream/item-edit-bitstream.component.html b/src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream/item-edit-bitstream.component.html index 0f0fad2199..a3e29ac10c 100644 --- a/src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream/item-edit-bitstream.component.html +++ b/src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream/item-edit-bitstream.component.html @@ -25,7 +25,7 @@ <div class="{{columnSizes.columns[3].buildClasses()}} row-element d-flex align-items-center"> <div class="text-center w-100"> <div class="btn-group relationship-action-buttons"> - <a *ngIf="bitstreamDownloadUrl != null" [href]="bitstreamDownloadUrl" + <a *ngIf="bitstreamDownloadUrl != null" [routerLink]="bitstreamDownloadUrl" class="btn btn-outline-primary btn-sm" title="{{'item.edit.bitstreams.edit.buttons.download' | translate}}" [attr.data-test]="'download-button' | dsBrowserOnly"> diff --git a/src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream/item-edit-bitstream.component.spec.ts b/src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream/item-edit-bitstream.component.spec.ts index aafa5a4fe4..f3c897aa73 100644 --- a/src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream/item-edit-bitstream.component.spec.ts +++ b/src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream/item-edit-bitstream.component.spec.ts @@ -13,6 +13,7 @@ import { createSuccessfulRemoteDataObject$ } from '../../../../shared/remote-dat import { getBitstreamDownloadRoute } from '../../../../app-routing-paths'; import { By } from '@angular/platform-browser'; import { BrowserOnlyMockPipe } from '../../../../shared/testing/browser-only-mock.pipe'; +import { RouterTestingModule } from '@angular/router/testing'; let comp: ItemEditBitstreamComponent; let fixture: ComponentFixture<ItemEditBitstreamComponent>; @@ -72,7 +73,10 @@ describe('ItemEditBitstreamComponent', () => { ); TestBed.configureTestingModule({ - imports: [TranslateModule.forRoot()], + imports: [ + RouterTestingModule.withRoutes([]), + TranslateModule.forRoot(), + ], declarations: [ ItemEditBitstreamComponent, VarDirective, diff --git a/src/app/shared/cookies/klaro-configuration.ts b/src/app/shared/cookies/klaro-configuration.ts index a41b641dec..c818ddc19c 100644 --- a/src/app/shared/cookies/klaro-configuration.ts +++ b/src/app/shared/cookies/klaro-configuration.ts @@ -22,7 +22,7 @@ export const GOOGLE_ANALYTICS_KLARO_KEY = 'google-analytics'; export const klaroConfiguration: any = { storageName: ANONYMOUS_STORAGE_NAME_KLARO, - privacyPolicy: '/info/privacy', + privacyPolicy: './info/privacy', /* Setting 'hideLearnMore' to 'true' will hide the "learn more / customize" link in -- GitLab From 1c38d9259ae614ea8ff27f7fae6ec9ffd8979a0c Mon Sep 17 00:00:00 2001 From: DSpace Bot <68393067+dspace-bot@users.noreply.github.com> Date: Tue, 26 Sep 2023 02:08:07 -0500 Subject: [PATCH 094/183] [Port dspace-7_x] Serbian (Latin) translation (#2520) * Serbian (latin) translation added. --------- Co-authored-by: imilos <imilos@gmail.com> --- config/config.example.yml | 5 +- src/assets/i18n/sr-lat.json5 | 2616 ++++++++++++++++++++++++++++++ src/config/default-app-config.ts | 1 + 3 files changed, 2621 insertions(+), 1 deletion(-) create mode 100644 src/assets/i18n/sr-lat.json5 diff --git a/config/config.example.yml b/config/config.example.yml index d2efad4fe2..42c61235b9 100644 --- a/config/config.example.yml +++ b/config/config.example.yml @@ -208,6 +208,9 @@ languages: - code: pt-BR label: Português do Brasil active: true + - code: sr-lat + label: Srpski (lat) + active: true - code: fi label: Suomi active: true @@ -379,4 +382,4 @@ vocabularies: # Default collection/community sorting order at Advanced search, Create/update community and collection when there are not a query. comcolSelectionSort: sortField: 'dc.title' - sortDirection: 'ASC' \ No newline at end of file + sortDirection: 'ASC' diff --git a/src/assets/i18n/sr-lat.json5 b/src/assets/i18n/sr-lat.json5 new file mode 100644 index 0000000000..df8cfa18c9 --- /dev/null +++ b/src/assets/i18n/sr-lat.json5 @@ -0,0 +1,2616 @@ +{ + // Initial version provided by University of Kragujevac, Serbia 2023. + "401.help": "Niste ovlašćeni da pristupite ovoj stranici. Možete koristiti dugme ispod da se vratite na poÄetnu stranicu.", + "401.link.home-page": "Odvedi me na poÄetnu stranicu", + "401.unauthorized": "Neovlašćen pristup", + "403.help": "Nemate dozvolu da pristupite ovoj stranici. Možete koristiti dugme ispod da se vratite na poÄetnu stranicu.", + "403.link.home-page": "Odvedi me na poÄetnu stranicu", + "403.forbidden": "Zabranjen pristup", + "500.page-internal-server-error": "Usluga nije dostupna", + "500.help": "Server privremeno nije u mogućnosti da servisira vaÅ¡ zahtev zbog zastoja u održavanju ili problema sa kapacitetom. PokuÅ¡ajte ponovo kasnije.", + "500.link.home-page": "Odvedi me na poÄetnu stranicu", + "404.help": "Ne možemo da pronaÄ‘emo stranicu koju tražite. Stranica je možda premeÅ¡tena ili izbrisana. Možete koristiti dugme ispod da se vratite na poÄetnu stranicu.", + "404.link.home-page": "Odvedi me na poÄetnu stranicu", + "404.page-not-found": "Stranica nije pronaÄ‘ena", + "error-page.description.401": "Neovlašćen pristup", + "error-page.description.403": "Zabranjen pristup", + "error-page.description.500": "Usluga nije dostupna", + "error-page.description.404": "Stranica nije pronaÄ‘ena", + "error-page.orcid.generic-error": "DoÅ¡lo je do greÅ¡ke prilikom prijavljivanja preko ORCID-a. Uverite se da ste podelili imejl adresu svog ORCID naloga sa DSpace-om. Ako greÅ¡ka i dalje postoji, kontaktirajte administratora", + "access-status.embargo.listelement.badge": "Embargo", + "access-status.metadata.only.listelement.badge": "Samo metapodaci", + "access-status.open.access.listelement.badge": "Otvoren pristup", + "access-status.restricted.listelement.badge": "OgraniÄen pristup", + "access-status.unknown.listelement.badge": "Nepoznato", + "admin.curation-tasks.breadcrumbs": "Zadaci kuriranja sistema", + "admin.curation-tasks.title": "Zadaci kuriranja sistema", + "admin.curation-tasks.header": "Zadaci kuriranja sistema", + "admin.registries.bitstream-formats.breadcrumbs": "Formatirajte registar", + "admin.registries.bitstream-formats.create.breadcrumbs": "Format bitstream-a", + "admin.registries.bitstream-formats.create.failure.content": "DoÅ¡lo je do greÅ¡ke pri kreiranju novog formata bitstream-a.", + "admin.registries.bitstream-formats.create.failure.head": "NeuspeÅ¡no", + "admin.registries.bitstream-formats.create.head": "Kreirajte format bitstream-a", + "admin.registries.bitstream-formats.create.new": "Dodajte novi format bitstream-a", + "admin.registries.bitstream-formats.create.success.content": "Novi format bitstrim-a je uspeÅ¡no kreiran.", + "admin.registries.bitstream-formats.create.success.head": "UspeÅ¡no", + "admin.registries.bitstream-formats.delete.failure.amount": "Uklanjanje {{ amount }} formata nije uspelo", + "admin.registries.bitstream-formats.delete.failure.head": "NeuspeÅ¡no", + "admin.registries.bitstream-formats.delete.success.amount": "UspeÅ¡no uklonjen {{ amount }} format", + "admin.registries.bitstream-formats.delete.success.head": "UspeÅ¡no", + "admin.registries.bitstream-formats.description": "Ova lista formata bitstream-a pruža informacije o poznatim formatima i nivou njihove podrÅ¡ke.", + "admin.registries.bitstream-formats.edit.breadcrumbs": "Format bitstream-a", + "admin.registries.bitstream-formats.edit.description.hint": "", + "admin.registries.bitstream-formats.edit.description.label": "Opis", + "admin.registries.bitstream-formats.edit.extensions.hint": "Ekstenzije su ekstenzije fajlova koje se koriste za automatsku identifikaciju formata otpremljenih fajlova. Možete da unesete nekoliko ekstenzija za svaki format.", + "admin.registries.bitstream-formats.edit.extensions.label": "Ekstenzije fajlova", + "admin.registries.bitstream-formats.edit.extensions.placeholder": "Unesite ekstenziju fajla bez taÄke", + "admin.registries.bitstream-formats.edit.failure.content": "DoÅ¡lo je do greÅ¡ke pri ureÄ‘ivanju formata bitstream-a", + "admin.registries.bitstream-formats.edit.failure.head": "NeuspeÅ¡no", + "admin.registries.bitstream-formats.edit.head": "Format bitstream-a: {{ format }}", + "admin.registries.bitstream-formats.edit.internal.hint": "Formati oznaÄeni kao interni su skriveni od korisnika i koriste se u administrativne svrhe.", + "admin.registries.bitstream-formats.edit.internal.label": "UnutraÅ¡nje", + "admin.registries.bitstream-formats.edit.mimetype.hint": "MIME tip povezan sa ovim formatom ne mora biti jedinstven.", + "admin.registries.bitstream-formats.edit.mimetype.label": "MIME tip", + "admin.registries.bitstream-formats.edit.shortDescription.hint": "Jedinstveno ime za ovaj format, (npr. Microsoft Word XP ili Microsoft Word 2000)", + "admin.registries.bitstream-formats.edit.shortDescription.label": "Ime", + "admin.registries.bitstream-formats.edit.success.content": "Format bitstream-a je uspeÅ¡no izmenjen.", + "admin.registries.bitstream-formats.edit.success.head": "UspeÅ¡no", + "admin.registries.bitstream-formats.edit.supportLevel.hint": "Nivo podrÅ¡ke koju vaÅ¡a institucija obećava za ovaj format.", + "admin.registries.bitstream-formats.edit.supportLevel.label": "Nivo podrÅ¡ke", + "admin.registries.bitstream-formats.head": "Registar formata bitstream-a", + "admin.registries.bitstream-formats.no-items": "Nema formata bitova za prikaz.", + "admin.registries.bitstream-formats.table.delete": "IzbriÅ¡i izabrano", + "admin.registries.bitstream-formats.table.deselect-all": "PoniÅ¡tite sve", + "admin.registries.bitstream-formats.table.internal": "UnutraÅ¡nje", + "admin.registries.bitstream-formats.table.mimetype": "MIME tip", + "admin.registries.bitstream-formats.table.name": "Ime", + "admin.registries.bitstream-formats.table.id": "ID", + "admin.registries.bitstream-formats.table.return": "Nazad", + "admin.registries.bitstream-formats.table.supportLevel.KNOWN": "Poznato", + "admin.registries.bitstream-formats.table.supportLevel.SUPPORTED": "Podržano", + "admin.registries.bitstream-formats.table.supportLevel.UNKNOWN": "Nepoznato", + "admin.registries.bitstream-formats.table.supportLevel.head": "Nivo podrÅ¡ke", + "admin.registries.bitstream-formats.title": "Registar formata bitstream-a", + "admin.registries.metadata.breadcrumbs": "Registar metapodataka", + "admin.registries.metadata.description": "Registar metapodataka održava listu svih polja metapodataka dostupnih u spremiÅ¡tu. Ova polja mogu biti podeljena na viÅ¡e Å¡ema. MeÄ‘utim, DSpace zahteva kvalifikovanu Dublin Core Å¡emu", + "admin.registries.metadata.form.create": "Kreirajte Å¡emu metapodataka", + "admin.registries.metadata.form.edit": "Uredite Å¡emu metapodataka", + "admin.registries.metadata.form.name": "Ime", + "admin.registries.metadata.form.namespace": "Prostor imena", + "admin.registries.metadata.head": "Registar metapodataka", + "admin.registries.metadata.schemas.no-items": "Nema Å¡ema metapodataka za prikaz.", + "admin.registries.metadata.schemas.table.delete": "IzbriÅ¡i izabrano", + "admin.registries.metadata.schemas.table.id": "ID", + "admin.registries.metadata.schemas.table.name": "Ime", + "admin.registries.metadata.schemas.table.namespace": "Prostor imena", + "admin.registries.metadata.title": "Registar metapodataka", + "admin.registries.schema.breadcrumbs": "Å ema metapodataka", + "admin.registries.schema.description": "Ovo je Å¡ema metapodataka za \"{{namespace}}\".", + "admin.registries.schema.fields.head": "Polja metapodataka Å¡eme", + "admin.registries.schema.fields.no-items": "Nema polja metapodataka za prikaz.", + "admin.registries.schema.fields.table.delete": "IzbriÅ¡i izabrano", + "admin.registries.schema.fields.table.field": "Polje", + "admin.registries.schema.fields.table.id": "ID", + "admin.registries.schema.fields.table.scopenote": "Scope napomena", + "admin.registries.schema.form.create": "Kreirajte polje za metapodatke", + "admin.registries.schema.form.edit": "Izmenite polje za metapodatke", + "admin.registries.schema.form.element": "Element", + "admin.registries.schema.form.qualifier": "Kvalifikator", + "admin.registries.schema.form.scopenote": "Scope napomena", + "admin.registries.schema.head": "Å ema metapodataka", + "admin.registries.schema.notification.created": "UspeÅ¡no kreirana Å¡ema metapodataka \"{{prefix}}\"", + "admin.registries.schema.notification.deleted.failure": "NeuspeÅ¡no brisanje {{amount}} Å¡ema metapodataka", + "admin.registries.schema.notification.deleted.success": "UspeÅ¡no izbrisane {{amount}} Å¡eme metapodataka", + "admin.registries.schema.notification.edited": "UspeÅ¡no izmenjena Å¡ema metapodataka \"{{prefix}}\"", + "admin.registries.schema.notification.failure": "GreÅ¡ka", + "admin.registries.schema.notification.field.created": "UspeÅ¡no kreirano polje metapodataka \"{{field}}\"", + "admin.registries.schema.notification.field.deleted.failure": "NeuspeÅ¡no brisanje {{amount}} polja metapodataka ", + "admin.registries.schema.notification.field.deleted.success": "UspeÅ¡no izbrisana {{amount}} polja metapodataka", + "admin.registries.schema.notification.field.edited": "UspeÅ¡no izmenjeno polje metapodataka \"{{field}}\"", + "admin.registries.schema.notification.success": "UspeÅ¡no", + "admin.registries.schema.return": "Nazad", + "admin.registries.schema.title": "Registar Å¡eme metapodataka", + "admin.access-control.bulk-access.breadcrumbs": "Upravljanje masovnim pristupom", + "administrativeBulkAccess.search.results.head": "Rezultati pretrage", + "admin.access-control.bulk-access": "Upravljanje masovnim pristupom", + "admin.access-control.bulk-access.title": "Upravljanje masovnim pristupom", + "admin.access-control.bulk-access-browse.header": "Korak 1: Izaberite objekte", + "admin.access-control.bulk-access-browse.search.header": "Pretraga", + "admin.access-control.bulk-access-browse.selected.header": "Trenutni izbor ({{number}})", + "admin.access-control.bulk-access-settings.header": "Korak 2: Operacija koju treba izvrÅ¡iti", + "admin.access-control.epeople.actions.delete": "IzbriÅ¡ite EPerson", + "admin.access-control.epeople.actions.impersonate": "OponaÅ¡ati EPerson", + "admin.access-control.epeople.actions.reset": "Resetujte Å¡ifru", + "admin.access-control.epeople.actions.stop-impersonating": "Zaustavi predstavljanje kao EPerson", + "admin.access-control.epeople.breadcrumbs": "EPeople", + "admin.access-control.epeople.title": "EPeople", + "admin.access-control.epeople.head": "EPeople", + "admin.access-control.epeople.search.head": "Pretraga", + "admin.access-control.epeople.button.see-all": "Pregledajte sve", + "admin.access-control.epeople.search.scope.metadata": "Metapodaci", + "admin.access-control.epeople.search.scope.email": "E-mail (taÄno)", + "admin.access-control.epeople.search.button": "Pretraga", + "admin.access-control.epeople.search.placeholder": "Pretražite ljude...", + "admin.access-control.epeople.button.add": "Dodajte EPerson", + "admin.access-control.epeople.table.id": "ID", + "admin.access-control.epeople.table.name": "Ime", + "admin.access-control.epeople.table.email": "E-mail (taÄno)", + "admin.access-control.epeople.table.edit": "Izmena", + "admin.access-control.epeople.table.edit.buttons.edit": "Izmenite \"{{name}}\"", + "admin.access-control.epeople.table.edit.buttons.edit-disabled": "Niste ovlašćeni za ureÄ‘ivanje ove grupe", + "admin.access-control.epeople.table.edit.buttons.remove": "IzbriÅ¡ite \"{{name}}\"", + "admin.access-control.epeople.no-items": "Nema EPeople za prikaz.", + "admin.access-control.epeople.form.create": "Kreirajte EPerson", + "admin.access-control.epeople.form.edit": "Izmenite EPerson", + "admin.access-control.epeople.form.firstName": "Ime", + "admin.access-control.epeople.form.lastName": "Prezime", + "admin.access-control.epeople.form.email": "E-mail", + "admin.access-control.epeople.form.emailHint": "Mora biti važeća e-mail adresa", + "admin.access-control.epeople.form.canLogIn": "Može se prijaviti", + "admin.access-control.epeople.form.requireCertificate": "Potreban je sertifikat", + "admin.access-control.epeople.form.return": "Nazad", + "admin.access-control.epeople.form.notification.created.success": "UspeÅ¡no kreiran EPerson \"{{name}}\"", + "admin.access-control.epeople.form.notification.created.failure": "NeuspeÅ¡no kreiranje EPerson \"{{name}}\"", + "admin.access-control.epeople.form.notification.created.failure.emailInUse": "NeuspeÅ¡no kreiranje EPerson \"{{name}}\", email \"{{email}}\" se već koristi.", + "admin.access-control.epeople.form.notification.edited.failure.emailInUse": "NeuspeÅ¡na izmena EPerson \"{{name}}\", email \"{{email}}\" se već koristi.", + "admin.access-control.epeople.form.notification.edited.success": "UspeÅ¡no izmenjen EPerson \"{{name}}\"", + "admin.access-control.epeople.form.notification.edited.failure": "NeuspeÅ¡na izmena EPerson \"{{name}}\" ", + "admin.access-control.epeople.form.notification.deleted.success": "UspeÅ¡no izbrisan EPerson \"{{name}}\"", + "admin.access-control.epeople.form.notification.deleted.failure": "NeuspeÅ¡no brisanje EPerson \"{{name}}\" ", + "admin.access-control.epeople.form.groupsEPersonIsMemberOf": "ÄŒlan ovih grupa:", + "admin.access-control.epeople.form.table.id": "ID", + "admin.access-control.epeople.form.table.name": "Ime", + "admin.access-control.epeople.form.table.collectionOrCommunity": "Kolekcija/Zajednica", + "admin.access-control.epeople.form.memberOfNoGroups": "Ovaj EPerson nije Älan nijedne grupe", + "admin.access-control.epeople.form.goToGroups": "Dodajte grupama", + "admin.access-control.epeople.notification.deleted.failure": "NeuspeÅ¡no brisanje EPerson: \"{{name}}\"", + "admin.access-control.epeople.notification.deleted.success": "UspeÅ¡no izbrisan EPerson: \"{{name}}\"", + "admin.access-control.groups.title": "Grupe", + "admin.access-control.groups.breadcrumbs": "Grupe", + "admin.access-control.groups.singleGroup.breadcrumbs": "Izmenite grupu", + "admin.access-control.groups.title.singleGroup": "Izmenite grupu", + "admin.access-control.groups.title.addGroup": "Nova grupa", + "admin.access-control.groups.addGroup.breadcrumbs": "Nova grupa", + "admin.access-control.groups.head": "Grupe", + "admin.access-control.groups.button.add": "Dodajte grupu", + "admin.access-control.groups.search.head": "Pretraga grupa", + "admin.access-control.groups.button.see-all": "Pregledajte sve", + "admin.access-control.groups.search.button": "Pretraga", + "admin.access-control.groups.search.placeholder": "Pretražite grupe...", + "admin.access-control.groups.table.id": "ID", + "admin.access-control.groups.table.name": "Ime", + "admin.access-control.groups.table.collectionOrCommunity": "Kolekcija/Zajednica", + "admin.access-control.groups.table.members": "ÄŒlanovi", + "admin.access-control.groups.table.edit": "Izmeniti", + "admin.access-control.groups.table.edit.buttons.edit": "Izmenite \"{{name}}\"", + "admin.access-control.groups.table.edit.buttons.remove": "IzbriÅ¡ite \"{{name}}\"", + "admin.access-control.groups.no-items": "Nije pronaÄ‘ena nijedna grupa sa ovim u svom imenu ili ovim kao UUID", + "admin.access-control.groups.notification.deleted.success": "UspeÅ¡no izbrisana grupa \"{{name}}\"", + "admin.access-control.groups.notification.deleted.failure.title": "NeuspeÅ¡no brisanje grupe \"{{name}}\"", + "admin.access-control.groups.notification.deleted.failure.content": "Uzrok: \"{{cause}}\"", + "admin.access-control.groups.form.alert.permanent": "Ova grupa je trajna, tako da se ne može menjati ili brisati. I dalje možete da dodajete i uklanjate Älanove grupe koristeći ovu stranicu.", + "admin.access-control.groups.form.alert.workflowGroup": "Ova grupa se ne može izmeniti ili izbrisati jer odgovara ulozi u procesu slanja i toka posla u \"{{name}}\" {{comcol}}. Možete je izbrisati sa kartice <a href='{{comcolEditRolesRoute}}'>\"dodeli uloge\"</a> na stranici za ureÄ‘ivanje {{comcol}}. I dalje možete da dodajete i uklanjate Älanove grupe koristeći ovu stranicu.", + "admin.access-control.groups.form.head.create": "Kreiraj grupu", + "admin.access-control.groups.form.head.edit": "Izmeni grupu", + "admin.access-control.groups.form.groupName": "Naziv grupe", + "admin.access-control.groups.form.groupCommunity": "Zajednica ili kolekcija", + "admin.access-control.groups.form.groupDescription": "Opis", + "admin.access-control.groups.form.notification.created.success": "UspeÅ¡no kreirana Grupa \"{{name}}\"", + "admin.access-control.groups.form.notification.created.failure": "NeuspeÅ¡no kreiranje Grupe \"{{name}}\"", + "admin.access-control.groups.form.notification.created.failure.groupNameInUse": "NeuspeÅ¡no kreiranje Grupe sa imenom: \"{{name}}\", proverite da ime nije već upotrebljeno.", + "admin.access-control.groups.form.notification.edited.failure": "NeuspeÅ¡na izmena Grupe \"{{name}}\"", + "admin.access-control.groups.form.notification.edited.failure.groupNameInUse": "Naziv \"{{name}}\" se već koristi!", + "admin.access-control.groups.form.notification.edited.success": "Grupa \"{{name}}\" je uspeÅ¡no izmenjena", + "admin.access-control.groups.form.actions.delete": "IzbriÅ¡ite grupu", + "admin.access-control.groups.form.delete-group.modal.header": "IzbriÅ¡ite grupu \"{{ dsoName }}\"", + "admin.access-control.groups.form.delete-group.modal.info": "Da li ste sigurni da želite da izbriÅ¡ete grupu \"{{ dsoName }}\"", + "admin.access-control.groups.form.delete-group.modal.cancel": "PoniÅ¡titi, otkazati", + "admin.access-control.groups.form.delete-group.modal.confirm": "IzbriÅ¡ite", + "admin.access-control.groups.form.notification.deleted.success": "Grupa \"{{ name }}\" je uspeÅ¡no obrisana", + "admin.access-control.groups.form.notification.deleted.failure.title": "Brisanje grupe \"{{ name }}\" nije uspelo", + "admin.access-control.groups.form.notification.deleted.failure.content": "Uzrok: \"{{ uzrok }}\"", + "admin.access-control.groups.form.members-list.head": "EPeople", + "admin.access-control.groups.form.members-list.search.head": "Dodajte EPeople", + "admin.access-control.groups.form.members-list.button.see-all": "Pregledajte sve", + "admin.access-control.groups.form.members-list.headMembers": "Trenutni Älanovi", + "admin.access-control.groups.form.members-list.search.scope.metadata": "Metapodatak", + "admin.access-control.groups.form.members-list.search.scope.email": "E-mail (taÄno)", + "admin.access-control.groups.form.members-list.search.button": "Pretraga", + "admin.access-control.groups.form.members-list.table.id": "ID", + "admin.access-control.groups.form.members-list.table.name": "Ime", + "admin.access-control.groups.form.members-list.table.identity": "Identitet", + "admin.access-control.groups.form.members-list.table.email": "Email", + "admin.access-control.groups.form.members-list.table.netid": "NetID", + "admin.access-control.groups.form.members-list.table.edit": "Ukloni / Dodaj", + "admin.access-control.groups.form.members-list.table.edit.buttons.remove": "Uklonite Älana sa imenom \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.success.addMember": "ÄŒlan je uspeÅ¡no dodat: \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.failure.addMember": "Dodavanje Älana nije uspelo: \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.success.deleteMember": "UspeÅ¡no obrisan Älan: \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.failure.deleteMember": "Brisanje Älana nije uspelo: \"{{name}}\"", + "admin.access-control.groups.form.members-list.table.edit.buttons.add": "Dodaj Älana sa imenom \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.failure.noActiveGroup": "Nema trenutno aktivne grupe, prvo poÅ¡aljite ime.", + "admin.access-control.groups.form.members-list.no-members-yet": "JoÅ¡ nema Älanova u grupi, pretražite i dodajte.", + "admin.access-control.groups.form.members-list.no-items": "Nijedan EPeople nije pronaÄ‘en u toj pretrazi", + "admin.access-control.groups.form.subgroups-list.notification.failure": "NeÅ¡to nije u redu: \"{{cause}}\"", + "admin.access-control.groups.form.subgroups-list.head": "Grupe", + "admin.access-control.groups.form.subgroups-list.search.head": "Dodajte podgrupu", + "admin.access-control.groups.form.subgroups-list.button.see-all": "Pregledajte sve", + "admin.access-control.groups.form.subgroups-list.headSubgroups": "Trenutne podgrupe", + "admin.access-control.groups.form.subgroups-list.search.button": "Pretraga", + "admin.access-control.groups.form.subgroups-list.table.id": "ID", + "admin.access-control.groups.form.subgroups-list.table.name": "Ime", + "admin.access-control.groups.form.subgroups-list.table.collectionOrCommunity": "Kolekcija/Zajednica", + "admin.access-control.groups.form.subgroups-list.table.edit": "Ukloni / Dodaj", + "admin.access-control.groups.form.subgroups-list.table.edit.buttons.remove": "Uklonite podgrupu sa imenom \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.table.edit.buttons.add": "Dodajte podgrupu sa imenom \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.table.edit.currentGroup": "Trenutna grupa", + "admin.access-control.groups.form.subgroups-list.notification.success.addSubgroup": "Podgrupa je uspeÅ¡no dodata: \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.notification.failure.addSubgroup": "Dodavanje podgrupe nije uspelo: \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.notification.success.deleteSubgroup": "UspeÅ¡no obrisana podgrupa: \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.notification.failure.deleteSubgroup": "Brisanje podgrupe nije uspelo: \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.notification.failure.noActiveGroup": "Nema trenutno aktivne grupe, prvo poÅ¡aljite ime.", + "admin.access-control.groups.form.subgroups-list.notification.failure.subgroupToAddIsActiveGroup": "Ovo je trenutna grupa, ne može se dodati.", + "admin.access-control.groups.form.subgroups-list.no-items": "Nije pronaÄ‘ena nijedna grupa sa ovim u svom imenu ili ovim kao UUID", + "admin.access-control.groups.form.subgroups-list.no-subgroups-yet": "JoÅ¡ nema podgrupa u grupi.", + "admin.access-control.groups.form.return": "Nazad", + "admin.access-control.groups.form.tooltip.editGroupPage": "Na ovoj stranici možete da menjate svojstva i Älanove grupe. U gornjem odeljku možete da izmenite ime i opis grupe, osim ako je ovo administratorska grupa za kolekciju ili zajednicu, u kom sluÄaju se ime i opis grupe automatski generiÅ¡u i ne mogu se menjati. U sledećim odeljcima možete da menjate Älanstvo u grupi. Pogledajte [viki](https://viki.lirasis.org/displai/DSDOC7k/Create+or+manage+a+user+group) za viÅ¡e detalja.", + "admin.access-control.groups.form.tooltip.editGroup.addEpeople": "Da biste dodali ili uklonili Eperson u/iz ove grupe, ili kliknite na dugme 'Pregledaj sve' ili koristite traku za pretragu ispod da biste pretražili korisnike (koristite padajući meni sa leve strane trake za pretragu da biste izabrali da li ćete pretraživati prema metapodacima ili prema e-mailu). Zatim kliknite na ikonu plus za svakog korisnika kojeg želite da dodate na listu ispod ili na ikonu korpe za smeće za svakog korisnika kojeg želite da uklonite. Lista u nastavku može imati nekoliko stranica: koristite kontrole stranice ispod liste da biste preÅ¡li na sledeće stranice. Kada budete spremni, saÄuvajte promene klikom na dugme \"SaÄuvaj\" u gornjem delu.", + "admin.access-control.groups.form.tooltip.editGroup.addSubgroups": "Da biste dodali ili uklonili podgrupu u/iz ove grupe, kliknite na dugme 'Pregledaj sve' ili koristite traku za pretragu ispod da biste pretražili korisnike. Zatim kliknite na ikonu plus za svakog korisnika kojeg želite da dodate na listu ispod ili na ikonu korpe za smeće za svakog korisnika kojeg želite da uklonite. Lista u nastavku može imati nekoliko stranica: koristite kontrole stranice ispod liste da biste preÅ¡li na sledeće stranice. Kada budete spremni, saÄuvajte promene klikom na dugme \"SaÄuvaj\" u gornjem delu.", + "admin.search.breadcrumbs": "Administrativna pretraga", + "admin.search.collection.edit": "Uredite", + "admin.search.community.edit": "Uredite", + "admin.search.item.delete": "IzbriÅ¡ite", + "admin.search.item.edit": "Uredite", + "admin.search.item.make-private": "UÄinite nevidljivim", + "admin.search.item.make-public": "UÄinite vidljivim", + "admin.search.item.move": "Pomerite", + "admin.search.item.reinstate": "Reinstate", + "admin.search.item.withdraw": "Odustati", + "admin.search.title": "Administrativna pretraga", + "administrativeView.search.results.head": "Administrativna pretraga", + "admin.workflow.breadcrumbs": "Administriranje radnog procesa", + "admin.workflow.title": "Administriranje radnog procesa", + "admin.workflow.item.workflow": "Proces rada", + "admin.workflow.item.workspace": "Radni prostor", + "admin.workflow.item.delete": "IzbriÅ¡ite", + "admin.workflow.item.send-back": "Vratite", + "admin.workflow.item.policies": "Politike", + "admin.workflow.item.supervision": "Nadzor", + "admin.metadata-import.breadcrumbs": "Uvezi metapodatke", + "admin.batch-import.breadcrumbs": "Uvezi Batch", + "admin.metadata-import.title": "Uvezi metapodatke", + "admin.batch-import.title": "Uvezi Batch", + "admin.metadata-import.page.header": "Uvezite metapodatke", + "admin.batch-import.page.header": "Uvezi Batch", + "admin.metadata-import.page.help": "Ovde možete da prevuÄete ili pregledate CSV fajlove koji sadrže batch operacije metapodataka za fajlove", + "admin.batch-import.page.help": "Izaberite kolekciju u koju želite da uvezete. Zatim prevucite ili potražite zip fajl jednostavnog arhivskog formata (SAF) koja ukljuÄuje stavke za uvoz", + "admin.batch-import.page.toggle.help": "Moguće je izvrÅ¡iti uvoz bilo sa otpremanjem fajla ili preko URL-a, koristite gornji prekidaÄ da biste podesili izvor unosa", + "admin.metadata-import.page.dropMsg": "Prevucite CSV sa metapodacima za uvoz", + "admin.batch-import.page.dropMsg": "Prevucite batch ZIP za uvoz", + "admin.metadata-import.page.dropMsgReplace": "Prevucite da zamenite CSV sa metapodacima za uvoz", + "admin.batch-import.page.dropMsgReplace": "Prevucite da zamenite batch ZIP za uvoz", + "admin.metadata-import.page.button.return": "Nazad", + "admin.metadata-import.page.button.proceed": "Nastavite", + "admin.metadata-import.page.button.select-collection": "Izaberite kolekciju", + "admin.metadata-import.page.error.addFile": "Prvo izaberite fajl!", + "admin.metadata-import.page.error.addFileUrl": "Prvo unesite url fajl!", + "admin.batch-import.page.error.addFile": "Prvo izaberite Zip fajl!", + "admin.metadata-import.page.toggle.upload": "Otpremite", + "admin.metadata-import.page.toggle.url": "URL", + "admin.metadata-import.page.urlMsg": "Umetnite batch ZIP URL za uvoz", + "admin.metadata-import.page.validateOnly": "Samo validiraj", + "admin.metadata-import.page.validateOnly.hint": "Kada se izabere, otpremljeni CSV će biti potvrÄ‘en. Dobićete izveÅ¡taj o utvrÄ‘enim promenama, ali promene neće biti saÄuvane.", + "advanced-workflow-action.rating.form.rating.label": "Ocena", + "advanced-workflow-action.rating.form.rating.error": "Morate oceniti stavku", + "advanced-workflow-action.rating.form.review.label": "Pregled", + "advanced-workflow-action.rating.form.review.error": "Morate uneti recenziju da biste poslali ovu ocenu", + "advanced-workflow-action.rating.description": "Molimo izaberite ocenu ispod", + "advanced-workflow-action.rating.description-requiredDescription": "Molimo izaberite ocenu ispod i dodajte recenziju", + "advanced-workflow-action.select-reviewer.description-single": "Molimo izaberite jednog recenzenta ispod pre slanja", + "advanced-workflow-action.select-reviewer.description-multiple": "Molimo izaberite jednog ili viÅ¡e recenzenata ispod pre slanja", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.head": "EPeople", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.head": "Dodajte EPeople", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.button.see-all": "Pregledajte sve", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.headMembers": "Trenutni Älanovi", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.metadata": "Metapodaci", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.email": "E-mail (taÄno)", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.button": "Pretraga", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.id": "ID", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.name": "Ime", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.identity": "Identitet", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.email": "Email", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.netid": "NetID", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit": "Uklonite / Dodajte", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.remove": "Uklonite Älana sa imenom \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.addMember": "UspeÅ¡no dodat Älan: \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.addMember": "NeuspeÅ¡no dodavanje Älana: \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.deleteMember": "UspeÅ¡no izbrisan Älan: \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.deleteMember": "NeuspeÅ¡no brisanje Älana: \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.add": "Dodajte Älana sa imenom \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.noActiveGroup": "Trenutno nema aktivne grupe, prvo unesite ime.", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-members-yet": "JoÅ¡ nema Älanova u grupi, pretražite i dodajte.", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-items": "Nijedan EPeople nije pronaÄ‘en u toj pretrazi", + "advanced-workflow-action.select-reviewer.no-reviewer-selected.error": "Nije izabran recenzent.", + "admin.batch-import.page.validateOnly.hint": "Kada se izabere, otpremljeni ZIP će biti potvrÄ‘en. Dobićete izveÅ¡taj o utvrÄ‘enim promenama, ali promene neće biti saÄuvane.", + "admin.batch-import.page.remove": "ukloniti", + "auth.errors.invalid-user": "PogreÅ¡na e-mail adresa ili lozinka.", + "auth.messages.expired": "VaÅ¡a sesija je istekla. Molimo prijavite se ponovo.", + "auth.messages.token-refresh-failed": "Osvežavanje tokena sesije nije uspelo. Molimo prijavite se ponovo.", + "bitstream.download.page": "Trenutno se preuzima {{bitstream}}...", + "bitstream.download.page.back": "Nazad", + "bitstream.edit.authorizations.link": "Izmenite polise bitstream-a", + "bitstream.edit.authorizations.title": "Izmenite polise bitstream-a", + "bitstream.edit.return": "Nazad", + "bitstream.edit.bitstream": "Bitstream:", + "bitstream.edit.form.description.hint": "Opciono, navedite kratak opis fajla, na primer \"<i>Glavni Älanak</i>\" ili \"<i>OÄitavanja podataka eksperimenta</i>\".", + "bitstream.edit.form.description.label": "Opis", + "bitstream.edit.form.embargo.hint": "Prvi dan od kojeg je pristup dozvoljen. <b>Ovaj datum se ne može izmeniti u ovom obrascu.</b> Da biste postavili datum zabrane za bitstream, idite na karticu <i>Status stavke</i>, kliknite na <i>Ovlašćenja...</i >, kreirajte ili izmenite politiku bitstream-ova<i>PROÄŒITAJTE</i> i postavite <i>Datum poÄetka</i> po želji.", + "bitstream.edit.form.embargo.label": "Zabrana do odreÄ‘enog datuma", + "bitstream.edit.form.fileName.hint": "Promenite ime fajla za bitstream. Imajte na umu da će se ovim promeniti prikazani bitstream URL, ali će se stari linkovi i dalje razreÅ¡iti sve dok se ID sekvence ne promeni.", + "bitstream.edit.form.fileName.label": "Ime fajla", + "bitstream.edit.form.newFormat.label": "OpiÅ¡ite novi format", + "bitstream.edit.form.newFormat.hint": "Aplikacija koju ste koristili za kreiranje fajla, i broj verzije (na primer, \"<i>ACMESoft SuperApp verzija 1.5</i>\").", + "bitstream.edit.form.primaryBitstream.label": "Primarni bitstream", + "bitstream.edit.form.selectedFormat.hint": "Ako format nije na gornjoj listi, <b>izaberite \"format nije na listi\" iznad</b> i opiÅ¡ite ga pod \"OpiÅ¡ite novi format\".", + "bitstream.edit.form.selectedFormat.label": "Izabrani format", + "bitstream.edit.form.selectedFormat.unknown": "Format nije na listi", + "bitstream.edit.notifications.error.format.title": "DoÅ¡lo je do greÅ¡ke prilikom Äuvanja bitstream formata", + "bitstream.edit.notifications.error.primaryBitstream.title": "DoÅ¡lo je do greÅ¡ke prilikom Äuvanja primarnog bitstream-a", + "bitstream.edit.form.iiifLabel.label": "IIIF oznaka", + "bitstream.edit.form.iiifLabel.hint": "Oznaka canvas-a za ovu sliku. Ako nije data, koristiće se podrazumevana oznaka.", + "bitstream.edit.form.iiifToc.label": "IIIF Pregled sadržaja", + "bitstream.edit.form.iiifToc.hint": "Dodavanje teksta ovde, Äini ovo mesto poÄetkom novog opsega sadržaja.", + "bitstream.edit.form.iiifWidth.label": "IIIF Å¡irina platna", + "bitstream.edit.form.iiifWidth.hint": "Å irina canvas-a obiÄno treba da odgovara Å¡irini slike.", + "bitstream.edit.form.iiifHeight.label": "IIIF visina platna", + "bitstream.edit.form.iiifHeight.hint": "Visina canvas-a obiÄno treba da odgovara visini slike.", + "bitstream.edit.notifications.saved.content": "VaÅ¡e promene u ovom bitstream-u su saÄuvane.", + "bitstream.edit.notifications.saved.title": "Bitstream je saÄuvan", + "bitstream.edit.title": "Izmenite bitstream", + "bitstream-request-a-copy.alert.canDownload1": "Već imate pristup ovom fajlu. Ako želite da preuzmete fajl, kliknite", + "bitstream-request-a-copy.alert.canDownload2": "ovde", + "bitstream-request-a-copy.header": "Zatražite kopiju fajla", + "bitstream-request-a-copy.intro": "Unesite sledeće informacije da biste zatražili kopiju sledeće stavke:", + "bitstream-request-a-copy.intro.bitstream.one": "Zahteva se sledeći fajl:", + "bitstream-request-a-copy.intro.bitstream.all": "Zahtevaju se svi fajlovi.", + "bitstream-request-a-copy.name.label": "ime *", + "bitstream-request-a-copy.name.error": "Ime je obavezno", + "bitstream-request-a-copy.email.label": "VaÅ¡a email adresa *", + "bitstream-request-a-copy.email.hint": "Ova e-mail adresa se koristi za slanje fajla.", + "bitstream-request-a-copy.email.error": "Molim Vas unesite ispravnu e-mail adresu.", + "bitstream-request-a-copy.allfiles.label": "Fajlovi", + "bitstream-request-a-copy.files-all-false.label": "Samo traženi fajl", + "bitstream-request-a-copy.files-all-true.label": "Sve fajlovi (ove stavke) u ograniÄenom pristupu", + "bitstream-request-a-copy.message.label": "Poruka", + "bitstream-request-a-copy.return": "Nazad", + "bitstream-request-a-copy.submit": "Zahtevaj kopiju", + "bitstream-request-a-copy.submit.success": "Zahtev za stavku je uspeÅ¡no dostavljen.", + "bitstream-request-a-copy.submit.error": "NeÅ¡to nije u redu sa slanjem zahteva za stavku.", + "browse.back.all-results": "Svi rezultati pregleda", + "browse.comcol.by.author": "Po autoru", + "browse.comcol.by.dateissued": "Po datumu izdanja", + "browse.comcol.by.subject": "Po predmetu", + "browse.comcol.by.srsc": "Po kategoriji predmeta", + "browse.comcol.by.title": "Po naslovu", + "browse.comcol.head": "Pregledajte", + "browse.empty": "Nema stavki za prikaz.", + "browse.metadata.author": "Autoru", + "browse.metadata.dateissued": "Datumu izdanja", + "browse.metadata.subject": "Predmetu", + "browse.metadata.title": "Naslovu", + "browse.metadata.author.breadcrumbs": "Pregled po autoru", + "browse.metadata.dateissued.breadcrumbs": "Pregled po datumu", + "browse.metadata.subject.breadcrumbs": "Pregled po predmetu", + "browse.metadata.srsc.breadcrumbs": "Pregled po kategoriji predmeta", + "browse.metadata.title.breadcrumbs": "Pregled po naslovu", + "pagination.next.button": "Sledeće", + "pagination.previous.button": "Prethodno", + "pagination.next.button.disabled.tooltip": "Nema viÅ¡e stranica sa rezultatima", + "browse.startsWith": ", poÄevÅ¡i od {{ startsWith }}", + "browse.startsWith.choose_start": "(Izaberite poÄetak)", + "browse.startsWith.choose_year": "(Izaberite godinu)", + "browse.startsWith.choose_year.label": "Izaberite godinu izdanja", + "browse.startsWith.jump": "Filtrirajte rezultate po godini ili mesecu", + "browse.startsWith.months.april": "April", + "browse.startsWith.months.august": "Avgust", + "browse.startsWith.months.december": "Decembar", + "browse.startsWith.months.february": "Februar", + "browse.startsWith.months.january": "Januar", + "browse.startsWith.months.july": "Jul", + "browse.startsWith.months.june": "Jun", + "browse.startsWith.months.march": "Mart", + "browse.startsWith.months.may": "Maj ", + "browse.startsWith.months.none": "(Izaberite mesec)", + "browse.startsWith.months.none.label": "Izaberite mesec izdanja", + "browse.startsWith.months.november": "Novembar", + "browse.startsWith.months.october": "Oktobar", + "browse.startsWith.months.september": "Septembar", + "browse.startsWith.submit": "Pregledaj", + "browse.startsWith.type_date": "Filtrirajte rezultate po datumu", + "browse.startsWith.type_date.label": "Ili unesite datum (godina-mesec) i kliknite na dugme Pregledaj", + "browse.startsWith.type_text": "Filtrirajte rezultate upisivanjem prvih nekoliko slova", + "browse.startsWith.input": "Filter", + "browse.taxonomy.button": "Pregledaj", + "browse.title": "Pregledanje {{ collection }} prema {{ field }}{{ startsWith }} {{ value }}", + "browse.title.page": "Pregledanje {{ collection }} prema {{ field }} {{ value }}", + "search.browse.item-back": "Nazad na rezultate", + "chips.remove": "Uklonite Äip", + "claimed-approved-search-result-list-element.title": "Odobreno", + "claimed-declined-search-result-list-element.title": "Odbijeno, vraćeno podnosiocu", + "claimed-declined-task-search-result-list-element.title": "Odbijeno, vraćeno menadžeru za pregled", + "collection.create.head": "Napravite kolekciju", + "collection.create.notifications.success": "Kolekcija je uspeÅ¡no napravljena", + "collection.create.sub-head": "Napravite kolekciju za zajednicu {{ parent }}", + "collection.curate.header": "SaÄuvaj kolekciju: {{collection}}", + "collection.delete.cancel": "PoniÅ¡titi, otkazati", + "collection.delete.confirm": "Potvrdi", + "collection.delete.processing": "Brisanje", + "collection.delete.head": "IzbriÅ¡ite kolekciju", + "collection.delete.notification.fail": "Kolekcija se ne može izbrisati", + "collection.delete.notification.success": "Kolekcija je uspeÅ¡no izbrisana", + "collection.delete.text": "Da li ste sigurni da želite da izbriÅ¡ete kolekciju \"{{ dso }}\"", + "collection.edit.delete": "IzbriÅ¡ite ovu kolekciju", + "collection.edit.head": "Uredite kolekciju", + "collection.edit.breadcrumbs": "Uredite kolekciju", + "collection.edit.tabs.mapper.head": "Mapiranje stavki", + "collection.edit.tabs.item-mapper.title": "UreÄ‘ivanje kolekcije - mapiranje stavki", + "collection.edit.item-mapper.cancel": "PoniÅ¡titi, otkazati", + "collection.edit.item-mapper.collection": "Kolekcija: \"<b>{{name}}</b>\"", + "collection.edit.item-mapper.confirm": "Mapirajte izabrane stavke", + "collection.edit.item-mapper.description": "Ovo je alatka za mapiranje stavki koja omogućava administratorima kolekcije da mapiraju stavke iz drugih kolekcija u ovu kolekciju. Možete tražiti stavke iz drugih kolekcija i mapirati ih ili pregledati listu trenutno mapiranih stavki.", + "collection.edit.item-mapper.head": "Mapiranje stavki - mapa stavki iz drugih kolekcija", + "collection.edit.item-mapper.no-search": "Unesite upit za pretragu", + "collection.edit.item-mapper.notifications.map.error.content": "DoÅ¡lo je do greÅ¡aka za mapiranje {{amount}} stavki.", + "collection.edit.item-mapper.notifications.map.error.head": "GreÅ¡ke u mapiranju", + "collection.edit.item-mapper.notifications.map.success.content": "UspeÅ¡no mapirane {{amount}} stavke.", + "collection.edit.item-mapper.notifications.map.success.head": "Mapiranje je zavrÅ¡eno", + "collection.edit.item-mapper.notifications.unmap.error.content": "DoÅ¡lo je do greÅ¡aka pri uklanjanju mapiranja stavki {{amount}}.", + "collection.edit.item-mapper.notifications.unmap.error.head": "Uklonite greÅ¡ke mapiranja", + "collection.edit.item-mapper.notifications.unmap.success.content": "UspeÅ¡no su uklonjena mapiranja {{amount}} stavki.", + "collection.edit.item-mapper.notifications.unmap.success.head": "Uklanjanje mapiranja je zavrÅ¡eno", + "collection.edit.item-mapper.remove": "Uklanjanje mapiranja izabranih stavki", + "collection.edit.item-mapper.search-form.placeholder": "Pretraži stavke...", + "collection.edit.item-mapper.tabs.browse": "Pregledajte mapirane stavke", + "collection.edit.item-mapper.tabs.map": "Mapirajte nove stavke", + "collection.edit.logo.delete.title": "IzbriÅ¡ite logo", + "collection.edit.logo.delete-undo.title": "Opozovi brisanje", + "collection.edit.logo.label": "Logo kolekcije", + "collection.edit.logo.notifications.add.error": "Otpremanje loga kolekcije nije uspelo. Proverite sadržaj pre ponovnog pokuÅ¡aja.", + "collection.edit.logo.notifications.add.success": "Otpremanje loga kolekcije je uspeÅ¡no.", + "collection.edit.logo.notifications.delete.success.title": "Logo je izbrisan", + "collection.edit.logo.notifications.delete.success.content": "UspeÅ¡no je obrisan logo kolekcije", + "collection.edit.logo.notifications.delete.error.title": "GreÅ¡ka pri brisanju loga", + "collection.edit.logo.upload": "Prevucite logotip kolekcije za otpremanje", + "collection.edit.notifications.success": "UspeÅ¡no ureÄ‘ena kolekcija", + "collection.edit.return": "Nazad", + "collection.edit.tabs.access-control.head": "Kontrola pristupa", + "collection.edit.tabs.access-control.title": "UreÄ‘ivanje kolekcije - Kontrola pristupa", + "collection.edit.tabs.curate.head": "Curate", + "collection.edit.tabs.curate.title": "UreÄ‘ivanje kolekcije - Curate", + "collection.edit.tabs.authorizations.head": "Ovlašćenja", + "collection.edit.tabs.authorizations.title": "UreÄ‘ivanje kolekcije - ovlašćenja", + "collection.edit.item.authorizations.load-bundle-button": "UÄitajte joÅ¡ paketa", + "collection.edit.item.authorizations.load-more-button": "UÄitaj viÅ¡e", + "collection.edit.item.authorizations.show-bitstreams-button": "Prikaži bitstream smernice za paket", + "collection.edit.tabs.metadata.head": "Uredi metapodatke", + "collection.edit.tabs.metadata.title": "UreÄ‘ivanje kolekcije - Metapodaci", + "collection.edit.tabs.roles.head": "Dodeli uloge", + "collection.edit.tabs.roles.title": "UreÄ‘ivanje kolekcije - Uloge", + "collection.edit.tabs.source.external": "Ova kolekcija prikuplja svoj sadržaj iz spoljaÅ¡njeg izvora", + "collection.edit.tabs.source.form.errors.oaiSource.required": "Morate da obezbedite set ID ciljne kolekcije.", + "collection.edit.tabs.source.form.harvestType": "Sadržaj se prikuplja", + "collection.edit.tabs.source.form.head": "KonfiguriÅ¡ite spoljni izvor", + "collection.edit.tabs.source.form.metadataConfigId": "Format metapodataka", + "collection.edit.tabs.source.form.oaiSetId": "ID specifiÄnog skupa za OAI", + "collection.edit.tabs.source.form.oaiSource": "OAI provajder", + "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_BITSTREAMS": "Sakupite metapodatke i bitstream-ove (zahteva ORE podrÅ¡ku)", + "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_REF": "Sakupite metapodatke i reference na bitstream-ove (zahteva ORE podrÅ¡ku)", + "collection.edit.tabs.source.form.options.harvestType.METADATA_ONLY": "Samo prikupljeni metapodaci", + "collection.edit.tabs.source.head": "Izvor sadržaja", + "collection.edit.tabs.source.notifications.discarded.content": "VaÅ¡e promene su odbaÄene. Da biste ponovo postavili svoje promene, kliknite na dugme \"Opozovi\".", + "collection.edit.tabs.source.notifications.discarded.title": "Promene su odbaÄene", + "collection.edit.tabs.source.notifications.invalid.content": "VaÅ¡e promene nisu saÄuvane. Proverite da li su sva polja ispravna pre nego Å¡to saÄuvate.", + "collection.edit.tabs.source.notifications.invalid.title": "Metapodaci su nevažeći", + "collection.edit.tabs.source.notifications.saved.content": "VaÅ¡e promene izvora sadržaja ove kolekcije su saÄuvane.", + "collection.edit.tabs.source.notifications.saved.title": "Izvor sadržaja je saÄuvan", + "collection.edit.tabs.source.title": "UreÄ‘ivanje kolekcije – Izvor sadržaja", + "collection.edit.template.add-button": "Dodati", + "collection.edit.template.breadcrumbs": "Å ablon stavke", + "collection.edit.template.cancel": "Otkazati", + "collection.edit.template.delete-button": "IzbriÅ¡ite", + "collection.edit.template.edit-button": "Izmenite", + "collection.edit.template.error": "DoÅ¡lo je do greÅ¡ke pri preuzimanju stavke Å¡ablona", + "collection.edit.template.head": "Izmenite stavku Å¡ablona za kolekciju \"{{ collection }}\"", + "collection.edit.template.label": "Stavka Å¡ablona", + "collection.edit.template.loading": "UÄitava se stavka Å¡ablona...", + "collection.edit.template.notifications.delete.error": "NeuspeÅ¡no brisanje Å¡ablona stavke", + "collection.edit.template.notifications.delete.success": "UspeÅ¡no obrisan Å¡ablon stavke", + "collection.edit.template.title": "Izmenite stavku Å¡ablona", + "collection.form.abstract": "Kratak opis", + "collection.form.description": "Uvodni tekst (HTML)", + "collection.form.errors.title.required": "Molimo unesite ime kolekcije", + "collection.form.license": "Licenca", + "collection.form.provenance": "Poreklo", + "collection.form.rights": "Autorski tekst (HTML)", + "collection.form.tableofcontents": "Vesti (HTML)", + "collection.form.title": "Ime", + "collection.form.entityType": "Tip entiteta", + "collection.listelement.badge": "Kolekcija", + "collection.page.browse.recent.head": "Nedavni podnesci", + "collection.page.browse.recent.empty": "Nema stavki za prikaz", + "collection.page.edit": "Izmenite ovu kolekciju", + "collection.page.handle": "Trajni URI za ovu kolekciju", + "collection.page.license": "Licenca", + "collection.page.news": "Vesti", + "collection.select.confirm": "Potvrdite izabrano", + "collection.select.empty": "Nema kolekcija za prikaz", + "collection.select.table.title": "Naslov", + "collection.source.controls.head": "Kontrola prikupljanja", + "collection.source.controls.test.submit.error": "NeÅ¡to nije u redu sa pokretanjem testiranja podeÅ¡avanja", + "collection.source.controls.test.failed": "Skripta za testiranje podeÅ¡avanja nije uspela", + "collection.source.controls.test.completed": "Skripta za testiranje podeÅ¡avanja je uspeÅ¡no zavrÅ¡ena", + "collection.source.controls.test.submit": "Testna konfiguracija", + "collection.source.controls.test.running": "Testiranje konfiguracije...", + "collection.source.controls.import.submit.success": "Uvoz je uspeÅ¡no pokrenut", + "collection.source.controls.import.submit.error": "NeÅ¡to nije u redu sa pokretanjem uvoza", + "collection.source.controls.import.submit": "Uvezite sada", + "collection.source.controls.import.running": "Uvoz...", + "collection.source.controls.import.failed": "DoÅ¡lo je do greÅ¡ke tokom uvoza", + "collection.source.controls.import.completed": "Uvoz je zavrÅ¡en", + "collection.source.controls.reset.submit.success": "Resetovanje i ponovni uvoz su uspeÅ¡no pokrenuti", + "collection.source.controls.reset.submit.error": "NeÅ¡to nije u redu sa pokretanjem resetovanja i ponovnog uvoza", + "collection.source.controls.reset.failed": "DoÅ¡lo je do greÅ¡ke tokom resetovanja i ponovnog uvoza", + "collection.source.controls.reset.completed": "Resetovanje i ponovni uvoz su zavrÅ¡eni", + "collection.source.controls.reset.submit": "Resetujte i ponovo uvezite", + "collection.source.controls.reset.running": "Resetovanje i ponovni uvoz...", + "collection.source.controls.harvest.status": "Status prikupljaanja:", + "collection.source.controls.harvest.start": "Vreme poÄetka prikupljanja:", + "collection.source.controls.harvest.last": "Vreme poÄetka prikupljanja:", + "collection.source.controls.harvest.message": "Informacije o prikupljanju:", + "collection.source.controls.harvest.no-information": "N/A", + "collection.source.update.notifications.error.content": "Navedena podeÅ¡avanja su testirana i nisu funkcionisala.", + "collection.source.update.notifications.error.title": "GreÅ¡ka na serveru", + "communityList.breadcrumbs": "Lista zajednice", + "communityList.tabTitle": "List zajednice", + "communityList.title": "Lista zajednica", + "communityList.showMore": "Prikaži viÅ¡e", + "community.create.head": "Kreirajte zajednicu", + "community.create.notifications.success": "Zajednica je uspeÅ¡no kreirana", + "community.create.sub-head": "Kreirajte podzajednicu za zajednicu {{ parent }}", + "community.curate.header": "Urednik zajednice: {{community}}", + "community.delete.cancel": "Otkazati", + "community.delete.confirm": "Potvrdite", + "community.delete.processing": "Brisanje...", + "community.delete.head": "IzbriÅ¡ite zajednicu", + "community.delete.notification.fail": "Nije moguće izbrisati zajednicu", + "community.delete.notification.success": "UspeÅ¡no izbrisana zajednica", + "community.delete.text": "Da li ste sigurni da želite da izbriÅ¡ete zajednicu \"{{ dso }}\"", + "community.edit.delete": "IzbriÅ¡ite ovu zajednicu", + "community.edit.head": "Izmenite zajednicu", + "community.edit.breadcrumbs": "Izmenite zajednicu", + "community.edit.logo.delete.title": "IzbriÅ¡ite logo", + "community.edit.logo.delete-undo.title": "PoniÅ¡tite brisanje", + "community.edit.logo.label": "Logo zajednice", + "community.edit.logo.notifications.add.error": "Otpremanje logoa zajednice nije uspelo. Molimo proverite sadržaj pre ponovnog pokuÅ¡aja.", + "community.edit.logo.notifications.add.success": "UspeÅ¡no otpremanje logoa zajednice.", + "community.edit.logo.notifications.delete.success.title": "Logo je izbrisan", + "community.edit.logo.notifications.delete.success.content": "UspeÅ¡no izbrisan logo zajednice", + "community.edit.logo.notifications.delete.error.title": "GreÅ¡ka pri brisanju logoa", + "community.edit.logo.upload": "Unesite logo zajednice da biste ga otpremili", + "community.edit.notifications.success": "UspeÅ¡no je izmenjena zajednica", + "community.edit.notifications.unauthorized": "Nemate ovlašćenje da izvrÅ¡ite ovu promenu", + "community.edit.notifications.error": "DoÅ¡lo je do greÅ¡ke pri ureÄ‘ivanju zajednice", + "community.edit.return": "Nazad", + "community.edit.tabs.curate.head": "Curate", + "community.edit.tabs.curate.title": "UreÄ‘ivanje zajednice - Curate", + "community.edit.tabs.access-control.head": "Kontrola pristupa", + "community.edit.tabs.access-control.title": "UreÄ‘ivanje zajednice - Kontrola pristupa", + "community.edit.tabs.metadata.head": "Uredi metapodatke", + "community.edit.tabs.metadata.title": "UreÄ‘ivanje zajednice – Metapodaci", + "community.edit.tabs.roles.head": "Dodeli uloge", + "community.edit.tabs.roles.title": "UreÄ‘ivanje zajednice - Uloge", + "community.edit.tabs.authorizations.head": "Ovlašćenja", + "community.edit.tabs.authorizations.title": "UreÄ‘ivanje zajednice - ovlašćenja", + "community.listelement.badge": "Zajednica", + "comcol-role.edit.no-group": "Nijedan", + "comcol-role.edit.create": "Kreirajte", + "comcol-role.edit.create.error.title": "Pravljenje grupe za ulogu \"{{ role }}\" nije uspelo", + "comcol-role.edit.restrict": "OgraniÄiti", + "comcol-role.edit.delete": "IzbriÅ¡ite", + "comcol-role.edit.delete.error.title": "Brisanje grupe uloga \"{{ role }}\" nije uspelo", + "comcol-role.edit.community-admin.name": "Administratori", + "comcol-role.edit.collection-admin.name": "Administratori", + "comcol-role.edit.community-admin.description": "Administratori zajednice mogu da kreiraju podzajednice ili kolekcije i da upravljaju tim podzajednicama ili zbirkama ili da im dodeljuju upravljanje. Pored toga, oni odluÄuju ko može da podnese stavke u bilo koju podzbirku, ureÄ‘uju metapodatke stavki (nakon podnoÅ¡enja) i dodaju (mapiraju) postojeće stavke iz drugih kolekcija (predmet ovlašćenja).", + "comcol-role.edit.collection-admin.description": "Administratori kolekcije odluÄuju ko može da Å¡alje stavke u kolekciju, ureÄ‘uju metapodatke stavki (nakon slanja) i dodaju (mapiraju) postojeće stavke iz drugih kolekcija u ovu kolekciju (predmet ovlašćenja za tu kolekciju).", + "comcol-role.edit.submitters.name": "Podnosioci", + "comcol-role.edit.submitters.description": "E-ljudi i grupe koje imaju dozvolu da podnose nove stavke u ovu kolekciju.", + "comcol-role.edit.item_read.name": "Podrazumevani pristup za Äitanje stavke", + "comcol-role.edit.item_read.description": "E-Ljudi i grupe koje mogu da Äitaju nove stavke poslate u ovu kolekciju. Promene ove uloge nisu retroaktivne. Postojeće stavke u sistemu će i dalje moći da vide oni koji su imali pristup za Äitanje u vreme njihovog dodavanja.", + "comcol-role.edit.item_read.anonymous-group": "Podrazumevano Äitanje za dolazne stavke je trenutno postavljeno na Anonimno.", + "comcol-role.edit.bitstream_read.name": "Podrazumevani pristup za Äitanje bitstreamova", + "comcol-role.edit.bitstream_read.description": "Administratori zajednice mogu da kreiraju podzajednice ili kolekcije i da upravljaju tim podzajednicama ili zbirkama ili da im dodeljuju upravljanje. Pored toga, oni odluÄuju ko može da podnese stavke u bilo koju podzbirku, ureÄ‘uju metapodatke stavki (nakon podnoÅ¡enja) i dodaju (mapiraju) postojeće stavke iz drugih kolekcija (predmet ovlašćenja).", + "comcol-role.edit.bitstream_read.anonymous-group": "Podrazumevano Äitanje za dolazne bitstreamove je trenutno podeÅ¡eno na Anonimno.", + "comcol-role.edit.editor.name": "Urednici", + "comcol-role.edit.editor.description": "Urednici mogu da ureÄ‘uju metapodatke dolaznih podnesaka, a zatim da ih prihvate ili odbiju.", + "comcol-role.edit.finaleditor.name": "KonaÄni urednici", + "comcol-role.edit.finaleditor.description": "KonaÄni urednici mogu da ureÄ‘uju metapodatke dolaznih podnesaka, ali neće moći da ih odbiju.", + "comcol-role.edit.reviewer.name": "Recenzenti", + "comcol-role.edit.reviewer.description": "Recenzenti mogu da prihvate ili odbiju dolazne podneske. MeÄ‘utim, oni ne mogu da ureÄ‘uju metapodatke podneska.", + "comcol-role.edit.scorereviewers.name": "Rezultat recenzenata", + "comcol-role.edit.scorereviewers.description": "Recenzenti mogu da daju ocenu dolaznim podnescima, Å¡to će definisati da li će podnesak biti odbijen ili ne.", + "community.form.abstract": "Kratak opis", + "community.form.description": "Uvodni tekst (HTML)", + "community.form.errors.title.required": "Unesite naziv zajednice", + "community.form.rights": "Tekst autorskih prava (HTML)", + "community.form.tableofcontents": "Vesti (HTML)", + "community.form.title": "Ime", + "community.page.edit": "Uredite ovu zajednicu", + "community.page.handle": "Stalni URI za ovu zajednicu", + "community.page.license": "Licenca", + "community.page.news": "Vesti", + "community.all-lists.head": "Podzajednice i kolekcije", + "community.sub-collection-list.head": "Kolekcije u ovoj zajednici", + "community.sub-community-list.head": "Zajednice u ovoj zajednici", + "cookies.consent.accept-all": "Prihvatite sve", + "cookies.consent.accept-selected": "Prihvatite izabrano", + "cookies.consent.app.opt-out.description": "Ova aplikacija se podrazumevano uÄitava (ali možete da odustanete)", + "cookies.consent.app.opt-out.title": "(odustati)", + "cookies.consent.app.purpose": "Svrha", + "cookies.consent.app.required.description": "Ova aplikacija je uvek potrebna", + "cookies.consent.app.required.title": "(uvek potrebno)", + "cookies.consent.app.disable-all.description": "Koristite ovaj prekidaÄ da omogućite ili onemogućite sve usluge.", + "cookies.consent.app.disable-all.title": "Omogućite ili onemogućite sve usluge", + "cookies.consent.update": "Bilo je promena od vaÅ¡e poslednje posete, ažurirajte svoju saglasnost.", + "cookies.consent.close": "Zatvoriti", + "cookies.consent.decline": "Odbiti", + "cookies.consent.ok": "To je u redu", + "cookies.consent.save": "saÄuvati", + "cookies.consent.content-notice.title": "Saglasnost za kolaÄiće", + "cookies.consent.content-notice.description": "Prikupljamo i obraÄ‘ujemo vaÅ¡e liÄne podatke u sledeće svrhe: <strong>Provera autentiÄnosti, podeÅ¡avanja, potvrda i statistika</strong>. <br/> Da biste saznali viÅ¡e, proÄitajte naÅ¡u {privaciPolicy}.", + "cookies.consent.content-notice.description.no-privacy": "Prikupljamo i obraÄ‘ujemo vaÅ¡e liÄne podatke u sledeće svrhe: <strong>Provera autentiÄnosti, podeÅ¡avanja, potvrda i statistika</strong>.", + "cookies.consent.content-notice.learnMore": "Prilagoditi", + "cookies.consent.content-modal.description": "Ovde možete videti i prilagoditi informacije koje prikupljamo o vama.", + "cookies.consent.content-modal.privacy-policy.name": "Pravila o privatnosti", + "cookies.consent.content-modal.privacy-policy.text": "Da saznate viÅ¡e, proÄitajte naÅ¡u {privaciPolicy}.", + "cookies.consent.content-modal.title": "Informacije koje prikupljamo", + "cookies.consent.content-modal.services": "Usluge", + "cookies.consent.content-modal.service": "Usluga", + "cookies.consent.app.title.authentication": "Provera", + "cookies.consent.app.description.authentication": "Potrebno za prijavljivanje", + "cookies.consent.app.title.preferences": "PodeÅ¡avanja", + "cookies.consent.app.description.preferences": "Potrebno za Äuvanje vaÅ¡ih podeÅ¡avanja", + "cookies.consent.app.title.acknowledgement": "Potvrda", + "cookies.consent.app.description.acknowledgement": "Potrebno za Äuvanje vaÅ¡ih potvrda i saglasnosti", + "cookies.consent.app.title.google-analytics": "Google analitike", + "cookies.consent.app.description.google-analytics": "Omogućava nam da pratimo statistiÄke podatke", + "cookies.consent.app.title.google-recaptcha": "Google reCaptcha", + "cookies.consent.app.description.google-recaptcha": "Koristimo Google reCAPTCHA uslugu tokom registracije i oporavka lozinke", + "cookies.consent.purpose.functional": "Funkcionalni", + "cookies.consent.purpose.statistical": "StatistiÄki", + "cookies.consent.purpose.registration-password-recovery": "Registracija i oporavak lozinke", + "cookies.consent.purpose.sharing": "Deljenje", + "curation-task.task.citationpage.label": "GeneriÅ¡ite stranicu sa citatima", + "curation-task.task.checklinks.label": "Proverite veze u metapodacima", + "curation-task.task.noop.label": "NOOP", + "curation-task.task.profileformats.label": "Profil Bitstrim formati", + "curation-task.task.requiredmetadata.label": "Proverite potrebne metapodatke", + "curation-task.task.translate.label": "Microsoft prevodilac", + "curation-task.task.vscan.label": "Pretraga virusa", + "curation-task.task.register-doi.label": "Registrujte DOI", + "curation.form.task-select.label": "Zadatak:", + "curation.form.submit": "PoÄetak", + "curation.form.submit.success.head": "Zadato kuriranje je uspeÅ¡no pokrenuto", + "curation.form.submit.success.content": "Bićete preusmereni na odgovarajuću stranicu procesa.", + "curation.form.submit.error.head": "NeuspeÅ¡no pokretanje zadatog kuriranja", + "curation.form.submit.error.content": "DoÅ¡lo je do greÅ¡ke pri pokuÅ¡aju pokretanja zadatog kuriranja.", + "curation.form.submit.error.invalid-handle": "Nije moguće odrediti ruÄicu za ovaj objekat", + "curation.form.handle.label": "Handle:", + "curation.form.handle.hint": "Savet: Unesite [your-handle-prefix]/0 da biste pokrenuli zadatak na celom sajtu (ovu mogućnost ne podržavaju svi zadaci)", + "deny-request-copy.email.message": "PoÅ¡tovani {{ recipientName }}, \n Kao odgovor na vaÅ¡ zahtev, sa žaljenjem vas obaveÅ¡tavam da nije moguće poslati kopiju fajla koju ste tražili, u vezi sa dokumentom: \"{{ itemUrl }}\" ({{ itemName }}), Äiji sam autor. \n SrdaÄan pozdrav, \n{{ authorName }} <{{ authorEmail }}>", + "deny-request-copy.email.subject": "Zatražite kopiju dokumenta", + "deny-request-copy.error": "DoÅ¡lo je do greÅ¡ke", + "deny-request-copy.header": "Odbijen zahtev za kopiranje dokumenta", + "deny-request-copy.intro": "Ova poruka biće poslata podnosiocu zahteva", + "deny-request-copy.success": "Zahtev za stavku je odbijen uspeÅ¡no", + "dso.name.untitled": "Bez naslova", + "dso.name.unnamed": "Bez imena", + "dso-selector.create.collection.head": "Nova kolekcija", + "dso-selector.create.collection.sub-level": "Kreirajte novu kolekciju u", + "dso-selector.create.community.head": "Nova zajednica", + "dso-selector.create.community.or-divider": "ili", + "dso-selector.create.community.sub-level": "Kreirajte novu zajednicu u", + "dso-selector.create.community.top-level": "Kreirajte novu zajednicu najviÅ¡eg nivoa", + "dso-selector.create.item.head": "Nova stavka", + "dso-selector.create.item.sub-level": "Kreirajte novu stavku u", + "dso-selector.create.submission.head": "Novi podnesak", + "dso-selector.edit.collection.head": "Izmenite kolekciju", + "dso-selector.edit.community.head": "Izmenite zajednicu", + "dso-selector.edit.item.head": "Izmenite stavku", + "dso-selector.error.title": "DoÅ¡lo je do greÅ¡ke pri pretrazi {{ type }}", + "dso-selector.export-metadata.dspaceobject.head": "Izvezite metapodatke iz", + "dso-selector.export-batch.dspaceobject.head": "Izvezite paket (ZIP) iz", + "dso-selector.import-batch.dspaceobject.head": "Uvezite paket iz", + "dso-selector.no-results": "Nije pronaÄ‘en {{ type }}", + "dso-selector.placeholder": "Pretražite {{ type }}", + "dso-selector.select.collection.head": "Izaberite kolekciju", + "dso-selector.set-scope.community.head": "Izaberite opseg pretrage", + "dso-selector.set-scope.community.button": "Pretražite Äitav repozitorijum", + "dso-selector.set-scope.community.or-divider": "ili", + "dso-selector.set-scope.community.input-header": "Pretražite zajednicu ili kolekciju", + "dso-selector.claim.item.head": "Smernice za profil", + "dso-selector.claim.item.body": "Ovo su postojeći profili koji se možda odnose na Vas. Ako se prepoznate u jednom od ovih profila, izaberite ga i na stranici sa detaljima, meÄ‘u opcijama, izaberite da ga zatražite. U suprotnom, možete kreirati novi profil od nule koristeći dugme ispod.", + "dso-selector.claim.item.not-mine-label": "Nijedan od ovih nije moj", + "dso-selector.claim.item.create-from-scratch": "Kreirajte novi", + "dso-selector.results-could-not-be-retrieved": "NeÅ¡to nije u redu, molimo osvežite ponovo ↻", + "supervision-group-selector.header": "Selektor grupe za nadzor", + "supervision-group-selector.select.type-of-order.label": "Izaberite tip naloga", + "supervision-group-selector.select.type-of-order.option.none": "NIJEDAN", + "supervision-group-selector.select.type-of-order.option.editor": "UREDNIK", + "supervision-group-selector.select.type-of-order.option.observer": "POSMATRAÄŒ", + "supervision-group-selector.select.group.label": "Izaberite grupu", + "supervision-group-selector.button.cancel": "Otkazati", + "supervision-group-selector.button.save": "SaÄuvati", + "supervision-group-selector.select.type-of-order.error": "Molimo izaberite tip naloga", + "supervision-group-selector.select.group.error": "Molimo izaberite grupu", + "supervision-group-selector.notification.create.success.title": "UspeÅ¡no je kreiran nalog nadzora za grupu {{ name }}", + "supervision-group-selector.notification.create.failure.title": "GreÅ¡ka", + "supervision-group-selector.notification.create.already-existing": "Već postoji nalog za nadzor za ovu stavku izabrane grupe", + "confirmation-modal.export-metadata.header": "Izvoz metapodataka za {{ dsoName }}", + "confirmation-modal.export-metadata.info": "Da li ste sigurni da želite da izvezete metapodatke za {{ dsoName }}", + "confirmation-modal.export-metadata.cancel": "Otkazati", + "confirmation-modal.export-metadata.confirm": "Izvoz", + "confirmation-modal.export-batch.header": "Izvezite paket (ZIP) za {{ dsoName }}", + "confirmation-modal.export-batch.info": "Da li ste sigurni da želite da izvezete paket (ZIP) za {{ dsoName }}", + "confirmation-modal.export-batch.cancel": "Otkazati", + "confirmation-modal.export-batch.confirm": "Izvoz", + "confirmation-modal.delete-eperson.header": "IzbriÅ¡ite Eperson \"{{ dsoName }}\"", + "confirmation-modal.delete-eperson.info": "Da li ste sigurni da želite da izbriÅ¡ete Eperson \"{{ dsoName }}\"", + "confirmation-modal.delete-eperson.cancel": "Otkazati", + "confirmation-modal.delete-eperson.confirm": "Izbrisati", + "confirmation-modal.delete-profile.header": "IzbriÅ¡ite profil", + "confirmation-modal.delete-profile.info": "Da li ste sigurni da želite da izbriÅ¡ete svoj profil", + "confirmation-modal.delete-profile.cancel": "Otkazati", + "confirmation-modal.delete-profile.confirm": "Izbrisati", + "confirmation-modal.delete-subscription.header": "Ukloniti pretplatu", + "confirmation-modal.delete-subscription.info": "Da li ste sigurni da želite da izbriÅ¡ete pretplatu za \"{{ dsoName }}\"", + "confirmation-modal.delete-subscription.cancel": "Otkazati", + "confirmation-modal.delete-subscription.confirm": "Izbrisati", + "error.bitstream": "GreÅ¡ka pri preuzimanju bitstream-a", + "error.browse-by": "GreÅ¡ka pri preuzimanju stavki", + "error.collection": "GreÅ¡ka pri preuzimanju kolekcije", + "error.collections": "GreÅ¡ka pri preuzimanju kolekcija", + "error.community": "GreÅ¡ka pri preuzimanju zajednice", + "error.identifier": "Nije pronaÄ‘ena nijedna stavka za identifikator", + "error.default": "GreÅ¡ka", + "error.item": "GreÅ¡ka pri preuzimanju stavke", + "error.items": "GreÅ¡ka pri preuzimanju stavki", + "error.objects": "GreÅ¡ka pri preuzimanju objekata", + "error.recent-submissions": "GreÅ¡ka pri preuzimanju nedavnih podnesaka", + "error.search-results": "GreÅ¡ka pri preuzimanju rezultata pretrage", + "error.invalid-search-query": "Upit za pretragu nije ispravan. Proverite najbolja reÅ¡enja za <a href=\"https://solr.apache.org/guide/kueri-sintak-and-parsing.html\" target=\"_blank\">Solr sintaksu upita</a> za dodatne informacije o ovoj greÅ¡ci .", + "error.sub-collections": "GreÅ¡ka pri preuzimanju podkolekcija", + "error.sub-communities": "GreÅ¡ka pri preuzimanju podzajednica", + "error.submission.sections.init-form-error": "DoÅ¡lo je do greÅ¡ke tokom inicijalizacije odeljka, molimo proverite konfiguraciju obrasca za unos. Detalji su ispod: <br> <br>", + "error.top-level-communities": "GreÅ¡ka pri preuzimanju zajednica najviÅ¡eg nivoa", + "error.validation.license.notgranted": "Morate dodeliti ovu licencu da biste dovrÅ¡ili svoj podnesak. Ako u ovom trenutku niste u mogućnosti da dodelite ovu licencu, možete da saÄuvate svoj rad i vratite se kasnije ili uklonite podnesak.", + "error.validation.pattern": "Ovaj unos je ograniÄen trenutnim obrascem: {{ pattern }}.", + "error.validation.filerequired": "Otpremanje fajla je obavezno", + "error.validation.required": "Ovo polje je obavezno", + "error.validation.NotValidEmail": "Ovaj e-mail nije važeći e-mail", + "error.validation.emailTaken": "Ova e-mail adresa je već zauzeta", + "error.validation.groupExists": "Ova grupa već postoji", + "error.validation.metadata.name.invalid-pattern": "Ovo polje ne može da sadrži taÄke, zareze ili razmake. Umesto toga, koristite polja Element i kvalifikator", + "error.validation.metadata.name.max-length": "Ovo polje ne sme da sadrži viÅ¡e od 32 znaka", + "error.validation.metadata.namespace.max-length": "Ovo polje ne sme da sadrži viÅ¡e od 256 znakova", + "error.validation.metadata.element.invalid-pattern": "Ovo polje ne može da sadrži taÄke, zareze ili razmake. Umesto toga, koristite polje Kvalifikator", + "error.validation.metadata.element.max-length": "Ovo polje ne sme da sadrži viÅ¡e od 64 znaka", + "error.validation.metadata.qualifier.invalid-pattern": "Ovo polje ne može da sadrži taÄke, zareze ili razmake", + "error.validation.metadata.qualifier.max-length": "Ovo polje ne sme da sadrži viÅ¡e od 64 znaka", + "feed.description": "Syndication feed", + "file-section.error.header": "GreÅ¡ka pri pribavljanju fajlova za ovu stavku", + "footer.copyright": "autorska prava © 2002-{{ year }}", + "footer.link.dspace": "DSpace softver", + "footer.link.lyrasis": "LIRASIS", + "footer.link.cookies": "PodeÅ¡avanja kolaÄića", + "footer.link.privacy-policy": "Pravila o privatnosti", + "footer.link.end-user-agreement": "Ugovor sa krajnjim korisnikom", + "footer.link.feedback": "PoÅ¡alji povratne informacije", + "forgot-email.form.header": "Zaboravili ste lozinku", + "forgot-email.form.info": "Unesite e-mail adresu povezanu sa nalogom.", + "forgot-email.form.email": "E-mail adresa *", + "forgot-email.form.email.error.required": "Unesite e-mail adresu", + "forgot-email.form.email.error.not-email-form": "Unesite važeću e-mail adresu", + "forgot-email.form.email.hint": "E-mail sa daljim uputstvima biće poslat na ovu adresu ", + "forgot-email.form.submit": "Resetujte lozinku", + "forgot-email.form.success.head": "Poslat je e-mail za resetovanje lozinke", + "forgot-email.form.success.content": "E-mail koji sadrži posebnu URL adresu i dalja uputstva biće poslat na {{ email }} ", + "forgot-email.form.error.head": "GreÅ¡ka pri pokuÅ¡aju resetovanja lozinke", + "forgot-email.form.error.content": "DoÅ¡lo je do greÅ¡ke pri pokuÅ¡aju resetovanja lozinke za nalog povezan sa sledećom adresom e-poÅ¡te: {{ email }}", + "forgot-password.title": "Zaboravili ste lozinku", + "forgot-password.form.head": "Zaboravili ste lozinku", + "forgot-password.form.info": "Unesite novu lozinku u polje ispod i potvrdite je tako Å¡to ćete je ponovo ukucati u drugo polje.", + "forgot-password.form.card.security": "Bezbednost", + "forgot-password.form.identification.header": "Identifikovati", + "forgot-password.form.identification.email": "E-mail adresa:", + "forgot-password.form.label.password": "Lozinka", + "forgot-password.form.label.passwordrepeat": "Ponovo otkucajte da biste potvrdili", + "forgot-password.form.error.empty-password": "Unesite lozinku u polje ispod.", + "forgot-password.form.error.matching-passwords": "Lozinke se ne poklapaju.", + "forgot-password.form.notification.error.title": "GreÅ¡ka pri pokuÅ¡aju slanja nove lozinke", + "forgot-password.form.notification.success.content": "Resetovanje lozinke je bilo uspeÅ¡no. Prijavljeni ste kao kreirani korisnik.", + "forgot-password.form.notification.success.title": "Resetovanje lozinke je zavrÅ¡eno", + "forgot-password.form.submit": "PoÅ¡alji lozinku", + "form.add": "Dodaj joÅ¡", + "form.add-help": "Kliknite ovde da dodate trenutni unos i da dodate joÅ¡ jedan", + "form.cancel": "PoniÅ¡titi, otkazati", + "form.clear": "Jasno", + "form.clear-help": "Kliknite ovde da biste uklonili izabranu vrednost", + "form.discard": "Odbacite", + "form.drag": "Prevucite", + "form.edit": "Uredite", + "form.edit-help": "Kliknite ovde da biste izmenili izabranu vrednost", + "form.first-name": "Ime", + "form.group-collapse": "Skupi", + "form.group-collapse-help": "Kliknite ovde za skupljanje", + "form.group-expand": "ProÅ¡iriti", + "form.group-expand-help": "Kliknite ovde da biste proÅ¡irili i dodali joÅ¡ elemenata", + "form.last-name": "Prezime", + "form.loading": "UÄitavanje...", + "form.lookup": "Potražite", + "form.lookup-help": "Kliknite ovde da biste potražili postojeću vezu", + "form.no-results": "Nisu pronaÄ‘eni rezultati", + "form.no-value": "Nije uneta vrednost", + "form.other-information.email": "E-mail", + "form.other-information.first-name": "Ime", + "form.other-information.insolr": "U Solr indeksu", + "form.other-information.institution": "Institucija", + "form.other-information.last-name": "Prezime", + "form.other-information.orcid": "ORCID", + "form.remove": "Uklonite", + "form.save": "SaÄuvajte", + "form.save-help": "SaÄuvajte izmene", + "form.search": "Pretraga", + "form.search-help": "Kliknite ovde da biste potražili postojeću prepisku", + "form.submit": "SaÄuvajte", + "form.create": "Kreirajte", + "form.repeatable.sort.tip": "Spustite stavku na novu poziciju", + "grant-deny-request-copy.deny": "Ne Å¡alji kopiju", + "grant-deny-request-copy.email.back": "Nazad", + "grant-deny-request-copy.email.message": "Opciona dodatna poruka", + "grant-deny-request-copy.email.message.empty": "Unesite poruku", + "grant-deny-request-copy.email.permissions.info": "Možete iskoristiti ovu priliku da ponovo razmotrite ograniÄenja pristupa dokumentu, kako biste izbegli da odgovorite na ove zahteve. Ako želite da zamolite administratore spremiÅ¡ta da uklone ova ograniÄenja, oznaÄite polje ispod.", + "grant-deny-request-copy.email.permissions.label": "Promenite u otvoreni pristup", + "grant-deny-request-copy.email.send": "PoÅ¡aljite", + "grant-deny-request-copy.email.subject": "Predmet", + "grant-deny-request-copy.email.subject.empty": "Unesite temu", + "grant-deny-request-copy.grant": "PoÅ¡aljite kopiju", + "grant-deny-request-copy.header": "Zahtev za kopiju dokumenta", + "grant-deny-request-copy.home-page": "Vrati me na poÄetnu stranicu", + "grant-deny-request-copy.intro1": "Ako ste jedan od autora dokumenta <a href='{{ url }}'>{{ name }}</a>, onda koristite jednu od opcija u nastavku da odgovorite na zahtev korisnika.", + "grant-deny-request-copy.intro2": "Nakon Å¡to odaberete opciju, biće vam predstavljen predloženi odgovor e-maila koji možete da izmenite.", + "grant-deny-request-copy.processed": "Ovaj zahtev je već obraÄ‘en. Možete koristiti dugme ispod da se vratite na poÄetnu stranicu.", + "grant-request-copy.email.subject": "Zatražite kopiju dokumenta", + "grant-request-copy.error": "DoÅ¡lo je do greÅ¡ke", + "grant-request-copy.header": "Odobrite zahtev za kopiju dokumenta", + "grant-request-copy.intro": "Podnosiocu zahteva će biti poslata poruka. Traženi dokument(i) će biti priložen.", + "grant-request-copy.success": "Zahtev za stavku je uspeÅ¡no odobren", + "health.breadcrumbs": "Zdravlje", + "health-page.heading": "Zdravlje", + "health-page.info-tab": "Informacije", + "health-page.status-tab": "Status", + "health-page.error.msg": "Usluga provere zdravlja je privremeno nedostupna", + "health-page.property.status": "Statusni kod", + "health-page.section.db.title": "Baza podataka", + "health-page.section.geoIp.title": "GeoIp", + "health-page.section.solrAuthorityCore.title": "Solr: authority core", + "health-page.section.solrOaiCore.title": "Solr: oai core", + "health-page.section.solrSearchCore.title": "Solr: search core", + "health-page.section.solrStatisticsCore.title": "Solr: statistics core", + "health-page.section-info.app.title": "Backend aplikacije", + "health-page.section-info.java.title": "Java", + "health-page.status": "Status", + "health-page.status.ok.info": "Operativni", + "health-page.status.error.info": "Otkriveni su problemi", + "health-page.status.warning.info": "Otkriveni su mogući problemi", + "health-page.title": "Zdravlje", + "health-page.section.no-issues": "Nisu otkriveni problemi", + "home.description": "", + "home.breadcrumbs": "Home", + "home.search-form.placeholder": "Pretražite repozitorijum...", + "home.title": "Home", + "home.top-level-communities.head": "Zajednice u DSpace-u", + "home.top-level-communities.help": "Izaberite zajednicu da biste pregledali njene kolekcije.", + "info.end-user-agreement.accept": "ProÄitao sam i prihvatam Ugovorom sa krajnjim korisnikom", + "info.end-user-agreement.accept.error": "DoÅ¡lo je do greÅ¡ke pri prihvatanju Ugovora sa krajnjim korisnikom", + "info.end-user-agreement.accept.success": "UspeÅ¡no ažuriran Ugovor sa krajnjim korisnikom", + "info.end-user-agreement.breadcrumbs": "Ugovor sa krajnjim korisnikom", + "info.end-user-agreement.buttons.cancel": "Otkazati", + "info.end-user-agreement.buttons.save": "SaÄuvati", + "info.end-user-agreement.head": "Ugovor sa krajnjim korisnikom", + "info.end-user-agreement.title": "Ugovor sa krajnjim korisnikom", + "info.end-user-agreement.hosting-country": "Sjedinjene Države", + "info.privacy.breadcrumbs": "Izjava o zaÅ¡titi privatnosti", + "info.privacy.head": "Izjava o zaÅ¡titi privatnosti", + "info.privacy.title": "Izjava o zaÅ¡titi privatnosti", + "info.feedback.breadcrumbs": "Povratna informacija", + "info.feedback.head": "Povratna informacija", + "info.feedback.title": "Povratna informacija", + "info.feedback.info": "Hvala Vam Å¡to ste podelili povratne informacije o DSpace sistemu. Cenimo VaÅ¡e komentare!", + "info.feedback.email_help": "Ova adresa će biti korišćena za praćenje vaÅ¡ih povratnih informacija.", + "info.feedback.send": "PoÅ¡aljite povratne informacije", + "info.feedback.comments": "Komentari", + "info.feedback.email-label": "VaÅ¡ Email", + "info.feedback.create.success": "Povratne informacije su uspeÅ¡no poslate!", + "info.feedback.error.email.required": "Potrebna je važeća e-mail adresa", + "info.feedback.error.message.required": "Komentar je obavezan", + "info.feedback.page-label": "Strana", + "info.feedback.page_help": "Stranica je u vezi sa VaÅ¡im povratnim informacijama", + "item.alerts.private": "Ova stavka se ne može otkriti", + "item.alerts.withdrawn": "Ova stavka je povuÄena", + "item.edit.authorizations.heading": "Pomoću ovog editora možete da pregledate i menjate opcije stavke, kao i da menjate opcije pojedinaÄnih komponenti stavke: pakete i bitstream-ove. Ukratko, stavka je kontejner paketa, a paketi su kontejneri bitstream-ova. Kontejneri obiÄno imaju opcije DODAVANJE/BRISANJE/ÄŒITANJE/PISANJE, dok bitstream-ovi imaju samo opcije ÄŒITANJE/PISANJE.", + "item.edit.authorizations.title": "Izmenite opcije stavke", + "item.badge.private": "Nevidljiv", + "item.badge.withdrawn": "PovuÄeno", + "item.bitstreams.upload.bundle": "Paket", + "item.bitstreams.upload.bundle.placeholder": "Izaberite paket ili unesite novo ime paketa", + "item.bitstreams.upload.bundle.new": "Kreirajte paket", + "item.bitstreams.upload.bundles.empty": "Ova stavka ne sadrži pakete za otpremanje bitstream-ova.", + "item.bitstreams.upload.cancel": "Otkazati", + "item.bitstreams.upload.drop-message": "Unesite datoteku za otpremanje", + "item.bitstreams.upload.item": "Stavka:", + "item.bitstreams.upload.notifications.bundle.created.content": "UspeÅ¡no kreiran novi paket.", + "item.bitstreams.upload.notifications.bundle.created.title": "Kreirani paket", + "item.bitstreams.upload.notifications.upload.failed": "Otpremanje neuspeÅ¡no. Molimo Vas proverite sadržaj pre ponovnog pokuÅ¡aja.", + "item.bitstreams.upload.title": "Otpremanje bitstream-a", + "item.edit.bitstreams.bundle.edit.buttons.upload": "Otpremiti", + "item.edit.bitstreams.bundle.displaying": "Trenutno se prikazuje {{ amount }} bitstream-ova od {{ total }}.", + "item.edit.bitstreams.bundle.load.all": "UÄitajte sve ({{ total }})", + "item.edit.bitstreams.bundle.load.more": "UÄitajte joÅ¡", + "item.edit.bitstreams.bundle.name": "PAKET: {{ name }}", + "item.edit.bitstreams.discard-button": "Odbaciti", + "item.edit.bitstreams.edit.buttons.download": "Preuzimanje", + "item.edit.bitstreams.edit.buttons.drag": "Prevucite", + "item.edit.bitstreams.edit.buttons.edit": "Izmeniti", + "item.edit.bitstreams.edit.buttons.remove": "Ukloniti", + "item.edit.bitstreams.edit.buttons.undo": "PoniÅ¡titi promene", + "item.edit.bitstreams.empty": "Ova stavka ne sadrži bitstream-ove. Kliknite na dugme za otpremanje da biste ga kreirali.", + "item.edit.bitstreams.headers.actions": "Radnje", + "item.edit.bitstreams.headers.bundle": "Paket", + "item.edit.bitstreams.headers.description": "Opis", + "item.edit.bitstreams.headers.format": "Format", + "item.edit.bitstreams.headers.name": "Ime", + "item.edit.bitstreams.notifications.discarded.content": "VaÅ¡e promene su odbaÄene. Da biste ponovo postavili svoje promene, kliknite na dugme \"Opozovi\".", + "item.edit.bitstreams.notifications.discarded.title": "Promene su odbaÄene", + "item.edit.bitstreams.notifications.move.failed.title": "GreÅ¡ka pri pokretanju bitstream-ova", + "item.edit.bitstreams.notifications.move.saved.content": "Promene koje ste pokrenuli u bitstream-ovima i paketima ove stavke su saÄuvane.", + "item.edit.bitstreams.notifications.move.saved.title": "Pokrenute promene su saÄuvane", + "item.edit.bitstreams.notifications.outdated.content": "Stavku na kojoj trenutno radite je promenio drugi korisnik. VaÅ¡e trenutne promene se odbacuju da bi se spreÄili konflikti", + "item.edit.bitstreams.notifications.outdated.title": "Zastarele promene", + "item.edit.bitstreams.notifications.remove.failed.title": "GreÅ¡ka pri brisanju bitstream-a", + "item.edit.bitstreams.notifications.remove.saved.content": "VaÅ¡e izmene u vezi sa uklanjanjem bitstream-ova ove stavke su saÄuvane.", + "item.edit.bitstreams.notifications.remove.saved.title": "Promene uklanjanja su saÄuvane", + "item.edit.bitstreams.reinstate-button": "PoniÅ¡titi", + "item.edit.bitstreams.save-button": "SaÄuvati", + "item.edit.bitstreams.upload-button": "Otpremiti", + "item.edit.delete.cancel": "Otkazati", + "item.edit.delete.confirm": "Izbrisati", + "item.edit.delete.description": "Da li ste sigurni da ovu stavku treba potpuno izbrisati? Oprez: Trenutno ne bi ostao nijedan obrisani zapis.", + "item.edit.delete.error": "DoÅ¡lo je do greÅ¡ke prilikom brisanja stavke", + "item.edit.delete.header": "IzbriÅ¡ite stavku: {{ id }}", + "item.edit.delete.success": "Stavka je izbrisana", + "item.edit.head": "Uredite stavku", + "item.edit.breadcrumbs": "Uredite stavku", + "item.edit.tabs.disabled.tooltip": "Niste ovlašćeni da pristupite ovoj kartici", + "item.edit.tabs.mapper.head": "Mapiranje kolekcije", + "item.edit.tabs.item-mapper.title": "UreÄ‘ivanje stavke - mapiranje kolekcije", + "item.edit.identifiers.doi.status.UNKNOWN": "Nepoznato", + "item.edit.identifiers.doi.status.TO_BE_REGISTERED": "Na Äekanju za registraciju", + "item.edit.identifiers.doi.status.TO_BE_RESERVED": "Na Äekanju za rezervaciju", + "item.edit.identifiers.doi.status.IS_REGISTERED": "Registrovano", + "item.edit.identifiers.doi.status.IS_RESERVED": "Rezervisano", + "item.edit.identifiers.doi.status.UPDATE_RESERVED": "Rezervisano (na Äekanju za ažuriranje)", + "item.edit.identifiers.doi.status.UPDATE_REGISTERED": "Registrovano (na Äekanju za ažuriranje)", + "item.edit.identifiers.doi.status.UPDATE_BEFORE_REGISTRATION": "Na Äekanju za ažuriranje i registraciju", + "item.edit.identifiers.doi.status.TO_BE_DELETED": "Na Äekanju za brisanje", + "item.edit.identifiers.doi.status.DELETED": "Izbrisano", + "item.edit.identifiers.doi.status.PENDING": "Na Äekanju (nije registrovano)", + "item.edit.identifiers.doi.status.MINTED": "Minted (nije registrovano)", + "item.edit.tabs.status.buttons.register-doi.label": "Registrujte novi ili DOI na Äekanju", + "item.edit.tabs.status.buttons.register-doi.button": "Registrujte DOI...", + "item.edit.register-doi.header": "Registrujte novi ili DOI na Äekanju", + "item.edit.register-doi.description": "Pregledajte sve identifikatore i stavke metapodataka na Äekanju ispod i kliknite na Potvrdi da biste nastavili sa DOI registracijom, ili Otkaži da biste se povukli", + "item.edit.register-doi.confirm": "Potvrditi", + "item.edit.register-doi.cancel": "PoniÅ¡titi, otkazati", + "item.edit.register-doi.success": "DOI na Äekanju za registraciju uspeÅ¡no.", + "item.edit.register-doi.error": "GreÅ¡ka pri registraciji DOI", + "item.edit.register-doi.to-update": "Sledeći DOI je već minted i biće na Äekanju za registraciju na mreži", + "item.edit.item-mapper.buttons.add": "Mapirajte stavku u izabrane kolekcije", + "item.edit.item-mapper.buttons.remove": "Uklonite mapiranje stavke za izabrane kolekcije", + "item.edit.item-mapper.cancel": "PoniÅ¡titi, otkazati", + "item.edit.item-mapper.description": "Ovo je alatka za mapiranje stavki koja omogućava administratorima da mapiraju ovu stavku u druge kolekcije. Možete pretražiti kolekcije i mapirati ih ili pregledati listu kolekcija na koje je stavka trenutno mapirana.", + "item.edit.item-mapper.head": "Mapiranje stavke – mapirajte stavku u kolekcije", + "item.edit.item-mapper.item": "Stavka: \"<b>{{name}}</b>\"", + "item.edit.item-mapper.no-search": "Unesite upit za pretragu", + "item.edit.item-mapper.notifications.add.error.content": "DoÅ¡lo je do greÅ¡aka pri mapiranju stavke u {{amount}} kolekcije.", + "item.edit.item-mapper.notifications.add.error.head": "GreÅ¡ke u mapiranju", + "item.edit.item-mapper.notifications.add.success.content": "Stavka je uspeÅ¡no mapirana u {{amount}} kolekcije.", + "item.edit.item-mapper.notifications.add.success.head": "Mapiranje je zavrÅ¡eno", + "item.edit.item-mapper.notifications.remove.error.content": "DoÅ¡lo je do greÅ¡aka pri uklanjanju mapiranja na {{amount}} kolekcije.", + "item.edit.item-mapper.notifications.remove.error.head": "Uklanjanje greÅ¡aka u mapiranju", + "item.edit.item-mapper.notifications.remove.success.content": "UspeÅ¡no je uklonjeno mapiranje stavke u {{amount}} kolekcije.", + "item.edit.item-mapper.notifications.remove.success.head": "Uklanjanje mapiranja je zavrÅ¡eno", + "item.edit.item-mapper.search-form.placeholder": "Pretraži kolekcije...", + "item.edit.item-mapper.tabs.browse": "Pregledajte mapirane kolekcije", + "item.edit.item-mapper.tabs.map": "Mapirajte nove kolekcije", + "item.edit.metadata.add-button": "Dodati", + "item.edit.metadata.discard-button": "Odbaciti", + "item.edit.metadata.edit.buttons.confirm": "Potvrditi", + "item.edit.metadata.edit.buttons.drag": "Prevucite da biste promenili redosled", + "item.edit.metadata.edit.buttons.edit": "Urediti", + "item.edit.metadata.edit.buttons.remove": "Ukloniti", + "item.edit.metadata.edit.buttons.undo": "PoniÅ¡titi promene", + "item.edit.metadata.edit.buttons.unedit": "Zaustaviti ureÄ‘ivanje", + "item.edit.metadata.edit.buttons.virtual": "Ovo je virtuelna vrednost metapodataka, odnosno vrednost nasleÄ‘ena od povezanog entiteta. Ne može se direktno menjati. Dodajte ili uklonite odgovarajući odnos na kartici \"Odnosi\".", + "item.edit.metadata.empty": "Stavka trenutno ne sadrži nikakve metapodatke. Kliknite na Dodaj da biste poÄeli da dodajete vrednost metapodataka.", + "item.edit.metadata.headers.edit": "Urediti", + "item.edit.metadata.headers.field": "Polje", + "item.edit.metadata.headers.language": "Jezik", + "item.edit.metadata.headers.value": "Vrednost", + "item.edit.metadata.metadatafield.error": "DoÅ¡lo je do greÅ¡ke pri proveri polja metapodataka", + "item.edit.metadata.metadatafield.invalid": "Izaberite važeće polje za metapodatke", + "item.edit.metadata.notifications.discarded.content": "VaÅ¡e promene su odbaÄene. Da biste vratili svoje promene, kliknite na dugme \"PoniÅ¡ti\".", + "item.edit.metadata.notifications.discarded.title": "Promene su odbaÄene", + "item.edit.metadata.notifications.error.title": "DoÅ¡lo je do greÅ¡ke", + "item.edit.metadata.notifications.invalid.content": "VaÅ¡e promene nisu saÄuvane. Uverite se da su sva polja važeća pre nego Å¡to saÄuvate.", + "item.edit.metadata.notifications.invalid.title": "Metapodaci su nevažeći", + "item.edit.metadata.notifications.outdated.content": "Stavku na kojoj trenutno radite je promenio drugi korisnik. VaÅ¡e trenutne promene se odbacuju da bi se spreÄili konflikti", + "item.edit.metadata.notifications.outdated.title": "Promene su zastarele", + "item.edit.metadata.notifications.saved.content": "VaÅ¡e promene metapodataka ove stavke su saÄuvane.", + "item.edit.metadata.notifications.saved.title": "Metapodaci su saÄuvani", + "item.edit.metadata.reinstate-button": "PoniÅ¡titi", + "item.edit.metadata.reset-order-button": "PoniÅ¡tite promenu redosleda", + "item.edit.metadata.save-button": "SaÄuvati", + "item.edit.modify.overview.field": "Polje", + "item.edit.modify.overview.language": "Jezik", + "item.edit.modify.overview.value": "Vrednost", + "item.edit.move.cancel": "Nazad", + "item.edit.move.save-button": "SaÄuvati", + "item.edit.move.discard-button": "Odbaciti", + "item.edit.move.description": "Izaberite kolekciju u koju želite da premestite ovu stavku. Da biste suzili listu prikazanih kolekcija, možete da unesete upit za pretragu u okvir.", + "item.edit.move.error": "DoÅ¡lo je do greÅ¡ke pri pokuÅ¡aju premeÅ¡tanja stavke", + "item.edit.move.head": "Premestite stavku: {{id}}", + "item.edit.move.inheritpolicies.checkbox": "Smernice nasleÄ‘ivanja", + "item.edit.move.inheritpolicies.description": "Nasledite podrazumevane smernice odrediÅ¡ne kolekcije", + "item.edit.move.move": "Premestite", + "item.edit.move.processing": "PremeÅ¡tanje...", + "item.edit.move.search.placeholder": "Unesite upit za pretragu da biste potražili kolekcije", + "item.edit.move.success": "Stavka je uspeÅ¡no premeÅ¡tena", + "item.edit.move.title": "Premestite stavku", + "item.edit.private.cancel": "PoniÅ¡titi, otkazati", + "item.edit.private.confirm": "UÄinite nepristupaÄnim", + "item.edit.private.description": "Da li ste sigurni da ova stavka treba da bude nepristupaÄna u arhivi?", + "item.edit.private.error": "DoÅ¡lo je do greÅ¡ke pri postavljanju nepristupaÄne stavke", + "item.edit.private.header": "UÄinite stavku nepristupaÄnom: {{ id }}", + "item.edit.private.success": "Stavka je sada nepristupaÄna", + "item.edit.public.cancel": "PoniÅ¡titi, otkazati", + "item.edit.public.confirm": "UÄinite pristupaÄnim", + "item.edit.public.description": "Da li ste sigurni da ova stavka treba da bude pristupaÄna u arhivi?", + "item.edit.public.error": "DoÅ¡lo je do greÅ¡ke pri omogućavanju vidljivosti stavke", + "item.edit.public.header": "UÄinite stavku vidljivom: {{ id }}", + "item.edit.public.success": "Stavka je sada vidljiva", + "item.edit.reinstate.cancel": "Otkazati", + "item.edit.reinstate.confirm": "Obnoviti", + "item.edit.reinstate.description": "Da li ste sigurni da ovu stavku treba vratiti u arhivu?", + "item.edit.reinstate.error": "DoÅ¡lo je do greÅ¡ke pri vraćanju stavke", + "item.edit.reinstate.header": "Vratite stavku: {{ id }}", + "item.edit.reinstate.success": "Stavka je uspeÅ¡no vraćena", + "item.edit.relationships.discard-button": "Odbaciti", + "item.edit.relationships.edit.buttons.add": "Dodati", + "item.edit.relationships.edit.buttons.remove": "Ukloniti", + "item.edit.relationships.edit.buttons.undo": "PoniÅ¡titi promene", + "item.edit.relationships.no-relationships": "Nema relacija", + "item.edit.relationships.notifications.discarded.content": "VaÅ¡e promene su odbaÄene. Da biste vratili svoje promene, kliknite na dugme \"PoniÅ¡titi\".", + "item.edit.relationships.notifications.discarded.title": "Promene su odbaÄene", + "item.edit.relationships.notifications.failed.title": "GreÅ¡ka pri izmeni relacija", + "item.edit.relationships.notifications.outdated.content": "Stavku na kojoj trenutno radite je promenio drugi korisnik. VaÅ¡e trenutne promene su odbaÄene da bi se spreÄili konflikti", + "item.edit.relationships.notifications.outdated.title": "Zastarele promene", + "item.edit.relationships.notifications.saved.content": "VaÅ¡e promene u relacijama ove stavke su saÄuvane.", + "item.edit.relationships.notifications.saved.title": "Relacije su saÄuvane", + "item.edit.relationships.reinstate-button": "PoniÅ¡ti", + "item.edit.relationships.save-button": "SaÄuvati", + "item.edit.relationships.no-entity-type": "Dodajte metapodatke \"dspace.entity.type\" da biste omogućili relacije za ovu stavku", + "item.edit.return": "Nazad", + "item.edit.tabs.bitstreams.head": "Bitstream-ovi", + "item.edit.tabs.bitstreams.title": "Izmena stavke - Bitstream-ovi", + "item.edit.tabs.curate.head": "Kuriranje", + "item.edit.tabs.curate.title": "Izmena stavke - Kuriranje", + "item.edit.curate.title": "Kuriranje stavke: {{item}}", + "item.edit.tabs.access-control.head": "Kontrola pristupa", + "item.edit.tabs.access-control.title": "Izmena stavke - Kontrola pristupa", + "item.edit.tabs.metadata.head": "Metapodaci", + "item.edit.tabs.metadata.title": "Izmena stavke – Metapodaci", + "item.edit.tabs.relationships.head": "Relacije", + "item.edit.tabs.relationships.title": "Izmena stavke - Relacije", + "item.edit.tabs.status.buttons.authorizations.button": "Ovlašćenja...", + "item.edit.tabs.status.buttons.authorizations.label": "Izmenite smernice ovlašćenja stavke", + "item.edit.tabs.status.buttons.delete.button": "Trajno izbrisati", + "item.edit.tabs.status.buttons.delete.label": "Potpuno izbrisati stavku", + "item.edit.tabs.status.buttons.mappedCollections.button": "Mapirane kolekcije", + "item.edit.tabs.status.buttons.mappedCollections.label": "Upravljajte mapiranim kolekcijama", + "item.edit.tabs.status.buttons.move.button": "Premesti ovu stavku u drugu kolekciju", + "item.edit.tabs.status.buttons.move.label": "Premesti stavku u drugu kolekciju", + "item.edit.tabs.status.buttons.private.button": "Postavite da bude nevidljivo...", + "item.edit.tabs.status.buttons.private.label": "Postavite stavku da bude nevidljiva", + "item.edit.tabs.status.buttons.public.button": "Postavite da bude vidljivo...", + "item.edit.tabs.status.buttons.public.label": "Postavite stavku da bude vidljiva", + "item.edit.tabs.status.buttons.reinstate.button": "Ponovo postavite...", + "item.edit.tabs.status.buttons.reinstate.label": "Vratite stavku u repozitorijum", + "item.edit.tabs.status.buttons.unauthorized": "Niste ovlašćeni da izvrÅ¡ite ovu radnju", + "item.edit.tabs.status.buttons.withdraw.button": "Povucite ovu stavku", + "item.edit.tabs.status.buttons.withdraw.label": "Povucite stavku iz repozitorijuma", + "item.edit.tabs.status.description": "DobrodoÅ¡li na stranicu za upravljanje stavkama. Odavde možete povući, vratiti, premestiti ili izbrisati stavku. TakoÄ‘e možete ažurirati ili dodati nove metapodatke / bitstream-ove na drugim karticama.", + "item.edit.tabs.status.head": "Status", + "item.edit.tabs.status.labels.handle": "Handle", + "item.edit.tabs.status.labels.id": "Interni ID stavke", + "item.edit.tabs.status.labels.itemPage": "Stranica stavke", + "item.edit.tabs.status.labels.lastModified": "Poslednja izmena", + "item.edit.tabs.status.title": "Izmena stavke - Status", + "item.edit.tabs.versionhistory.head": "Istorija verzija", + "item.edit.tabs.versionhistory.title": "Izmena stavke - Istorija verzija", + "item.edit.tabs.versionhistory.under-construction": "Izmena ili dodavanje novih verzija joÅ¡ uvek nije moguće u ovom korisniÄkom interfejsu.", + "item.edit.tabs.view.head": "Prikaži stavku", + "item.edit.tabs.view.title": "Izmeni stavku - Prikaži", + "item.edit.withdraw.cancel": "Otkazati", + "item.edit.withdraw.confirm": "Povucite", + "item.edit.withdraw.description": "Da li ste sigurni da ovu stavku treba povući iz arhive?", + "item.edit.withdraw.error": "DoÅ¡lo je do greÅ¡ke pri povlaÄenju stavke", + "item.edit.withdraw.header": "Povucite stavku: {{ id }}", + "item.edit.withdraw.success": "Stavka je uspeÅ¡no povuÄena", + "item.orcid.return": "Nazad", + "item.listelement.badge": "Stavka", + "item.page.description": "Opis", + "item.page.journal-issn": "ISSN Äasopisa", + "item.page.journal-title": "Naslov Äasopisa", + "item.page.publisher": "IzdavaÄ", + "item.page.titleprefix": "Stavka:", + "item.page.volume-title": "Naslov sveske", + "item.search.results.head": "Rezultati pretrage stavki", + "item.search.title": "Pretraga stavke", + "item.truncatable-part.show-more": "Prikažite joÅ¡", + "item.truncatable-part.show-less": "Skupiti", + "workflow-item.search.result.delete-supervision.modal.header": "IzbriÅ¡ite nalog za nadzor", + "workflow-item.search.result.delete-supervision.modal.info": "Da li ste sigurni da želite da izbriÅ¡ete nalog za nadzor", + "workflow-item.search.result.delete-supervision.modal.cancel": "Otkazati", + "workflow-item.search.result.delete-supervision.modal.confirm": "Izbrisati", + "workflow-item.search.result.notification.deleted.success": "UspeÅ¡no je izbrisan nalog za nadzor \"{{name}}\"", + "workflow-item.search.result.notification.deleted.failure": "NeuspeÅ¡no brisanje naloga za nadzor \"{{name}}\"", + "workflow-item.search.result.list.element.supervised-by": "Pregledao:", + "workflow-item.search.result.list.element.supervised.remove-tooltip": "Ukloniti grupu za nadzor", + "item.page.abstract": "Sažetak", + "item.page.author": "Autori", + "item.page.citation": "Citat", + "item.page.collections": "Kolekcije", + "item.page.collections.loading": "UÄitavanje...", + "item.page.collections.load-more": "UÄitajte joÅ¡", + "item.page.date": "Datum", + "item.page.edit": "Izmenite ovu stavku", + "item.page.files": "Fajlovi", + "item.page.filesection.description": "Opis:", + "item.page.filesection.download": "Preuzimanje", + "item.page.filesection.format": "Format:", + "item.page.filesection.name": "ime:", + "item.page.filesection.size": "VeliÄina:", + "item.page.journal.search.title": "ÄŒlanci u ovom Äasopisu", + "item.page.link.full": "Pun zapis stavke", + "item.page.link.simple": "Jednostavan zapis stavke", + "item.page.orcid.title": "ORCID", + "item.page.orcid.tooltip": "Otvorite stranicu za podeÅ¡avanje ORCID-a", + "item.page.person.search.title": "ÄŒlanci ovog autora", + "item.page.related-items.view-more": "Prikaži joÅ¡ {{ amount}}", + "item.page.related-items.view-less": "Sakrij poslednji {{ amount}}", + "item.page.relationships.isAuthorOfPublication": "Publikacije", + "item.page.relationships.isJournalOfPublication": "Publikacije", + "item.page.relationships.isOrgUnitOfPerson": "Autori", + "item.page.relationships.isOrgUnitOfProject": "IstraživaÄki projekti", + "item.page.subject": "KljuÄne reÄi", + "item.page.uri": "URI", + "item.page.bitstreams.view-more": "Prikaži viÅ¡e", + "item.page.bitstreams.collapse": "Skupiti", + "item.page.filesection.original.bundle": "Originalni paket", + "item.page.filesection.license.bundle": "Licencni paket", + "item.page.return": "Nazad", + "item.page.version.create": "Kreirajte novu verziju", + "item.page.version.hasDraft": "Nova verzija se ne može kreirati zato Å¡to je u toku podnoÅ¡enje", + "item.page.claim.button": "Potvrda", + "item.page.claim.tooltip": "Potvrdi ovu stavku kao profil", + "item.preview.dc.identifier.uri": "Identifikator:", + "item.preview.dc.contributor.author": "Autori:", + "item.preview.dc.date.issued": "Datum objavljivanja:", + "item.preview.dc.description.abstract": "Sažetak:", + "item.preview.dc.identifier.other": "Drugi identifikator:", + "item.preview.dc.language.iso": "Jezik:", + "item.preview.dc.subject": "Predmeti:", + "item.preview.dc.title": "Naslov:", + "item.preview.dc.type": "Tip:", + "item.preview.oaire.citation.issue": "Izdanje", + "item.preview.oaire.citation.volume": "Opseg", + "item.preview.dc.relation.issn": "ISSN", + "item.preview.dc.identifier.isbn": "ISBN", + "item.preview.dc.identifier": "Identifikator:", + "item.preview.dc.relation.ispartof": "ÄŒasopis ili serija", + "item.preview.dc.identifier.doi": "DOI", + "item.preview.dc.publisher": "IzdavaÄ:", + "item.preview.person.familyName": "prezime:", + "item.preview.person.givenName": "Ime:", + "item.preview.person.identifier.orcid": "ORCID:", + "item.preview.project.funder.name": "Finansijer:", + "item.preview.project.funder.identifier": "Identifikator finansijera:", + "item.preview.oaire.awardNumber": "ID finansiranja:", + "item.preview.dc.title.alternative": "Akronim:", + "item.preview.dc.coverage.spatial": "Jurisdikcija:", + "item.preview.oaire.fundingStream": "Tok finansiranja:", + "item.select.confirm": "Potvrdite izabrano", + "item.select.empty": "Nema stavki za prikaz", + "item.select.table.author": "Autor", + "item.select.table.collection": "Kolekcija", + "item.select.table.title": "Naslov", + "item.version.history.empty": "JoÅ¡ uvek nema drugih verzija za ovu stavku.", + "item.version.history.head": "Istorija verzija", + "item.version.history.return": "Nazad", + "item.version.history.selected": "Izabrana verzija", + "item.version.history.selected.alert": "Trenutno gledate verziju {{verzija}} stavke.", + "item.version.history.table.version": "Verzija", + "item.version.history.table.item": "Stavka", + "item.version.history.table.editor": "Urednik", + "item.version.history.table.date": "Datum", + "item.version.history.table.summary": "Rezime", + "item.version.history.table.workspaceItem": "Stavka radnog prostora", + "item.version.history.table.workflowItem": "Stavka procesa rada", + "item.version.history.table.actions": "Postupak", + "item.version.history.table.action.editWorkspaceItem": "Uredite stavku radnog prostora", + "item.version.history.table.action.editSummary": "Uredite rezime", + "item.version.history.table.action.saveSummary": "SaÄuvajte izmene rezimea", + "item.version.history.table.action.discardSummary": "Odbacite izmene rezimea", + "item.version.history.table.action.newVersion": "Kreirajte novu verziju od ovog", + "item.version.history.table.action.deleteVersion": "IzbriÅ¡ite verziju", + "item.version.history.table.action.hasDraft": "Nova verzija se ne može kreirati zato Å¡to je u toku prihvat u istoriji verzija", + "item.version.notice": "Ovo nije najnovija verzija ove stavke. Najnoviju verziju možete pronaći <a href='{{destination}}'>ovde</a>.", + "item.version.create.modal.header": "Nova verzija", + "item.version.create.modal.text": "Napravite novu verziju za ovu stavku", + "item.version.create.modal.text.startingFrom": "poÄevÅ¡i od verzije {{version}}", + "item.version.create.modal.button.confirm": "Kreirajte", + "item.version.create.modal.button.confirm.tooltip": "Kreirajte novu verziju", + "item.version.create.modal.button.cancel": "PoniÅ¡titi, otkazati", + "item.version.create.modal.button.cancel.tooltip": "Ne kreirajte novu verziju", + "item.version.create.modal.form.summary.label": "Rezime", + "item.version.create.modal.form.summary.placeholder": "Ubacite rezime za novu verziju", + "item.version.create.modal.submitted.header": "Kreiranje nove verzije...", + "item.version.create.modal.submitted.text": "Nova verzija je u izradi. Ovo može potrajati neko vreme ako stavka ima mnogo veza.", + "item.version.create.notification.success": "Nova verzija je napravljena sa brojem verzije {{version}}", + "item.version.create.notification.failure": "Nova verzija nije kreirana", + "item.version.create.notification.inProgress": "Nova verzija se ne može kreirati zato Å¡to je u toku prihvat u istoriji verzija", + "item.version.delete.modal.header": "IzbriÅ¡ite verziju", + "item.version.delete.modal.text": "Da li želite da izbriÅ¡ete verziju {{version}}?", + "item.version.delete.modal.button.confirm": "IzbriÅ¡ite", + "item.version.delete.modal.button.confirm.tooltip": "IzbriÅ¡ite ovu verziju", + "item.version.delete.modal.button.cancel": "PoniÅ¡titi, otkazati", + "item.version.delete.modal.button.cancel.tooltip": "Nemojte brisati ovu verziju", + "item.version.delete.notification.success": "Verzija broj {{version}} je izbrisana", + "item.version.delete.notification.failure": "Verzija broj {{version}} nije izbrisana", + "item.version.edit.notification.success": "Sažetak verzije broj {{version}} je promenjen", + "item.version.edit.notification.failure": "Sažetak verzije broj {{version}} nije promenjen", + "itemtemplate.edit.metadata.add-button": "Dodati", + "itemtemplate.edit.metadata.discard-button": "Odbaciti", + "itemtemplate.edit.metadata.edit.buttons.confirm": "Potvrditi", + "itemtemplate.edit.metadata.edit.buttons.drag": "Prevucite da biste promenili redosled", + "itemtemplate.edit.metadata.edit.buttons.edit": "Izmeniti", + "itemtemplate.edit.metadata.edit.buttons.remove": "Ukloniti", + "itemtemplate.edit.metadata.edit.buttons.undo": "PoniÅ¡titi promene", + "itemtemplate.edit.metadata.edit.buttons.unedit": "Zaustavite izmene", + "itemtemplate.edit.metadata.empty": "Å ablon stavke trenutno ne sadrži nikakve metapodatke. Kliknite na Dodaj da biste zapoÄeli dodavanje vrednosti metapodataka.", + "itemtemplate.edit.metadata.headers.edit": "Izmeniti", + "itemtemplate.edit.metadata.headers.field": "Polje", + "itemtemplate.edit.metadata.headers.language": "Jezik", + "itemtemplate.edit.metadata.headers.value": "Vrednost", + "itemtemplate.edit.metadata.metadatafield.error": "DoÅ¡lo je do greÅ¡ke prilikom provere polja metapodataka", + "itemtemplate.edit.metadata.metadatafield.invalid": "Molimo izaberite važeće polje metapodataka", + "itemtemplate.edit.metadata.notifications.discarded.content": "VaÅ¡e promene su odbaÄene. Da biste vratili svoje promene, kliknite na dugme \"PoniÅ¡ti\".", + "itemtemplate.edit.metadata.notifications.discarded.title": "Promene su odbaÄene", + "itemtemplate.edit.metadata.notifications.error.title": "DoÅ¡lo je do greÅ¡ke", + "itemtemplate.edit.metadata.notifications.invalid.content": "VaÅ¡e promene nisu saÄuvane. Molimo proverite da li su sva polja ispravna pre nego Å¡to saÄuvate.", + "itemtemplate.edit.metadata.notifications.invalid.title": "Metapodaci su nevažeći", + "itemtemplate.edit.metadata.notifications.outdated.content": "Drugi korisnik je promenio Å¡ablon stavke na kome trenutno radite. VaÅ¡e trenutne promene se odbacuju da bi se spreÄili konflikti", + "itemtemplate.edit.metadata.notifications.outdated.title": "Promene su zastarele", + "itemtemplate.edit.metadata.notifications.saved.content": "VaÅ¡e promene metapodataka ovog Å¡ablona stavke su saÄuvane.", + "itemtemplate.edit.metadata.notifications.saved.title": "Metapodaci su saÄuvani", + "itemtemplate.edit.metadata.reinstate-button": "PoniÅ¡titi", + "itemtemplate.edit.metadata.reset-order-button": "PoniÅ¡titi promenu redosleda", + "itemtemplate.edit.metadata.save-button": "SaÄuvati", + "journal.listelement.badge": "ÄŒasopis", + "journal.page.description": "Opis", + "journal.page.edit": "Uredite ovu stavku", + "journal.page.editor": "Glavni urednik", + "journal.page.issn": "ISSN", + "journal.page.publisher": "IzdavaÄ", + "journal.page.titleprefix": "ÄŒasopis:", + "journal.search.results.head": "Rezultati pretrage Äasopisa", + "journal-relationships.search.results.head": "Rezultati pretrage Äasopisa", + "journal.search.title": "Pretraga Äasopisa", + "journalissue.listelement.badge": "Izdanje Äasopisa", + "journalissue.page.description": "Opis", + "journalissue.page.edit": "Izmenite ovu stavku", + "journalissue.page.issuedate": "Datum izdanja", + "journalissue.page.journal-issn": "ÄŒasopis ISSN", + "journalissue.page.journal-title": "Naslov Äasopisa", + "journalissue.page.keyword": "KljuÄne reÄi", + "journalissue.page.number": "Broj", + "journalissue.page.titleprefix": "Izdanje Äasopisa:", + "journalvolume.listelement.badge": "Sveska Äasopisa", + "journalvolume.page.description": "Opis", + "journalvolume.page.edit": "Izmenite ovu stavku", + "journalvolume.page.issuedate": "Datum izdanja", + "journalvolume.page.titleprefix": "Sveska Äasopisa:", + "journalvolume.page.volume": "Sveska", + "iiifsearchable.listelement.badge": "Spisak medija", + "iiifsearchable.page.titleprefix": "Dokument:", + "iiifsearchable.page.doi": "Trajna veza:", + "iiifsearchable.page.issue": "Izdanje:", + "iiifsearchable.page.description": "Opis:", + "iiifviewer.fullscreen.notice": "Koristite ceo ekran da bolje vidite.", + "iiif.listelement.badge": "Image Media", + "iiif.page.titleprefix": "Slika:", + "iiif.page.doi": "Trajna veza:", + "iiif.page.issue": "Izdanje:", + "iiif.page.description": "Opis:", + "loading.bitstream": "UÄitavanje bitstream-a...", + "loading.bitstreams": "UÄitavanje bitstream-ova...", + "loading.browse-by": "UÄitavanje stavki...", + "loading.browse-by-page": "UÄitavanje stranice...", + "loading.collection": "UÄitavanje kolekcije...", + "loading.collections": "UÄitavanje kolekcija...", + "loading.content-source": "UÄitavanje izvora sadržaja...", + "loading.community": "UÄitavanje zajednice...", + "loading.default": "UÄitavanje...", + "loading.item": "UÄitavanje stavke...", + "loading.items": "UÄitavanje stavki...", + "loading.mydspace-results": "UÄitavanje stavki...", + "loading.objects": "UÄitavanje...", + "loading.recent-submissions": "UÄitavanje nedavnih podnesaka...", + "loading.search-results": "UÄitavanje rezultata pretrage...", + "loading.sub-collections": "UÄitavanje potkolekcija...", + "loading.sub-communities": "UÄitavanje podzajednica...", + "loading.top-level-communities": "UÄitavanje zajednica najviÅ¡eg nivoa...", + "login.form.email": "Email adresa", + "login.form.forgot-password": "Zaboravili ste lozinku?", + "login.form.header": "Molimo prijavite se na DSpace", + "login.form.new-user": "Novi korisnik? Kliknite ovde da se registrujete.", + "login.form.or-divider": "ili", + "login.form.oidc": "Prijavite se sa OIDC", + "login.form.orcid": "Prijavite se sa ORCID-om", + "login.form.password": "Lozinka", + "login.form.shibboleth": "Prijavite se sa Shibboleth", + "login.form.submit": "Prijavite se", + "login.title": "Prijavite se", + "login.breadcrumbs": "Prijavite se", + "logout.form.header": "Odjavite se sa DSpace-a", + "logout.form.submit": "Odjavite se", + "logout.title": "Odjavite se", + "menu.header.admin": "Menadžment", + "menu.header.image.logo": "Logo repozitorijuma", + "menu.header.admin.description": "Menadžment meni", + "menu.section.access_control": "Kontrola pristupa", + "menu.section.access_control_authorizations": "Ovlašćenja", + "menu.section.access_control_bulk": "Upravljanje masovnim pristupom", + "menu.section.access_control_groups": "Grupe", + "menu.section.access_control_people": "Ljudi", + "menu.section.admin_search": "Admin pretraga", + "menu.section.browse_community": "Ova zajednica", + "menu.section.browse_community_by_author": "Po autoru", + "menu.section.browse_community_by_issue_date": "Po datumu izdanja", + "menu.section.browse_community_by_title": "Po naslovu", + "menu.section.browse_global": "ÄŒitav repozitorijum", + "menu.section.browse_global_by_author": "Po autoru", + "menu.section.browse_global_by_dateissued": "Po datumu izdanja", + "menu.section.browse_global_by_subject": "Po predmetu", + "menu.section.browse_global_by_srsc": "Po kategoriji predmeta", + "menu.section.browse_global_by_title": "Po naslovu", + "menu.section.browse_global_communities_and_collections": "Zajednice i kolekcije", + "menu.section.control_panel": "Kontrolna tabla", + "menu.section.curation_task": "Kurativni zadatak", + "menu.section.edit": "Urediti", + "menu.section.edit_collection": "Kolekcija", + "menu.section.edit_community": "Zajednica", + "menu.section.edit_item": "Stavka", + "menu.section.export": "Izvoz", + "menu.section.export_collection": "Kolekcija", + "menu.section.export_community": "Zajednica", + "menu.section.export_item": "Stavka", + "menu.section.export_metadata": "Metapodaci", + "menu.section.export_batch": "Grupni izvoz (ZIP)", + "menu.section.icon.access_control": "Odeljak menija Kontrola pristupa", + "menu.section.icon.admin_search": "Odeljak menija za admin pretragu", + "menu.section.icon.control_panel": "Odeljak menija kontrolne table", + "menu.section.icon.curation_tasks": "Odeljak menija Zadatak kuriranja", + "menu.section.icon.edit": "Uredite odeljak menija", + "menu.section.icon.export": "Izvezite odeljak menija", + "menu.section.icon.find": "PronaÄ‘ite odeljak menija", + "menu.section.icon.health": "Odeljak menija za zdravstvenu proveru", + "menu.section.icon.import": "Uvezite odeljak menija", + "menu.section.icon.new": "Novi odeljak menija", + "menu.section.icon.pin": "ZakaÄite boÄnu traku", + "menu.section.icon.processes": "Procesi provere zdravlja", + "menu.section.icon.registries": "Odeljak menija Registri", + "menu.section.icon.statistics_task": "Odeljak menija StatistiÄki zadatak", + "menu.section.icon.workflow": "Odeljak menija Administracija procesa rada", + "menu.section.icon.unpin": "OtkaÄite boÄnu traku", + "menu.section.import": "Uvoz", + "menu.section.import_batch": "Grupni uvoz (ZIP)", + "menu.section.import_metadata": "Metapodaci", + "menu.section.new": "Novo", + "menu.section.new_collection": "Kolekcija", + "menu.section.new_community": "Zajednica", + "menu.section.new_item": "Stavka", + "menu.section.new_item_version": "Verzija stavke", + "menu.section.new_process": "Proces", + "menu.section.pin": "ZakaÄite boÄnu traku", + "menu.section.unpin": "OtkaÄite boÄnu traku", + "menu.section.processes": "Procesi", + "menu.section.health": "Zdravlje", + "menu.section.registries": "Registri", + "menu.section.registries_format": "Format", + "menu.section.registries_metadata": "Metapodaci", + "menu.section.statistics": "Statistika", + "menu.section.statistics_task": "StatistiÄki zadatak", + "menu.section.toggle.access_control": "UkljuÄite odeljak Kontrola pristupa", + "menu.section.toggle.control_panel": "UkljuÄite odeljak Kontrolna tabla", + "menu.section.toggle.curation_task": "UkljuÄi/iskljuÄi odeljak Zadatak kuriranja", + "menu.section.toggle.edit": "UkljuÄite odeljak Uredi", + "menu.section.toggle.export": "UkljuÄite odeljak Izvezi", + "menu.section.toggle.find": "UkljuÄi odeljak PronaÄ‘i", + "menu.section.toggle.import": "UkljuÄite odeljak Uvezi", + "menu.section.toggle.new": "UkljuÄite novi odeljak", + "menu.section.toggle.registries": "UkljuÄite odeljak Registri", + "menu.section.toggle.statistics_task": "UkljuÄi/iskljuÄi odeljak statistiÄki zadatak", + "menu.section.workflow": "Administracija procesa rada", + "metadata-export-search.tooltip": "Izvezite rezultate pretrage kao CSV", + "metadata-export-search.submit.success": "Izvoz je uspeÅ¡no zapoÄet", + "metadata-export-search.submit.error": "Pokretanje izvoza nije uspelo", + "mydspace.breadcrumbs": "Moj DSpace", + "mydspace.description": "", + "mydspace.messages.controller-help": "Izaberite ovu opciju da biste poslali poruku podnosiocu stavke.", + "mydspace.messages.description-placeholder": "Unesite svoju poruku ovde...", + "mydspace.messages.hide-msg": "Sakrijte poruku", + "mydspace.messages.mark-as-read": "OznaÄite kao proÄitano", + "mydspace.messages.mark-as-unread": "OznaÄite kao neproÄitanu", + "mydspace.messages.no-content": "Bez sadržaja.", + "mydspace.messages.no-messages": "JoÅ¡ nema poruka.", + "mydspace.messages.send-btn": "PoÅ¡alji", + "mydspace.messages.show-msg": "Prikaži poruku", + "mydspace.messages.subject-placeholder": "Predmet...", + "mydspace.messages.submitter-help": "Izaberite ovu opciju da biste poslali poruku kontroloru.", + "mydspace.messages.title": "Poruke", + "mydspace.messages.to": "Do", + "mydspace.new-submission": "Novi podnesak", + "mydspace.new-submission-external": "Uvezite metapodatke iz spoljnog izvora", + "mydspace.new-submission-external-short": "Uvezite metapodatke", + "mydspace.results.head": "VaÅ¡i podnesci", + "mydspace.results.no-abstract": "Nema sažetka", + "mydspace.results.no-authors": "Nema autora", + "mydspace.results.no-collections": "Nema kolekcija", + "mydspace.results.no-date": "Nema datuma", + "mydspace.results.no-files": "Nema fajlova", + "mydspace.results.no-results": "Nema stavki za prikaz", + "mydspace.results.no-title": "Bez naslova", + "mydspace.results.no-uri": "Nema URI", + "mydspace.search-form.placeholder": "Pretraga u mydspace...", + "mydspace.show.workflow": "Radni zadaci", + "mydspace.show.workspace": "VaÅ¡i podnesci", + "mydspace.show.supervisedWorkspace": "Nadzirane stavke", + "mydspace.status.mydspaceArchived": "Arhivirano", + "mydspace.status.mydspaceValidation": "Validacija", + "mydspace.status.mydspaceWaitingController": "ÄŒeka se kontroler", + "mydspace.status.mydspaceWorkflow": "Radni proces", + "mydspace.status.mydspaceWorkspace": "Radni prostor", + "mydspace.title": "MyDSpace", + "mydspace.upload.upload-failed": "GreÅ¡ka pri kreiranju novog radnog prostora. Molimo proverite otpremljeni sadržaj pre nego Å¡to pokuÅ¡ate ponovo.", + "mydspace.upload.upload-failed-manyentries": "NeobraÄ‘en fajl. Otkriveno je previÅ¡e unosa, ali je dozvoljen samo za jedan fajl.", + "mydspace.upload.upload-failed-moreonefile": "NeobraÄ‘en zahtev. Dozvoljen je samo jedan fajl.", + "mydspace.upload.upload-multiple-successful": "{{qty}} novih stavki radnog prostora je kreirano.", + "mydspace.view-btn": "Pogled", + "nav.browse.header": "ÄŒitav repozitorijum", + "nav.community-browse.header": "Od zajednice", + "nav.context-help-toggle": "UkljuÄite dodatnu pomoć", + "nav.language": "Promena jezika", + "nav.login": "Prijavi se", + "nav.user-profile-menu-and-logout": "Meni korisniÄkog profila i odjava", + "nav.logout": "Odjaviti se", + "nav.main.description": "Glavna navigaciona traka", + "nav.mydspace": "MyDSpace", + "nav.profile": "Profil", + "nav.search": "Pretraga", + "nav.search.button": "PoÅ¡aljite pretragu", + "nav.statistics.header": "Statistika", + "nav.stop-impersonating": "Prestanite da se predstavljate kao Eperson", + "nav.subscriptions": "Pretplate", + "nav.toggle": "UkljuÄivanje navigacije", + "nav.user.description": "Traka korisniÄkog profila", + "none.listelement.badge": "Stavka", + "orgunit.listelement.badge": "Organizaciona jedinica", + "orgunit.listelement.no-title": "Bez naslova", + "orgunit.page.city": "Grad", + "orgunit.page.country": "Država", + "orgunit.page.dateestablished": "Datum postavljanja", + "orgunit.page.description": "Opis", + "orgunit.page.edit": "Izmeniti ovu stavku", + "orgunit.page.id": "ID", + "orgunit.page.titleprefix": "Organizaciona jedinica:", + "pagination.options.description": "Opcije straniÄenja", + "pagination.results-per-page": "Rezultati po stranici", + "pagination.showing.detail": "{{ range }} od {{ total }}", + "pagination.showing.label": "Prikazuje se", + "pagination.sort-direction": "Opcije sortiranja", + "person.listelement.badge": "Osoba", + "person.listelement.no-title": "Ime nije pronaÄ‘eno", + "person.page.birthdate": "Datum roÄ‘enja", + "person.page.edit": "Izmeniti ovu stavku", + "person.page.email": "Email adresa", + "person.page.firstname": "Ime", + "person.page.jobtitle": "Zvanje", + "person.page.lastname": "Prezime", + "person.page.name": "Ime", + "person.page.link.full": "Prikaži sve metapodatke", + "person.page.orcid": "ORCID", + "person.page.staffid": "ID zaposlenih", + "person.page.titleprefix": "Osoba:", + "person.search.results.head": "Rezultati pretrage osoba", + "person-relationships.search.results.head": "Rezultati pretrage osoba", + "person.search.title": "Pretraga osoba", + "process.new.select-parameters": "Parametri", + "process.new.cancel": "Otkazati", + "process.new.submit": "SaÄuvati", + "process.new.select-script": "Skripta", + "process.new.select-script.placeholder": "Izaberite skriptu...", + "process.new.select-script.required": "Skripta je obavezna", + "process.new.parameter.file.upload-button": "Izaberite fajl...", + "process.new.parameter.file.required": "Molimo izaberite fajl", + "process.new.parameter.string.required": "Vrednost parametra je obavezna", + "process.new.parameter.type.value": "vrednost", + "process.new.parameter.type.file": "fajl", + "process.new.parameter.required.missing": "Sledeći parametri su obavezni, ali joÅ¡ uvek nedostaju:", + "process.new.notification.success.title": "Uspeh", + "process.new.notification.success.content": "Proces je uspeÅ¡no kreiran", + "process.new.notification.error.title": "GreÅ¡ka", + "process.new.notification.error.content": "DoÅ¡lo je do greÅ¡ke pri kreiranju ovog procesa", + "process.new.notification.error.max-upload.content": "Fajl prevazilazi maksimalnu veliÄinu za otpremanje", + "process.new.header": "Kreirajte novi proces", + "process.new.title": "Kreirajte novi proces", + "process.new.breadcrumbs": "Kreirajte novi proces", + "process.detail.arguments": "Argumenti", + "process.detail.arguments.empty": "Ovaj proces ne sadrži argumente", + "process.detail.back": "Nazad", + "process.detail.output": "Izlaz procesa", + "process.detail.logs.button": "Preuzmite izlaz procesa", + "process.detail.logs.loading": "Preuzimanje", + "process.detail.logs.none": "Ovaj proces nema izlaz", + "process.detail.output-files": "Izlazni fajlovi", + "process.detail.output-files.empty": "Ovaj proces ne sadrži izlazne fajlove", + "process.detail.script": "Skripta", + "process.detail.title": "Proces: {{ id }} - {{ name }}", + "process.detail.start-time": "Vreme poÄetka", + "process.detail.end-time": "Vreme zavrÅ¡etka", + "process.detail.status": "Status", + "process.detail.create": "Napravite sliÄan proces", + "process.detail.actions": "Akcije", + "process.detail.delete.button": "IzbriÅ¡ite proces", + "process.detail.delete.header": "IzbriÅ¡ite proces", + "process.detail.delete.body": "Da li ste sigurni da želite da izbriÅ¡ete trenutni proces?", + "process.detail.delete.cancel": "PoniÅ¡titi, otkazati", + "process.detail.delete.confirm": "IzbriÅ¡ite proces", + "process.detail.delete.success": "Proces je uspeÅ¡no obrisan.", + "process.detail.delete.error": "NeÅ¡to je poÅ¡lo naopako prilikom brisanja procesa", + "process.overview.table.finish": "Vreme zavrÅ¡etka (UTC)", + "process.overview.table.id": "ID procesa", + "process.overview.table.name": "Ime", + "process.overview.table.start": "Vreme poÄetka (UTC)", + "process.overview.table.status": "Status", + "process.overview.table.user": "Korisnik", + "process.overview.title": "Pregled procesa", + "process.overview.breadcrumbs": "Pregled procesa", + "process.overview.new": "Novo", + "process.overview.table.actions": "Akcije", + "process.overview.delete": "IzbriÅ¡ite {{count}} procesa", + "process.overview.delete.clear": "OÄistite izbor za brisanje", + "process.overview.delete.processing": "BriÅ¡u se procesi ({{count}}). SaÄekajte da se brisanje u potpunosti zavrÅ¡i. Imajte na umu da ovo može potrajati.", + "process.overview.delete.body": "Da li ste sigurni da želite da izbriÅ¡ete {{count}} proces(e)?", + "process.overview.delete.header": "IzbriÅ¡ite procese", + "process.bulk.delete.error.head": "GreÅ¡ka u procesu brisanja", + "process.bulk.delete.error.body": "Nije moguće izbrisati proces sa ID-om {{processId}}. Preostali procesi će nastaviti da se briÅ¡u.", + "process.bulk.delete.success": "Procesi ({{count}}) su uspeÅ¡no izbrisani", + "profile.breadcrumbs": "Ažuriranje profila", + "profile.card.identify": "Identitet", + "profile.card.security": "Bezbednost", + "profile.form.submit": "SaÄuvati", + "profile.groups.head": "Grupe ovlašćenja kojima pripadate", + "profile.special.groups.head": "Autorizacija posebnih grupa kojima pripadate", + "profile.head": "Ažuriranje profil", + "profile.metadata.form.error.firstname.required": "Ime je obavezno", + "profile.metadata.form.error.lastname.required": "Prezime je obavezno", + "profile.metadata.form.label.email": "Email adresa", + "profile.metadata.form.label.firstname": "Ime", + "profile.metadata.form.label.language": "Jezik", + "profile.metadata.form.label.lastname": "Prezime", + "profile.metadata.form.label.phone": "Kontakt telefon", + "profile.metadata.form.notifications.success.content": "VaÅ¡e promene na profilu su saÄuvane.", + "profile.metadata.form.notifications.success.title": "Profil je saÄuvan", + "profile.notifications.warning.no-changes.content": "Nisu napravljene nikakve promene na profilu.", + "profile.notifications.warning.no-changes.title": "Bez promene", + "profile.security.form.error.matching-passwords": "Lozinke se ne poklapaju.", + "profile.security.form.info": "Opciono, možete da unesete novu lozinku u polje ispod i potvrdite je tako Å¡to ćete je ponovo ukucati u drugo polje.", + "profile.security.form.label.password": "Lozinka", + "profile.security.form.label.passwordrepeat": "Ponovo otkucajte da biste potvrdili", + "profile.security.form.label.current-password": "Trenutna lozinka", + "profile.security.form.notifications.success.content": "VaÅ¡e promene lozinke su saÄuvane.", + "profile.security.form.notifications.success.title": "Lozinka je saÄuvana", + "profile.security.form.notifications.error.title": "GreÅ¡ka pri promeni lozinki", + "profile.security.form.notifications.error.change-failed": "DoÅ¡lo je do greÅ¡ke pri pokuÅ¡aju promene lozinke. Proverite da li je trenutna lozinka taÄna.", + "profile.security.form.notifications.error.not-same": "Navedene lozinke nisu iste.", + "profile.security.form.notifications.error.general": "Popunite obavezna polja bezbednosnog obrasca.", + "profile.title": "Ažuriranje profila", + "profile.card.researcher": "Profil istraživaÄa", + "project.listelement.badge": "IstraživaÄki projekat", + "project.page.contributor": "Saradnici", + "project.page.description": "Opis", + "project.page.edit": "Uredite ovu stavku", + "project.page.expectedcompletion": "OÄekivani zavrÅ¡etak", + "project.page.funder": "finansijeri", + "project.page.id": "ID", + "project.page.keyword": "KljuÄne reÄi", + "project.page.status": "Status", + "project.page.titleprefix": "IstraživaÄki projekat:", + "project.search.results.head": "Rezultati pretrage projekta", + "project-relationships.search.results.head": "Rezultati pretrage projekta", + "publication.listelement.badge": "Publikacija", + "publication.page.description": "Opis", + "publication.page.edit": "Uredite ovu stavku", + "publication.page.journal-issn": "ÄŒasopis ISSN", + "publication.page.journal-title": "Naslov Äasopisa", + "publication.page.publisher": "IzdavaÄ", + "publication.page.titleprefix": "Publikacija:", + "publication.page.volume-title": "Naslov sveske", + "publication.search.results.head": "Rezultati pretrage publikacije", + "publication-relationships.search.results.head": "Rezultati pretrage publikacije", + "publication.search.title": "Pretraga publikacija", + "media-viewer.next": "Sledeće", + "media-viewer.previous": "Prethodno", + "media-viewer.playlist": "Play lista", + "register-email.title": "Registracija novog korisnika", + "register-page.create-profile.header": "Napravite profil", + "register-page.create-profile.identification.header": "Identifikovati", + "register-page.create-profile.identification.email": "Email adresa", + "register-page.create-profile.identification.first-name": "Ime *", + "register-page.create-profile.identification.first-name.error": "Molimo unesite ime", + "register-page.create-profile.identification.last-name": "Prezime *", + "register-page.create-profile.identification.last-name.error": "Molimo unesite prezime", + "register-page.create-profile.identification.contact": "Kontakt telefon", + "register-page.create-profile.identification.language": "Jezik", + "register-page.create-profile.security.header": "Bezbednost", + "register-page.create-profile.security.info": "Molimo unesite lozinku u polje ispod i potvrdite je tako Å¡to ćete je ponovo uneti u drugo polje.", + "register-page.create-profile.security.label.password": "Lozinka *", + "register-page.create-profile.security.label.passwordrepeat": "Unesite ponovo da potvrdite *", + "register-page.create-profile.security.error.empty-password": "Molimo unesite lozinku u polje ispod.", + "register-page.create-profile.security.error.matching-passwords": "Lozinke se ne poklapaju.", + "register-page.create-profile.submit": "ZavrÅ¡ite registraciju", + "register-page.create-profile.submit.error.content": "NeÅ¡to nije u redu prilikom registracije novog korisnika.", + "register-page.create-profile.submit.error.head": "NeuspeÅ¡na registracija", + "register-page.create-profile.submit.success.content": "Registracija je uspeÅ¡na. Prijavljeni ste kao kreirani korisnik.", + "register-page.create-profile.submit.success.head": "Registracija je zavrÅ¡ena", + "register-page.registration.header": "Registracija novog korisnika", + "register-page.registration.info": "Registrujte nalog da biste se pretplatili na kolekcije za ažuriranja putem email-a i poÅ¡aljite nove stavke na DSpace.", + "register-page.registration.email": "Email adresa *", + "register-page.registration.email.error.required": "Molimo unesite email adresu", + "register-page.registration.email.error.not-email-form": "Molimo unesite važeću email adresu.", + "register-page.registration.email.error.not-valid-domain": "Koristite email sa dozvoljenim domenima: {{ domains }}", + "register-page.registration.email.hint": "Ova adresa će biti verifikovana i korišćena kao vaÅ¡e korisniÄko ime.", + "register-page.registration.submit": "Registrovati", + "register-page.registration.success.head": "Verifikacioni email je poslat", + "register-page.registration.success.content": "Email je poslat na {{ email }} koji sadrži poseban URL i dalja uputstva.", + "register-page.registration.error.head": "GreÅ¡ka pri pokuÅ¡aju registracije email-a", + "register-page.registration.error.content": "DoÅ¡lo je do greÅ¡ke pri registraciji sledeće email adrese: {{ email }}", + "register-page.registration.error.recaptcha": "GreÅ¡ka pri pokuÅ¡aju autentifikacije pomoću recaptcha", + "register-page.registration.google-recaptcha.must-accept-cookies": "Da biste se registrovali, morate prihvatiti kolaÄiće za <b>registraciju i vraćanje lozinke</b> (Google reCaptcha).", + "register-page.registration.error.maildomain": "Ova email adresa nije na listi domena koji se mogu registrovati. Dozvoljeni domeni su {{ domains }}", + "register-page.registration.google-recaptcha.open-cookie-settings": "Otvorite podeÅ¡avanja kolaÄića", + "register-page.registration.google-recaptcha.notification.title": "Google reCaptcha", + "register-page.registration.google-recaptcha.notification.message.error": "DoÅ¡lo je do greÅ¡ke tokom reCaptcha verifikacije", + "register-page.registration.google-recaptcha.notification.message.expired": "Verifikacija je istekla. Molimo potvrdite ponovo.", + "register-page.registration.info.maildomain": "Nalozi se mogu registrovati za email adrese domena", + "relationships.add.error.relationship-type.content": "Nije pronaÄ‘eno odgovarajuće podudaranje za tip veze {{ type }} izmeÄ‘u dve stavke", + "relationships.add.error.server.content": "Server je vratio greÅ¡ku", + "relationships.add.error.title": "Nije moguće dodati vezu", + "relationships.isAuthorOf": "Autori", + "relationships.isAuthorOf.Person": "Autori (osoba)", + "relationships.isAuthorOf.OrgUnit": "Autori (organizacione jedinice)", + "relationships.isIssueOf": "Izdanja Äasopisa", + "relationships.isJournalIssueOf": "Izdanja Äasopsa", + "relationships.isJournalOf": "ÄŒasopisi", + "relationships.isOrgUnitOf": "Organizacione jedinice", + "relationships.isPersonOf": "Autori", + "relationships.isProjectOf": "IstraživaÄki projekti", + "relationships.isPublicationOf": "Izdanja", + "relationships.isPublicationOfJournalIssue": "ÄŒlanci", + "relationships.isSingleJournalOf": "ÄŒasopis", + "relationships.isSingleVolumeOf": "Sveska Äasopisa", + "relationships.isVolumeOf": "Sveske Äasopisa", + "relationships.isContributorOf": "Saradnici", + "relationships.isContributorOf.OrgUnit": "Saradnik (Organizaciona jedinica)", + "relationships.isContributorOf.Person": "Saradnik", + "relationships.isFundingAgencyOf.OrgUnit": "OsnivaÄ", + "repository.image.logo": "Logo repozitorijuma", + "repository.title": "DSpace Repozitorijum", + "repository.title.prefix": "DSpace Repozitorijum ::", + "resource-policies.add.button": "Dodati", + "resource-policies.add.for.": "Dodajte nove smernice", + "resource-policies.add.for.bitstream": "Dodajte nove bitstream smernice", + "resource-policies.add.for.bundle": "Dodajte nove smernice paketa", + "resource-policies.add.for.item": "Dodajte nove smernice stavki", + "resource-policies.add.for.community": "Dodajte nove smernice zajednice", + "resource-policies.add.for.collection": "Dodajte nove smernice kolekcija", + "resource-policies.create.page.heading": "Kreirajte nove smernice resursa za", + "resource-policies.create.page.failure.content": "DoÅ¡lo je do greÅ¡ke pri kreiranju smernica resursa.", + "resource-policies.create.page.success.content": "Operacija uspela", + "resource-policies.create.page.title": "Kreirajte nove smernice resursa", + "resource-policies.delete.btn": "IzbriÅ¡ite izabrano", + "resource-policies.delete.btn.title": "IzbriÅ¡ite izabrane smernice resursa", + "resource-policies.delete.failure.content": "DoÅ¡lo je do greÅ¡ke prilikom brisanja izabranih smernica resursa.", + "resource-policies.delete.success.content": "Operacija uspela", + "resource-policies.edit.page.heading": "Izmenite smernice resursa", + "resource-policies.edit.page.failure.content": "DoÅ¡lo je do greÅ¡ke prilikom izmene smernica resursa.", + "resource-policies.edit.page.target-failure.content": "DoÅ¡lo je do greÅ¡ke prilikom izmene cilja (ePerson ili grupe) smernica resursa.", + "resource-policies.edit.page.other-failure.content": "DoÅ¡lo je do greÅ¡ke prilikom izmene smernica resursa. Cilj (ePerson ili grupa) je uspeÅ¡no ažuriran.", + "resource-policies.edit.page.success.content": "Operacija uspela", + "resource-policies.edit.page.title": "Izmena smernica resursa", + "resource-policies.form.action-type.label": "Izabrati vrstu akcije", + "resource-policies.form.action-type.required": "Morate da izaberete akciju polise resursa.", + "resource-policies.form.eperson-group-list.label": "Eperson ili grupa koja će dobiti ovlašćenje", + "resource-policies.form.eperson-group-list.select.btn": "Izabrati", + "resource-policies.form.eperson-group-list.tab.eperson": "Potražite ePerson", + "resource-policies.form.eperson-group-list.tab.group": "Potražite grupu", + "resource-policies.form.eperson-group-list.table.headers.action": "Postupak", + "resource-policies.form.eperson-group-list.table.headers.id": "ID", + "resource-policies.form.eperson-group-list.table.headers.name": "Ime", + "resource-policies.form.eperson-group-list.modal.header": "Ne može se promeniti tip", + "resource-policies.form.eperson-group-list.modal.text1.toGroup": "Nije moguće zameniti ePerson sa grupom.", + "resource-policies.form.eperson-group-list.modal.text1.toEPerson": "Nije moguće zameniti grupu sa ePerson.", + "resource-policies.form.eperson-group-list.modal.text2": "IzbriÅ¡ite trenutne polise resursa i kreirajte nove sa željenim tipom.", + "resource-policies.form.eperson-group-list.modal.close": "Ok", + "resource-policies.form.date.end.label": "Datum zavrÅ¡etka", + "resource-policies.form.date.start.label": "Datum poÄetka", + "resource-policies.form.description.label": "Opis", + "resource-policies.form.name.label": "Ime", + "resource-policies.form.policy-type.label": "Izaberite tip polise", + "resource-policies.form.policy-type.required": "Morate da izaberete tip polise resursa.", + "resource-policies.table.headers.action": "Postupak", + "resource-policies.table.headers.date.end": "Datum zavrÅ¡etka", + "resource-policies.table.headers.date.start": "Datum poÄetka", + "resource-policies.table.headers.edit": "Izmeniti", + "resource-policies.table.headers.edit.group": "Izmeniti grupu", + "resource-policies.table.headers.edit.policy": "Izmeniti smernice", + "resource-policies.table.headers.eperson": "Eperson", + "resource-policies.table.headers.group": "Grupa", + "resource-policies.table.headers.id": "ID", + "resource-policies.table.headers.name": "Ime", + "resource-policies.table.headers.policyType": "tip", + "resource-policies.table.headers.title.for.bitstream": "Smernice za bitstream", + "resource-policies.table.headers.title.for.bundle": "Smernice za paket", + "resource-policies.table.headers.title.for.item": "Smernice za stavku", + "resource-policies.table.headers.title.for.community": "Smernice za zajednicu", + "resource-policies.table.headers.title.for.collection": "Smernice za kolekciju", + "search.description": "", + "search.switch-configuration.title": "Prikaži", + "search.title": "Pretraga", + "search.breadcrumbs": "Pretraga", + "search.search-form.placeholder": "Pretražite spremiÅ¡te...", + "search.filters.applied.f.author": "Autor", + "search.filters.applied.f.dateIssued.max": "Datum zavrÅ¡etka", + "search.filters.applied.f.dateIssued.min": "Datum poÄetka", + "search.filters.applied.f.dateSubmitted": "Datum prihvatanja", + "search.filters.applied.f.discoverable": "Nije moguće otkriti", + "search.filters.applied.f.entityType": "Tip stavke", + "search.filters.applied.f.has_content_in_original_bundle": "Ima fajlove", + "search.filters.applied.f.itemtype": "Tip", + "search.filters.applied.f.namedresourcetype": "Status", + "search.filters.applied.f.subject": "Predmet", + "search.filters.applied.f.submitter": "Podnosilac", + "search.filters.applied.f.jobTitle": "Zvanje", + "search.filters.applied.f.birthDate.max": "RoÄ‘enje - krajnji datum", + "search.filters.applied.f.birthDate.min": "RoÄ‘enje - poÄetni datum", + "search.filters.applied.f.supervisedBy": "Pregledao", + "search.filters.applied.f.withdrawn": "PovuÄen", + "search.filters.filter.author.head": "Autor", + "search.filters.filter.author.placeholder": "Ime autora", + "search.filters.filter.author.label": "Pretražite ime autora", + "search.filters.filter.birthDate.head": "Datum roÄ‘enja", + "search.filters.filter.birthDate.placeholder": "Datum roÄ‘enja", + "search.filters.filter.birthDate.label": "Pretražite datum roÄ‘enja", + "search.filters.filter.collapse": "Skupi filter", + "search.filters.filter.creativeDatePublished.head": "Datum objavljivanja", + "search.filters.filter.creativeDatePublished.placeholder": "Datum objavljivanja", + "search.filters.filter.creativeDatePublished.label": "Pretražite datum objavljivanja", + "search.filters.filter.creativeWorkEditor.head": "Editor", + "search.filters.filter.creativeWorkEditor.placeholder": "Editor", + "search.filters.filter.creativeWorkEditor.label": "Pretraga urednika", + "search.filters.filter.creativeWorkKeywords.head": "Predmet", + "search.filters.filter.creativeWorkKeywords.placeholder": "Predmet", + "search.filters.filter.creativeWorkKeywords.label": "Predmet pretrage", + "search.filters.filter.creativeWorkPublisher.head": "IzdavaÄ", + "search.filters.filter.creativeWorkPublisher.placeholder": "IzdavaÄ", + "search.filters.filter.creativeWorkPublisher.label": "Pretraga izdavaÄa", + "search.filters.filter.dateIssued.head": "Datum", + "search.filters.filter.dateIssued.max.placeholder": "Maksimalni datum", + "search.filters.filter.dateIssued.max.label": "Kraj", + "search.filters.filter.dateIssued.min.placeholder": "Minimalni datum", + "search.filters.filter.dateIssued.min.label": "PoÄetak", + "search.filters.filter.dateSubmitted.head": "Datum prihvatanja", + "search.filters.filter.dateSubmitted.placeholder": "Datum prihvatanja", + "search.filters.filter.dateSubmitted.label": "Pretraga datuma prihvatanja", + "search.filters.filter.discoverable.head": "Nije moguće otkriti", + "search.filters.filter.withdrawn.head": "PovuÄen", + "search.filters.filter.entityType.head": "Tip stavke", + "search.filters.filter.entityType.placeholder": "Tip stavke", + "search.filters.filter.entityType.label": "Pretražite tip stavke", + "search.filters.filter.expand": "ProÅ¡iri filter", + "search.filters.filter.has_content_in_original_bundle.head": "Ima fajlove", + "search.filters.filter.itemtype.head": "Tip", + "search.filters.filter.itemtype.placeholder": "Tip", + "search.filters.filter.itemtype.label": "Tip pretrage", + "search.filters.filter.jobTitle.head": "Zvanje", + "search.filters.filter.jobTitle.placeholder": "Zvanje", + "search.filters.filter.jobTitle.label": "Pretraga zvanja", + "search.filters.filter.knowsLanguage.head": "Poznati jezik", + "search.filters.filter.knowsLanguage.placeholder": "Poznati jezik", + "search.filters.filter.knowsLanguage.label": "Pretražite poznati jezik", + "search.filters.filter.namedresourcetype.head": "Status", + "search.filters.filter.namedresourcetype.placeholder": "Status", + "search.filters.filter.namedresourcetype.label": "Status pretrage", + "search.filters.filter.objectpeople.head": "Ljudi", + "search.filters.filter.objectpeople.placeholder": "Ljudi", + "search.filters.filter.objectpeople.label": "Pretražite ljude", + "search.filters.filter.organizationAddressCountry.head": "Država", + "search.filters.filter.organizationAddressCountry.placeholder": "Država", + "search.filters.filter.organizationAddressCountry.label": "Pretražite državu", + "search.filters.filter.organizationAddressLocality.head": "Grad", + "search.filters.filter.organizationAddressLocality.placeholder": "Grad", + "search.filters.filter.organizationAddressLocality.label": "Pretražite grad", + "search.filters.filter.organizationFoundingDate.head": "Datum osnivanja", + "search.filters.filter.organizationFoundingDate.placeholder": "Datum osnivanja", + "search.filters.filter.organizationFoundingDate.label": "Pretražite datum osnivanja", + "search.filters.filter.scope.head": "Opseg", + "search.filters.filter.scope.placeholder": "Filter opsega", + "search.filters.filter.scope.label": "Pretražite filter opsega", + "search.filters.filter.show-less": "Skupiti", + "search.filters.filter.show-more": "Prikaži viÅ¡e", + "search.filters.filter.subject.head": "Predmet", + "search.filters.filter.subject.placeholder": "Predmet", + "search.filters.filter.subject.label": "Predmet pretrage", + "search.filters.filter.submitter.head": "Podnosilac", + "search.filters.filter.submitter.placeholder": "Podnosilac", + "search.filters.filter.submitter.label": "Podnosilac pretrage", + "search.filters.filter.show-tree": "Pregledajte stablo {{ name }}", + "search.filters.filter.supervisedBy.head": "Pregledao", + "search.filters.filter.supervisedBy.placeholder": "Pregledao", + "search.filters.filter.supervisedBy.label": "Pretragu nadgledao", + "search.filters.entityType.JournalIssue": "Izdanja Äasopisa", + "search.filters.entityType.JournalVolume": "Sveska Äasopisa", + "search.filters.entityType.OrgUnit": "Organizaciona jedinica", + "search.filters.has_content_in_original_bundle.true": "Da", + "search.filters.has_content_in_original_bundle.false": "Ne", + "search.filters.discoverable.true": "Ne", + "search.filters.discoverable.false": "Da", + "search.filters.namedresourcetype.Archived": "Arhivirano", + "search.filters.namedresourcetype.Validation": "Ispravnost", + "search.filters.namedresourcetype.Waiting for Controller": "ÄŒeka se kontrolor", + "search.filters.namedresourcetype.Workflow": "Proces rada", + "search.filters.namedresourcetype.Workspace": "Radni prostor", + "search.filters.withdrawn.true": "Da", + "search.filters.withdrawn.false": "Ne", + "search.filters.head": "Filteri", + "search.filters.reset": "Resetovanje filtera", + "search.filters.search.submit": "Prihvatite", + "search.form.search": "Pretraga", + "search.form.search_dspace": "Svi repozitorijumi", + "search.form.scope.all": "ÄŒitav repozitorijum", + "search.results.head": "Rezultati pretrage", + "search.results.no-results": "VaÅ¡a pretraga nije dala rezultate. Imate problema sa pronalaženjem onoga Å¡to tražite? PokuÅ¡ajte da stavite", + "search.results.no-results-link": "navodnike oko toga", + "search.results.empty": "VaÅ¡a pretraga nije dala rezultate.", + "search.results.view-result": "Pogledati", + "search.results.response.500": "DoÅ¡lo je do greÅ¡ke tokom izvrÅ¡avanja upita, molimo pokuÅ¡ajte ponovo kasnije", + "default.search.results.head": "Rezultati pretrage", + "default-relationships.search.results.head": "Rezultati pretrage", + "search.sidebar.close": "Povratak na rezultate", + "search.sidebar.filters.title": "Filteri", + "search.sidebar.open": "Alati za pretragu", + "search.sidebar.results": "rezultati", + "search.sidebar.settings.rpp": "Rezultati po strani", + "search.sidebar.settings.sort-by": "Sortirati po", + "search.sidebar.settings.title": "PodeÅ¡avanja", + "search.view-switch.show-detail": "Prikazati detalje", + "search.view-switch.show-grid": "Prikazati kao mrežu", + "search.view-switch.show-list": "Prikazati kao listu", + "sorting.ASC": "Rastuće", + "sorting.DESC": "Opadajuće", + "sorting.dc.title.ASC": "Naslov rastuće", + "sorting.dc.title.DESC": "Naslov opadajuće", + "sorting.score.ASC": "Najmanje relevantno", + "sorting.score.DESC": "Najrelevantnije", + "sorting.dc.date.issued.ASC": "Datum izdanja rastuće", + "sorting.dc.date.issued.DESC": "Datum izdanja opadajuće", + "sorting.dc.date.accessioned.ASC": "Datum pristupa rastuće", + "sorting.dc.date.accessioned.DESC": "Datum pristupa opadajuće", + "sorting.lastModified.ASC": "Poslednja izmena rastuće", + "sorting.lastModified.DESC": "Poslednja izmena opadajuće", + "statistics.title": "Statistika", + "statistics.header": "Statistika za {{ scope }}", + "statistics.breadcrumbs": "Statistika", + "statistics.page.no-data": "Nema dostupnih podataka", + "statistics.table.no-data": "Nema dostupnih podataka", + "statistics.table.title.TotalVisits": "Ukupno poseta", + "statistics.table.title.TotalVisitsPerMonth": "Ukupno poseta meseÄno", + "statistics.table.title.TotalDownloads": "Posete fajlovima", + "statistics.table.title.TopCountries": "NajviÅ¡e pregleda po državama", + "statistics.table.title.TopCities": "NajviÅ¡e pregleda po gradovima", + "statistics.table.header.views": "Pogledi", + "statistics.table.no-name": "(ime objekta se ne može uÄitati)", + "submission.edit.breadcrumbs": "Izmena podneska", + "submission.edit.title": "Izmena podneska", + "submission.general.cancel": "Otkazati", + "submission.general.cannot_submit": "Nemate dozvolu da podnesete novu prijavu.", + "submission.general.deposit": "Depozit", + "submission.general.discard.confirm.cancel": "Otkazati", + "submission.general.discard.confirm.info": "Ova operacija se ne može opozvati. Da li ste sigurni?", + "submission.general.discard.confirm.submit": "Da siguran sam", + "submission.general.discard.confirm.title": "Odbacite podnesak", + "submission.general.discard.submit": "Odbaciti", + "submission.general.info.saved": "SaÄuvano", + "submission.general.info.pending-changes": "NesaÄuvane promene", + "submission.general.save": "SaÄuvati", + "submission.general.save-later": "SaÄuvati za kasnije", + "submission.import-external.page.title": "Uvezite metapodatke iz spoljnog izvora", + "submission.import-external.title": "Uvezite metapodatke iz spoljnog izvora", + "submission.import-external.title.Journal": "Uvezite Äasopis iz spoljnog izvora", + "submission.import-external.title.JournalIssue": "Uvezite izdanje Äasopisa iz spoljnog izvora", + "submission.import-external.title.JournalVolume": "Uvezite volume Äasopisa iz spoljnog izvora", + "submission.import-external.title.OrgUnit": "Uvezite izdavaÄa iz spoljnog izvora", + "submission.import-external.title.Person": "Uvezite osobu iz spoljnog izvora", + "submission.import-external.title.Project": "Uvezite projekat iz spoljnog izvora", + "submission.import-external.title.Publication": "Uvezite publikaciju iz spoljnog izvora", + "submission.import-external.title.none": "Uvezite metapodatke iz spoljnog izvora", + "submission.import-external.page.hint": "Unesite upit iznad da biste pronaÅ¡li stavke sa veba za uvoz u DSpace.", + "submission.import-external.back-to-my-dspace": "Nazad na MyDSpace", + "submission.import-external.search.placeholder": "Pretraga spoljnog izvora", + "submission.import-external.search.button": "Pretraga", + "submission.import-external.search.button.hint": "NapiÅ¡ite nekoliko reÄi za pretragu", + "submission.import-external.search.source.hint": "Izaberite spoljni izvor", + "submission.import-external.source.arxiv": "arXiv", + "submission.import-external.source.ads": "NASA/ADS", + "submission.import-external.source.cinii": "CiNii", + "submission.import-external.source.crossref": "CrossRef", + "submission.import-external.source.datacite": "DataCite", + "submission.import-external.source.scielo": "SciELO", + "submission.import-external.source.scopus": "Scopus", + "submission.import-external.source.vufind": "VuFind", + "submission.import-external.source.wos": "NauÄna mreža", + "submission.import-external.source.orcidWorks": "ORCID", + "submission.import-external.source.epo": "Evropski zavod za patente (EPO)", + "submission.import-external.source.loading": "UÄitavanje...", + "submission.import-external.source.sherpaJournal": "SHERPA Äasopisi", + "submission.import-external.source.sherpaJournalIssn": "SHERPA Äasopisi od ISSN", + "submission.import-external.source.sherpaPublisher": "SHERPA Publishers", + "submission.import-external.source.openAIREFunding": "Finansiranje OpenAIRE API-ja", + "submission.import-external.source.orcid": "ORCID", + "submission.import-external.source.pubmed": "Pubmed", + "submission.import-external.source.pubmedeu": "Pubmed Europe", + "submission.import-external.source.lcname": "Biblioteka Kongresnih imena", + "submission.import-external.preview.title": "Pregled stavke", + "submission.import-external.preview.title.Publication": "Pregled publikacije", + "submission.import-external.preview.title.none": "Pregled stavke", + "submission.import-external.preview.title.Journal": "Pregled Äasopisa", + "submission.import-external.preview.title.OrgUnit": "Pregled organizacione jedinice", + "submission.import-external.preview.title.Person": "Pregled osobe", + "submission.import-external.preview.title.Project": "Pregled projekta", + "submission.import-external.preview.subtitle": "Metapodaci u nastavku su uvezeni iz spoljnog izvora. Biće unapred popunjen kada zapoÄnete prihvatanje.", + "submission.import-external.preview.button.import": "PoÄnite sa prihvatanjem", + "submission.import-external.preview.error.import.title": "GreÅ¡ka pri prihvatanju", + "submission.import-external.preview.error.import.body": "DoÅ¡lo je do greÅ¡ke tokom ulaznog procesa uvoza spoljaÅ¡njeg izvora.", + "submission.sections.describe.relationship-lookup.close": "Zatvori", + "submission.sections.describe.relationship-lookup.external-source.added": "UspeÅ¡no je dodat lokalni ulaz u izbor", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.isAuthorOfPublication": "Uvezite udaljenog autora", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal": "Uvezite udaljeni dnevnik", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Issue": "Uvezite udaljeno izdanje Äasopisa", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Volume": "Uvezite udaljeni opseg Äasopisa", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.isProjectOfPublication": "Projekat", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.none": "Uvezite udaljenu stavku", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Event": "Uvezite udaljeni dogaÄ‘aj", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Product": "Uvezite udaljeni proizvod", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Equipment": "Uvezite udaljenu opremu", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.OrgUnit": "Uvezite udaljenu organizacionu jedinicu", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Funding": "Uvezite udaljeni fond", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Person": "Uvezite udaljenu osobu", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Patent": "Uvezite udaljeni patent", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Project": "Uvezite udaljeni projekat", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Publication": "Uvezite udaljenu publikaciju", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.added.new-entity": "Dodat je novi entitet!", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.title": "Projekat", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.openAIREFunding": "Finansiranje OpenAIRE API-ja", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.title": "Uvezi udaljenog autora", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.added.local-entity": "Lokalni autor je uspeÅ¡no dodat u izbor", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.added.new-entity": "SpoljaÅ¡nji autor je uspeÅ¡no uvezen i dodat u izbor", + "submission.sections.describe.relationship-lookup.external-source.import-modal.authority": "Uprava", + "submission.sections.describe.relationship-lookup.external-source.import-modal.authority.new": "Uvezite kao novi ulaz lokalne uprave", + "submission.sections.describe.relationship-lookup.external-source.import-modal.cancel": "PoniÅ¡titi, otkazati", + "submission.sections.describe.relationship-lookup.external-source.import-modal.collection": "Izaberite kolekciju u koju ćete uvesti nove ulaze", + "submission.sections.describe.relationship-lookup.external-source.import-modal.entities": "Entiteti", + "submission.sections.describe.relationship-lookup.external-source.import-modal.entities.new": "Uvezite kao novi lokalni entitet", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.lcname": "Uvezite iz LC imena", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.orcid": "Uvezite iz ORCID-a", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaJournal": "Uvezite iz Äasopisa Sherpa", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaPublisher": "Uvezite iz Sherpa izdavaÄa", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.pubmed": "Uvezite iz PubMed-a", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.arxiv": "Uvezite iz arXiv", + "submission.sections.describe.relationship-lookup.external-source.import-modal.import": "Uvoz", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.title": "Uvezite udaljeni Äasopis", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.added.local-entity": "UspeÅ¡no dodat lokalni Äasopis u izbor", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.added.new-entity": "UspeÅ¡no uvezen i dodat spoljaÅ¡nji Äasopis u izbor", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.title": "Uvezite udaljeno izdanje Äasopisa", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.local-entity": "UspeÅ¡no je dodat lokalni broj Äasopisa u izbor", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.new-entity": "UspeÅ¡no uvezen i dodat spoljaÅ¡nji broj Äasopisa u izbor", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.title": "Uvezite udaljeni opseg Äasopisa", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.local-entity": "UspeÅ¡no je dodat lokalni volumen Äasopisa u izbor", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.new-entity": "UspeÅ¡no uvezen i dodat spoljaÅ¡nji opseg Äasopisa u izbor", + "submission.sections.describe.relationship-lookup.external-source.import-modal.select": "Izaberite lokalno podudaranje:", + "submission.sections.describe.relationship-lookup.search-tab.deselect-all": "PoniÅ¡tite sve", + "submission.sections.describe.relationship-lookup.search-tab.deselect-page": "Opozovite izbor stranice", + "submission.sections.describe.relationship-lookup.search-tab.loading": "UÄitavanje...", + "submission.sections.describe.relationship-lookup.search-tab.placeholder": "Upit za pretragu", + "submission.sections.describe.relationship-lookup.search-tab.search": "Idi", + "submission.sections.describe.relationship-lookup.search-tab.search-form.placeholder": "Pretraga...", + "submission.sections.describe.relationship-lookup.search-tab.select-all": "Izaberi sve", + "submission.sections.describe.relationship-lookup.search-tab.select-page": "Izaberite stranicu", + "submission.sections.describe.relationship-lookup.selected": "Izabrane stavke {{ size }}", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isAuthorOfPublication": "Lokalni autori ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalOfPublication": "Lokalni Äasopisi ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Project": "Lokalni projekti ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Publication": "Lokalne publikacije ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Person": "Lokalni autori ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.OrgUnit": "Lokalne organizacione jedinice ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.DataPackage": "Lokalni paketi podataka ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.DataFile": "Lokalni fajlovi podataka ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Journal": "Lokalni Äasopisi ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalIssueOfPublication": "Lokalna izdanja Äasopisa ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.JournalIssue": "Lokalna izdanja Äasopisa ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalVolumeOfPublication": "Lokalni opseg Äasopisa ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.JournalVolume": "Lokalni opseg Äasopisa ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaJournal": "Sherpa Äasopisi ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaPublisher": "Sherpa izdavaÄi({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.orcid": "ORCID ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.lcname": "LC imena ({{ 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.isFundingAgencyOfPublication": "Potražite finansijere", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingOfPublication": "Potražite sredstva", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isChildOrgUnitOf": "Potražite organizacione jedinice", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.openAIREFunding": "Finansiranje OpenAIRE API-ja", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isProjectOfPublication": "Projekti", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfProject": "Finansijer projekta", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isPublicationOfAuthor": "Publikacija autora", + "submission.sections.describe.relationship-lookup.selection-tab.title.openAIREFunding": "Finansiranje OpenAIRE API-ja", + "submission.sections.describe.relationship-lookup.selection-tab.title.isProjectOfPublication": "Projekat", + "submission.sections.describe.relationship-lookup.title.isProjectOfPublication": "Projekti", + "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfProject": "Finansijer projekta", + "submission.sections.describe.relationship-lookup.selection-tab.search-form.placeholder": "Pretraga...", + "submission.sections.describe.relationship-lookup.selection-tab.tab-title": "Trenutni izbor ({{ count }})", + "submission.sections.describe.relationship-lookup.title.isJournalIssueOfPublication": "Izdanja Äasopisa", + "submission.sections.describe.relationship-lookup.title.JournalIssue": "Izdanja Äasopisa", + "submission.sections.describe.relationship-lookup.title.isJournalVolumeOfPublication": "Sveske Äasopisa", + "submission.sections.describe.relationship-lookup.title.JournalVolume": "Sveske Äasopisa", + "submission.sections.describe.relationship-lookup.title.isJournalOfPublication": "ÄŒasopisi", + "submission.sections.describe.relationship-lookup.title.isAuthorOfPublication": "Autori", + "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfPublication": "Finansijska agencija", + "submission.sections.describe.relationship-lookup.title.Project": "Projekti", + "submission.sections.describe.relationship-lookup.title.Publication": "Publikacije", + "submission.sections.describe.relationship-lookup.title.Person": "Autori", + "submission.sections.describe.relationship-lookup.title.OrgUnit": "Organizacione jedinice", + "submission.sections.describe.relationship-lookup.title.DataPackage": "Paketi podataka", + "submission.sections.describe.relationship-lookup.title.DataFile": "Fajlovi sa podacima", + "submission.sections.describe.relationship-lookup.title.Funding Agency": "Finansijska agencija", + "submission.sections.describe.relationship-lookup.title.isFundingOfPublication": "Finansiranje", + "submission.sections.describe.relationship-lookup.title.isChildOrgUnitOf": "MatiÄna organizaciona jedinica", + "submission.sections.describe.relationship-lookup.title.isPublicationOfAuthor": "Publikacija", + "submission.sections.describe.relationship-lookup.search-tab.toggle-dropdown": "UkljuÄite padajući meni", + "submission.sections.describe.relationship-lookup.selection-tab.settings": "PodeÅ¡avanja", + "submission.sections.describe.relationship-lookup.selection-tab.no-selection": "VaÅ¡ izbor je trenutno prazan.", + "submission.sections.describe.relationship-lookup.selection-tab.title.isAuthorOfPublication": "Izabrani autori", + "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalOfPublication": "Izabrani Äasopisi", + "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalVolumeOfPublication": "Izabrana sveska Äasopisa", + "submission.sections.describe.relationship-lookup.selection-tab.title.Project": "Izabrani projekti", + "submission.sections.describe.relationship-lookup.selection-tab.title.Publication": "Izabrane publikacije", + "submission.sections.describe.relationship-lookup.selection-tab.title.Person": "Izabrani autori", + "submission.sections.describe.relationship-lookup.selection-tab.title.OrgUnit": "Izabrane organizacione jedinice", + "submission.sections.describe.relationship-lookup.selection-tab.title.DataPackage": "Izabrani paketi podataka", + "submission.sections.describe.relationship-lookup.selection-tab.title.DataFile": "Izabrani fajlovi sa podacima", + "submission.sections.describe.relationship-lookup.selection-tab.title.Journal": "Izabrani Äasopisi", + "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalIssueOfPublication": "Izabrano izdanje", + "submission.sections.describe.relationship-lookup.selection-tab.title.JournalVolume": "Izabrana sveska Äasopisa", + "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingAgencyOfPublication": "Izabrana finansijska agencija", + "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingOfPublication": "Izabrano finansiranje", + "submission.sections.describe.relationship-lookup.selection-tab.title.JournalIssue": "Izabrano izdanje", + "submission.sections.describe.relationship-lookup.selection-tab.title.isChildOrgUnitOf": "Izabrana organizaciona jedinica", + "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaJournal": "Rezultati pretrage", + "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaPublisher": "Rezultati pretrage", + "submission.sections.describe.relationship-lookup.selection-tab.title.orcid": "Rezultati pretrage", + "submission.sections.describe.relationship-lookup.selection-tab.title.orcidv2": "Rezultati pretrage", + "submission.sections.describe.relationship-lookup.selection-tab.title.lcname": "Rezultati pretrage", + "submission.sections.describe.relationship-lookup.selection-tab.title.pubmed": "Rezultati pretrage", + "submission.sections.describe.relationship-lookup.selection-tab.title.arxiv": "Rezultati pretrage", + "submission.sections.describe.relationship-lookup.selection-tab.title.crossref": "Rezultati pretrage", + "submission.sections.describe.relationship-lookup.selection-tab.title.epo": "Rezultati pretrage", + "submission.sections.describe.relationship-lookup.selection-tab.title.scopus": "Rezultati pretrage", + "submission.sections.describe.relationship-lookup.selection-tab.title.scielo": "Rezultati pretrage", + "submission.sections.describe.relationship-lookup.selection-tab.title.wos": "Rezultati pretrage", + "submission.sections.describe.relationship-lookup.selection-tab.title": "Rezultati pretrage", + "submission.sections.describe.relationship-lookup.name-variant.notification.content": "Da li želite da saÄuvate \"{{ value }}\" kao varijantu imena za ovu osobu da biste vi i drugi mogli da ga ponovo koristite za buduće slanje? Ako to ne uradite, i dalje možete da ga koristite za ovaj podnesak.", + "submission.sections.describe.relationship-lookup.name-variant.notification.confirm": "SaÄuvajte novu varijantu imena", + "submission.sections.describe.relationship-lookup.name-variant.notification.decline": "Koristi se samo za ovaj podnesak", + "submission.sections.ccLicense.type": "Tip licence", + "submission.sections.ccLicense.select": "Izaberite tip licence…", + "submission.sections.ccLicense.change": "Promenite tip licence…", + "submission.sections.ccLicense.none": "Nema dostupnih licenci", + "submission.sections.ccLicense.option.select": "Izaberite opciju…", + "submission.sections.ccLicense.link": "Izabrali ste sledeću licencu:", + "submission.sections.ccLicense.confirmation": "Dodeljujem licencu iznad", + "submission.sections.general.add-more": "Dodajte joÅ¡", + "submission.sections.general.cannot_deposit": "Prijava se ne može dovrÅ¡iti zbog greÅ¡aka u obrascu.<br>Popunite sva obavezna polja da biste dovrÅ¡ili prijavu.", + "submission.sections.general.collection": "Kolekcija", + "submission.sections.general.deposit_error_notice": "DoÅ¡lo je do problema prilikom slanja stavke, molimo pokuÅ¡ajte ponovo kasnije.", + "submission.sections.general.deposit_success_notice": "Prijava je uspeÅ¡no podneta.", + "submission.sections.general.discard_error_notice": "DoÅ¡lo je do problema pri odbacivanju stavke, molimo pokuÅ¡ajte ponovo kasnije.", + "submission.sections.general.discard_success_notice": "Slanje je uspeÅ¡no odbaÄeno.", + "submission.sections.general.metadata-extracted": "Novi metapodaci su izdvojeni i dodati u odeljak <strong>{{sectionId}}</strong>.", + "submission.sections.general.metadata-extracted-new-section": "Novi odeljak <strong>{{sectionId}}</strong> je dodat u prijavu.", + "submission.sections.general.no-collection": "Nije pronaÄ‘ena kolekcija", + "submission.sections.general.no-sections": "Nema dostupnih opcija", + "submission.sections.general.save_error_notice": "DoÅ¡lo je do problema prilikom Äuvanja stavke, molimo pokuÅ¡ajte ponovo kasnije.", + "submission.sections.general.save_success_notice": "Prijava je uspeÅ¡no saÄuvana.", + "submission.sections.general.search-collection": "Potražite kolekciju", + "submission.sections.general.sections_not_valid": "Postoje nepotpuni odeljci.", + "submission.sections.identifiers.info": "Sledeći identifikatori će biti kreirani za vaÅ¡u stavku:", + "submission.sections.identifiers.no_handle": "Za ovu stavku nije vezan handle.", + "submission.sections.identifiers.no_doi": "Nijedan DOIs nije vezan za ovu stavku.", + "submission.sections.identifiers.handle_label": "Handle:", + "submission.sections.identifiers.doi_label": "DOI:", + "submission.sections.identifiers.otherIdentifiers_label": "Ostali identifikatori:", + "submission.sections.submit.progressbar.accessCondition": "Uslovi pristupanja stavki", + "submission.sections.submit.progressbar.CClicense": "Creative Commons licenca", + "submission.sections.submit.progressbar.describe.recycle": "Reciklaža", + "submission.sections.submit.progressbar.describe.stepcustom": "Opisati", + "submission.sections.submit.progressbar.describe.stepone": "Opisati", + "submission.sections.submit.progressbar.describe.steptwo": "Opisati", + "submission.sections.submit.progressbar.detect-duplicate": "Potencijalni duplikati", + "submission.sections.submit.progressbar.identifiers": "Identifikatori", + "submission.sections.submit.progressbar.license": "Dozvola za depozit", + "submission.sections.submit.progressbar.sherpapolicy": "Sherpa propisi", + "submission.sections.submit.progressbar.upload": "Dodaj fajlove", + "submission.sections.submit.progressbar.sherpaPolicies": "Informacije o politici otvorenog pristupa izdavaÄa", + "submission.sections.sherpa-policy.title-empty": "Nema dostupnih informacija o smernicama za izdavaÄe. Ako vaÅ¡ rad ima pridruženi ISSN, unesite ga iznad da biste videli sve povezane smernice otvorenog pristupa za izdavaÄe.", + "submission.sections.status.errors.title": "GreÅ¡ke", + "submission.sections.status.valid.title": "Važeće", + "submission.sections.status.warnings.title": "Upozorenja", + "submission.sections.status.errors.aria": "Ima greÅ¡ke", + "submission.sections.status.valid.aria": "Važeće je", + "submission.sections.status.warnings.aria": "Ima upozorenja", + "submission.sections.status.info.title": "Dodatne Informacije", + "submission.sections.status.info.aria": "Dodatne Informacije", + "submission.sections.toggle.open": "Otvori odeljak", + "submission.sections.toggle.close": "Zatvori odeljak", + "submission.sections.toggle.aria.open": "ProÅ¡irite {{sectionHeader}} odeljak", + "submission.sections.toggle.aria.close": "Skupite {{sectionHeader}} odeljak", + "submission.sections.upload.delete.confirm.cancel": "PoniÅ¡titi, otkazati", + "submission.sections.upload.delete.confirm.info": "Ova operacija se ne može opozvati. Jeste li sigurni?", + "submission.sections.upload.delete.confirm.submit": "Da, siguran sam", + "submission.sections.upload.delete.confirm.title": "IzbriÅ¡ite bitstream", + "submission.sections.upload.delete.submit": "IzbriÅ¡ite", + "submission.sections.upload.download.title": "Preuzmite bitstream", + "submission.sections.upload.drop-message": "Spustite fajlove da biste ih priložili stavci", + "submission.sections.upload.edit.title": "Uredite bitstream", + "submission.sections.upload.form.access-condition-label": "Tip uslova pristupa", + "submission.sections.upload.form.access-condition-hint": "Izaberite uslov pristupa koji ćete primeniti na bitstream kada se stavka deponuje", + "submission.sections.upload.form.date-required": "Datum je obavezan.", + "submission.sections.upload.form.date-required-from": "Obavezno odobrenje pristupa od datuma.", + "submission.sections.upload.form.date-required-until": "Obavezno odobrenje pristupa do datuma.", + "submission.sections.upload.form.from-label": "Odobrenje pristupa od", + "submission.sections.upload.form.from-hint": "Izaberite datum od koga se primenjuje odgovarajući uslov pristupa", + "submission.sections.upload.form.from-placeholder": "Od", + "submission.sections.upload.form.group-label": "Grupa", + "submission.sections.upload.form.group-required": "Grupa je obavezna.", + "submission.sections.upload.form.until-label": "Odobrenje pristupa do", + "submission.sections.upload.form.until-hint": "Izaberite datum do kojeg se primenjuje odgovarajući uslov pristupa", + "submission.sections.upload.form.until-placeholder": "Sve dok", + "submission.sections.upload.header.policy.default.nolist": "Otpremljeni fajlovi u kolekciji {{collectionName}} biće dostupne prema sledećim grupama:", + "submission.sections.upload.header.policy.default.withlist": "Imajte na umu da će otpremljeni fajlovi u kolekciji {{collectionName}} biti dostupni, pored onoga Å¡to je izriÄito odluÄeno za jedan fajl, sa sledećim grupama:", + "submission.sections.upload.info": "Ovde ćete pronaći sve fajlove koji se trenutno nalaze u stavci. Možete da ažurirate metapodatke fajla i uslove pristupa ili <strong> otpremite dodatne fajlove tako Å¡to ćete ih prevući i otpustiti bilo gde na stranici.</strong>", + "submission.sections.upload.no-entry": "Ne", + "submission.sections.upload.no-file-uploaded": "JoÅ¡ uvek nije otpremljen nijedan fajl.", + "submission.sections.upload.save-metadata": "SaÄuvaj metapodatke", + "submission.sections.upload.undo": "PoniÅ¡titi, otkazati", + "submission.sections.upload.upload-failed": "Otpremanje nije uspelo", + "submission.sections.upload.upload-successful": "Otpremanje je uspeÅ¡no", + "submission.sections.accesses.form.discoverable-description": "Kada je oznaÄeno, ova stavka će biti vidljiva u pretrazi/pregledu. Kada nije oznaÄeno, stavka će biti dostupna samo preko direktne veze i nikada se neće pojaviti u pretrazi/pregledu.", + "submission.sections.accesses.form.discoverable-label": "Otkrivanje", + "submission.sections.accesses.form.access-condition-label": "Tip uslova pristupa", + "submission.sections.accesses.form.access-condition-hint": "Izaberite uslov pristupa koji ćete primeniti na stavku kada se deponuje", + "submission.sections.accesses.form.date-required": "Datum je obavezan.", + "submission.sections.accesses.form.date-required-from": "Obavezno odobrenje pristupa od datuma.", + "submission.sections.accesses.form.date-required-until": "Obavezno odobrenje pristupa do datuma.", + "submission.sections.accesses.form.from-label": "Odobrenje pristupa od", + "submission.sections.accesses.form.from-hint": "Izaberite datum od koga se primenjuje odgovarajući uslov pristupa", + "submission.sections.accesses.form.from-placeholder": "Od", + "submission.sections.accesses.form.group-label": "Grupa", + "submission.sections.accesses.form.group-required": "Grupa je obavezna.", + "submission.sections.accesses.form.until-label": "Odobrenje pristupa do", + "submission.sections.accesses.form.until-hint": "Izaberite datum do kojeg se primenjuje odgovarajući uslov pristupa", + "submission.sections.accesses.form.until-placeholder": "Sve dok", + "submission.sections.license.granted-label": "PotvrÄ‘ujem gore navedenu licencu", + "submission.sections.license.required": "Morate prihvatiti licencu", + "submission.sections.license.notgranted": "Morate prihvatiti licencu", + "submission.sections.sherpa.publication.information": "Informacije o publikaciji", + "submission.sections.sherpa.publication.information.title": "Naslov", + "submission.sections.sherpa.publication.information.issns": "ISSN-ovi", + "submission.sections.sherpa.publication.information.url": "URL", + "submission.sections.sherpa.publication.information.publishers": "IzdavaÄ", + "submission.sections.sherpa.publication.information.romeoPub": "Romeo Pub", + "submission.sections.sherpa.publication.information.zetoPub": "Zeto Pub", + "submission.sections.sherpa.publisher.policy": "Propis za izdavaÄe", + "submission.sections.sherpa.publisher.policy.description": "Informacije u nastavku su pronaÄ‘ene preko SherpaRomea. Na osnovu smernica vaÅ¡eg izdavaÄa, on pruža savete o tome da li je embargo možda neophodan i/ili koje datoteke možete da otpremite. Ako imate pitanja, kontaktirajte svog administratora sajta putem obrasca za povratne informacije u podnožju.", + "submission.sections.sherpa.publisher.policy.openaccess": "Putevi otvorenog pristupa dozvoljeni politikom ovog Äasopisa navedeni su u nastavku prema verziji Älanka. Kliknite na putanju za detaljniji prikaz", + "submission.sections.sherpa.publisher.policy.more.information": "Za viÅ¡e informacija pogledajte sledeće linkove:", + "submission.sections.sherpa.publisher.policy.version": "Verzija", + "submission.sections.sherpa.publisher.policy.embargo": "Embargo", + "submission.sections.sherpa.publisher.policy.noembargo": "Nema embarga", + "submission.sections.sherpa.publisher.policy.nolocation": "Nijedan", + "submission.sections.sherpa.publisher.policy.license": "Licenca", + "submission.sections.sherpa.publisher.policy.prerequisites": "Preduslovi", + "submission.sections.sherpa.publisher.policy.location": "Lokacija", + "submission.sections.sherpa.publisher.policy.conditions": "Uslovi", + "submission.sections.sherpa.publisher.policy.refresh": "Osvežite", + "submission.sections.sherpa.record.information": "ZapiÅ¡ite informaciju", + "submission.sections.sherpa.record.information.id": "ID", + "submission.sections.sherpa.record.information.date.created": "Datum kreiranja", + "submission.sections.sherpa.record.information.date.modified": "Poslednja izmena", + "submission.sections.sherpa.record.information.uri": "URI", + "submission.sections.sherpa.error.message": "DoÅ¡lo je do greÅ¡ke pri preuzimanju Sherpa informacija", + "submission.submit.breadcrumbs": "Novi podnesak", + "submission.submit.title": "Novi podnesak", + "submission.workflow.generic.delete": "IzbriÅ¡ite", + "submission.workflow.generic.delete-help": "Izaberite ovu opciju da biste odbacili ovu stavku. Zatim će biti zatraženo da to potvrdite.", + "submission.workflow.generic.edit": "Uredite", + "submission.workflow.generic.edit-help": "Izaberite ovu opciju da biste promenili metapodatke stavke.", + "submission.workflow.generic.view": "Pogledajte", + "submission.workflow.generic.view-help": "Izaberite ovu opciju da biste videli metapodatke stavke.", + "submission.workflow.generic.submit_select_reviewer": "Izaberite recenzenta", + "submission.workflow.generic.submit_select_reviewer-help": "izaberite pomoć recenzenta", + "submission.workflow.generic.submit_score": "Ocena", + "submission.workflow.generic.submit_score-help": "rezultat-pomoć", + "submission.workflow.tasks.claimed.approve": "Odobriti", + "submission.workflow.tasks.claimed.approve_help": "Ako ste pregledali stavku i ako je pogodna za pridruživanje kolekciji, izaberite \"Odobriti\".", + "submission.workflow.tasks.claimed.edit": "Izmeniti", + "submission.workflow.tasks.claimed.edit_help": "Izaberite ovu opciju da biste promenili metapodatke stavke.", + "submission.workflow.tasks.claimed.decline": "Odbiti", + "submission.workflow.tasks.claimed.decline_help": "odbiti pomoć", + "submission.workflow.tasks.claimed.reject.reason.info": "Unesite razlog za odbijanje prijave u polje ispod, navodeći da li podnosilac može da reÅ¡i problem i ponovo poÅ¡alje.", + "submission.workflow.tasks.claimed.reject.reason.placeholder": "OpiÅ¡ite razlog odbijanja", + "submission.workflow.tasks.claimed.reject.reason.submit": "Odbacite stavku", + "submission.workflow.tasks.claimed.reject.reason.title": "Razlog", + "submission.workflow.tasks.claimed.reject.submit": "Odbiti", + "submission.workflow.tasks.claimed.reject_help": "Ako ste pregledali stavku i utvrdili da <strong>nije</strong> prikladna za pridruživanje kolekciji, izaberite \"Odbij\". Od vas će se zatim tražiti da unesete poruku koja navodi zaÅ¡to je stavka neprikladna i da li podnosilac treba neÅ¡to da promeni i ponovo poÅ¡alje.", + "submission.workflow.tasks.claimed.return": "Povratak u grupu", + "submission.workflow.tasks.claimed.return_help": "Vratite zadatak u grupu tako da drugi korisnik može da izvrÅ¡i zadatak.", + "submission.workflow.tasks.generic.error": "DoÅ¡lo je do greÅ¡ke u radu...", + "submission.workflow.tasks.generic.processing": "Obrada...", + "submission.workflow.tasks.generic.submitter": "Podnosilac", + "submission.workflow.tasks.generic.success": "Operacija uspela", + "submission.workflow.tasks.pool.claim": "Potraživanje", + "submission.workflow.tasks.pool.claim_help": "Dodelite ovaj zadatak sebi.", + "submission.workflow.tasks.pool.hide-detail": "Sakriti detalje", + "submission.workflow.tasks.pool.show-detail": "Prikazati detalje", + "submission.workspace.generic.view": "Pogledati", + "submission.workspace.generic.view-help": "Izaberite ovu opciju da biste videli metapodatke stavke.", + "submitter.empty": "N/A", + "subscriptions.title": "Pretplate", + "subscriptions.item": "Pretplate na stavke", + "subscriptions.collection": "Pretplate na kolekcije", + "subscriptions.community": "Pretplate za zajednice", + "subscriptions.subscription_type": "Vrsta pretplate", + "subscriptions.frequency": "UÄestalost pretplate", + "subscriptions.frequency.D": "Dnevno", + "subscriptions.frequency.M": "MeseÄno", + "subscriptions.frequency.W": "Nedeljno", + "subscriptions.tooltip": "Pretplatiti se", + "subscriptions.modal.title": "Pretplate", + "subscriptions.modal.type-frequency": "Vrsta i uÄestalost", + "subscriptions.modal.close": "Zatvoriti", + "subscriptions.modal.delete-info": "Da biste uklonili ovu pretplatu, molimo posetite stranicu \"Pretplate\" ispod vaÅ¡eg korisniÄkog profila", + "subscriptions.modal.new-subscription-form.type.content": "Sadržaj", + "subscriptions.modal.new-subscription-form.frequency.D": "Dnevno", + "subscriptions.modal.new-subscription-form.frequency.W": "Nedeljno", + "subscriptions.modal.new-subscription-form.frequency.M": "MeseÄno", + "subscriptions.modal.new-subscription-form.submit": "Podnesi", + "subscriptions.modal.new-subscription-form.processing": "Obrada...", + "subscriptions.modal.create.success": "UspeÅ¡no ste pretplaćeni na {{ type }}.", + "subscriptions.modal.delete.success": "Pretplata je uspeÅ¡no izbrisana", + "subscriptions.modal.update.success": "Pretplata na {{ type }} je uspeÅ¡no ažurirana", + "subscriptions.modal.create.error": "DoÅ¡lo je do greÅ¡ke tokom kreiranja pretplate", + "subscriptions.modal.delete.error": "DoÅ¡lo je do greÅ¡ke tokom brisanja pretplate", + "subscriptions.modal.update.error": "DoÅ¡lo je do greÅ¡ke tokom ažuriranja pretplate", + "subscriptions.table.dso": "Predmet", + "subscriptions.table.subscription_type": "Vrsta pretplate", + "subscriptions.table.subscription_frequency": "UÄestalost pretplate", + "subscriptions.table.action": "Postupak", + "subscriptions.table.edit": "Izmeniti", + "subscriptions.table.delete": "Izbrisati", + "subscriptions.table.not-available": "Nije dostupno", + "subscriptions.table.not-available-message": "Pretplaćena stavka je izbrisana ili trenutno nemate dozvolu da je vidite", + "subscriptions.table.empty.message": "Trenutno nemate nijednu pretplatu. Da biste se pretplatili na ažuriranja putem email-a za zajednicu ili kolekciju, koristite dugme za pretplatu na stranici objekta.", + "thumbnail.default.alt": "Umanjena slika", + "thumbnail.default.placeholder": "Nema dostupnih umanjenih slika", + "thumbnail.project.alt": "Logo projekta", + "thumbnail.project.placeholder": "Slika referenta projekta", + "thumbnail.orgunit.alt": "Logo organizacione jedinice", + "thumbnail.orgunit.placeholder": "Slika referenta organizacione jedinice", + "thumbnail.person.alt": "Profilna slika", + "thumbnail.person.placeholder": "Slika profila nije dostupna", + "title": "DSpace", + "vocabulary-treeview.header": "Prikaz hijerarhijskog stabla", + "vocabulary-treeview.load-more": "UÄitati joÅ¡", + "vocabulary-treeview.search.form.reset": "Resetovati", + "vocabulary-treeview.search.form.search": "Pretraga", + "vocabulary-treeview.search.no-result": "Nije bilo stavki za prikaz", + "vocabulary-treeview.tree.description.nsi": "The Norwegian Science Index", + "vocabulary-treeview.tree.description.srsc": "Kategorije predmeta istraživanja", + "vocabulary-treeview.info": "Izaberite temu koju želite da dodate kao filter za pretragu", + "uploader.browse": "pretraži", + "uploader.drag-message": "Prevucite i stavite svoje fajlove ovde", + "uploader.delete.btn-title": "ObriÅ¡i", + "uploader.or": ", ili", + "uploader.processing": "Obrada otpremljenih fajlova... (sada je bezbedno zatvoriti ovu stranicu)", + "uploader.queue-length": "Dužina reda", + "virtual-metadata.delete-item.info": "Izaberite tipove za koje želite da saÄuvate virtuelne metapodatke kao stvarne metapodatke", + "virtual-metadata.delete-item.modal-head": "Virtuelni metapodaci ove relacije", + "virtual-metadata.delete-relationship.modal-head": "Izaberite stavke za koje želite da saÄuvate virtuelne metapodatke kao stvarne metapodatke", + "supervisedWorkspace.search.results.head": "Nadzirane stavke", + "workspace.search.results.head": "VaÅ¡i podnesci", + "workflowAdmin.search.results.head": "Upravljanje radnim procesom", + "workflow.search.results.head": "Radni zadaci", + "supervision.search.results.head": "Zadaci radnog procesa i radnog prostora", + "workflow-item.edit.breadcrumbs": "Izmena stavke radnog procesa", + "workflow-item.edit.title": "Izmena stavke radnog procesa", + "workflow-item.delete.notification.success.title": "Izbrisano", + "workflow-item.delete.notification.success.content": "Ova stavka radnog procesa je uspeÅ¡no izbrisana", + "workflow-item.delete.notification.error.title": "NeÅ¡to nije u redu", + "workflow-item.delete.notification.error.content": "Nije moguće izbrisati stavku procesa rada", + "workflow-item.delete.title": "IzbriÅ¡ite stavku radnog procesa", + "workflow-item.delete.header": "IzbriÅ¡ite stavku radnog procesa", + "workflow-item.delete.button.cancel": "PoniÅ¡titi, otkazati", + "workflow-item.delete.button.confirm": "IzbriÅ¡ite", + "workflow-item.send-back.notification.success.title": "Vraćeno podnosiocu", + "workflow-item.send-back.notification.success.content": "Ova stavka radnog procesa je uspeÅ¡no vraćena podnosiocu", + "workflow-item.send-back.notification.error.title": "NeÅ¡to nije u redu", + "workflow-item.send-back.notification.error.content": "Stavka radnog procesa nije mogla da se vrati podnosiocu", + "workflow-item.send-back.title": "Vratite stavku radnog procesa podnosiocu", + "workflow-item.send-back.header": "Vratite stavku radnog procesa podnosiocu", + "workflow-item.send-back.button.cancel": "PoniÅ¡titi, otkazati", + "workflow-item.send-back.button.confirm": "Vratiti", + "workflow-item.view.breadcrumbs": "Prikaz radnog procesa", + "workspace-item.view.breadcrumbs": "Prikaz radnog prostora", + "workspace-item.view.title": "Prikaz radnog prostora", + "workspace-item.delete.breadcrumbs": "IzbriÅ¡ite radni prostor", + "workspace-item.delete.header": "IzbriÅ¡ite stavku radnog prostora", + "workspace-item.delete.button.confirm": "IzbriÅ¡ite", + "workspace-item.delete.button.cancel": "PoniÅ¡titi, otkazati", + "workspace-item.delete.notification.success.title": "Izbrisan", + "workspace-item.delete.title": "Ova stavka radnog prostora je uspeÅ¡no izbrisana", + "workspace-item.delete.notification.error.title": "NeÅ¡to nije u redu", + "workspace-item.delete.notification.error.content": "Nije moguće izbrisati stavku radnog prostora", + "workflow-item.advanced.title": "Napredni radni proces", + "workflow-item.selectrevieweraction.notification.success.title": "Izabrani recenzent", + "workflow-item.selectrevieweraction.notification.success.content": "Recenzent za ovu stavku radnog procesa je uspeÅ¡no izabran", + "workflow-item.selectrevieweraction.notification.error.title": "NeÅ¡to nije u redu", + "workflow-item.selectrevieweraction.notification.error.content": "Nije moguće izabrati recenzenta za ovu stavku radnog procesa", + "workflow-item.selectrevieweraction.title": "Izaberite recenzenta", + "workflow-item.selectrevieweraction.header": "Izaberite recenzenta", + "workflow-item.selectrevieweraction.button.cancel": "PoniÅ¡titi, otkazati", + "workflow-item.selectrevieweraction.button.confirm": "Potvrdite", + "workflow-item.scorereviewaction.notification.success.title": "Ocena pregleda", + "workflow-item.scorereviewaction.notification.success.content": "Ocena za ovu stavku radnog procesa je uspeÅ¡no poslata", + "workflow-item.scorereviewaction.notification.error.title": "NeÅ¡to nije u redu", + "workflow-item.scorereviewaction.notification.error.content": "Nije moguće oceniti ovu stavku", + "workflow-item.scorereviewaction.title": "Ocenite ovu stavku", + "workflow-item.scorereviewaction.header": "Ocenite ovu stavku", + "workflow-item.scorereviewaction.button.cancel": "PoniÅ¡titi, otkazati", + "workflow-item.scorereviewaction.button.confirm": "Potvrdite", + "idle-modal.header": "Sesija uskoro istiÄe", + "idle-modal.info": "Iz bezbednosnih razloga, korisniÄke sesije istiÄu posle {{ timeToExpire }} minuta neaktivnosti. VaÅ¡a sesija uskoro istiÄe. Da li želite da produžite ili da se odjavite?", + "idle-modal.log-out": "Odjaviti se", + "idle-modal.extend-session": "Produžite sesiju", + "researcher.profile.action.processing": "Obrada...", + "researcher.profile.associated": "Povezani profil istraživaÄa", + "researcher.profile.change-visibility.fail": "DoÅ¡lo je do neoÄekivane greÅ¡ke prilikom promene vidljivosti profila", + "researcher.profile.create.new": "Kreiraj novi", + "researcher.profile.create.success": "Profil istraživaÄa je uspeÅ¡no kreiran", + "researcher.profile.create.fail": "DoÅ¡lo je do greÅ¡ke tokom kreiranja profila istraživaÄa", + "researcher.profile.delete": "IzbriÅ¡ite", + "researcher.profile.expose": "Izlaganje", + "researcher.profile.hide": "Sakrijte", + "researcher.profile.not.associated": "Profil istraživaÄa joÅ¡ nije povezan", + "researcher.profile.view": "Pogled", + "researcher.profile.private.visibility": "PRIVATNO", + "researcher.profile.public.visibility": "JAVNO", + "researcher.profile.status": "Status:", + "researcherprofile.claim.not-authorized": "Niste ovlašćeni da potvrdite ovu stavku. Za viÅ¡e detalja kontaktirajte administratora(e).", + "researcherprofile.error.claim.body": "DoÅ¡lo je do greÅ¡ke pri potvrÄ‘ivanju profila, molimo vas pokuÅ¡ajte ponovo kasnije", + "researcherprofile.error.claim.title": "GreÅ¡ka", + "researcherprofile.success.claim.body": "Profil je uspeÅ¡no potvrÄ‘en", + "researcherprofile.success.claim.title": "UspeÅ¡no", + "person.page.orcid.create": "Kreirajte ORCID ID", + "person.page.orcid.granted-authorizations": "Odobrena ovlašćenja", + "person.page.orcid.grant-authorizations": "Odobrite ovlašćenja", + "person.page.orcid.link": "Povežite se na ORCID ID", + "person.page.orcid.link.processing": "Povezivanje profila sa ORCID-om...", + "person.page.orcid.link.error.message": "NeÅ¡to je poÅ¡lo naopako pri povezivanju profila sa ORCID-om. Ako se problem i dalje javlja, kontaktirajte administratora.", + "person.page.orcid.orcid-not-linked-message": "ORCID ID ovog profila ({{ orcid }}) joÅ¡ uvek nije povezan sa nalogom u ORCID registru ili je veza istekla.", + "person.page.orcid.unlink": "Prekinite vezu sa ORCID-om", + "person.page.orcid.unlink.processing": "Obrada...", + "person.page.orcid.missing-authorizations": "Nedostaju ovlašćenja", + "person.page.orcid.missing-authorizations-message": "Nedostaju sledeća ovlašćenja:", + "person.page.orcid.no-missing-authorizations-message": "Divno! Ovo polje je prazno, tako da ste odobrili sva prava pristupa za korišćenje svih funkcija koje nudi vaÅ¡a institucija.", + "person.page.orcid.no-orcid-message": "JoÅ¡ uvek nije povezan ORCID ID. Klikom na dugme ispod moguće je povezati ovaj profil sa ORCID nalogom.", + "person.page.orcid.profile-preferences": "Prioriteti profila", + "person.page.orcid.funding-preferences": "Prioriteti finansiranja", + "person.page.orcid.publications-preferences": "Prioriteti publikacije", + "person.page.orcid.remove-orcid-message": "Ako treba da uklonite svoj ORCID, kontaktirajte administratora repozitorijuma", + "person.page.orcid.save.preference.changes": "PodeÅ¡avanja ažuriranja", + "person.page.orcid.sync-profile.affiliation": "Pripadnost", + "person.page.orcid.sync-profile.biographical": "Biografski podaci", + "person.page.orcid.sync-profile.education": "Obrazovanje", + "person.page.orcid.sync-profile.identifiers": "Identifikatori", + "person.page.orcid.sync-fundings.all": "Sva sredstva", + "person.page.orcid.sync-fundings.mine": "Moja sredstva", + "person.page.orcid.sync-fundings.my_selected": "Odabrana sredstva", + "person.page.orcid.sync-fundings.disabled": "Onemogućeno", + "person.page.orcid.sync-publications.all": "Sve publikacije", + "person.page.orcid.sync-publications.mine": "Moje publikacije", + "person.page.orcid.sync-publications.my_selected": "Izabrane publikacije", + "person.page.orcid.sync-publications.disabled": "Onemogućeno", + "person.page.orcid.sync-queue.discard": "Odbacite promenu i nemojte da se sinhronizujete sa ORCID registrom", + "person.page.orcid.sync-queue.discard.error": "Odbacivanje zapisa ORCID reda nije uspelo", + "person.page.orcid.sync-queue.discard.success": "Zapis ORCID reda je uspeÅ¡no odbaÄen", + "person.page.orcid.sync-queue.empty-message": "Zapis ORCID registra je prazan", + "person.page.orcid.sync-queue.table.header.type": "Tip", + "person.page.orcid.sync-queue.table.header.description": "Opis", + "person.page.orcid.sync-queue.table.header.action": "Postupak", + "person.page.orcid.sync-queue.description.affiliation": "Pripadnosti", + "person.page.orcid.sync-queue.description.country": "Država", + "person.page.orcid.sync-queue.description.education": "Obrazovanja", + "person.page.orcid.sync-queue.description.external_ids": "SpoljaÅ¡nji id", + "person.page.orcid.sync-queue.description.other_names": "Druga imena", + "person.page.orcid.sync-queue.description.qualification": "Kvalifikacije", + "person.page.orcid.sync-queue.description.researcher_urls": "URL-ovi istraživaÄa", + "person.page.orcid.sync-queue.description.keywords": "KljuÄne reÄi", + "person.page.orcid.sync-queue.tooltip.insert": "Dodajte novi unos u ORCID registar", + "person.page.orcid.sync-queue.tooltip.update": "Ažurirajte ovaj unos u ORCID registru", + "person.page.orcid.sync-queue.tooltip.delete": "Uklonite ovaj unos iz ORCID registra", + "person.page.orcid.sync-queue.tooltip.publication": "Publikacija", + "person.page.orcid.sync-queue.tooltip.project": "Projekat", + "person.page.orcid.sync-queue.tooltip.affiliation": "Pripadnost", + "person.page.orcid.sync-queue.tooltip.education": "Оbrazovanje", + "person.page.orcid.sync-queue.tooltip.qualification": "Kvalifikacija", + "person.page.orcid.sync-queue.tooltip.other_names": "Drugo ime", + "person.page.orcid.sync-queue.tooltip.country": "Država", + "person.page.orcid.sync-queue.tooltip.keywords": "KljuÄna reÄ", + "person.page.orcid.sync-queue.tooltip.external_ids": "SpoljaÅ¡nji identifikator", + "person.page.orcid.sync-queue.tooltip.researcher_urls": "URL istraživaÄa", + "person.page.orcid.sync-queue.send": "Sinhronizacija sa ORCID registrom", + "person.page.orcid.sync-queue.send.unauthorized-error.title": "Pristupanje ORCID-u nije uspelo zbog nedostajućih ovlašćenja.", + "person.page.orcid.sync-queue.send.unauthorized-error.content": "Kliknite <a href='{{orcid}}'>ovde</a> da ponovo dodelite potrebne dozvole. Ako se problem nastavi, kontaktirajte administratora", + "person.page.orcid.sync-queue.send.bad-request-error": "Slanje ORCID-u nije uspelo jer resurs poslat u ORCID registar nije važeći", + "person.page.orcid.sync-queue.send.error": "Slanje ORCID-u nije uspelo", + "person.page.orcid.sync-queue.send.conflict-error": "Slanje ORCID-u nije uspelo jer se resurs već nalazi u ORCID registru", + "person.page.orcid.sync-queue.send.not-found-warning": "Resurs se viÅ¡e ne nalazi u ORCID registru.", + "person.page.orcid.sync-queue.send.success": "Slanje ORCID-u je uspeÅ¡no zavrÅ¡eno", + "person.page.orcid.sync-queue.send.validation-error": "Podaci koje želite da sinhronizujete sa ORCID-om nisu ispravni", + "person.page.orcid.sync-queue.send.validation-error.amount-currency.required": "Valuta je obavezna", + "person.page.orcid.sync-queue.send.validation-error.external-id.required": "Resurs koji se Å¡alje zahteva najmanje jedan identifikator", + "person.page.orcid.sync-queue.send.validation-error.title.required": "Naslov je obavezan", + "person.page.orcid.sync-queue.send.validation-error.type.required": "Dc.type je obavezan", + "person.page.orcid.sync-queue.send.validation-error.start-date.required": "Datum poÄetka je obavezan", + "person.page.orcid.sync-queue.send.validation-error.funder.required": "Finansijer je neophodan", + "person.page.orcid.sync-queue.send.validation-error.country.invalid": "Nevažeće 2 cifre ISO 3166 zemlja", + "person.page.orcid.sync-queue.send.validation-error.organization.required": "Potrebna je organizacija", + "person.page.orcid.sync-queue.send.validation-error.organization.name-required": "Naziv organizacije je obavezan", + "person.page.orcid.sync-queue.send.validation-error.publication.date-invalid": "Datum objavljivanja mora biti godinu dana posle 1900. godine", + "person.page.orcid.sync-queue.send.validation-error.organization.address-required": "Organizacija zahteva adresu", + "person.page.orcid.sync-queue.send.validation-error.organization.city-required": "Adresa organizacije koja se Å¡alje zahteva grad", + "person.page.orcid.sync-queue.send.validation-error.organization.country-required": "Adresa organizacije koja se Å¡alje zahteva važeće 2 cifre ISO 3166 zemlje", + "person.page.orcid.sync-queue.send.validation-error.disambiguated-organization.required": "Potreban je identifikator za nedvosmislenost organizacija. Podržani ID-ovi su GRID, Ringgold, Legal Entity identifiers (LEIs) i Crossref Funder Registry identifiers", + "person.page.orcid.sync-queue.send.validation-error.disambiguated-organization.value-required": "Identifikatori organizacije zahtevaju vrednost", + "person.page.orcid.sync-queue.send.validation-error.disambiguation-source.required": "Identifikatorima organizacije je potreban izvor", + "person.page.orcid.sync-queue.send.validation-error.disambiguation-source.invalid": "Izvor jednog od identifikatora organizacije je nevažeći. Podržani izvori su RINGGOLD, GRID, LEI i FUNDREF", + "person.page.orcid.synchronization-mode": "NaÄin sinhronizacije", + "person.page.orcid.synchronization-mode.batch": "Batch", + "person.page.orcid.synchronization-mode.label": "NaÄin sinhronizacije", + "person.page.orcid.synchronization-mode-message": "Molimo izaberite kako želite da se sinhronizacija sa ORCID-om odvija. Opcije ukljuÄuju \"Manual\" (morate ruÄno da poÅ¡aljete svoje podatke ORCID-u) ili \"Batch\" (sistem će poslati vaÅ¡e podatke ORCID-u preko planirane skripte).", + "person.page.orcid.synchronization-mode-funding-message": "Izaberite da li želite da poÅ¡aljete vaÅ¡e povezane entitete projekta na listu informacija o finansiranju vaÅ¡eg ORCID zapisa.", + "person.page.orcid.synchronization-mode-publication-message": "Izaberite da li želite da poÅ¡aljete vaÅ¡e povezane entitete publikacije na listu radova vaÅ¡eg ORCID zapisa.", + "person.page.orcid.synchronization-mode-profile-message": "Izaberite da li želite da poÅ¡aljete vaÅ¡e biografske podatke ili liÄne identifikatore u vaÅ¡ ORCID zapis.", + "person.page.orcid.synchronization-settings-update.success": "PodeÅ¡avanja sinhronizacije su uspeÅ¡no ažurirana", + "person.page.orcid.synchronization-settings-update.error": "Ažuriranje podeÅ¡avanja sinhronizacije nije uspelo", + "person.page.orcid.synchronization-mode.manual": "Uputstvo", + "person.page.orcid.scope.authenticate": "Preuzmite svoj ORCID iD", + "person.page.orcid.scope.read-limited": "ÄŒitajte svoje informacije uz vidljivost podeÅ¡enu na Pouzdane strane", + "person.page.orcid.scope.activities-update": "Dodajte/ažurirajte vaÅ¡e istraživaÄke aktivnosti", + "person.page.orcid.scope.person-update": "Dodajte/ažurirajte druge informacije o sebi", + "person.page.orcid.unlink.success": "Prekid veze izmeÄ‘u profila i ORCID registra je bio uspeÅ¡an", + "person.page.orcid.unlink.error": "DoÅ¡lo je do greÅ¡ke prilikom prekida veze izmeÄ‘u profila i ORCID registra. PokuÅ¡ajte ponovo", + "person.orcid.sync.setting": "ORCID podeÅ¡avanja sinhronizacije", + "person.orcid.registry.queue": "ORCID Registry Queue", + "person.orcid.registry.auth": "ORCID ovlašćenja", + "home.recent-submissions.head": "Nedavni podnesci", + "listable-notification-object.default-message": "Nije moguće preuzeti ovaj objekat", + "system-wide-alert-banner.retrieval.error": "NeÅ¡to nije u redu pri preuzimanju banera sistemskog upozorenja", + "system-wide-alert-banner.countdown.prefix": "U", + "system-wide-alert-banner.countdown.days": "{{days}} dan(i),", + "system-wide-alert-banner.countdown.hours": "{{hours}} sat(i) i", + "system-wide-alert-banner.countdown.minutes": "{{minutes}} minut(i):", + "menu.section.system-wide-alert": "Sistemsko upozorenje", + "system-wide-alert.form.header": "Sistemsko upozorenje", + "system-wide-alert-form.retrieval.error": "NeÅ¡to nije u redu pri preuzimanju sistemskog upozorenja", + "system-wide-alert.form.cancel": "Otkazati", + "system-wide-alert.form.save": "SaÄuvati", + "system-wide-alert.form.label.active": "AKTIVNO", + "system-wide-alert.form.label.inactive": "NEAKTIVNO", + "system-wide-alert.form.error.message": "Sistemsko upozorenje mora sadržati poruku", + "system-wide-alert.form.label.message": "Poruka upozorenja", + "system-wide-alert.form.label.countdownTo.enable": "UkljuÄite vremensko odbrojavanje", + "system-wide-alert.form.label.countdownTo.hint": "Savet: Podesite tajmer za odbrojavanje. Kada je ukljuÄen, datum se može podesiti u budućnosti i baner sistemskog upozorenja će izvrÅ¡iti odbrojavanje do postavljenog datuma. Kada tajmer zavrÅ¡i, nestaće iz upozorenja. Server NEĆE biti automatski zaustavljen.", + "system-wide-alert.form.label.preview": "Pregled sistemskog upozorenja", + "system-wide-alert.form.update.success": "Sistemsko upozorenje je uspeÅ¡no ažurirano", + "system-wide-alert.form.update.error": "NeÅ¡to nije u redu sa ažuriranjem sistemskog upozorenja", + "system-wide-alert.form.create.success": "Sistemsko upozorenje je uspeÅ¡no kreirano", + "system-wide-alert.form.create.error": "NeÅ¡to nije u redu sa kreiranjem sistemskog upozorenja", + "admin.system-wide-alert.breadcrumbs": "Sistemska upozorenja", + "admin.system-wide-alert.title": "Sistemska upozorenja", + "item-access-control-title": "Ovaj obrazac vam omogućava da izvrÅ¡ite promene uslova pristupa metapodacima stavke ili njenim bitstream-ovima.", + "collection-access-control-title": "Ovaj obrazac vam omogućava da izvrÅ¡ite izmene uslova pristupa svim stavkama ove kolekcije. Promene mogu da se izvrÅ¡e ili na svim metapodacima stavke ili na celom sadržaju (bitstream-ova).", + "community-access-control-title": "Ovaj obrazac vam omogućava da izvrÅ¡ite promene uslova pristupa svim stavkama bilo koje kolekcije u ovoj zajednici. Promene mogu da se izvrÅ¡e ili na svim metapodacima stavke ili na celom sadržaju (bitstream-ova).", + "access-control-item-header-toggle": "Metapodaci stavke", + "access-control-bitstream-header-toggle": "Bitstream-ovi", + "access-control-mode": "NaÄin", + "access-control-access-conditions": "Uslovi pristupa", + "access-control-no-access-conditions-warning-message": "Trenutno nisu navedeni uslovi pristupa ispod. Ako se izvrÅ¡i, to će zameniti trenutne uslove pristupa podrazumevanim uslovima pristupa nasleÄ‘enim iz vlasniÄke kolekcije.", + "access-control-replace-all": "Zamena uslova pristupa", + "access-control-add-to-existing": "Dodati postojećim", + "access-control-limit-to-specific": "OgraniÄite promene na odreÄ‘ene bitstream-ove", + "access-control-process-all-bitstreams": "Ažurirajte sve bitstream-ove u stavci", + "access-control-bitstreams-selected": "izabrani bitstream-ovi", + "access-control-cancel": "Otkazati", + "access-control-execute": "IzvrÅ¡iti", + "access-control-add-more": "Dodati joÅ¡", + "access-control-select-bitstreams-modal.title": "Izaberite bitstream-ove", + "access-control-select-bitstreams-modal.no-items": "Nema stavki za prikaz.", + "access-control-select-bitstreams-modal.close": "Zatvoriti", + "access-control-option-label": "Vrsta uslova pristupa", + "access-control-option-note": "Izaberite uslov pristupa koji ćete primeniti na izabrane objekte.", + "access-control-option-start-date": "Pristup odobren od", + "access-control-option-start-date-note": "Izaberite datum od kojeg se primenjuje odgovarajući uslov pristupa", + "access-control-option-end-date": "Pristup odobren do", + "access-control-option-end-date-note": "Izaberite datum do kojeg se primenjuje odgovarajući uslov pristupa", +} diff --git a/src/config/default-app-config.ts b/src/config/default-app-config.ts index a6e9e092e4..523ccf4f50 100644 --- a/src/config/default-app-config.ts +++ b/src/config/default-app-config.ts @@ -229,6 +229,7 @@ export class DefaultAppConfig implements AppConfig { { code: 'pl', label: 'Polski', active: true }, { code: 'pt-PT', label: 'Português', active: true }, { code: 'pt-BR', label: 'Português do Brasil', active: true }, + { code: 'sr-lat', label: 'Srpski (lat)', active: true}, { code: 'fi', label: 'Suomi', active: true }, { code: 'sv', label: 'Svenska', active: true }, { code: 'tr', label: 'Türkçe', active: true }, -- GitLab From 77efe52f4aee57d4e260bcf938fb9d434fbc78df Mon Sep 17 00:00:00 2001 From: DSpace Bot <68393067+dspace-bot@users.noreply.github.com> Date: Tue, 26 Sep 2023 03:04:49 -0500 Subject: [PATCH 095/183] [Port dspace-7_x] Fix missing or wrong Italian translations (#2522) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [DURACOM-184] fix missing or wrong Italian translations --------- Co-authored-by: Andrea Barbasso <´andrea.barbasso@4science.com´> --- src/assets/i18n/it.json5 | 1405 ++++++++++++-------------------------- 1 file changed, 451 insertions(+), 954 deletions(-) diff --git a/src/assets/i18n/it.json5 b/src/assets/i18n/it.json5 index 4fc07cebdf..7f410ce0b1 100644 --- a/src/assets/i18n/it.json5 +++ b/src/assets/i18n/it.json5 @@ -195,7 +195,6 @@ // "admin.registries.bitstream-formats.table.name": "Name", "admin.registries.bitstream-formats.table.name": "Nome", // "admin.registries.bitstream-formats.table.id": "ID", - // TODO New key - Add a translation "admin.registries.bitstream-formats.table.id": "ID", // "admin.registries.bitstream-formats.table.return": "Back", @@ -277,7 +276,6 @@ // "admin.registries.schema.fields.table.field": "Field", "admin.registries.schema.fields.table.field": "Campo", // "admin.registries.schema.fields.table.id": "ID", - // TODO New key - Add a translation "admin.registries.schema.fields.table.id": "ID", // "admin.registries.schema.fields.table.scopenote": "Scope Note", @@ -501,7 +499,6 @@ "admin.access-control.groups.addGroup.breadcrumbs": "Nuovo Gruppo", // "admin.access-control.groups.head": "Groups", - // TODO Source message changed - Revise the translation "admin.access-control.groups.head": "Gruppi/Ruoli", // "admin.access-control.groups.button.add": "Add group", @@ -538,8 +535,7 @@ "admin.access-control.groups.table.edit.buttons.edit": "Modifica \"{{name}}\"", // "admin.access-control.groups.table.edit.buttons.remove": "Delete \"{{name}}\"", - // TODO New key - Add a translation - "admin.access-control.groups.table.edit.buttons.remove": "Delete \"{{name}}\"", + "admin.access-control.groups.table.edit.buttons.remove": "Elimina \"{{name}}\"", // "admin.access-control.groups.no-items": "No groups found with this in their name or this as UUID", "admin.access-control.groups.no-items": "Nessun gruppo trovato con questo nel loro nome o questo come UUID", @@ -751,16 +747,13 @@ "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.editGroupPage": "In questa pagina è possibile modificare le proprietà e i membri di un gruppo. Nella sezione in alto, è possibile modificare il nome e la descrizione del gruppo, a meno che non si tratti di un gruppo di amministratori di una collection o una community. In quel caso il nome e la descrizione del gruppo sono generati automaticamente e non possono essere modificati. Nelle sezioni successive è possibile modificare l'appartenenza al gruppo. Per maggiori dettagli, vedere [la wiki](https://wiki.lyrasis.org/display/DSDOC7x/Create+o+gestire+un+gruppo+utente)", // "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.addEpeople": "Per aggiungere o rimuovere un EPerson a/da questo gruppo, cliccare sul pulsante 'Sfoglia tutti' o utilizzare la barra di ricerca in basso per cercare gli utenti (utilizzare il menu a tendina a sinistra della barra di ricerca per selezionare la ricerca per metadati o per e-mail). Cliccare quindi sull'icona + per ogni utente che si desidera aggiungere nell'elenco sottostante o sull'icona del cestino per ogni utente che si desidera rimuovere. L'elenco può avere diverse pagine: utilizzare i controlli di pagina in basso per spostarsi alle pagine successive. Per salvare le modifiche, cliccare sul pulsante 'Salvare' nella sezione in alto.", // "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.access-control.groups.form.tooltip.editGroup.addSubgroups": "Per aggiungere o rimuovere un Sottogruppo a/da questo gruppo, cliccare sul pulsante 'Sfoglia tutti' o utilizzare la barra di ricerca in basso per cercare gli utenti. Cliccare quindi sull'icona + per ogni utente che si desidera aggiungere nell'elenco sottostante o sull'icona del cestino per ogni utente che si desidera rimuovere. L'elenco può avere diverse pagine: utilizzare i controlli di pagina in basso per spostarsi alle pagine successive. Per salvare le modifiche, cliccare sul pulsante 'Salva' nella sezione in alto.", // "admin.search.breadcrumbs": "Administrative Search", "admin.search.breadcrumbs": "Ricerca amministrativa", @@ -811,7 +804,6 @@ "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", @@ -821,12 +813,10 @@ "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.policies": "Policy", // "admin.workflow.item.supervision": "Supervision", - // TODO New key - Add a translation - "admin.workflow.item.supervision": "Supervision", + "admin.workflow.item.supervision": "Supervisione", @@ -834,43 +824,37 @@ "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.batch-import.breadcrumbs": "Batch Import", // "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.batch-import.title": "Batch Import", // "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.batch-import.page.header": "Batch Import", // "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.metadata-import.page.help": "È possibile rilasciare 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.batch-import.page.help": "Selezionare la Collection in cui effettuare l'import. Quindi, rilasciare o sfogliare un file zip Simple Archive Format (SAF) che include gli elementi da importare", // "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.batch-import.page.dropMsg": "Rilasciare un batch ZIP da importare", // "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.metadata-import.page.dropMsgReplace": "Rilasciare 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.batch-import.page.dropMsgReplace": "Rilasciare per sostituire il batch ZIP da importare", // "admin.metadata-import.page.button.return": "Back", "admin.metadata-import.page.button.return": "Indietro", @@ -879,15 +863,13 @@ "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.button.select-collection": "Selezionare una 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.batch-import.page.error.addFile": "Seleziona prima il file ZIP!", // "admin.metadata-import.page.validateOnly": "Validate Only", "admin.metadata-import.page.validateOnly": "Solo Validazione", @@ -896,138 +878,105 @@ "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.label": "Valutazione", // "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.rating.error": "È necessario valutare l'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.label": "Revisione", // "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.form.review.error": "Per inviare questa valutazione è necessario inserire una revisione", // "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": "Selezionare una valutazione qui sotto", // "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.rating.description-requiredDescription": "Selezionare una valutazione qui sotto e aggiungere anche una revisione", // "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-single": "Selezionare un solo revisione prima di procedere con l'inserimento", // "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.description-multiple": "Selezionare uno o più revisori prima di procedere con l'inserimento", // "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.search.head": "Aggiungi 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.button.see-all": "Sfoglia tutto", // "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.headMembers": "Membri attuali", // "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.metadata": "Metadati", // "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.scope.email": "E-mail (esatta)", // "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.search.button": "Ricerca", // "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.name": "Nome", // "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.identity": "Identità ", // "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.email": "E-mail", // "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": "Rimuovi / Aggiungi", // "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.table.edit.buttons.remove": "Rimuovi membro con il nome \"{{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.success.addMember": "Membro inserito con successo: \"{{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.failure.addMember": "Impossibile aggiungere il membro: \"{{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.success.deleteMember": "Membro eliminato con successo: \"{{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.notification.failure.deleteMember": "Impossibile eliminare il membro: \"{{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.table.edit.buttons.add": "Aggiungi membro con il nome \"{{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.notification.failure.noActiveGroup": "Nessun gruppo attivo al momento, inserire prima un nome.", // "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-members-yet": "Questo gruppo è vuoto, cercare e aggiungere membri.", // "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.groups.form.reviewers-list.no-items": "La ricerca non ha trovato EPeople", // "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.", + "advanced-workflow-action.select-reviewer.no-reviewer-selected.error": "Nessun revisore selezionato.", // "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.validateOnly.hint": "Una volta selezionato, il file ZIP caricato verrà convalidato. Si riceverà un rapporto sulle modifiche rilevate, ma non verrà salvata alcuna modifica.", // "admin.batch-import.page.remove": "remove", - // TODO New key - Add a translation - "admin.batch-import.page.remove": "remove", + "admin.batch-import.page.remove": "rimuovere", // "auth.errors.invalid-user": "Invalid email address or password.", "auth.errors.invalid-user": "Indirizzo e-mail o password non validi.", @@ -1043,8 +992,7 @@ // "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": "Back", "bitstream.download.page.back": "Indietro", @@ -1073,7 +1021,7 @@ "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.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", @@ -1246,8 +1194,7 @@ "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": ", inizia per {{ startsWith }}", // "browse.startsWith.choose_start": "(Choose start)", "browse.startsWith.choose_start": "(Scegli start)", @@ -1323,8 +1270,7 @@ // "search.browse.item-back": "Back to Results", - // TODO New key - Add a translation - "search.browse.item-back": "Back to Results", + "search.browse.item-back": "Torna ai risultati", // "chips.remove": "Remove chip", @@ -1332,23 +1278,20 @@ // "claimed-approved-search-result-list-element.title": "Approved", - // TODO New key - Add a translation - "claimed-approved-search-result-list-element.title": "Approved", + "claimed-approved-search-result-list-element.title": "Approvato", // "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-search-result-list-element.title": "Respinto, rinviato al 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", + "claimed-declined-task-search-result-list-element.title": "Rifiutato, rinviato al flusso di lavoro del Responsabile delle revisioni", // "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.notifications.success": "Collection creata con successo", // "collection.create.sub-head": "Create a Collection for Community {{ parent }}", "collection.create.sub-head": "Creare una collection per la Community {{ parent }}", @@ -1478,8 +1421,6 @@ // "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", @@ -1507,8 +1448,7 @@ "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.item.authorizations.show-bitstreams-button": "Mostra le policy del bitstream per il bundle", // "collection.edit.tabs.metadata.head": "Edit Metadata", "collection.edit.tabs.metadata.head": "Modifica metadati", @@ -1559,8 +1499,7 @@ "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.discarded.title": "Modifiche annullate", // "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.", @@ -1718,16 +1657,12 @@ // "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.status": "Stato dell'harvest:", // "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.start": "Ora di inizio dell'harvest:", // "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.last": "Ulimo harvest effettuato:", // "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", @@ -1954,12 +1889,10 @@ // "comcol-role.edit.scorereviewers.name": "Score Reviewers", - // TODO New key - Add a translation - "comcol-role.edit.scorereviewers.name": "Score Reviewers", + "comcol-role.edit.scorereviewers.name": "Valutatori", // "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.", + "comcol-role.edit.scorereviewers.description": "I valutatori possono assegnare un punteggio ai contributi in entrata, questo definirà se il contributo verrà rifiutato o meno.", @@ -2026,12 +1959,10 @@ "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.description": "Utilizzare questo interruttore per abilitare o disabilitare tutti i servizi.", // "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.app.disable-all.title": "Abilitare o disabilitare tutti i servizi", // "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.", @@ -2043,23 +1974,19 @@ "cookies.consent.decline": "Declinare", // "cookies.consent.ok": "That's ok", - // TODO New key - Add a translation - "cookies.consent.ok": "That's ok", + "cookies.consent.ok": "Accetta", // "cookies.consent.save": "Save", - // TODO New key - Add a translation - "cookies.consent.save": "Save", + "cookies.consent.save": "Salvare", // "cookies.consent.content-notice.title": "Cookie Consent", - // TODO New key - Add a translation - "cookies.consent.content-notice.title": "Cookie Consent", + "cookies.consent.content-notice.title": "Consenso ai cookie", // "cookies.consent.content-notice.description": "We collect and process your personal information for the following purposes: <strong>Authentication, Preferences, Acknowledgement and Statistics</strong>. <br/> To learn more, please read our {privacyPolicy}.", - "cookies.consent.content-notice.description": "Raccogliamo e processiamo le tue informazioni personali per i seguenti scopi: <strong>Autenticazione, Preferenze, Accettazione e Statistiche</strong>. <br/> Per saperne di più, leggi la nostra {privacyPolicy}.", + "cookies.consent.content-notice.description": "Raccogliamo ed elaboriamo le tue informazioni personali per i seguenti scopi: <strong>Autenticazione, Preferenze, Accettazione e Statistiche</strong>. <br/> 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: <strong>Authentication, Preferences, Acknowledgement and Statistics</strong>.", - // TODO New key - Add a translation - "cookies.consent.content-notice.description.no-privacy": "We collect and process your personal information for the following purposes: <strong>Authentication, Preferences, Acknowledgement and Statistics</strong>.", + "cookies.consent.content-notice.description.no-privacy": "Raccogliamo ed elaboriamo le tue informazioni personali per i seguenti scopi: <strong>Autenticazione, Preferenze, Accettazione e Statistiche</strong>.", // "cookies.consent.content-notice.learnMore": "Customize", "cookies.consent.content-notice.learnMore": "Personalizza", @@ -2077,12 +2004,10 @@ "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.services": "servizi", // "cookies.consent.content-modal.service": "service", - // TODO New key - Add a translation - "cookies.consent.content-modal.service": "service", + "cookies.consent.content-modal.service": "servizio", // "cookies.consent.app.title.authentication": "Authentication", "cookies.consent.app.title.authentication": "Autenticazione", @@ -2116,12 +2041,10 @@ // "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.app.description.google-recaptcha": "Utilizziamo il servizio Google reCAPTCHA nelle fasi di registrazione e recupero password", // "cookies.consent.purpose.functional": "Functional", @@ -2131,18 +2054,15 @@ "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.registration-password-recovery": "Registrazione e recupero password", // "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.citationpage.label": "Genera una pagina di citazioni", // "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", @@ -2160,9 +2080,8 @@ // "curation-task.task.vscan.label": "Virus Scan", "curation-task.task.vscan.label": "Scansione antivirus", - // "curation-task.task.registerdoi.label": "Register DOI", - // TODO New key - Add a translation - "curation-task.task.registerdoi.label": "Register DOI", + // "curation-task.task.register-doi.label": "Register DOI", + "curation-task.task.register-doi.label": "Registra DOI", @@ -2230,8 +2149,7 @@ "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.or-divider": "oppure", // "dso-selector.create.community.sub-level": "Create a new community in", "dso-selector.create.community.sub-level": "Creare una nuova community in", @@ -2264,12 +2182,10 @@ "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.export-batch.dspaceobject.head": "Esporta batch (ZIP) da", // "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.import-batch.dspaceobject.head": "Importa batch da", // "dso-selector.no-results": "No {{ type }} found", "dso-selector.no-results": "Nessun {{ type }} trovato", @@ -2287,8 +2203,7 @@ "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.or-divider": "oppure", // "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", @@ -2306,60 +2221,46 @@ "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 ↻", + "dso-selector.results-could-not-be-retrieved": "Qualcosa è andato storto, aggiorna di nuovo ↻", // "supervision-group-selector.header": "Supervision Group Selector", - // TODO New key - Add a translation - "supervision-group-selector.header": "Supervision Group Selector", + "supervision-group-selector.header": "Selezione del gruppo di supervisione", // "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.label": "Seleziona un tipo di ordine", // "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.none": "NESSUNO", // "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.editor": "EDITORE", // "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.type-of-order.option.observer": "OSSERVATORE", // "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.select.group.label": "Seleziona un gruppo", // "supervision-group-selector.button.cancel": "Cancel", - // TODO New key - Add a translation - "supervision-group-selector.button.cancel": "Cancel", + "supervision-group-selector.button.cancel": "Annulla", // "supervision-group-selector.button.save": "Save", - // TODO New key - Add a translation - "supervision-group-selector.button.save": "Save", + "supervision-group-selector.button.save": "Salva", // "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.type-of-order.error": "Seleziona un tipo di ordine", // "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.select.group.error": "Seleziona un gruppo", // "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.success.title": "Ordine di supervisione per il gruppo {{ name }} creato con successo", // "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.failure.title": "Errore", // "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", + "supervision-group-selector.notification.create.already-existing": "Per questo item esiste già un ordine di supervisione per il gruppo selezionato", // "confirmation-modal.export-metadata.header": "Export metadata for {{ dsoName }}", "confirmation-modal.export-metadata.header": "Esportare i metadati per {{ dsoName }}", @@ -2374,20 +2275,16 @@ "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.header": "Esporta batch (ZIP) per {{ 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.info": "Sei sicuro di voler esportare batch (ZIP) per {{ dsoName }}?", // "confirmation-modal.export-batch.cancel": "Cancel", - // TODO New key - Add a translation - "confirmation-modal.export-batch.cancel": "Cancel", + "confirmation-modal.export-batch.cancel": "Annulla", // "confirmation-modal.export-batch.confirm": "Export", - // TODO New key - Add a translation - "confirmation-modal.export-batch.confirm": "Export", + "confirmation-modal.export-batch.confirm": "Esporta", // "confirmation-modal.delete-eperson.header": "Delete EPerson \"{{ dsoName }}\"", "confirmation-modal.delete-eperson.header": "Elimina EPerson \"{{ dsoName }}\"", @@ -2478,11 +2375,10 @@ "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.license.notgranted": "È necessario concedere questa licenza per completare l'immisione. Se non sei in grado di concedere questa licenza in questo momento, puoi salvare il tuo lavoro e tornare più tardi o rimuovere l'immissione.", // "error.validation.pattern": "This input is restricted by the current pattern: {{ pattern }}.", - // TODO New key - Add a translation - "error.validation.pattern": "This input is restricted by the current pattern: {{ pattern }}.", + "error.validation.pattern": "L'input è limitato dal pattern in uso: {{ pattern }}.", // "error.validation.filerequired": "The file upload is mandatory", "error.validation.filerequired": "Il caricamento del file è obbligatorio", @@ -2501,7 +2397,6 @@ // "feed.description": "Syndication feed", - // TODO New key - Add a translation "feed.description": "Syndication feed", @@ -2525,12 +2420,10 @@ // "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":"End User Agreement", "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":"Send Feedback", "footer.link.feedback": "Invia Feedback", @@ -2539,8 +2432,7 @@ "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.info": "Inserisci l'indirizzo email associato all'account.", // "forgot-email.form.email": "Email Address *", "forgot-email.form.email": "Indirizzo email *", @@ -2549,31 +2441,25 @@ "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.error.not-email-form": "Si prega di inserire un idirizzo email valido", // "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.email.hint": "Una email con ulteriori indicazioni sarà invita a questo indrizzo.", // "forgot-email.form.submit": "Reset password", - // TODO Source message changed - Revise the translation - "forgot-email.form.submit": "Salva", + "forgot-email.form.submit": "Reimposta la password", // "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.head": "Email di reimpostazione password 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.head": "Errore durante il tentativo di reimpostare la password", // "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-email.form.error.content": "Si è verificato un errore durante il tentativo di reimpostare la password per l'account associato al seguente indirizzo email: {{ email }}", @@ -2584,8 +2470,7 @@ "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.info": "Inserisci una nuova password nella casella qui sotto e confermala digitandola di nuovo nella seconda casella.", // "forgot-password.form.card.security": "Security", "forgot-password.form.card.security": "Sicurezza", @@ -2651,21 +2536,14 @@ // "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.add": "Add", + "form.group.add": "Aggiungi", - // "form.group-expand": "Expand", - // TODO New key - Add a translation - "form.group-expand": "Expand", + // "form.group.close": "Close", + "form.group.close": "Chiudi", - // "form.group-expand-help": "Click here to expand and add more elements", - // TODO New key - Add a translation - "form.group-expand-help": "Click here to expand and add more elements", + // "form.group.set": "Set", + "form.group.set": "Set", // "form.last-name": "Last name", "form.last-name": "Cognome", @@ -2685,9 +2563,8 @@ // "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.other-information": "", + "form.other-information": "", // "form.remove": "Remove", "form.remove": "Rimuovi", @@ -2708,8 +2585,7 @@ "form.submit": "Salva", // "form.create": "Create", - // TODO New key - Add a translation - "form.create": "Create", + "form.create": "Crea", // "form.repeatable.sort.tip": "Drop the item in the new position", "form.repeatable.sort.tip": "Rilascia l'item nella nuova posizione", @@ -2783,49 +2659,39 @@ // "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.info-tab": "Informazioni", // "health-page.status-tab": "Status", - // TODO New key - Add a translation - "health-page.status-tab": "Status", + "health-page.status-tab": "Stato", // "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.property.status": "Codice di stato", // "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", @@ -2835,12 +2701,10 @@ "health-page.section-info.java.title": "Java", // "health-page.status": "Status", - // TODO New key - Add a translation - "health-page.status": "Status", + "health-page.status": "Stato", // "health-page.status.ok.info": "Operational", - // TODO New key - Add a translation - "health-page.status.ok.info": "Operational", + "health-page.status.ok.info": "Operativo", // "health-page.status.error.info": "Problems detected", "health-page.status.error.info": "Sono stati rilevati dei problemi", @@ -2849,7 +2713,6 @@ "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", @@ -2869,10 +2732,9 @@ "home.title": "Home", // "home.top-level-communities.head": "Communities in DSpace", - "home.top-level-communities.head": "Community in DSpace", + "home.top-level-communities.head": "DSpace Communities", - // "home.top-level-communities.help": "Select a community to browse its collections.", - // TODO Source message changed - Revise the translation + // "home.top-level-communities.help": "Search for a collection", "home.top-level-communities.help": "Cerca una collection", @@ -2935,23 +2797,18 @@ "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", @@ -2973,7 +2830,6 @@ // "item.badge.private": "Non-discoverable", - // TODO Source message changed - Revise the translation "item.badge.private": "Privato", // "item.badge.withdrawn": "Withdrawn", @@ -2985,14 +2841,12 @@ "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", @@ -3145,88 +2999,67 @@ "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.UNKNOWN": "Sconosciuto", // "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_REGISTERED": "In coda per la registrazione", // "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.TO_BE_RESERVED": "In coda per l'assegnazione", // "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_REGISTERED": "Registrato", // "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.IS_RESERVED": "Assegnato", // "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_RESERVED": "Assegnato (aggiornamento in coda)", // "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_REGISTERED": "Registrato (aggiornamento in coda)", // "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.UPDATE_BEFORE_REGISTRATION": "In coda per aggiornamento e registrazione", // "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.TO_BE_DELETED": "In coda per l'eliminazione", // "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.DELETED": "Eliminato", // "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.PENDING": "In sospeso (non registrato)", // "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.identifiers.doi.status.MINTED": "Creato (non registrato)", // "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.label": "Registra un nuovo DOI o un DOI in sospeso", // "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.tabs.status.buttons.register-doi.button": "Registra 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.header": "Registra un nuovo DOI o un DOI in sospeso", // "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.description": "Esaminare gli identificatori e i metadati dell'item in sospeso e cliccare su Conferma per procedere con la registrazione DOI, oppure su Annulla per tornare indietro", // "item.edit.register-doi.confirm": "Confirm", - // TODO New key - Add a translation - "item.edit.register-doi.confirm": "Confirm", + "item.edit.register-doi.confirm": "Conferma", // "item.edit.register-doi.cancel": "Cancel", - // TODO New key - Add a translation - "item.edit.register-doi.cancel": "Cancel", + "item.edit.register-doi.cancel": "Annulla", // "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.success": "DOI in coda per la registrazione.", // "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.error": "Errore nella registrazione del 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.register-doi.to-update": "Il seguente DOI è stato già creato e sarà inserito in coda per la registrazione online", // "item.edit.item-mapper.buttons.add": "Map item to selected collections", "item.edit.item-mapper.buttons.add": "Mappare l'item nelle collections selezionate", @@ -3291,12 +3124,10 @@ "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.confirm": "Conferma", // "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.drag": "Trascina per riordinare", // "item.edit.metadata.edit.buttons.edit": "Edit", "item.edit.metadata.edit.buttons.edit": "Edita", @@ -3311,8 +3142,7 @@ "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.edit.buttons.virtual": "Si tratta di un valore virtuale di metadati, cioè un valore ereditato da un'entità correlata. Non può essere modificato direttamente. Aggiungere o rimuovere la relazione corrispondente nella scheda 'Relazioni'.", // "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.", @@ -3330,8 +3160,7 @@ "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.error": "Si è verificato un errore nella validazione del campo dei metadati", // "item.edit.metadata.metadatafield.invalid": "Please choose a valid metadata field", "item.edit.metadata.metadatafield.invalid": "Scegli un campo di metadati valido", @@ -3340,7 +3169,6 @@ "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", @@ -3356,7 +3184,6 @@ "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.", @@ -3369,8 +3196,7 @@ "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.reset-order-button": "Annulla il riordinamento", // "item.edit.metadata.save-button": "Save", "item.edit.metadata.save-button": "Salva", @@ -3433,16 +3259,13 @@ "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.description": "Sei sicuro che questo item 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.error": "Si è verificato un errore durante la modifica dell'item in privato", // "item.edit.private.header": "Make item non-discoverable: {{ id }}", "item.edit.private.header": "Rendi privato l'item: {{ id }}", @@ -3456,22 +3279,18 @@ "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.description": "Sei sicuro che questo item 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.error": "Si è verificato un errore durante la modifica dell'item in 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", @@ -3558,7 +3377,6 @@ // "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", @@ -3592,26 +3410,21 @@ "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.button": "Sposta questo item in un'altra collection...", // "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.button": "Rendilo privato...", // "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.button": "Rendilo pubblico...", // "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...", @@ -3624,8 +3437,7 @@ "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.button": "Rimuovi questo item", // "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository", "item.edit.tabs.status.buttons.withdraw.label": "Rimuovere l'item dal repository", @@ -3724,36 +3536,28 @@ "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.header": "Elimina l'ordine di supervisione", // "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.info": "Sei sicuro di voler eliminare l'ordine di supervisione?", // "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.cancel": "Annulla", // "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.delete-supervision.modal.confirm": "Elimina", // "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.success": "Ordine di supervisione \"{{name}}\" eliminato con successo", // "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.notification.deleted.failure": "Impossibile eliminare l'ordine di supervisione \"{{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-by": "Supervisionato da:", // "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", + "workflow-item.search.result.list.element.supervised.remove-tooltip": "Rimuovi gruppo di supervisione", @@ -3848,11 +3652,9 @@ "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", @@ -3889,8 +3691,7 @@ "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.subject": "Soggetti:", // "item.preview.dc.title": "Title:", "item.preview.dc.title": "Titolo:", @@ -3899,30 +3700,24 @@ "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:", @@ -3944,8 +3739,7 @@ "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.title.alternative": "Acronimo:", // "item.preview.dc.coverage.spatial": "Jurisdiction:", "item.preview.dc.coverage.spatial": "Giurisdizione:", @@ -4070,15 +3864,12 @@ "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", @@ -4101,131 +3892,100 @@ "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.add-button": "Aggiungi", // "itemtemplate.edit.metadata.discard-button": "Discard", - // TODO New key - Add a translation - "itemtemplate.edit.metadata.discard-button": "Discard", + "itemtemplate.edit.metadata.discard-button": "Elimina", // "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.confirm": "Conferma", // "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.drag": "Trascina per riordinare", // "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.edit": "Modifica", // "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.remove": "Rimuovi", // "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.undo": "Annulla le modifiche", // "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.edit.buttons.unedit": "Smetti di modificare", // "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.empty": "Il template dell'item al momento non contiene nessun metadato. Clicca su 'Aggiungi' per inserire un metadato.", // "itemtemplate.edit.metadata.headers.edit": "Edit", - // TODO New key - Add a translation - "itemtemplate.edit.metadata.headers.edit": "Edit", + "itemtemplate.edit.metadata.headers.edit": "Modifica", // "itemtemplate.edit.metadata.headers.field": "Field", - // TODO New key - Add a translation - "itemtemplate.edit.metadata.headers.field": "Field", + "itemtemplate.edit.metadata.headers.field": "Campo", // "itemtemplate.edit.metadata.headers.language": "Lang", - // TODO New key - Add a translation - "itemtemplate.edit.metadata.headers.language": "Lang", + "itemtemplate.edit.metadata.headers.language": "Lingua", // "itemtemplate.edit.metadata.headers.value": "Value", - // TODO New key - Add a translation - "itemtemplate.edit.metadata.headers.value": "Value", + "itemtemplate.edit.metadata.headers.value": "Valore", // "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.error": "Si è verificato un errore durante la validazione del campo dei metadati", // "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.metadatafield.invalid": "Si prega di scegliere un campo di metadati valido", // "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.content": "Le tue modifiche sono state eliminate. Per riprtinarle, cliccare sul tasto 'Annulla'", - // "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.discarded.title": "Changed discarded", + "itemtemplate.edit.metadata.notifications.discarded.title": "Modifiche eliminate", // "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.error.title": "Si è verificato un errore", // "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.content": "Le tue modifiche non sono state salvate. Assicurati che tutti i campi siano validi prima di salvare.", // "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.invalid.title": "Metadati non validi", // "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.content": "Il template dell'item su cui stai lavorando è stato modificato da un altro utente. Le tue ultime modifiche sono state eliminate per prevenire conflitti", - // "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.outdated.title": "Changed outdated", + "itemtemplate.edit.metadata.notifications.outdated.title": "Modifiche obsolete", // "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.content": "Le tue modifiche ai metadati di questo template sono state salvate.", // "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.notifications.saved.title": "Metadati salvati", // "itemtemplate.edit.metadata.reinstate-button": "Undo", - // TODO New key - Add a translation - "itemtemplate.edit.metadata.reinstate-button": "Undo", + "itemtemplate.edit.metadata.reinstate-button": "Annulla", // "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.reset-order-button": "Annulla riordinamento", // "itemtemplate.edit.metadata.save-button": "Save", - // TODO New key - Add a translation - "itemtemplate.edit.metadata.save-button": "Save", + "itemtemplate.edit.metadata.save-button": "Salva", @@ -4492,27 +4252,22 @@ // "menu.section.browse_global": "All of DSpace", // TODO New key - Add a translation - "menu.section.browse_global": "All of DSpace", + "menu.section.browse_global": "Tutto DSpace", // "menu.section.browse_global_by_author": "By Author", - // TODO New key - Add a translation - "menu.section.browse_global_by_author": "By Author", + "menu.section.browse_global_by_author": "Per autore", // "menu.section.browse_global_by_dateissued": "By Issue Date", - // TODO New key - Add a translation - "menu.section.browse_global_by_dateissued": "By Issue Date", + "menu.section.browse_global_by_dateissued": "Per data di pubblicazione", // "menu.section.browse_global_by_subject": "By Subject", - // TODO New key - Add a translation - "menu.section.browse_global_by_subject": "By Subject", + "menu.section.browse_global_by_subject": "Per argomento", // "menu.section.browse_global_by_title": "By Title", - // TODO New key - Add a translation - "menu.section.browse_global_by_title": "By Title", + "menu.section.browse_global_by_title": "Per titolo", // "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.communities_and_collections": "Community & Collezioni", @@ -4554,7 +4309,6 @@ "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)", @@ -4580,8 +4334,7 @@ "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.health": "Sezione del menu Health check", // "menu.section.icon.import": "Import menu section", "menu.section.icon.import": "Sezione del menu Importa", @@ -4593,8 +4346,7 @@ "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.processes": "Processi", // "menu.section.icon.registries": "Registries menu section", "menu.section.icon.registries": "Sezione del menu Registri", @@ -4810,8 +4562,7 @@ "mydspace.show.workspace": "I tuoi contributi", // "mydspace.show.supervisedWorkspace": "Supervised items", - // TODO New key - Add a translation - "mydspace.show.supervisedWorkspace": "Supervised items", + "mydspace.show.supervisedWorkspace": "Item supervisionati", // "mydspace.status.mydspaceArchived": "Archived", "mydspace.status.mydspaceArchived": "Archiviati", @@ -4855,8 +4606,7 @@ "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.context-help-toggle": "Attivare la guida contestuale", // "nav.language": "Language switch", "nav.language": "Cambio di lingua", @@ -4865,12 +4615,10 @@ "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.user-profile-menu-and-logout": "Menu profilo utente e Disconnetti", // "nav.logout": "Log Out", - // TODO Source message changed - Revise the translation - "nav.logout": "Menu profilo utente e Disconnetti", + "nav.logout": "Disconnetti", // "nav.main.description": "Main navigation bar", "nav.main.description": "Barra di navigazione principale", @@ -4885,8 +4633,7 @@ "nav.search": "Ricerca", // "nav.search.button": "Submit search", - // TODO New key - Add a translation - "nav.search.button": "Submit search", + "nav.search.button": "Invia ricerca", // "nav.statistics.header": "Statistics", @@ -4896,27 +4643,23 @@ "nav.stop-impersonating": "Smetti di impersonare EPerson", // "nav.subscriptions": "Subscriptions", - // TODO New key - Add a translation - "nav.subscriptions": "Subscriptions", + "nav.subscriptions": "Subscription", // "nav.toggle": "Toggle navigation", - // TODO New key - Add a translation - "nav.toggle": "Toggle navigation", + "nav.toggle": "Attivare la navigazione", // "nav.user.description": "User profile bar", - // TODO New key - Add a translation - "nav.user.description": "User profile bar", + "nav.user.description": "Barra del profilo utente", // "none.listelement.badge": "Item", - "none.listelement.badge": "Articolo", + "none.listelement.badge": "Item", // "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.listelement.no-title": "Senza titolo", // "orgunit.page.city": "City", "orgunit.page.city": "Città ", @@ -4937,8 +4680,7 @@ "orgunit.page.id": "ID", // "orgunit.page.titleprefix": "Organizational Unit: ", - // TODO New key - Add a translation - "orgunit.page.titleprefix": "Organizational Unit: ", + "orgunit.page.titleprefix": "Unità organizzativa: ", @@ -4984,8 +4726,7 @@ "person.page.lastname": "Cognome", // "person.page.name": "Name", - // TODO New key - Add a translation - "person.page.name": "Name", + "person.page.name": "Nome", // "person.page.link.full": "Show all metadata", "person.page.link.full": "Mostra tutti i metadati", @@ -5000,11 +4741,10 @@ "person.page.titleprefix": "Persona: ", // "person.search.results.head": "Person Search Results", - "person.search.results.head": "Risultati della ricerca per Ricercatore", + "person.search.results.head": "Risultati della ricerca per persona", // "person-relationships.search.results.head": "Person Search Results", - // TODO New key - Add a translation - "person-relationships.search.results.head": "Person Search Results", + "person-relationships.search.results.head": "Risultati della ricerca per persona", // "person.search.title": "Person Search", "person.search.title": "Cerca i Ricercatori", @@ -5045,8 +4785,7 @@ "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.parameter.required.missing": "I seguenti parametri mancanti sono obbligatori:", // "process.new.notification.success.title": "Success", "process.new.notification.success.title": "Successo", @@ -5061,8 +4800,7 @@ "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.notification.error.max-upload.content": "Il file è più grande della dimensione massima di upload", // "process.new.header": "Create a new process", "process.new.header": "Creare un nuovo processo", @@ -5076,20 +4814,16 @@ // "process.detail.arguments": "Arguments", - // TODO New key - Add a translation - "process.detail.arguments": "Arguments", + "process.detail.arguments": "Parametri", // "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.arguments.empty": "Questo processo non contiene alcun parametro", // "process.detail.back": "Back", - // TODO New key - Add a translation - "process.detail.back": "Back", + "process.detail.back": "Indietro", // "process.detail.output": "Process Output", - // TODO New key - Add a translation - "process.detail.output": "Process Output", + "process.detail.output": "Output del processo", // "process.detail.logs.button": "Retrieve process output", "process.detail.logs.button": "Recupera l'output del processo", @@ -5101,94 +4835,72 @@ "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": "File di output", // "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.output-files.empty": "Questo processo non contiene nessun file di output", // "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.title": "Processo: {{ id }} - {{ name }}", // "process.detail.start-time": "Start time", - // TODO New key - Add a translation - "process.detail.start-time": "Start time", + "process.detail.start-time": "Orario di inizio", // "process.detail.end-time": "Finish time", - // TODO New key - Add a translation - "process.detail.end-time": "Finish time", + "process.detail.end-time": "Orario di fine", // "process.detail.status": "Status", - // TODO New key - Add a translation - "process.detail.status": "Status", + "process.detail.status": "Stato", // "process.detail.create": "Create similar process", - // TODO New key - Add a translation - "process.detail.create": "Create similar process", + "process.detail.create": "Crea un processo analogo", // "process.detail.actions": "Actions", - // TODO New key - Add a translation - "process.detail.actions": "Actions", + "process.detail.actions": "Azioni", // "process.detail.delete.button": "Delete process", - // TODO New key - Add a translation - "process.detail.delete.button": "Delete process", + "process.detail.delete.button": "Elimina processo", // "process.detail.delete.header": "Delete process", - // TODO New key - Add a translation - "process.detail.delete.header": "Delete process", + "process.detail.delete.header": "Elimina processo", // "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.body": "Sei sicuro di voler eliminare il processo corrente?", // "process.detail.delete.cancel": "Cancel", - // TODO New key - Add a translation - "process.detail.delete.cancel": "Cancel", + "process.detail.delete.cancel": "Annulla", // "process.detail.delete.confirm": "Delete process", - // TODO New key - Add a translation - "process.detail.delete.confirm": "Delete process", + "process.detail.delete.confirm": "Elimina processo", // "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.success": "Il processo è stato eliminato con successo", // "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.detail.delete.error": "Qualcosa è andato storto durante l'elininazione del processo", // "process.overview.table.finish": "Finish time (UTC)", - // TODO New key - Add a translation - "process.overview.table.finish": "Finish time (UTC)", + "process.overview.table.finish": "Orario di fine (UTC)", // "process.overview.table.id": "Process ID", - // TODO New key - Add a translation - "process.overview.table.id": "Process ID", + "process.overview.table.id": "ID del processo", // "process.overview.table.name": "Name", - // TODO New key - Add a translation - "process.overview.table.name": "Name", + "process.overview.table.name": "Nome", // "process.overview.table.start": "Start time (UTC)", - // TODO New key - Add a translation - "process.overview.table.start": "Start time (UTC)", + "process.overview.table.start": "Orario di inizio (UTC)", // "process.overview.table.status": "Status", - // TODO New key - Add a translation - "process.overview.table.status": "Status", + "process.overview.table.status": "Stato", // "process.overview.table.user": "User", - // TODO New key - Add a translation - "process.overview.table.user": "User", + "process.overview.table.user": "Utente", // "process.overview.title": "Processes Overview", "process.overview.title": "Panoramica dei processi", @@ -5200,40 +4912,31 @@ "process.overview.new": "Nuovo", // "process.overview.table.actions": "Actions", - // TODO New key - Add a translation - "process.overview.table.actions": "Actions", + "process.overview.table.actions": "Azioni", // "process.overview.delete": "Delete {{count}} processes", - // TODO New key - Add a translation - "process.overview.delete": "Delete {{count}} processes", + "process.overview.delete": "Elimina {{count}} processi", // "process.overview.delete.clear": "Clear delete selection", - // TODO New key - Add a translation - "process.overview.delete.clear": "Clear delete selection", + "process.overview.delete.clear": "Ripulisci la sezione Elimina", // "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.processing": "{{count}} processi sono in fase di eliminazione. Attendere che l'attività sia completata. Potrebbe volerci qualche minuto.", // "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.body": "Sei sicuro di voler eliminare {{count}} processo/i?", // "process.overview.delete.header": "Delete processes", - // TODO New key - Add a translation - "process.overview.delete.header": "Delete processes", + "process.overview.delete.header": "Elimina processi", // "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.head": "Errore nell'eliminazione dei processi", // "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.error.body": "Il processo con l'ID {{processId}} non può essere eliminato. I restanti processi saranno eliminati.", // "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", + "process.bulk.delete.success": "{{count}} processi sono stati eliminati con successo", @@ -5246,16 +4949,14 @@ // "profile.card.security": "Security", "profile.card.security": "Sicurezza", - // "profile.form.submit": "Save", - // TODO Source message changed - Revise the translation + // "profile.form.submit": "Update Profile", "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.special.groups.head": "Gruppi speciali di autorizzazione a cui appartieni", // "profile.head": "Update Profile", "profile.head": "Aggiorna profilo", @@ -5297,8 +4998,7 @@ "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.info": "Facoltativamente, è possibile inserire una nuova password nella casella qui sotto e confermarla digitandola nuovamente nella seconda casella.", // "profile.security.form.label.password": "Password", "profile.security.form.label.password": "Password", @@ -5307,8 +5007,7 @@ "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.label.current-password": "Password corrente", // "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.", @@ -5320,15 +5019,13 @@ "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.change-failed": "Si è verificato un errore durante la modifica della password. Assicurati che la password corrente sia corretta.", // "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.security.form.notifications.error.general": "Si prega di inserire i campi richiesti nel modulo di sicurezza.", // "profile.title": "Update Profile", "profile.title": "Aggiorna profilo", @@ -5364,15 +5061,13 @@ "project.page.status": "Parole chiave", // "project.page.titleprefix": "Research Project: ", - // TODO New key - Add a translation - "project.page.titleprefix": "Research Project: ", + "project.page.titleprefix": "Progetto di ricerca: ", // "project.search.results.head": "Project Search Results", - "project.search.results.head": "Progetto di ricerca: ", + "project.search.results.head": "Risultati della ricerca per progetti", // "project-relationships.search.results.head": "Project Search Results", - // TODO New key - Add a translation - "project-relationships.search.results.head": "Project Search Results", + "project-relationships.search.results.head": "Risultati della ricerca per progetti", @@ -5395,18 +5090,16 @@ "publication.page.publisher": "Editore", // "publication.page.titleprefix": "Publication: ", - // TODO New key - Add a translation - "publication.page.titleprefix": "Publication: ", + "publication.page.titleprefix": "Pubblicazione: ", // "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.search.results.head": "Risultati della ricerca per pubblicazioni", // "publication-relationships.search.results.head": "Publication Search Results", - // TODO New key - Add a translation - "publication-relationships.search.results.head": "Publication Search Results", + "publication-relationships.search.results.head": "Risultati della ricerca per pubblicazioni", // "publication.search.title": "Publication Search", "publication.search.title": "Ricerca pubblicazione", @@ -5456,8 +5149,7 @@ "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.info": "Inserisci una password nella casella qui sotto e confermala digitandola nuovamente nella seconda casella.", // "register-page.create-profile.security.label.password": "Password *", "register-page.create-profile.security.label.password": "Password *", @@ -5500,12 +5192,10 @@ "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-email-form": "Inserisci un indirizzo e-mail valido.", // "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.error.not-valid-domain": "Utilizza una e-mail con un dominio valido: {{ 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.", @@ -5523,39 +5213,30 @@ "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.content": "Si è verificato un errore durante la registrazione del seguente indirizzo e-mail: {{ 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.error.recaptcha": "Errore durante l'autenticazione con reCaptcha", // "register-page.registration.google-recaptcha.must-accept-cookies": "In order to register you must accept the <b>Registration and Password recovery</b> (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 <b>Registration and Password recovery</b> (Google reCaptcha) cookies.", + "register-page.registration.google-recaptcha.must-accept-cookies": "Per registrarsi è obbligatorio accettare i cookie <b>Registration and Password recovery</b> (Google reCaptcha).", // "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.error.maildomain": "Questo indirizzo e-mail non è nella lista dei dominii che possono essere registrati. I domini validi sono {{ 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.open-cookie-settings": "Aprire le impostazioni dei cookie", // "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.error": "Si è verificato un errore durante la verifica reCaptcha", // "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.google-recaptcha.notification.message.expired": "Verifica scaduta. Si prega di verificare di nuovo.", // "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", + "register-page.registration.info.maildomain": "Gli account possono essere registrati per gli indirizzi e-mail dei dominii", // "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", @@ -5625,7 +5306,6 @@ "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 ::", @@ -5636,60 +5316,58 @@ "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.": "Aggiungi una nuova policy", // "resource-policies.add.for.bitstream": "Add a new Bitstream policy", - "resource-policies.add.for.bitstream": "Aggiungi un nuovo criterio Bitstream", + "resource-policies.add.for.bitstream": "Aggiungi una nuova policy di 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.bundle": "Aggiungi una nuova policy di 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.item": "Aggiungi una nuova policy di 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.community": "Aggiungi una nuova policy di community", // "resource-policies.add.for.collection": "Add a new Collection policy", - "resource-policies.add.for.collection": "Aggiungere un nuovo criterio di collezione", + "resource-policies.add.for.collection": "Aggiungi una nuova policy 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.heading": "Creare una nuova policy 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.failure.content": "Si è verificato un errore durante la creazione della policy di 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.create.page.title": "Creare nuove policy di risorsa", // "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.btn.title": "Elimina le policy di risorsa selezionate", // "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.failure.content": "Si è verificato un errore durante l'eliminazione delle policy di risorsa selezionate.", // "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.heading": "Modifica policy di risorsa", // "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.failure.content": "Si è verificato un errore durante la modifica della policy di risorsa.", // "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.target-failure.content": "Si è verificato un errore durante la modifica dell'obiettivo (ePerson o gruppo) della policy di risorsa.", // "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.other-failure.content": "Si è verificato un errore durante la modifica della policy di risorsa. L'obiettio (ePerson o gruppo) è stato aggiornato con successo.", // "resource-policies.edit.page.success.content": "Operation successful", "resource-policies.edit.page.success.content": "Operazione riuscita", @@ -5725,20 +5403,16 @@ "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.header": "Impossibile modificare il tipo", // "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.toGroup": "Impossibile sostituire una ePerson con un gruppo.", // "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.text1.toEPerson": "Impossibile sostituire un gruppo con una 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.text2": "Elimina la policy di risorsa corrente e creane una nuova con il tipo desiderato.", // "resource-policies.form.eperson-group-list.modal.close": "Ok", "resource-policies.form.eperson-group-list.modal.close": "Ok", @@ -5840,7 +5514,6 @@ "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", @@ -5856,23 +5529,22 @@ "search.filters.applied.f.namedresourcetype": "Stato", // "search.filters.applied.f.subject": "Subject", - "search.filters.applied.f.subject": "Oggetto", + "search.filters.applied.f.subject": "Soggetto", // "search.filters.applied.f.submitter": "Submitter", - "search.filters.applied.f.submitter": "Mittente", + "search.filters.applied.f.submitter": "Submitter", // "search.filters.applied.f.jobTitle": "Job Title", - "search.filters.applied.f.jobTitle": "Titolo di lavoro", + "search.filters.applied.f.jobTitle": "Ruolo", // "search.filters.applied.f.birthDate.max": "End birth date", - "search.filters.applied.f.birthDate.max": "Data di fine nascita", + "search.filters.applied.f.birthDate.max": "Data di nascita finale", // "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.supervisedBy": "Supervisionato da", // "search.filters.applied.f.withdrawn": "Withdrawn", "search.filters.applied.f.withdrawn": "Ritirato", @@ -5961,7 +5633,6 @@ "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", @@ -5974,7 +5645,7 @@ "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.entityType.label": "Cerca tipo di item", // "search.filters.filter.expand": "Expand filter", "search.filters.filter.expand": "Espandi filtro", @@ -6010,13 +5681,13 @@ "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.head": "Stato", // "search.filters.filter.namedresourcetype.placeholder": "Status", - "search.filters.filter.namedresourcetype.placeholder": "Status", + "search.filters.filter.namedresourcetype.placeholder": "Stato", // "search.filters.filter.namedresourcetype.label": "Search status", - "search.filters.filter.namedresourcetype.label": "Status Ricerca", + "search.filters.filter.namedresourcetype.label": "Cerca stato", // "search.filters.filter.objectpeople.head": "People", "search.filters.filter.objectpeople.head": "Ricercatori", @@ -6088,20 +5759,19 @@ "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.show-tree": "Sfoglia l'albero di {{ name }}", // "search.filters.filter.supervisedBy.head": "Supervised By", - // TODO New key - Add a translation - "search.filters.filter.supervisedBy.head": "Supervised By", + "search.filters.filter.supervisedBy.head": "Supervisionato da", // "search.filters.filter.supervisedBy.placeholder": "Supervised By", - // TODO New key - Add a translation - "search.filters.filter.supervisedBy.placeholder": "Supervised By", + "search.filters.filter.supervisedBy.placeholder": "Supervisionato da", // "search.filters.filter.supervisedBy.label": "Search Supervised By", - // TODO New key - Add a translation - "search.filters.filter.supervisedBy.label": "Search Supervised By", + "search.filters.filter.supervisedBy.label": "Cerca supervisionato da", + + // "search.filters.filter.types.head": "Type", + "search.filters.filter.types.head": "Tipo", @@ -6168,19 +5838,16 @@ "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.view-result": "Vedi", // "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", + "search.results.response.500": "Si è verificato un errore durante l'esecuzione, si prega di riprovare più tardi", // "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", + "default-relationships.search.results.head": "Risultati della ricerca", // "search.sidebar.close": "Back to results", @@ -6218,13 +5885,13 @@ // "sorting.ASC": "Ascending", - "sorting.ASC": "Ascendente", + "sorting.ASC": "Crescente", // "sorting.DESC": "Descending", - "sorting.DESC": "Discendente", + "sorting.DESC": "Decrescente", // "sorting.dc.title.ASC": "Title Ascending", - "sorting.dc.title.ASC": "Titolo ascendente", + "sorting.dc.title.ASC": "Titolo crescente", // "sorting.dc.title.DESC": "Title Descending", "sorting.dc.title.DESC": "Titolo decrescente", @@ -6270,32 +5937,25 @@ "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.rppublicationsReports.title.TotalVisits": "Visite totali", // "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.TotalVisitsPerMonth": "Visite totali al mese", // "statistics.table.title.TotalDownloads": "File Visits", - // TODO New key - Add a translation - "statistics.table.title.TotalDownloads": "File Visits", + "statistics.table.title.TotalDownloads": "Download", // "statistics.table.title.TopCountries": "Top country views", - // TODO New key - Add a translation - "statistics.table.title.TopCountries": "Top country views", + "statistics.table.title.TopCountries": "Migliori nazioni", // "statistics.table.title.TopCities": "Top city views", - // TODO New key - Add a translation - "statistics.table.title.TopCities": "Top city views", + "statistics.table.title.TopCities": "Migliori città ", // "statistics.table.header.views": "Views", - // TODO New key - Add a translation - "statistics.table.header.views": "Views", + "statistics.table.header.views": "Visite", // "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)", + "statistics.table.no-name": "(il nome dell'oggetto non può essere caricato)", @@ -6403,7 +6063,6 @@ "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", @@ -6452,22 +6111,19 @@ "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": "Anteprima item", // "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.none": "Anteprima item", // "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.OrgUnit": "Anteprima struttura", // "submission.import-external.preview.title.Person": "Person Preview", "submission.import-external.preview.title.Person": "Anteprima persona", @@ -6509,8 +6165,7 @@ "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.none": "Importa item remoti", // "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", @@ -6522,8 +6177,7 @@ "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.OrgUnit": "Importa unitá remota", // "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", @@ -6625,8 +6279,7 @@ "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.external-source.import-modal.select": "Seleziona una corrispondenza locale:", // "submission.sections.describe.relationship-lookup.search-tab.deselect-all": "Deselect all", "submission.sections.describe.relationship-lookup.search-tab.deselect-all": "Deseleziona tutto", @@ -6728,8 +6381,7 @@ "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.search-tab.tab-title.isPublicationOfAuthor": "Pubblicazioni dell'autore", // "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", @@ -6798,11 +6450,10 @@ "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.title.isPublicationOfAuthor": "Pubblicazioni", // "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.search-tab.toggle-dropdown": "Attiva dropdown", // "submission.sections.describe.relationship-lookup.selection-tab.settings": "Settings", "submission.sections.describe.relationship-lookup.selection-tab.settings": "Impostazioni", @@ -6894,8 +6545,7 @@ // "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": "Would you like to save \"{{ value }}\" as a name variant for this person so you and others can reuse it for future submissions? If you don\'t you can still use it for this submission.", "submission.sections.describe.relationship-lookup.name-variant.notification.content": "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", @@ -6920,8 +6570,7 @@ "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.link": "Hai selezionato la seguente licenza:", // "submission.sections.ccLicense.confirmation": "I grant the license above", "submission.sections.ccLicense.confirmation": "Concedo la licenza di cui sopra", @@ -6930,14 +6579,13 @@ "submission.sections.general.add-more": "Aggiungi altro", // "submission.sections.general.cannot_deposit": "Deposit cannot be completed due to errors in the form.<br>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.<br>Please fill out all required fields to complete the deposit.", + "submission.sections.general.cannot_deposit": "L'immissione non può essere competata a causa di errori nel modulo.<br> Si prega di compilare tutti i campi obbligatori.", // "submission.sections.general.collection": "Collection", - "submission.sections.general.collection": "collezione", + "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_error_notice": "Si è verificato un problema durante l'immissione dell'item, riprova più tardi.", // "submission.sections.general.deposit_success_notice": "Submission deposited successfully.", "submission.sections.general.deposit_success_notice": "Immissione depositata con successo.", @@ -6960,8 +6608,7 @@ // "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": "There was an unexpected error when saving the item. Refresh the page and try again. After refreshing unsaved modifications could be lost.", "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.", @@ -6974,28 +6621,22 @@ "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.info": "Per questo item saranno generati i seguenti identificativi:", // "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_handle": "Non sono stati generati handle per questo 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.no_doi": "Non sono stati generati DOI per questo 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.identifiers.otherIdentifiers_label": "Altri identificativi: ", // "submission.sections.submit.progressbar.accessCondition": "Item access conditions", "submission.sections.submit.progressbar.accessCondition": "Condizioni di accesso all'item", @@ -7019,27 +6660,23 @@ "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.identifiers": "Identificativi", // "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.sherpapolicy": "Policy di Sherpa", // "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.submit.progressbar.sherpaPolicies": "Informazioni sulla policy di open access dell'editore", // "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.sherpa-policy.title-empty": "Non sono disponibili informazioni sulle policy dell'editore. Se il lavoro ha un ISSN associato, si prega di inserirlo qui sopra per vedere le policy di open access dell'editore.", // "submission.sections.status.errors.title": "Errors", "submission.sections.status.errors.title": "Errori", @@ -7060,12 +6697,10 @@ "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.title": "Informazioni aggiuntive", // "submission.sections.status.info.aria": "Additional Information", - // TODO New key - Add a translation - "submission.sections.status.info.aria": "Additional Information", + "submission.sections.status.info.aria": "Informazioni aggiuntive", // "submission.sections.toggle.open": "Open section", "submission.sections.toggle.open": "Apri sezione", @@ -7143,16 +6778,13 @@ "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.nolist": "I file caricati nella collection {{collectionName}} saranno accessibili in base ai seguenti gruppi:", // "submission.sections.upload.header.policy.default.withlist": "Please note that uploaded files in the {{collectionName}} collection will be accessible, in addition to what is explicitly decided for the single file, with the following group(s):", - // TODO New key - Add a translation - "submission.sections.upload.header.policy.default.withlist": "Please note that uploaded files in the {{collectionName}} collection will be accessible, in addition to what is explicitly decided for the single file, with the following group(s):", + "submission.sections.upload.header.policy.default.withlist": "Si prega di notare che i file caricati nella collection {{collectionName}} saranno accessibili, in aggiunta a quanto esplicitamente deciso per il singolo file, con i seguenti gruppi:", // "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 <strong>upload additional files by dragging & dropping them anywhere on the page.</strong>", - // 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 <fortng>upload di file aggiuntivi semplicemente trascinandoli e rilasciandoli ovunque nella pagina</strong>", + "submission.sections.upload.info": "Qui troverai tutti i file attualmente presenti nell'item. È possibile aggiornare i metadati dei file e le condizioni di accesso o <strong>caricare file aggiuntivi semplicemente trascinandoli e rilasciandoli ovunque nella pagina</strong>", // "submission.sections.upload.no-entry": "No", "submission.sections.upload.no-entry": "No", @@ -7218,121 +6850,92 @@ "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.granted-label": "Confermo la licenza di cui sopra", // "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.required": "È necessario accettare la licenza", // "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.license.notgranted": "È necessario accettare la licenza", // "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": "Informazioni sulla pubblicazione", // "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.title": "Titolo", // "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.issns": "ISSN", // "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.publishers": "Editore", // "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": "Policy dell'editore", // "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.description": "Le informazioni riportate di seguito sono state reperite tramite Sherpa Romeo. In base alle policy del vostro editore, fornisce consigli sull'eventuale necessità di un embargo e/o su quali file è possibile caricare. In caso di domande, contattare l'amministratore del sito tramite il modulo di feedback nel piè di pagina.", // "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.openaccess": "I percorsi open access consentiti dalle policy di questa rivista sono elencati di seguito per versione dell'articolo. Clicca su un percorso per vederlo nel dettaglio", // "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.more.information": "Per maggiori informazioni si prega di consultare il seguente link:", // "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.version": "Versione", // "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.noembargo": "Nessun 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.nolocation": "Nessuno", // "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.license": "Licenza", // "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.prerequisites": "Prerequisiti", // "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.location": "Località ", // "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.conditions": "Condizioni", // "submission.sections.sherpa.publisher.policy.refresh": "Refresh", - // TODO New key - Add a translation - "submission.sections.sherpa.publisher.policy.refresh": "Refresh", + "submission.sections.sherpa.publisher.policy.refresh": "Ricarica", // "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": "Informazioni sulla registrazione", // "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.created": "Data di creazione", // "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.date.modified": "Ultima modifica", // "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.sections.sherpa.error.message": "Si è verificato un errore nel recuperare le informazioni da Sherpa", @@ -7347,8 +6950,7 @@ // "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": "If you would to discard this item, select \"Delete\". You will then be asked to confirm it.", "submission.workflow.generic.delete-help": "Se si desidera eliminare questo item, selezionare \"Elimina\". Ti verrà quindi chiesto di confermarlo.", // "submission.workflow.generic.edit": "Edit", @@ -7365,20 +6967,16 @@ // "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": "Seleziona revisore", // "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": "Valuta", // "submission.workflow.generic.submit_score-help": "", - // TODO New key - Add a translation "submission.workflow.generic.submit_score-help": "", @@ -7395,11 +6993,9 @@ "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": "Rifiuta", // "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.", @@ -7490,72 +7086,55 @@ "subscriptions.frequency.W": "Settimanale", // "subscriptions.tooltip": "Subscribe", - // TODO New key - Add a translation - "subscriptions.tooltip": "Subscribe", + "subscriptions.tooltip": "Sottoscrivi", // "subscriptions.modal.title": "Subscriptions", - // TODO New key - Add a translation - "subscriptions.modal.title": "Subscriptions", + "subscriptions.modal.title": "Sottoscrizioni", // "subscriptions.modal.type-frequency": "Type and frequency", - // TODO New key - Add a translation - "subscriptions.modal.type-frequency": "Type and frequency", + "subscriptions.modal.type-frequency": "Tipo e frequenza", // "subscriptions.modal.close": "Close", - // TODO New key - Add a translation - "subscriptions.modal.close": "Close", + "subscriptions.modal.close": "Chiudi", // "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.delete-info": "Per rimuovere questa sottoscrizione si prega di visitare la pagina \"Sottoscrizioni\" nel proprio profilo utente", // "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.type.content": "Contenuto", // "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.D": "Giornaliero", // "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.W": "Settimanale", // "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.frequency.M": "Mensile", // "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.submit": "Invia", // "subscriptions.modal.new-subscription-form.processing": "Processing...", - // TODO New key - Add a translation - "subscriptions.modal.new-subscription-form.processing": "Processing...", + "subscriptions.modal.new-subscription-form.processing": "Elaborazione...", // "subscriptions.modal.create.success": "Subscribed to {{ type }} successfully.", - // TODO New key - Add a translation - "subscriptions.modal.create.success": "Subscribed to {{ type }} successfully.", + "subscriptions.modal.create.success": "Sottoscrzione a {{ type }} avvenuta con successo.", // "subscriptions.modal.delete.success": "Subscription deleted successfully", - // TODO New key - Add a translation - "subscriptions.modal.delete.success": "Subscription deleted successfully", + "subscriptions.modal.delete.success": "Sottoscrizione eliminata con successo", // "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.update.success": "Sottoscrizione a {{ type }} aggiornata con successo", // "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.create.error": "Si è verificato un errore durante la creazione della sottoscrizione", // "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.delete.error": "Si è verificato un errore durante l'eliminazione della sottoscrizione", // "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.modal.update.error": "Si è verificato un errore durante l'aggiornamento della sottoscrizione", // "subscriptions.table.dso": "Subject", "subscriptions.table.dso": "Oggetto", @@ -7570,24 +7149,19 @@ "subscriptions.table.action": "Azione", // "subscriptions.table.edit": "Edit", - // TODO New key - Add a translation - "subscriptions.table.edit": "Edit", + "subscriptions.table.edit": "Modifica", // "subscriptions.table.delete": "Delete", - // TODO New key - Add a translation - "subscriptions.table.delete": "Delete", + "subscriptions.table.delete": "Elimina", // "subscriptions.table.not-available": "Not available", - // TODO New key - Add a translation - "subscriptions.table.not-available": "Not available", + "subscriptions.table.not-available": "Non disponibile", // "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.not-available-message": "L'elemento sottoscritto è stato cancellato o non si ha l'autorizzazione per visualizzarlo.", // "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", + "subscriptions.table.empty.message": "Al momento non ci sono sottoscrizioni. Per ricevere aggiornamenti via e-mail di una Community o di una Collection, utilizzare il pulsante di sottoscrizione sulla pagina dell'oggetto", // "thumbnail.default.alt": "Thumbnail Image", @@ -7643,8 +7217,7 @@ "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", + "vocabulary-treeview.info": "Seleziona un soggetto da aggiungere come filtro di ricerca", // "uploader.browse": "browse", "uploader.browse": "sfoglia", @@ -7659,8 +7232,7 @@ "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.processing": "Elaborazione dei file caricati... (è ora possibile chiudere questa pagina)", // "uploader.queue-length": "Queue length", "uploader.queue-length": "Lunghezza coda", @@ -7677,8 +7249,7 @@ // "supervisedWorkspace.search.results.head": "Supervised Items", - // TODO New key - Add a translation - "supervisedWorkspace.search.results.head": "Supervised Items", + "supervisedWorkspace.search.results.head": "Item supervisionati", // "workspace.search.results.head": "Your submissions", "workspace.search.results.head": "I tuoi invii", @@ -7690,8 +7261,7 @@ "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", + "supervision.search.results.head": "Task del workflow e del workspace", @@ -7761,74 +7331,57 @@ // "workflow-item.advanced.title": "Advanced workflow", - // TODO New key - Add a translation - "workflow-item.advanced.title": "Advanced workflow", + "workflow-item.advanced.title": "Workflow avanzato", // "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.title": "Revisore selezionato", // "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.success.content": "Il revisore per questo item nel workflow è stato selezionato con successo", // "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.title": "Qualcosa è andato storto", // "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.notification.error.content": "Non è stato possibile selezionare il revisore per questo item nel workflow", // "workflow-item.selectrevieweraction.title": "Select Reviewer", - // TODO New key - Add a translation - "workflow-item.selectrevieweraction.title": "Select Reviewer", + "workflow-item.selectrevieweraction.title": "Seleziona revisore", // "workflow-item.selectrevieweraction.header": "Select Reviewer", - // TODO New key - Add a translation - "workflow-item.selectrevieweraction.header": "Select Reviewer", + "workflow-item.selectrevieweraction.header": "Seleziona revisore", // "workflow-item.selectrevieweraction.button.cancel": "Cancel", - // TODO New key - Add a translation - "workflow-item.selectrevieweraction.button.cancel": "Cancel", + "workflow-item.selectrevieweraction.button.cancel": "Annulla", // "workflow-item.selectrevieweraction.button.confirm": "Confirm", - // TODO New key - Add a translation - "workflow-item.selectrevieweraction.button.confirm": "Confirm", + "workflow-item.selectrevieweraction.button.confirm": "Conferma", // "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.title": "Valuta revisione", // "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.success.content": "La valutazione per il workflow di questo item è stata inserita con successo", // "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.title": "Qualcosa è andato storto", // "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.notification.error.content": "Non è stato possibile valutare questo item", // "workflow-item.scorereviewaction.title": "Rate this item", - // TODO New key - Add a translation - "workflow-item.scorereviewaction.title": "Rate this item", + "workflow-item.scorereviewaction.title": "Valuta questo item", // "workflow-item.scorereviewaction.header": "Rate this item", - // TODO New key - Add a translation - "workflow-item.scorereviewaction.header": "Rate this item", + "workflow-item.scorereviewaction.header": "Valuta questo item", // "workflow-item.scorereviewaction.button.cancel": "Cancel", - // TODO New key - Add a translation - "workflow-item.scorereviewaction.button.cancel": "Cancel", + "workflow-item.scorereviewaction.button.cancel": "Annulla", // "workflow-item.scorereviewaction.button.confirm": "Confirm", - // TODO New key - Add a translation - "workflow-item.scorereviewaction.button.confirm": "Confirm", + "workflow-item.scorereviewaction.button.confirm": "Conferma", // "idle-modal.header": "Session will expire soon", "idle-modal.header": "La sessione scadrà presto", @@ -7843,7 +7396,6 @@ "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", @@ -7877,11 +7429,9 @@ "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:", @@ -7891,19 +7441,15 @@ "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", @@ -7913,7 +7459,6 @@ "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", @@ -7962,55 +7507,42 @@ "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", @@ -8023,15 +7555,12 @@ "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", @@ -8098,7 +7627,6 @@ "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.", @@ -8135,7 +7663,6 @@ "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", @@ -8154,7 +7681,6 @@ "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", @@ -8164,7 +7690,6 @@ "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", @@ -8189,8 +7714,7 @@ "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-message": "Selezionare la modalità di sincronizzazione con ORCID. Le opzioni includono 'Manuale' (sarà necessario inviare i dati a ORCID manualmente) o 'Batch' (il sistema invierà i dati a ORCID tramite uno script programmato).", // "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.", @@ -8237,107 +7761,80 @@ // "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", + "home.recent-submissions.head": "Immissioni recenti", // "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", + "listable-notification-object.default-message": "Questo oggetto non può essere recuperato", // "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.retrieval.error": "Qualcosa è andato storto nel recupero del banner di allarme di sistema", // "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.prefix": "Tra", // "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.days": "{{days}} giorni,", // "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.hours": "{{hours}} ore e", // "system-wide-alert-banner.countdown.minutes": "{{minutes}} minute(s):", - // TODO New key - Add a translation - "system-wide-alert-banner.countdown.minutes": "{{minutes}} minute(s):", - - + "system-wide-alert-banner.countdown.minutes": "{{minutes}} minuti:", // "menu.section.system-wide-alert": "System-wide Alert", - // TODO New key - Add a translation - "menu.section.system-wide-alert": "System-wide Alert", + "menu.section.system-wide-alert": "Allarme di sistema", // "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.header": "Allarme di sistema", // "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.retrieval.error": "Qualcosa è andato storto nel recupero dell'allarme di sistema", // "system-wide-alert.form.cancel": "Cancel", - // TODO New key - Add a translation - "system-wide-alert.form.cancel": "Cancel", + "system-wide-alert.form.cancel": "Annulla", // "system-wide-alert.form.save": "Save", - // TODO New key - Add a translation - "system-wide-alert.form.save": "Save", + "system-wide-alert.form.save": "Salva", // "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.active": "ATTIVO", // "system-wide-alert.form.label.inactive": "INACTIVE", - // TODO New key - Add a translation - "system-wide-alert.form.label.inactive": "INACTIVE", + "system-wide-alert.form.label.inactive": "DISATTIVO", // "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.error.message": "L'allarme di sistema deve avere un messaggio", // "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.message": "Messaggio di allarme", // "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.enable": "Attiva un conto alla rovescia", // "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.countdownTo.hint": "Suggerimento: Imposta un conto alla rovescia. Se abilitato, è possibile impostare una data futura e il banner di allarme di sistema eseguirà un conto alla rovescia fino alla data impostata. Quando il timer terminerà , l'avviso scomparirà . Il server NON verrà arrestato automaticamente.", // "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.label.preview": "Anteprima dell'allarme di sistema", // "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.success": "L'allarme di sistema è stato aggiornato con successo", // "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.update.error": "Qualcosa è andato storto durante l'aggiornamento dell'allarme di sistema", // "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.success": "L'allarme di sistema è stato creato con successo", // "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", + "system-wide-alert.form.create.error": "Qualcosa è andato storto nella creazione dell'allarme di sistema", // "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.breadcrumbs": "Allarmi di sistema", // "admin.system-wide-alert.title": "System-wide Alerts", - // TODO New key - Add a translation - "admin.system-wide-alert.title": "System-wide Alerts", + "admin.system-wide-alert.title": "Allarmi di sistema", } -- GitLab From 32fc28ec54af589b5813321490703896b1843fff Mon Sep 17 00:00:00 2001 From: Art Lowel <art.lowel@gmail.com> Date: Tue, 26 Sep 2023 14:44:13 +0200 Subject: [PATCH 096/183] fix dev mode issue where retrieving the login options fails --- .../core/server-check/server-check.guard.spec.ts | 14 ++++++++++---- src/app/core/server-check/server-check.guard.ts | 6 ++++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/app/core/server-check/server-check.guard.spec.ts b/src/app/core/server-check/server-check.guard.spec.ts index f18b386753..044609ef42 100644 --- a/src/app/core/server-check/server-check.guard.spec.ts +++ b/src/app/core/server-check/server-check.guard.spec.ts @@ -20,7 +20,8 @@ describe('ServerCheckGuard', () => { }); rootDataServiceStub = jasmine.createSpyObj('RootDataService', { checkServerAvailability: jasmine.createSpy('checkServerAvailability'), - invalidateRootCache: jasmine.createSpy('invalidateRootCache') + invalidateRootCache: jasmine.createSpy('invalidateRootCache'), + findRoot: jasmine.createSpy('findRoot') }); redirectUrlTree = new UrlTree(); router = { @@ -63,18 +64,23 @@ describe('ServerCheckGuard', () => { }); describe(`listenForRouteChanges`, () => { - it(`should invalidate the root cache when the method is first called, and then on every NavigationStart event`, () => { + it(`should retrieve the root endpoint, without using the cache, when the method is first called`, () => { testScheduler.run(() => { guard.listenForRouteChanges(); - expect(rootDataServiceStub.invalidateRootCache).toHaveBeenCalledTimes(1); + expect(rootDataServiceStub.findRoot).toHaveBeenCalledWith(false); + }); + }); + it(`should invalidate the root cache on every NavigationStart event`, () => { + testScheduler.run(() => { + guard.listenForRouteChanges(); eventSubject.next(new NavigationStart(1,'')); eventSubject.next(new NavigationEnd(1,'', '')); eventSubject.next(new NavigationStart(2,'')); eventSubject.next(new NavigationEnd(2,'', '')); eventSubject.next(new NavigationStart(3,'')); }); - expect(rootDataServiceStub.invalidateRootCache).toHaveBeenCalledTimes(4); + expect(rootDataServiceStub.invalidateRootCache).toHaveBeenCalledTimes(3); }); }); }); diff --git a/src/app/core/server-check/server-check.guard.ts b/src/app/core/server-check/server-check.guard.ts index 1cea5f36ba..65ca2b0c49 100644 --- a/src/app/core/server-check/server-check.guard.ts +++ b/src/app/core/server-check/server-check.guard.ts @@ -53,8 +53,10 @@ export class ServerCheckGuard implements CanActivateChild { */ listenForRouteChanges(): void { // we'll always be too late for the first NavigationStart event with the router subscribe below, - // so this statement is for the very first route operation - this.rootDataService.invalidateRootCache(); + // so this statement is for the very first route operation. A `find` without using the cache, + // rather than an invalidateRootCache, because invalidating as the app is bootstrapping can + // break other features + this.rootDataService.findRoot(false); this.router.events.pipe( filter(event => event instanceof NavigationStart), -- GitLab From 6a99185214f836271fe42d6ad73a14dbeb95a648 Mon Sep 17 00:00:00 2001 From: Art Lowel <art.lowel@gmail.com> Date: Tue, 26 Sep 2023 16:56:07 +0200 Subject: [PATCH 097/183] roll back unintended change to the responseMsToLive for RootDataservice --- src/app/core/data/root-data.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/core/data/root-data.service.ts b/src/app/core/data/root-data.service.ts index 88cffdf6cf..5431a2d1fb 100644 --- a/src/app/core/data/root-data.service.ts +++ b/src/app/core/data/root-data.service.ts @@ -25,7 +25,7 @@ export class RootDataService extends BaseDataService<Root> { protected objectCache: ObjectCacheService, protected halService: HALEndpointService, ) { - super('', requestService, rdbService, objectCache, halService, 60 * 1000); + super('', requestService, rdbService, objectCache, halService, 6 * 60 * 60 * 1000); } /** -- GitLab From 2aab4265a58c92c2b566287295ed2a32f4ae79e8 Mon Sep 17 00:00:00 2001 From: Davide Negretti <davide.negretti@4science.com> Date: Mon, 25 Sep 2023 23:51:48 +0200 Subject: [PATCH 098/183] [DURACOM-185] Fix pointer on language dropdown menu (cherry picked from commit 6b5708cffda28620460f33ddc4fbf58ad9c6cb1d) --- src/app/shared/lang-switch/lang-switch.component.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/app/shared/lang-switch/lang-switch.component.scss b/src/app/shared/lang-switch/lang-switch.component.scss index 7b593a9bb5..ea099435a8 100644 --- a/src/app/shared/lang-switch/lang-switch.component.scss +++ b/src/app/shared/lang-switch/lang-switch.component.scss @@ -9,3 +9,7 @@ color: var(--ds-header-icon-color-hover); } } + +.dropdown-item { + cursor: pointer; +} -- GitLab From 578a427f46ec35b63d741faa8820702764988d04 Mon Sep 17 00:00:00 2001 From: Yury Bondarenko <ybnd@tuta.io> Date: Thu, 20 Jul 2023 18:19:48 +0200 Subject: [PATCH 099/183] Move subscription button to DSO edit menu (cherry picked from commit c9558167b2dc2df22428b8d1fcfbd9b77e4b855e) --- .../collection-page.component.html | 3 - .../community-page.component.html | 3 - .../shared/dso-page/dso-edit-menu.resolver.ts | 37 +++++++++ ...so-page-subscription-button.component.html | 8 -- ...so-page-subscription-button.component.scss | 0 ...page-subscription-button.component.spec.ts | 83 ------------------- .../dso-page-subscription-button.component.ts | 57 ------------- src/app/shared/shared.module.ts | 4 - 8 files changed, 37 insertions(+), 158 deletions(-) delete mode 100644 src/app/shared/dso-page/dso-page-subscription-button/dso-page-subscription-button.component.html delete mode 100644 src/app/shared/dso-page/dso-page-subscription-button/dso-page-subscription-button.component.scss delete mode 100644 src/app/shared/dso-page/dso-page-subscription-button/dso-page-subscription-button.component.spec.ts delete mode 100644 src/app/shared/dso-page/dso-page-subscription-button/dso-page-subscription-button.component.ts diff --git a/src/app/collection-page/collection-page.component.html b/src/app/collection-page/collection-page.component.html index 02c63d316d..3cbd08f132 100644 --- a/src/app/collection-page/collection-page.component.html +++ b/src/app/collection-page/collection-page.component.html @@ -34,9 +34,6 @@ </ds-comcol-page-content> </header> <ds-dso-edit-menu></ds-dso-edit-menu> - <div class="pl-2 space-children-mr"> - <ds-dso-page-subscription-button [dso]="collection"></ds-dso-page-subscription-button> - </div> </div> <section class="comcol-page-browse-section"> <!-- Browse-By Links --> diff --git a/src/app/community-page/community-page.component.html b/src/app/community-page/community-page.component.html index 6d5262d933..671bf28fd1 100644 --- a/src/app/community-page/community-page.component.html +++ b/src/app/community-page/community-page.component.html @@ -21,9 +21,6 @@ </ds-comcol-page-content> </header> <ds-dso-edit-menu></ds-dso-edit-menu> - <div class="pl-2 space-children-mr"> - <ds-dso-page-subscription-button [dso]="communityPayload"></ds-dso-page-subscription-button> - </div> </div> <section class="comcol-page-browse-section"> diff --git a/src/app/shared/dso-page/dso-edit-menu.resolver.ts b/src/app/shared/dso-page/dso-edit-menu.resolver.ts index 80a69c2830..1ade457840 100644 --- a/src/app/shared/dso-page/dso-edit-menu.resolver.ts +++ b/src/app/shared/dso-page/dso-edit-menu.resolver.ts @@ -21,6 +21,9 @@ import { getDSORoute } from '../../app-routing-paths'; import { ResearcherProfileDataService } from '../../core/profile/researcher-profile-data.service'; import { NotificationsService } from '../notifications/notifications.service'; import { TranslateService } from '@ngx-translate/core'; +import { SubscriptionModalComponent } from '../subscriptions/subscription-modal/subscription-modal.component'; +import { Community } from '../../core/shared/community.model'; +import { Collection } from '../../core/shared/collection.model'; /** * Creates the menus for the dspace object pages @@ -84,6 +87,7 @@ export class DSOEditMenuResolver implements Resolve<{ [key: string]: MenuSection getDsoMenus(dso, route, state): Observable<MenuSection[]>[] { return [ this.getItemMenu(dso), + this.getComColMenu(dso), this.getCommonMenu(dso, state) ]; } @@ -178,6 +182,39 @@ export class DSOEditMenuResolver implements Resolve<{ [key: string]: MenuSection } } + /** + * Get Community/Collection-specific menus + */ + protected getComColMenu(dso): Observable<MenuSection[]> { + if (dso instanceof Community || dso instanceof Collection) { + return combineLatest([ + this.authorizationService.isAuthorized(FeatureID.CanSubscribe, dso.self), + ]).pipe( + map(([canSubscribe]) => { + return [ + { + id: 'subscribe', + active: false, + visible: canSubscribe, + model: { + type: MenuItemType.ONCLICK, + text: 'subscriptions.tooltip', + function: () => { + const modalRef = this.modalService.open(SubscriptionModalComponent); + modalRef.componentInstance.dso = dso; + } + } as OnClickMenuItemModel, + icon: 'bell', + index: 4 + }, + ]; + }) + ); + } else { + return observableOf([]); + } + } + /** * Claim a researcher by creating a profile * Shows notifications and/or hides the menu section on success/error diff --git a/src/app/shared/dso-page/dso-page-subscription-button/dso-page-subscription-button.component.html b/src/app/shared/dso-page/dso-page-subscription-button/dso-page-subscription-button.component.html deleted file mode 100644 index 15135009fc..0000000000 --- a/src/app/shared/dso-page/dso-page-subscription-button/dso-page-subscription-button.component.html +++ /dev/null @@ -1,8 +0,0 @@ -<button *ngIf="isAuthorized$ | async" data-test="subscription-button" - (click)="openSubscriptionModal()" - [ngbTooltip]="'subscriptions.tooltip' | translate" - [title]="'subscriptions.tooltip' | translate" - [attr.aria-label]="'subscriptions.tooltip' | translate" - class="subscription-button btn btn-dark btn-sm"> - <i class="fas fa-bell fa-fw"></i> -</button> diff --git a/src/app/shared/dso-page/dso-page-subscription-button/dso-page-subscription-button.component.scss b/src/app/shared/dso-page/dso-page-subscription-button/dso-page-subscription-button.component.scss deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/app/shared/dso-page/dso-page-subscription-button/dso-page-subscription-button.component.spec.ts b/src/app/shared/dso-page/dso-page-subscription-button/dso-page-subscription-button.component.spec.ts deleted file mode 100644 index 726854778d..0000000000 --- a/src/app/shared/dso-page/dso-page-subscription-button/dso-page-subscription-button.component.spec.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { DsoPageSubscriptionButtonComponent } from './dso-page-subscription-button.component'; -import { AuthorizationDataService } from '../../../core/data/feature-authorization/authorization-data.service'; -import { of as observableOf } from 'rxjs'; -import { NgbModalModule } from '@ng-bootstrap/ng-bootstrap'; -import { By } from '@angular/platform-browser'; -import { DebugElement } from '@angular/core'; -import { Item } from '../../../core/shared/item.model'; -import { ITEM } from '../../../core/shared/item.resource-type'; -import { TranslateLoader, TranslateModule } from '@ngx-translate/core'; -import { TranslateLoaderMock } from '../../mocks/translate-loader.mock'; - -describe('DsoPageSubscriptionButtonComponent', () => { - let component: DsoPageSubscriptionButtonComponent; - let fixture: ComponentFixture<DsoPageSubscriptionButtonComponent>; - let de: DebugElement; - - const authorizationService = jasmine.createSpyObj('authorizationService', { - isAuthorized: jasmine.createSpy('isAuthorized') // observableOf(true) - }); - - const mockItem = Object.assign(new Item(), { - id: 'fake-id', - uuid: 'fake-id', - handle: 'fake/handle', - lastModified: '2018', - type: ITEM, - _links: { - self: { - href: 'https://localhost:8000/items/fake-id' - } - } - }); - - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [ - NgbModalModule, - TranslateModule.forRoot({ - loader: { - provide: TranslateLoader, - useClass: TranslateLoaderMock - } - }) - ], - declarations: [ DsoPageSubscriptionButtonComponent ], - providers: [ - { provide: AuthorizationDataService, useValue: authorizationService }, - ] - }) - .compileComponents(); - }); - - beforeEach(() => { - fixture = TestBed.createComponent(DsoPageSubscriptionButtonComponent); - component = fixture.componentInstance; - de = fixture.debugElement; - component.dso = mockItem; - }); - - describe('when is authorized', () => { - beforeEach(() => { - authorizationService.isAuthorized.and.returnValue(observableOf(true)); - fixture.detectChanges(); - }); - - it('should display subscription button', () => { - expect(de.query(By.css(' [data-test="subscription-button"]'))).toBeTruthy(); - }); - }); - - describe('when is not authorized', () => { - beforeEach(() => { - authorizationService.isAuthorized.and.returnValue(observableOf(false)); - fixture.detectChanges(); - }); - - it('should not display subscription button', () => { - expect(de.query(By.css(' [data-test="subscription-button"]'))).toBeNull(); - }); - }); -}); diff --git a/src/app/shared/dso-page/dso-page-subscription-button/dso-page-subscription-button.component.ts b/src/app/shared/dso-page/dso-page-subscription-button/dso-page-subscription-button.component.ts deleted file mode 100644 index 54cd9e6bb0..0000000000 --- a/src/app/shared/dso-page/dso-page-subscription-button/dso-page-subscription-button.component.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { Component, Input, OnInit } from '@angular/core'; - -import { Observable, of } from 'rxjs'; -import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap'; - -import { DSpaceObject } from '../../../core/shared/dspace-object.model'; -import { AuthorizationDataService } from '../../../core/data/feature-authorization/authorization-data.service'; -import { SubscriptionModalComponent } from '../../subscriptions/subscription-modal/subscription-modal.component'; -import { FeatureID } from '../../../core/data/feature-authorization/feature-id'; - -@Component({ - selector: 'ds-dso-page-subscription-button', - templateUrl: './dso-page-subscription-button.component.html', - styleUrls: ['./dso-page-subscription-button.component.scss'] -}) -/** - * Display a button that opens the modal to manage subscriptions - */ -export class DsoPageSubscriptionButtonComponent implements OnInit { - - /** - * Whether the current user is authorized to edit the DSpaceObject - */ - isAuthorized$: Observable<boolean> = of(false); - - /** - * Reference to NgbModal - */ - public modalRef: NgbModalRef; - - /** - * DSpaceObject that is being viewed - */ - @Input() dso: DSpaceObject; - - constructor( - protected authorizationService: AuthorizationDataService, - private modalService: NgbModal, - ) { - } - - /** - * check if the current DSpaceObject can be subscribed by the user - */ - ngOnInit(): void { - this.isAuthorized$ = this.authorizationService.isAuthorized(FeatureID.CanSubscribe, this.dso.self); - } - - /** - * Open the modal to subscribe to the related DSpaceObject - */ - public openSubscriptionModal() { - this.modalRef = this.modalService.open(SubscriptionModalComponent); - this.modalRef.componentInstance.dso = this.dso; - } - -} diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index 0f7871f7f9..c6e2ddc3f3 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -273,9 +273,6 @@ import { AdvancedClaimedTaskActionRatingComponent } from './mydspace-actions/claimed-task/rating/advanced-claimed-task-action-rating.component'; import { ClaimedTaskActionsDeclineTaskComponent } from './mydspace-actions/claimed-task/decline-task/claimed-task-actions-decline-task.component'; -import { - DsoPageSubscriptionButtonComponent -} from './dso-page/dso-page-subscription-button/dso-page-subscription-button.component'; import { EpersonGroupListComponent } from './eperson-group-list/eperson-group-list.component'; import { EpersonSearchBoxComponent } from './eperson-group-list/eperson-search-box/eperson-search-box.component'; import { GroupSearchBoxComponent } from './eperson-group-list/group-search-box/group-search-box.component'; @@ -395,7 +392,6 @@ const COMPONENTS = [ ItemPageTitleFieldComponent, ThemedSearchNavbarComponent, ListableNotificationObjectComponent, - DsoPageSubscriptionButtonComponent, MetadataFieldWrapperComponent, ContextHelpWrapperComponent, EpersonGroupListComponent, -- GitLab From 6d195f5ffab678430f6379da7ee9b67b73b31870 Mon Sep 17 00:00:00 2001 From: Yury Bondarenko <ybnd@tuta.io> Date: Mon, 31 Jul 2023 15:41:25 +0200 Subject: [PATCH 100/183] Update DSO edit menu resolver tests - Abstract away the different "subsections" ~ DSO type (the tests should not care about this) Instead, retrieve sections of interest by ID & assert whether they're there & how they should look - Test separately for Communities, Collections & Items - Test newly added menu section (cherry picked from commit 18b7a9c7de6e399d5ed27ff22caa082ab7e8ef2a) --- .../dso-page/dso-edit-menu.resolver.spec.ts | 254 ++++++++++++++---- 1 file changed, 199 insertions(+), 55 deletions(-) diff --git a/src/app/shared/dso-page/dso-edit-menu.resolver.spec.ts b/src/app/shared/dso-page/dso-edit-menu.resolver.spec.ts index abfe618174..e28a416f23 100644 --- a/src/app/shared/dso-page/dso-edit-menu.resolver.spec.ts +++ b/src/app/shared/dso-page/dso-edit-menu.resolver.spec.ts @@ -1,6 +1,6 @@ import { TestBed, waitForAsync } from '@angular/core/testing'; import { MenuServiceStub } from '../testing/menu-service.stub'; -import { of as observableOf } from 'rxjs'; +import { combineLatest, map, of as observableOf } from 'rxjs'; import { TranslateModule, TranslateService } from '@ngx-translate/core'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { RouterTestingModule } from '@angular/router/testing'; @@ -16,10 +16,13 @@ import { Item } from '../../core/shared/item.model'; import { createFailedRemoteDataObject$, createSuccessfulRemoteDataObject$ } from '../remote-data.utils'; import { MenuID } from '../menu/menu-id.model'; import { MenuItemType } from '../menu/menu-item-type.model'; -import { TextMenuItemModel } from '../menu/menu-item/models/text.model'; import { LinkMenuItemModel } from '../menu/menu-item/models/link.model'; import { ResearcherProfileDataService } from '../../core/profile/researcher-profile-data.service'; import { NotificationsService } from '../notifications/notifications.service'; +import { DSpaceObject } from '../../core/shared/dspace-object.model'; +import { Community } from '../../core/shared/community.model'; +import { Collection } from '../../core/shared/collection.model'; +import flatten from 'lodash/flatten'; describe('DSOEditMenuResolver', () => { @@ -37,25 +40,44 @@ describe('DSOEditMenuResolver', () => { let notificationsService; let translate; - const route = { - data: { - menu: { - 'statistics': [{ - id: 'statistics-dummy-1', - active: false, - visible: true, - model: null - }] - } - }, - params: {id: 'test-uuid'}, + const dsoRoute = (dso: DSpaceObject) => { + return { + data: { + menu: { + 'statistics': [{ + id: 'statistics-dummy-1', + active: false, + visible: true, + model: null + }] + } + }, + params: {id: dso.uuid}, + }; }; const state = { url: 'test-url' }; - const testObject = Object.assign(new Item(), {uuid: 'test-uuid', type: 'item', _links: {self: {href: 'self-link'}}}); + const testCommunity: Community = Object.assign(new Community(), { + uuid: 'test-community-uuid', + type: 'community', + _links: {self: {href: 'self-link'}}, + }); + const testCollection: Collection = Object.assign(new Collection(), { + uuid: 'test-collection-uuid', + type: 'collection', + _links: {self: {href: 'self-link'}}, + }); + const testItem: Item = Object.assign(new Item(), { + uuid: 'test-item-uuid', + type: 'item', + _links: {self: {href: 'self-link'}}, + }); + + let testObject: DSpaceObject; + let route; const dummySections1 = [{ id: 'dummy-1', @@ -90,6 +112,10 @@ describe('DSOEditMenuResolver', () => { }]; beforeEach(waitForAsync(() => { + // test with Items unless specified otherwise + testObject = testItem; + route = dsoRoute(testItem); + menuService = new MenuServiceStub(); spyOn(menuService, 'getMenu').and.returnValue(observableOf(MENU_STATE)); @@ -154,16 +180,17 @@ describe('DSOEditMenuResolver', () => { { ...route.data.menu, [MenuID.DSO_EDIT]: [ - ...dummySections1.map((menu) => Object.assign(menu, {id: menu.id + '-test-uuid'})), - ...dummySections2.map((menu) => Object.assign(menu, {id: menu.id + '-test-uuid'})) + ...dummySections1.map((menu) => Object.assign(menu, {id: menu.id + '-test-item-uuid'})), + ...dummySections2.map((menu) => Object.assign(menu, {id: menu.id + '-test-item-uuid'})) ] } ); - expect(dSpaceObjectDataService.findById).toHaveBeenCalledWith('test-uuid', true, false); + expect(dSpaceObjectDataService.findById).toHaveBeenCalledWith('test-item-uuid', true, false); expect(resolver.getDsoMenus).toHaveBeenCalled(); done(); }); }); + it('should create all menus when a dso is found based on the route scope query param when no id param is present', (done) => { spyOn(resolver, 'getDsoMenus').and.returnValue( [observableOf(dummySections1), observableOf(dummySections2)] @@ -198,6 +225,7 @@ describe('DSOEditMenuResolver', () => { done(); }); }); + it('should return the statistics menu when no dso is found', (done) => { (dSpaceObjectDataService.findById as jasmine.Spy).and.returnValue(createFailedRemoteDataObject$()); @@ -211,49 +239,165 @@ describe('DSOEditMenuResolver', () => { }); }); }); + describe('getDsoMenus', () => { - it('should return as first part the item version, orcid and claim list ', (done) => { - const result = resolver.getDsoMenus(testObject, route, state); - result[0].subscribe((menuList) => { - expect(menuList.length).toEqual(3); - expect(menuList[0].id).toEqual('orcid-dso'); - expect(menuList[0].active).toEqual(false); - // Visible should be false due to the item not being of type person - expect(menuList[0].visible).toEqual(false); - expect(menuList[0].model.type).toEqual(MenuItemType.LINK); - - expect(menuList[1].id).toEqual('version-dso'); - expect(menuList[1].active).toEqual(false); - expect(menuList[1].visible).toEqual(true); - expect(menuList[1].model.type).toEqual(MenuItemType.ONCLICK); - expect((menuList[1].model as TextMenuItemModel).text).toEqual('message'); - expect(menuList[1].model.disabled).toEqual(false); - expect(menuList[1].icon).toEqual('code-branch'); - - expect(menuList[2].id).toEqual('claim-dso'); - expect(menuList[2].active).toEqual(false); - // Visible should be false due to the item not being of type person - expect(menuList[2].visible).toEqual(false); - expect(menuList[2].model.type).toEqual(MenuItemType.ONCLICK); - expect((menuList[2].model as TextMenuItemModel).text).toEqual('item.page.claim.button'); - done(); + describe('for Communities', () => { + beforeEach(() => { + testObject = testCommunity; + dSpaceObjectDataService.findById.and.returnValue(createSuccessfulRemoteDataObject$(testCommunity)); + route = dsoRoute(testCommunity); + }); + + it('should not return Item-specific entries', (done) => { + const result = resolver.getDsoMenus(testObject, route, state); + combineLatest(result).pipe(map(flatten)).subscribe((menu) => { + const orcidEntry = menu.find(entry => entry.id === 'orcid-dso'); + expect(orcidEntry).toBeFalsy(); + + const versionEntry = menu.find(entry => entry.id === 'version-dso'); + expect(versionEntry).toBeFalsy(); + + const claimEntry = menu.find(entry => entry.id === 'claim-dso'); + expect(claimEntry).toBeFalsy(); + + done(); + }); + }); + + it('should return Community/Collection-specific entries', (done) => { + const result = resolver.getDsoMenus(testObject, route, state); + combineLatest(result).pipe(map(flatten)).subscribe((menu) => { + const subscribeEntry = menu.find(entry => entry.id === 'subscribe'); + expect(subscribeEntry).toBeTruthy(); + expect(subscribeEntry.active).toBeFalse(); + expect(subscribeEntry.visible).toBeTrue(); + expect(subscribeEntry.model.type).toEqual(MenuItemType.ONCLICK); + done(); + }); }); + it('should return as third part the common list ', (done) => { + const result = resolver.getDsoMenus(testObject, route, state); + combineLatest(result).pipe(map(flatten)).subscribe((menu) => { + const editEntry = menu.find(entry => entry.id === 'edit-dso'); + expect(editEntry).toBeTruthy(); + expect(editEntry.active).toBeFalse(); + expect(editEntry.visible).toBeTrue(); + expect(editEntry.model.type).toEqual(MenuItemType.LINK); + expect((editEntry.model as LinkMenuItemModel).link).toEqual( + '/communities/test-community-uuid/edit/metadata' + ); + done(); + }); + }); }); - it('should return as second part the common list ', (done) => { - const result = resolver.getDsoMenus(testObject, route, state); - result[1].subscribe((menuList) => { - expect(menuList.length).toEqual(1); - expect(menuList[0].id).toEqual('edit-dso'); - expect(menuList[0].active).toEqual(false); - expect(menuList[0].visible).toEqual(true); - expect(menuList[0].model.type).toEqual(MenuItemType.LINK); - expect((menuList[0].model as LinkMenuItemModel).text).toEqual('item.page.edit'); - expect((menuList[0].model as LinkMenuItemModel).link).toEqual('/items/test-uuid/edit/metadata'); - expect(menuList[0].icon).toEqual('pencil-alt'); - done(); + + describe('for Collections', () => { + beforeEach(() => { + testObject = testCollection; + dSpaceObjectDataService.findById.and.returnValue(createSuccessfulRemoteDataObject$(testCollection)); + route = dsoRoute(testCollection); + }); + + it('should not return Item-specific entries', (done) => { + const result = resolver.getDsoMenus(testObject, route, state); + combineLatest(result).pipe(map(flatten)).subscribe((menu) => { + const orcidEntry = menu.find(entry => entry.id === 'orcid-dso'); + expect(orcidEntry).toBeFalsy(); + + const versionEntry = menu.find(entry => entry.id === 'version-dso'); + expect(versionEntry).toBeFalsy(); + + const claimEntry = menu.find(entry => entry.id === 'claim-dso'); + expect(claimEntry).toBeFalsy(); + + done(); + }); + }); + + it('should return Community/Collection-specific entries', (done) => { + const result = resolver.getDsoMenus(testObject, route, state); + combineLatest(result).pipe(map(flatten)).subscribe((menu) => { + const subscribeEntry = menu.find(entry => entry.id === 'subscribe'); + expect(subscribeEntry).toBeTruthy(); + expect(subscribeEntry.active).toBeFalse(); + expect(subscribeEntry.visible).toBeTrue(); + expect(subscribeEntry.model.type).toEqual(MenuItemType.ONCLICK); + done(); + }); + }); + + it('should return as third part the common list ', (done) => { + const result = resolver.getDsoMenus(testObject, route, state); + combineLatest(result).pipe(map(flatten)).subscribe((menu) => { + const editEntry = menu.find(entry => entry.id === 'edit-dso'); + expect(editEntry).toBeTruthy(); + expect(editEntry.active).toBeFalse(); + expect(editEntry.visible).toBeTrue(); + expect(editEntry.model.type).toEqual(MenuItemType.LINK); + expect((editEntry.model as LinkMenuItemModel).link).toEqual( + '/collections/test-collection-uuid/edit/metadata' + ); + done(); + }); }); + }); + + describe('for Items', () => { + beforeEach(() => { + testObject = testItem; + dSpaceObjectDataService.findById.and.returnValue(createSuccessfulRemoteDataObject$(testItem)); + route = dsoRoute(testItem); + }); + + it('should return Item-specific entries', (done) => { + const result = resolver.getDsoMenus(testObject, route, state); + combineLatest(result).pipe(map(flatten)).subscribe((menu) => { + const orcidEntry = menu.find(entry => entry.id === 'orcid-dso'); + expect(orcidEntry).toBeTruthy(); + expect(orcidEntry.active).toBeFalse(); + expect(orcidEntry.visible).toBeFalse(); + expect(orcidEntry.model.type).toEqual(MenuItemType.LINK); + + const versionEntry = menu.find(entry => entry.id === 'version-dso'); + expect(versionEntry).toBeTruthy(); + expect(versionEntry.active).toBeFalse(); + expect(versionEntry.visible).toBeTrue(); + expect(versionEntry.model.type).toEqual(MenuItemType.ONCLICK); + expect(versionEntry.model.disabled).toBeFalse(); + const claimEntry = menu.find(entry => entry.id === 'claim-dso'); + expect(claimEntry).toBeTruthy(); + expect(claimEntry.active).toBeFalse(); + expect(claimEntry.visible).toBeFalse(); + expect(claimEntry.model.type).toEqual(MenuItemType.ONCLICK); + done(); + }); + }); + + it('should not return Community/Collection-specific entries', (done) => { + const result = resolver.getDsoMenus(testObject, route, state); + combineLatest(result).pipe(map(flatten)).subscribe((menu) => { + const subscribeEntry = menu.find(entry => entry.id === 'subscribe'); + expect(subscribeEntry).toBeFalsy(); + done(); + }); + }); + + it('should return as third part the common list ', (done) => { + const result = resolver.getDsoMenus(testObject, route, state); + combineLatest(result).pipe(map(flatten)).subscribe((menu) => { + const editEntry = menu.find(entry => entry.id === 'edit-dso'); + expect(editEntry).toBeTruthy(); + expect(editEntry.active).toBeFalse(); + expect(editEntry.visible).toBeTrue(); + expect(editEntry.model.type).toEqual(MenuItemType.LINK); + expect((editEntry.model as LinkMenuItemModel).link).toEqual( + '/items/test-item-uuid/edit/metadata' + ); + done(); + }); + }); }); }); }); -- GitLab From 709848ee25bca09efbcf4dac8d427ffd42af8e78 Mon Sep 17 00:00:00 2001 From: Marie Verdonck <maria.verdonck@atmire.com> Date: Wed, 4 Oct 2023 17:27:04 +0200 Subject: [PATCH 101/183] Issue#2535: Hide add more button in submission if no disabled sections --- .../section-add/submission-form-section-add.component.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/app/submission/form/section-add/submission-form-section-add.component.html b/src/app/submission/form/section-add/submission-form-section-add.component.html index 939f23209a..3740de6345 100644 --- a/src/app/submission/form/section-add/submission-form-section-add.component.html +++ b/src/app/submission/form/section-add/submission-form-section-add.component.html @@ -3,13 +3,14 @@ placement="bottom-right" class="d-inline-block" [ngClass]="{'w-100': windowService.isXs()}"> + <ng-container *ngIf="hasSections$ | async"> <button class="btn btn-outline-primary dropdown-toggle" id="sectionControls" - [disabled]="!(hasSections$ | async)" [ngClass]="{'w-100': (windowService.isXs() | async)}" ngbDropdownToggle> {{ 'submission.sections.general.add-more' | translate }} <i class="fa fa-plus" aria-hidden="true"></i> </button> + </ng-container> <div ngbDropdownMenu class="sections-dropdown-menu" aria-labelledby="sectionControls" -- GitLab From ec86bc12bdb8d88dee7a2d1eafceeb7e13e001a1 Mon Sep 17 00:00:00 2001 From: Janne Jensen <micrograph@posteo.de> Date: Sat, 7 Oct 2023 10:43:09 +0200 Subject: [PATCH 102/183] translate community as 'Bereich' in de.json5 (cherry picked from commit 0139670371ffd7d8530f3d93ce9f120bc687433c) --- src/assets/i18n/de.json5 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/i18n/de.json5 b/src/assets/i18n/de.json5 index 5ab57cf3e6..c185a13432 100644 --- a/src/assets/i18n/de.json5 +++ b/src/assets/i18n/de.json5 @@ -1382,7 +1382,7 @@ // "community.create.head": "Create a Community", - "community.create.head": "Sammlung anlegen", + "community.create.head": "Bereich anlegen", // "community.create.notifications.success": "Successfully created the Community", "community.create.notifications.success": "Bereich erfolgreich angelegt", -- GitLab From 15d2880ca43c84c071d2b3bfbbdd4e1d1aadcc71 Mon Sep 17 00:00:00 2001 From: Jens Vannerum <jens.vannerum@atmire.com> Date: Fri, 29 Sep 2023 15:54:34 +0200 Subject: [PATCH 103/183] Fix browse by visual bug (cherry picked from commit d0b4e15db42298aec6803d640916c951b97eab55) --- .../browse-by-metadata-page.component.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/app/browse-by/browse-by-metadata-page/browse-by-metadata-page.component.ts b/src/app/browse-by/browse-by-metadata-page/browse-by-metadata-page.component.ts index 113bc67c92..75dbfcfc82 100644 --- a/src/app/browse-by/browse-by-metadata-page/browse-by-metadata-page.component.ts +++ b/src/app/browse-by/browse-by-metadata-page/browse-by-metadata-page.component.ts @@ -161,7 +161,11 @@ export class BrowseByMetadataPageComponent implements OnInit, OnDestroy { this.value = ''; } - if (typeof params.startsWith === 'string'){ + if (params.startsWith === undefined || params.startsWith === '') { + this.startsWith = undefined; + } + + if (typeof params.startsWith === 'string'){ this.startsWith = params.startsWith.trim(); } -- GitLab From 8f881dbb52dcedf9721c95df64c8d9d7131845d3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Oct 2023 00:34:17 +0000 Subject: [PATCH 104/183] Bump postcss from 8.4.23 to 8.4.31 Bumps [postcss](https://github.com/postcss/postcss) from 8.4.23 to 8.4.31. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.4.23...8.4.31) --- updated-dependencies: - dependency-name: postcss dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com> (cherry picked from commit 3c5079e9ce9dcadcc1fc99bfd872b65ffbe336f0) --- yarn.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/yarn.lock b/yarn.lock index c5a82d9e75..37ba5b8472 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9283,7 +9283,7 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0, postcss-value-parser@^ resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@8.4.21, postcss@^8.2.14, postcss@^8.3.11, postcss@^8.3.7, postcss@^8.4.19: +postcss@8.4.21: version "8.4.21" resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz" integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== @@ -9309,10 +9309,10 @@ postcss@^7.0.14: picocolors "^0.2.1" source-map "^0.6.1" -postcss@^8.4: - version "8.4.23" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.23.tgz#df0aee9ac7c5e53e1075c24a3613496f9e6552ab" - integrity sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA== +postcss@^8.2.14, postcss@^8.3.11, postcss@^8.3.7, postcss@^8.4, postcss@^8.4.19: + version "8.4.31" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" + integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== dependencies: nanoid "^3.3.6" picocolors "^1.0.0" -- GitLab From c4a60abd650b7c0bb9c1ba3bf3ed6f6e6ed2d2ff Mon Sep 17 00:00:00 2001 From: "Gantner, Florian Klaus" <florian.gantner@uni-bamberg.de> Date: Wed, 23 Aug 2023 18:35:34 +0200 Subject: [PATCH 105/183] check cssRules existence before css variables are get from stylesheet (cherry picked from commit 367cda2de02f7524465dccc112438c57dce5cafe) --- src/app/shared/sass-helper/css-variable.service.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/app/shared/sass-helper/css-variable.service.ts b/src/app/shared/sass-helper/css-variable.service.ts index 0190a05036..f5911737a0 100644 --- a/src/app/shared/sass-helper/css-variable.service.ts +++ b/src/app/shared/sass-helper/css-variable.service.ts @@ -26,6 +26,17 @@ export class CSSVariableService { return styleSheet.href.indexOf(window.location.origin) === 0; }; + /** + * Checks whether the specific stylesheet object has the property cssRules + * @param styleSheet The stylesheet + */ + hasCssRules = (styleSheet) => { + // Injected styles might have no css rules value + return styleSheet.hasOwnProperty('cssRules') && styleSheet.cssRules; + }; + + + /* Determine if the given rule is a CSSStyleRule See: https://developer.mozilla.org/en-US/docs/Web/API/CSSRule#Type_constants @@ -93,8 +104,10 @@ export class CSSVariableService { if (isNotEmpty(document.styleSheets)) { // styleSheets is array-like, so we convert it to an array. // Filter out any stylesheets not on this domain + // Filter out any stylesheets that have no cssRules property return [...document.styleSheets] .filter(this.isSameDomain) + .filter(this.hasCssRules) .reduce( (finalArr, sheet) => finalArr.concat( -- GitLab From 21dcef0a42ebbc486f5d0afc8d72db312099a2d2 Mon Sep 17 00:00:00 2001 From: "Gantner, Florian Klaus" <florian.gantner@uni-bamberg.de> Date: Tue, 17 Oct 2023 14:32:22 +0200 Subject: [PATCH 106/183] checkstyle remove unused extra lines (cherry picked from commit 5f8a9dea34159fc1e7f067b1bbcb5dabc6bf4145) --- src/app/shared/sass-helper/css-variable.service.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/app/shared/sass-helper/css-variable.service.ts b/src/app/shared/sass-helper/css-variable.service.ts index f5911737a0..ca6384e0ee 100644 --- a/src/app/shared/sass-helper/css-variable.service.ts +++ b/src/app/shared/sass-helper/css-variable.service.ts @@ -35,8 +35,6 @@ export class CSSVariableService { return styleSheet.hasOwnProperty('cssRules') && styleSheet.cssRules; }; - - /* Determine if the given rule is a CSSStyleRule See: https://developer.mozilla.org/en-US/docs/Web/API/CSSRule#Type_constants -- GitLab From 2e571767ea2d2e7eff1ed2b928480ddc1806dd6f Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Thu, 19 Oct 2023 23:01:24 +0200 Subject: [PATCH 107/183] 107664: Normalized ePerson & group edit url and moved error message to translation file --- src/app/access-control/access-control-routing-paths.ts | 4 ++-- src/app/access-control/access-control-routing.module.ts | 4 ++-- .../epeople-registry/epeople-registry.component.ts | 2 +- src/assets/i18n/en.json5 | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/app/access-control/access-control-routing-paths.ts b/src/app/access-control/access-control-routing-paths.ts index c8b9e01793..31f39f1c47 100644 --- a/src/app/access-control/access-control-routing-paths.ts +++ b/src/app/access-control/access-control-routing-paths.ts @@ -8,7 +8,7 @@ export function getEPersonsRoute(): string { } export function getEPersonEditRoute(id: string): string { - return new URLCombiner(getEPersonsRoute(), id).toString(); + return new URLCombiner(getEPersonsRoute(), id, 'edit').toString(); } export const GROUP_PATH = 'groups'; @@ -18,5 +18,5 @@ export function getGroupsRoute() { } export function getGroupEditRoute(id: string) { - return new URLCombiner(getGroupsRoute(), id).toString(); + return new URLCombiner(getGroupsRoute(), id, 'edit').toString(); } diff --git a/src/app/access-control/access-control-routing.module.ts b/src/app/access-control/access-control-routing.module.ts index 4ef97cb5ea..97d049ad83 100644 --- a/src/app/access-control/access-control-routing.module.ts +++ b/src/app/access-control/access-control-routing.module.ts @@ -38,7 +38,7 @@ import { EPersonResolver } from './epeople-registry/eperson-resolver.service'; canActivate: [SiteAdministratorGuard], }, { - path: `${EPERSON_PATH}/:id`, + path: `${EPERSON_PATH}/:id/edit`, component: EPersonFormComponent, resolve: { breadcrumb: I18nBreadcrumbResolver, @@ -66,7 +66,7 @@ import { EPersonResolver } from './epeople-registry/eperson-resolver.service'; canActivate: [GroupAdministratorGuard] }, { - path: `${GROUP_PATH}/:groupId`, + path: `${GROUP_PATH}/:groupId/edit`, component: GroupFormComponent, resolve: { breadcrumb: I18nBreadcrumbResolver diff --git a/src/app/access-control/epeople-registry/epeople-registry.component.ts b/src/app/access-control/epeople-registry/epeople-registry.component.ts index d2837a5317..4596eec98e 100644 --- a/src/app/access-control/epeople-registry/epeople-registry.component.ts +++ b/src/app/access-control/epeople-registry/epeople-registry.component.ts @@ -215,7 +215,7 @@ export class EPeopleRegistryComponent implements OnInit, OnDestroy { if (restResponse.hasSucceeded) { this.notificationsService.success(this.translateService.get(this.labelPrefix + 'notification.deleted.success', {name: this.dsoNameService.getName(ePerson)})); } else { - this.notificationsService.error(`Error occurred when trying to delete EPerson with id: ${ePerson.id} with code: ${restResponse.statusCode} and message: ${restResponse.errorMessage}`); + this.notificationsService.error(this.translateService.get(this.labelPrefix + 'notification.deleted.success', { id: ePerson.id, statusCode: restResponse.statusCode, errorMessage: restResponse.errorMessage })); } }); } diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 2a55229616..94780b9768 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -334,7 +334,7 @@ "admin.access-control.epeople.form.goToGroups": "Add to groups", - "admin.access-control.epeople.notification.deleted.failure": "Failed to delete EPerson: \"{{name}}\"", + "admin.access-control.epeople.notification.deleted.failure": "Error occurred when trying to delete EPerson with id \"{{id}}\" with code: \"{{statusCode}}\" and message: \"{{restResponse.errorMessage}}\"", "admin.access-control.epeople.notification.deleted.success": "Successfully deleted EPerson: \"{{name}}\"", -- GitLab From bc0629e004645f596fdebd6dc09b1865ee9c1ced Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Oct 2023 01:56:32 +0000 Subject: [PATCH 108/183] Bump @babel/traverse from 7.21.4 to 7.23.2 Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.21.4 to 7.23.2. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse) --- updated-dependencies: - dependency-name: "@babel/traverse" dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> (cherry picked from commit 97f7a5e82aa30a41d64974fe4c553bd3358dc6b1) --- yarn.lock | 119 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 103 insertions(+), 16 deletions(-) diff --git a/yarn.lock b/yarn.lock index 37ba5b8472..dff9302cc7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -451,13 +451,21 @@ resolved "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz" integrity sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg== -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.21.4": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.18.6": version "7.21.4" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz" integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== dependencies: "@babel/highlight" "^7.18.6" +"@babel/code-frame@^7.22.13": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" + integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== + dependencies: + "@babel/highlight" "^7.22.13" + chalk "^2.4.2" + "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.21.4": version "7.21.4" resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz" @@ -535,7 +543,7 @@ "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" -"@babel/generator@^7.18.9", "@babel/generator@^7.19.3", "@babel/generator@^7.21.4": +"@babel/generator@^7.18.9", "@babel/generator@^7.19.3": version "7.21.4" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz" integrity sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA== @@ -545,6 +553,16 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" +"@babel/generator@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" + integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== + dependencies: + "@babel/types" "^7.23.0" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@7.18.6", "@babel/helper-annotate-as-pure@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz" @@ -610,6 +628,11 @@ resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz" integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + "@babel/helper-explode-assignable-expression@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz" @@ -625,6 +648,14 @@ "@babel/template" "^7.20.7" "@babel/types" "^7.21.0" +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz" @@ -632,6 +663,13 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0": version "7.21.0" resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz" @@ -715,16 +753,33 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-string-parser@^7.19.4": version "7.19.4" resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz" integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": version "7.19.1" resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz" integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + "@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.21.0": version "7.21.0" resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz" @@ -758,11 +813,25 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.10.3", "@babel/parser@^7.14.7", "@babel/parser@^7.18.9", "@babel/parser@^7.19.3", "@babel/parser@^7.20.7", "@babel/parser@^7.21.4": +"@babel/highlight@^7.22.13": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" + integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.10.3", "@babel/parser@^7.14.7", "@babel/parser@^7.18.9", "@babel/parser@^7.19.3", "@babel/parser@^7.20.7": version "7.21.4" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz" integrity sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw== +"@babel/parser@^7.22.15", "@babel/parser@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" + integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz" @@ -1403,19 +1472,28 @@ "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" -"@babel/traverse@^7.10.3", "@babel/traverse@^7.18.9", "@babel/traverse@^7.19.3", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2": - version "7.21.4" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz" - integrity sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q== +"@babel/template@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== dependencies: - "@babel/code-frame" "^7.21.4" - "@babel/generator" "^7.21.4" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.21.4" - "@babel/types" "^7.21.4" + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" + +"@babel/traverse@^7.10.3", "@babel/traverse@^7.18.9", "@babel/traverse@^7.19.3", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8" + integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.0" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.0" + "@babel/types" "^7.23.0" debug "^4.1.0" globals "^11.1.0" @@ -1428,6 +1506,15 @@ "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" +"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" + integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + "@colors/colors@1.5.0": version "1.5.0" resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz" @@ -3849,7 +3936,7 @@ chalk@^1.1.1: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1: +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== -- GitLab From 2834ac33a446dc92d7cc671c77dfdec821c46f4b Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Fri, 20 Oct 2023 10:34:29 -0500 Subject: [PATCH 109/183] Revert "Check cssRules before css variables are read from stylesheet (#2454)" This reverts commit fa79c358c09cb52ed142ef122e08b77de880685d. (cherry picked from commit 6f73b65d530ad8d2e8297af179e111f401823bce) --- src/app/shared/sass-helper/css-variable.service.ts | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/app/shared/sass-helper/css-variable.service.ts b/src/app/shared/sass-helper/css-variable.service.ts index ca6384e0ee..0190a05036 100644 --- a/src/app/shared/sass-helper/css-variable.service.ts +++ b/src/app/shared/sass-helper/css-variable.service.ts @@ -26,15 +26,6 @@ export class CSSVariableService { return styleSheet.href.indexOf(window.location.origin) === 0; }; - /** - * Checks whether the specific stylesheet object has the property cssRules - * @param styleSheet The stylesheet - */ - hasCssRules = (styleSheet) => { - // Injected styles might have no css rules value - return styleSheet.hasOwnProperty('cssRules') && styleSheet.cssRules; - }; - /* Determine if the given rule is a CSSStyleRule See: https://developer.mozilla.org/en-US/docs/Web/API/CSSRule#Type_constants @@ -102,10 +93,8 @@ export class CSSVariableService { if (isNotEmpty(document.styleSheets)) { // styleSheets is array-like, so we convert it to an array. // Filter out any stylesheets not on this domain - // Filter out any stylesheets that have no cssRules property return [...document.styleSheets] .filter(this.isSameDomain) - .filter(this.hasCssRules) .reduce( (finalArr, sheet) => finalArr.concat( -- GitLab From e9b70e34d5a1ae6eb1c9df8866c1f118c8286ad5 Mon Sep 17 00:00:00 2001 From: Agustina Martinez <am857@cam.ac.uk> Date: Tue, 15 Aug 2023 16:53:30 +0200 Subject: [PATCH 110/183] Update email-request-copy.component.html Message is optional: remove req in [disabled] (cherry picked from commit 94c756d52dfedbae470cbb5febab84c69da743cd) --- .../email-request-copy/email-request-copy.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/request-copy/email-request-copy/email-request-copy.component.html b/src/app/request-copy/email-request-copy/email-request-copy.component.html index 70146ab52c..286e87554b 100644 --- a/src/app/request-copy/email-request-copy/email-request-copy.component.html +++ b/src/app/request-copy/email-request-copy/email-request-copy.component.html @@ -13,7 +13,7 @@ <ng-content></ng-content> <div class="d-flex flex-row-reverse"> <button (click)="submit()" - [disabled]="!message || message.length === 0 || !subject || subject.length === 0" + [disabled]="!subject || subject.length === 0" class="btn btn-primary" title="{{'grant-deny-request-copy.email.send' | translate }}"> <i class="fas fa-envelope"></i> {{'grant-deny-request-copy.email.send' | translate }} -- GitLab From 8428b0549badaf689fdb6721ae83e7c10cf74626 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Sat, 21 Oct 2023 14:45:37 +0200 Subject: [PATCH 111/183] Fix RequestService test failing because of different lastUpdated time (cherry picked from commit fb315335c90a0e2dde367e473a2e73729fedc429) --- src/app/core/data/request.service.spec.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/app/core/data/request.service.spec.ts b/src/app/core/data/request.service.spec.ts index d1a1f66e41..61091c7940 100644 --- a/src/app/core/data/request.service.spec.ts +++ b/src/app/core/data/request.service.spec.ts @@ -661,7 +661,9 @@ describe('RequestService', () => { spyOn(service, 'getByHref').and.returnValue(observableOf(staleRE)); spyOn(store, 'dispatch'); service.setStaleByHref(href).subscribe(() => { - expect(store.dispatch).toHaveBeenCalledWith(new RequestStaleAction(uuid)); + const requestStaleAction = new RequestStaleAction(uuid); + requestStaleAction.lastUpdated = jasmine.any(Number) as any; + expect(store.dispatch).toHaveBeenCalledWith(requestStaleAction); done(); }); }); -- GitLab From d6de6fee6c1bbbed7a750c6bf0cd8efd0e793f1a Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Tue, 26 Sep 2023 11:50:29 +0200 Subject: [PATCH 112/183] Use gap instead of individual paddings for header icons (cherry picked from commit 9f2a1d048bd3a9a413cc15492ce6bbf6c4dd65b2) --- .../context-help-toggle.component.ts | 19 ++++++++--- src/app/header/header.component.html | 4 +-- src/app/header/header.component.scss | 4 +++ src/app/header/header.component.spec.ts | 5 ++- src/app/header/header.component.ts | 14 +++++--- .../search-navbar.component.html | 4 +-- .../search-navbar.component.scss | 1 + src/app/shared/animations/slide.ts | 2 +- .../auth-nav-menu.component.html | 4 +-- .../impersonate-navbar.component.html | 2 +- .../impersonate-navbar.component.spec.ts | 3 +- .../impersonate-navbar.component.ts | 33 ++++++++++++------- .../lang-switch/lang-switch.component.html | 2 +- .../lang-switch/lang-switch.component.ts | 8 +++-- src/styles/_global-styles.scss | 26 +++++++++++++++ 15 files changed, 97 insertions(+), 34 deletions(-) diff --git a/src/app/header/context-help-toggle/context-help-toggle.component.ts b/src/app/header/context-help-toggle/context-help-toggle.component.ts index 6685df7106..de7c994faa 100644 --- a/src/app/header/context-help-toggle/context-help-toggle.component.ts +++ b/src/app/header/context-help-toggle/context-help-toggle.component.ts @@ -1,6 +1,6 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, OnInit, ElementRef } from '@angular/core'; import { ContextHelpService } from '../../shared/context-help.service'; -import { Observable } from 'rxjs'; +import { Observable, Subscription } from 'rxjs'; import { map } from 'rxjs/operators'; /** @@ -15,12 +15,23 @@ import { map } from 'rxjs/operators'; export class ContextHelpToggleComponent implements OnInit { buttonVisible$: Observable<boolean>; + subscriptions: Subscription[] = []; + constructor( - private contextHelpService: ContextHelpService, - ) { } + protected elRef: ElementRef, + protected contextHelpService: ContextHelpService, + ) { + } ngOnInit(): void { this.buttonVisible$ = this.contextHelpService.tooltipCount$().pipe(map(x => x > 0)); + this.subscriptions.push(this.buttonVisible$.subscribe((showContextHelpToggle: boolean) => { + if (showContextHelpToggle) { + this.elRef.nativeElement.classList.remove('d-none'); + } else { + this.elRef.nativeElement.classList.add('d-none'); + } + })); } onClick() { diff --git a/src/app/header/header.component.html b/src/app/header/header.component.html index 4d87983523..425f52c601 100644 --- a/src/app/header/header.component.html +++ b/src/app/header/header.component.html @@ -11,8 +11,8 @@ <ds-context-help-toggle></ds-context-help-toggle> <ds-themed-auth-nav-menu></ds-themed-auth-nav-menu> <ds-impersonate-navbar></ds-impersonate-navbar> - <div class="pl-2"> - <button class="navbar-toggler" type="button" (click)="toggleNavbar()" + <div *ngIf="isXsOrSm$ | async" class="pl-2"> + <button class="navbar-toggler px-0" type="button" (click)="toggleNavbar()" aria-controls="collapsingNav" aria-expanded="false" [attr.aria-label]="'nav.toggle' | translate"> <span class="navbar-toggler-icon fas fa-bars fa-fw" aria-hidden="true"></span> diff --git a/src/app/header/header.component.scss b/src/app/header/header.component.scss index cca3ed2abb..8a11a65195 100644 --- a/src/app/header/header.component.scss +++ b/src/app/header/header.component.scss @@ -20,3 +20,7 @@ } } +.navbar { + display: flex; + gap: 0.25rem; +} diff --git a/src/app/header/header.component.spec.ts b/src/app/header/header.component.spec.ts index 9bc952cee3..ccf8b19621 100644 --- a/src/app/header/header.component.spec.ts +++ b/src/app/header/header.component.spec.ts @@ -10,6 +10,8 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { NO_ERRORS_SCHEMA } from '@angular/core'; import { MenuService } from '../shared/menu/menu.service'; import { MenuServiceStub } from '../shared/testing/menu-service.stub'; +import { HostWindowService } from '../shared/host-window.service'; +import { HostWindowServiceStub } from '../shared/testing/host-window-service.stub'; let comp: HeaderComponent; let fixture: ComponentFixture<HeaderComponent>; @@ -26,6 +28,7 @@ describe('HeaderComponent', () => { ReactiveFormsModule], declarations: [HeaderComponent], providers: [ + { provide: HostWindowService, useValue: new HostWindowServiceStub(0) }, { provide: MenuService, useValue: menuService } ], schemas: [NO_ERRORS_SCHEMA] @@ -40,7 +43,7 @@ describe('HeaderComponent', () => { fixture = TestBed.createComponent(HeaderComponent); comp = fixture.componentInstance; - + fixture.detectChanges(); }); describe('when the toggle button is clicked', () => { diff --git a/src/app/header/header.component.ts b/src/app/header/header.component.ts index 366b4f5e7a..5153a19be4 100644 --- a/src/app/header/header.component.ts +++ b/src/app/header/header.component.ts @@ -1,7 +1,8 @@ -import { Component } from '@angular/core'; +import { Component, OnInit } from '@angular/core'; import { Observable } from 'rxjs'; import { MenuService } from '../shared/menu/menu.service'; import { MenuID } from '../shared/menu/menu-id.model'; +import { HostWindowService } from '../shared/host-window.service'; /** * Represents the header with the logo and simple navigation @@ -11,20 +12,25 @@ import { MenuID } from '../shared/menu/menu-id.model'; styleUrls: ['header.component.scss'], templateUrl: 'header.component.html', }) -export class HeaderComponent { +export class HeaderComponent implements OnInit { /** * Whether user is authenticated. * @type {Observable<string>} */ public isAuthenticated: Observable<boolean>; - public showAuth = false; + public isXsOrSm$: Observable<boolean>; menuID = MenuID.PUBLIC; constructor( - private menuService: MenuService + protected menuService: MenuService, + protected windowService: HostWindowService, ) { } + ngOnInit(): void { + this.isXsOrSm$ = this.windowService.isXsOrSm(); + } + public toggleNavbar(): void { this.menuService.toggleMenu(this.menuID); } diff --git a/src/app/search-navbar/search-navbar.component.html b/src/app/search-navbar/search-navbar.component.html index 2b30507f3e..8a98d4c44c 100644 --- a/src/app/search-navbar/search-navbar.component.html +++ b/src/app/search-navbar/search-navbar.component.html @@ -1,9 +1,9 @@ <div id="search-navbar-container" [title]="'nav.search' | translate" (dsClickOutside)="collapse()"> <div class="d-inline-block position-relative"> - <form [formGroup]="searchForm" (ngSubmit)="onSubmit(searchForm.value)" autocomplete="on"> + <form [formGroup]="searchForm" (ngSubmit)="onSubmit(searchForm.value)" autocomplete="on" class="d-flex"> <input #searchInput [@toggleAnimation]="isExpanded" [attr.aria-label]="('nav.search' | translate)" name="query" formControlName="query" type="text" placeholder="{{searchExpanded ? ('nav.search' | translate) : ''}}" - class="d-inline-block bg-transparent position-absolute form-control dropdown-menu-right p-1" [attr.data-test]="'header-search-box' | dsBrowserOnly"> + class="d-inline-block bg-transparent position-absolute form-control dropdown-menu-right pl-1" [attr.data-test]="'header-search-box' | dsBrowserOnly"> <button class="submit-icon btn btn-link btn-link-inline" [attr.aria-label]="'nav.search.button' | translate" type="button" (click)="searchExpanded ? onSubmit(searchForm.value) : expand()" [attr.data-test]="'header-search-icon' | dsBrowserOnly"> <em class="fas fa-search fa-lg fa-fw"></em> </button> diff --git a/src/app/search-navbar/search-navbar.component.scss b/src/app/search-navbar/search-navbar.component.scss index cf46c25d91..a276482b53 100644 --- a/src/app/search-navbar/search-navbar.component.scss +++ b/src/app/search-navbar/search-navbar.component.scss @@ -12,6 +12,7 @@ input[type="text"] { cursor: pointer; position: sticky; top: 0; + border: 0 !important; color: var(--ds-header-icon-color); &:hover, &:focus { diff --git a/src/app/shared/animations/slide.ts b/src/app/shared/animations/slide.ts index 310ddbbfde..9d18817ee3 100644 --- a/src/app/shared/animations/slide.ts +++ b/src/app/shared/animations/slide.ts @@ -55,7 +55,7 @@ export const slideSidebarPadding = trigger('slideSidebarPadding', [ export const expandSearchInput = trigger('toggleAnimation', [ state('collapsed', style({ - width: '30px', + width: '0', opacity: '0' })), state('expanded', style({ diff --git a/src/app/shared/auth-nav-menu/auth-nav-menu.component.html b/src/app/shared/auth-nav-menu/auth-nav-menu.component.html index 05f502afa1..bbc4fa3ca7 100644 --- a/src/app/shared/auth-nav-menu/auth-nav-menu.component.html +++ b/src/app/shared/auth-nav-menu/auth-nav-menu.component.html @@ -2,7 +2,7 @@ <li *ngIf="!(isAuthenticated | async) && !(isXsOrSm$ | async) && (showAuth | async)" class="nav-item" (click)="$event.stopPropagation();"> <div ngbDropdown #loginDrop display="dynamic" placement="bottom-right" class="d-inline-block" @fadeInOut> - <a href="javascript:void(0);" class="dropdownLogin px-1" [attr.aria-label]="'nav.login' |translate" + <a href="javascript:void(0);" class="dropdownLogin px-0.5" [attr.aria-label]="'nav.login' |translate" (click)="$event.preventDefault()" [attr.data-test]="'login-menu' | dsBrowserOnly" ngbDropdownToggle>{{ 'nav.login' | translate }}</a> <div class="loginDropdownMenu" [ngClass]="{'pl-3 pr-3': (loading | async)}" ngbDropdownMenu @@ -13,7 +13,7 @@ </div> </li> <li *ngIf="!(isAuthenticated | async) && (isXsOrSm$ | async)" class="nav-item"> - <a routerLink="/login" routerLinkActive="active" class="loginLink px-1"> + <a routerLink="/login" routerLinkActive="active" class="loginLink px-0.5"> {{ 'nav.login' | translate }}<span class="sr-only">(current)</span> </a> </li> diff --git a/src/app/shared/impersonate-navbar/impersonate-navbar.component.html b/src/app/shared/impersonate-navbar/impersonate-navbar.component.html index 9f2b66694b..9581ba8ea8 100644 --- a/src/app/shared/impersonate-navbar/impersonate-navbar.component.html +++ b/src/app/shared/impersonate-navbar/impersonate-navbar.component.html @@ -1,4 +1,4 @@ -<ul class="navbar-nav" *ngIf="(isAuthenticated$ | async) && isImpersonating"> +<ul class="navbar-nav" *ngIf="isImpersonating$ | async"> <li class="nav-item"> <button class="btn btn-sm btn-dark" ngbTooltip="{{'nav.stop-impersonating' | translate}}" (click)="stopImpersonating()"> <i class="fa fa-user-secret"></i> diff --git a/src/app/shared/impersonate-navbar/impersonate-navbar.component.spec.ts b/src/app/shared/impersonate-navbar/impersonate-navbar.component.spec.ts index af03afc05f..0e78a5d68a 100644 --- a/src/app/shared/impersonate-navbar/impersonate-navbar.component.spec.ts +++ b/src/app/shared/impersonate-navbar/impersonate-navbar.component.spec.ts @@ -14,6 +14,7 @@ import { authReducer } from '../../core/auth/auth.reducer'; import { AuthTokenInfo } from '../../core/auth/models/auth-token-info.model'; import { EPersonMock } from '../testing/eperson.mock'; import { AppState, storeModuleConfig } from '../../app.reducer'; +import { of as observableOf } from 'rxjs'; describe('ImpersonateNavbarComponent', () => { let component: ImpersonateNavbarComponent; @@ -65,7 +66,7 @@ describe('ImpersonateNavbarComponent', () => { describe('when the user is impersonating another user', () => { beforeEach(() => { - component.isImpersonating = true; + component.isImpersonating$ = observableOf(true); fixture.detectChanges(); }); diff --git a/src/app/shared/impersonate-navbar/impersonate-navbar.component.ts b/src/app/shared/impersonate-navbar/impersonate-navbar.component.ts index 6166ee950d..485492b1a7 100644 --- a/src/app/shared/impersonate-navbar/impersonate-navbar.component.ts +++ b/src/app/shared/impersonate-navbar/impersonate-navbar.component.ts @@ -1,8 +1,9 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, OnInit, ElementRef } from '@angular/core'; import { select, Store } from '@ngrx/store'; import { AppState } from '../../app.reducer'; import { AuthService } from '../../core/auth/auth.service'; -import { Observable } from 'rxjs'; +import { Observable, Subscription } from 'rxjs'; +import { map } from 'rxjs/operators'; import { isAuthenticated } from '../../core/auth/selectors'; @Component({ @@ -13,24 +14,32 @@ import { isAuthenticated } from '../../core/auth/selectors'; * Navbar component for actions to take concerning impersonating users */ export class ImpersonateNavbarComponent implements OnInit { - /** - * Whether or not the user is authenticated. - * @type {Observable<string>} - */ - isAuthenticated$: Observable<boolean>; /** * Is the user currently impersonating another user? */ - isImpersonating: boolean; + isImpersonating$: Observable<boolean>; + + subscriptions: Subscription[] = []; - constructor(private store: Store<AppState>, - private authService: AuthService) { + constructor( + protected elRef: ElementRef, + protected store: Store<AppState>, + protected authService: AuthService, + ) { } ngOnInit(): void { - this.isAuthenticated$ = this.store.pipe(select(isAuthenticated)); - this.isImpersonating = this.authService.isImpersonating(); + this.isImpersonating$ = this.store.pipe(select(isAuthenticated)).pipe( + map((isUserAuthenticated: boolean) => isUserAuthenticated && this.authService.isImpersonating()), + ); + this.subscriptions.push(this.isImpersonating$.subscribe((isImpersonating: boolean) => { + if (isImpersonating) { + this.elRef.nativeElement.classList.remove('d-none'); + } else { + this.elRef.nativeElement.classList.add('d-none'); + } + })); } /** diff --git a/src/app/shared/lang-switch/lang-switch.component.html b/src/app/shared/lang-switch/lang-switch.component.html index d9a5efaa81..73a5041f7b 100644 --- a/src/app/shared/lang-switch/lang-switch.component.html +++ b/src/app/shared/lang-switch/lang-switch.component.html @@ -1,7 +1,7 @@ <div ngbDropdown class="navbar-nav" *ngIf="moreThanOneLanguage" display="dynamic" placement="bottom-right"> <a href="javascript:void(0);" role="button" [attr.aria-label]="'nav.language' |translate" - [title]="'nav.language' | translate" class="px-1" + [title]="'nav.language' | translate" (click)="$event.preventDefault()" data-toggle="dropdown" ngbDropdownToggle tabindex="0"> <i class="fas fa-globe-asia fa-lg fa-fw"></i> diff --git a/src/app/shared/lang-switch/lang-switch.component.ts b/src/app/shared/lang-switch/lang-switch.component.ts index 41d707a056..d2c70839c0 100644 --- a/src/app/shared/lang-switch/lang-switch.component.ts +++ b/src/app/shared/lang-switch/lang-switch.component.ts @@ -1,7 +1,5 @@ -import { Component, OnInit } from '@angular/core'; - +import { Component, OnInit, ElementRef } from '@angular/core'; import { TranslateService } from '@ngx-translate/core'; - import { LangConfig } from '../../../config/lang-config.interface'; import { environment } from '../../../environments/environment'; import { LocaleService } from '../../core/locale/locale.service'; @@ -25,6 +23,7 @@ export class LangSwitchComponent implements OnInit { moreThanOneLanguage: boolean; constructor( + public el: ElementRef, public translate: TranslateService, private localeService: LocaleService ) { @@ -33,6 +32,9 @@ export class LangSwitchComponent implements OnInit { ngOnInit(): void { this.activeLangs = environment.languages.filter((MyLangConfig) => MyLangConfig.active === true); this.moreThanOneLanguage = (this.activeLangs.length > 1); + if (!this.moreThanOneLanguage) { + this.el.nativeElement.style.display = 'none'; + } } /** diff --git a/src/styles/_global-styles.scss b/src/styles/_global-styles.scss index b714d399a0..00fcb0f86f 100644 --- a/src/styles/_global-styles.scss +++ b/src/styles/_global-styles.scss @@ -267,3 +267,29 @@ ul.dso-edit-menu-dropdown > li .nav-item.nav-link { .table td { vertical-align: middle; } + +.pt-0\.5 { + padding-top: 0.125rem !important; +} + +.pr-0\.5 { + padding-right: 0.125rem !important; +} + +.pb-0\.5 { + padding-bottom: 0.125rem !important; +} + +.pl-0\.5 { + padding-left: 0.125rem !important; +} + +.px-0\.5 { + padding-left: 0.125rem !important; + padding-right: 0.125rem !important; +} + +.py-0\.5 { + padding-top: 0.125rem !important; + padding-bottom: 0.125rem !important; +} -- GitLab From d7f1d37e41fd1f56973481ca593bf3681f1f1740 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Tue, 26 Sep 2023 12:02:55 +0200 Subject: [PATCH 113/183] Themed LangSwitchComponent (cherry picked from commit f9b4460e70d21de0e82ee272492d0bd5c1d653a3) --- src/app/header/header.component.html | 2 +- .../lang-switch/lang-switch.component.ts | 2 +- .../themed-lang-switch.component.ts | 27 +++++++++++++++++++ src/app/shared/shared.module.ts | 2 ++ .../lang-switch/lang-switch.component.html | 0 .../lang-switch/lang-switch.component.scss | 0 .../lang-switch/lang-switch.component.ts | 12 +++++++++ src/themes/custom/eager-theme.module.ts | 2 ++ .../dspace/app/header/header.component.html | 2 +- .../dspace/app/navbar/navbar.component.html | 2 +- 10 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 src/app/shared/lang-switch/themed-lang-switch.component.ts create mode 100644 src/themes/custom/app/shared/lang-switch/lang-switch.component.html create mode 100644 src/themes/custom/app/shared/lang-switch/lang-switch.component.scss create mode 100644 src/themes/custom/app/shared/lang-switch/lang-switch.component.ts diff --git a/src/app/header/header.component.html b/src/app/header/header.component.html index 425f52c601..32b42dc8a7 100644 --- a/src/app/header/header.component.html +++ b/src/app/header/header.component.html @@ -7,7 +7,7 @@ <nav role="navigation" [attr.aria-label]="'nav.user.description' | translate" class="navbar navbar-light navbar-expand-md flex-shrink-0 px-0"> <ds-themed-search-navbar></ds-themed-search-navbar> - <ds-lang-switch></ds-lang-switch> + <ds-themed-lang-switch></ds-themed-lang-switch> <ds-context-help-toggle></ds-context-help-toggle> <ds-themed-auth-nav-menu></ds-themed-auth-nav-menu> <ds-impersonate-navbar></ds-impersonate-navbar> diff --git a/src/app/shared/lang-switch/lang-switch.component.ts b/src/app/shared/lang-switch/lang-switch.component.ts index d2c70839c0..e3c5e919ca 100644 --- a/src/app/shared/lang-switch/lang-switch.component.ts +++ b/src/app/shared/lang-switch/lang-switch.component.ts @@ -33,7 +33,7 @@ export class LangSwitchComponent implements OnInit { this.activeLangs = environment.languages.filter((MyLangConfig) => MyLangConfig.active === true); this.moreThanOneLanguage = (this.activeLangs.length > 1); if (!this.moreThanOneLanguage) { - this.el.nativeElement.style.display = 'none'; + this.el.nativeElement.parentElement.classList.add('d-none'); } } diff --git a/src/app/shared/lang-switch/themed-lang-switch.component.ts b/src/app/shared/lang-switch/themed-lang-switch.component.ts new file mode 100644 index 0000000000..8be3447426 --- /dev/null +++ b/src/app/shared/lang-switch/themed-lang-switch.component.ts @@ -0,0 +1,27 @@ +import { Component } from '@angular/core'; +import { ThemedComponent } from '../theme-support/themed.component'; +import { LangSwitchComponent } from './lang-switch.component'; + +/** + * Themed wrapper for {@link LangSwitchComponent} + */ +@Component({ + selector: 'ds-themed-lang-switch', + styleUrls: [], + templateUrl: '../theme-support/themed.component.html', +}) +export class ThemedLangSwitchComponent extends ThemedComponent<LangSwitchComponent> { + + protected getComponentName(): string { + return 'LangSwitchComponent'; + } + + protected importThemedComponent(themeName: string): Promise<any> { + return import(`../../../themes/${themeName}/app/shared/lang-switch/lang-switch.component`); + } + + protected importUnthemedComponent(): Promise<any> { + return import(`./lang-switch.component`); + } + +} diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index c6e2ddc3f3..e3a238670d 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -281,6 +281,7 @@ import { } from '../item-page/simple/field-components/specific-field/title/themed-item-page-field.component'; import { BitstreamListItemComponent } from './object-list/bitstream-list-item/bitstream-list-item.component'; import { NgxPaginationModule } from 'ngx-pagination'; +import { ThemedLangSwitchComponent } from './lang-switch/themed-lang-switch.component'; const MODULES = [ CommonModule, @@ -332,6 +333,7 @@ const COMPONENTS = [ DsSelectComponent, ErrorComponent, LangSwitchComponent, + ThemedLangSwitchComponent, LoadingComponent, ThemedLoadingComponent, LogInComponent, diff --git a/src/themes/custom/app/shared/lang-switch/lang-switch.component.html b/src/themes/custom/app/shared/lang-switch/lang-switch.component.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/lang-switch/lang-switch.component.scss b/src/themes/custom/app/shared/lang-switch/lang-switch.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/lang-switch/lang-switch.component.ts b/src/themes/custom/app/shared/lang-switch/lang-switch.component.ts new file mode 100644 index 0000000000..fe803949db --- /dev/null +++ b/src/themes/custom/app/shared/lang-switch/lang-switch.component.ts @@ -0,0 +1,12 @@ +import { Component } from '@angular/core'; +import { LangSwitchComponent as BaseComponent } from '../../../../../app/shared/lang-switch/lang-switch.component'; + +@Component({ + selector: 'ds-lang-switch', + // styleUrls: ['./lang-switch.component.scss'], + styleUrls: ['../../../../../app/shared/lang-switch/lang-switch.component.scss'], + // templateUrl: './lang-switch.component.html', + templateUrl: '../../../../../app/shared/lang-switch/lang-switch.component.html', +}) +export class LangSwitchComponent extends BaseComponent { +} diff --git a/src/themes/custom/eager-theme.module.ts b/src/themes/custom/eager-theme.module.ts index 7d7f5b3d8b..a181487ea7 100644 --- a/src/themes/custom/eager-theme.module.ts +++ b/src/themes/custom/eager-theme.module.ts @@ -54,6 +54,7 @@ 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'; +import { LangSwitchComponent } from './app/shared/lang-switch/lang-switch.component'; /** @@ -91,6 +92,7 @@ const DECLARATIONS = [ EditCollectionSelectorComponent, EditCommunitySelectorComponent, EditItemSelectorComponent, + LangSwitchComponent, ]; @NgModule({ diff --git a/src/themes/dspace/app/header/header.component.html b/src/themes/dspace/app/header/header.component.html index dbc98098ae..87a26ca326 100644 --- a/src/themes/dspace/app/header/header.component.html +++ b/src/themes/dspace/app/header/header.component.html @@ -7,7 +7,7 @@ </div> <div class="d-flex flex-grow-1 ml-auto justify-content-end align-items-center"> <ds-themed-search-navbar></ds-themed-search-navbar> - <ds-lang-switch></ds-lang-switch> + <ds-themed-lang-switch></ds-themed-lang-switch> <ds-context-help-toggle></ds-context-help-toggle> <ds-themed-auth-nav-menu></ds-themed-auth-nav-menu> <ds-impersonate-navbar></ds-impersonate-navbar> diff --git a/src/themes/dspace/app/navbar/navbar.component.html b/src/themes/dspace/app/navbar/navbar.component.html index 05afac7d7e..c2e3286ed0 100644 --- a/src/themes/dspace/app/navbar/navbar.component.html +++ b/src/themes/dspace/app/navbar/navbar.component.html @@ -16,7 +16,7 @@ </ul> </div> <ds-search-navbar class="navbar-collapsed"></ds-search-navbar> - <ds-lang-switch class="navbar-collapsed"></ds-lang-switch> + <ds-themed-lang-switch class="navbar-collapsed"></ds-themed-lang-switch> <ds-context-help-toggle class="navbar-collapsed"></ds-context-help-toggle> <ds-themed-auth-nav-menu class="navbar-collapsed"></ds-themed-auth-nav-menu> <ds-impersonate-navbar class="navbar-collapsed"></ds-impersonate-navbar> -- GitLab From e82a1ebedbf41073bc306ce382233e3cf731cc1d Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Tue, 26 Sep 2023 22:16:25 +0200 Subject: [PATCH 114/183] Applied same gap between header icons in the dspace theme and made the search field non-focusable when collapsed (cherry picked from commit 58d31dd73f9762a341e774df261d909d97c4b3e2) --- src/app/header/header.component.scss | 3 ++- src/app/search-navbar/search-navbar.component.html | 5 ++++- src/themes/dspace/app/header/header.component.html | 2 +- src/themes/dspace/app/header/header.component.scss | 6 ++++++ src/themes/dspace/app/navbar/navbar.component.html | 12 +++++++----- src/themes/dspace/app/navbar/navbar.component.scss | 6 ++++++ 6 files changed, 26 insertions(+), 8 deletions(-) diff --git a/src/app/header/header.component.scss b/src/app/header/header.component.scss index 8a11a65195..871adf289c 100644 --- a/src/app/header/header.component.scss +++ b/src/app/header/header.component.scss @@ -22,5 +22,6 @@ .navbar { display: flex; - gap: 0.25rem; + gap: calc(var(--bs-spacer) / 3); + align-items: center; } diff --git a/src/app/search-navbar/search-navbar.component.html b/src/app/search-navbar/search-navbar.component.html index 8a98d4c44c..02a9890502 100644 --- a/src/app/search-navbar/search-navbar.component.html +++ b/src/app/search-navbar/search-navbar.component.html @@ -3,7 +3,10 @@ <form [formGroup]="searchForm" (ngSubmit)="onSubmit(searchForm.value)" autocomplete="on" class="d-flex"> <input #searchInput [@toggleAnimation]="isExpanded" [attr.aria-label]="('nav.search' | translate)" name="query" formControlName="query" type="text" placeholder="{{searchExpanded ? ('nav.search' | translate) : ''}}" - class="d-inline-block bg-transparent position-absolute form-control dropdown-menu-right pl-1" [attr.data-test]="'header-search-box' | dsBrowserOnly"> + class="bg-transparent position-absolute form-control dropdown-menu-right pl-1 pr-4" + [class.display]="searchExpanded ? 'inline-block' : 'none'" + [tabIndex]="searchExpanded ? 0 : -1" + [attr.data-test]="'header-search-box' | dsBrowserOnly"> <button class="submit-icon btn btn-link btn-link-inline" [attr.aria-label]="'nav.search.button' | translate" type="button" (click)="searchExpanded ? onSubmit(searchForm.value) : expand()" [attr.data-test]="'header-search-icon' | dsBrowserOnly"> <em class="fas fa-search fa-lg fa-fw"></em> </button> diff --git a/src/themes/dspace/app/header/header.component.html b/src/themes/dspace/app/header/header.component.html index 87a26ca326..4b0046bc83 100644 --- a/src/themes/dspace/app/header/header.component.html +++ b/src/themes/dspace/app/header/header.component.html @@ -5,7 +5,7 @@ <img src="assets/images/dspace-logo.svg" [attr.alt]="'menu.header.image.logo' | translate"/> </a> </div> - <div class="d-flex flex-grow-1 ml-auto justify-content-end align-items-center"> + <div class="navbar-buttons d-flex flex-grow-1 ml-auto justify-content-end align-items-center"> <ds-themed-search-navbar></ds-themed-search-navbar> <ds-themed-lang-switch></ds-themed-lang-switch> <ds-context-help-toggle></ds-context-help-toggle> diff --git a/src/themes/dspace/app/header/header.component.scss b/src/themes/dspace/app/header/header.component.scss index 2fc857826f..14c46a2316 100644 --- a/src/themes/dspace/app/header/header.component.scss +++ b/src/themes/dspace/app/header/header.component.scss @@ -24,3 +24,9 @@ color: var(--ds-header-icon-color-hover); } } + +.navbar-buttons { + display: flex; + gap: calc(var(--bs-spacer) / 3); + align-items: center; +} diff --git a/src/themes/dspace/app/navbar/navbar.component.html b/src/themes/dspace/app/navbar/navbar.component.html index c2e3286ed0..d9631aad18 100644 --- a/src/themes/dspace/app/navbar/navbar.component.html +++ b/src/themes/dspace/app/navbar/navbar.component.html @@ -15,10 +15,12 @@ </ng-container> </ul> </div> - <ds-search-navbar class="navbar-collapsed"></ds-search-navbar> - <ds-themed-lang-switch class="navbar-collapsed"></ds-themed-lang-switch> - <ds-context-help-toggle class="navbar-collapsed"></ds-context-help-toggle> - <ds-themed-auth-nav-menu class="navbar-collapsed"></ds-themed-auth-nav-menu> - <ds-impersonate-navbar class="navbar-collapsed"></ds-impersonate-navbar> + <div class="navbar-buttons"> + <ds-themed-search-navbar class="navbar-collapsed"></ds-themed-search-navbar> + <ds-themed-lang-switch class="navbar-collapsed"></ds-themed-lang-switch> + <ds-context-help-toggle class="navbar-collapsed"></ds-context-help-toggle> + <ds-themed-auth-nav-menu class="navbar-collapsed"></ds-themed-auth-nav-menu> + <ds-impersonate-navbar class="navbar-collapsed"></ds-impersonate-navbar> + </div> </div> </nav> diff --git a/src/themes/dspace/app/navbar/navbar.component.scss b/src/themes/dspace/app/navbar/navbar.component.scss index 2bcd38d5f4..7c2a643687 100644 --- a/src/themes/dspace/app/navbar/navbar.component.scss +++ b/src/themes/dspace/app/navbar/navbar.component.scss @@ -54,3 +54,9 @@ a.navbar-brand img { color: var(--ds-navbar-link-color-hover); } } + +.navbar-buttons { + display: flex; + gap: calc(var(--bs-spacer) / 3); + align-items: center; +} -- GitLab From d7dba4bfcf31c1117923ece460db53d3f08b81dd Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Thu, 28 Sep 2023 11:50:24 +0200 Subject: [PATCH 115/183] Fixed invalid html structure the ExpandableNavbarSectionComponent had an ul tag containing non-li tags (cherry picked from commit fa56d5dfb719c14d99080ef8fe208b5ee129c72f) --- .../admin-sidebar-section/admin-sidebar-section.component.ts | 3 +-- src/app/admin/admin-sidebar/admin-sidebar.component.html | 4 ++-- .../expandable-admin-sidebar-section.component.ts | 3 +-- .../expandable-navbar-section.component.html | 4 ++-- .../expandable-navbar-section.component.ts | 2 -- .../themed-expandable-navbar-section.component.ts | 3 +-- src/app/navbar/navbar-section/navbar-section.component.ts | 3 +-- src/app/navbar/navbar.component.html | 4 ++-- .../dso-edit-menu-expandable-section.component.ts | 1 - .../dso-edit-menu-section/dso-edit-menu-section.component.ts | 1 - src/themes/dspace/app/navbar/navbar.component.html | 4 ++-- 11 files changed, 12 insertions(+), 20 deletions(-) diff --git a/src/app/admin/admin-sidebar/admin-sidebar-section/admin-sidebar-section.component.ts b/src/app/admin/admin-sidebar/admin-sidebar-section/admin-sidebar-section.component.ts index d6cd803622..b195526d1c 100644 --- a/src/app/admin/admin-sidebar/admin-sidebar-section/admin-sidebar-section.component.ts +++ b/src/app/admin/admin-sidebar/admin-sidebar-section/admin-sidebar-section.component.ts @@ -12,8 +12,7 @@ import { Router } from '@angular/router'; * Represents a non-expandable section in the admin sidebar */ @Component({ - /* eslint-disable @angular-eslint/component-selector */ - selector: 'li[ds-admin-sidebar-section]', + selector: 'ds-admin-sidebar-section', templateUrl: './admin-sidebar-section.component.html', styleUrls: ['./admin-sidebar-section.component.scss'], diff --git a/src/app/admin/admin-sidebar/admin-sidebar.component.html b/src/app/admin/admin-sidebar/admin-sidebar.component.html index ef220b834b..fe7e5595ab 100644 --- a/src/app/admin/admin-sidebar/admin-sidebar.component.html +++ b/src/app/admin/admin-sidebar/admin-sidebar.component.html @@ -26,10 +26,10 @@ </div> </li> - <ng-container *ngFor="let section of (sections | async)"> + <li *ngFor="let section of (sections | async)"> <ng-container *ngComponentOutlet="(sectionMap$ | async).get(section.id).component; injector: (sectionMap$ | async).get(section.id).injector;"></ng-container> - </ng-container> + </li> </ul> </div> <div class="navbar-nav"> diff --git a/src/app/admin/admin-sidebar/expandable-admin-sidebar-section/expandable-admin-sidebar-section.component.ts b/src/app/admin/admin-sidebar/expandable-admin-sidebar-section/expandable-admin-sidebar-section.component.ts index 4555c0fa93..8591fef97e 100644 --- a/src/app/admin/admin-sidebar/expandable-admin-sidebar-section/expandable-admin-sidebar-section.component.ts +++ b/src/app/admin/admin-sidebar/expandable-admin-sidebar-section/expandable-admin-sidebar-section.component.ts @@ -15,8 +15,7 @@ import { Router } from '@angular/router'; * Represents a expandable section in the sidebar */ @Component({ - /* eslint-disable @angular-eslint/component-selector */ - selector: 'li[ds-expandable-admin-sidebar-section]', + selector: 'ds-expandable-admin-sidebar-section', templateUrl: './expandable-admin-sidebar-section.component.html', styleUrls: ['./expandable-admin-sidebar-section.component.scss'], animations: [rotate, slide, bgColor] diff --git a/src/app/navbar/expandable-navbar-section/expandable-navbar-section.component.html b/src/app/navbar/expandable-navbar-section/expandable-navbar-section.component.html index b502326164..053968834e 100644 --- a/src/app/navbar/expandable-navbar-section/expandable-navbar-section.component.html +++ b/src/app/navbar/expandable-navbar-section/expandable-navbar-section.component.html @@ -14,9 +14,9 @@ </a> <ul @slide *ngIf="(active | async)" (click)="deactivateSection($event)" class="m-0 shadow-none border-top-0 dropdown-menu show"> - <ng-container *ngFor="let subSection of (subSections$ | async)"> + <li *ngFor="let subSection of (subSections$ | async)"> <ng-container *ngComponentOutlet="(sectionMap$ | async).get(subSection.id).component; injector: (sectionMap$ | async).get(subSection.id).injector;"></ng-container> - </ng-container> + </li> </ul> </div> diff --git a/src/app/navbar/expandable-navbar-section/expandable-navbar-section.component.ts b/src/app/navbar/expandable-navbar-section/expandable-navbar-section.component.ts index 5bc69bcbb4..d32fa46a32 100644 --- a/src/app/navbar/expandable-navbar-section/expandable-navbar-section.component.ts +++ b/src/app/navbar/expandable-navbar-section/expandable-navbar-section.component.ts @@ -4,7 +4,6 @@ import { MenuService } from '../../shared/menu/menu.service'; import { slide } from '../../shared/animations/slide'; import { first } from 'rxjs/operators'; import { HostWindowService } from '../../shared/host-window.service'; -import { rendersSectionForMenu } from '../../shared/menu/menu-section.decorator'; import { MenuID } from '../../shared/menu/menu-id.model'; /** @@ -16,7 +15,6 @@ import { MenuID } from '../../shared/menu/menu-id.model'; styleUrls: ['./expandable-navbar-section.component.scss'], animations: [slide] }) -@rendersSectionForMenu(MenuID.PUBLIC, true) export class ExpandableNavbarSectionComponent extends NavbarSectionComponent implements OnInit { /** * This section resides in the Public Navbar diff --git a/src/app/navbar/expandable-navbar-section/themed-expandable-navbar-section.component.ts b/src/app/navbar/expandable-navbar-section/themed-expandable-navbar-section.component.ts index e33dca4104..8f474e9949 100644 --- a/src/app/navbar/expandable-navbar-section/themed-expandable-navbar-section.component.ts +++ b/src/app/navbar/expandable-navbar-section/themed-expandable-navbar-section.component.ts @@ -8,8 +8,7 @@ import { MenuID } from '../../shared/menu/menu-id.model'; * Themed wrapper for ExpandableNavbarSectionComponent */ @Component({ - /* eslint-disable @angular-eslint/component-selector */ - selector: 'li[ds-themed-expandable-navbar-section]', + selector: 'ds-themed-expandable-navbar-section', styleUrls: [], templateUrl: '../../shared/theme-support/themed.component.html', }) diff --git a/src/app/navbar/navbar-section/navbar-section.component.ts b/src/app/navbar/navbar-section/navbar-section.component.ts index 9f75a96f6e..9b86aa10f2 100644 --- a/src/app/navbar/navbar-section/navbar-section.component.ts +++ b/src/app/navbar/navbar-section/navbar-section.component.ts @@ -8,8 +8,7 @@ import { MenuID } from '../../shared/menu/menu-id.model'; * Represents a non-expandable section in the navbar */ @Component({ - /* eslint-disable @angular-eslint/component-selector */ - selector: 'li[ds-navbar-section]', + selector: 'ds-navbar-section', templateUrl: './navbar-section.component.html', styleUrls: ['./navbar-section.component.scss'] }) diff --git a/src/app/navbar/navbar.component.html b/src/app/navbar/navbar.component.html index bc1e04f513..edfc4bb8ee 100644 --- a/src/app/navbar/navbar.component.html +++ b/src/app/navbar/navbar.component.html @@ -8,9 +8,9 @@ <li *ngIf="(isXsOrSm$ | async) && (isAuthenticated$ | async)"> <ds-user-menu [inExpandableNavbar]="true"></ds-user-menu> </li> - <ng-container *ngFor="let section of (sections | async)"> + <li *ngFor="let section of (sections | async)"> <ng-container *ngComponentOutlet="(sectionMap$ | async).get(section.id)?.component; injector: (sectionMap$ | async).get(section.id)?.injector;"></ng-container> - </ng-container> + </li> </ul> </div> </div> diff --git a/src/app/shared/dso-page/dso-edit-menu/dso-edit-expandable-menu-section/dso-edit-menu-expandable-section.component.ts b/src/app/shared/dso-page/dso-edit-menu/dso-edit-expandable-menu-section/dso-edit-menu-expandable-section.component.ts index 8e4a7008af..1925099418 100644 --- a/src/app/shared/dso-page/dso-edit-menu/dso-edit-expandable-menu-section/dso-edit-menu-expandable-section.component.ts +++ b/src/app/shared/dso-page/dso-edit-menu/dso-edit-expandable-menu-section/dso-edit-menu-expandable-section.component.ts @@ -13,7 +13,6 @@ import { hasValue } from '../../../empty.util'; * Represents an expandable section in the dso edit menus */ @Component({ - /* tslint:disable:component-selector */ selector: 'ds-dso-edit-menu-expandable-section', templateUrl: './dso-edit-menu-expandable-section.component.html', styleUrls: ['./dso-edit-menu-expandable-section.component.scss'], diff --git a/src/app/shared/dso-page/dso-edit-menu/dso-edit-menu-section/dso-edit-menu-section.component.ts b/src/app/shared/dso-page/dso-edit-menu/dso-edit-menu-section/dso-edit-menu-section.component.ts index af3381ef71..060049ef5f 100644 --- a/src/app/shared/dso-page/dso-edit-menu/dso-edit-menu-section/dso-edit-menu-section.component.ts +++ b/src/app/shared/dso-page/dso-edit-menu/dso-edit-menu-section/dso-edit-menu-section.component.ts @@ -10,7 +10,6 @@ import { MenuSection } from '../../../menu/menu-section.model'; * Represents a non-expandable section in the dso edit menus */ @Component({ - /* tslint:disable:component-selector */ selector: 'ds-dso-edit-menu-section', templateUrl: './dso-edit-menu-section.component.html', styleUrls: ['./dso-edit-menu-section.component.scss'] diff --git a/src/themes/dspace/app/navbar/navbar.component.html b/src/themes/dspace/app/navbar/navbar.component.html index d9631aad18..c14671cf68 100644 --- a/src/themes/dspace/app/navbar/navbar.component.html +++ b/src/themes/dspace/app/navbar/navbar.component.html @@ -10,9 +10,9 @@ <li *ngIf="(isXsOrSm$ | async) && (isAuthenticated$ | async)"> <ds-user-menu [inExpandableNavbar]="true"></ds-user-menu> </li> - <ng-container *ngFor="let section of (sections | async)"> + <li *ngFor="let section of (sections | async)"> <ng-container *ngComponentOutlet="(sectionMap$ | async).get(section.id)?.component; injector: (sectionMap$ | async).get(section.id)?.injector;"></ng-container> - </ng-container> + </li> </ul> </div> <div class="navbar-buttons"> -- GitLab From 884e113168ace077074d4eda479b9def8f937bb6 Mon Sep 17 00:00:00 2001 From: imilos <imilos@gmail.com> Date: Fri, 20 Oct 2023 11:00:11 +0200 Subject: [PATCH 116/183] Added Serbian cyrilic translation and corrected Serbian latin translation. (cherry picked from commit ad12e5a7f2c72dfed5dd0b2e3e12d0b9c7457874) --- config/config.example.yml | 3 + src/assets/i18n/sr-cyr.json5 | 2616 ++++++++++++++++++++++++++++++ src/assets/i18n/sr-lat.json5 | 12 +- src/config/default-app-config.ts | 1 + 4 files changed, 2626 insertions(+), 6 deletions(-) create mode 100644 src/assets/i18n/sr-cyr.json5 diff --git a/config/config.example.yml b/config/config.example.yml index 42c61235b9..76d73a2693 100644 --- a/config/config.example.yml +++ b/config/config.example.yml @@ -235,6 +235,9 @@ languages: - code: el label: Ελληνικά active: true + - code: sr-cyr + label: СрпÑки + active: true - code: uk label: YкраїÌнÑька active: true diff --git a/src/assets/i18n/sr-cyr.json5 b/src/assets/i18n/sr-cyr.json5 new file mode 100644 index 0000000000..5f2dc12f35 --- /dev/null +++ b/src/assets/i18n/sr-cyr.json5 @@ -0,0 +1,2616 @@ +{ + // Initial version provided by University of Kragujevac, Serbia 2023. + "401.help": "ÐиÑте овлашћени да приÑтупите овој Ñтраници. Можете кориÑтити дугме иÑпод да Ñе вратите на почетну Ñтраницу.", + "401.link.home-page": "Одведи ме на почетну Ñтраницу", + "401.unauthorized": "Ðеовлашћен приÑтуп", + "403.help": "Ðемате дозволу да приÑтупите овој Ñтраници. Можете кориÑтити дугме иÑпод да Ñе вратите на почетну Ñтраницу.", + "403.link.home-page": "Одведи ме на почетну Ñтраницу", + "403.forbidden": "Забрањен приÑтуп", + "500.page-internal-server-error": "УÑлуга није доÑтупна", + "500.help": "Сервер привремено није у могућноÑти да ÑервиÑира ваш захтев због заÑтоја у одржавању или проблема Ñа капацитетом. Покушајте поново каÑније.", + "500.link.home-page": "Одведи ме на почетну Ñтраницу", + "404.help": "Ðе можемо да пронађемо Ñтраницу коју тражите. Страница је можда премештена или избриÑана. Можете кориÑтити дугме иÑпод да Ñе вратите на почетну Ñтраницу.", + "404.link.home-page": "Одведи ме на почетну Ñтраницу", + "404.page-not-found": "Страница није пронађена", + "error-page.description.401": "Ðеовлашћен приÑтуп", + "error-page.description.403": "Забрањен приÑтуп", + "error-page.description.500": "УÑлуга није доÑтупна", + "error-page.description.404": "Страница није пронађена", + "error-page.orcid.generic-error": "Дошло је до грешке приликом пријављивања преко ORCID-а. Уверите Ñе да Ñте поделили имејл адреÑу Ñвог ORCID налога Ñа DSpace-ом. Ðко грешка и даље поÑтоји, контактирајте админиÑтратора", + "access-status.embargo.listelement.badge": "Ембарго", + "access-status.metadata.only.listelement.badge": "Само метаподаци", + "access-status.open.access.listelement.badge": "Отворен приÑтуп", + "access-status.restricted.listelement.badge": "Ограничен приÑтуп", + "access-status.unknown.listelement.badge": "Ðепознато", + "admin.curation-tasks.breadcrumbs": "Задаци курирања ÑиÑтема", + "admin.curation-tasks.title": "Задаци курирања ÑиÑтема", + "admin.curation-tasks.header": "Задаци курирања ÑиÑтема", + "admin.registries.bitstream-formats.breadcrumbs": "Форматирајте региÑтар", + "admin.registries.bitstream-formats.create.breadcrumbs": "Формат битÑтрим-а", + "admin.registries.bitstream-formats.create.failure.content": "Дошло је до грешке при креирању новог формата битÑтрим-а.", + "admin.registries.bitstream-formats.create.failure.head": "ÐеуÑпешно", + "admin.registries.bitstream-formats.create.head": "Креирајте формат битÑтрим-а", + "admin.registries.bitstream-formats.create.new": "Додајте нови формат битÑтрим-а", + "admin.registries.bitstream-formats.create.success.content": "Ðови формат битÑтрим-а је уÑпешно креиран.", + "admin.registries.bitstream-formats.create.success.head": "УÑпешно", + "admin.registries.bitstream-formats.delete.failure.amount": "Уклањање {{ amount }} формата није уÑпело", + "admin.registries.bitstream-formats.delete.failure.head": "ÐеуÑпешно", + "admin.registries.bitstream-formats.delete.success.amount": "УÑпешно уклоњен {{ amount }} формат", + "admin.registries.bitstream-formats.delete.success.head": "УÑпешно", + "admin.registries.bitstream-formats.description": "Ова лиÑта формата битÑтрим-а пружа информације о познатим форматима и нивоу њихове подршке.", + "admin.registries.bitstream-formats.edit.breadcrumbs": "Формат битÑтрим-а", + "admin.registries.bitstream-formats.edit.description.hint": "", + "admin.registries.bitstream-formats.edit.description.label": "ОпиÑ", + "admin.registries.bitstream-formats.edit.extensions.hint": "ЕкÑтензије Ñу екÑтензије фајлова које Ñе кориÑте за аутоматÑку идентификацију формата отпремљених фајлова. Можете да унеÑете неколико екÑтензија за Ñваки формат.", + "admin.registries.bitstream-formats.edit.extensions.label": "ЕкÑтензије фајлова", + "admin.registries.bitstream-formats.edit.extensions.placeholder": "УнеÑите екÑтензију фајла без тачке", + "admin.registries.bitstream-formats.edit.failure.content": "Дошло је до грешке при уређивању формата битÑтрим-а", + "admin.registries.bitstream-formats.edit.failure.head": "ÐеуÑпешно", + "admin.registries.bitstream-formats.edit.head": "Формат битÑтрим-а: {{ format }}", + "admin.registries.bitstream-formats.edit.internal.hint": "Формати означени као интерни Ñу Ñкривени од кориÑника и кориÑте Ñе у админиÑтративне Ñврхе.", + "admin.registries.bitstream-formats.edit.internal.label": "Унутрашње", + "admin.registries.bitstream-formats.edit.mimetype.hint": "MIME тип повезан Ñа овим форматом не мора бити јединÑтвен.", + "admin.registries.bitstream-formats.edit.mimetype.label": "MIME тип", + "admin.registries.bitstream-formats.edit.shortDescription.hint": "ЈединÑтвено име за овај формат, (нпр. Microsoft Word XP или Microsoft Word 2000)", + "admin.registries.bitstream-formats.edit.shortDescription.label": "Име", + "admin.registries.bitstream-formats.edit.success.content": "Формат битÑтрим-а је уÑпешно измењен.", + "admin.registries.bitstream-formats.edit.success.head": "УÑпешно", + "admin.registries.bitstream-formats.edit.supportLevel.hint": "Ðиво подршке коју ваша инÑтитуција обећава за овај формат.", + "admin.registries.bitstream-formats.edit.supportLevel.label": "Ðиво подршке", + "admin.registries.bitstream-formats.head": "РегиÑтар формата битÑтрим-а", + "admin.registries.bitstream-formats.no-items": "Ðема формата битова за приказ.", + "admin.registries.bitstream-formats.table.delete": "Избриши изабрано", + "admin.registries.bitstream-formats.table.deselect-all": "Поништите Ñве", + "admin.registries.bitstream-formats.table.internal": "Унутрашње", + "admin.registries.bitstream-formats.table.mimetype": "MIME тип", + "admin.registries.bitstream-formats.table.name": "Име", + "admin.registries.bitstream-formats.table.id": "ID", + "admin.registries.bitstream-formats.table.return": "Ðазад", + "admin.registries.bitstream-formats.table.supportLevel.KNOWN": "Познато", + "admin.registries.bitstream-formats.table.supportLevel.SUPPORTED": "Подржано", + "admin.registries.bitstream-formats.table.supportLevel.UNKNOWN": "Ðепознато", + "admin.registries.bitstream-formats.table.supportLevel.head": "Ðиво подршке", + "admin.registries.bitstream-formats.title": "РегиÑтар формата битÑтрим-а", + "admin.registries.metadata.breadcrumbs": "РегиÑтар метаподатака", + "admin.registries.metadata.description": "РегиÑтар метаподатака одржава лиÑту Ñвих поља метаподатака доÑтупних у Ñпремишту. Ова поља могу бити подељена на више шема. Међутим, DSpace захтева квалификовану Dublin Core шему", + "admin.registries.metadata.form.create": "Креирајте шему метаподатака", + "admin.registries.metadata.form.edit": "Уредите шему метаподатака", + "admin.registries.metadata.form.name": "Име", + "admin.registries.metadata.form.namespace": "ПроÑтор имена", + "admin.registries.metadata.head": "РегиÑтар метаподатака", + "admin.registries.metadata.schemas.no-items": "Ðема шема метаподатака за приказ.", + "admin.registries.metadata.schemas.table.delete": "Избриши изабрано", + "admin.registries.metadata.schemas.table.id": "ID", + "admin.registries.metadata.schemas.table.name": "Име", + "admin.registries.metadata.schemas.table.namespace": "ПроÑтор имена", + "admin.registries.metadata.title": "РегиÑтар метаподатака", + "admin.registries.schema.breadcrumbs": "Шема метаподатака", + "admin.registries.schema.description": "Ово је шема метаподатака за \"{{namespace}}\".", + "admin.registries.schema.fields.head": "Поља метаподатака шеме", + "admin.registries.schema.fields.no-items": "Ðема поља метаподатака за приказ.", + "admin.registries.schema.fields.table.delete": "Избриши изабрано", + "admin.registries.schema.fields.table.field": "Поље", + "admin.registries.schema.fields.table.id": "ID", + "admin.registries.schema.fields.table.scopenote": "Сцопе напомена", + "admin.registries.schema.form.create": "Креирајте поље за метаподатке", + "admin.registries.schema.form.edit": "Измените поље за метаподатке", + "admin.registries.schema.form.element": "Елемент", + "admin.registries.schema.form.qualifier": "Квалификатор", + "admin.registries.schema.form.scopenote": "Сцопе напомена", + "admin.registries.schema.head": "Шема метаподатака", + "admin.registries.schema.notification.created": "УÑпешно креирана шема метаподатака \"{{prefix}}\"", + "admin.registries.schema.notification.deleted.failure": "ÐеуÑпешно бриÑање {{amount}} шема метаподатака", + "admin.registries.schema.notification.deleted.success": "УÑпешно избриÑане {{amount}} шеме метаподатака", + "admin.registries.schema.notification.edited": "УÑпешно измењена шема метаподатака \"{{prefix}}\"", + "admin.registries.schema.notification.failure": "Грешка", + "admin.registries.schema.notification.field.created": "УÑпешно креирано поље метаподатака \"{{field}}\"", + "admin.registries.schema.notification.field.deleted.failure": "ÐеуÑпешно бриÑање {{amount}} поља метаподатака", + "admin.registries.schema.notification.field.deleted.success": "УÑпешно избриÑана {{amount}} поља метаподатака", + "admin.registries.schema.notification.field.edited": "УÑпешно измењено поље метаподатака \"{{field}}\"", + "admin.registries.schema.notification.success": "УÑпешно", + "admin.registries.schema.return": "Ðазад", + "admin.registries.schema.title": "РегиÑтар шеме метаподатака", + "admin.access-control.bulk-access.breadcrumbs": "Управљање маÑовним приÑтупом", + "administrativeBulkAccess.search.results.head": "Резултати претраге", + "admin.access-control.bulk-access": "Управљање маÑовним приÑтупом", + "admin.access-control.bulk-access.title": "Управљање маÑовним приÑтупом", + "admin.access-control.bulk-access-browse.header": "Корак 1: Изаберите објекте", + "admin.access-control.bulk-access-browse.search.header": "Претрага", + "admin.access-control.bulk-access-browse.selected.header": "Тренутни избор ({{number}})", + "admin.access-control.bulk-access-settings.header": "Корак 2: Операција коју треба извршити", + "admin.access-control.epeople.actions.delete": "Избришите EPerson", + "admin.access-control.epeople.actions.impersonate": "Опонашати EPerson", + "admin.access-control.epeople.actions.reset": "РеÑетујте шифру", + "admin.access-control.epeople.actions.stop-impersonating": "ЗауÑтави предÑтављање као EPerson", + "admin.access-control.epeople.breadcrumbs": "EPeople", + "admin.access-control.epeople.title": "EPeople", + "admin.access-control.epeople.head": "EPeople", + "admin.access-control.epeople.search.head": "Претрага", + "admin.access-control.epeople.button.see-all": "Прегледајте Ñве", + "admin.access-control.epeople.search.scope.metadata": "Метаподаци", + "admin.access-control.epeople.search.scope.email": "Е-мејл (тачно)", + "admin.access-control.epeople.search.button": "Претрага", + "admin.access-control.epeople.search.placeholder": "Претражите људе...", + "admin.access-control.epeople.button.add": "Додајте EPerson", + "admin.access-control.epeople.table.id": "ID", + "admin.access-control.epeople.table.name": "Име", + "admin.access-control.epeople.table.email": "Е-мејл (тачно)", + "admin.access-control.epeople.table.edit": "Измена", + "admin.access-control.epeople.table.edit.buttons.edit": "Измените \"{{name}}\"", + "admin.access-control.epeople.table.edit.buttons.edit-disabled": "ÐиÑте овлашћени за уређивање ове групе", + "admin.access-control.epeople.table.edit.buttons.remove": "Избришите \"{{name}}\"", + "admin.access-control.epeople.no-items": "Ðема EPeople за приказ.", + "admin.access-control.epeople.form.create": "Креирајте EPerson", + "admin.access-control.epeople.form.edit": "Измените EPerson", + "admin.access-control.epeople.form.firstName": "Име", + "admin.access-control.epeople.form.lastName": "Презиме", + "admin.access-control.epeople.form.email": "Е-мејл", + "admin.access-control.epeople.form.emailHint": "Мора бити важећа Е-мејл адреÑа", + "admin.access-control.epeople.form.canLogIn": "Може Ñе пријавити", + "admin.access-control.epeople.form.requireCertificate": "Потребан је Ñертификат", + "admin.access-control.epeople.form.return": "Ðазад", + "admin.access-control.epeople.form.notification.created.success": "УÑпешно креиран EPerson \"{{name}}\"", + "admin.access-control.epeople.form.notification.created.failure": "ÐеуÑпешно креирање EPerson \"{{name}}\"", + "admin.access-control.epeople.form.notification.created.failure.emailInUse": "ÐеуÑпешно креирање EPerson \"{{name}}\", емаил \"{{email}}\" Ñе већ кориÑти.", + "admin.access-control.epeople.form.notification.edited.failure.emailInUse": "ÐеуÑпешна измена EPerson \"{{name}}\", емаил \"{{email}}\" Ñе већ кориÑти.", + "admin.access-control.epeople.form.notification.edited.success": "УÑпешно измењен EPerson \"{{name}}\"", + "admin.access-control.epeople.form.notification.edited.failure": "ÐеуÑпешна измена EPerson \"{{name}}\"", + "admin.access-control.epeople.form.notification.deleted.success": "УÑпешно избриÑан EPerson \"{{name}}\"", + "admin.access-control.epeople.form.notification.deleted.failure": "ÐеуÑпешно бриÑање EPerson \"{{name}}\"", + "admin.access-control.epeople.form.groupsEPersonIsMemberOf": "Члан ових група:", + "admin.access-control.epeople.form.table.id": "ID", + "admin.access-control.epeople.form.table.name": "Име", + "admin.access-control.epeople.form.table.collectionOrCommunity": "Колекција/Заједница", + "admin.access-control.epeople.form.memberOfNoGroups": "Овај EPerson није члан ниједне групе", + "admin.access-control.epeople.form.goToGroups": "Додајте групама", + "admin.access-control.epeople.notification.deleted.failure": "ÐеуÑпешно бриÑање EPerson: \"{{name}}\"", + "admin.access-control.epeople.notification.deleted.success": "УÑпешно избриÑан EPerson: \"{{name}}\"", + "admin.access-control.groups.title": "Групе", + "admin.access-control.groups.breadcrumbs": "Групе", + "admin.access-control.groups.singleGroup.breadcrumbs": "Измените групу", + "admin.access-control.groups.title.singleGroup": "Измените групу", + "admin.access-control.groups.title.addGroup": "Ðова група", + "admin.access-control.groups.addGroup.breadcrumbs": "Ðова група", + "admin.access-control.groups.head": "Групе", + "admin.access-control.groups.button.add": "Додајте групу", + "admin.access-control.groups.search.head": "Претрага група", + "admin.access-control.groups.button.see-all": "Прегледајте Ñве", + "admin.access-control.groups.search.button": "Претрага", + "admin.access-control.groups.search.placeholder": "Претражите групе...", + "admin.access-control.groups.table.id": "ID", + "admin.access-control.groups.table.name": "Име", + "admin.access-control.groups.table.collectionOrCommunity": "Колекција/Заједница", + "admin.access-control.groups.table.members": "Чланови", + "admin.access-control.groups.table.edit": "Изменити", + "admin.access-control.groups.table.edit.buttons.edit": "Измените \"{{name}}\"", + "admin.access-control.groups.table.edit.buttons.remove": "Избришите \"{{name}}\"", + "admin.access-control.groups.no-items": "Ðије пронађена ниједна група Ñа овим у Ñвом имену или овим као UUID", + "admin.access-control.groups.notification.deleted.success": "УÑпешно избриÑана група \"{{name}}\"", + "admin.access-control.groups.notification.deleted.failure.title": "ÐеуÑпешно бриÑање групе \"{{name}}\"", + "admin.access-control.groups.notification.deleted.failure.content": "Узрок: \"{{cause}}\"", + "admin.access-control.groups.form.alert.permanent": "Ова група је трајна, тако да Ñе не може мењати или бриÑати. И даље можете да додајете и уклањате чланове групе кориÑтећи ову Ñтраницу.", + "admin.access-control.groups.form.alert.workflowGroup": "Ова група Ñе не може изменити или избриÑати јер одговара улози у процеÑу Ñлања и тока поÑла у \"{{name}}\" {{comcol}}. Можете је избриÑати Ñа картице <a href='{{comcolEditRolesRoute}}'>\"додели улоге\"</a> на Ñтраници за уређивање {{comcol}}. И даље можете да додајете и уклањате чланове групе кориÑтећи ову Ñтраницу.", + "admin.access-control.groups.form.head.create": "Креирај групу", + "admin.access-control.groups.form.head.edit": "Измени групу", + "admin.access-control.groups.form.groupName": "Ðазив групе", + "admin.access-control.groups.form.groupCommunity": "Заједница или колекција", + "admin.access-control.groups.form.groupDescription": "ОпиÑ", + "admin.access-control.groups.form.notification.created.success": "УÑпешно креирана Група \"{{name}}\"", + "admin.access-control.groups.form.notification.created.failure": "ÐеуÑпешно креирање Групе \"{{name}}\"", + "admin.access-control.groups.form.notification.created.failure.groupNameInUse": "ÐеуÑпешно креирање Групе Ñа именом: \"{{name}}\", проверите да име није већ употребљено.", + "admin.access-control.groups.form.notification.edited.failure": "ÐеуÑпешна измена Групе \"{{name}}\"", + "admin.access-control.groups.form.notification.edited.failure.groupNameInUse": "Ðазив \"{{name}}\" Ñе већ кориÑти!", + "admin.access-control.groups.form.notification.edited.success": "Група \"{{name}}\" је уÑпешно измењена", + "admin.access-control.groups.form.actions.delete": "Избришите групу", + "admin.access-control.groups.form.delete-group.modal.header": "Избришите групу \"{{ dsoName}}\"", + "admin.access-control.groups.form.delete-group.modal.info": "Да ли Ñте Ñигурни да желите да избришете групу \"{{ dsoName }}\"", + "admin.access-control.groups.form.delete-group.modal.cancel": "Поништити, отказати", + "admin.access-control.groups.form.delete-group.modal.confirm": "Избришите", + "admin.access-control.groups.form.notification.deleted.success": "Група \"{{ name }}\" је уÑпешно обриÑана", + "admin.access-control.groups.form.notification.deleted.failure.title": "БриÑање групе \"{{ name }}\" није уÑпело", + "admin.access-control.groups.form.notification.deleted.failure.content": "Узрок: \"{{ cause }}\"", + "admin.access-control.groups.form.members-list.head": "EPeople", + "admin.access-control.groups.form.members-list.search.head": "Додајте EPeople", + "admin.access-control.groups.form.members-list.button.see-all": "Прегледајте Ñве", + "admin.access-control.groups.form.members-list.headMembers": "Тренутни чланови", + "admin.access-control.groups.form.members-list.search.scope.metadata": "Метаподатак", + "admin.access-control.groups.form.members-list.search.scope.email": "Е-мејл (тачно)", + "admin.access-control.groups.form.members-list.search.button": "Претрага", + "admin.access-control.groups.form.members-list.table.id": "ID", + "admin.access-control.groups.form.members-list.table.name": "Име", + "admin.access-control.groups.form.members-list.table.identity": "Идентитет", + "admin.access-control.groups.form.members-list.table.email": "Email", + "admin.access-control.groups.form.members-list.table.netid": "NetID", + "admin.access-control.groups.form.members-list.table.edit": "Уклони / Додај", + "admin.access-control.groups.form.members-list.table.edit.buttons.remove": "Уклоните члана Ñа именом \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.success.addMember": "Члан је уÑпешно додат: \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.failure.addMember": "Додавање члана није уÑпело: \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.success.deleteMember": "УÑпешно обриÑан члан: \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.failure.deleteMember": "БриÑање члана није уÑпело: \"{{name}}\"", + "admin.access-control.groups.form.members-list.table.edit.buttons.add": "Додај члана Ñа именом \"{{name}}\"", + "admin.access-control.groups.form.members-list.notification.failure.noActiveGroup": "Ðема тренутно активне групе, прво пошаљите име.", + "admin.access-control.groups.form.members-list.no-members-yet": "Још нема чланова у групи, претражите и додајте.", + "admin.access-control.groups.form.members-list.no-items": "Ðиједан EPeople није пронађен у тој претрази", + "admin.access-control.groups.form.subgroups-list.notification.failure": "Ðешто није у реду: \"{{cause}}\"", + "admin.access-control.groups.form.subgroups-list.head": "Групе", + "admin.access-control.groups.form.subgroups-list.search.head": "Додајте подгрупу", + "admin.access-control.groups.form.subgroups-list.button.see-all": "Прегледајте Ñве", + "admin.access-control.groups.form.subgroups-list.headSubgroups": "Тренутне подгрупе", + "admin.access-control.groups.form.subgroups-list.search.button": "Претрага", + "admin.access-control.groups.form.subgroups-list.table.id": "ID", + "admin.access-control.groups.form.subgroups-list.table.name": "Име", + "admin.access-control.groups.form.subgroups-list.table.collectionOrCommunity": "Колекција/Заједница", + "admin.access-control.groups.form.subgroups-list.table.edit": "Уклони / Додај", + "admin.access-control.groups.form.subgroups-list.table.edit.buttons.remove": "Уклоните подгрупу Ñа именом \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.table.edit.buttons.add": "Додајте подгрупу Ñа именом \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.table.edit.currentGroup": "Тренутна група", + "admin.access-control.groups.form.subgroups-list.notification.success.addSubgroup": "Подгрупа је уÑпешно додата: \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.notification.failure.addSubgroup": "Додавање подгрупе није уÑпело: \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.notification.success.deleteSubgroup": "УÑпешно обриÑана подгрупа: \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.notification.failure.deleteSubgroup": "БриÑање подгрупе није уÑпело: \"{{name}}\"", + "admin.access-control.groups.form.subgroups-list.notification.failure.noActiveGroup": "Ðема тренутно активне групе, прво пошаљите име.", + "admin.access-control.groups.form.subgroups-list.notification.failure.subgroupToAddIsActiveGroup": "Ово је тренутна група, не може Ñе додати.", + "admin.access-control.groups.form.subgroups-list.no-items": "Ðије пронађена ниједна група Ñа овим у Ñвом имену или овим као UUID", + "admin.access-control.groups.form.subgroups-list.no-subgroups-yet": "Још нема подгрупа у групи.", + "admin.access-control.groups.form.return": "Ðазад", + "admin.access-control.groups.form.tooltip.editGroupPage": "Ðа овој Ñтраници можете да мењате ÑвојÑтва и чланове групе. У горњем одељку можете да измените име и Ð¾Ð¿Ð¸Ñ Ð³Ñ€ÑƒÐ¿Ðµ, оÑим ако је ово админиÑтраторÑка група за колекцију или заједницу, у ком Ñлучају Ñе име и Ð¾Ð¿Ð¸Ñ Ð³Ñ€ÑƒÐ¿Ðµ аутоматÑки генеришу и не могу Ñе мењати. У Ñледећим одељцима можете да мењате чланÑтво у групи. Погледајте [wiki](https://wiki.lyrasis.org/display/DSDOC7x/Create+or+manage+a+user+group) за више детаља.", + "admin.access-control.groups.form.tooltip.editGroup.addEpeople": "Да биÑте додали или уклонили EPerson-у/из ове групе, или кликните на дугме 'Прегледај Ñве' или кориÑтите траку за претрагу иÑпод да биÑте претражили кориÑнике (кориÑтите падајући мени Ñа леве Ñтране траке за претрагу да биÑте изабрали да ли ћете претраживати према метаподацима или према е-маилу). Затим кликните на икону Ð¿Ð»ÑƒÑ Ð·Ð° Ñваког кориÑника којег желите да додате на лиÑту иÑпод или на икону корпе за Ñмеће за Ñваког кориÑника којег желите да уклоните. ЛиÑта у наÑтавку може имати неколико Ñтраница: кориÑтите контроле Ñтранице иÑпод лиÑте да биÑте прешли на Ñледеће Ñтранице. Када будете Ñпремни, Ñачувајте промене кликом на дугме \"Сачувај\" у горњем делу.", + "admin.access-control.groups.form.tooltip.editGroup.addSubgroups": "Да биÑте додали или уклонили подгрупу у/из ове групе, кликните на дугме 'Прегледај Ñве' или кориÑтите траку за претрагу иÑпод да биÑте претражили кориÑнике. Затим кликните на икону Ð¿Ð»ÑƒÑ Ð·Ð° Ñваког кориÑника којег желите да додате на лиÑту иÑпод или на икону корпе за Ñмеће за Ñваког кориÑника којег желите да уклоните. ЛиÑта у наÑтавку може имати неколико Ñтраница: кориÑтите контроле Ñтранице иÑпод лиÑте да биÑте прешли на Ñледеће Ñтранице. Када будете Ñпремни, Ñачувајте промене кликом на дугме \"Сачувај\" у горњем делу.", + "admin.search.breadcrumbs": "ÐдминиÑтративна претрага", + "admin.search.collection.edit": "Уредите", + "admin.search.community.edit": "Уредите", + "admin.search.item.delete": "Избришите", + "admin.search.item.edit": "Уредите", + "admin.search.item.make-private": "Учините невидљивим", + "admin.search.item.make-public": "Учините видљивим", + "admin.search.item.move": "Померите", + "admin.search.item.reinstate": "РеинÑтате", + "admin.search.item.withdraw": "ОдуÑтати", + "admin.search.title": "ÐдминиÑтративна претрага", + "administrativeView.search.results.head": "ÐдминиÑтративна претрага", + "admin.workflow.breadcrumbs": "ÐдминиÑтрирање радног процеÑа", + "admin.workflow.title": "ÐдминиÑтрирање радног процеÑа", + "admin.workflow.item.workflow": "ÐŸÑ€Ð¾Ñ†ÐµÑ Ñ€Ð°Ð´Ð°", + "admin.workflow.item.workspace": "Радни проÑтор", + "admin.workflow.item.delete": "Избришите", + "admin.workflow.item.send-back": "Вратите", + "admin.workflow.item.policies": "Политике", + "admin.workflow.item.supervision": "Ðадзор", + "admin.metadata-import.breadcrumbs": "Увези метаподатке", + "admin.batch-import.breadcrumbs": "Увези Batch", + "admin.metadata-import.title": "Увези метаподатке", + "admin.batch-import.title": "Увези Batch", + "admin.metadata-import.page.header": "Увезите метаподатке", + "admin.batch-import.page.header": "Увези Batch", + "admin.metadata-import.page.help": "Овде можете да превучете или прегледате CSV фајлове који Ñадрже Batch операције метаподатака за фајлове", + "admin.batch-import.page.help": "Изаберите колекцију у коју желите да увезете. Затим превуците или потражите ZIP фајл једноÑтавног архивÑког формата (SAF) која укључује Ñтавке за увоз", + "admin.batch-import.page.toggle.help": "Могуће је извршити увоз било Ñа отпремањем фајла или преко URL-а, кориÑтите горњи прекидач да биÑте подеÑили извор уноÑа", + "admin.metadata-import.page.dropMsg": "Превуците CSV Ñа метаподацима за увоз", + "admin.batch-import.page.dropMsg": "Превуците Batch ZIP за увоз", + "admin.metadata-import.page.dropMsgReplace": "Превуците да замените CSV Ñа метаподацима за увоз", + "admin.batch-import.page.dropMsgReplace": "Превуците да замените Batch ZIP за увоз", + "admin.metadata-import.page.button.return": "Ðазад", + "admin.metadata-import.page.button.proceed": "ÐаÑтавите", + "admin.metadata-import.page.button.select-collection": "Изаберите колекцију", + "admin.metadata-import.page.error.addFile": "Прво изаберите фајл!", + "admin.metadata-import.page.error.addFileUrl": "Прво унеÑите URL фајл!", + "admin.batch-import.page.error.addFile": "Прво изаберите ZIP фајл!", + "admin.metadata-import.page.toggle.upload": "Отпремите", + "admin.metadata-import.page.toggle.url": "URL", + "admin.metadata-import.page.urlMsg": "Уметните Batch ZIP URL за увоз", + "admin.metadata-import.page.validateOnly": "Само валидирај", + "admin.metadata-import.page.validateOnly.hint": "Када Ñе изабере, отпремљени CSV ће бити потврђен. Добићете извештај о утврђеним променама, али промене неће бити Ñачуване.", + "advanced-workflow-action.rating.form.rating.label": "Оцена", + "advanced-workflow-action.rating.form.rating.error": "Морате оценити Ñтавку", + "advanced-workflow-action.rating.form.review.label": "Преглед", + "advanced-workflow-action.rating.form.review.error": "Морате унети рецензију да биÑте поÑлали ову оцену", + "advanced-workflow-action.rating.description": "Молимо изаберите оцену иÑпод", + "advanced-workflow-action.rating.description-requiredDescription": "Молимо изаберите оцену иÑпод и додајте рецензију", + "advanced-workflow-action.select-reviewer.description-single": "Молимо изаберите једног рецензента иÑпод пре Ñлања", + "advanced-workflow-action.select-reviewer.description-multiple": "Молимо изаберите једног или више рецензената иÑпод пре Ñлања", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.head": "EPeople", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.head": "Додајте EPeople", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.button.see-all": "Прегледајте Ñве", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.headMembers": "Тренутни чланови", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.metadata": "Метаподаци", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.email": "Е-мејл (тачно)", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.button": "Претрага", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.id": "ID", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.name": "Име", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.identity": "Идентитет", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.email": "Email", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.netid": "NetID", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit": "Уклоните / Додајте", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.remove": "Уклоните члана Ñа именом \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.addMember": "УÑпешно додат члан: \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.addMember": "ÐеуÑпешно додавање члана: \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.deleteMember": "УÑпешно избриÑан члан: \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.deleteMember": "ÐеуÑпешно бриÑање члана: \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.add": "Додајте члана Ñа именом \"{{name}}\"", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.noActiveGroup": "Тренутно нема активне групе, прво унеÑите име.", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-members-yet": "Још нема чланова у групи, претражите и додајте.", + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-items": "Ðиједан EPeople није пронађен у тој претрази", + "advanced-workflow-action.select-reviewer.no-reviewer-selected.error": "Ðије изабран рецензент.", + "admin.batch-import.page.validateOnly.hint": "Када Ñе изабере, отпремљени ZIP ће бити потврђен. Добићете извештај о утврђеним променама, али промене неће бити Ñачуване.", + "admin.batch-import.page.remove": "уклонити", + "auth.errors.invalid-user": "Погрешна Е-мејл адреÑа или лозинка.", + "auth.messages.expired": "Ваша ÑеÑија је иÑтекла. Молимо пријавите Ñе поново.", + "auth.messages.token-refresh-failed": "ОÑвежавање токена ÑеÑије није уÑпело. Молимо пријавите Ñе поново.", + "bitstream.download.page": "Тренутно Ñе преузима {{bitstream}}...", + "bitstream.download.page.back": "Ðазад", + "bitstream.edit.authorizations.link": "Измените полиÑе битÑтрим-а", + "bitstream.edit.authorizations.title": "Измените полиÑе битÑтрим-а", + "bitstream.edit.return": "Ðазад", + "bitstream.edit.bitstream": "битÑтрим:", + "bitstream.edit.form.description.hint": "Опционо, наведите кратак Ð¾Ð¿Ð¸Ñ Ñ„Ð°Ñ˜Ð»Ð°, на пример \"<i>Главни чланак</i>\" или \"<i>Очитавања података екÑперимента</i>\".", + "bitstream.edit.form.description.label": "ОпиÑ", + "bitstream.edit.form.embargo.hint": "Први дан од којег је приÑтуп дозвољен. <b>Овај датум Ñе не може изменити у овом обраÑцу.</b> Да биÑте поÑтавили датум забране за битÑтрим, идите на картицу <i>Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ñтавке</i>, кликните на <i>Овлашћења...</i >, креирајте или измените политику битÑтрим-ова<i>ПРОЧИТÐЈТЕ</i> и поÑтавите <i>Датум почетка</i> по жељи.", + "bitstream.edit.form.embargo.label": "Забрана до одређеног датума", + "bitstream.edit.form.fileName.hint": "Промените име фајла за битÑтрим. Имајте на уму да ће Ñе овим променити приказани битÑтрим URL, али ће Ñе Ñтари линкови и даље разрешити Ñве док Ñе ID Ñеквенце не промени.", + "bitstream.edit.form.fileName.label": "Име фајла", + "bitstream.edit.form.newFormat.label": "Опишите нови формат", + "bitstream.edit.form.newFormat.hint": "Ðпликација коју Ñте кориÑтили за креирање фајла, и број верзије (на пример, \"<i>ACMESoft SuperApp верзија 1.5</i>\").", + "bitstream.edit.form.primaryBitstream.label": "Примарни битÑтрим", + "bitstream.edit.form.selectedFormat.hint": "Ðко формат није на горњој лиÑти, <b>изаберите \"формат није на лиÑти\" изнад</b> и опишите га под \"Опишите нови формат\".", + "bitstream.edit.form.selectedFormat.label": "Изабрани формат", + "bitstream.edit.form.selectedFormat.unknown": "Формат није на лиÑти", + "bitstream.edit.notifications.error.format.title": "Дошло је до грешке приликом чувања битÑтрим формата", + "bitstream.edit.notifications.error.primaryBitstream.title": "Дошло је до грешке приликом чувања примарног битÑтрим-а", + "bitstream.edit.form.iiifLabel.label": "IIIF ознака", + "bitstream.edit.form.iiifLabel.hint": "Ознака canvas-а за ову Ñлику. Ðко није дата, кориÑтиће Ñе подразумевана ознака.", + "bitstream.edit.form.iiifToc.label": "IIIF Преглед Ñадржаја", + "bitstream.edit.form.iiifToc.hint": "Додавање текÑта овде, чини ово меÑто почетком новог опÑега Ñадржаја.", + "bitstream.edit.form.iiifWidth.label": "IIIF ширина canvas-а", + "bitstream.edit.form.iiifWidth.hint": "Ширина платна обично треба да одговара ширини Ñлике.", + "bitstream.edit.form.iiifHeight.label": "IIIF виÑина canvas-a", + "bitstream.edit.form.iiifHeight.hint": "ВиÑина canvas-а обично треба да одговара виÑини Ñлике.", + "bitstream.edit.notifications.saved.content": "Ваше промене у овом битÑтрим-у Ñу Ñачуване.", + "bitstream.edit.notifications.saved.title": "битÑтрим је Ñачуван", + "bitstream.edit.title": "Измените битÑтрим", + "bitstream-request-a-copy.alert.canDownload1": "Већ имате приÑтуп овом фајлу. Ðко желите да преузмете фајл, кликните", + "bitstream-request-a-copy.alert.canDownload2": "овде", + "bitstream-request-a-copy.header": "Затражите копију фајла", + "bitstream-request-a-copy.intro": "УнеÑите Ñледеће информације да биÑте затражили копију Ñледеће Ñтавке:", + "bitstream-request-a-copy.intro.bitstream.one": "Захтева Ñе Ñледећи фајл:", + "bitstream-request-a-copy.intro.bitstream.all": "Захтевају Ñе Ñви фајлови.", + "bitstream-request-a-copy.name.label": "име *", + "bitstream-request-a-copy.name.error": "Име је обавезно", + "bitstream-request-a-copy.email.label": "Ваша емаил адреÑа *", + "bitstream-request-a-copy.email.hint": "Ова Е-мејл адреÑа Ñе кориÑти за Ñлање фајла.", + "bitstream-request-a-copy.email.error": "Молим Ð’Ð°Ñ ÑƒÐ½ÐµÑите иÑправну Е-мејл адреÑу.", + "bitstream-request-a-copy.allfiles.label": "Фајлови", + "bitstream-request-a-copy.files-all-false.label": "Само тражени фајл", + "bitstream-request-a-copy.files-all-true.label": "Све фајлови (ове Ñтавке) у ограниченом приÑтупу", + "bitstream-request-a-copy.message.label": "Порука", + "bitstream-request-a-copy.return": "Ðазад", + "bitstream-request-a-copy.submit": "Захтевај копију", + "bitstream-request-a-copy.submit.success": "Захтев за Ñтавку је уÑпешно доÑтављен.", + "bitstream-request-a-copy.submit.error": "Ðешто није у реду Ñа Ñлањем захтева за Ñтавку.", + "browse.back.all-results": "Сви резултати прегледа", + "browse.comcol.by.author": "По аутору", + "browse.comcol.by.dateissued": "По датуму издања", + "browse.comcol.by.subject": "По предмету", + "browse.comcol.by.srsc": "По категорији предмета", + "browse.comcol.by.title": "По наÑлову", + "browse.comcol.head": "Прегледајте", + "browse.empty": "Ðема Ñтавки за приказ.", + "browse.metadata.author": "Ðутору", + "browse.metadata.dateissued": "Датуму издања", + "browse.metadata.subject": "Предмету", + "browse.metadata.title": "ÐаÑлову", + "browse.metadata.author.breadcrumbs": "Преглед по аутору", + "browse.metadata.dateissued.breadcrumbs": "Преглед по датуму", + "browse.metadata.subject.breadcrumbs": "Преглед по предмету", + "browse.metadata.srsc.breadcrumbs": "Преглед по категорији предмета", + "browse.metadata.title.breadcrumbs": "Преглед по наÑлову", + "pagination.next.button": "Следеће", + "pagination.previous.button": "Претходно", + "pagination.next.button.disabled.tooltip": "Ðема више Ñтраница Ñа резултатима", + "browse.startsWith": ", почевши од {{ startsWith }}", + "browse.startsWith.choose_start": "(Изаберите почетак)", + "browse.startsWith.choose_year": "(Изаберите годину)", + "browse.startsWith.choose_year.label": "Изаберите годину издања", + "browse.startsWith.jump": "Филтрирајте резултате по години или меÑецу", + "browse.startsWith.months.april": "Ðприл", + "browse.startsWith.months.august": "ÐвгуÑÑ‚", + "browse.startsWith.months.december": "Децембар", + "browse.startsWith.months.february": "Фебруар", + "browse.startsWith.months.january": "Јануар", + "browse.startsWith.months.july": "Јул", + "browse.startsWith.months.june": "Јун", + "browse.startsWith.months.march": "Март", + "browse.startsWith.months.may": "Мај", + "browse.startsWith.months.none": "(Изаберите меÑец)", + "browse.startsWith.months.none.label": "Изаберите меÑец издања", + "browse.startsWith.months.november": "Ðовембар", + "browse.startsWith.months.october": "Октобар", + "browse.startsWith.months.september": "Септембар", + "browse.startsWith.submit": "Прегледај", + "browse.startsWith.type_date": "Филтрирајте резултате по датуму", + "browse.startsWith.type_date.label": "Или унеÑите датум (година-меÑец) и кликните на дугме Прегледај", + "browse.startsWith.type_text": "Филтрирајте резултате упиÑивањем првих неколико Ñлова", + "browse.startsWith.input": "Филтер", + "browse.taxonomy.button": "Прегледај", + "browse.title": "Прегледање {{ collection }} према {{ field }}{{ startsWith }} {{ value }}", + "browse.title.page": "Прегледање {{ collection }} према {{ field }} {{ value }}", + "search.browse.item-back": "Ðазад на резултате", + "chips.remove": "Уклоните чип", + "claimed-approved-search-result-list-element.title": "Одобрено", + "claimed-declined-search-result-list-element.title": "Одбијено, враћено подноÑиоцу", + "claimed-declined-task-search-result-list-element.title": "Одбијено, враћено менаджеру за преглед", + "collection.create.head": "Ðаправите колекцију", + "collection.create.notifications.success": "Колекција је уÑпешно направљена", + "collection.create.sub-head": "Ðаправите колекцију за заједницу {{ parent }}", + "collection.curate.header": "Сачувај колекцију: {{collection}}", + "collection.delete.cancel": "Поништити, отказати", + "collection.delete.confirm": "Потврди", + "collection.delete.processing": "БриÑање", + "collection.delete.head": "Избришите колекцију", + "collection.delete.notification.fail": "Колекција Ñе не може избриÑати", + "collection.delete.notification.success": "Колекција је уÑпешно избриÑана", + "collection.delete.text": "Да ли Ñте Ñигурни да желите да избришете колекцију \"{{ dso }}\"", + "collection.edit.delete": "Избришите ову колекцију", + "collection.edit.head": "Уредите колекцију", + "collection.edit.breadcrumbs": "Уредите колекцију", + "collection.edit.tabs.mapper.head": "Мапирање Ñтавки", + "collection.edit.tabs.item-mapper.title": "Уређивање колекције - мапирање Ñтавки", + "collection.edit.item-mapper.cancel": "Поништити, отказати", + "collection.edit.item-mapper.collection": "Колекција: \"<b>{{name}}</b>\"", + "collection.edit.item-mapper.confirm": "Мапирајте изабране Ñтавке", + "collection.edit.item-mapper.description": "Ово је алатка за мапирање Ñтавки која омогућава админиÑтраторима колекције да мапирају Ñтавке из других колекција у ову колекцију. Можете тражити Ñтавке из других колекција и мапирати их или прегледати лиÑту тренутно мапираних Ñтавки.", + "collection.edit.item-mapper.head": "Мапирање Ñтавки - мапа Ñтавки из других колекција", + "collection.edit.item-mapper.no-search": "УнеÑите упит за претрагу", + "collection.edit.item-mapper.notifications.map.error.content": "Дошло је до грешака за мапирање {{amount}} Ñтавки.", + "collection.edit.item-mapper.notifications.map.error.head": "Грешке у мапирању", + "collection.edit.item-mapper.notifications.map.success.content": "УÑпешно мапиране {{amount}} Ñтавке.", + "collection.edit.item-mapper.notifications.map.success.head": "Мапирање је завршено", + "collection.edit.item-mapper.notifications.unmap.error.content": "Дошло је до грешака при уклањању мапирања Ñтавки {{amount}}.", + "collection.edit.item-mapper.notifications.unmap.error.head": "Уклоните грешке мапирања", + "collection.edit.item-mapper.notifications.unmap.success.content": "УÑпешно Ñу уклоњена мапирања {{amount}} Ñтавки.", + "collection.edit.item-mapper.notifications.unmap.success.head": "Уклањање мапирања је завршено", + "collection.edit.item-mapper.remove": "Уклањање мапирања изабраних Ñтавки", + "collection.edit.item-mapper.search-form.placeholder": "Претражи Ñтавке...", + "collection.edit.item-mapper.tabs.browse": "Прегледајте мапиране Ñтавке", + "collection.edit.item-mapper.tabs.map": "Мапирајте нове Ñтавке", + "collection.edit.logo.delete.title": "Избришите лого", + "collection.edit.logo.delete-undo.title": "Опозови бриÑање", + "collection.edit.logo.label": "Лого колекције", + "collection.edit.logo.notifications.add.error": "Отпремање лога колекције није уÑпело. Проверите Ñадржај пре поновног покушаја.", + "collection.edit.logo.notifications.add.success": "Отпремање лога колекције је уÑпешно.", + "collection.edit.logo.notifications.delete.success.title": "Лого је избриÑан", + "collection.edit.logo.notifications.delete.success.content": "УÑпешно је обриÑан лого колекције", + "collection.edit.logo.notifications.delete.error.title": "Грешка при бриÑању лога", + "collection.edit.logo.upload": "Превуците логотип колекције за отпремање", + "collection.edit.notifications.success": "УÑпешно уређена колекција", + "collection.edit.return": "Ðазад", + "collection.edit.tabs.access-control.head": "Контрола приÑтупа", + "collection.edit.tabs.access-control.title": "Уређивање колекције - Контрола приÑтупа", + "collection.edit.tabs.curate.head": "Curate", + "collection.edit.tabs.curate.title": "Уређивање колекције - Curate", + "collection.edit.tabs.authorizations.head": "Овлашћења", + "collection.edit.tabs.authorizations.title": "Уређивање колекције - овлашћења", + "collection.edit.item.authorizations.load-bundle-button": "Учитајте још пакета", + "collection.edit.item.authorizations.load-more-button": "Учитај више", + "collection.edit.item.authorizations.show-bitstreams-button": "Прикажи битÑтрим Ñмернице за пакет", + "collection.edit.tabs.metadata.head": "Уреди метаподатке", + "collection.edit.tabs.metadata.title": "Уређивање колекције - Метаподаци", + "collection.edit.tabs.roles.head": "Додели улоге", + "collection.edit.tabs.roles.title": "Уређивање колекције - Улоге", + "collection.edit.tabs.source.external": "Ова колекција прикупља Ñвој Ñадржај из Ñпољашњег извора", + "collection.edit.tabs.source.form.errors.oaiSource.required": "Морате да обезбедите Ñет ID циљне колекције.", + "collection.edit.tabs.source.form.harvestType": "Садржај Ñе прикупља", + "collection.edit.tabs.source.form.head": "Конфигуришите Ñпољни извор", + "collection.edit.tabs.source.form.metadataConfigId": "Формат метаподатака", + "collection.edit.tabs.source.form.oaiSetId": "ID Ñпецифичног Ñкупа за OAI", + "collection.edit.tabs.source.form.oaiSource": "OAI провајдер", + "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_BITSTREAMS": "Сакупите метаподатке и битÑтрим-ове (захтева ORE подршку)", + "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_REF": "Сакупите метаподатке и референце на битÑтрим-ове (захтева ORE подршку)", + "collection.edit.tabs.source.form.options.harvestType.METADATA_ONLY": "Само прикупљени метаподаци", + "collection.edit.tabs.source.head": "Извор Ñадржаја", + "collection.edit.tabs.source.notifications.discarded.content": "Ваше промене Ñу одбачене. Да биÑте поново поÑтавили Ñвоје промене, кликните на дугме \"Опозови\".", + "collection.edit.tabs.source.notifications.discarded.title": "Промене Ñу одбачене", + "collection.edit.tabs.source.notifications.invalid.content": "Ваше промене ниÑу Ñачуване. Проверите да ли Ñу Ñва поља иÑправна пре него што Ñачувате.", + "collection.edit.tabs.source.notifications.invalid.title": "Метаподаци Ñу неважећи", + "collection.edit.tabs.source.notifications.saved.content": "Ваше промене извора Ñадржаја ове колекције Ñу Ñачуване.", + "collection.edit.tabs.source.notifications.saved.title": "Извор Ñадржаја је Ñачуван", + "collection.edit.tabs.source.title": "Уређивање колекције – Извор Ñадржаја", + "collection.edit.template.add-button": "Додати", + "collection.edit.template.breadcrumbs": "Шаблон Ñтавке", + "collection.edit.template.cancel": "Отказати", + "collection.edit.template.delete-button": "Избришите", + "collection.edit.template.edit-button": "Измените", + "collection.edit.template.error": "Дошло је до грешке при преузимању Ñтавке шаблона", + "collection.edit.template.head": "Измените Ñтавку шаблона за колекцију \"{{ collection }}\"", + "collection.edit.template.label": "Ставка шаблона", + "collection.edit.template.loading": "Учитава Ñе Ñтавка шаблона...", + "collection.edit.template.notifications.delete.error": "ÐеуÑпешно бриÑање шаблона Ñтавке", + "collection.edit.template.notifications.delete.success": "УÑпешно обриÑан шаблон Ñтавке", + "collection.edit.template.title": "Измените Ñтавку шаблона", + "collection.form.abstract": "Кратак опиÑ", + "collection.form.description": "Уводни текÑÑ‚ (HTML)", + "collection.form.errors.title.required": "Молимо унеÑите име колекције", + "collection.form.license": "Лиценца", + "collection.form.provenance": "Порекло", + "collection.form.rights": "ÐуторÑки текÑÑ‚ (HTML)", + "collection.form.tableofcontents": "ВеÑти (HTML)", + "collection.form.title": "Име", + "collection.form.entityType": "Тип ентитета", + "collection.listelement.badge": "Колекција", + "collection.page.browse.recent.head": "Ðедавни поднеÑци", + "collection.page.browse.recent.empty": "Ðема Ñтавки за приказ", + "collection.page.edit": "Измените ову колекцију", + "collection.page.handle": "Трајни URI за ову колекцију", + "collection.page.license": "Лиценца", + "collection.page.news": "ВеÑти", + "collection.select.confirm": "Потврдите изабрано", + "collection.select.empty": "Ðема колекција за приказ", + "collection.select.table.title": "ÐаÑлов", + "collection.source.controls.head": "Контрола прикупљања", + "collection.source.controls.test.submit.error": "Ðешто није у реду Ñа покретањем теÑтирања подешавања", + "collection.source.controls.test.failed": "Скрипта за теÑтирање подешавања није уÑпела", + "collection.source.controls.test.completed": "Скрипта за теÑтирање подешавања је уÑпешно завршена", + "collection.source.controls.test.submit": "ТеÑтна конфигурација", + "collection.source.controls.test.running": "ТеÑтирање конфигурације...", + "collection.source.controls.import.submit.success": "Увоз је уÑпешно покренут", + "collection.source.controls.import.submit.error": "Ðешто није у реду Ñа покретањем увоза", + "collection.source.controls.import.submit": "Увезите Ñада", + "collection.source.controls.import.running": "Увоз...", + "collection.source.controls.import.failed": "Дошло је до грешке током увоза", + "collection.source.controls.import.completed": "Увоз је завршен", + "collection.source.controls.reset.submit.success": "РеÑетовање и поновни увоз Ñу уÑпешно покренути", + "collection.source.controls.reset.submit.error": "Ðешто није у реду Ñа покретањем реÑетовања и поновног увоза", + "collection.source.controls.reset.failed": "Дошло је до грешке током реÑетовања и поновног увоза", + "collection.source.controls.reset.completed": "РеÑетовање и поновни увоз Ñу завршени", + "collection.source.controls.reset.submit": "РеÑетујте и поново увезите", + "collection.source.controls.reset.running": "РеÑетовање и поновни увоз...", + "collection.source.controls.harvest.status": "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð¿Ñ€Ð¸ÐºÑƒÐ¿Ñ™Ð°Ð°ÑšÐ°:", + "collection.source.controls.harvest.start": "Време почетка прикупљања:", + "collection.source.controls.harvest.last": "Време почетка прикупљања:", + "collection.source.controls.harvest.message": "Информације о прикупљању:", + "collection.source.controls.harvest.no-information": "N/A", + "collection.source.update.notifications.error.content": "Ðаведена подешавања Ñу теÑтирана и ниÑу функциониÑала.", + "collection.source.update.notifications.error.title": "Грешка на Ñерверу", + "communityList.breadcrumbs": "ЛиÑта заједнице", + "communityList.tabTitle": "ЛиÑÑ‚ заједнице", + "communityList.title": "ЛиÑта заједница", + "communityList.showMore": "Прикажи више", + "community.create.head": "Креирајте заједницу", + "community.create.notifications.success": "Заједница је уÑпешно креирана", + "community.create.sub-head": "Креирајте подзаједницу за заједницу {{ parent }}", + "community.curate.header": "Уредник заједнице: {{community}}", + "community.delete.cancel": "Отказати", + "community.delete.confirm": "Потврдите", + "community.delete.processing": "БриÑање...", + "community.delete.head": "Избришите заједницу", + "community.delete.notification.fail": "Ðије могуће избриÑати заједницу", + "community.delete.notification.success": "УÑпешно избриÑана заједница", + "community.delete.text": "Да ли Ñте Ñигурни да желите да избришете заједницу \"{{ dso }}\"", + "community.edit.delete": "Избришите ову заједницу", + "community.edit.head": "Измените заједницу", + "community.edit.breadcrumbs": "Измените заједницу", + "community.edit.logo.delete.title": "Избришите лого", + "community.edit.logo.delete-undo.title": "Поништите бриÑање", + "community.edit.logo.label": "Лого заједнице", + "community.edit.logo.notifications.add.error": "Отпремање логоа заједнице није уÑпело. Молимо проверите Ñадржај пре поновног покушаја.", + "community.edit.logo.notifications.add.success": "УÑпешно отпремање логоа заједнице.", + "community.edit.logo.notifications.delete.success.title": "Лого је избриÑан", + "community.edit.logo.notifications.delete.success.content": "УÑпешно избриÑан лого заједнице", + "community.edit.logo.notifications.delete.error.title": "Грешка при бриÑању логоа", + "community.edit.logo.upload": "УнеÑите лого заједнице да биÑте га отпремили", + "community.edit.notifications.success": "УÑпешно је измењена заједница", + "community.edit.notifications.unauthorized": "Ðемате овлашћење да извршите ову промену", + "community.edit.notifications.error": "Дошло је до грешке при уређивању заједнице", + "community.edit.return": "Ðазад", + "community.edit.tabs.curate.head": "Curate", + "community.edit.tabs.curate.title": "Уређивање заједнице - Curate", + "community.edit.tabs.access-control.head": "Контрола приÑтупа", + "community.edit.tabs.access-control.title": "Уређивање заједнице - Контрола приÑтупа", + "community.edit.tabs.metadata.head": "Уреди метаподатке", + "community.edit.tabs.metadata.title": "Уређивање заједнице – Метаподаци", + "community.edit.tabs.roles.head": "Додели улоге", + "community.edit.tabs.roles.title": "Уређивање заједнице - Улоге", + "community.edit.tabs.authorizations.head": "Овлашћења", + "community.edit.tabs.authorizations.title": "Уређивање заједнице - овлашћења", + "community.listelement.badge": "Заједница", + "comcol-role.edit.no-group": "Ðиједан", + "comcol-role.edit.create": "Креирајте", + "comcol-role.edit.create.error.title": "Прављење групе за улогу \"{{ role }}\" није уÑпело", + "comcol-role.edit.restrict": "Ограничити", + "comcol-role.edit.delete": "Избришите", + "comcol-role.edit.delete.error.title": "БриÑање групе улога \"{{ role }}\" није уÑпело", + "comcol-role.edit.community-admin.name": "ÐдминиÑтратори", + "comcol-role.edit.collection-admin.name": "ÐдминиÑтратори", + "comcol-role.edit.community-admin.description": "ÐдминиÑтратори заједнице могу да креирају подзаједнице или колекције и да управљају тим подзаједницама или збиркама или да им додељују управљање. Поред тога, они одлучују ко може да поднеÑе Ñтавке у било коју подзбирку, уређују метаподатке Ñтавки (након подношења) и додају (мапирају) поÑтојеће Ñтавке из других колекција (предмет овлашћења).", + "comcol-role.edit.collection-admin.description": "ÐдминиÑтратори колекције одлучују ко може да шаље Ñтавке у колекцију, уређују метаподатке Ñтавки (након Ñлања) и додају (мапирају) поÑтојеће Ñтавке из других колекција у ову колекцију (предмет овлашћења за ту колекцију).", + "comcol-role.edit.submitters.name": "ПодноÑиоци", + "comcol-role.edit.submitters.description": "Е-људи и групе које имају дозволу да подноÑе нове Ñтавке у ову колекцију.", + "comcol-role.edit.item_read.name": "Подразумевани приÑтуп за читање Ñтавке", + "comcol-role.edit.item_read.description": "Е-Људи и групе које могу да читају нове Ñтавке поÑлате у ову колекцију. Промене ове улоге ниÑу ретроактивне. ПоÑтојеће Ñтавке у ÑиÑтему ће и даље моћи да виде они који Ñу имали приÑтуп за читање у време њиховог додавања.", + "comcol-role.edit.item_read.anonymous-group": "Подразумевано читање за долазне Ñтавке је тренутно поÑтављено на Ðнонимно.", + "comcol-role.edit.bitstream_read.name": "Подразумевани приÑтуп за читање битÑтреамова", + "comcol-role.edit.bitstream_read.description": "ÐдминиÑтратори заједнице могу да креирају подзаједнице или колекције и да управљају тим подзаједницама или збиркама или да им додељују управљање. Поред тога, они одлучују ко може да поднеÑе Ñтавке у било коју подзбирку, уређују метаподатке Ñтавки (након подношења) и додају (мапирају) поÑтојеће Ñтавке из других колекција (предмет овлашћења).", + "comcol-role.edit.bitstream_read.anonymous-group": "Подразумевано читање за долазне битÑтреамове је тренутно подешено на Ðнонимно.", + "comcol-role.edit.editor.name": "Уредници", + "comcol-role.edit.editor.description": "Уредници могу да уређују метаподатке долазних поднеÑака, а затим да их прихвате или одбију.", + "comcol-role.edit.finaleditor.name": "Коначни уредници", + "comcol-role.edit.finaleditor.description": "Коначни уредници могу да уређују метаподатке долазних поднеÑака, али неће моћи да их одбију.", + "comcol-role.edit.reviewer.name": "Рецензенти", + "comcol-role.edit.reviewer.description": "Рецензенти могу да прихвате или одбију долазне поднеÑке. Међутим, они не могу да уређују метаподатке поднеÑка.", + "comcol-role.edit.scorereviewers.name": "Резултат рецензената", + "comcol-role.edit.scorereviewers.description": "Рецензенти могу да дају оцену долазним поднеÑцима, што ће дефиниÑати да ли ће поднеÑак бити одбијен или не.", + "community.form.abstract": "Кратак опиÑ", + "community.form.description": "Уводни текÑÑ‚ (HTML)", + "community.form.errors.title.required": "УнеÑите назив заједнице", + "community.form.rights": "ТекÑÑ‚ ауторÑких права (HTML)", + "community.form.tableofcontents": "ВеÑти (HTML)", + "community.form.title": "Име", + "community.page.edit": "Уредите ову заједницу", + "community.page.handle": "Стални URI за ову заједницу", + "community.page.license": "Лиценца", + "community.page.news": "ВеÑти", + "community.all-lists.head": "Подзаједнице и колекције", + "community.sub-collection-list.head": "Колекције у овој заједници", + "community.sub-community-list.head": "Заједнице у овој заједници", + "cookies.consent.accept-all": "Прихватите Ñве", + "cookies.consent.accept-selected": "Прихватите изабрано", + "cookies.consent.app.opt-out.description": "Ова апликација Ñе подразумевано учитава (али можете да одуÑтанете)", + "cookies.consent.app.opt-out.title": "(одуÑтати)", + "cookies.consent.app.purpose": "Сврха", + "cookies.consent.app.required.description": "Ова апликација је увек потребна", + "cookies.consent.app.required.title": "(увек потребно)", + "cookies.consent.app.disable-all.description": "КориÑтите овај прекидач да омогућите или онемогућите Ñве уÑлуге.", + "cookies.consent.app.disable-all.title": "Омогућите или онемогућите Ñве уÑлуге", + "cookies.consent.update": "Било је промена од ваше поÑледње поÑете, ажурирајте Ñвоју ÑаглаÑноÑÑ‚.", + "cookies.consent.close": "Затворити", + "cookies.consent.decline": "Одбити", + "cookies.consent.ok": "То је у реду", + "cookies.consent.save": "Ñачувати", + "cookies.consent.content-notice.title": "СаглаÑноÑÑ‚ за колачиће", + "cookies.consent.content-notice.description": "Прикупљамо и обрађујемо ваше личне податке у Ñледеће Ñврхе: <strong>Провера аутентичноÑти, подешавања, потврда и ÑтатиÑтика</strong>. <br/> Да биÑте Ñазнали више, прочитајте нашу {privacyPolicy}.", + "cookies.consent.content-notice.description.no-privacy": "Прикупљамо и обрађујемо ваше личне податке у Ñледеће Ñврхе: <strong>Провера аутентичноÑти, подешавања, потврда и ÑтатиÑтика</strong>.", + "cookies.consent.content-notice.learnMore": "Прилагодити", + "cookies.consent.content-modal.description": "Овде можете видети и прилагодити информације које прикупљамо о вама.", + "cookies.consent.content-modal.privacy-policy.name": "Правила о приватноÑти", + "cookies.consent.content-modal.privacy-policy.text": "Да Ñазнате више, прочитајте нашу {privacyPolicy}.", + "cookies.consent.content-modal.title": "Информације које прикупљамо", + "cookies.consent.content-modal.services": "УÑлуге", + "cookies.consent.content-modal.service": "УÑлуга", + "cookies.consent.app.title.authentication": "Провера", + "cookies.consent.app.description.authentication": "Потребно за пријављивање", + "cookies.consent.app.title.preferences": "Подешавања", + "cookies.consent.app.description.preferences": "Потребно за чување ваших подешавања", + "cookies.consent.app.title.acknowledgement": "Потврда", + "cookies.consent.app.description.acknowledgement": "Потребно за чување ваших потврда и ÑаглаÑноÑти", + "cookies.consent.app.title.google-analytics": "Гоогле аналитике", + "cookies.consent.app.description.google-analytics": "Омогућава нам да пратимо ÑтатиÑтичке податке", + "cookies.consent.app.title.google-recaptcha": "Google reCaptcha", + "cookies.consent.app.description.google-recaptcha": "КориÑтимо Google reCAPTCHA уÑлугу током региÑтрације и опоравка лозинке", + "cookies.consent.purpose.functional": "Функционални", + "cookies.consent.purpose.statistical": "СтатиÑтички", + "cookies.consent.purpose.registration-password-recovery": "РегиÑтрација и опоравак лозинке", + "cookies.consent.purpose.sharing": "Дељење", + "curation-task.task.citationpage.label": "Генеришите Ñтраницу Ñа цитатима", + "curation-task.task.checklinks.label": "Проверите везе у метаподацима", + "curation-task.task.noop.label": "NOOP", + "curation-task.task.profileformats.label": "Профил БитÑтрим формати", + "curation-task.task.requiredmetadata.label": "Проверите потребне метаподатке", + "curation-task.task.translate.label": "МицроÑофт преводилац", + "curation-task.task.vscan.label": "Претрага вируÑа", + "curation-task.task.register-doi.label": "РегиÑтрујте DOI", + "curation.form.task-select.label": "Задатак:", + "curation.form.submit": "Почетак", + "curation.form.submit.success.head": "Задато курирање је уÑпешно покренуто", + "curation.form.submit.success.content": "Бићете преуÑмерени на одговарајућу Ñтраницу процеÑа.", + "curation.form.submit.error.head": "ÐеуÑпешно покретање задатог курирања", + "curation.form.submit.error.content": "Дошло је до грешке при покушају покретања задатог курирања.", + "curation.form.submit.error.invalid-handle": "Ðије могуће одредити handle за овај објекат", + "curation.form.handle.label": "Handle:", + "curation.form.handle.hint": "Савет: УнеÑите [your-handle-prefix]/0 да биÑте покренули задатак на целом Ñајту (ову могућноÑÑ‚ не подржавају Ñви задаци)", + "deny-request-copy.email.message": "Поштовани {{ recipientName }}, \н Као одговор на ваш захтев, Ñа жаљењем Ð²Ð°Ñ Ð¾Ð±Ð°Ð²ÐµÑˆÑ‚Ð°Ð²Ð°Ð¼ да није могуће поÑлати копију фајла коју Ñте тражили, у вези Ñа документом: \"{{ itemUrl }}\" ({{ itemName }}), чији Ñам аутор. \н Срдачан поздрав, \н{{ authorName }} <{{ authorEmail }}>", + "deny-request-copy.email.subject": "Затражите копију документа", + "deny-request-copy.error": "Дошло је до грешке", + "deny-request-copy.header": "Одбијен захтев за копирање документа", + "deny-request-copy.intro": "Ова порука биће поÑлата подноÑиоцу захтева", + "deny-request-copy.success": "Захтев за Ñтавку је одбијен уÑпешно", + "dso.name.untitled": "Без наÑлова", + "dso.name.unnamed": "Без имена", + "dso-selector.create.collection.head": "Ðова колекција", + "dso-selector.create.collection.sub-level": "Креирајте нову колекцију у", + "dso-selector.create.community.head": "Ðова заједница", + "dso-selector.create.community.or-divider": "или", + "dso-selector.create.community.sub-level": "Креирајте нову заједницу у", + "dso-selector.create.community.top-level": "Креирајте нову заједницу највишег нивоа", + "dso-selector.create.item.head": "Ðова Ñтавка", + "dso-selector.create.item.sub-level": "Креирајте нову Ñтавку у", + "dso-selector.create.submission.head": "Ðови поднеÑак", + "dso-selector.edit.collection.head": "Измените колекцију", + "dso-selector.edit.community.head": "Измените заједницу", + "dso-selector.edit.item.head": "Измените Ñтавку", + "dso-selector.error.title": "Дошло је до грешке при претрази {{ type }}", + "dso-selector.export-metadata.dspaceobject.head": "Извезите метаподатке из", + "dso-selector.export-batch.dspaceobject.head": "Извезите пакет (ZIP) из", + "dso-selector.import-batch.dspaceobject.head": "Увезите пакет из", + "dso-selector.no-results": "Ðије пронађен {{ type }}", + "dso-selector.placeholder": "Претражите {{ type }}", + "dso-selector.select.collection.head": "Изаберите колекцију", + "dso-selector.set-scope.community.head": "Изаберите опÑег претраге", + "dso-selector.set-scope.community.button": "Претражите читав репозиторијум", + "dso-selector.set-scope.community.or-divider": "или", + "dso-selector.set-scope.community.input-header": "Претражите заједницу или колекцију", + "dso-selector.claim.item.head": "Смернице за профил", + "dso-selector.claim.item.body": "Ово Ñу поÑтојећи профили који Ñе можда одноÑе на ВаÑ. Ðко Ñе препознате у једном од ових профила, изаберите га и на Ñтраници Ñа детаљима, међу опцијама, изаберите да га затражите. У Ñупротном, можете креирати нови профил од нуле кориÑтећи дугме иÑпод.", + "dso-selector.claim.item.not-mine-label": "Ðиједан од ових није мој", + "dso-selector.claim.item.create-from-scratch": "Креирајте нови", + "dso-selector.results-could-not-be-retrieved": "Ðешто није у реду, молимо оÑвежите поново ↻", + "supervision-group-selector.header": "Селектор групе за надзор", + "supervision-group-selector.select.type-of-order.label": "Изаберите тип налога", + "supervision-group-selector.select.type-of-order.option.none": "ÐИЈЕДÐÐ", + "supervision-group-selector.select.type-of-order.option.editor": "УРЕДÐИК", + "supervision-group-selector.select.type-of-order.option.observer": "ПОСМÐТРÐЧ", + "supervision-group-selector.select.group.label": "Изаберите групу", + "supervision-group-selector.button.cancel": "Отказати", + "supervision-group-selector.button.save": "Сачувати", + "supervision-group-selector.select.type-of-order.error": "Молимо изаберите тип налога", + "supervision-group-selector.select.group.error": "Молимо изаберите групу", + "supervision-group-selector.notification.create.success.title": "УÑпешно је креиран налог надзора за групу {{ name}}", + "supervision-group-selector.notification.create.failure.title": "Грешка", + "supervision-group-selector.notification.create.already-existing": "Већ поÑтоји налог за надзор за ову Ñтавку изабране групе", + "confirmation-modal.export-metadata.header": "Извоз метаподатака за {{ dsoName }}", + "confirmation-modal.export-metadata.info": "Да ли Ñте Ñигурни да желите да извезете метаподатке за {{ dsoName }}", + "confirmation-modal.export-metadata.cancel": "Отказати", + "confirmation-modal.export-metadata.confirm": "Извоз", + "confirmation-modal.export-batch.header": "Извезите пакет (ZIP) за {{ dsoName }}", + "confirmation-modal.export-batch.info": "Да ли Ñте Ñигурни да желите да извезете пакет (ZIP) за {{ dsoName }}", + "confirmation-modal.export-batch.cancel": "Отказати", + "confirmation-modal.export-batch.confirm": "Извоз", + "confirmation-modal.delete-eperson.header": "Избришите EPerson \"{{ dsoName }}\"", + "confirmation-modal.delete-eperson.info": "Да ли Ñте Ñигурни да желите да избришете EPerson \"{{ dsoName }}\"", + "confirmation-modal.delete-eperson.cancel": "Отказати", + "confirmation-modal.delete-eperson.confirm": "ИзбриÑати", + "confirmation-modal.delete-profile.header": "Избришите профил", + "confirmation-modal.delete-profile.info": "Да ли Ñте Ñигурни да желите да избришете Ñвој профил", + "confirmation-modal.delete-profile.cancel": "Отказати", + "confirmation-modal.delete-profile.confirm": "ИзбриÑати", + "confirmation-modal.delete-subscription.header": "Уклонити претплату", + "confirmation-modal.delete-subscription.info": "Да ли Ñте Ñигурни да желите да избришете претплату за \"{{ dsoName }}\"", + "confirmation-modal.delete-subscription.cancel": "Отказати", + "confirmation-modal.delete-subscription.confirm": "ИзбриÑати", + "error.bitstream": "Грешка при преузимању битÑтрим-а", + "error.browse-by": "Грешка при преузимању Ñтавки", + "error.collection": "Грешка при преузимању колекције", + "error.collections": "Грешка при преузимању колекција", + "error.community": "Грешка при преузимању заједнице", + "error.identifier": "Ðије пронађена ниједна Ñтавка за идентификатор", + "error.default": "Грешка", + "error.item": "Грешка при преузимању Ñтавке", + "error.items": "Грешка при преузимању Ñтавки", + "error.objects": "Грешка при преузимању објеката", + "error.recent-submissions": "Грешка при преузимању недавних поднеÑака", + "error.search-results": "Грешка при преузимању резултата претраге", + "error.invalid-search-query": "Упит за претрагу није иÑправан. Проверите најбоља решења за <a href=\"https://solr.apache.org/guide/query-syntax-and-parsing.HTML\" target=\"_blank\">Solr ÑинтакÑу упита</a> за додатне информације о овој грешци.", + "error.sub-collections": "Грешка при преузимању подколекција", + "error.sub-communities": "Грешка при преузимању подзаједница", + "error.submission.sections.init-form-error": "Дошло је до грешке током иницијализације одељка, молимо проверите конфигурацију обраÑца за уноÑ. Детаљи Ñу иÑпод: <br> <br>", + "error.top-level-communities": "Грешка при преузимању заједница највишег нивоа", + "error.validation.license.notgranted": "Морате доделити ову лиценцу да биÑте довршили Ñвој поднеÑак. Ðко у овом тренутку ниÑте у могућноÑти да доделите ову лиценцу, можете да Ñачувате Ñвој рад и вратите Ñе каÑније или уклоните поднеÑак.", + "error.validation.pattern": "Овај ÑƒÐ½Ð¾Ñ Ñ˜Ðµ ограничен тренутним обраÑцем: {{ pattern}}.", + "error.validation.filerequired": "Отпремање фајла је обавезно", + "error.validation.required": "Ово поље је обавезно", + "error.validation.NotValidEmail": "Овај Е-мејл није важећи Е-мејл", + "error.validation.emailTaken": "Ова Е-мејл адреÑа је већ заузета", + "error.validation.groupExists": "Ова група већ поÑтоји", + "error.validation.metadata.name.invalid-pattern": "Ово поље не може да Ñадржи тачке, зарезе или размаке. УмеÑто тога, кориÑтите поља Елемент и квалификатор", + "error.validation.metadata.name.max-length": "Ово поље не Ñме да Ñадржи више од 32 знака", + "error.validation.metadata.namespace.max-length": "Ово поље не Ñме да Ñадржи више од 256 знакова", + "error.validation.metadata.element.invalid-pattern": "Ово поље не може да Ñадржи тачке, зарезе или размаке. УмеÑто тога, кориÑтите поље Квалификатор", + "error.validation.metadata.element.max-length": "Ово поље не Ñме да Ñадржи више од 64 знака", + "error.validation.metadata.qualifier.invalid-pattern": "Ово поље не може да Ñадржи тачке, зарезе или размаке", + "error.validation.metadata.qualifier.max-length": "Ово поље не Ñме да Ñадржи више од 64 знака", + "feed.description": "Syndication feed", + "file-section.error.header": "Грешка при прибављању фајлова за ову Ñтавку", + "footer.copyright": "ауторÑка права © 2002-{{ year}}", + "footer.link.dspace": "DSpace Ñофтвер", + "footer.link.lyrasis": "LYRASIS", + "footer.link.cookies": "Подешавања колачића", + "footer.link.privacy-policy": "Правила о приватноÑти", + "footer.link.end-user-agreement": "Уговор Ñа крајњим кориÑником", + "footer.link.feedback": "Пошаљи повратне информације", + "forgot-email.form.header": "Заборавили Ñте лозинку", + "forgot-email.form.info": "УнеÑите Е-мејл адреÑу повезану Ñа налогом.", + "forgot-email.form.email": "Е-мејл адреÑа *", + "forgot-email.form.email.error.required": "УнеÑите Е-мејл адреÑу", + "forgot-email.form.email.error.not-email-form": "УнеÑите важећу Е-мејл адреÑу", + "forgot-email.form.email.hint": "Е-мејл Ñа даљим упутÑтвима биће поÑлат на ову адреÑу", + "forgot-email.form.submit": "РеÑетујте лозинку", + "forgot-email.form.success.head": "ПоÑлат је Е-мејл за реÑетовање лозинке", + "forgot-email.form.success.content": "Е-мејл који Ñадржи поÑебну URL адреÑу и даља упутÑтва биће поÑлат на {{ email }}", + "forgot-email.form.error.head": "Грешка при покушају реÑетовања лозинке", + "forgot-email.form.error.content": "Дошло је до грешке при покушају реÑетовања лозинке за налог повезан Ñа Ñледећом адреÑом е-поште: {{ email }}", + "forgot-password.title": "Заборавили Ñте лозинку", + "forgot-password.form.head": "Заборавили Ñте лозинку", + "forgot-password.form.info": "УнеÑите нову лозинку у поље иÑпод и потврдите је тако што ћете је поново укуцати у друго поље.", + "forgot-password.form.card.security": "БезбедноÑÑ‚", + "forgot-password.form.identification.header": "Идентификовати", + "forgot-password.form.identification.email": "Е-мејл адреÑа:", + "forgot-password.form.label.password": "Лозинка", + "forgot-password.form.label.passwordrepeat": "Поново откуцајте да биÑте потврдили", + "forgot-password.form.error.empty-password": "УнеÑите лозинку у поље иÑпод.", + "forgot-password.form.error.matching-passwords": "Лозинке Ñе не поклапају.", + "forgot-password.form.notification.error.title": "Грешка при покушају Ñлања нове лозинке", + "forgot-password.form.notification.success.content": "РеÑетовање лозинке је било уÑпешно. Пријављени Ñте као креирани кориÑник.", + "forgot-password.form.notification.success.title": "РеÑетовање лозинке је завршено", + "forgot-password.form.submit": "Пошаљи лозинку", + "form.add": "Додај још", + "form.add-help": "Кликните овде да додате тренутни ÑƒÐ½Ð¾Ñ Ð¸ да додате још један", + "form.cancel": "Поништити, отказати", + "form.clear": "ЈаÑно", + "form.clear-help": "Кликните овде да биÑте уклонили изабрану вредноÑÑ‚", + "form.discard": "Одбаците", + "form.drag": "Превуците", + "form.edit": "Уредите", + "form.edit-help": "Кликните овде да биÑте изменили изабрану вредноÑÑ‚", + "form.first-name": "Име", + "form.group-collapse": "Скупи", + "form.group-collapse-help": "Кликните овде за Ñкупљање", + "form.group-expand": "Проширити", + "form.group-expand-help": "Кликните овде да биÑте проширили и додали још елемената", + "form.last-name": "Презиме", + "form.loading": "Учитавање...", + "form.lookup": "Потражите", + "form.lookup-help": "Кликните овде да биÑте потражили поÑтојећу везу", + "form.no-results": "ÐиÑу пронађени резултати", + "form.no-value": "Ðије унета вредноÑÑ‚", + "form.other-information.email": "Е-мејл", + "form.other-information.first-name": "Име", + "form.other-information.insolr": "У Solr индекÑу", + "form.other-information.institution": "ИнÑтитуција", + "form.other-information.last-name": "Презиме", + "form.other-information.orcid": "ORCID", + "form.remove": "Уклоните", + "form.save": "Сачувајте", + "form.save-help": "Сачувајте измене", + "form.search": "Претрага", + "form.search-help": "Кликните овде да биÑте потражили поÑтојећу препиÑку", + "form.submit": "Сачувајте", + "form.create": "Креирајте", + "form.repeatable.sort.tip": "СпуÑтите Ñтавку на нову позицију", + "grant-deny-request-copy.deny": "Ðе шаљи копију", + "grant-deny-request-copy.email.back": "Ðазад", + "grant-deny-request-copy.email.message": "Опциона додатна порука", + "grant-deny-request-copy.email.message.empty": "УнеÑите поруку", + "grant-deny-request-copy.email.permissions.info": "Можете иÑкориÑтити ову прилику да поново размотрите ограничења приÑтупа документу, како биÑте избегли да одговорите на ове захтеве. Ðко желите да замолите админиÑтраторе Ñпремишта да уклоне ова ограничења, означите поље иÑпод.", + "grant-deny-request-copy.email.permissions.label": "Промените у отворени приÑтуп", + "grant-deny-request-copy.email.send": "Пошаљите", + "grant-deny-request-copy.email.subject": "Предмет", + "grant-deny-request-copy.email.subject.empty": "УнеÑите тему", + "grant-deny-request-copy.grant": "Пошаљите копију", + "grant-deny-request-copy.header": "Захтев за копију документа", + "grant-deny-request-copy.home-page": "Врати ме на почетну Ñтраницу", + "grant-deny-request-copy.intro1": "Ðко Ñте један од аутора документа <a href='{{ url }}'>{{ name }}</a>, онда кориÑтите једну од опција у наÑтавку да одговорите на захтев кориÑника.", + "grant-deny-request-copy.intro2": "Ðакон што одаберете опцију, биће вам предÑтављен предложени одговор е-маила који можете да измените.", + "grant-deny-request-copy.processed": "Овај захтев је већ обрађен. Можете кориÑтити дугме иÑпод да Ñе вратите на почетну Ñтраницу.", + "grant-request-copy.email.subject": "Затражите копију документа", + "grant-request-copy.error": "Дошло је до грешке", + "grant-request-copy.header": "Одобрите захтев за копију документа", + "grant-request-copy.intro": "ПодноÑиоцу захтева ће бити поÑлата порука. Тражени документ(и) ће бити приложен.", + "grant-request-copy.success": "Захтев за Ñтавку је уÑпешно одобрен", + "health.breadcrumbs": "Здравље", + "health-page.heading": "Здравље", + "health-page.info-tab": "Информације", + "health-page.status-tab": "СтатуÑ", + "health-page.error.msg": "УÑлуга провере здравља је привремено недоÑтупна", + "health-page.property.status": "СтатуÑни код", + "health-page.section.db.title": "База података", + "health-page.section.geoIp.title": "GeoIP", + "health-page.section.solrAuthorityCore.title": "Solr: authority core", + "health-page.section.solrOaiCore.title": "Solr: OAI core", + "health-page.section.solrSearchCore.title": "Solr: search core", + "health-page.section.solrStatisticsCore.title": "Solr: statistics core", + "health-page.section-info.app.title": "Backend апликације", + "health-page.section-info.java.title": "Java", + "health-page.status": "СтатуÑ", + "health-page.status.ok.info": "Оперативни", + "health-page.status.error.info": "Откривени Ñу проблеми", + "health-page.status.warning.info": "Откривени Ñу могући проблеми", + "health-page.title": "Здравље", + "health-page.section.no-issues": "ÐиÑу откривени проблеми", + "home.description": "", + "home.breadcrumbs": "Home", + "home.search-form.placeholder": "Претражите репозиторијум...", + "home.title": "Home", + "home.top-level-communities.head": "Заједнице у DSpace-у", + "home.top-level-communities.help": "Изаберите заједницу да биÑте прегледали њене колекције.", + "info.end-user-agreement.accept": "Прочитао Ñам и прихватам Уговором Ñа крајњим кориÑником", + "info.end-user-agreement.accept.error": "Дошло је до грешке при прихватању Уговора Ñа крајњим кориÑником", + "info.end-user-agreement.accept.success": "УÑпешно ажуриран Уговор Ñа крајњим кориÑником", + "info.end-user-agreement.breadcrumbs": "Уговор Ñа крајњим кориÑником", + "info.end-user-agreement.buttons.cancel": "Отказати", + "info.end-user-agreement.buttons.save": "Сачувати", + "info.end-user-agreement.head": "Уговор Ñа крајњим кориÑником", + "info.end-user-agreement.title": "Уговор Ñа крајњим кориÑником", + "info.end-user-agreement.hosting-country": "Сједињене Државе", + "info.privacy.breadcrumbs": "Изјава о заштити приватноÑти", + "info.privacy.head": "Изјава о заштити приватноÑти", + "info.privacy.title": "Изјава о заштити приватноÑти", + "info.feedback.breadcrumbs": "Повратна информација", + "info.feedback.head": "Повратна информација", + "info.feedback.title": "Повратна информација", + "info.feedback.info": "Хвала Вам што Ñте поделили повратне информације о DSpace ÑиÑтему. Ценимо Ваше коментаре!", + "info.feedback.email_help": "Ова адреÑа ће бити коришћена за праћење ваших повратних информација.", + "info.feedback.send": "Пошаљите повратне информације", + "info.feedback.comments": "Коментари", + "info.feedback.email-label": "Ваш Email", + "info.feedback.create.success": "Повратне информације Ñу уÑпешно поÑлате!", + "info.feedback.error.email.required": "Потребна је важећа Е-мејл адреÑа", + "info.feedback.error.message.required": "Коментар је обавезан", + "info.feedback.page-label": "Страна", + "info.feedback.page_help": "Страница је у вези Ñа Вашим повратним информацијама", + "item.alerts.private": "Ова Ñтавка Ñе не може открити", + "item.alerts.withdrawn": "Ова Ñтавка је повучена", + "item.edit.authorizations.heading": "Помоћу овог едитора можете да прегледате и мењате опције Ñтавке, као и да мењате опције појединачних компоненти Ñтавке: пакете и битÑтрим-ове. Укратко, Ñтавка је контејнер пакета, а пакети Ñу контејнери битÑтрим-ова. Контејнери обично имају опције ДОДÐÐ’ÐЊЕ/БРИСÐЊЕ/ЧИТÐЊЕ/ПИСÐЊЕ, док битÑтрим-ови имају Ñамо опције ЧИТÐЊЕ/ПИСÐЊЕ.", + "item.edit.authorizations.title": "Измените опције Ñтавке", + "item.badge.private": "Ðевидљив", + "item.badge.withdrawn": "Повучено", + "item.bitstreams.upload.bundle": "Пакет", + "item.bitstreams.upload.bundle.placeholder": "Изаберите пакет или унеÑите ново име пакета", + "item.bitstreams.upload.bundle.new": "Креирајте пакет", + "item.bitstreams.upload.bundles.empty": "Ова Ñтавка не Ñадржи пакете за отпремање битÑтрим-ова.", + "item.bitstreams.upload.cancel": "Отказати", + "item.bitstreams.upload.drop-message": "УнеÑите датотеку за отпремање", + "item.bitstreams.upload.item": "Ставка:", + "item.bitstreams.upload.notifications.bundle.created.content": "УÑпешно креиран нови пакет.", + "item.bitstreams.upload.notifications.bundle.created.title": "Креирани пакет", + "item.bitstreams.upload.notifications.upload.failed": "Отпремање неуÑпешно. Молимо Ð’Ð°Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚Ðµ Ñадржај пре поновног покушаја.", + "item.bitstreams.upload.title": "Отпремање битÑтрим-а", + "item.edit.bitstreams.bundle.edit.buttons.upload": "Отпремити", + "item.edit.bitstreams.bundle.displaying": "Тренутно Ñе приказује {{ amount }} битÑтрим-ова од {{ total }}.", + "item.edit.bitstreams.bundle.load.all": "Учитајте Ñве ({{ total }})", + "item.edit.bitstreams.bundle.load.more": "Учитајте још", + "item.edit.bitstreams.bundle.name": "ПÐКЕТ: {{ name }}", + "item.edit.bitstreams.discard-button": "Одбацити", + "item.edit.bitstreams.edit.buttons.download": "Преузимање", + "item.edit.bitstreams.edit.buttons.drag": "Превуците", + "item.edit.bitstreams.edit.buttons.edit": "Изменити", + "item.edit.bitstreams.edit.buttons.remove": "Уклонити", + "item.edit.bitstreams.edit.buttons.undo": "Поништити промене", + "item.edit.bitstreams.empty": "Ова Ñтавка не Ñадржи битÑтрим-ове. Кликните на дугме за отпремање да биÑте га креирали.", + "item.edit.bitstreams.headers.actions": "Радње", + "item.edit.bitstreams.headers.bundle": "Пакет", + "item.edit.bitstreams.headers.description": "ОпиÑ", + "item.edit.bitstreams.headers.format": "Формат", + "item.edit.bitstreams.headers.name": "Име", + "item.edit.bitstreams.notifications.discarded.content": "Ваше промене Ñу одбачене. Да биÑте поново поÑтавили Ñвоје промене, кликните на дугме \"Опозови\".", + "item.edit.bitstreams.notifications.discarded.title": "Промене Ñу одбачене", + "item.edit.bitstreams.notifications.move.failed.title": "Грешка при покретању битÑтрим-ова", + "item.edit.bitstreams.notifications.move.saved.content": "Промене које Ñте покренули у битÑтрим-овима и пакетима ове Ñтавке Ñу Ñачуване.", + "item.edit.bitstreams.notifications.move.saved.title": "Покренуте промене Ñу Ñачуване", + "item.edit.bitstreams.notifications.outdated.content": "Ставку на којој тренутно радите је променио други кориÑник. Ваше тренутне промене Ñе одбацују да би Ñе Ñпречили конфликти", + "item.edit.bitstreams.notifications.outdated.title": "ЗаÑтареле промене", + "item.edit.bitstreams.notifications.remove.failed.title": "Грешка при бриÑању битÑтрим-а", + "item.edit.bitstreams.notifications.remove.saved.content": "Ваше измене у вези Ñа уклањањем битÑтрим-ова ове Ñтавке Ñу Ñачуване.", + "item.edit.bitstreams.notifications.remove.saved.title": "Промене уклањања Ñу Ñачуване", + "item.edit.bitstreams.reinstate-button": "Поништити", + "item.edit.bitstreams.save-button": "Сачувати", + "item.edit.bitstreams.upload-button": "Отпремити", + "item.edit.delete.cancel": "Отказати", + "item.edit.delete.confirm": "ИзбриÑати", + "item.edit.delete.description": "Да ли Ñте Ñигурни да ову Ñтавку треба потпуно избриÑати? Опрез: Тренутно не би оÑтао ниједан обриÑани запиÑ.", + "item.edit.delete.error": "Дошло је до грешке приликом бриÑања Ñтавке", + "item.edit.delete.header": "Избришите Ñтавку: {{ id }}", + "item.edit.delete.success": "Ставка је избриÑана", + "item.edit.head": "Уредите Ñтавку", + "item.edit.breadcrumbs": "Уредите Ñтавку", + "item.edit.tabs.disabled.tooltip": "ÐиÑте овлашћени да приÑтупите овој картици", + "item.edit.tabs.mapper.head": "Мапирање колекције", + "item.edit.tabs.item-mapper.title": "Уређивање Ñтавке - мапирање колекције", + "item.edit.identifiers.doi.status.UNKNOWN": "Ðепознато", + "item.edit.identifiers.doi.status.TO_BE_REGISTERED": "Ðа чекању за региÑтрацију", + "item.edit.identifiers.doi.status.TO_BE_RESERVED": "Ðа чекању за резервацију", + "item.edit.identifiers.doi.status.IS_REGISTERED": "РегиÑтровано", + "item.edit.identifiers.doi.status.IS_RESERVED": "РезервиÑано", + "item.edit.identifiers.doi.status.UPDATE_RESERVED": "РезервиÑано (на чекању за ажурирање)", + "item.edit.identifiers.doi.status.UPDATE_REGISTERED": "РегиÑтровано (на чекању за ажурирање)", + "item.edit.identifiers.doi.status.UPDATE_BEFORE_REGISTRATION": "Ðа чекању за ажурирање и региÑтрацију", + "item.edit.identifiers.doi.status.TO_BE_DELETED": "Ðа чекању за бриÑање", + "item.edit.identifiers.doi.status.DELETED": "ИзбриÑано", + "item.edit.identifiers.doi.status.PENDING": "Ðа чекању (није региÑтровано)", + "item.edit.identifiers.doi.status.MINTED": "Минтед (није региÑтровано)", + "item.edit.tabs.status.buttons.register-doi.label": "РегиÑтрујте нови или DOI на чекању", + "item.edit.tabs.status.buttons.register-doi.button": "РегиÑтрујте DOI...", + "item.edit.register-doi.header": "РегиÑтрујте нови или DOI на чекању", + "item.edit.register-doi.description": "Прегледајте Ñве идентификаторе и Ñтавке метаподатака на чекању иÑпод и кликните на Потврди да биÑте наÑтавили Ñа DOI региÑтрацијом, или Откажи да биÑте Ñе повукли", + "item.edit.register-doi.confirm": "Потврдити", + "item.edit.register-doi.cancel": "Поништити, отказати", + "item.edit.register-doi.success": "DOI на чекању за региÑтрацију уÑпешно.", + "item.edit.register-doi.error": "Грешка при региÑтрацији DOI", + "item.edit.register-doi.to-update": "Следећи DOI је већ минтед и биће на чекању за региÑтрацију на мрежи", + "item.edit.item-mapper.buttons.add": "Мапирајте Ñтавку у изабране колекције", + "item.edit.item-mapper.buttons.remove": "Уклоните мапирање Ñтавке за изабране колекције", + "item.edit.item-mapper.cancel": "Поништити, отказати", + "item.edit.item-mapper.description": "Ово је алатка за мапирање Ñтавки која омогућава админиÑтраторима да мапирају ову Ñтавку у друге колекције. Можете претражити колекције и мапирати их или прегледати лиÑту колекција на које је Ñтавка тренутно мапирана.", + "item.edit.item-mapper.head": "Мапирање Ñтавке – мапирајте Ñтавку у колекције", + "item.edit.item-mapper.item": "Ставка: \"<b>{{name}}</b>\"", + "item.edit.item-mapper.no-search": "УнеÑите упит за претрагу", + "item.edit.item-mapper.notifications.add.error.content": "Дошло је до грешака при мапирању Ñтавке у {{amount}} колекције.", + "item.edit.item-mapper.notifications.add.error.head": "Грешке у мапирању", + "item.edit.item-mapper.notifications.add.success.content": "Ставка је уÑпешно мапирана у {{amount}} колекције.", + "item.edit.item-mapper.notifications.add.success.head": "Мапирање је завршено", + "item.edit.item-mapper.notifications.remove.error.content": "Дошло је до грешака при уклањању мапирања на {{amount}} колекције.", + "item.edit.item-mapper.notifications.remove.error.head": "Уклањање грешака у мапирању", + "item.edit.item-mapper.notifications.remove.success.content": "УÑпешно је уклоњено мапирање Ñтавке у {{amount}} колекције.", + "item.edit.item-mapper.notifications.remove.success.head": "Уклањање мапирања је завршено", + "item.edit.item-mapper.search-form.placeholder": "Претражи колекције...", + "item.edit.item-mapper.tabs.browse": "Прегледајте мапиране колекције", + "item.edit.item-mapper.tabs.map": "Мапирајте нове колекције", + "item.edit.metadata.add-button": "Додати", + "item.edit.metadata.discard-button": "Одбацити", + "item.edit.metadata.edit.buttons.confirm": "Потврдити", + "item.edit.metadata.edit.buttons.drag": "Превуците да биÑте променили редоÑлед", + "item.edit.metadata.edit.buttons.edit": "Уредити", + "item.edit.metadata.edit.buttons.remove": "Уклонити", + "item.edit.metadata.edit.buttons.undo": "Поништити промене", + "item.edit.metadata.edit.buttons.unedit": "ЗауÑтавити уређивање", + "item.edit.metadata.edit.buttons.virtual": "Ово је виртуелна вредноÑÑ‚ метаподатака, одноÑно вредноÑÑ‚ наÑлеђена од повезаног ентитета. Ðе може Ñе директно мењати. Додајте или уклоните одговарајући Ð¾Ð´Ð½Ð¾Ñ Ð½Ð° картици \"ОдноÑи\".", + "item.edit.metadata.empty": "Ставка тренутно не Ñадржи никакве метаподатке. Кликните на Додај да биÑте почели да додајете вредноÑÑ‚ метаподатака.", + "item.edit.metadata.headers.edit": "Уредити", + "item.edit.metadata.headers.field": "Поље", + "item.edit.metadata.headers.language": "Језик", + "item.edit.metadata.headers.value": "ВредноÑÑ‚", + "item.edit.metadata.metadatafield.error": "Дошло је до грешке при провери поља метаподатака", + "item.edit.metadata.metadatafield.invalid": "Изаберите важеће поље за метаподатке", + "item.edit.metadata.notifications.discarded.content": "Ваше промене Ñу одбачене. Да биÑте вратили Ñвоје промене, кликните на дугме \"Поништи\".", + "item.edit.metadata.notifications.discarded.title": "Промене Ñу одбачене", + "item.edit.metadata.notifications.error.title": "Дошло је до грешке", + "item.edit.metadata.notifications.invalid.content": "Ваше промене ниÑу Ñачуване. Уверите Ñе да Ñу Ñва поља важећа пре него што Ñачувате.", + "item.edit.metadata.notifications.invalid.title": "Метаподаци Ñу неважећи", + "item.edit.metadata.notifications.outdated.content": "Ставку на којој тренутно радите је променио други кориÑник. Ваше тренутне промене Ñе одбацују да би Ñе Ñпречили конфликти", + "item.edit.metadata.notifications.outdated.title": "Промене Ñу заÑтареле", + "item.edit.metadata.notifications.saved.content": "Ваше промене метаподатака ове Ñтавке Ñу Ñачуване.", + "item.edit.metadata.notifications.saved.title": "Метаподаци Ñу Ñачувани", + "item.edit.metadata.reinstate-button": "Поништити", + "item.edit.metadata.reset-order-button": "Поништите промену редоÑледа", + "item.edit.metadata.save-button": "Сачувати", + "item.edit.modify.overview.field": "Поље", + "item.edit.modify.overview.language": "Језик", + "item.edit.modify.overview.value": "ВредноÑÑ‚", + "item.edit.move.cancel": "Ðазад", + "item.edit.move.save-button": "Сачувати", + "item.edit.move.discard-button": "Одбацити", + "item.edit.move.description": "Изаберите колекцију у коју желите да премеÑтите ову Ñтавку. Да биÑте Ñузили лиÑту приказаних колекција, можете да унеÑете упит за претрагу у оквир.", + "item.edit.move.error": "Дошло је до грешке при покушају премештања Ñтавке", + "item.edit.move.head": "ПремеÑтите Ñтавку: {{id}}", + "item.edit.move.inheritpolicies.checkbox": "Смернице наÑлеђивања", + "item.edit.move.inheritpolicies.description": "ÐаÑледите подразумеване Ñмернице одредишне колекције", + "item.edit.move.move": "ПремеÑтите", + "item.edit.move.processing": "Премештање...", + "item.edit.move.search.placeholder": "УнеÑите упит за претрагу да биÑте потражили колекције", + "item.edit.move.success": "Ставка је уÑпешно премештена", + "item.edit.move.title": "ПремеÑтите Ñтавку", + "item.edit.private.cancel": "Поништити, отказати", + "item.edit.private.confirm": "Учините неприÑтупачним", + "item.edit.private.description": "Да ли Ñте Ñигурни да ова Ñтавка треба да буде неприÑтупачна у архиви?", + "item.edit.private.error": "Дошло је до грешке при поÑтављању неприÑтупачне Ñтавке", + "item.edit.private.header": "Учините Ñтавку неприÑтупачном: {{ id }}", + "item.edit.private.success": "Ставка је Ñада неприÑтупачна", + "item.edit.public.cancel": "Поништити, отказати", + "item.edit.public.confirm": "Учините приÑтупачним", + "item.edit.public.description": "Да ли Ñте Ñигурни да ова Ñтавка треба да буде приÑтупачна у архиви?", + "item.edit.public.error": "Дошло је до грешке при омогућавању видљивоÑти Ñтавке", + "item.edit.public.header": "Учините Ñтавку видљивом: {{ id }}", + "item.edit.public.success": "Ставка је Ñада видљива", + "item.edit.reinstate.cancel": "Отказати", + "item.edit.reinstate.confirm": "Обновити", + "item.edit.reinstate.description": "Да ли Ñте Ñигурни да ову Ñтавку треба вратити у архиву?", + "item.edit.reinstate.error": "Дошло је до грешке при враћању Ñтавке", + "item.edit.reinstate.header": "Вратите Ñтавку: {{ id }}", + "item.edit.reinstate.success": "Ставка је уÑпешно враћена", + "item.edit.relationships.discard-button": "Одбацити", + "item.edit.relationships.edit.buttons.add": "Додати", + "item.edit.relationships.edit.buttons.remove": "Уклонити", + "item.edit.relationships.edit.buttons.undo": "Поништити промене", + "item.edit.relationships.no-relationships": "Ðема релација", + "item.edit.relationships.notifications.discarded.content": "Ваше промене Ñу одбачене. Да биÑте вратили Ñвоје промене, кликните на дугме \"Поништити\".", + "item.edit.relationships.notifications.discarded.title": "Промене Ñу одбачене", + "item.edit.relationships.notifications.failed.title": "Грешка при измени релација", + "item.edit.relationships.notifications.outdated.content": "Ставку на којој тренутно радите је променио други кориÑник. Ваше тренутне промене Ñу одбачене да би Ñе Ñпречили конфликти", + "item.edit.relationships.notifications.outdated.title": "ЗаÑтареле промене", + "item.edit.relationships.notifications.saved.content": "Ваше промене у релацијама ове Ñтавке Ñу Ñачуване.", + "item.edit.relationships.notifications.saved.title": "Релације Ñу Ñачуване", + "item.edit.relationships.reinstate-button": "Поништи", + "item.edit.relationships.save-button": "Сачувати", + "item.edit.relationships.no-entity-type": "Додајте метаподатке \"DSpace.entity.type\" да биÑте омогућили релације за ову Ñтавку", + "item.edit.return": "Ðазад", + "item.edit.tabs.bitstreams.head": "битÑтрим-ови", + "item.edit.tabs.bitstreams.title": "Измена Ñтавке - битÑтрим-ови", + "item.edit.tabs.curate.head": "Курирање", + "item.edit.tabs.curate.title": "Измена Ñтавке - Курирање", + "item.edit.curate.title": "Курирање Ñтавке: {{item}}", + "item.edit.tabs.access-control.head": "Контрола приÑтупа", + "item.edit.tabs.access-control.title": "Измена Ñтавке - Контрола приÑтупа", + "item.edit.tabs.metadata.head": "Метаподаци", + "item.edit.tabs.metadata.title": "Измена Ñтавке – Метаподаци", + "item.edit.tabs.relationships.head": "Релације", + "item.edit.tabs.relationships.title": "Измена Ñтавке - Релације", + "item.edit.tabs.status.buttons.authorizations.button": "Овлашћења...", + "item.edit.tabs.status.buttons.authorizations.label": "Измените Ñмернице овлашћења Ñтавке", + "item.edit.tabs.status.buttons.delete.button": "Трајно избриÑати", + "item.edit.tabs.status.buttons.delete.label": "Потпуно избриÑати Ñтавку", + "item.edit.tabs.status.buttons.mappedCollections.button": "Мапиране колекције", + "item.edit.tabs.status.buttons.mappedCollections.label": "Управљајте мапираним колекцијама", + "item.edit.tabs.status.buttons.move.button": "ПремеÑти ову Ñтавку у другу колекцију", + "item.edit.tabs.status.buttons.move.label": "ПремеÑти Ñтавку у другу колекцију", + "item.edit.tabs.status.buttons.private.button": "ПоÑтавите да буде невидљиво...", + "item.edit.tabs.status.buttons.private.label": "ПоÑтавите Ñтавку да буде невидљива", + "item.edit.tabs.status.buttons.public.button": "ПоÑтавите да буде видљиво...", + "item.edit.tabs.status.buttons.public.label": "ПоÑтавите Ñтавку да буде видљива", + "item.edit.tabs.status.buttons.reinstate.button": "Поново поÑтавите...", + "item.edit.tabs.status.buttons.reinstate.label": "Вратите Ñтавку у репозиторијум", + "item.edit.tabs.status.buttons.unauthorized": "ÐиÑте овлашћени да извршите ову радњу", + "item.edit.tabs.status.buttons.withdraw.button": "Повуците ову Ñтавку", + "item.edit.tabs.status.buttons.withdraw.label": "Повуците Ñтавку из репозиторијума", + "item.edit.tabs.status.description": "Добродошли на Ñтраницу за управљање Ñтавкама. Одавде можете повући, вратити, премеÑтити или избриÑати Ñтавку. Такође можете ажурирати или додати нове метаподатке / битÑтрим-ове на другим картицама.", + "item.edit.tabs.status.head": "СтатуÑ", + "item.edit.tabs.status.labels.handle": "Handle", + "item.edit.tabs.status.labels.id": "Интерни ID Ñтавке", + "item.edit.tabs.status.labels.itemPage": "Страница Ñтавке", + "item.edit.tabs.status.labels.lastModified": "ПоÑледња измена", + "item.edit.tabs.status.title": "Измена Ñтавке - СтатуÑ", + "item.edit.tabs.versionhistory.head": "ИÑторија верзија", + "item.edit.tabs.versionhistory.title": "Измена Ñтавке - ИÑторија верзија", + "item.edit.tabs.versionhistory.under-construction": "Измена или додавање нових верзија још увек није могуће у овом кориÑничком интерфејÑу.", + "item.edit.tabs.view.head": "Прикажи Ñтавку", + "item.edit.tabs.view.title": "Измени Ñтавку - Прикажи", + "item.edit.withdraw.cancel": "Отказати", + "item.edit.withdraw.confirm": "Повуците", + "item.edit.withdraw.description": "Да ли Ñте Ñигурни да ову Ñтавку треба повући из архиве?", + "item.edit.withdraw.error": "Дошло је до грешке при повлачењу Ñтавке", + "item.edit.withdraw.header": "Повуците Ñтавку: {{ id }}", + "item.edit.withdraw.success": "Ставка је уÑпешно повучена", + "item.orcid.return": "Ðазад", + "item.listelement.badge": "Ставка", + "item.page.description": "ОпиÑ", + "item.page.journal-issn": "ISSN чаÑопиÑа", + "item.page.journal-title": "ÐаÑлов чаÑопиÑа", + "item.page.publisher": "Издавач", + "item.page.titleprefix": "Ставка:", + "item.page.volume-title": "ÐаÑлов ÑвеÑке", + "item.search.results.head": "Резултати претраге Ñтавки", + "item.search.title": "Претрага Ñтавке", + "item.truncatable-part.show-more": "Прикажите још", + "item.truncatable-part.show-less": "Скупити", + "workflow-item.search.result.delete-supervision.modal.header": "Избришите налог за надзор", + "workflow-item.search.result.delete-supervision.modal.info": "Да ли Ñте Ñигурни да желите да избришете налог за надзор", + "workflow-item.search.result.delete-supervision.modal.cancel": "Отказати", + "workflow-item.search.result.delete-supervision.modal.confirm": "ИзбриÑати", + "workflow-item.search.result.notification.deleted.success": "УÑпешно је избриÑан налог за надзор \"{{name}}\"", + "workflow-item.search.result.notification.deleted.failure": "ÐеуÑпешно бриÑање налога за надзор \"{{name}}\"", + "workflow-item.search.result.list.element.supervised-by": "Прегледао:", + "workflow-item.search.result.list.element.supervised.remove-tooltip": "Уклонити групу за надзор", + "item.page.abstract": "Сажетак", + "item.page.author": "Ðутори", + "item.page.citation": "Цитат", + "item.page.collections": "Колекције", + "item.page.collections.loading": "Учитавање...", + "item.page.collections.load-more": "Учитајте још", + "item.page.date": "Датум", + "item.page.edit": "Измените ову Ñтавку", + "item.page.files": "Фајлови", + "item.page.filesection.description": "ОпиÑ:", + "item.page.filesection.download": "Преузимање", + "item.page.filesection.format": "Формат:", + "item.page.filesection.name": "име:", + "item.page.filesection.size": "Величина:", + "item.page.journal.search.title": "Чланци у овом чаÑопиÑу", + "item.page.link.full": "Пун Ð·Ð°Ð¿Ð¸Ñ Ñтавке", + "item.page.link.simple": "ЈедноÑтаван Ð·Ð°Ð¿Ð¸Ñ Ñтавке", + "item.page.orcid.title": "ORCID", + "item.page.orcid.tooltip": "Отворите Ñтраницу за подешавање ORCID-а", + "item.page.person.search.title": "Чланци овог аутора", + "item.page.related-items.view-more": "Прикажи још {{ amount }}", + "item.page.related-items.view-less": "Сакриј поÑледњи {{ amount }}", + "item.page.relationships.isAuthorOfPublication": "Публикације", + "item.page.relationships.isJournalOfPublication": "Публикације", + "item.page.relationships.isOrgUnitOfPerson": "Ðутори", + "item.page.relationships.isOrgUnitOfProject": "ИÑтраживачки пројекти", + "item.page.subject": "Кључне речи", + "item.page.uri": "URI", + "item.page.bitstreams.view-more": "Прикажи више", + "item.page.bitstreams.collapse": "Скупити", + "item.page.filesection.original.bundle": "Оригинални пакет", + "item.page.filesection.license.bundle": "Лиценцни пакет", + "item.page.return": "Ðазад", + "item.page.version.create": "Креирајте нову верзију", + "item.page.version.hasDraft": "Ðова верзија Ñе не може креирати зато што је у току подношење", + "item.page.claim.button": "Потврда", + "item.page.claim.tooltip": "Потврди ову Ñтавку као профил", + "item.preview.dc.identifier.uri": "Идентификатор:", + "item.preview.dc.contributor.author": "Ðутори:", + "item.preview.dc.date.issued": "Датум објављивања:", + "item.preview.dc.description.abstract": "Сажетак:", + "item.preview.dc.identifier.other": "Други идентификатор:", + "item.preview.dc.language.iso": "Језик:", + "item.preview.dc.subject": "Предмети:", + "item.preview.dc.title": "ÐаÑлов:", + "item.preview.dc.type": "Тип:", + "item.preview.oaire.citation.issue": "Издање", + "item.preview.oaire.citation.volume": "ОпÑег", + "item.preview.dc.relation.issn": "ISSN", + "item.preview.dc.identifier.isbn": "ISBN", + "item.preview.dc.identifier": "Идентификатор:", + "item.preview.dc.relation.ispartof": "ЧаÑÐ¾Ð¿Ð¸Ñ Ð¸Ð»Ð¸ Ñерија", + "item.preview.dc.identifier.doi": "DOI", + "item.preview.dc.publisher": "Издавач:", + "item.preview.person.familyName": "презиме:", + "item.preview.person.givenName": "Име:", + "item.preview.person.identifier.orcid": "ORCID:", + "item.preview.project.funder.name": "ФинанÑијер:", + "item.preview.project.funder.identifier": "Идентификатор финанÑијера:", + "item.preview.oaire.awardNumber": "ID финанÑирања:", + "item.preview.dc.title.alternative": "Ðкроним:", + "item.preview.dc.coverage.spatial": "ЈуриÑдикција:", + "item.preview.oaire.fundingStream": "Ток финанÑирања:", + "item.select.confirm": "Потврдите изабрано", + "item.select.empty": "Ðема Ñтавки за приказ", + "item.select.table.author": "Ðутор", + "item.select.table.collection": "Колекција", + "item.select.table.title": "ÐаÑлов", + "item.version.history.empty": "Још увек нема других верзија за ову Ñтавку.", + "item.version.history.head": "ИÑторија верзија", + "item.version.history.return": "Ðазад", + "item.version.history.selected": "Изабрана верзија", + "item.version.history.selected.alert": "Тренутно гледате верзију {{version}} Ñтавке.", + "item.version.history.table.version": "Верзија", + "item.version.history.table.item": "Ставка", + "item.version.history.table.editor": "Уредник", + "item.version.history.table.date": "Датум", + "item.version.history.table.summary": "Резиме", + "item.version.history.table.workspaceItem": "Ставка радног проÑтора", + "item.version.history.table.workflowItem": "Ставка процеÑа рада", + "item.version.history.table.actions": "ПоÑтупак", + "item.version.history.table.action.editWorkspaceItem": "Уредите Ñтавку радног проÑтора", + "item.version.history.table.action.editSummary": "Уредите резиме", + "item.version.history.table.action.saveSummary": "Сачувајте измене резимеа", + "item.version.history.table.action.discardSummary": "Одбаците измене резимеа", + "item.version.history.table.action.newVersion": "Креирајте нову верзију од овог", + "item.version.history.table.action.deleteVersion": "Избришите верзију", + "item.version.history.table.action.hasDraft": "Ðова верзија Ñе не може креирати зато што је у току прихват у иÑторији верзија", + "item.version.notice": "Ово није најновија верзија ове Ñтавке. Ðајновију верзију можете пронаћи <a href='{{destination}}'>овде</a>.", + "item.version.create.modal.header": "Ðова верзија", + "item.version.create.modal.text": "Ðаправите нову верзију за ову Ñтавку", + "item.version.create.modal.text.startingFrom": "почевши од верзије {{version}}", + "item.version.create.modal.button.confirm": "Креирајте", + "item.version.create.modal.button.confirm.tooltip": "Креирајте нову верзију", + "item.version.create.modal.button.cancel": "Поништити, отказати", + "item.version.create.modal.button.cancel.tooltip": "Ðе креирајте нову верзију", + "item.version.create.modal.form.summary.label": "Резиме", + "item.version.create.modal.form.summary.placeholder": "Убаците резиме за нову верзију", + "item.version.create.modal.submitted.header": "Креирање нове верзије...", + "item.version.create.modal.submitted.text": "Ðова верзија је у изради. Ово може потрајати неко време ако Ñтавка има много веза.", + "item.version.create.notification.success": "Ðова верзија је направљена Ñа бројем верзије {{version}}", + "item.version.create.notification.failure": "Ðова верзија није креирана", + "item.version.create.notification.inProgress": "Ðова верзија Ñе не може креирати зато што је у току прихват у иÑторији верзија", + "item.version.delete.modal.header": "Избришите верзију", + "item.version.delete.modal.text": "Да ли желите да избришете верзију {{version}}?", + "item.version.delete.modal.button.confirm": "Избришите", + "item.version.delete.modal.button.confirm.tooltip": "Избришите ову верзију", + "item.version.delete.modal.button.cancel": "Поништити, отказати", + "item.version.delete.modal.button.cancel.tooltip": "Ðемојте бриÑати ову верзију", + "item.version.delete.notification.success": "Верзија број {{version}} је избриÑана", + "item.version.delete.notification.failure": "Верзија број {{version}} није избриÑана", + "item.version.edit.notification.success": "Сажетак верзије број {{version}} је промењен", + "item.version.edit.notification.failure": "Сажетак верзије број {{version}} није промењен", + "itemtemplate.edit.metadata.add-button": "Додати", + "itemtemplate.edit.metadata.discard-button": "Одбацити", + "itemtemplate.edit.metadata.edit.buttons.confirm": "Потврдити", + "itemtemplate.edit.metadata.edit.buttons.drag": "Превуците да биÑте променили редоÑлед", + "itemtemplate.edit.metadata.edit.buttons.edit": "Изменити", + "itemtemplate.edit.metadata.edit.buttons.remove": "Уклонити", + "itemtemplate.edit.metadata.edit.buttons.undo": "Поништити промене", + "itemtemplate.edit.metadata.edit.buttons.unedit": "ЗауÑтавите измене", + "itemtemplate.edit.metadata.empty": "Шаблон Ñтавке тренутно не Ñадржи никакве метаподатке. Кликните на Додај да биÑте започели додавање вредноÑти метаподатака.", + "itemtemplate.edit.metadata.headers.edit": "Изменити", + "itemtemplate.edit.metadata.headers.field": "Поље", + "itemtemplate.edit.metadata.headers.language": "Језик", + "itemtemplate.edit.metadata.headers.value": "ВредноÑÑ‚", + "itemtemplate.edit.metadata.metadatafield.error": "Дошло је до грешке приликом провере поља метаподатака", + "itemtemplate.edit.metadata.metadatafield.invalid": "Молимо изаберите важеће поље метаподатака", + "itemtemplate.edit.metadata.notifications.discarded.content": "Ваше промене Ñу одбачене. Да биÑте вратили Ñвоје промене, кликните на дугме \"Поништи\".", + "itemtemplate.edit.metadata.notifications.discarded.title": "Промене Ñу одбачене", + "itemtemplate.edit.metadata.notifications.error.title": "Дошло је до грешке", + "itemtemplate.edit.metadata.notifications.invalid.content": "Ваше промене ниÑу Ñачуване. Молимо проверите да ли Ñу Ñва поља иÑправна пре него што Ñачувате.", + "itemtemplate.edit.metadata.notifications.invalid.title": "Метаподаци Ñу неважећи", + "itemtemplate.edit.metadata.notifications.outdated.content": "Други кориÑник је променио шаблон Ñтавке на коме тренутно радите. Ваше тренутне промене Ñе одбацују да би Ñе Ñпречили конфликти", + "itemtemplate.edit.metadata.notifications.outdated.title": "Промене Ñу заÑтареле", + "itemtemplate.edit.metadata.notifications.saved.content": "Ваше промене метаподатака овог шаблона Ñтавке Ñу Ñачуване.", + "itemtemplate.edit.metadata.notifications.saved.title": "Метаподаци Ñу Ñачувани", + "itemtemplate.edit.metadata.reinstate-button": "Поништити", + "itemtemplate.edit.metadata.reset-order-button": "Поништити промену редоÑледа", + "itemtemplate.edit.metadata.save-button": "Сачувати", + "journal.listelement.badge": "ЧаÑопиÑ", + "journal.page.description": "ОпиÑ", + "journal.page.edit": "Уредите ову Ñтавку", + "journal.page.editor": "Главни уредник", + "journal.page.issn": "ISSN", + "journal.page.publisher": "Издавач", + "journal.page.titleprefix": "ЧаÑопиÑ:", + "journal.search.results.head": "Резултати претраге чаÑопиÑа", + "journal-relationships.search.results.head": "Резултати претраге чаÑопиÑа", + "journal.search.title": "Претрага чаÑопиÑа", + "journalissue.listelement.badge": "Издање чаÑопиÑа", + "journalissue.page.description": "ОпиÑ", + "journalissue.page.edit": "Измените ову Ñтавку", + "journalissue.page.issuedate": "Датум издања", + "journalissue.page.journal-issn": "ЧаÑÐ¾Ð¿Ð¸Ñ ISSN", + "journalissue.page.journal-title": "ÐаÑлов чаÑопиÑа", + "journalissue.page.keyword": "Кључне речи", + "journalissue.page.number": "Број", + "journalissue.page.titleprefix": "Издање чаÑопиÑа:", + "journalvolume.listelement.badge": "СвеÑка чаÑопиÑа", + "journalvolume.page.description": "ОпиÑ", + "journalvolume.page.edit": "Измените ову Ñтавку", + "journalvolume.page.issuedate": "Датум издања", + "journalvolume.page.titleprefix": "СвеÑка чаÑопиÑа:", + "journalvolume.page.volume": "СвеÑка", + "iiifsearchable.listelement.badge": "СпиÑак медија", + "iiifsearchable.page.titleprefix": "Документ:", + "iiifsearchable.page.doi": "Трајна веза:", + "iiifsearchable.page.issue": "Издање:", + "iiifsearchable.page.description": "ОпиÑ:", + "iiifviewer.fullscreen.notice": "КориÑтите цео екран да боље видите.", + "iiif.listelement.badge": "Имаге Медиа", + "iiif.page.titleprefix": "Слика:", + "iiif.page.doi": "Трајна веза:", + "iiif.page.issue": "Издање:", + "iiif.page.description": "ОпиÑ:", + "loading.bitstream": "Учитавање битÑтрим-а...", + "loading.bitstreams": "Учитавање битÑтрим-ова...", + "loading.browse-by": "Учитавање Ñтавки...", + "loading.browse-by-page": "Учитавање Ñтранице...", + "loading.collection": "Учитавање колекције...", + "loading.collections": "Учитавање колекција...", + "loading.content-source": "Учитавање извора Ñадржаја...", + "loading.community": "Учитавање заједнице...", + "loading.default": "Учитавање...", + "loading.item": "Учитавање Ñтавке...", + "loading.items": "Учитавање Ñтавки...", + "loading.mydspace-results": "Учитавање Ñтавки...", + "loading.objects": "Учитавање...", + "loading.recent-submissions": "Учитавање недавних поднеÑака...", + "loading.search-results": "Учитавање резултата претраге...", + "loading.sub-collections": "Учитавање потколекција...", + "loading.sub-communities": "Учитавање подзаједница...", + "loading.top-level-communities": "Учитавање заједница највишег нивоа...", + "login.form.email": "Емаил адреÑа", + "login.form.forgot-password": "Заборавили Ñте лозинку?", + "login.form.header": "Молимо пријавите Ñе на DSpace", + "login.form.new-user": "Ðови кориÑник? Кликните овде да Ñе региÑтрујете.", + "login.form.or-divider": "или", + "login.form.oidc": "Пријавите Ñе Ñа OIDC", + "login.form.orcid": "Пријавите Ñе Ñа ORCID-ом", + "login.form.password": "Лозинка", + "login.form.shibboleth": "Пријавите Ñе Ñа Shibboleth", + "login.form.submit": "Пријавите Ñе", + "login.title": "Пријавите Ñе", + "login.breadcrumbs": "Пријавите Ñе", + "logout.form.header": "Одјавите Ñе Ñа DSpace-а", + "logout.form.submit": "Одјавите Ñе", + "logout.title": "Одјавите Ñе", + "menu.header.admin": "Менаџмент", + "menu.header.image.logo": "Лого репозиторијума", + "menu.header.admin.description": "Менаџмент мени", + "menu.section.access_control": "Контрола приÑтупа", + "menu.section.access_control_authorizations": "Овлашћења", + "menu.section.access_control_bulk": "Управљање маÑовним приÑтупом", + "menu.section.access_control_groups": "Групе", + "menu.section.access_control_people": "Људи", + "menu.section.admin_search": "Ðдмин претрага", + "menu.section.browse_community": "Ова заједница", + "menu.section.browse_community_by_author": "По аутору", + "menu.section.browse_community_by_issue_date": "По датуму издања", + "menu.section.browse_community_by_title": "По наÑлову", + "menu.section.browse_global": "Читав репозиторијум", + "menu.section.browse_global_by_author": "По аутору", + "menu.section.browse_global_by_dateissued": "По датуму издања", + "menu.section.browse_global_by_subject": "По предмету", + "menu.section.browse_global_by_srsc": "По категорији предмета", + "menu.section.browse_global_by_title": "По наÑлову", + "menu.section.browse_global_communities_and_collections": "Заједнице и колекције", + "menu.section.control_panel": "Контролна табла", + "menu.section.curation_task": "Куративни задатак", + "menu.section.edit": "Уредити", + "menu.section.edit_collection": "Колекција", + "menu.section.edit_community": "Заједница", + "menu.section.edit_item": "Ставка", + "menu.section.export": "Извоз", + "menu.section.export_collection": "Колекција", + "menu.section.export_community": "Заједница", + "menu.section.export_item": "Ставка", + "menu.section.export_metadata": "Метаподаци", + "menu.section.export_batch": "Групни извоз (ZIP)", + "menu.section.icon.access_control": "Одељак менија Контрола приÑтупа", + "menu.section.icon.admin_search": "Одељак менија за админ претрагу", + "menu.section.icon.control_panel": "Одељак менија контролне табле", + "menu.section.icon.curation_tasks": "Одељак менија Задатак курирања", + "menu.section.icon.edit": "Уредите одељак менија", + "menu.section.icon.export": "Извезите одељак менија", + "menu.section.icon.find": "Пронађите одељак менија", + "menu.section.icon.health": "Одељак менија за здравÑтвену проверу", + "menu.section.icon.import": "Увезите одељак менија", + "menu.section.icon.new": "Ðови одељак менија", + "menu.section.icon.pin": "Закачите бочну траку", + "menu.section.icon.processes": "ПроцеÑи провере здравља", + "menu.section.icon.registries": "Одељак менија РегиÑтри", + "menu.section.icon.statistics_task": "Одељак менија СтатиÑтички задатак", + "menu.section.icon.workflow": "Одељак менија ÐдминиÑтрација процеÑа рада", + "menu.section.icon.unpin": "Откачите бочну траку", + "menu.section.import": "Увоз", + "menu.section.import_batch": "Групни увоз (ZIP)", + "menu.section.import_metadata": "Метаподаци", + "menu.section.new": "Ðово", + "menu.section.new_collection": "Колекција", + "menu.section.new_community": "Заједница", + "menu.section.new_item": "Ставка", + "menu.section.new_item_version": "Верзија Ñтавке", + "menu.section.new_process": "ПроцеÑ", + "menu.section.pin": "Закачите бочну траку", + "menu.section.unpin": "Откачите бочну траку", + "menu.section.processes": "ПроцеÑи", + "menu.section.health": "Здравље", + "menu.section.registries": "РегиÑтри", + "menu.section.registries_format": "Формат", + "menu.section.registries_metadata": "Метаподаци", + "menu.section.statistics": "СтатиÑтика", + "menu.section.statistics_task": "СтатиÑтички задатак", + "menu.section.toggle.access_control": "Укључите одељак Контрола приÑтупа", + "menu.section.toggle.control_panel": "Укључите одељак Контролна табла", + "menu.section.toggle.curation_task": "Укључи/иÑкључи одељак Задатак курирања", + "menu.section.toggle.edit": "Укључите одељак Уреди", + "menu.section.toggle.export": "Укључите одељак Извези", + "menu.section.toggle.find": "Укључи одељак Пронађи", + "menu.section.toggle.import": "Укључите одељак Увези", + "menu.section.toggle.new": "Укључите нови одељак", + "menu.section.toggle.registries": "Укључите одељак РегиÑтри", + "menu.section.toggle.statistics_task": "Укључи/иÑкључи одељак ÑтатиÑтички задатак", + "menu.section.workflow": "ÐдминиÑтрација процеÑа рада", + "metadata-export-search.tooltip": "Извезите резултате претраге као CSV", + "metadata-export-search.submit.success": "Извоз је уÑпешно започет", + "metadata-export-search.submit.error": "Покретање извоза није уÑпело", + "mydspace.breadcrumbs": "Мој DSpace", + "mydspace.description": "", + "mydspace.messages.controller-help": "Изаберите ову опцију да биÑте поÑлали поруку подноÑиоцу Ñтавке.", + "mydspace.messages.description-placeholder": "УнеÑите Ñвоју поруку овде...", + "mydspace.messages.hide-msg": "Сакријте поруку", + "mydspace.messages.mark-as-read": "Означите као прочитано", + "mydspace.messages.mark-as-unread": "Означите као непрочитану", + "mydspace.messages.no-content": "Без Ñадржаја.", + "mydspace.messages.no-messages": "Још нема порука.", + "mydspace.messages.send-btn": "Пошаљи", + "mydspace.messages.show-msg": "Прикажи поруку", + "mydspace.messages.subject-placeholder": "Предмет...", + "mydspace.messages.submitter-help": "Изаберите ову опцију да биÑте поÑлали поруку контролору.", + "mydspace.messages.title": "Поруке", + "mydspace.messages.to": "До", + "mydspace.new-submission": "Ðови поднеÑак", + "mydspace.new-submission-external": "Увезите метаподатке из Ñпољног извора", + "mydspace.new-submission-external-short": "Увезите метаподатке", + "mydspace.results.head": "Ваши поднеÑци", + "mydspace.results.no-abstract": "Ðема Ñажетка", + "mydspace.results.no-authors": "Ðема аутора", + "mydspace.results.no-collections": "Ðема колекција", + "mydspace.results.no-date": "Ðема датума", + "mydspace.results.no-files": "Ðема фајлова", + "mydspace.results.no-results": "Ðема Ñтавки за приказ", + "mydspace.results.no-title": "Без наÑлова", + "mydspace.results.no-uri": "Ðема URI", + "mydspace.search-form.placeholder": "Претрага у MyDSpace...", + "mydspace.show.workflow": "Радни задаци", + "mydspace.show.workspace": "Ваши поднеÑци", + "mydspace.show.supervisedWorkspace": "Ðадзиране Ñтавке", + "mydspace.status.mydspaceArchived": "Ðрхивирано", + "mydspace.status.mydspaceValidation": "Валидација", + "mydspace.status.mydspaceWaitingController": "Чека Ñе контролер", + "mydspace.status.mydspaceWorkflow": "Радни процеÑ", + "mydspace.status.mydspaceWorkspace": "Радни проÑтор", + "mydspace.title": "MyDSpace", + "mydspace.upload.upload-failed": "Грешка при креирању новог радног проÑтора. Молимо проверите отпремљени Ñадржај пре него што покушате поново.", + "mydspace.upload.upload-failed-manyentries": "Ðеобрађен фајл. Откривено је превише уноÑа, али је дозвољен Ñамо за један фајл.", + "mydspace.upload.upload-failed-moreonefile": "Ðеобрађен захтев. Дозвољен је Ñамо један фајл.", + "mydspace.upload.upload-multiple-successful": "{{qty}} нових Ñтавки радног проÑтора је креирано.", + "mydspace.view-btn": "Поглед", + "nav.browse.header": "Читав репозиторијум", + "nav.community-browse.header": "Од заједнице", + "nav.context-help-toggle": "Укључите додатну помоћ", + "nav.language": "Промена језика", + "nav.login": "Пријави Ñе", + "nav.user-profile-menu-and-logout": "Мени кориÑничког профила и одјава", + "nav.logout": "Одјавити Ñе", + "nav.main.description": "Главна навигациона трака", + "nav.mydspace": "MyDSpace", + "nav.profile": "Профил", + "nav.search": "Претрага", + "nav.search.button": "Пошаљите претрагу", + "nav.statistics.header": "СтатиÑтика", + "nav.stop-impersonating": "ПреÑтаните да Ñе предÑтављате као EPerson", + "nav.subscriptions": "Претплате", + "nav.toggle": "Укључивање навигације", + "nav.user.description": "Трака кориÑничког профила", + "none.listelement.badge": "Ставка", + "orgunit.listelement.badge": "Организациона јединица", + "orgunit.listelement.no-title": "Без наÑлова", + "orgunit.page.city": "Град", + "orgunit.page.country": "Држава", + "orgunit.page.dateestablished": "Датум поÑтављања", + "orgunit.page.description": "ОпиÑ", + "orgunit.page.edit": "Изменити ову Ñтавку", + "orgunit.page.id": "ID", + "orgunit.page.titleprefix": "Организациона јединица:", + "pagination.options.description": "Опције Ñтраничења", + "pagination.results-per-page": "Резултати по Ñтраници", + "pagination.showing.detail": "{{ range }} од {{ total }}", + "pagination.showing.label": "Приказује Ñе ", + "pagination.sort-direction": "Опције Ñортирања", + "person.listelement.badge": "ОÑоба", + "person.listelement.no-title": "Име није пронађено", + "person.page.birthdate": "Датум рођења", + "person.page.edit": "Изменити ову Ñтавку", + "person.page.email": "Емаил адреÑа", + "person.page.firstname": "Име", + "person.page.jobtitle": "Звање", + "person.page.lastname": "Презиме", + "person.page.name": "Име", + "person.page.link.full": "Прикажи Ñве метаподатке", + "person.page.orcid": "ORCID", + "person.page.staffid": "ID запоÑлених", + "person.page.titleprefix": "ОÑоба:", + "person.search.results.head": "Резултати претраге оÑоба", + "person-relationships.search.results.head": "Резултати претраге оÑоба", + "person.search.title": "Претрага оÑоба", + "process.new.select-parameters": "Параметри", + "process.new.cancel": "Отказати", + "process.new.submit": "Сачувати", + "process.new.select-script": "Скрипта", + "process.new.select-script.placeholder": "Изаберите Ñкрипту...", + "process.new.select-script.required": "Скрипта је обавезна", + "process.new.parameter.file.upload-button": "Изаберите фајл...", + "process.new.parameter.file.required": "Молимо изаберите фајл", + "process.new.parameter.string.required": "ВредноÑÑ‚ параметра је обавезна", + "process.new.parameter.type.value": "вредноÑÑ‚", + "process.new.parameter.type.file": "фајл", + "process.new.parameter.required.missing": "Следећи параметри Ñу обавезни, али још увек недоÑтају:", + "process.new.notification.success.title": "УÑпех", + "process.new.notification.success.content": "ÐŸÑ€Ð¾Ñ†ÐµÑ Ñ˜Ðµ уÑпешно креиран", + "process.new.notification.error.title": "Грешка", + "process.new.notification.error.content": "Дошло је до грешке при креирању овог процеÑа", + "process.new.notification.error.max-upload.content": "Фајл превазилази макÑималну величину за отпремање", + "process.new.header": "Креирајте нови процеÑ", + "process.new.title": "Креирајте нови процеÑ", + "process.new.breadcrumbs": "Креирајте нови процеÑ", + "process.detail.arguments": "Ðргументи", + "process.detail.arguments.empty": "Овај Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ðµ Ñадржи аргументе", + "process.detail.back": "Ðазад", + "process.detail.output": "Излаз процеÑа", + "process.detail.logs.button": "Преузмите излаз процеÑа", + "process.detail.logs.loading": "Преузимање", + "process.detail.logs.none": "Овај Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½ÐµÐ¼Ð° излаз", + "process.detail.output-files": "Излазни фајлови", + "process.detail.output-files.empty": "Овај Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ðµ Ñадржи излазне фајлове", + "process.detail.script": "Скрипта", + "process.detail.title": "ПроцеÑ: {{ id }} - {{ name }}", + "process.detail.start-time": "Време почетка", + "process.detail.end-time": "Време завршетка", + "process.detail.status": "СтатуÑ", + "process.detail.create": "Ðаправите Ñличан процеÑ", + "process.detail.actions": "Ðкције", + "process.detail.delete.button": "Избришите процеÑ", + "process.detail.delete.header": "Избришите процеÑ", + "process.detail.delete.body": "Да ли Ñте Ñигурни да желите да избришете тренутни процеÑ?", + "process.detail.delete.cancel": "Поништити, отказати", + "process.detail.delete.confirm": "Избришите процеÑ", + "process.detail.delete.success": "ÐŸÑ€Ð¾Ñ†ÐµÑ Ñ˜Ðµ уÑпешно обриÑан.", + "process.detail.delete.error": "Ðешто је пошло наопако приликом бриÑања процеÑа", + "process.overview.table.finish": "Време завршетка (UTC)", + "process.overview.table.id": "ID процеÑа", + "process.overview.table.name": "Име", + "process.overview.table.start": "Време почетка (UTC)", + "process.overview.table.status": "СтатуÑ", + "process.overview.table.user": "КориÑник", + "process.overview.title": "Преглед процеÑа", + "process.overview.breadcrumbs": "Преглед процеÑа", + "process.overview.new": "Ðово", + "process.overview.table.actions": "Ðкције", + "process.overview.delete": "Избришите {{count}} процеÑа", + "process.overview.delete.clear": "ОчиÑтите избор за бриÑање", + "process.overview.delete.processing": "Бришу Ñе процеÑи ({{count}}). Сачекајте да Ñе бриÑање у потпуноÑти заврши. Имајте на уму да ово може потрајати.", + "process.overview.delete.body": "Да ли Ñте Ñигурни да желите да избришете {{count}} процеÑ(е)?", + "process.overview.delete.header": "Избришите процеÑе", + "process.bulk.delete.error.head": "Грешка у процеÑу бриÑања", + "process.bulk.delete.error.body": "Ðије могуће избриÑати Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñа ID-ом {{processId}}. ПреоÑтали процеÑи ће наÑтавити да Ñе бришу.", + "process.bulk.delete.success": "ПроцеÑи ({{count}}) Ñу уÑпешно избриÑани", + "profile.breadcrumbs": "Ðжурирање профила", + "profile.card.identify": "Идентитет", + "profile.card.security": "БезбедноÑÑ‚", + "profile.form.submit": "Сачувати", + "profile.groups.head": "Групе овлашћења којима припадате", + "profile.special.groups.head": "Ðуторизација поÑебних група којима припадате", + "profile.head": "Ðжурирање профил", + "profile.metadata.form.error.firstname.required": "Име је обавезно", + "profile.metadata.form.error.lastname.required": "Презиме је обавезно", + "profile.metadata.form.label.email": "Емаил адреÑа", + "profile.metadata.form.label.firstname": "Име", + "profile.metadata.form.label.language": "Језик", + "profile.metadata.form.label.lastname": "Презиме", + "profile.metadata.form.label.phone": "Контакт телефон", + "profile.metadata.form.notifications.success.content": "Ваше промене на профилу Ñу Ñачуване.", + "profile.metadata.form.notifications.success.title": "Профил је Ñачуван", + "profile.notifications.warning.no-changes.content": "ÐиÑу направљене никакве промене на профилу.", + "profile.notifications.warning.no-changes.title": "Без промене", + "profile.security.form.error.matching-passwords": "Лозинке Ñе не поклапају.", + "profile.security.form.info": "Опционо, можете да унеÑете нову лозинку у поље иÑпод и потврдите је тако што ћете је поново укуцати у друго поље.", + "profile.security.form.label.password": "Лозинка", + "profile.security.form.label.passwordrepeat": "Поново откуцајте да биÑте потврдили", + "profile.security.form.label.current-password": "Тренутна лозинка", + "profile.security.form.notifications.success.content": "Ваше промене лозинке Ñу Ñачуване.", + "profile.security.form.notifications.success.title": "Лозинка је Ñачувана", + "profile.security.form.notifications.error.title": "Грешка при промени лозинки", + "profile.security.form.notifications.error.change-failed": "Дошло је до грешке при покушају промене лозинке. Проверите да ли је тренутна лозинка тачна.", + "profile.security.form.notifications.error.not-same": "Ðаведене лозинке ниÑу иÑте.", + "profile.security.form.notifications.error.general": "Попуните обавезна поља безбедноÑног обраÑца.", + "profile.title": "Ðжурирање профила", + "profile.card.researcher": "Профил иÑтраживача", + "project.listelement.badge": "ИÑтраживачки пројекат", + "project.page.contributor": "Сарадници", + "project.page.description": "ОпиÑ", + "project.page.edit": "Уредите ову Ñтавку", + "project.page.expectedcompletion": "Очекивани завршетак", + "project.page.funder": "финанÑијери", + "project.page.id": "ID", + "project.page.keyword": "Кључне речи", + "project.page.status": "СтатуÑ", + "project.page.titleprefix": "ИÑтраживачки пројекат:", + "project.search.results.head": "Резултати претраге пројекта", + "project-relationships.search.results.head": "Резултати претраге пројекта", + "publication.listelement.badge": "Публикација", + "publication.page.description": "ОпиÑ", + "publication.page.edit": "Уредите ову Ñтавку", + "publication.page.journal-issn": "ЧаÑÐ¾Ð¿Ð¸Ñ ISSN", + "publication.page.journal-title": "ÐаÑлов чаÑопиÑа", + "publication.page.publisher": "Издавач", + "publication.page.titleprefix": "Публикација:", + "publication.page.volume-title": "ÐаÑлов ÑвеÑке", + "publication.search.results.head": "Резултати претраге публикације", + "publication-relationships.search.results.head": "Резултати претраге публикације", + "publication.search.title": "Претрага публикација", + "media-viewer.next": "Следеће", + "media-viewer.previous": "Претходно", + "media-viewer.playlist": "Плаy лиÑта", + "register-email.title": "РегиÑтрација новог кориÑника", + "register-page.create-profile.header": "Ðаправите профил", + "register-page.create-profile.identification.header": "Идентификовати", + "register-page.create-profile.identification.email": "Емаил адреÑа", + "register-page.create-profile.identification.first-name": "Име *", + "register-page.create-profile.identification.first-name.error": "Молимо унеÑите име", + "register-page.create-profile.identification.last-name": "Презиме *", + "register-page.create-profile.identification.last-name.error": "Молимо унеÑите презиме", + "register-page.create-profile.identification.contact": "Контакт телефон", + "register-page.create-profile.identification.language": "Језик", + "register-page.create-profile.security.header": "БезбедноÑÑ‚", + "register-page.create-profile.security.info": "Молимо унеÑите лозинку у поље иÑпод и потврдите је тако што ћете је поново унети у друго поље.", + "register-page.create-profile.security.label.password": "Лозинка *", + "register-page.create-profile.security.label.passwordrepeat": "УнеÑите поново да потврдите *", + "register-page.create-profile.security.error.empty-password": "Молимо унеÑите лозинку у поље иÑпод.", + "register-page.create-profile.security.error.matching-passwords": "Лозинке Ñе не поклапају.", + "register-page.create-profile.submit": "Завршите региÑтрацију", + "register-page.create-profile.submit.error.content": "Ðешто није у реду приликом региÑтрације новог кориÑника.", + "register-page.create-profile.submit.error.head": "ÐеуÑпешна региÑтрација", + "register-page.create-profile.submit.success.content": "РегиÑтрација је уÑпешна. Пријављени Ñте као креирани кориÑник.", + "register-page.create-profile.submit.success.head": "РегиÑтрација је завршена", + "register-page.registration.header": "РегиÑтрација новог кориÑника", + "register-page.registration.info": "РегиÑтрујте налог да биÑте Ñе претплатили на колекције за ажурирања путем емаил-а и пошаљите нове Ñтавке на DSpace.", + "register-page.registration.email": "Емаил адреÑа *", + "register-page.registration.email.error.required": "Молимо унеÑите емаил адреÑу", + "register-page.registration.email.error.not-email-form": "Молимо унеÑите важећу емаил адреÑу.", + "register-page.registration.email.error.not-valid-domain": "КориÑтите емаил Ñа дозвољеним доменима: {{ domains }}", + "register-page.registration.email.hint": "Ова адреÑа ће бити верификована и коришћена као ваше кориÑничко име.", + "register-page.registration.submit": "РегиÑтровати", + "register-page.registration.success.head": "Верификациони емаил је поÑлат", + "register-page.registration.success.content": "Емаил је поÑлат на {{ email }} који Ñадржи поÑебан URL и даља упутÑтва.", + "register-page.registration.error.head": "Грешка при покушају региÑтрације емаил-а", + "register-page.registration.error.content": "Дошло је до грешке при региÑтрацији Ñледеће емаил адреÑе: {{ email }}", + "register-page.registration.error.recaptcha": "Грешка при покушају аутентификације помоћу recaptcha", + "register-page.registration.google-recaptcha.must-accept-cookies": "Да биÑте Ñе региÑтровали, морате прихватити колачиће за <b>региÑтрацију и враћање лозинке</b> (Google reCaptcha).", + "register-page.registration.error.maildomain": "Ова емаил адреÑа није на лиÑти домена који Ñе могу региÑтровати. Дозвољени домени Ñу {{ domains }}", + "register-page.registration.google-recaptcha.open-cookie-settings": "Отворите подешавања колачића", + "register-page.registration.google-recaptcha.notification.title": "Google reCaptcha", + "register-page.registration.google-recaptcha.notification.message.error": "Дошло је до грешке током reCaptcha верификације", + "register-page.registration.google-recaptcha.notification.message.expired": "Верификација је иÑтекла. Молимо потврдите поново.", + "register-page.registration.info.maildomain": "Ðалози Ñе могу региÑтровати за емаил адреÑе домена", + "relationships.add.error.relationship-type.content": "Ðије пронађено одговарајуће подударање за тип везе {{ type }} између две Ñтавке", + "relationships.add.error.server.content": "Сервер је вратио грешку", + "relationships.add.error.title": "Ðије могуће додати везу", + "relationships.isAuthorOf": "Ðутори", + "relationships.isAuthorOf.Person": "Ðутори (оÑоба)", + "relationships.isAuthorOf.OrgUnit": "Ðутори (организационе јединице)", + "relationships.isIssueOf": "Издања чаÑопиÑа", + "relationships.isJournalIssueOf": "Издања чаÑопÑа", + "relationships.isJournalOf": "ЧаÑопиÑи", + "relationships.isOrgUnitOf": "Организационе јединице", + "relationships.isPersonOf": "Ðутори", + "relationships.isProjectOf": "ИÑтраживачки пројекти", + "relationships.isPublicationOf": "Издања", + "relationships.isPublicationOfJournalIssue": "Чланци", + "relationships.isSingleJournalOf": "ЧаÑопиÑ", + "relationships.isSingleVolumeOf": "СвеÑка чаÑопиÑа", + "relationships.isVolumeOf": "СвеÑке чаÑопиÑа", + "relationships.isContributorOf": "Сарадници", + "relationships.isContributorOf.OrgUnit": "Сарадник (Организациона јединица)", + "relationships.isContributorOf.Person": "Сарадник", + "relationships.isFundingAgencyOf.OrgUnit": "ОÑнивач", + "repository.image.logo": "Лого репозиторијума", + "repository.title": "DSpace Репозиторијум", + "repository.title.prefix": "DSpace Репозиторијум ::", + "resource-policies.add.button": "Додати", + "resource-policies.add.for.": "Додајте нове Ñмернице", + "resource-policies.add.for.bitstream": "Додајте нове битÑтрим Ñмернице", + "resource-policies.add.for.bundle": "Додајте нове Ñмернице пакета", + "resource-policies.add.for.item": "Додајте нове Ñмернице Ñтавки", + "resource-policies.add.for.community": "Додајте нове Ñмернице заједнице", + "resource-policies.add.for.collection": "Додајте нове Ñмернице колекција", + "resource-policies.create.page.heading": "Креирајте нове Ñмернице реÑурÑа за", + "resource-policies.create.page.failure.content": "Дошло је до грешке при креирању Ñмерница реÑурÑа.", + "resource-policies.create.page.success.content": "Операција уÑпела", + "resource-policies.create.page.title": "Креирајте нове Ñмернице реÑурÑа", + "resource-policies.delete.btn": "Избришите изабрано", + "resource-policies.delete.btn.title": "Избришите изабране Ñмернице реÑурÑа", + "resource-policies.delete.failure.content": "Дошло је до грешке приликом бриÑања изабраних Ñмерница реÑурÑа.", + "resource-policies.delete.success.content": "Операција уÑпела", + "resource-policies.edit.page.heading": "Измените Ñмернице реÑурÑа", + "resource-policies.edit.page.failure.content": "Дошло је до грешке приликом измене Ñмерница реÑурÑа.", + "resource-policies.edit.page.target-failure.content": "Дошло је до грешке приликом измене циља (EPerson или групе) Ñмерница реÑурÑа.", + "resource-policies.edit.page.other-failure.content": "Дошло је до грешке приликом измене Ñмерница реÑурÑа. Циљ (EPerson или група) је уÑпешно ажуриран.", + "resource-policies.edit.page.success.content": "Операција уÑпела", + "resource-policies.edit.page.title": "Измена Ñмерница реÑурÑа", + "resource-policies.form.action-type.label": "Изабрати врÑту акције", + "resource-policies.form.action-type.required": "Морате да изаберете акцију полиÑе реÑурÑа.", + "resource-policies.form.eperson-group-list.label": "EPerson или група која ће добити овлашћење", + "resource-policies.form.eperson-group-list.select.btn": "Изабрати", + "resource-policies.form.eperson-group-list.tab.eperson": "Потражите EPerson", + "resource-policies.form.eperson-group-list.tab.group": "Потражите групу", + "resource-policies.form.eperson-group-list.table.headers.action": "ПоÑтупак", + "resource-policies.form.eperson-group-list.table.headers.id": "ID", + "resource-policies.form.eperson-group-list.table.headers.name": "Име", + "resource-policies.form.eperson-group-list.modal.header": "Ðе може Ñе променити тип", + "resource-policies.form.eperson-group-list.modal.text1.toGroup": "Ðије могуће заменити EPerson Ñа групом.", + "resource-policies.form.eperson-group-list.modal.text1.toEPerson": "Ðије могуће заменити групу Ñа EPerson.", + "resource-policies.form.eperson-group-list.modal.text2": "Избришите тренутне полиÑе реÑурÑа и креирајте нове Ñа жељеним типом.", + "resource-policies.form.eperson-group-list.modal.close": "Ок", + "resource-policies.form.date.end.label": "Датум завршетка", + "resource-policies.form.date.start.label": "Датум почетка", + "resource-policies.form.description.label": "ОпиÑ", + "resource-policies.form.name.label": "Име", + "resource-policies.form.policy-type.label": "Изаберите тип полиÑе", + "resource-policies.form.policy-type.required": "Морате да изаберете тип полиÑе реÑурÑа.", + "resource-policies.table.headers.action": "ПоÑтупак", + "resource-policies.table.headers.date.end": "Датум завршетка", + "resource-policies.table.headers.date.start": "Датум почетка", + "resource-policies.table.headers.edit": "Изменити", + "resource-policies.table.headers.edit.group": "Изменити групу", + "resource-policies.table.headers.edit.policy": "Изменити Ñмернице", + "resource-policies.table.headers.eperson": "EPerson", + "resource-policies.table.headers.group": "Група", + "resource-policies.table.headers.id": "ID", + "resource-policies.table.headers.name": "Име", + "resource-policies.table.headers.policyType": "тип", + "resource-policies.table.headers.title.for.bitstream": "Смернице за битÑтрим", + "resource-policies.table.headers.title.for.bundle": "Смернице за пакет", + "resource-policies.table.headers.title.for.item": "Смернице за Ñтавку", + "resource-policies.table.headers.title.for.community": "Смернице за заједницу", + "resource-policies.table.headers.title.for.collection": "Смернице за колекцију", + "search.description": "", + "search.switch-configuration.title": "Прикажи", + "search.title": "Претрага", + "search.breadcrumbs": "Претрага", + "search.search-form.placeholder": "Претражите Ñпремиште...", + "search.filters.applied.f.author": "Ðутор", + "search.filters.applied.f.dateIssued.max": "Датум завршетка", + "search.filters.applied.f.dateIssued.min": "Датум почетка", + "search.filters.applied.f.dateSubmitted": "Датум прихватања", + "search.filters.applied.f.discoverable": "Ðије могуће открити", + "search.filters.applied.f.entityType": "Тип Ñтавке", + "search.filters.applied.f.has_content_in_original_bundle": "Има фајлове", + "search.filters.applied.f.itemtype": "Тип", + "search.filters.applied.f.namedresourcetype": "СтатуÑ", + "search.filters.applied.f.subject": "Предмет", + "search.filters.applied.f.submitter": "ПодноÑилац", + "search.filters.applied.f.jobTitle": "Звање", + "search.filters.applied.f.birthDate.max": "Рођење - крајњи датум", + "search.filters.applied.f.birthDate.min": "Рођење - почетни датум", + "search.filters.applied.f.supervisedBy": "Прегледао", + "search.filters.applied.f.withdrawn": "Повучен", + "search.filters.filter.author.head": "Ðутор", + "search.filters.filter.author.placeholder": "Име аутора", + "search.filters.filter.author.label": "Претражите име аутора", + "search.filters.filter.birthDate.head": "Датум рођења", + "search.filters.filter.birthDate.placeholder": "Датум рођења", + "search.filters.filter.birthDate.label": "Претражите датум рођења", + "search.filters.filter.collapse": "Скупи филтер", + "search.filters.filter.creativeDatePublished.head": "Датум објављивања", + "search.filters.filter.creativeDatePublished.placeholder": "Датум објављивања", + "search.filters.filter.creativeDatePublished.label": "Претражите датум објављивања", + "search.filters.filter.creativeWorkEditor.head": "Едитор", + "search.filters.filter.creativeWorkEditor.placeholder": "Едитор", + "search.filters.filter.creativeWorkEditor.label": "Претрага уредника", + "search.filters.filter.creativeWorkKeywords.head": "Предмет", + "search.filters.filter.creativeWorkKeywords.placeholder": "Предмет", + "search.filters.filter.creativeWorkKeywords.label": "Предмет претраге", + "search.filters.filter.creativeWorkPublisher.head": "Издавач", + "search.filters.filter.creativeWorkPublisher.placeholder": "Издавач", + "search.filters.filter.creativeWorkPublisher.label": "Претрага издавача", + "search.filters.filter.dateIssued.head": "Датум", + "search.filters.filter.dateIssued.max.placeholder": "МакÑимални датум", + "search.filters.filter.dateIssued.max.label": "Крај", + "search.filters.filter.dateIssued.min.placeholder": "Минимални датум", + "search.filters.filter.dateIssued.min.label": "Почетак", + "search.filters.filter.dateSubmitted.head": "Датум прихватања", + "search.filters.filter.dateSubmitted.placeholder": "Датум прихватања", + "search.filters.filter.dateSubmitted.label": "Претрага датума прихватања", + "search.filters.filter.discoverable.head": "Ðије могуће открити", + "search.filters.filter.withdrawn.head": "Повучен", + "search.filters.filter.entityType.head": "Тип Ñтавке", + "search.filters.filter.entityType.placeholder": "Тип Ñтавке", + "search.filters.filter.entityType.label": "Претражите тип Ñтавке", + "search.filters.filter.expand": "Прошири филтер", + "search.filters.filter.has_content_in_original_bundle.head": "Има фајлове", + "search.filters.filter.itemtype.head": "Тип", + "search.filters.filter.itemtype.placeholder": "Тип", + "search.filters.filter.itemtype.label": "Тип претраге", + "search.filters.filter.jobTitle.head": "Звање", + "search.filters.filter.jobTitle.placeholder": "Звање", + "search.filters.filter.jobTitle.label": "Претрага звања", + "search.filters.filter.knowsLanguage.head": "Познати језик", + "search.filters.filter.knowsLanguage.placeholder": "Познати језик", + "search.filters.filter.knowsLanguage.label": "Претражите познати језик", + "search.filters.filter.namedresourcetype.head": "СтатуÑ", + "search.filters.filter.namedresourcetype.placeholder": "СтатуÑ", + "search.filters.filter.namedresourcetype.label": "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð¿Ñ€ÐµÑ‚Ñ€Ð°Ð³Ðµ", + "search.filters.filter.objectpeople.head": "Људи", + "search.filters.filter.objectpeople.placeholder": "Људи", + "search.filters.filter.objectpeople.label": "Претражите људе", + "search.filters.filter.organizationAddressCountry.head": "Држава", + "search.filters.filter.organizationAddressCountry.placeholder": "Држава", + "search.filters.filter.organizationAddressCountry.label": "Претражите државу", + "search.filters.filter.organizationAddressLocality.head": "Град", + "search.filters.filter.organizationAddressLocality.placeholder": "Град", + "search.filters.filter.organizationAddressLocality.label": "Претражите град", + "search.filters.filter.organizationFoundingDate.head": "Датум оÑнивања", + "search.filters.filter.organizationFoundingDate.placeholder": "Датум оÑнивања", + "search.filters.filter.organizationFoundingDate.label": "Претражите датум оÑнивања", + "search.filters.filter.scope.head": "ОпÑег", + "search.filters.filter.scope.placeholder": "Филтер опÑега", + "search.filters.filter.scope.label": "Претражите филтер опÑега", + "search.filters.filter.show-less": "Скупити", + "search.filters.filter.show-more": "Прикажи више", + "search.filters.filter.subject.head": "Предмет", + "search.filters.filter.subject.placeholder": "Предмет", + "search.filters.filter.subject.label": "Предмет претраге", + "search.filters.filter.submitter.head": "ПодноÑилац", + "search.filters.filter.submitter.placeholder": "ПодноÑилац", + "search.filters.filter.submitter.label": "ПодноÑилац претраге", + "search.filters.filter.show-tree": "Прегледајте Ñтабло {{ name }}", + "search.filters.filter.supervisedBy.head": "Прегледао", + "search.filters.filter.supervisedBy.placeholder": "Прегледао", + "search.filters.filter.supervisedBy.label": "Претрагу надгледао", + "search.filters.entityType.JournalIssue": "Издања чаÑопиÑа", + "search.filters.entityType.JournalVolume": "СвеÑка чаÑопиÑа", + "search.filters.entityType.OrgUnit": "Организациона јединица", + "search.filters.has_content_in_original_bundle.true": "Да", + "search.filters.has_content_in_original_bundle.false": "Ðе", + "search.filters.discoverable.true": "Ðе", + "search.filters.discoverable.false": "Да", + "search.filters.namedresourcetype.Archived": "Ðрхивирано", + "search.filters.namedresourcetype.Validation": "ИÑправноÑÑ‚", + "search.filters.namedresourcetype.Waiting for Controller": "Чека Ñе контролор", + "search.filters.namedresourcetype.Workflow": "ÐŸÑ€Ð¾Ñ†ÐµÑ Ñ€Ð°Ð´Ð°", + "search.filters.namedresourcetype.Workspace": "Радни проÑтор", + "search.filters.withdrawn.true": "Да", + "search.filters.withdrawn.false": "Ðе", + "search.filters.head": "Филтери", + "search.filters.reset": "РеÑетовање филтера", + "search.filters.search.submit": "Прихватите", + "search.form.search": "Претрага", + "search.form.search_dspace": "Сви репозиторијуми", + "search.form.scope.all": "Читав репозиторијум", + "search.results.head": "Резултати претраге", + "search.results.no-results": "Ваша претрага није дала резултате. Имате проблема Ñа проналажењем онога што тражите? Покушајте да Ñтавите", + "search.results.no-results-link": "наводнике око тога", + "search.results.empty": "Ваша претрага није дала резултате.", + "search.results.view-result": "Погледати", + "search.results.response.500": "Дошло је до грешке током извршавања упита, молимо покушајте поново каÑније", + "default.search.results.head": "Резултати претраге", + "default-relationships.search.results.head": "Резултати претраге", + "search.sidebar.close": "Повратак на резултате", + "search.sidebar.filters.title": "Филтери", + "search.sidebar.open": "Ðлати за претрагу", + "search.sidebar.results": "резултати", + "search.sidebar.settings.rpp": "Резултати по Ñтрани", + "search.sidebar.settings.sort-by": "Сортирати по", + "search.sidebar.settings.title": "Подешавања", + "search.view-switch.show-detail": "Приказати детаље", + "search.view-switch.show-grid": "Приказати као мрежу", + "search.view-switch.show-list": "Приказати као лиÑту", + "sorting.ASC": "РаÑтуће", + "sorting.DESC": "Опадајуће", + "sorting.dc.title.ASC": "ÐаÑлов раÑтуће", + "sorting.dc.title.DESC": "ÐаÑлов опадајуће", + "sorting.score.ASC": "Ðајмање релевантно", + "sorting.score.DESC": "Ðајрелевантније", + "sorting.dc.date.issued.ASC": "Датум издања раÑтуће", + "sorting.dc.date.issued.DESC": "Датум издања опадајуће", + "sorting.dc.date.accessioned.ASC": "Датум приÑтупа раÑтуће", + "sorting.dc.date.accessioned.DESC": "Датум приÑтупа опадајуће", + "sorting.lastModified.ASC": "ПоÑледња измена раÑтуће", + "sorting.lastModified.DESC": "ПоÑледња измена опадајуће", + "statistics.title": "СтатиÑтика", + "statistics.header": "СтатиÑтика за {{ scope }}", + "statistics.breadcrumbs": "СтатиÑтика", + "statistics.page.no-data": "Ðема доÑтупних података", + "statistics.table.no-data": "Ðема доÑтупних података", + "statistics.table.title.TotalVisits": "Укупно поÑета", + "statistics.table.title.TotalVisitsPerMonth": "Укупно поÑета меÑечно", + "statistics.table.title.TotalDownloads": "ПоÑете фајловима", + "statistics.table.title.TopCountries": "Ðајвише прегледа по државама", + "statistics.table.title.TopCities": "Ðајвише прегледа по градовима", + "statistics.table.header.views": "Погледи", + "statistics.table.no-name": "(име објекта Ñе не може учитати)", + "submission.edit.breadcrumbs": "Измена поднеÑка", + "submission.edit.title": "Измена поднеÑка", + "submission.general.cancel": "Отказати", + "submission.general.cannot_submit": "Ðемате дозволу да поднеÑете нову пријаву.", + "submission.general.deposit": "Депоновати", + "submission.general.discard.confirm.cancel": "Отказати", + "submission.general.discard.confirm.info": "Ова операција Ñе не може опозвати. Да ли Ñте Ñигурни?", + "submission.general.discard.confirm.submit": "Да Ñигуран Ñам", + "submission.general.discard.confirm.title": "Одбаците поднеÑак", + "submission.general.discard.submit": "Одбацити", + "submission.general.info.saved": "Сачувано", + "submission.general.info.pending-changes": "ÐеÑачуване промене", + "submission.general.save": "Сачувати", + "submission.general.save-later": "Сачувати за каÑније", + "submission.import-external.page.title": "Увезите метаподатке из Ñпољног извора", + "submission.import-external.title": "Увезите метаподатке из Ñпољног извора", + "submission.import-external.title.Journal": "Увезите чаÑÐ¾Ð¿Ð¸Ñ Ð¸Ð· Ñпољног извора", + "submission.import-external.title.JournalIssue": "Увезите издање чаÑопиÑа из Ñпољног извора", + "submission.import-external.title.JournalVolume": "Увезите волуме чаÑопиÑа из Ñпољног извора", + "submission.import-external.title.OrgUnit": "Увезите издавача из Ñпољног извора", + "submission.import-external.title.Person": "Увезите оÑобу из Ñпољног извора", + "submission.import-external.title.Project": "Увезите пројекат из Ñпољног извора", + "submission.import-external.title.Publication": "Увезите публикацију из Ñпољног извора", + "submission.import-external.title.none": "Увезите метаподатке из Ñпољног извора", + "submission.import-external.page.hint": "УнеÑите упит изнад да биÑте пронашли Ñтавке Ñа веба за увоз у DSpace.", + "submission.import-external.back-to-my-dspace": "Ðазад на MyDSpace", + "submission.import-external.search.placeholder": "Претрага Ñпољног извора", + "submission.import-external.search.button": "Претрага", + "submission.import-external.search.button.hint": "Ðапишите неколико речи за претрагу", + "submission.import-external.search.source.hint": "Изаберите Ñпољни извор", + "submission.import-external.source.arxiv": "arXiv", + "submission.import-external.source.ads": "NASA/ADS", + "submission.import-external.source.cinii": "CiNii", + "submission.import-external.source.crossref": "CrossRef", + "submission.import-external.source.datacite": "DataCite", + "submission.import-external.source.scielo": "SciELO", + "submission.import-external.source.scopus": "Scopus", + "submission.import-external.source.vufind": "VuFind", + "submission.import-external.source.wos": "Ðаучна мрежа", + "submission.import-external.source.orcidWorks": "ORCID", + "submission.import-external.source.epo": "ЕвропÑки завод за патенте (EPO)", + "submission.import-external.source.loading": "Учитавање...", + "submission.import-external.source.sherpaJournal": "SHERPA чаÑопиÑи", + "submission.import-external.source.sherpaJournalIssn": "SHERPA чаÑопиÑи од ISSN", + "submission.import-external.source.sherpaPublisher": "SHERPA Publishers", + "submission.import-external.source.openAIREFunding": "ФинанÑирање OpenAIRE API-ја", + "submission.import-external.source.orcid": "ORCID", + "submission.import-external.source.pubmed": "Pubmed", + "submission.import-external.source.pubmedeu": "Pubmed Europe", + "submission.import-external.source.lcname": "Библиотека КонгреÑних имена", + "submission.import-external.preview.title": "Преглед Ñтавке", + "submission.import-external.preview.title.Publication": "Преглед публикације", + "submission.import-external.preview.title.none": "Преглед Ñтавке", + "submission.import-external.preview.title.Journal": "Преглед чаÑопиÑа", + "submission.import-external.preview.title.OrgUnit": "Преглед организационе јединице", + "submission.import-external.preview.title.Person": "Преглед оÑобе", + "submission.import-external.preview.title.Project": "Преглед пројекта", + "submission.import-external.preview.subtitle": "Метаподаци у наÑтавку Ñу увезени из Ñпољног извора. Биће унапред попуњен када започнете прихватање.", + "submission.import-external.preview.button.import": "Почните Ñа прихватањем", + "submission.import-external.preview.error.import.title": "Грешка при прихватању", + "submission.import-external.preview.error.import.body": "Дошло је до грешке током улазног процеÑа увоза Ñпољашњег извора.", + "submission.sections.describe.relationship-lookup.close": "Затвори", + "submission.sections.describe.relationship-lookup.external-source.added": "УÑпешно је додат локални улаз у избор", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.isAuthorOfPublication": "Увезите удаљеног аутора", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal": "Увезите удаљени дневник", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Issue": "Увезите удаљено издање чаÑопиÑа", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Volume": "Увезите удаљени опÑег чаÑопиÑа", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.isProjectOfPublication": "Пројекат", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.none": "Увезите удаљену Ñтавку", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Event": "Увезите удаљени догађај", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Product": "Увезите удаљени производ", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Equipment": "Увезите удаљену опрему", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.OrgUnit": "Увезите удаљену организациону јединицу", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Funding": "Увезите удаљени фонд", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Person": "Увезите удаљену оÑобу", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Patent": "Увезите удаљени патент", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Project": "Увезите удаљени пројекат", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Publication": "Увезите удаљену публикацију", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.added.new-entity": "Додат је нови ентитет!", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.title": "Пројекат", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.openAIREFunding": "ФинанÑирање OpenAIRE API-ја", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.title": "Увези удаљеног аутора", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.added.local-entity": "Локални аутор је уÑпешно додат у избор", + "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.added.new-entity": "Спољашњи аутор је уÑпешно увезен и додат у избор", + "submission.sections.describe.relationship-lookup.external-source.import-modal.authority": "Управа", + "submission.sections.describe.relationship-lookup.external-source.import-modal.authority.new": "Увезите као нови улаз локалне управе", + "submission.sections.describe.relationship-lookup.external-source.import-modal.cancel": "Поништити, отказати", + "submission.sections.describe.relationship-lookup.external-source.import-modal.collection": "Изаберите колекцију у коју ћете увеÑти нове улазе", + "submission.sections.describe.relationship-lookup.external-source.import-modal.entities": "Ентитети", + "submission.sections.describe.relationship-lookup.external-source.import-modal.entities.new": "Увезите као нови локални ентитет", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.lcname": "Увезите из LC имена", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.orcid": "Увезите из ORCID-а", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaJournal": "Увезите из чаÑопиÑа SHERPA", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaPublisher": "Увезите из SHERPA издавача", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.pubmed": "Увезите из PubMed-а", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.arxiv": "Увезите из arXiv", + "submission.sections.describe.relationship-lookup.external-source.import-modal.import": "Увоз", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.title": "Увезите удаљени чаÑопиÑ", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.added.local-entity": "УÑпешно додат локални чаÑÐ¾Ð¿Ð¸Ñ Ñƒ избор", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.added.new-entity": "УÑпешно увезен и додат Ñпољашњи чаÑÐ¾Ð¿Ð¸Ñ Ñƒ избор", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.title": "Увезите удаљено издање чаÑопиÑа", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.local-entity": "УÑпешно је додат локални број чаÑопиÑа у избор", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.new-entity": "УÑпешно увезен и додат Ñпољашњи број чаÑопиÑа у избор", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.title": "Увезите удаљени опÑег чаÑопиÑа", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.local-entity": "УÑпешно је додат локални волумен чаÑопиÑа у избор", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.new-entity": "УÑпешно увезен и додат Ñпољашњи опÑег чаÑопиÑа у избор", + "submission.sections.describe.relationship-lookup.external-source.import-modal.select": "Изаберите локално подударање:", + "submission.sections.describe.relationship-lookup.search-tab.deselect-all": "Поништите Ñве", + "submission.sections.describe.relationship-lookup.search-tab.deselect-page": "Опозовите избор Ñтранице", + "submission.sections.describe.relationship-lookup.search-tab.loading": "Учитавање...", + "submission.sections.describe.relationship-lookup.search-tab.placeholder": "Упит за претрагу", + "submission.sections.describe.relationship-lookup.search-tab.search": "Иди", + "submission.sections.describe.relationship-lookup.search-tab.search-form.placeholder": "Претрага...", + "submission.sections.describe.relationship-lookup.search-tab.select-all": "Изабери Ñве", + "submission.sections.describe.relationship-lookup.search-tab.select-page": "Изаберите Ñтраницу", + "submission.sections.describe.relationship-lookup.selected": "Изабране Ñтавке {{ size }}", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isAuthorOfPublication": "Локални аутори ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalOfPublication": "Локални чаÑопиÑи ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Project": "Локални пројекти ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Publication": "Локалне публикације ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Person": "Локални аутори ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.OrgUnit": "Локалне организационе јединице ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.DataPackage": "Локални пакети података ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.DataFile": "Локални фајлови података ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Journal": "Локални чаÑопиÑи ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalIssueOfPublication": "Локална издања чаÑопиÑа ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.JournalIssue": "Локална издања чаÑопиÑа ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalVolumeOfPublication": "Локални опÑег чаÑопиÑа ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.JournalVolume": "Локални опÑег чаÑопиÑа ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaJournal": "SHERPA чаÑопиÑи ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaPublisher": "SHERPA издавачи({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.orcid": "ORCID ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.lcname": "LC имена ({{ 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.isFundingAgencyOfPublication": "Потражите финанÑијере", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingOfPublication": "Потражите ÑредÑтва", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isChildOrgUnitOf": "Потражите организационе јединице", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.openAIREFunding": "ФинанÑирање OpenAIRE API-ја", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isProjectOfPublication": "Пројекти", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfProject": "ФинанÑијер пројекта", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isPublicationOfAuthor": "Публикација аутора", + "submission.sections.describe.relationship-lookup.selection-tab.title.openAIREFunding": "ФинанÑирање OpenAIRE API-ја", + "submission.sections.describe.relationship-lookup.selection-tab.title.isProjectOfPublication": "Пројекат", + "submission.sections.describe.relationship-lookup.title.isProjectOfPublication": "Пројекти", + "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfProject": "ФинанÑијер пројекта", + "submission.sections.describe.relationship-lookup.selection-tab.search-form.placeholder": "Претрага...", + "submission.sections.describe.relationship-lookup.selection-tab.tab-title": "Тренутни избор ({{ count }})", + "submission.sections.describe.relationship-lookup.title.isJournalIssueOfPublication": "Издања чаÑопиÑа", + "submission.sections.describe.relationship-lookup.title.JournalIssue": "Издања чаÑопиÑа", + "submission.sections.describe.relationship-lookup.title.isJournalVolumeOfPublication": "СвеÑке чаÑопиÑа", + "submission.sections.describe.relationship-lookup.title.JournalVolume": "СвеÑке чаÑопиÑа", + "submission.sections.describe.relationship-lookup.title.isJournalOfPublication": "ЧаÑопиÑи", + "submission.sections.describe.relationship-lookup.title.isAuthorOfPublication": "Ðутори", + "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfPublication": "ФинанÑијÑка агенција", + "submission.sections.describe.relationship-lookup.title.Project": "Пројекти", + "submission.sections.describe.relationship-lookup.title.Publication": "Публикације", + "submission.sections.describe.relationship-lookup.title.Person": "Ðутори", + "submission.sections.describe.relationship-lookup.title.OrgUnit": "Организационе јединице", + "submission.sections.describe.relationship-lookup.title.DataPackage": "Пакети података", + "submission.sections.describe.relationship-lookup.title.DataFile": "Фајлови Ñа подацима", + "submission.sections.describe.relationship-lookup.title.Funding Agency": "ФинанÑијÑка агенција", + "submission.sections.describe.relationship-lookup.title.isFundingOfPublication": "ФинанÑирање", + "submission.sections.describe.relationship-lookup.title.isChildOrgUnitOf": "Матична организациона јединица", + "submission.sections.describe.relationship-lookup.title.isPublicationOfAuthor": "Публикација", + "submission.sections.describe.relationship-lookup.search-tab.toggle-dropdown": "Укључите падајући мени", + "submission.sections.describe.relationship-lookup.selection-tab.settings": "Подешавања", + "submission.sections.describe.relationship-lookup.selection-tab.no-selection": "Ваш избор је тренутно празан.", + "submission.sections.describe.relationship-lookup.selection-tab.title.isAuthorOfPublication": "Изабрани аутори", + "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalOfPublication": "Изабрани чаÑопиÑи", + "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalVolumeOfPublication": "Изабрана ÑвеÑка чаÑопиÑа", + "submission.sections.describe.relationship-lookup.selection-tab.title.Project": "Изабрани пројекти", + "submission.sections.describe.relationship-lookup.selection-tab.title.Publication": "Изабране публикације", + "submission.sections.describe.relationship-lookup.selection-tab.title.Person": "Изабрани аутори", + "submission.sections.describe.relationship-lookup.selection-tab.title.OrgUnit": "Изабране организационе јединице", + "submission.sections.describe.relationship-lookup.selection-tab.title.DataPackage": "Изабрани пакети података", + "submission.sections.describe.relationship-lookup.selection-tab.title.DataFile": "Изабрани фајлови Ñа подацима", + "submission.sections.describe.relationship-lookup.selection-tab.title.Journal": "Изабрани чаÑопиÑи", + "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalIssueOfPublication": "Изабрано издање", + "submission.sections.describe.relationship-lookup.selection-tab.title.JournalVolume": "Изабрана ÑвеÑка чаÑопиÑа", + "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingAgencyOfPublication": "Изабрана финанÑијÑка агенција", + "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingOfPublication": "Изабрано финанÑирање", + "submission.sections.describe.relationship-lookup.selection-tab.title.JournalIssue": "Изабрано издање", + "submission.sections.describe.relationship-lookup.selection-tab.title.isChildOrgUnitOf": "Изабрана организациона јединица", + "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaJournal": "Резултати претраге", + "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaPublisher": "Резултати претраге", + "submission.sections.describe.relationship-lookup.selection-tab.title.orcid": "Резултати претраге", + "submission.sections.describe.relationship-lookup.selection-tab.title.orcidv2": "Резултати претраге", + "submission.sections.describe.relationship-lookup.selection-tab.title.lcname": "Резултати претраге", + "submission.sections.describe.relationship-lookup.selection-tab.title.pubmed": "Резултати претраге", + "submission.sections.describe.relationship-lookup.selection-tab.title.arxiv": "Резултати претраге", + "submission.sections.describe.relationship-lookup.selection-tab.title.crossref": "Резултати претраге", + "submission.sections.describe.relationship-lookup.selection-tab.title.epo": "Резултати претраге", + "submission.sections.describe.relationship-lookup.selection-tab.title.scopus": "Резултати претраге", + "submission.sections.describe.relationship-lookup.selection-tab.title.scielo": "Резултати претраге", + "submission.sections.describe.relationship-lookup.selection-tab.title.wos": "Резултати претраге", + "submission.sections.describe.relationship-lookup.selection-tab.title": "Резултати претраге", + "submission.sections.describe.relationship-lookup.name-variant.notification.content": "Да ли желите да Ñачувате \"{{ value }}\" као варијанту имена за ову оÑобу да биÑте ви и други могли да га поново кориÑтите за будуће Ñлање? Ðко то не урадите, и даље можете да га кориÑтите за овај поднеÑак.", + "submission.sections.describe.relationship-lookup.name-variant.notification.confirm": "Сачувајте нову варијанту имена", + "submission.sections.describe.relationship-lookup.name-variant.notification.decline": "КориÑти Ñе Ñамо за овај поднеÑак", + "submission.sections.ccLicense.type": "Тип лиценце", + "submission.sections.ccLicense.select": "Изаберите тип лиценце…", + "submission.sections.ccLicense.change": "Промените тип лиценце…", + "submission.sections.ccLicense.none": "Ðема доÑтупних лиценци", + "submission.sections.ccLicense.option.select": "Изаберите опцију…", + "submission.sections.ccLicense.link": "Изабрали Ñте Ñледећу лиценцу:", + "submission.sections.ccLicense.confirmation": "Додељујем лиценцу изнад", + "submission.sections.general.add-more": "Додајте још", + "submission.sections.general.cannot_deposit": "Пријава Ñе не може довршити због грешака у обраÑцу.<br>Попуните Ñва обавезна поља да биÑте довршили пријаву.", + "submission.sections.general.collection": "Колекција", + "submission.sections.general.deposit_error_notice": "Дошло је до проблема приликом Ñлања Ñтавке, молимо покушајте поново каÑније.", + "submission.sections.general.deposit_success_notice": "Пријава је уÑпешно поднета.", + "submission.sections.general.discard_error_notice": "Дошло је до проблема при одбацивању Ñтавке, молимо покушајте поново каÑније.", + "submission.sections.general.discard_success_notice": "Слање је уÑпешно одбачено.", + "submission.sections.general.metadata-extracted": "Ðови метаподаци Ñу издвојени и додати у одељак <strong>{{sectionId}}</strong>.", + "submission.sections.general.metadata-extracted-new-section": "Ðови одељак <strong>{{sectionId}}</strong> је додат у пријаву.", + "submission.sections.general.no-collection": "Ðије пронађена колекција", + "submission.sections.general.no-sections": "Ðема доÑтупних опција", + "submission.sections.general.save_error_notice": "Дошло је до проблема приликом чувања Ñтавке, молимо покушајте поново каÑније.", + "submission.sections.general.save_success_notice": "Пријава је уÑпешно Ñачувана.", + "submission.sections.general.search-collection": "Потражите колекцију", + "submission.sections.general.sections_not_valid": "ПоÑтоје непотпуни одељци.", + "submission.sections.identifiers.info": "Следећи идентификатори ће бити креирани за вашу Ñтавку:", + "submission.sections.identifiers.no_handle": "За ову Ñтавку није везан Handle.", + "submission.sections.identifiers.no_doi": "Ðиједан DOIs није везан за ову Ñтавку.", + "submission.sections.identifiers.handle_label": "Handle:", + "submission.sections.identifiers.doi_label": "DOI:", + "submission.sections.identifiers.otherIdentifiers_label": "ОÑтали идентификатори:", + "submission.sections.submit.progressbar.accessCondition": "УÑлови приÑтупања Ñтавки", + "submission.sections.submit.progressbar.CClicense": "Creative Commons лиценца", + "submission.sections.submit.progressbar.describe.recycle": "Рециклажа", + "submission.sections.submit.progressbar.describe.stepcustom": "ОпиÑати", + "submission.sections.submit.progressbar.describe.stepone": "ОпиÑати", + "submission.sections.submit.progressbar.describe.steptwo": "ОпиÑати", + "submission.sections.submit.progressbar.detect-duplicate": "Потенцијални дупликати", + "submission.sections.submit.progressbar.identifiers": "Идентификатори", + "submission.sections.submit.progressbar.license": "Дозвола за депозит", + "submission.sections.submit.progressbar.sherpapolicy": "SHERPA пропиÑи", + "submission.sections.submit.progressbar.upload": "Додај фајлове", + "submission.sections.submit.progressbar.sherpaPolicies": "Информације о политици отвореног приÑтупа издавача", + "submission.sections.sherpa-policy.title-empty": "Ðема доÑтупних информација о Ñмерницама за издаваче. Ðко ваш рад има придружени ISSN, унеÑите га изнад да биÑте видели Ñве повезане Ñмернице отвореног приÑтупа за издаваче.", + "submission.sections.status.errors.title": "Грешке", + "submission.sections.status.valid.title": "Важеће", + "submission.sections.status.warnings.title": "Упозорења", + "submission.sections.status.errors.aria": "Има грешке", + "submission.sections.status.valid.aria": "Важеће је", + "submission.sections.status.warnings.aria": "Има упозорења", + "submission.sections.status.info.title": "Додатне Информације", + "submission.sections.status.info.aria": "Додатне Информације", + "submission.sections.toggle.open": "Отвори одељак", + "submission.sections.toggle.close": "Затвори одељак", + "submission.sections.toggle.aria.open": "Проширите {{sectionHeader}} одељак", + "submission.sections.toggle.aria.close": "Скупите {{sectionHeader}} одељак", + "submission.sections.upload.delete.confirm.cancel": "Поништити, отказати", + "submission.sections.upload.delete.confirm.info": "Ова операција Ñе не може опозвати. ЈеÑте ли Ñигурни?", + "submission.sections.upload.delete.confirm.submit": "Да, Ñигуран Ñам", + "submission.sections.upload.delete.confirm.title": "Избришите битÑтрим", + "submission.sections.upload.delete.submit": "Избришите", + "submission.sections.upload.download.title": "Преузмите битÑтрим", + "submission.sections.upload.drop-message": "СпуÑтите фајлове да биÑте их приложили Ñтавци", + "submission.sections.upload.edit.title": "Уредите битÑтрим", + "submission.sections.upload.form.access-condition-label": "Тип уÑлова приÑтупа", + "submission.sections.upload.form.access-condition-hint": "Изаберите уÑлов приÑтупа који ћете применити на битÑтрим када Ñе Ñтавка депонује", + "submission.sections.upload.form.date-required": "Датум је обавезан.", + "submission.sections.upload.form.date-required-from": "Обавезно одобрење приÑтупа од датума.", + "submission.sections.upload.form.date-required-until": "Обавезно одобрење приÑтупа до датума.", + "submission.sections.upload.form.from-label": "Одобрење приÑтупа од", + "submission.sections.upload.form.from-hint": "Изаберите датум од кога Ñе примењује одговарајући уÑлов приÑтупа", + "submission.sections.upload.form.from-placeholder": "Од", + "submission.sections.upload.form.group-label": "Група", + "submission.sections.upload.form.group-required": "Група је обавезна.", + "submission.sections.upload.form.until-label": "Одобрење приÑтупа до", + "submission.sections.upload.form.until-hint": "Изаберите датум до којег Ñе примењује одговарајући уÑлов приÑтупа", + "submission.sections.upload.form.until-placeholder": "Све док", + "submission.sections.upload.header.policy.default.nolist": "Отпремљени фајлови у колекцији {{collectionName}} биће доÑтупне према Ñледећим групама:", + "submission.sections.upload.header.policy.default.withlist": "Имајте на уму да ће отпремљени фајлови у колекцији {{collectionName}} бити доÑтупни, поред онога што је изричито одлучено за један фајл, Ñа Ñледећим групама:", + "submission.sections.upload.info": "Овде ћете пронаћи Ñве фајлове који Ñе тренутно налазе у Ñтавци. Можете да ажурирате метаподатке фајла и уÑлове приÑтупа или <strong> отпремите додатне фајлове тако што ћете их превући и отпуÑтити било где на Ñтраници.</strong>", + "submission.sections.upload.no-entry": "Ðе", + "submission.sections.upload.no-file-uploaded": "Још увек није отпремљен ниједан фајл.", + "submission.sections.upload.save-metadata": "Сачувај метаподатке", + "submission.sections.upload.undo": "Поништити, отказати", + "submission.sections.upload.upload-failed": "Отпремање није уÑпело", + "submission.sections.upload.upload-successful": "Отпремање је уÑпешно", + "submission.sections.accesses.form.discoverable-description": "Када је означено, ова Ñтавка ће бити видљива у претрази/прегледу. Када није означено, Ñтавка ће бити доÑтупна Ñамо преко директне везе и никада Ñе неће појавити у претрази/прегледу.", + "submission.sections.accesses.form.discoverable-label": "Откривање", + "submission.sections.accesses.form.access-condition-label": "Тип уÑлова приÑтупа", + "submission.sections.accesses.form.access-condition-hint": "Изаберите уÑлов приÑтупа који ћете применити на Ñтавку када Ñе депонује", + "submission.sections.accesses.form.date-required": "Датум је обавезан.", + "submission.sections.accesses.form.date-required-from": "Обавезно одобрење приÑтупа од датума.", + "submission.sections.accesses.form.date-required-until": "Обавезно одобрење приÑтупа до датума.", + "submission.sections.accesses.form.from-label": "Одобрење приÑтупа од", + "submission.sections.accesses.form.from-hint": "Изаберите датум од кога Ñе примењује одговарајући уÑлов приÑтупа", + "submission.sections.accesses.form.from-placeholder": "Од", + "submission.sections.accesses.form.group-label": "Група", + "submission.sections.accesses.form.group-required": "Група је обавезна.", + "submission.sections.accesses.form.until-label": "Одобрење приÑтупа до", + "submission.sections.accesses.form.until-hint": "Изаберите датум до којег Ñе примењује одговарајући уÑлов приÑтупа", + "submission.sections.accesses.form.until-placeholder": "Све док", + "submission.sections.license.granted-label": "Потврђујем горе наведену лиценцу", + "submission.sections.license.required": "Морате прихватити лиценцу", + "submission.sections.license.notgranted": "Морате прихватити лиценцу", + "submission.sections.sherpa.publication.information": "Информације о публикацији", + "submission.sections.sherpa.publication.information.title": "ÐаÑлов", + "submission.sections.sherpa.publication.information.issns": "ISSN-ови", + "submission.sections.sherpa.publication.information.url": "URL", + "submission.sections.sherpa.publication.information.publishers": "Издавач", + "submission.sections.sherpa.publication.information.romeoPub": "Romeo Pub", + "submission.sections.sherpa.publication.information.zetoPub": "Zeto Pub", + "submission.sections.sherpa.publisher.policy": "ÐŸÑ€Ð¾Ð¿Ð¸Ñ Ð·Ð° издаваче", + "submission.sections.sherpa.publisher.policy.description": "Информације у наÑтавку Ñу пронађене преко SherpaRomea. Ðа оÑнову Ñмерница вашег издавача, он пружа Ñавете о томе да ли је ембарго можда неопходан и/или које датотеке можете да отпремите. Ðко имате питања, контактирајте Ñвог админиÑтратора Ñајта путем обраÑца за повратне информације у подножју.", + "submission.sections.sherpa.publisher.policy.openaccess": "Путеви отвореног приÑтупа дозвољени политиком овог чаÑопиÑа наведени Ñу у наÑтавку према верзији чланка. Кликните на путању за детаљнији приказ", + "submission.sections.sherpa.publisher.policy.more.information": "За више информација погледајте Ñледеће линкове:", + "submission.sections.sherpa.publisher.policy.version": "Верзија", + "submission.sections.sherpa.publisher.policy.embargo": "Ембарго", + "submission.sections.sherpa.publisher.policy.noembargo": "Ðема ембарга", + "submission.sections.sherpa.publisher.policy.nolocation": "Ðиједан", + "submission.sections.sherpa.publisher.policy.license": "Лиценца", + "submission.sections.sherpa.publisher.policy.prerequisites": "ПредуÑлови", + "submission.sections.sherpa.publisher.policy.location": "Локација", + "submission.sections.sherpa.publisher.policy.conditions": "УÑлови", + "submission.sections.sherpa.publisher.policy.refresh": "ОÑвежите", + "submission.sections.sherpa.record.information": "Запишите информацију", + "submission.sections.sherpa.record.information.id": "ID", + "submission.sections.sherpa.record.information.date.created": "Датум креирања", + "submission.sections.sherpa.record.information.date.modified": "ПоÑледња измена", + "submission.sections.sherpa.record.information.uri": "URI", + "submission.sections.sherpa.error.message": "Дошло је до грешке при преузимању SHERPA информација", + "submission.submit.breadcrumbs": "Ðови поднеÑак", + "submission.submit.title": "Ðови поднеÑак", + "submission.workflow.generic.delete": "Избришите", + "submission.workflow.generic.delete-help": "Изаберите ову опцију да биÑте одбацили ову Ñтавку. Затим ће бити затражено да то потврдите.", + "submission.workflow.generic.edit": "Уредите", + "submission.workflow.generic.edit-help": "Изаберите ову опцију да биÑте променили метаподатке Ñтавке.", + "submission.workflow.generic.view": "Погледајте", + "submission.workflow.generic.view-help": "Изаберите ову опцију да биÑте видели метаподатке Ñтавке.", + "submission.workflow.generic.submit_select_reviewer": "Изаберите рецензента", + "submission.workflow.generic.submit_select_reviewer-help": "изаберите помоћ рецензента", + "submission.workflow.generic.submit_score": "Оцена", + "submission.workflow.generic.submit_score-help": "резултат-помоћ", + "submission.workflow.tasks.claimed.approve": "Одобрити", + "submission.workflow.tasks.claimed.approve_help": "Ðко Ñте прегледали Ñтавку и ако је погодна за придруживање колекцији, изаберите \"Одобрити\".", + "submission.workflow.tasks.claimed.edit": "Изменити", + "submission.workflow.tasks.claimed.edit_help": "Изаберите ову опцију да биÑте променили метаподатке Ñтавке.", + "submission.workflow.tasks.claimed.decline": "Одбити", + "submission.workflow.tasks.claimed.decline_help": "одбити помоћ", + "submission.workflow.tasks.claimed.reject.reason.info": "УнеÑите разлог за одбијање пријаве у поље иÑпод, наводећи да ли подноÑилац може да реши проблем и поново пошаље.", + "submission.workflow.tasks.claimed.reject.reason.placeholder": "Опишите разлог одбијања", + "submission.workflow.tasks.claimed.reject.reason.submit": "Одбаците Ñтавку", + "submission.workflow.tasks.claimed.reject.reason.title": "Разлог", + "submission.workflow.tasks.claimed.reject.submit": "Одбити", + "submission.workflow.tasks.claimed.reject_help": "Ðко Ñте прегледали Ñтавку и утврдили да <strong>није</strong> прикладна за придруживање колекцији, изаберите \"Одбиј\". Од Ð²Ð°Ñ Ñ›Ðµ Ñе затим тражити да унеÑете поруку која наводи зашто је Ñтавка неприкладна и да ли подноÑилац треба нешто да промени и поново пошаље.", + "submission.workflow.tasks.claimed.return": "Повратак у групу", + "submission.workflow.tasks.claimed.return_help": "Вратите задатак у групу тако да други кориÑник може да изврши задатак.", + "submission.workflow.tasks.generic.error": "Дошло је до грешке у раду...", + "submission.workflow.tasks.generic.processing": "Обрада...", + "submission.workflow.tasks.generic.submitter": "ПодноÑилац", + "submission.workflow.tasks.generic.success": "Операција уÑпела", + "submission.workflow.tasks.pool.claim": "Потраживање", + "submission.workflow.tasks.pool.claim_help": "Доделите овај задатак Ñеби.", + "submission.workflow.tasks.pool.hide-detail": "Сакрити детаље", + "submission.workflow.tasks.pool.show-detail": "Приказати детаље", + "submission.workspace.generic.view": "Погледати", + "submission.workspace.generic.view-help": "Изаберите ову опцију да биÑте видели метаподатке Ñтавке.", + "submitter.empty": "N/A", + "subscriptions.title": "Претплате", + "subscriptions.item": "Претплате на Ñтавке", + "subscriptions.collection": "Претплате на колекције", + "subscriptions.community": "Претплате за заједнице", + "subscriptions.subscription_type": "Ð’Ñ€Ñта претплате", + "subscriptions.frequency": "УчеÑталоÑÑ‚ претплате", + "subscriptions.frequency.D": "Дневно", + "subscriptions.frequency.M": "МеÑечно", + "subscriptions.frequency.W": "Ðедељно", + "subscriptions.tooltip": "Претплатити Ñе", + "subscriptions.modal.title": "Претплате", + "subscriptions.modal.type-frequency": "Ð’Ñ€Ñта и учеÑталоÑÑ‚", + "subscriptions.modal.close": "Затворити", + "subscriptions.modal.delete-info": "Да биÑте уклонили ову претплату, молимо поÑетите Ñтраницу \"Претплате\" иÑпод вашег кориÑничког профила", + "subscriptions.modal.new-subscription-form.type.content": "Садржај", + "subscriptions.modal.new-subscription-form.frequency.D": "Дневно", + "subscriptions.modal.new-subscription-form.frequency.W": "Ðедељно", + "subscriptions.modal.new-subscription-form.frequency.M": "МеÑечно", + "subscriptions.modal.new-subscription-form.submit": "ПоднеÑи", + "subscriptions.modal.new-subscription-form.processing": "Обрада...", + "subscriptions.modal.create.success": "УÑпешно Ñте претплаћени на {{ type }}.", + "subscriptions.modal.delete.success": "Претплата је уÑпешно избриÑана", + "subscriptions.modal.update.success": "Претплата на {{ type }} је уÑпешно ажурирана", + "subscriptions.modal.create.error": "Дошло је до грешке током креирања претплате", + "subscriptions.modal.delete.error": "Дошло је до грешке током бриÑања претплате", + "subscriptions.modal.update.error": "Дошло је до грешке током ажурирања претплате", + "subscriptions.table.dso": "Предмет", + "subscriptions.table.subscription_type": "Ð’Ñ€Ñта претплате", + "subscriptions.table.subscription_frequency": "УчеÑталоÑÑ‚ претплате", + "subscriptions.table.action": "ПоÑтупак", + "subscriptions.table.edit": "Изменити", + "subscriptions.table.delete": "ИзбриÑати", + "subscriptions.table.not-available": "Ðије доÑтупно", + "subscriptions.table.not-available-message": "Претплаћена Ñтавка је избриÑана или тренутно немате дозволу да је видите", + "subscriptions.table.empty.message": "Тренутно немате ниједну претплату. Да биÑте Ñе претплатили на ажурирања путем емаил-а за заједницу или колекцију, кориÑтите дугме за претплату на Ñтраници објекта.", + "thumbnail.default.alt": "Умањена Ñлика", + "thumbnail.default.placeholder": "Ðема доÑтупних умањених Ñлика", + "thumbnail.project.alt": "Лого пројекта", + "thumbnail.project.placeholder": "Слика референта пројекта", + "thumbnail.orgunit.alt": "Лого организационе јединице", + "thumbnail.orgunit.placeholder": "Слика референта организационе јединице", + "thumbnail.person.alt": "Профилна Ñлика", + "thumbnail.person.placeholder": "Слика профила није доÑтупна", + "title": "DSpace", + "vocabulary-treeview.header": "Приказ хијерархијÑког Ñтабла", + "vocabulary-treeview.load-more": "Учитати још", + "vocabulary-treeview.search.form.reset": "РеÑетовати", + "vocabulary-treeview.search.form.search": "Претрага", + "vocabulary-treeview.search.no-result": "Ðије било Ñтавки за приказ", + "vocabulary-treeview.tree.description.nsi": "The Norwegian Science Index", + "vocabulary-treeview.tree.description.srsc": "Категорије предмета иÑтраживања", + "vocabulary-treeview.info": "Изаберите тему коју желите да додате као филтер за претрагу", + "uploader.browse": "претражи", + "uploader.drag-message": "Превуците и Ñтавите Ñвоје фајлове овде", + "uploader.delete.btn-title": "Обриши", + "uploader.or": ", или", + "uploader.processing": "Обрада отпремљених фајлова... (Ñада је безбедно затворити ову Ñтраницу)", + "uploader.queue-length": "Дужина реда", + "virtual-metadata.delete-item.info": "Изаберите типове за које желите да Ñачувате виртуелне метаподатке као Ñтварне метаподатке", + "virtual-metadata.delete-item.modal-head": "Виртуелни метаподаци ове релације", + "virtual-metadata.delete-relationship.modal-head": "Изаберите Ñтавке за које желите да Ñачувате виртуелне метаподатке као Ñтварне метаподатке", + "supervisedWorkspace.search.results.head": "Ðадзиране Ñтавке", + "workspace.search.results.head": "Ваши поднеÑци", + "workflowAdmin.search.results.head": "Управљање радним процеÑом", + "workflow.search.results.head": "Радни задаци", + "supervision.search.results.head": "Задаци радног процеÑа и радног проÑтора", + "workflow-item.edit.breadcrumbs": "Измена Ñтавке радног процеÑа", + "workflow-item.edit.title": "Измена Ñтавке радног процеÑа", + "workflow-item.delete.notification.success.title": "ИзбриÑано", + "workflow-item.delete.notification.success.content": "Ова Ñтавка радног процеÑа је уÑпешно избриÑана", + "workflow-item.delete.notification.error.title": "Ðешто није у реду", + "workflow-item.delete.notification.error.content": "Ðије могуће избриÑати Ñтавку процеÑа рада", + "workflow-item.delete.title": "Избришите Ñтавку радног процеÑа", + "workflow-item.delete.header": "Избришите Ñтавку радног процеÑа", + "workflow-item.delete.button.cancel": "Поништити, отказати", + "workflow-item.delete.button.confirm": "Избришите", + "workflow-item.send-back.notification.success.title": "Враћено подноÑиоцу", + "workflow-item.send-back.notification.success.content": "Ова Ñтавка радног процеÑа је уÑпешно враћена подноÑиоцу", + "workflow-item.send-back.notification.error.title": "Ðешто није у реду", + "workflow-item.send-back.notification.error.content": "Ставка радног процеÑа није могла да Ñе врати подноÑиоцу", + "workflow-item.send-back.title": "Вратите Ñтавку радног процеÑа подноÑиоцу", + "workflow-item.send-back.header": "Вратите Ñтавку радног процеÑа подноÑиоцу", + "workflow-item.send-back.button.cancel": "Поништити, отказати", + "workflow-item.send-back.button.confirm": "Вратити", + "workflow-item.view.breadcrumbs": "Приказ радног процеÑа", + "workspace-item.view.breadcrumbs": "Приказ радног проÑтора", + "workspace-item.view.title": "Приказ радног проÑтора", + "workspace-item.delete.breadcrumbs": "Избришите радни проÑтор", + "workspace-item.delete.header": "Избришите Ñтавку радног проÑтора", + "workspace-item.delete.button.confirm": "Избришите", + "workspace-item.delete.button.cancel": "Поништити, отказати", + "workspace-item.delete.notification.success.title": "ИзбриÑан", + "workspace-item.delete.title": "Ова Ñтавка радног проÑтора је уÑпешно избриÑана", + "workspace-item.delete.notification.error.title": "Ðешто није у реду", + "workspace-item.delete.notification.error.content": "Ðије могуће избриÑати Ñтавку радног проÑтора", + "workflow-item.advanced.title": "Ðапредни радни процеÑ", + "workflow-item.selectrevieweraction.notification.success.title": "Изабрани рецензент", + "workflow-item.selectrevieweraction.notification.success.content": "Рецензент за ову Ñтавку радног процеÑа је уÑпешно изабран", + "workflow-item.selectrevieweraction.notification.error.title": "Ðешто није у реду", + "workflow-item.selectrevieweraction.notification.error.content": "Ðије могуће изабрати рецензента за ову Ñтавку радног процеÑа", + "workflow-item.selectrevieweraction.title": "Изаберите рецензента", + "workflow-item.selectrevieweraction.header": "Изаберите рецензента", + "workflow-item.selectrevieweraction.button.cancel": "Поништити, отказати", + "workflow-item.selectrevieweraction.button.confirm": "Потврдите", + "workflow-item.scorereviewaction.notification.success.title": "Оцена прегледа", + "workflow-item.scorereviewaction.notification.success.content": "Оцена за ову Ñтавку радног процеÑа је уÑпешно поÑлата", + "workflow-item.scorereviewaction.notification.error.title": "Ðешто није у реду", + "workflow-item.scorereviewaction.notification.error.content": "Ðије могуће оценити ову Ñтавку", + "workflow-item.scorereviewaction.title": "Оцените ову Ñтавку", + "workflow-item.scorereviewaction.header": "Оцените ову Ñтавку", + "workflow-item.scorereviewaction.button.cancel": "Поништити, отказати", + "workflow-item.scorereviewaction.button.confirm": "Потврдите", + "idle-modal.header": "СеÑија уÑкоро иÑтиче", + "idle-modal.info": "Из безбедноÑних разлога, кориÑничке ÑеÑије иÑтичу поÑле {{ timeToExpire }} минута неактивноÑти. Ваша ÑеÑија уÑкоро иÑтиче. Да ли желите да продужите или да Ñе одјавите?", + "idle-modal.log-out": "Одјавити Ñе", + "idle-modal.extend-session": "Продужите ÑеÑију", + "researcher.profile.action.processing": "Обрада...", + "researcher.profile.associated": "Повезани профил иÑтраживача", + "researcher.profile.change-visibility.fail": "Дошло је до неочекиване грешке приликом промене видљивоÑти профила", + "researcher.profile.create.new": "Креирај нови", + "researcher.profile.create.success": "Профил иÑтраживача је уÑпешно креиран", + "researcher.profile.create.fail": "Дошло је до грешке током креирања профила иÑтраживача", + "researcher.profile.delete": "Избришите", + "researcher.profile.expose": "Излагање", + "researcher.profile.hide": "Сакријте", + "researcher.profile.not.associated": "Профил иÑтраживача још није повезан", + "researcher.profile.view": "Поглед", + "researcher.profile.private.visibility": "ПРИВÐТÐО", + "researcher.profile.public.visibility": "ЈÐÐ’ÐО", + "researcher.profile.status": "СтатуÑ:", + "researcherprofile.claim.not-authorized": "ÐиÑте овлашћени да потврдите ову Ñтавку. За више детаља контактирајте админиÑтратора(е).", + "researcherprofile.error.claim.body": "Дошло је до грешке при потврђивању профила, молимо Ð²Ð°Ñ Ð¿Ð¾ÐºÑƒÑˆÐ°Ñ˜Ñ‚Ðµ поново каÑније", + "researcherprofile.error.claim.title": "Грешка", + "researcherprofile.success.claim.body": "Профил је уÑпешно потврђен", + "researcherprofile.success.claim.title": "УÑпешно", + "person.page.orcid.create": "Креирајте ORCID ID", + "person.page.orcid.granted-authorizations": "Одобрена овлашћења", + "person.page.orcid.grant-authorizations": "Одобрите овлашћења", + "person.page.orcid.link": "Повежите Ñе на ORCID ID", + "person.page.orcid.link.processing": "Повезивање профила Ñа ORCID-ом...", + "person.page.orcid.link.error.message": "Ðешто је пошло наопако при повезивању профила Ñа ORCID-ом. Ðко Ñе проблем и даље јавља, контактирајте админиÑтратора.", + "person.page.orcid.orcid-not-linked-message": "ORCID ID овог профила ({{ orcid }}) још увек није повезан Ñа налогом у ORCID региÑтру или је веза иÑтекла.", + "person.page.orcid.unlink": "Прекините везу Ñа ORCID-ом", + "person.page.orcid.unlink.processing": "Обрада...", + "person.page.orcid.missing-authorizations": "ÐедоÑтају овлашћења", + "person.page.orcid.missing-authorizations-message": "ÐедоÑтају Ñледећа овлашћења:", + "person.page.orcid.no-missing-authorizations-message": "Дивно! Ово поље је празно, тако да Ñте одобрили Ñва права приÑтупа за коришћење Ñвих функција које нуди ваша инÑтитуција.", + "person.page.orcid.no-orcid-message": "Још увек није повезан ORCID ID. Кликом на дугме иÑпод могуће је повезати овај профил Ñа ORCID налогом.", + "person.page.orcid.profile-preferences": "Приоритети профила", + "person.page.orcid.funding-preferences": "Приоритети финанÑирања", + "person.page.orcid.publications-preferences": "Приоритети публикације", + "person.page.orcid.remove-orcid-message": "Ðко треба да уклоните Ñвој ORCID, контактирајте админиÑтратора репозиторијума", + "person.page.orcid.save.preference.changes": "Подешавања ажурирања", + "person.page.orcid.sync-profile.affiliation": "ПрипадноÑÑ‚", + "person.page.orcid.sync-profile.biographical": "БиографÑки подаци", + "person.page.orcid.sync-profile.education": "Образовање", + "person.page.orcid.sync-profile.identifiers": "Идентификатори", + "person.page.orcid.sync-fundings.all": "Сва ÑредÑтва", + "person.page.orcid.sync-fundings.mine": "Моја ÑредÑтва", + "person.page.orcid.sync-fundings.my_selected": "Одабрана ÑредÑтва", + "person.page.orcid.sync-fundings.disabled": "Онемогућено", + "person.page.orcid.sync-publications.all": "Све публикације", + "person.page.orcid.sync-publications.mine": "Моје публикације", + "person.page.orcid.sync-publications.my_selected": "Изабране публикације", + "person.page.orcid.sync-publications.disabled": "Онемогућено", + "person.page.orcid.sync-queue.discard": "Одбаците промену и немојте да Ñе Ñинхронизујете Ñа ORCID региÑтром", + "person.page.orcid.sync-queue.discard.error": "Одбацивање запиÑа ORCID реда није уÑпело", + "person.page.orcid.sync-queue.discard.success": "Ð—Ð°Ð¿Ð¸Ñ ORCID реда је уÑпешно одбачен", + "person.page.orcid.sync-queue.empty-message": "Ð—Ð°Ð¿Ð¸Ñ ORCID региÑтра је празан", + "person.page.orcid.sync-queue.table.header.type": "Тип", + "person.page.orcid.sync-queue.table.header.description": "ОпиÑ", + "person.page.orcid.sync-queue.table.header.action": "ПоÑтупак", + "person.page.orcid.sync-queue.description.affiliation": "ПрипадноÑти", + "person.page.orcid.sync-queue.description.country": "Држава", + "person.page.orcid.sync-queue.description.education": "Образовања", + "person.page.orcid.sync-queue.description.external_ids": "Спољашњи ID", + "person.page.orcid.sync-queue.description.other_names": "Друга имена", + "person.page.orcid.sync-queue.description.qualification": "Квалификације", + "person.page.orcid.sync-queue.description.researcher_urls": "URL-ови иÑтраживача", + "person.page.orcid.sync-queue.description.keywords": "Кључне речи", + "person.page.orcid.sync-queue.tooltip.insert": "Додајте нови ÑƒÐ½Ð¾Ñ Ñƒ ORCID региÑтар", + "person.page.orcid.sync-queue.tooltip.update": "Ðжурирајте овај ÑƒÐ½Ð¾Ñ Ñƒ ORCID региÑтру", + "person.page.orcid.sync-queue.tooltip.delete": "Уклоните овај ÑƒÐ½Ð¾Ñ Ð¸Ð· ORCID региÑтра", + "person.page.orcid.sync-queue.tooltip.publication": "Публикација", + "person.page.orcid.sync-queue.tooltip.project": "Пројекат", + "person.page.orcid.sync-queue.tooltip.affiliation": "ПрипадноÑÑ‚", + "person.page.orcid.sync-queue.tooltip.education": "Образовање", + "person.page.orcid.sync-queue.tooltip.qualification": "Квалификација", + "person.page.orcid.sync-queue.tooltip.other_names": "Друго име", + "person.page.orcid.sync-queue.tooltip.country": "Држава", + "person.page.orcid.sync-queue.tooltip.keywords": "Кључна реч", + "person.page.orcid.sync-queue.tooltip.external_ids": "Спољашњи идентификатор", + "person.page.orcid.sync-queue.tooltip.researcher_urls": "URL иÑтраживача", + "person.page.orcid.sync-queue.send": "Синхронизација Ñа ORCID региÑтром", + "person.page.orcid.sync-queue.send.unauthorized-error.title": "ПриÑтупање ORCID-у није уÑпело због недоÑтајућих овлашћења.", + "person.page.orcid.sync-queue.send.unauthorized-error.content": "Кликните <a href='{{orcid}}'>овде</a> да поново доделите потребне дозволе. Ðко Ñе проблем наÑтави, контактирајте админиÑтратора", + "person.page.orcid.sync-queue.send.bad-request-error": "Слање ORCID-у није уÑпело јер реÑÑƒÑ€Ñ Ð¿Ð¾Ñлат у ORCID региÑтар није важећи", + "person.page.orcid.sync-queue.send.error": "Слање ORCID-у није уÑпело", + "person.page.orcid.sync-queue.send.conflict-error": "Слање ORCID-у није уÑпело јер Ñе реÑÑƒÑ€Ñ Ð²ÐµÑ› налази у ORCID региÑтру", + "person.page.orcid.sync-queue.send.not-found-warning": "РеÑÑƒÑ€Ñ Ñе више не налази у ORCID региÑтру.", + "person.page.orcid.sync-queue.send.success": "Слање ORCID-у је уÑпешно завршено", + "person.page.orcid.sync-queue.send.validation-error": "Подаци које желите да Ñинхронизујете Ñа ORCID-ом ниÑу иÑправни", + "person.page.orcid.sync-queue.send.validation-error.amount-currency.required": "Валута је обавезна", + "person.page.orcid.sync-queue.send.validation-error.external-id.required": "РеÑÑƒÑ€Ñ ÐºÐ¾Ñ˜Ð¸ Ñе шаље захтева најмање један идентификатор", + "person.page.orcid.sync-queue.send.validation-error.title.required": "ÐаÑлов је обавезан", + "person.page.orcid.sync-queue.send.validation-error.type.required": "dc.type је обавезан", + "person.page.orcid.sync-queue.send.validation-error.start-date.required": "Датум почетка је обавезан", + "person.page.orcid.sync-queue.send.validation-error.funder.required": "ФинанÑијер је неопходан", + "person.page.orcid.sync-queue.send.validation-error.country.invalid": "Ðеважеће 2 цифре ISO 3166 земља", + "person.page.orcid.sync-queue.send.validation-error.organization.required": "Потребна је организација", + "person.page.orcid.sync-queue.send.validation-error.organization.name-required": "Ðазив организације је обавезан", + "person.page.orcid.sync-queue.send.validation-error.publication.date-invalid": "Датум објављивања мора бити годину дана поÑле 1900. године", + "person.page.orcid.sync-queue.send.validation-error.organization.address-required": "Организација захтева адреÑу", + "person.page.orcid.sync-queue.send.validation-error.organization.city-required": "ÐдреÑа организације која Ñе шаље захтева град", + "person.page.orcid.sync-queue.send.validation-error.organization.country-required": "ÐдреÑа организације која Ñе шаље захтева важеће 2 цифре ISO 3166 земље", + "person.page.orcid.sync-queue.send.validation-error.disambiguated-organization.required": "Потребан је идентификатор за недвоÑмиÑленоÑÑ‚ организација. Подржани ID-ови Ñу GRID, Ringgold, Legal Entity identifiers (LEIs) и Crossref Funder Registry identifiers", + "person.page.orcid.sync-queue.send.validation-error.disambiguated-organization.value-required": "Идентификатори организације захтевају вредноÑÑ‚", + "person.page.orcid.sync-queue.send.validation-error.disambiguation-source.required": "Идентификаторима организације је потребан извор", + "person.page.orcid.sync-queue.send.validation-error.disambiguation-source.invalid": "Извор једног од идентификатора организације је неважећи. Подржани извори Ñу RINGGOLD, GRID, LEI и FUNDREF", + "person.page.orcid.synchronization-mode": "Ðачин Ñинхронизације", + "person.page.orcid.synchronization-mode.batch": "Batch", + "person.page.orcid.synchronization-mode.label": "Ðачин Ñинхронизације", + "person.page.orcid.synchronization-mode-message": "Молимо изаберите како желите да Ñе Ñинхронизација Ñа ORCID-ом одвија. Опције укључују \"Manual\" (морате ручно да пошаљете Ñвоје податке ORCID-у) или \"Batch\" (ÑиÑтем ће поÑлати ваше податке ORCID-у преко планиране Ñкрипте).", + "person.page.orcid.synchronization-mode-funding-message": "Изаберите да ли желите да пошаљете ваше повезане ентитете пројекта на лиÑту информација о финанÑирању вашег ORCID запиÑа.", + "person.page.orcid.synchronization-mode-publication-message": "Изаберите да ли желите да пошаљете ваше повезане ентитете публикације на лиÑту радова вашег ORCID запиÑа.", + "person.page.orcid.synchronization-mode-profile-message": "Изаберите да ли желите да пошаљете ваше биографÑке податке или личне идентификаторе у ваш ORCID запиÑ.", + "person.page.orcid.synchronization-settings-update.success": "Подешавања Ñинхронизације Ñу уÑпешно ажурирана", + "person.page.orcid.synchronization-settings-update.error": "Ðжурирање подешавања Ñинхронизације није уÑпело", + "person.page.orcid.synchronization-mode.manual": "УпутÑтво", + "person.page.orcid.scope.authenticate": "Преузмите Ñвој ORCID ID", + "person.page.orcid.scope.read-limited": "Читајте Ñвоје информације уз видљивоÑÑ‚ подешену на Поуздане Ñтране", + "person.page.orcid.scope.activities-update": "Додајте/ажурирајте ваше иÑтраживачке активноÑти", + "person.page.orcid.scope.person-update": "Додајте/ажурирајте друге информације о Ñеби", + "person.page.orcid.unlink.success": "Прекид везе између профила и ORCID региÑтра је био уÑпешан", + "person.page.orcid.unlink.error": "Дошло је до грешке приликом прекида везе између профила и ORCID региÑтра. Покушајте поново", + "person.orcid.sync.setting": "ORCID подешавања Ñинхронизације", + "person.orcid.registry.queue": "ORCID Registry Queue", + "person.orcid.registry.auth": "ORCID овлашћења", + "home.recent-submissions.head": "Ðедавни поднеÑци", + "listable-notification-object.default-message": "Ðије могуће преузети овај објекат", + "system-wide-alert-banner.retrieval.error": "Ðешто није у реду при преузимању банера ÑиÑтемÑког упозорења", + "system-wide-alert-banner.countdown.prefix": "У", + "system-wide-alert-banner.countdown.days": "{{days}} дан(и),", + "system-wide-alert-banner.countdown.hours": "{{hours}} Ñат(и) и", + "system-wide-alert-banner.countdown.minutes": "{{minutes}} минут(и):", + "menu.section.system-wide-alert": "СиÑтемÑко упозорење", + "system-wide-alert.form.header": "СиÑтемÑко упозорење", + "system-wide-alert-form.retrieval.error": "Ðешто није у реду при преузимању ÑиÑтемÑког упозорења", + "system-wide-alert.form.cancel": "Отказати", + "system-wide-alert.form.save": "Сачувати", + "system-wide-alert.form.label.active": "ÐКТИВÐО", + "system-wide-alert.form.label.inactive": "ÐЕÐКТИВÐО", + "system-wide-alert.form.error.message": "СиÑтемÑко упозорење мора Ñадржати поруку", + "system-wide-alert.form.label.message": "Порука упозорења", + "system-wide-alert.form.label.countdownTo.enable": "Укључите временÑко одбројавање", + "system-wide-alert.form.label.countdownTo.hint": "Савет: ПодеÑите тајмер за одбројавање. Када је укључен, датум Ñе може подеÑити у будућноÑти и банер ÑиÑтемÑког упозорења ће извршити одбројавање до поÑтављеног датума. Када тајмер заврши, неÑтаће из упозорења. Сервер ÐЕЋЕ бити аутоматÑки зауÑтављен.", + "system-wide-alert.form.label.preview": "Преглед ÑиÑтемÑког упозорења", + "system-wide-alert.form.update.success": "СиÑтемÑко упозорење је уÑпешно ажурирано", + "system-wide-alert.form.update.error": "Ðешто није у реду Ñа ажурирањем ÑиÑтемÑког упозорења", + "system-wide-alert.form.create.success": "СиÑтемÑко упозорење је уÑпешно креирано", + "system-wide-alert.form.create.error": "Ðешто није у реду Ñа креирањем ÑиÑтемÑког упозорења", + "admin.system-wide-alert.breadcrumbs": "СиÑтемÑка упозорења", + "admin.system-wide-alert.title": "СиÑтемÑка упозорења", + "item-access-control-title": "Овај образац вам омогућава да извршите промене уÑлова приÑтупа метаподацима Ñтавке или њеним битÑтрим-овима.", + "collection-access-control-title": "Овај образац вам омогућава да извршите измене уÑлова приÑтупа Ñвим Ñтавкама ове колекције. Промене могу да Ñе изврше или на Ñвим метаподацима Ñтавке или на целом Ñадржају (битÑтрим-ова).", + "community-access-control-title": "Овај образац вам омогућава да извршите промене уÑлова приÑтупа Ñвим Ñтавкама било које колекције у овој заједници. Промене могу да Ñе изврше или на Ñвим метаподацима Ñтавке или на целом Ñадржају (битÑтрим-ова).", + "access-control-item-header-toggle": "Метаподаци Ñтавке", + "access-control-bitstream-header-toggle": "битÑтрим-ови", + "access-control-mode": "Ðачин", + "access-control-access-conditions": "УÑлови приÑтупа", + "access-control-no-access-conditions-warning-message": "Тренутно ниÑу наведени уÑлови приÑтупа иÑпод. Ðко Ñе изврши, то ће заменити тренутне уÑлове приÑтупа подразумеваним уÑловима приÑтупа наÑлеђеним из влаÑничке колекције.", + "access-control-replace-all": "Замена уÑлова приÑтупа", + "access-control-add-to-existing": "Додати поÑтојећим", + "access-control-limit-to-specific": "Ограничите промене на одређене битÑтрим-ове", + "access-control-process-all-bitstreams": "Ðжурирајте Ñве битÑтрим-ове у Ñтавци", + "access-control-bitstreams-selected": "изабрани битÑтрим-ови", + "access-control-cancel": "Отказати", + "access-control-execute": "Извршити", + "access-control-add-more": "Додати још", + "access-control-select-bitstreams-modal.title": "Изаберите битÑтрим-ове", + "access-control-select-bitstreams-modal.no-items": "Ðема Ñтавки за приказ.", + "access-control-select-bitstreams-modal.close": "Затворити", + "access-control-option-label": "Ð’Ñ€Ñта уÑлова приÑтупа", + "access-control-option-note": "Изаберите уÑлов приÑтупа који ћете применити на изабране објекте.", + "access-control-option-start-date": "ПриÑтуп одобрен од", + "access-control-option-start-date-note": "Изаберите датум од којег Ñе примењује одговарајући уÑлов приÑтупа", + "access-control-option-end-date": "ПриÑтуп одобрен до", + "access-control-option-end-date-note": "Изаберите датум до којег Ñе примењује одговарајући уÑлов приÑтупа", +} diff --git a/src/assets/i18n/sr-lat.json5 b/src/assets/i18n/sr-lat.json5 index df8cfa18c9..ebcc8aeb9a 100644 --- a/src/assets/i18n/sr-lat.json5 +++ b/src/assets/i18n/sr-lat.json5 @@ -208,7 +208,7 @@ "admin.access-control.groups.form.delete-group.modal.confirm": "IzbriÅ¡ite", "admin.access-control.groups.form.notification.deleted.success": "Grupa \"{{ name }}\" je uspeÅ¡no obrisana", "admin.access-control.groups.form.notification.deleted.failure.title": "Brisanje grupe \"{{ name }}\" nije uspelo", - "admin.access-control.groups.form.notification.deleted.failure.content": "Uzrok: \"{{ uzrok }}\"", + "admin.access-control.groups.form.notification.deleted.failure.content": "Uzrok: \"{{ cause }}\"", "admin.access-control.groups.form.members-list.head": "EPeople", "admin.access-control.groups.form.members-list.search.head": "Dodajte EPeople", "admin.access-control.groups.form.members-list.button.see-all": "Pregledajte sve", @@ -666,12 +666,12 @@ "cookies.consent.ok": "To je u redu", "cookies.consent.save": "saÄuvati", "cookies.consent.content-notice.title": "Saglasnost za kolaÄiće", - "cookies.consent.content-notice.description": "Prikupljamo i obraÄ‘ujemo vaÅ¡e liÄne podatke u sledeće svrhe: <strong>Provera autentiÄnosti, podeÅ¡avanja, potvrda i statistika</strong>. <br/> Da biste saznali viÅ¡e, proÄitajte naÅ¡u {privaciPolicy}.", + "cookies.consent.content-notice.description": "Prikupljamo i obraÄ‘ujemo vaÅ¡e liÄne podatke u sledeće svrhe: <strong>Provera autentiÄnosti, podeÅ¡avanja, potvrda i statistika</strong>. <br/> Da biste saznali viÅ¡e, proÄitajte naÅ¡u {privacyPolicy}.", "cookies.consent.content-notice.description.no-privacy": "Prikupljamo i obraÄ‘ujemo vaÅ¡e liÄne podatke u sledeće svrhe: <strong>Provera autentiÄnosti, podeÅ¡avanja, potvrda i statistika</strong>.", "cookies.consent.content-notice.learnMore": "Prilagoditi", "cookies.consent.content-modal.description": "Ovde možete videti i prilagoditi informacije koje prikupljamo o vama.", "cookies.consent.content-modal.privacy-policy.name": "Pravila o privatnosti", - "cookies.consent.content-modal.privacy-policy.text": "Da saznate viÅ¡e, proÄitajte naÅ¡u {privaciPolicy}.", + "cookies.consent.content-modal.privacy-policy.text": "Da saznate viÅ¡e, proÄitajte naÅ¡u {privacyPolicy}.", "cookies.consent.content-modal.title": "Informacije koje prikupljamo", "cookies.consent.content-modal.services": "Usluge", "cookies.consent.content-modal.service": "Usluga", @@ -1258,7 +1258,7 @@ "item.version.history.head": "Istorija verzija", "item.version.history.return": "Nazad", "item.version.history.selected": "Izabrana verzija", - "item.version.history.selected.alert": "Trenutno gledate verziju {{verzija}} stavke.", + "item.version.history.selected.alert": "Trenutno gledate verziju {{version}} stavke.", "item.version.history.table.version": "Verzija", "item.version.history.table.item": "Stavka", "item.version.history.table.editor": "Urednik", @@ -1547,7 +1547,7 @@ "pagination.options.description": "Opcije straniÄenja", "pagination.results-per-page": "Rezultati po stranici", "pagination.showing.detail": "{{ range }} od {{ total }}", - "pagination.showing.label": "Prikazuje se", + "pagination.showing.label": "Prikazuje se ", "pagination.sort-direction": "Opcije sortiranja", "person.listelement.badge": "Osoba", "person.listelement.no-title": "Ime nije pronaÄ‘eno", @@ -1965,7 +1965,7 @@ "submission.edit.title": "Izmena podneska", "submission.general.cancel": "Otkazati", "submission.general.cannot_submit": "Nemate dozvolu da podnesete novu prijavu.", - "submission.general.deposit": "Depozit", + "submission.general.deposit": "Deponovati", "submission.general.discard.confirm.cancel": "Otkazati", "submission.general.discard.confirm.info": "Ova operacija se ne može opozvati. Da li ste sigurni?", "submission.general.discard.confirm.submit": "Da siguran sam", diff --git a/src/config/default-app-config.ts b/src/config/default-app-config.ts index 523ccf4f50..61e7abcd62 100644 --- a/src/config/default-app-config.ts +++ b/src/config/default-app-config.ts @@ -238,6 +238,7 @@ export class DefaultAppConfig implements AppConfig { { code: 'bn', label: 'বাংলা', active: true }, { code: 'hi', label: 'हिंदी', active: true}, { code: 'el', label: 'Ελληνικά', active: true }, + { code: 'sr-cyr', label: 'СрпÑки', active: true}, { code: 'uk', label: 'YкраїÌнÑька', active: true} ]; -- GitLab From 5ab69af71ef83ec121049e10511dca3709434b02 Mon Sep 17 00:00:00 2001 From: imilos <imilos@gmail.com> Date: Fri, 20 Oct 2023 11:27:22 +0200 Subject: [PATCH 117/183] Added Serbian cyrilic translation and corrected Serbian latin translation. (cherry picked from commit aa9e12dcfe10fab31d9fcc9f96088ccf31f8e843) --- src/assets/i18n/sr-cyr.json5 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/i18n/sr-cyr.json5 b/src/assets/i18n/sr-cyr.json5 index 5f2dc12f35..81b776529c 100644 --- a/src/assets/i18n/sr-cyr.json5 +++ b/src/assets/i18n/sr-cyr.json5 @@ -706,7 +706,7 @@ "curation.form.submit.error.invalid-handle": "Ðије могуће одредити handle за овај објекат", "curation.form.handle.label": "Handle:", "curation.form.handle.hint": "Савет: УнеÑите [your-handle-prefix]/0 да биÑте покренули задатак на целом Ñајту (ову могућноÑÑ‚ не подржавају Ñви задаци)", - "deny-request-copy.email.message": "Поштовани {{ recipientName }}, \н Као одговор на ваш захтев, Ñа жаљењем Ð²Ð°Ñ Ð¾Ð±Ð°Ð²ÐµÑˆÑ‚Ð°Ð²Ð°Ð¼ да није могуће поÑлати копију фајла коју Ñте тражили, у вези Ñа документом: \"{{ itemUrl }}\" ({{ itemName }}), чији Ñам аутор. \н Срдачан поздрав, \н{{ authorName }} <{{ authorEmail }}>", + "deny-request-copy.email.message": "Поштовани {{ recipientName }}, \n Као одговор на ваш захтев, Ñа жаљењем Ð²Ð°Ñ Ð¾Ð±Ð°Ð²ÐµÑˆÑ‚Ð°Ð²Ð°Ð¼ да није могуће поÑлати копију фајла коју Ñте тражили, у вези Ñа документом: \"{{ itemUrl }}\" ({{ itemName }}), чији Ñам аутор. \n Срдачан поздрав, \n{{ authorName }} <{{ authorEmail }}>", "deny-request-copy.email.subject": "Затражите копију документа", "deny-request-copy.error": "Дошло је до грешке", "deny-request-copy.header": "Одбијен захтев за копирање документа", -- GitLab From 86657108dd8c49e9cefa8a3fb74979774b8c2923 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Sat, 21 Oct 2023 18:09:59 +0200 Subject: [PATCH 118/183] Merge branch 'fix-display-order-authentication-methods_contribute-7.4' into fix-display-order-authentication-methods_contribute-7.6 # Conflicts: # src/app/shared/log-in/log-in.component.html # src/app/shared/log-in/log-in.component.ts --- .../authorization-data.service.ts | 2 +- .../authorization-utils.ts | 4 ++-- .../container/log-in-container.component.ts | 16 +++++-------- src/app/shared/log-in/log-in.component.html | 10 +++----- src/app/shared/log-in/log-in.component.ts | 24 ++++--------------- .../methods/log-in.methods-decorator.ts | 5 ++-- 6 files changed, 20 insertions(+), 41 deletions(-) diff --git a/src/app/core/data/feature-authorization/authorization-data.service.ts b/src/app/core/data/feature-authorization/authorization-data.service.ts index c43d335234..9573042272 100644 --- a/src/app/core/data/feature-authorization/authorization-data.service.ts +++ b/src/app/core/data/feature-authorization/authorization-data.service.ts @@ -74,7 +74,7 @@ export class AuthorizationDataService extends BaseDataService<Authorization> imp return []; } }), - catchError(() => observableOf(false)), + catchError(() => observableOf([])), oneAuthorizationMatchesFeature(featureId) ); } diff --git a/src/app/core/data/feature-authorization/authorization-utils.ts b/src/app/core/data/feature-authorization/authorization-utils.ts index d1b65f6123..a4e5e4d997 100644 --- a/src/app/core/data/feature-authorization/authorization-utils.ts +++ b/src/app/core/data/feature-authorization/authorization-utils.ts @@ -68,13 +68,13 @@ export const oneAuthorizationMatchesFeature = (featureID: FeatureID) => source.pipe( switchMap((authorizations: Authorization[]) => { if (isNotEmpty(authorizations)) { - return observableCombineLatest( + return observableCombineLatest([ ...authorizations .filter((authorization: Authorization) => hasValue(authorization.feature)) .map((authorization: Authorization) => authorization.feature.pipe( getFirstSucceededRemoteDataPayload() )) - ); + ]); } else { return observableOf([]); } diff --git a/src/app/shared/log-in/container/log-in-container.component.ts b/src/app/shared/log-in/container/log-in-container.component.ts index f6a08a1e1e..28e9f2f7e1 100644 --- a/src/app/shared/log-in/container/log-in-container.component.ts +++ b/src/app/shared/log-in/container/log-in-container.component.ts @@ -1,5 +1,4 @@ -import { Component, Injector, Input, OnInit } from '@angular/core'; - +import { Component, Injector, Input, OnInit, Type } from '@angular/core'; import { rendersAuthMethodType } from '../methods/log-in.methods-decorator'; import { AuthMethod } from '../../../core/auth/models/auth.method'; @@ -27,12 +26,9 @@ export class LogInContainerComponent implements OnInit { */ public objectInjector: Injector; - /** - * Initialize instance variables - * - * @param {Injector} injector - */ - constructor(private injector: Injector) { + constructor( + protected injector: Injector, + ) { } /** @@ -51,8 +47,8 @@ export class LogInContainerComponent implements OnInit { /** * Find the correct component based on the AuthMethod's type */ - getAuthMethodContent(): string { - return rendersAuthMethodType(this.authMethod.authMethodType); + getAuthMethodContent(): Type<Component> { + return rendersAuthMethodType(this.authMethod.authMethodType); } } diff --git a/src/app/shared/log-in/log-in.component.html b/src/app/shared/log-in/log-in.component.html index 857b977360..030d1a8176 100644 --- a/src/app/shared/log-in/log-in.component.html +++ b/src/app/shared/log-in/log-in.component.html @@ -1,11 +1,7 @@ <ds-themed-loading *ngIf="(loading | async) || (isAuthenticated | async)" class="m-5"></ds-themed-loading> <div *ngIf="!(loading | async) && !(isAuthenticated | async)" class="px-4 py-3 mx-auto login-container"> - <ng-container *ngFor="let authMethod of getOrderedAuthMethods(authMethods | async); let last = last"> - <div [class.d-none]="contentRef.innerText?.trim().length === 0"> - <div #contentRef> - <ds-log-in-container [authMethod]="authMethod" [isStandalonePage]="isStandalonePage"></ds-log-in-container> - </div> - <div *ngIf="!last" class="dropdown-divider my-2"></div> - </div> + <ng-container *ngFor="let authMethod of (authMethods | async); let last = last"> + <ds-log-in-container [authMethod]="authMethod" [isStandalonePage]="isStandalonePage"></ds-log-in-container> + <div *ngIf="!last" class="dropdown-divider my-2"></div> </ng-container> </div> diff --git a/src/app/shared/log-in/log-in.component.ts b/src/app/shared/log-in/log-in.component.ts index 4bfae18332..0fdc029cb4 100644 --- a/src/app/shared/log-in/log-in.component.ts +++ b/src/app/shared/log-in/log-in.component.ts @@ -11,12 +11,8 @@ import { import { hasValue } from '../empty.util'; import { AuthService } from '../../core/auth/auth.service'; import { CoreState } from '../../core/core-state.model'; -import { AuthMethodType } from '../../core/auth/models/auth.method-type'; +import { rendersAuthMethodType } from './methods/log-in.methods-decorator'; -/** - * /users/sign-in - * @class LogInComponent - */ @Component({ selector: 'ds-log-in', templateUrl: './log-in.component.html', @@ -57,8 +53,10 @@ export class LogInComponent implements OnInit { ngOnInit(): void { this.authMethods = this.store.pipe( select(getAuthenticationMethods), - // ignore the ip authentication method when it's returned by the backend - map((methods: AuthMethod[]) => methods.filter((authMethod: AuthMethod) => authMethod.authMethodType !== AuthMethodType.Ip)), + map((methods: AuthMethod[]) => methods + .filter((authMethod: AuthMethod) => rendersAuthMethodType(authMethod.authMethodType) !== undefined) + .sort((method1: AuthMethod, method2: AuthMethod) => method1.position - method2.position) + ), ); // set loading @@ -75,16 +73,4 @@ export class LogInComponent implements OnInit { }); } - /** - * Returns an ordered list of {@link AuthMethod}s based on their position. - * - * @param authMethods The {@link AuthMethod}s to sort - */ - getOrderedAuthMethods(authMethods: AuthMethod[] | null): AuthMethod[] { - if (hasValue(authMethods)) { - return [...authMethods].sort((method1: AuthMethod, method2: AuthMethod) => method1.position - method2.position); - } else { - return []; - } - } } diff --git a/src/app/shared/log-in/methods/log-in.methods-decorator.ts b/src/app/shared/log-in/methods/log-in.methods-decorator.ts index 0614bdeb51..e30a4813dd 100644 --- a/src/app/shared/log-in/methods/log-in.methods-decorator.ts +++ b/src/app/shared/log-in/methods/log-in.methods-decorator.ts @@ -1,6 +1,7 @@ +import { Component, Type } from '@angular/core'; import { AuthMethodType } from '../../../core/auth/models/auth.method-type'; -const authMethodsMap = new Map(); +const authMethodsMap: Map<AuthMethodType, Type<Component>> = new Map(); export function renderAuthMethodFor(authMethodType: AuthMethodType) { return function decorator(objectElement: any) { @@ -11,6 +12,6 @@ export function renderAuthMethodFor(authMethodType: AuthMethodType) { }; } -export function rendersAuthMethodType(authMethodType: AuthMethodType) { +export function rendersAuthMethodType(authMethodType: AuthMethodType): Type<Component> | undefined { return authMethodsMap.get(authMethodType); } -- GitLab From d04d9fd2503f8377168b39fa31825ea5f939ee96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eike=20Martin=20L=C3=B6hden?= <eike.loehden@ub.uni-marburg.de> Date: Mon, 10 Jul 2023 15:29:14 +0200 Subject: [PATCH 119/183] Added themed-user-menu component. --- .../user-menu/themed-user-menu.component.ts | 33 +++++++++++++++++++ src/app/shared/shared.module.ts | 2 ++ 2 files changed, 35 insertions(+) create mode 100644 src/app/shared/auth-nav-menu/user-menu/themed-user-menu.component.ts diff --git a/src/app/shared/auth-nav-menu/user-menu/themed-user-menu.component.ts b/src/app/shared/auth-nav-menu/user-menu/themed-user-menu.component.ts new file mode 100644 index 0000000000..09f02eb761 --- /dev/null +++ b/src/app/shared/auth-nav-menu/user-menu/themed-user-menu.component.ts @@ -0,0 +1,33 @@ +import {Component, Input} from '@angular/core' +import {ThemedComponent} from '../../theme-support/themed.component'; +import {UserMenuComponent} from './user-menu.component'; + +/** + * This component represents the user nav menu. + */ +@Component({ + selector: 'ds-themed-user-menu', + templateUrl: './../../theme-support/themed.component.html', + styleUrls: [] +}) +export class ThemedUserMenuComponent extends ThemedComponent<UserMenuComponent>{ + + /** + * The input flag to show user details in navbar expandable menu + */ + @Input() inExpandableNavbar = false; + + protected inAndOutputNames: (keyof UserMenuComponent & keyof this)[] = ['inExpandableNavbar']; + + protected getComponentName(): string { + return 'UserMenuComponent'; + } + + protected importThemedComponent(themeName: string): Promise<any> { + return import((`../../../../themes/${themeName}/app/shared/auth-nav-menu/user-menu/user-menu.component`)); + } + + protected importUnthemedComponent(): Promise<any> { + return import('./user-menu.component'); + } +} diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index e3a238670d..743a47deb1 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -282,6 +282,7 @@ import { import { BitstreamListItemComponent } from './object-list/bitstream-list-item/bitstream-list-item.component'; import { NgxPaginationModule } from 'ngx-pagination'; import { ThemedLangSwitchComponent } from './lang-switch/themed-lang-switch.component'; +import {ThemedUserMenuComponent} from './auth-nav-menu/user-menu/themed-user-menu.component'; const MODULES = [ CommonModule, @@ -330,6 +331,7 @@ const COMPONENTS = [ AuthNavMenuComponent, ThemedAuthNavMenuComponent, UserMenuComponent, + ThemedUserMenuComponent, DsSelectComponent, ErrorComponent, LangSwitchComponent, -- GitLab From de826634c82008dfffb5c5db4d7e1f737590fd87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eike=20Martin=20L=C3=B6hden?= <eike.loehden@ub.uni-marburg.de> Date: Mon, 10 Jul 2023 15:34:25 +0200 Subject: [PATCH 120/183] Corrected missing semicolon. --- .../auth-nav-menu/user-menu/themed-user-menu.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/shared/auth-nav-menu/user-menu/themed-user-menu.component.ts b/src/app/shared/auth-nav-menu/user-menu/themed-user-menu.component.ts index 09f02eb761..cecafc9d5c 100644 --- a/src/app/shared/auth-nav-menu/user-menu/themed-user-menu.component.ts +++ b/src/app/shared/auth-nav-menu/user-menu/themed-user-menu.component.ts @@ -1,4 +1,4 @@ -import {Component, Input} from '@angular/core' +import {Component, Input} from '@angular/core'; import {ThemedComponent} from '../../theme-support/themed.component'; import {UserMenuComponent} from './user-menu.component'; -- GitLab From a4aecce865347d923e982eb88e316cecc0f5d7f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eike=20Martin=20L=C3=B6hden?= <eike.loehden@ub.uni-marburg.de> Date: Mon, 10 Jul 2023 15:38:32 +0200 Subject: [PATCH 121/183] Replaced tags for ds-user-menu. --- src/app/navbar/navbar.component.html | 2 +- src/app/shared/auth-nav-menu/auth-nav-menu.component.html | 2 +- src/app/shared/auth-nav-menu/auth-nav-menu.component.spec.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/app/navbar/navbar.component.html b/src/app/navbar/navbar.component.html index edfc4bb8ee..b691cfb3f9 100644 --- a/src/app/navbar/navbar.component.html +++ b/src/app/navbar/navbar.component.html @@ -6,7 +6,7 @@ <div id="collapsingNav"> <ul class="navbar-nav navbar-navigation mr-auto shadow-none"> <li *ngIf="(isXsOrSm$ | async) && (isAuthenticated$ | async)"> - <ds-user-menu [inExpandableNavbar]="true"></ds-user-menu> + <ds-themed-user-menu [inExpandableNavbar]="true"></ds-themed-user-menu> </li> <li *ngFor="let section of (sections | async)"> <ng-container *ngComponentOutlet="(sectionMap$ | async).get(section.id)?.component; injector: (sectionMap$ | async).get(section.id)?.injector;"></ng-container> diff --git a/src/app/shared/auth-nav-menu/auth-nav-menu.component.html b/src/app/shared/auth-nav-menu/auth-nav-menu.component.html index bbc4fa3ca7..f3ae261ca7 100644 --- a/src/app/shared/auth-nav-menu/auth-nav-menu.component.html +++ b/src/app/shared/auth-nav-menu/auth-nav-menu.component.html @@ -22,7 +22,7 @@ <a href="javascript:void(0);" role="button" [attr.aria-label]="'nav.user-profile-menu-and-logout' |translate" (click)="$event.preventDefault()" [title]="'nav.user-profile-menu-and-logout' | translate" class="dropdownLogout px-1" [attr.data-test]="'user-menu' | dsBrowserOnly" ngbDropdownToggle> <i class="fas fa-user-circle fa-lg fa-fw"></i></a> <div class="logoutDropdownMenu" ngbDropdownMenu [attr.aria-label]="'nav.user-profile-menu-and-logout' |translate"> - <ds-user-menu></ds-user-menu> + <ds-themed-user-menu></ds-themed-user-menu> </div> </div> </li> diff --git a/src/app/shared/auth-nav-menu/auth-nav-menu.component.spec.ts b/src/app/shared/auth-nav-menu/auth-nav-menu.component.spec.ts index 58a1edfabd..0b9ea6ef4b 100644 --- a/src/app/shared/auth-nav-menu/auth-nav-menu.component.spec.ts +++ b/src/app/shared/auth-nav-menu/auth-nav-menu.component.spec.ts @@ -248,7 +248,7 @@ describe('AuthNavMenuComponent', () => { component = null; }); it('should render UserMenuComponent component', () => { - const logoutDropdownMenu = deNavMenuItem.query(By.css('ds-user-menu')); + const logoutDropdownMenu = deNavMenuItem.query(By.css('ds-themed-user-menu')); expect(logoutDropdownMenu.nativeElement).toBeDefined(); }); }); -- GitLab From 2ec90b8273fc0c2134f4069d046c6bd7e1e4adfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eike=20Martin=20L=C3=B6hden?= <eike.loehden@ub.uni-marburg.de> Date: Mon, 10 Jul 2023 15:54:09 +0200 Subject: [PATCH 122/183] Included user-menu component in custom theme. --- .../user-menu/user-menu.component.html | 0 .../user-menu/user-menu.component.scss | 0 .../user-menu/user-menu.component.ts | 15 +++++++++++++++ src/themes/custom/lazy-theme.module.ts | 2 ++ 4 files changed, 17 insertions(+) create mode 100644 src/themes/custom/app/shared/auth-nav-menu/user-menu/user-menu.component.html create mode 100644 src/themes/custom/app/shared/auth-nav-menu/user-menu/user-menu.component.scss create mode 100644 src/themes/custom/app/shared/auth-nav-menu/user-menu/user-menu.component.ts diff --git a/src/themes/custom/app/shared/auth-nav-menu/user-menu/user-menu.component.html b/src/themes/custom/app/shared/auth-nav-menu/user-menu/user-menu.component.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/auth-nav-menu/user-menu/user-menu.component.scss b/src/themes/custom/app/shared/auth-nav-menu/user-menu/user-menu.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/auth-nav-menu/user-menu/user-menu.component.ts b/src/themes/custom/app/shared/auth-nav-menu/user-menu/user-menu.component.ts new file mode 100644 index 0000000000..f9f1db65ee --- /dev/null +++ b/src/themes/custom/app/shared/auth-nav-menu/user-menu/user-menu.component.ts @@ -0,0 +1,15 @@ +import { Component } from '@angular/core'; +import { UserMenuComponent as BaseComponent } from '../../../../../../app/shared/auth-nav-menu/user-menu/user-menu.component'; + +/** + * Component representing the {@link UserMenuComponent} of a page + */ +@Component({ + selector: 'ds-user-menu', + // templateUrl: 'user-menu.component.html', + templateUrl: '../../../../../../app/shared/auth-nav-menu/user-menu/user-menu.component.html', + // styleUrls: ['user-menu.component.scss'], + styleUrls: ['../../../../../../app/shared/auth-nav-menu/user-menu/user-menu.component.scss'], +}) +export class UserMenuComponent extends BaseComponent { +} diff --git a/src/themes/custom/lazy-theme.module.ts b/src/themes/custom/lazy-theme.module.ts index edb3f5478c..937e174b7f 100644 --- a/src/themes/custom/lazy-theme.module.ts +++ b/src/themes/custom/lazy-theme.module.ts @@ -156,6 +156,7 @@ import { ItemStatusComponent } from './app/item-page/edit-item-page/item-status/ import { EditBitstreamPageComponent } from './app/bitstream-page/edit-bitstream-page/edit-bitstream-page.component'; import { FormModule } from '../../app/shared/form/form.module'; import { RequestCopyModule } from 'src/app/request-copy/request-copy.module'; +import {UserMenuComponent} from './app/shared/auth-nav-menu/user-menu/user-menu.component'; const DECLARATIONS = [ FileSectionComponent, @@ -239,6 +240,7 @@ const DECLARATIONS = [ SubmissionSectionUploadFileComponent, ItemStatusComponent, EditBitstreamPageComponent, + UserMenuComponent, ]; @NgModule({ -- GitLab From 49454603825ce2d829da9ec8d18b255bfce77458 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eike=20Martin=20L=C3=B6hden?= <eike.loehden@ub.uni-marburg.de> Date: Thu, 14 Sep 2023 16:28:21 +0200 Subject: [PATCH 123/183] Removed default value from inExpandableNavbar. --- .../auth-nav-menu/user-menu/themed-user-menu.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/shared/auth-nav-menu/user-menu/themed-user-menu.component.ts b/src/app/shared/auth-nav-menu/user-menu/themed-user-menu.component.ts index cecafc9d5c..9dafe6c426 100644 --- a/src/app/shared/auth-nav-menu/user-menu/themed-user-menu.component.ts +++ b/src/app/shared/auth-nav-menu/user-menu/themed-user-menu.component.ts @@ -15,7 +15,7 @@ export class ThemedUserMenuComponent extends ThemedComponent<UserMenuComponent>{ /** * The input flag to show user details in navbar expandable menu */ - @Input() inExpandableNavbar = false; + @Input() inExpandableNavbar: boolean; protected inAndOutputNames: (keyof UserMenuComponent & keyof this)[] = ['inExpandableNavbar']; -- GitLab From 00eb24c39d16590ca77eb4bfee5184364340390f Mon Sep 17 00:00:00 2001 From: Davide Negretti <davide.negretti@4science.com> Date: Wed, 11 Oct 2023 13:02:13 +0200 Subject: [PATCH 124/183] [DURACOM-190] Fix i18n labels in vocabulary-treeview (cherry picked from commit b321d6f72778aef9c47901f13c2e99195aea8530) --- .../vocabulary-treeview.component.html | 2 +- .../vocabulary-treeview.component.ts | 13 ------------- 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.html b/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.html index fb7d162008..64442b258d 100644 --- a/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.html +++ b/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.html @@ -1,4 +1,4 @@ -<ds-alert *ngIf="description | async" [content]="description | async" [type]="'alert-info'"></ds-alert> +<ds-alert [content]="'vocabulary-treeview.info' | translate" [type]="'alert-info'"></ds-alert> <div class="treeview-header row"> <div class="col-12"> <div class="input-group"> diff --git a/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.ts b/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.ts index 13d4495e61..804ae63491 100644 --- a/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.ts +++ b/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.ts @@ -1,7 +1,6 @@ import { FlatTreeControl } from '@angular/cdk/tree'; import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, OnChanges, SimpleChanges } from '@angular/core'; -import { map } from 'rxjs/operators'; import { Observable, Subscription } from 'rxjs'; import { Store } from '@ngrx/store'; import { TranslateService } from '@ngx-translate/core'; @@ -16,7 +15,6 @@ import { VocabularyEntry } from '../../../core/submission/vocabularies/models/vo import { VocabularyTreeFlattener } from './vocabulary-tree-flattener'; import { VocabularyTreeFlatDataSource } from './vocabulary-tree-flat-data-source'; import { CoreState } from '../../../core/core-state.model'; -import { lowerCase } from 'lodash/string'; import { VocabularyService } from '../../../core/submission/vocabularies/vocabulary.service'; import { getFirstSucceededRemoteDataPayload } from '../../../core/shared/operators'; @@ -50,11 +48,6 @@ export class VocabularyTreeviewComponent implements OnDestroy, OnInit, OnChanges */ @Input() multiSelect = false; - /** - * Contain a descriptive message for this vocabulary retrieved from i18n files - */ - description: Observable<string>; - /** * A map containing the current node showed by the tree */ @@ -216,12 +209,6 @@ export class VocabularyTreeviewComponent implements OnDestroy, OnInit, OnChanges }) ); - this.translate.get(`search.filters.filter.${this.vocabularyOptions.name}.head`).pipe( - map((type) => lowerCase(type)), - ).subscribe( - (type) => this.description = this.translate.get('vocabulary-treeview.info', { type }) - ); - this.loading = this.vocabularyTreeviewService.isLoading(); this.vocabularyTreeviewService.initialize(this.vocabularyOptions, new PageInfo(), this.selectedItems, null); -- GitLab From e10a08ecfa8acee0d1d3451819308f6478e36127 Mon Sep 17 00:00:00 2001 From: Davide Negretti <davide.negretti@4science.com> Date: Fri, 13 Oct 2023 11:05:14 +0200 Subject: [PATCH 125/183] [DURACOM-190] Fix alignment in vocabulary-treeview (cherry picked from commit feb2b2be53272cae025f7e02ad9c6a30728ed0d2) --- .../vocabulary-treeview/vocabulary-treeview.component.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.html b/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.html index 64442b258d..3b858faac4 100644 --- a/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.html +++ b/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.html @@ -23,7 +23,7 @@ <!-- Leaf node --> <cdk-tree-node *cdkTreeNodeDef="let node" cdkTreeNodePadding class="d-flex"> <button type="button" class="btn btn-default" cdkTreeNodeToggle> - <span class="fas fa-angle-right invisible" aria-hidden="true"></span> + <span class="fas fa-fw fa-angle-right invisible" aria-hidden="true"></span> </button> <label *ngIf="multiSelect" class="d-flex align-items-center m-0 p-0 form-check" [class.text-success]="node.isSelected" @@ -55,7 +55,7 @@ <button type="button" class="btn btn-default" cdkTreeNodeToggle [attr.aria-label]="'toggle ' + node.name" (click)="loadChildren(node)"> - <span class="fas {{treeControl.isExpanded(node) ? 'fa-angle-down' : 'fa-angle-right'}}" + <span class="fas fa-fw {{treeControl.isExpanded(node) ? 'fa-angle-down' : 'fa-angle-right'}}" aria-hidden="true"></span> </button> -- GitLab From 163661a956319e9664a9a18674aa91496ec563bd Mon Sep 17 00:00:00 2001 From: Sascha Szott <szott@gmx.de> Date: Tue, 19 Sep 2023 17:51:58 +0200 Subject: [PATCH 126/183] allow to insert multi-line scope notes in MD field registry (cherry picked from commit 5bc5dd859e18a601c6eadf9e2c3496b1fb8b4589) --- .../metadata-field-form/metadata-field-form.component.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/app/admin/admin-registries/metadata-schema/metadata-field-form/metadata-field-form.component.ts b/src/app/admin/admin-registries/metadata-schema/metadata-field-form/metadata-field-form.component.ts index 773e0600fb..f04324bdc5 100644 --- a/src/app/admin/admin-registries/metadata-schema/metadata-field-form/metadata-field-form.component.ts +++ b/src/app/admin/admin-registries/metadata-schema/metadata-field-form/metadata-field-form.component.ts @@ -3,7 +3,8 @@ import { DynamicFormControlModel, DynamicFormGroupModel, DynamicFormLayout, - DynamicInputModel + DynamicInputModel, + DynamicTextAreaModel } from '@ng-dynamic-forms/core'; import { UntypedFormGroup } from '@angular/forms'; import { RegistryService } from '../../../../core/registry/registry.service'; @@ -51,7 +52,7 @@ export class MetadataFieldFormComponent implements OnInit, OnDestroy { /** * A dynamic input model for the scopeNote field */ - scopeNote: DynamicInputModel; + scopeNote: DynamicTextAreaModel; /** * A list of all dynamic input models @@ -132,11 +133,12 @@ export class MetadataFieldFormComponent implements OnInit, OnDestroy { maxLength: 'error.validation.metadata.qualifier.max-length', }, }); - this.scopeNote = new DynamicInputModel({ + this.scopeNote = new DynamicTextAreaModel({ id: 'scopeNote', label: scopenote, name: 'scopeNote', required: false, + rows: 5, }); this.formModel = [ new DynamicFormGroupModel( -- GitLab From 72dcfddff1fb1937af13e7e4d03dec3ce7861e7f Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Wed, 16 Aug 2023 15:15:51 +0200 Subject: [PATCH 127/183] Added support for changing the color of the navbar (cherry picked from commit f6649e1c3861012d388ec4d7bf46a54e84fb9962) --- .../expandable-navbar-section.component.scss | 1 + src/app/navbar/navbar.component.scss | 1 + src/styles/_custom_variables.scss | 1 + src/themes/dspace/app/navbar/navbar.component.scss | 4 ++++ 4 files changed, 7 insertions(+) diff --git a/src/app/navbar/expandable-navbar-section/expandable-navbar-section.component.scss b/src/app/navbar/expandable-navbar-section/expandable-navbar-section.component.scss index 65de77b600..1bc80d32c5 100644 --- a/src/app/navbar/expandable-navbar-section/expandable-navbar-section.component.scss +++ b/src/app/navbar/expandable-navbar-section/expandable-navbar-section.component.scss @@ -6,6 +6,7 @@ } .dropdown-menu { + background-color: var(--ds-navbar-bg); overflow: hidden; min-width: 100%; border-top-left-radius: 0; diff --git a/src/app/navbar/navbar.component.scss b/src/app/navbar/navbar.component.scss index 441ee82c96..9dc530607c 100644 --- a/src/app/navbar/navbar.component.scss +++ b/src/app/navbar/navbar.component.scss @@ -1,4 +1,5 @@ nav.navbar { + background-color: var(--ds-navbar-bg); border-bottom: 1px var(--ds-header-navbar-border-bottom-color) solid; align-items: baseline; } diff --git a/src/styles/_custom_variables.scss b/src/styles/_custom_variables.scss index ddf490c7a7..4abe91c368 100644 --- a/src/styles/_custom_variables.scss +++ b/src/styles/_custom_variables.scss @@ -24,6 +24,7 @@ --ds-header-logo-height-xs: 50px; --ds-header-icon-color: #{$link-color}; --ds-header-icon-color-hover: #{$link-hover-color}; + --ds-navbar-bg: var(--ds-header-bg); --ds-header-navbar-border-top-color: #{$white}; --ds-header-navbar-border-bottom-color: #{$gray-400}; --ds-navbar-link-color: #{$cyan}; diff --git a/src/themes/dspace/app/navbar/navbar.component.scss b/src/themes/dspace/app/navbar/navbar.component.scss index 7c2a643687..b3d4fdb2aa 100644 --- a/src/themes/dspace/app/navbar/navbar.component.scss +++ b/src/themes/dspace/app/navbar/navbar.component.scss @@ -4,6 +4,10 @@ nav.navbar { align-items: baseline; } +.navbar-nav { + background-color: var(--ds-navbar-bg); +} + /** Mobile menu styling **/ @media screen and (max-width: map-get($grid-breakpoints, md)-0.02) { .navbar { -- GitLab From a40e26985d91673ecabd14814e3957fef387713f Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Wed, 16 Aug 2023 15:16:17 +0200 Subject: [PATCH 128/183] Fixed header bg color not being set in default (no) theme (cherry picked from commit 14b1ce5e50f819e1f7b555f205cef8c9b7aee6d8) --- src/app/header/header.component.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/app/header/header.component.scss b/src/app/header/header.component.scss index 871adf289c..8539ca8fbf 100644 --- a/src/app/header/header.component.scss +++ b/src/app/header/header.component.scss @@ -1,3 +1,7 @@ +header { + background-color: var(--ds-header-bg); +} + .navbar-brand img { max-height: var(--ds-header-logo-height); max-width: 100%; -- GitLab From 166444fc50b3d94cfa1c602a61aa04a5b3154bdd Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Thu, 17 Aug 2023 14:03:28 +0200 Subject: [PATCH 129/183] Fixed breadcrumb padding using incorrect syntax (cherry picked from commit 6c48238fa2d42d3b278741b23e8bd123237e16a1) --- src/app/breadcrumbs/breadcrumbs.component.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/breadcrumbs/breadcrumbs.component.scss b/src/app/breadcrumbs/breadcrumbs.component.scss index a4d83b82ea..52634f2a5b 100644 --- a/src/app/breadcrumbs/breadcrumbs.component.scss +++ b/src/app/breadcrumbs/breadcrumbs.component.scss @@ -5,8 +5,8 @@ .breadcrumb { border-radius: 0; margin-top: calc(-1 * var(--ds-content-spacing)); - padding-bottom: var(--ds-content-spacing / 3); - padding-top: var(--ds-content-spacing / 3); + padding-bottom: calc(var(--ds-content-spacing) / 3); + padding-top: calc(var(--ds-content-spacing) / 3); background-color: var(--ds-breadcrumb-bg); } -- GitLab From e548ebcb5a6eea6203870c3d50bb9424b1e769e7 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Fri, 29 Sep 2023 21:40:29 +0200 Subject: [PATCH 130/183] Added new variables for the expandable navbar section (cherry picked from commit 2ca2a3881f701b7668258c8607e1180ebfeb9828) --- .../expandable-navbar-section.component.scss | 7 ++++++- src/styles/_custom_variables.scss | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/app/navbar/expandable-navbar-section/expandable-navbar-section.component.scss b/src/app/navbar/expandable-navbar-section/expandable-navbar-section.component.scss index 1bc80d32c5..28db981f11 100644 --- a/src/app/navbar/expandable-navbar-section/expandable-navbar-section.component.scss +++ b/src/app/navbar/expandable-navbar-section/expandable-navbar-section.component.scss @@ -6,15 +6,20 @@ } .dropdown-menu { - background-color: var(--ds-navbar-bg); + background-color: var(--ds-expandable-navbar-bg); overflow: hidden; min-width: 100%; border-top-left-radius: 0; border-top-right-radius: 0; ::ng-deep a.nav-link { + color: var(--ds-expandable-navbar-link-color) !important; padding-right: var(--bs-spacer); padding-left: var(--bs-spacer); white-space: nowrap; + + &:hover, &:focus { + color: var(--ds-expandable-navbar-link-color-hover) !important; + } } } diff --git a/src/styles/_custom_variables.scss b/src/styles/_custom_variables.scss index 4abe91c368..778ef6e9e3 100644 --- a/src/styles/_custom_variables.scss +++ b/src/styles/_custom_variables.scss @@ -29,6 +29,9 @@ --ds-header-navbar-border-bottom-color: #{$gray-400}; --ds-navbar-link-color: #{$cyan}; --ds-navbar-link-color-hover: #{darken($cyan, 15%)}; + --ds-expandable-navbar-bg: var(--ds-navbar-bg); + --ds-expandable-navbar-link-color: var(--ds-navbar-link-color); + --ds-expandable-navbar-link-color-hover: var(--ds-navbar-link-color-hover); $admin-sidebar-bg: darken(#2B4E72, 17%); $admin-sidebar-active-bg: darken($admin-sidebar-bg, 3%); -- GitLab From b8079a350c6ad34bc3a78ef41deae0f726450ffd Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Thu, 26 Oct 2023 23:04:44 +0200 Subject: [PATCH 131/183] New themed components & minor CSS fixes (#2442) * 100839: Created themeable BrowseByComponent * 100839: Added themed BrowseByComponent to custom theme * 100839: Added themed BrowseEntryListElementComponent to custom theme * Added PersonComponent to custom theme * Themed LogInComponent * Fix focus on navbar using different color * Fix ccLicense checkbox margin * Fix long search facets name not displaying correctly * Removed RecentItemListComponent's unnecessary float causing alignment issues when adding components underneath it * Themed RegisterEmailFormComponent --- .../browse-by-date-page.component.ts | 12 +-- .../browse-by-metadata-page.component.html | 4 +- src/app/browse-by/browse-by.module.ts | 2 + .../forgot-email.component.html | 4 +- .../recent-item-list.component.html | 4 +- src/app/login-page/login-page.component.html | 4 +- src/app/navbar/navbar.component.scss | 7 +- .../register-email-form.module.ts | 10 ++- .../themed-registry-email-form.component.ts | 36 +++++++++ .../register-email.component.html | 4 +- .../auth-nav-menu.component.html | 4 +- .../browse-by/shared-browse-by.module.ts | 13 +++- .../browse-by/themed-browse-by.component.ts | 76 +++++++++++++++++++ .../shared/log-in/log-in.component.spec.ts | 5 +- .../shared/log-in/themed-log-in.component.ts | 33 ++++++++ .../search-filter.component.html | 2 +- .../search-filter.component.scss | 1 - src/app/shared/shared.module.ts | 2 + ...mission-section-cc-licenses.component.html | 1 + .../item-pages/person/person.component.html | 0 .../item-pages/person/person.component.scss | 0 .../item-pages/person/person.component.ts | 20 +++++ .../app/login-page/login-page.component.html | 4 +- .../register-email-form.component.html | 0 .../register-email-form.component.ts | 12 +++ .../shared/browse-by/browse-by.component.html | 0 .../shared/browse-by/browse-by.component.scss | 0 .../shared/browse-by/browse-by.component.ts | 17 +++++ .../app/shared/log-in/log-in.component.html | 0 .../app/shared/log-in/log-in.component.scss | 0 .../app/shared/log-in/log-in.component.ts | 12 +++ .../browse-entry-list-element.component.html | 0 .../browse-entry-list-element.component.scss | 0 .../browse-entry-list-element.component.ts | 19 +++++ src/themes/custom/eager-theme.module.ts | 6 ++ src/themes/custom/lazy-theme.module.ts | 4 + .../dspace/app/navbar/navbar.component.scss | 7 +- 37 files changed, 290 insertions(+), 35 deletions(-) create mode 100644 src/app/register-email-form/themed-registry-email-form.component.ts create mode 100644 src/app/shared/browse-by/themed-browse-by.component.ts create mode 100644 src/app/shared/log-in/themed-log-in.component.ts create mode 100644 src/themes/custom/app/entity-groups/research-entities/item-pages/person/person.component.html create mode 100644 src/themes/custom/app/entity-groups/research-entities/item-pages/person/person.component.scss create mode 100644 src/themes/custom/app/entity-groups/research-entities/item-pages/person/person.component.ts create mode 100644 src/themes/custom/app/register-email-form/register-email-form.component.html create mode 100644 src/themes/custom/app/register-email-form/register-email-form.component.ts create mode 100644 src/themes/custom/app/shared/browse-by/browse-by.component.html create mode 100644 src/themes/custom/app/shared/browse-by/browse-by.component.scss create mode 100644 src/themes/custom/app/shared/browse-by/browse-by.component.ts create mode 100644 src/themes/custom/app/shared/log-in/log-in.component.html create mode 100644 src/themes/custom/app/shared/log-in/log-in.component.scss create mode 100644 src/themes/custom/app/shared/log-in/log-in.component.ts create mode 100644 src/themes/custom/app/shared/object-list/browse-entry-list-element/browse-entry-list-element.component.html create mode 100644 src/themes/custom/app/shared/object-list/browse-entry-list-element/browse-entry-list-element.component.scss create mode 100644 src/themes/custom/app/shared/object-list/browse-entry-list-element/browse-entry-list-element.component.ts diff --git a/src/app/browse-by/browse-by-date-page/browse-by-date-page.component.ts b/src/app/browse-by/browse-by-date-page/browse-by-date-page.component.ts index 7074190e1e..c52731a421 100644 --- a/src/app/browse-by/browse-by-date-page/browse-by-date-page.component.ts +++ b/src/app/browse-by/browse-by-date-page/browse-by-date-page.component.ts @@ -89,11 +89,11 @@ export class BrowseByDatePageComponent extends BrowseByMetadataPageComponent { const lastItemRD = this.browseService.getFirstItemFor(definition, scope, SortDirection.DESC); this.subs.push( observableCombineLatest([firstItemRD, lastItemRD]).subscribe(([firstItem, lastItem]) => { - let lowerLimit = this.getLimit(firstItem, metadataKeys, this.appConfig.browseBy.defaultLowerLimit); - let upperLimit = this.getLimit(lastItem, metadataKeys, new Date().getUTCFullYear()); - const options = []; - const oneYearBreak = Math.floor((upperLimit - this.appConfig.browseBy.oneYearLimit) / 5) * 5; - const fiveYearBreak = Math.floor((upperLimit - this.appConfig.browseBy.fiveYearLimit) / 10) * 10; + let lowerLimit: number = this.getLimit(firstItem, metadataKeys, this.appConfig.browseBy.defaultLowerLimit); + let upperLimit: number = this.getLimit(lastItem, metadataKeys, new Date().getUTCFullYear()); + const options: number[] = []; + const oneYearBreak: number = Math.floor((upperLimit - this.appConfig.browseBy.oneYearLimit) / 5) * 5; + const fiveYearBreak: number = Math.floor((upperLimit - this.appConfig.browseBy.fiveYearLimit) / 10) * 10; if (lowerLimit <= fiveYearBreak) { lowerLimit -= 10; } else if (lowerLimit <= oneYearBreak) { @@ -101,7 +101,7 @@ export class BrowseByDatePageComponent extends BrowseByMetadataPageComponent { } else { lowerLimit -= 1; } - let i = upperLimit; + let i: number = upperLimit; while (i > lowerLimit) { options.push(i); if (i <= fiveYearBreak) { diff --git a/src/app/browse-by/browse-by-metadata-page/browse-by-metadata-page.component.html b/src/app/browse-by/browse-by-metadata-page/browse-by-metadata-page.component.html index 8d062d739f..cfc2cbe305 100644 --- a/src/app/browse-by/browse-by-metadata-page/browse-by-metadata-page.component.html +++ b/src/app/browse-by/browse-by-metadata-page/browse-by-metadata-page.component.html @@ -32,7 +32,7 @@ <section class="comcol-page-browse-section"> <div class="browse-by-metadata w-100"> - <ds-browse-by *ngIf="startsWithOptions" class="col-xs-12 w-100" + <ds-themed-browse-by *ngIf="startsWithOptions" class="col-xs-12 w-100" title="{{'browse.title' | translate: { collection: dsoNameService.getName((parent$ | async)?.payload), @@ -48,7 +48,7 @@ [startsWithOptions]="startsWithOptions" (prev)="goPrev()" (next)="goNext()"> - </ds-browse-by> + </ds-themed-browse-by> <ds-themed-loading *ngIf="!startsWithOptions" message="{{'loading.browse-by-page' | translate}}"></ds-themed-loading> </div> </section> diff --git a/src/app/browse-by/browse-by.module.ts b/src/app/browse-by/browse-by.module.ts index c0e2d3f9ff..ec9f22347f 100644 --- a/src/app/browse-by/browse-by.module.ts +++ b/src/app/browse-by/browse-by.module.ts @@ -14,6 +14,7 @@ import { ThemedBrowseByTaxonomyPageComponent } from './browse-by-taxonomy-page/t import { SharedBrowseByModule } from '../shared/browse-by/shared-browse-by.module'; import { DsoPageModule } from '../shared/dso-page/dso-page.module'; import { FormModule } from '../shared/form/form.module'; +import { SharedModule } from '../shared/shared.module'; const ENTRY_COMPONENTS = [ // put only entry components that use custom decorator @@ -35,6 +36,7 @@ const ENTRY_COMPONENTS = [ ComcolModule, DsoPageModule, FormModule, + SharedModule, ], declarations: [ BrowseBySwitcherComponent, diff --git a/src/app/forgot-password/forgot-password-email/forgot-email.component.html b/src/app/forgot-password/forgot-password-email/forgot-email.component.html index 995108cdbc..aaa0c27b46 100644 --- a/src/app/forgot-password/forgot-password-email/forgot-email.component.html +++ b/src/app/forgot-password/forgot-password-email/forgot-email.component.html @@ -1,3 +1,3 @@ -<ds-register-email-form +<ds-themed-register-email-form [MESSAGE_PREFIX]="'forgot-email.form'" [typeRequest]="typeRequest"> -</ds-register-email-form> +</ds-themed-register-email-form> diff --git a/src/app/home-page/recent-item-list/recent-item-list.component.html b/src/app/home-page/recent-item-list/recent-item-list.component.html index cd14891b3f..82262be1b3 100644 --- a/src/app/home-page/recent-item-list/recent-item-list.component.html +++ b/src/app/home-page/recent-item-list/recent-item-list.component.html @@ -1,12 +1,12 @@ <ng-container *ngVar="(itemRD$ | async) as itemRD"> <div class="mt-4" [ngClass]="placeholderFontClass" *ngIf="itemRD?.hasSucceeded && itemRD?.payload?.page.length > 0" @fadeIn> - <div class="d-flex flex-row border-bottom mb-4 pb-4 ng-tns-c416-2"></div> + <div class="d-flex flex-row border-bottom mb-4 pb-4"></div> <h2> {{'home.recent-submissions.head' | translate}}</h2> <div class="my-4" *ngFor="let item of itemRD?.payload?.page"> <ds-listable-object-component-loader [object]="item" [viewMode]="viewMode" class="pb-4"> </ds-listable-object-component-loader> </div> - <button (click)="onLoadMore()" class="btn btn-primary search-button mt-4 float-left ng-tns-c290-40"> {{'vocabulary-treeview.load-more' | translate }} ...</button> + <button (click)="onLoadMore()" class="btn btn-primary search-button mt-4"> {{'vocabulary-treeview.load-more' | translate }} ...</button> </div> <ds-error *ngIf="itemRD?.hasFailed" message="{{'error.recent-submissions' | translate}}"></ds-error> <ds-loading *ngIf="!itemRD || itemRD.isLoading" message="{{'loading.recent-submissions' | translate}}"> diff --git a/src/app/login-page/login-page.component.html b/src/app/login-page/login-page.component.html index 2a95e0ce1c..c38444bec8 100644 --- a/src/app/login-page/login-page.component.html +++ b/src/app/login-page/login-page.component.html @@ -3,8 +3,8 @@ <div> <img class="mb-4 login-logo" src="assets/images/dspace-logo.png" alt="{{'repository.image.logo' | translate}}"> <h1 class="h3 mb-0 font-weight-normal">{{"login.form.header" | translate}}</h1> - <ds-log-in - [isStandalonePage]="true"></ds-log-in> + <ds-themed-log-in + [isStandalonePage]="true"></ds-themed-log-in> </div> </div> </div> diff --git a/src/app/navbar/navbar.component.scss b/src/app/navbar/navbar.component.scss index 9dc530607c..42e72aaffd 100644 --- a/src/app/navbar/navbar.component.scss +++ b/src/app/navbar/navbar.component.scss @@ -39,8 +39,9 @@ nav.navbar { .navbar-nav { ::ng-deep a.nav-link { color: var(--ds-navbar-link-color); - } - ::ng-deep a.nav-link:hover { - color: var(--ds-navbar-link-color-hover); + + &:hover, &:focus { + color: var(--ds-navbar-link-color-hover); + } } } diff --git a/src/app/register-email-form/register-email-form.module.ts b/src/app/register-email-form/register-email-form.module.ts index a765759413..2fa2ddcd6e 100644 --- a/src/app/register-email-form/register-email-form.module.ts +++ b/src/app/register-email-form/register-email-form.module.ts @@ -2,6 +2,12 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { SharedModule } from '../shared/shared.module'; import { RegisterEmailFormComponent } from './register-email-form.component'; +import { ThemedRegisterEmailFormComponent } from './themed-registry-email-form.component'; + +const DECLARATIONS = [ + RegisterEmailFormComponent, + ThemedRegisterEmailFormComponent, +]; @NgModule({ imports: [ @@ -9,11 +15,11 @@ import { RegisterEmailFormComponent } from './register-email-form.component'; SharedModule ], declarations: [ - RegisterEmailFormComponent, + ...DECLARATIONS, ], providers: [], exports: [ - RegisterEmailFormComponent, + ...DECLARATIONS, ] }) diff --git a/src/app/register-email-form/themed-registry-email-form.component.ts b/src/app/register-email-form/themed-registry-email-form.component.ts new file mode 100644 index 0000000000..4f627e5b83 --- /dev/null +++ b/src/app/register-email-form/themed-registry-email-form.component.ts @@ -0,0 +1,36 @@ +import { Component, Input } from '@angular/core'; +import { ThemedComponent } from '../shared/theme-support/themed.component'; +import { RegisterEmailFormComponent } from './register-email-form.component'; + +/** + * Themed wrapper for {@link RegisterEmailFormComponent} + */ +@Component({ + selector: 'ds-themed-register-email-form', + styleUrls: [], + templateUrl: '../shared/theme-support/themed.component.html', +}) +export class ThemedRegisterEmailFormComponent extends ThemedComponent<RegisterEmailFormComponent> { + + @Input() MESSAGE_PREFIX: string; + + @Input() typeRequest: string; + + protected inAndOutputNames: (keyof RegisterEmailFormComponent & keyof this)[] = [ + 'MESSAGE_PREFIX', + 'typeRequest', + ]; + + protected getComponentName(): string { + return 'RegisterEmailFormComponent'; + } + + protected importThemedComponent(themeName: string): Promise<any> { + return import(`../../themes/${themeName}/app/register-email-form/register-email-form.component`); + } + + protected importUnthemedComponent(): Promise<any> { + return import('./register-email-form.component'); + } + +} diff --git a/src/app/register-page/register-email/register-email.component.html b/src/app/register-page/register-email/register-email.component.html index 1829bb2914..6a87a4e9e0 100644 --- a/src/app/register-page/register-email/register-email.component.html +++ b/src/app/register-page/register-email/register-email.component.html @@ -1,3 +1,3 @@ -<ds-register-email-form +<ds-themed-register-email-form [MESSAGE_PREFIX]="'register-page.registration'" [typeRequest]="typeRequest"> -</ds-register-email-form> +</ds-themed-register-email-form> diff --git a/src/app/shared/auth-nav-menu/auth-nav-menu.component.html b/src/app/shared/auth-nav-menu/auth-nav-menu.component.html index f3ae261ca7..eba37fa416 100644 --- a/src/app/shared/auth-nav-menu/auth-nav-menu.component.html +++ b/src/app/shared/auth-nav-menu/auth-nav-menu.component.html @@ -7,8 +7,8 @@ ngbDropdownToggle>{{ 'nav.login' | translate }}</a> <div class="loginDropdownMenu" [ngClass]="{'pl-3 pr-3': (loading | async)}" ngbDropdownMenu [attr.aria-label]="'nav.login' | translate"> - <ds-log-in - [isStandalonePage]="false"></ds-log-in> + <ds-themed-log-in + [isStandalonePage]="false"></ds-themed-log-in> </div> </div> </li> diff --git a/src/app/shared/browse-by/shared-browse-by.module.ts b/src/app/shared/browse-by/shared-browse-by.module.ts index ae42576e9b..4041f296c8 100644 --- a/src/app/shared/browse-by/shared-browse-by.module.ts +++ b/src/app/shared/browse-by/shared-browse-by.module.ts @@ -1,15 +1,21 @@ import { NgModule } from '@angular/core'; import { BrowseByComponent } from './browse-by.component'; +import { ThemedBrowseByComponent } from './themed-browse-by.component'; import { CommonModule } from '@angular/common'; import { SharedModule } from '../shared.module'; import { ResultsBackButtonModule } from '../results-back-button/results-back-button.module'; import { BrowseByRoutingModule } from '../../browse-by/browse-by-routing.module'; import { AccessControlRoutingModule } from '../../access-control/access-control-routing.module'; +const DECLARATIONS = [ + BrowseByComponent, + ThemedBrowseByComponent, +]; + @NgModule({ declarations: [ - BrowseByComponent, -], + ...DECLARATIONS, + ], imports: [ ResultsBackButtonModule, BrowseByRoutingModule, @@ -18,8 +24,7 @@ import { AccessControlRoutingModule } from '../../access-control/access-control- SharedModule, ], exports: [ - BrowseByComponent, - SharedModule, + ...DECLARATIONS, ] }) export class SharedBrowseByModule { } diff --git a/src/app/shared/browse-by/themed-browse-by.component.ts b/src/app/shared/browse-by/themed-browse-by.component.ts new file mode 100644 index 0000000000..eaa17ebf16 --- /dev/null +++ b/src/app/shared/browse-by/themed-browse-by.component.ts @@ -0,0 +1,76 @@ +import { Component, Input, Output, EventEmitter } from '@angular/core'; +import { ThemedComponent } from '../theme-support/themed.component'; +import { BrowseByComponent } from './browse-by.component'; +import { Observable } from 'rxjs'; +import { RemoteData } from '../../core/data/remote-data'; +import { PaginatedList } from '../../core/data/paginated-list.model'; +import { ListableObject } from '../object-collection/shared/listable-object.model'; +import { PaginationComponentOptions } from '../pagination/pagination-component-options.model'; +import { SortOptions, SortDirection } from '../../core/cache/models/sort-options.model'; +import { StartsWithType } from '../starts-with/starts-with-decorator'; + +/** + * Themed wrapper for {@link BrowseByComponent} + */ +@Component({ + selector: 'ds-themed-browse-by', + styleUrls: [], + templateUrl: '../theme-support/themed.component.html', +}) +export class ThemedBrowseByComponent extends ThemedComponent<BrowseByComponent> { + + @Input() title: string; + + @Input() parentname: string; + + @Input() objects$: Observable<RemoteData<PaginatedList<ListableObject>>>; + + @Input() paginationConfig: PaginationComponentOptions; + + @Input() sortConfig: SortOptions; + + @Input() type: StartsWithType; + + @Input() startsWithOptions: number[]; + + @Input() showPaginator: boolean; + + @Input() hideGear: boolean; + + @Output() prev: EventEmitter<boolean> = new EventEmitter(); + + @Output() next: EventEmitter<boolean> = new EventEmitter(); + + @Output() pageSizeChange: EventEmitter<number> = new EventEmitter(); + + @Output() sortDirectionChange: EventEmitter<SortDirection> = new EventEmitter(); + + protected inAndOutputNames: (keyof BrowseByComponent & keyof this)[] = [ + 'title', + 'parentname', + 'objects$', + 'paginationConfig', + 'sortConfig', + 'type', + 'startsWithOptions', + 'showPaginator', + 'hideGear', + 'prev', + 'next', + 'pageSizeChange', + 'sortDirectionChange', + ]; + + protected getComponentName(): string { + return 'BrowseByComponent'; + } + + protected importThemedComponent(themeName: string): Promise<any> { + return import(`../../../themes/${themeName}/app/shared/browse-by/browse-by.component.ts`); + } + + protected importUnthemedComponent(): Promise<any> { + return import('./browse-by.component'); + } + +} diff --git a/src/app/shared/log-in/log-in.component.spec.ts b/src/app/shared/log-in/log-in.component.spec.ts index 57ed3e4694..e44aa1aa71 100644 --- a/src/app/shared/log-in/log-in.component.spec.ts +++ b/src/app/shared/log-in/log-in.component.spec.ts @@ -21,6 +21,8 @@ import { RouterTestingModule } from '@angular/router/testing'; import { HardRedirectService } from '../../core/services/hard-redirect.service'; import { AuthorizationDataService } from '../../core/data/feature-authorization/authorization-data.service'; import { of } from 'rxjs'; +import { ThemeService } from '../theme-support/theme.service'; +import { getMockThemeService } from '../mocks/theme-service.mock'; describe('LogInComponent', () => { @@ -75,6 +77,7 @@ describe('LogInComponent', () => { { provide: HardRedirectService, useValue: hardRedirectService }, { provide: AuthorizationDataService, useValue: authorizationService }, provideMockStore({ initialState }), + { provide: ThemeService, useValue: getMockThemeService() }, LogInComponent ], schemas: [ @@ -91,7 +94,7 @@ describe('LogInComponent', () => { // synchronous beforeEach beforeEach(() => { - const html = `<ds-log-in [isStandalonePage]="isStandalonePage"> </ds-log-in>`; + const html = `<ds-themed-log-in [isStandalonePage]="isStandalonePage"> </ds-themed-log-in>`; testFixture = createTestComponent(html, TestComponent) as ComponentFixture<TestComponent>; testComp = testFixture.componentInstance; diff --git a/src/app/shared/log-in/themed-log-in.component.ts b/src/app/shared/log-in/themed-log-in.component.ts new file mode 100644 index 0000000000..cc18274646 --- /dev/null +++ b/src/app/shared/log-in/themed-log-in.component.ts @@ -0,0 +1,33 @@ +import { Component, Input } from '@angular/core'; +import { ThemedComponent } from '../theme-support/themed.component'; +import { LogInComponent } from './log-in.component'; + +/** + * Themed wrapper for {@link LogInComponent} + */ +@Component({ + selector: 'ds-themed-log-in', + styleUrls: [], + templateUrl: './../theme-support/themed.component.html' +}) +export class ThemedLogInComponent extends ThemedComponent<LogInComponent> { + + @Input() isStandalonePage: boolean; + + protected inAndOutputNames: (keyof LogInComponent & keyof this)[] = [ + 'isStandalonePage', + ]; + + protected getComponentName(): string { + return 'LogInComponent'; + } + + protected importThemedComponent(themeName: string): Promise<any> { + return import(`../../../themes/${themeName}/app/shared/log-in/log-in.component`); + } + + protected importUnthemedComponent(): Promise<any> { + return import('./log-in.component'); + } + +} diff --git a/src/app/shared/search/search-filters/search-filter/search-filter.component.html b/src/app/shared/search/search-filters/search-filter/search-filter.component.html index 421d1ede2c..25c218166e 100644 --- a/src/app/shared/search/search-filters/search-filter/search-filter.component.html +++ b/src/app/shared/search/search-filters/search-filter/search-filter.component.html @@ -6,7 +6,7 @@ [attr.aria-label]="(((collapsed$ | async) ? 'search.filters.filter.expand' : 'search.filters.filter.collapse') | translate) + ' ' + (('search.filters.filter.' + filter.name + '.head') | translate | lowercase)" [attr.data-test]="'filter-toggle' | dsBrowserOnly" > - <h4 class="d-inline-block mb-0"> + <h4 class="d-inline-block text-left mt-auto mb-auto"> {{'search.filters.filter.' + filter.name + '.head'| translate}} </h4> <span class="filter-toggle flex-grow-1 fas p-auto" diff --git a/src/app/shared/search/search-filters/search-filter/search-filter.component.scss b/src/app/shared/search/search-filters/search-filter/search-filter.component.scss index 7e2631b55f..6a13d630eb 100644 --- a/src/app/shared/search/search-filters/search-filter/search-filter.component.scss +++ b/src/app/shared/search/search-filters/search-filter/search-filter.component.scss @@ -17,7 +17,6 @@ line-height: var(--bs-line-height-base); text-align: right; position: relative; - top: -0.125rem; // Fix weird outline shape in Chrome } > button { diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index 743a47deb1..9f05b1d370 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -192,6 +192,7 @@ import { import { LogInContainerComponent } from './log-in/container/log-in-container.component'; import { LogInPasswordComponent } from './log-in/methods/password/log-in-password.component'; import { LogInComponent } from './log-in/log-in.component'; +import { ThemedLogInComponent } from './log-in/themed-log-in.component'; import { MissingTranslationHelper } from './translate/missing-translation.helper'; import { FileValidator } from './utils/require-file.validator'; import { FileValueAccessorDirective } from './utils/file-value-accessor.directive'; @@ -339,6 +340,7 @@ const COMPONENTS = [ LoadingComponent, ThemedLoadingComponent, LogInComponent, + ThemedLogInComponent, LogOutComponent, ObjectListComponent, ThemedObjectListComponent, diff --git a/src/app/submission/sections/cc-license/submission-section-cc-licenses.component.html b/src/app/submission/sections/cc-license/submission-section-cc-licenses.component.html index 0796da5a64..61e420b23a 100644 --- a/src/app/submission/sections/cc-license/submission-section-cc-licenses.component.html +++ b/src/app/submission/sections/cc-license/submission-section-cc-licenses.component.html @@ -134,6 +134,7 @@ <div class="m-2"> <div (click)="setAccepted(!accepted)"> <input type="checkbox" + class="mr-2" title="accepted" [checked]="accepted"> <span> {{ 'submission.sections.ccLicense.confirmation' | translate }}</span> diff --git a/src/themes/custom/app/entity-groups/research-entities/item-pages/person/person.component.html b/src/themes/custom/app/entity-groups/research-entities/item-pages/person/person.component.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/entity-groups/research-entities/item-pages/person/person.component.scss b/src/themes/custom/app/entity-groups/research-entities/item-pages/person/person.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/entity-groups/research-entities/item-pages/person/person.component.ts b/src/themes/custom/app/entity-groups/research-entities/item-pages/person/person.component.ts new file mode 100644 index 0000000000..3d3f69409f --- /dev/null +++ b/src/themes/custom/app/entity-groups/research-entities/item-pages/person/person.component.ts @@ -0,0 +1,20 @@ +import { Component } from '@angular/core'; +import { ViewMode } from '../../../../../../../app/core/shared/view-mode.model'; +import { + listableObjectComponent +} from '../../../../../../../app/shared/object-collection/shared/listable-object/listable-object.decorator'; +import { + PersonComponent as BaseComponent +} from '../../../../../../../app/entity-groups/research-entities/item-pages/person/person.component'; +import { Context } from '../../../../../../../app/core/shared/context.model'; + +@listableObjectComponent('Person', ViewMode.StandalonePage, Context.Any, 'custom') +@Component({ + selector: 'ds-person', + // styleUrls: ['./person.component.scss'], + styleUrls: ['../../../../../../../app/entity-groups/research-entities/item-pages/person/person.component.scss'], + // templateUrl: './person.component.html', + templateUrl: '../../../../../../../app/entity-groups/research-entities/item-pages/person/person.component.html', +}) +export class PersonComponent extends BaseComponent { +} diff --git a/src/themes/custom/app/login-page/login-page.component.html b/src/themes/custom/app/login-page/login-page.component.html index 84059877f4..1a83892c24 100644 --- a/src/themes/custom/app/login-page/login-page.component.html +++ b/src/themes/custom/app/login-page/login-page.component.html @@ -3,8 +3,8 @@ <div> <img class="mb-4 login-logo" src="assets/images/dspace-logo.png"> <h1 class="h3 mb-0 font-weight-normal">{{"login.form.header" | translate}}</h1> - <ds-log-in - [isStandalonePage]="true"></ds-log-in> + <ds-themed-log-in + [isStandalonePage]="true"></ds-themed-log-in> </div> </div> </div> diff --git a/src/themes/custom/app/register-email-form/register-email-form.component.html b/src/themes/custom/app/register-email-form/register-email-form.component.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/register-email-form/register-email-form.component.ts b/src/themes/custom/app/register-email-form/register-email-form.component.ts new file mode 100644 index 0000000000..8489a1d89c --- /dev/null +++ b/src/themes/custom/app/register-email-form/register-email-form.component.ts @@ -0,0 +1,12 @@ +import { Component } from '@angular/core'; +import { + RegisterEmailFormComponent as BaseComponent +} from '../../../../app/register-email-form/register-email-form.component'; + +@Component({ + selector: 'ds-register-email-form', + // templateUrl: './register-email-form.component.html', + templateUrl: '../../../../app/register-email-form/register-email-form.component.html', +}) +export class RegisterEmailFormComponent extends BaseComponent { +} diff --git a/src/themes/custom/app/shared/browse-by/browse-by.component.html b/src/themes/custom/app/shared/browse-by/browse-by.component.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/browse-by/browse-by.component.scss b/src/themes/custom/app/shared/browse-by/browse-by.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/browse-by/browse-by.component.ts b/src/themes/custom/app/shared/browse-by/browse-by.component.ts new file mode 100644 index 0000000000..81435b9b37 --- /dev/null +++ b/src/themes/custom/app/shared/browse-by/browse-by.component.ts @@ -0,0 +1,17 @@ +import { Component } from '@angular/core'; +import { fadeIn, fadeInOut } from '../../../../../app/shared/animations/fade'; +import { BrowseByComponent as BaseComponent } from '../../../../../app/shared/browse-by/browse-by.component'; + +@Component({ + selector: 'ds-browse-by', + // styleUrls: ['./browse-by.component.scss'], + styleUrls: ['../../../../../app/shared/browse-by/browse-by.component.scss'], + // templateUrl: './browse-by.component.html', + templateUrl: '../../../../../app/shared/browse-by/browse-by.component.html', + animations: [ + fadeIn, + fadeInOut, + ], +}) +export class BrowseByComponent extends BaseComponent { +} diff --git a/src/themes/custom/app/shared/log-in/log-in.component.html b/src/themes/custom/app/shared/log-in/log-in.component.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/log-in/log-in.component.scss b/src/themes/custom/app/shared/log-in/log-in.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/log-in/log-in.component.ts b/src/themes/custom/app/shared/log-in/log-in.component.ts new file mode 100644 index 0000000000..5d1df59699 --- /dev/null +++ b/src/themes/custom/app/shared/log-in/log-in.component.ts @@ -0,0 +1,12 @@ +import { Component } from '@angular/core'; +import { LogInComponent as BaseComponent } from '../../../../../app/shared/log-in/log-in.component'; + +@Component({ + selector: 'ds-log-in', + // templateUrl: './log-in.component.html', + templateUrl: '../../../../../app/shared/log-in/log-in.component.html', + // styleUrls: ['./log-in.component.scss'], + styleUrls: ['../../../../../app/shared/log-in/log-in.component.scss'], +}) +export class LogInComponent extends BaseComponent { +} diff --git a/src/themes/custom/app/shared/object-list/browse-entry-list-element/browse-entry-list-element.component.html b/src/themes/custom/app/shared/object-list/browse-entry-list-element/browse-entry-list-element.component.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/object-list/browse-entry-list-element/browse-entry-list-element.component.scss b/src/themes/custom/app/shared/object-list/browse-entry-list-element/browse-entry-list-element.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/object-list/browse-entry-list-element/browse-entry-list-element.component.ts b/src/themes/custom/app/shared/object-list/browse-entry-list-element/browse-entry-list-element.component.ts new file mode 100644 index 0000000000..0b1fd94e6a --- /dev/null +++ b/src/themes/custom/app/shared/object-list/browse-entry-list-element/browse-entry-list-element.component.ts @@ -0,0 +1,19 @@ +import { Component } from '@angular/core'; +import { BrowseEntry } from '../../../../../../app/core/shared/browse-entry.model'; +import { ViewMode } from '../../../../../../app/core/shared/view-mode.model'; +import { listableObjectComponent } from '../../../../../../app/shared/object-collection/shared/listable-object/listable-object.decorator'; +import { Context } from '../../../../../../app/core/shared/context.model'; +import { + BrowseEntryListElementComponent as BaseComponent +} from '../../../../../../app/shared/object-list/browse-entry-list-element/browse-entry-list-element.component'; + +@Component({ + selector: 'ds-browse-entry-list-element', + // styleUrls: ['./browse-entry-list-element.component.scss'], + styleUrls: ['../../../../../../app/shared/object-list/browse-entry-list-element/browse-entry-list-element.component.scss'], + // templateUrl: './browse-entry-list-element.component.html', + templateUrl: '../../../../../../app/shared/object-list/browse-entry-list-element/browse-entry-list-element.component.html', +}) +@listableObjectComponent(BrowseEntry, ViewMode.ListElement, Context.Any, 'custom') +export class BrowseEntryListElementComponent extends BaseComponent { +} diff --git a/src/themes/custom/eager-theme.module.ts b/src/themes/custom/eager-theme.module.ts index a181487ea7..31047e239a 100644 --- a/src/themes/custom/eager-theme.module.ts +++ b/src/themes/custom/eager-theme.module.ts @@ -54,6 +54,9 @@ 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'; +import { LogInComponent } from './app/shared/log-in/log-in.component'; +import { BrowseEntryListElementComponent } from './app/shared/object-list/browse-entry-list-element/browse-entry-list-element.component'; +import { PersonComponent } from './app/entity-groups/research-entities/item-pages/person/person.component'; import { LangSwitchComponent } from './app/shared/lang-switch/lang-switch.component'; @@ -65,6 +68,7 @@ const ENTRY_COMPONENTS = [ JournalComponent, JournalIssueComponent, JournalVolumeComponent, + PersonComponent, PublicationComponent, UntypedItemComponent, CommunityListElementComponent, @@ -76,6 +80,7 @@ const ENTRY_COMPONENTS = [ PublicationSidebarSearchListElementComponent, ItemSearchResultListElementComponent, TopLevelCommunityListComponent, + BrowseEntryListElementComponent, ]; const DECLARATIONS = [ @@ -92,6 +97,7 @@ const DECLARATIONS = [ EditCollectionSelectorComponent, EditCommunitySelectorComponent, EditItemSelectorComponent, + LogInComponent, LangSwitchComponent, ]; diff --git a/src/themes/custom/lazy-theme.module.ts b/src/themes/custom/lazy-theme.module.ts index 937e174b7f..73400e7880 100644 --- a/src/themes/custom/lazy-theme.module.ts +++ b/src/themes/custom/lazy-theme.module.ts @@ -157,6 +157,8 @@ import { EditBitstreamPageComponent } from './app/bitstream-page/edit-bitstream- import { FormModule } from '../../app/shared/form/form.module'; import { RequestCopyModule } from 'src/app/request-copy/request-copy.module'; import {UserMenuComponent} from './app/shared/auth-nav-menu/user-menu/user-menu.component'; +import { BrowseByComponent } from './app/shared/browse-by/browse-by.component'; +import { RegisterEmailFormComponent } from './app/register-email-form/register-email-form.component'; const DECLARATIONS = [ FileSectionComponent, @@ -241,6 +243,8 @@ const DECLARATIONS = [ ItemStatusComponent, EditBitstreamPageComponent, UserMenuComponent, + BrowseByComponent, + RegisterEmailFormComponent, ]; @NgModule({ diff --git a/src/themes/dspace/app/navbar/navbar.component.scss b/src/themes/dspace/app/navbar/navbar.component.scss index b3d4fdb2aa..b4b7a02e50 100644 --- a/src/themes/dspace/app/navbar/navbar.component.scss +++ b/src/themes/dspace/app/navbar/navbar.component.scss @@ -53,9 +53,10 @@ a.navbar-brand img { .navbar-nav { ::ng-deep a.nav-link { color: var(--ds-navbar-link-color); - } - ::ng-deep a.nav-link:hover { - color: var(--ds-navbar-link-color-hover); + + &:hover, &:focus { + color: var(--ds-navbar-link-color-hover); + } } } -- GitLab From c6b66b62e339c7c98cf6d7255c21f265642b9eaf Mon Sep 17 00:00:00 2001 From: "Gantner, Florian Klaus" <florian.gantner@uni-bamberg.de> Date: Thu, 26 Oct 2023 15:56:52 +0200 Subject: [PATCH 132/183] more error-prone check of cssRules existence before css variables are get from stylesheet check the existence off cssRules property before the variables are readed from this stylesheet https://github.com/DSpace/dspace-angular/issues/2450 (cherry picked from commit 4dd334f2e76adfabb972095acc80a391c6c91b38) --- .../shared/sass-helper/css-variable.service.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/app/shared/sass-helper/css-variable.service.ts b/src/app/shared/sass-helper/css-variable.service.ts index 0190a05036..5ff7345d85 100644 --- a/src/app/shared/sass-helper/css-variable.service.ts +++ b/src/app/shared/sass-helper/css-variable.service.ts @@ -26,6 +26,19 @@ export class CSSVariableService { return styleSheet.href.indexOf(window.location.origin) === 0; }; + /** + * Checks whether the specific stylesheet object has the property cssRules + * @param styleSheet The stylesheet + */ + hasCssRules = (styleSheet) => { + // Injected (cross-origin) styles might have no css rules value and throw some exception + try { + return styleSheet.cssRules; + } catch (e) { + return false; + } + }; + /* Determine if the given rule is a CSSStyleRule See: https://developer.mozilla.org/en-US/docs/Web/API/CSSRule#Type_constants @@ -93,8 +106,10 @@ export class CSSVariableService { if (isNotEmpty(document.styleSheets)) { // styleSheets is array-like, so we convert it to an array. // Filter out any stylesheets not on this domain + // Filter out any stylesheets that have no cssRules property return [...document.styleSheets] .filter(this.isSameDomain) + .filter(this.hasCssRules) .reduce( (finalArr, sheet) => finalArr.concat( -- GitLab From e1494c0518888b806ede277f345aa83cb2283b8f Mon Sep 17 00:00:00 2001 From: Marco Aurelio Cardoso <marcoaurelio.cardoso@gmail.com> Date: Sun, 29 Oct 2023 06:49:20 -0300 Subject: [PATCH 133/183] fix(pt-BR.json5): fix and update the language file Fix and update the pt-BR language file --- src/assets/i18n/pt-BR.json5 | 1424 ++++++++++++++++++++++++++++++----- 1 file changed, 1225 insertions(+), 199 deletions(-) diff --git a/src/assets/i18n/pt-BR.json5 b/src/assets/i18n/pt-BR.json5 index 5d852129bc..79d332bace 100644 --- a/src/assets/i18n/pt-BR.json5 +++ b/src/assets/i18n/pt-BR.json5 @@ -1,5 +1,4 @@ { - // "401.help": "You're not authorized to access this page. You can use the button below to get back to the home page.", "401.help": "Você não tem autorização para acessar esta página. Clique no botão abaixo para ir à página inicial.", @@ -27,7 +26,6 @@ // "500.link.home-page": "Take me to the home page", "500.link.home-page": "Ir à página inicial", - // "404.help": "We can't find the page you're looking for. The page may have been moved or deleted. You can use the button below to get back to the home page. ", "404.help": "Não encontramos a página que você procura. A página pode ter sido movida ou apagada. Você pode utilizar o botão abaixo para voltar à página inicial. ", @@ -193,7 +191,7 @@ // "admin.registries.bitstream-formats.table.name": "Name", "admin.registries.bitstream-formats.table.name": "Nome", - // TODO New key - Add a translation + // "admin.registries.bitstream-formats.table.id": "ID", "admin.registries.bitstream-formats.table.id": "ID", // "admin.registries.bitstream-formats.table.return": "Back", @@ -271,7 +269,7 @@ // "admin.registries.schema.fields.table.field": "Field", "admin.registries.schema.fields.table.field": "Campo", - // TODO New key - Add a translation + // "admin.registries.schema.fields.table.id": "ID", "admin.registries.schema.fields.table.id": "ID", // "admin.registries.schema.fields.table.scopenote": "Scope Note", @@ -331,6 +329,30 @@ // "admin.registries.schema.title": "Metadata Schema Registry", "admin.registries.schema.title": "Registro de Esquema de Metadados", + // "admin.access-control.bulk-access.breadcrumbs": "Bulk Access Management", (Auto-Translated) + "admin.access-control.bulk-access.breadcrumbs": "Gerenciamento de acesso em massa", + + // "administrativeBulkAccess.search.results.head": "Search Results", (Auto-Translated) + "administrativeBulkAccess.search.results.head": "Resultados da Busca", + + // "admin.access-control.bulk-access": "Bulk Access Management", (Auto-Translated) + "admin.access-control.bulk-access": "Gerenciamento de acesso em massa", + + // "admin.access-control.bulk-access.title": "Bulk Access Management", (Auto-Translated) + "admin.access-control.bulk-access.title": "Gerenciamento de acesso em massa", + + // "admin.access-control.bulk-access-browse.header": "Step 1: Select Objects", (Auto-Translated) + "admin.access-control.bulk-access-browse.header": "Etapa 1: Selecione objetos", + + // "admin.access-control.bulk-access-browse.search.header": "Search", (Auto-Translated) + "admin.access-control.bulk-access-browse.search.header": "Procurar", + + // "admin.access-control.bulk-access-browse.selected.header": "Current selection({{number}})", (Auto-Translated) + "admin.access-control.bulk-access-browse.selected.header": "Seleção atual ({{number}})", + + // "admin.access-control.bulk-access-settings.header": "Step 2: Operation to Perform", (Auto-Translated) + "admin.access-control.bulk-access-settings.header": "Etapa 2: Operação para executar", + // "admin.access-control.epeople.actions.delete": "Delete EPerson", "admin.access-control.epeople.actions.delete": "Apagar EPerson", @@ -355,7 +377,6 @@ // "admin.access-control.epeople.search.head": "Search", "admin.access-control.epeople.search.head": "Procurar", - // "admin.access-control.epeople.button.see-all": "Browse All", "admin.access-control.epeople.button.see-all": "Pesquisar Todos", @@ -419,7 +440,6 @@ // "admin.access-control.epeople.form.canLogIn": "Can log in", "admin.access-control.epeople.form.canLogIn": "Pode entrar", - // "admin.access-control.epeople.form.requireCertificate": "Requires certificate", "admin.access-control.epeople.form.requireCertificate": "Requer certificado", @@ -450,7 +470,6 @@ // "admin.access-control.epeople.form.notification.deleted.failure": "Failed to delete EPerson \"{{name}}\"", "admin.access-control.epeople.form.notification.deleted.failure": "Falha ao apagar EPerson \"{{name}}\"", - // "admin.access-control.epeople.form.groupsEPersonIsMemberOf": "Member of these groups:", "admin.access-control.epeople.form.groupsEPersonIsMemberOf": "Membro destes grupos:", @@ -739,32 +758,14 @@ // "admin.access-control.groups.form.return": "Back", "admin.access-control.groups.form.return": "Voltar", - //"admin.batch-import.breadcrumbs": "Import Batch", - "admin.batch-import.breadcrumbs": "Importar um Lote", + // "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.", (Auto-Translated) + "admin.access-control.groups.form.tooltip.editGroupPage": "Nesta página, você pode modificar as propriedades e os membros de um grupo. Na seção superior, você pode editar o nome e a descrição do grupo, a menos que este seja um grupo de administração para uma coleção ou comunidade; nesse caso, o nome e a descrição do grupo são gerados automaticamente e não podem ser editados. Nas seções a seguir, você pode editar a associação ao grupo.Veja [o wiki] (https://wiki.lyrasis.org/display/DSDOC7x/Create+or+manage+a+user+group) para obter mais detalhes.", - //"admin.batch-import.title": "Import Batch", - "admin.batch-import.title": "Importar um Lote", - - //"admin.batch-import.page.header": "Import Batch", - "admin.batch-import.page.header": "Importar um Lote", - - //"admin.batch-import.page.help": "Select the Collection to import into. Then, drop or browse to a Simple Archive Format (SAF) zip file that includes the Items to import", - "admin.batch-import.page.help": "Selecione a Coleção para o qual deseja importar. Arraste ou selecione um arquivo zip no formato Simple Archive Format (SAF) que inclua os Items para importar", - - //"admin.batch-import.page.dropMsg": "Drop a batch ZIP to import", - "admin.batch-import.page.dropMsg": "Arraste e solte um lote ZIP para importar", - - //"admin.batch-import.page.dropMsgReplace": "Drop to replace the batch ZIP to import", - "admin.batch-import.page.dropMsgReplace": "Arraste e solte um lote ZIP para substituir o lote para importar", - - //"admin.batch-import.page.error.addFile": "Select Zip file first!", - "admin.batch-import.page.error.addFile": "Selecione um arquivo ZIP primeiro!", - - //"admin.batch-import.page.validateOnly.hint": "When selected, the uploaded ZIP will be validated. You will receive a report of detected changes, but no changes will be saved.", - "admin.batch-import.page.validateOnly.hint": "Quando selecionado , o ZIP enviado sera validado. Você receberá um relatório das alterações detectadas, mas nenhuma alteração será salva.", + // "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.", (Auto-Translated) + "admin.access-control.groups.form.tooltip.editGroup.addEpeople": "Para adicionar ou remover uma EPerson para/deste grupo, clique no botão 'Navegar por tudo' ou use a barra de pesquisa abaixo para pesquisar usuários (use o dropdown à esquerda da barra de pesquisa para escolher se deve pesquisar por metadados ou por e-mail). Em seguida, clique no Ãcone mais para cada usuário que você deseja adicionar na lista abaixo, ou o Ãcone da lata de lixo para cada usuário que você deseja remover. A lista abaixo pode ter várias páginas: use os controles da página abaixo da lista para navegar até as próximas páginas.", - //"admin.batch-import.page.remove": "remove", - "admin.batch-import.page.remove": "remover", + // "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 groups. Then click the plus icon for each group you wish to add in the list below, or the trash can icon for each group you wish to remove. The list below may have several pages: use the page controls below the list to navigate to the next pages.", (Auto-Translated) + "admin.access-control.groups.form.tooltip.editGroup.addSubgroups": "Para adicionar ou remover um subgrupo de/para este grupo, clique no botão 'Navegar por tudo' ou use a barra de pesquisa abaixo para pesquisar por grupos. Em seguida, clique no Ãcone mais para cada grupo que você deseja adicionar na lista abaixo, ou o Ãcone da lata de lixo para cada grupo que você deseja remover. A lista abaixo pode ter várias páginas: use os controles da página abaixo da lista para navegar até as próximas páginas.", // "admin.search.breadcrumbs": "Administrative Search", "admin.search.breadcrumbs": "Pesquisa Administrativa", @@ -811,48 +812,192 @@ // "admin.workflow.item.workflow": "Workflow", "admin.workflow.item.workflow": "Workflow", + // "admin.workflow.item.workspace": "Workspace", (Auto-Translated) + "admin.workflow.item.workspace": "Ãrea de trabalho", + // "admin.workflow.item.delete": "Delete", "admin.workflow.item.delete": "Apagar", // "admin.workflow.item.send-back": "Send back", "admin.workflow.item.send-back": "Devolver", + // "admin.workflow.item.policies": "Policies", (Auto-Translated) + "admin.workflow.item.policies": "PolÃticas", + + // "admin.workflow.item.supervision": "Supervision", (Auto-Translated) + "admin.workflow.item.supervision": "Supervisão", + // "admin.metadata-import.breadcrumbs": "Import Metadata", "admin.metadata-import.breadcrumbs": "Importar Metadados", + // "admin.batch-import.breadcrumbs": "Import Batch", + "admin.batch-import.breadcrumbs": "Importar um Lote", + // "admin.metadata-import.title": "Import Metadata", "admin.metadata-import.title": "Importar Metadados", + // "admin.batch-import.title": "Import Batch", + "admin.batch-import.title": "Importar um Lote", + // "admin.metadata-import.page.header": "Import Metadata", "admin.metadata-import.page.header": "Importar Metadados", + // "admin.batch-import.page.header": "Import Batch", + "admin.batch-import.page.header": "Importar um Lote", + // "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": "Você arrastar soltar ou procurar arquivos CSV que contêm operações de metadados em lote em arquivos aqui", + // "admin.batch-import.page.help": "Select the Collection to import into. Then, drop or browse to a Simple Archive Format (SAF) zip file that includes the Items to import", + "admin.batch-import.page.help": "Selecione a Coleção para o qual deseja importar. Arraste ou selecione um arquivo zip no formato Simple Archive Format (SAF) que inclua os Items para importar", + + // "admin.batch-import.page.toggle.help": "It is possible to perform import either with file upload or via URL, use above toggle to set the input source", (Auto-Translated) + "admin.batch-import.page.toggle.help": "É possÃvel executar a importação com o upload de arquivo ou via URL, use o controle acima para definir a fonte de entrada", + // "admin.metadata-import.page.dropMsg": "Drop a metadata CSV to import", "admin.metadata-import.page.dropMsg": "Arraste um CSV de metadados para importar", + // "admin.batch-import.page.dropMsg": "Drop a batch ZIP to import", + "admin.batch-import.page.dropMsg": "Arraste e solte um lote ZIP para importar", + // "admin.metadata-import.page.dropMsgReplace": "Drop to replace the metadata CSV to import", "admin.metadata-import.page.dropMsgReplace": "Solte para substituir o CSV de metadados a ser importado", + // "admin.batch-import.page.dropMsgReplace": "Drop to replace the batch ZIP to import", + "admin.batch-import.page.dropMsgReplace": "Arraste e solte um lote ZIP para substituir o lote para importar", + // "admin.metadata-import.page.button.return": "Back", "admin.metadata-import.page.button.return": "Voltar", // "admin.metadata-import.page.button.proceed": "Proceed", "admin.metadata-import.page.button.proceed": "Continuar", - //"admin.metadata-import.page.button.select-collection": "Select Collection", + // "admin.metadata-import.page.button.select-collection": "Select Collection", "admin.metadata-import.page.button.select-collection": "Selecione a Coleção", // "admin.metadata-import.page.error.addFile": "Select file first!", "admin.metadata-import.page.error.addFile": "Selecione o arquivo primeiro!", + // "admin.metadata-import.page.error.addFileUrl": "Insert file url first!", (Auto-Translated) + "admin.metadata-import.page.error.addFileUrl": "Insira o URL do arquivo primeiro!", + + // "admin.batch-import.page.error.addFile": "Select Zip file first!", + "admin.batch-import.page.error.addFile": "Selecione um arquivo ZIP primeiro!", + + // "admin.metadata-import.page.toggle.upload": "Upload", (Auto-Translated) + "admin.metadata-import.page.toggle.upload": "Carregar", + + // "admin.metadata-import.page.toggle.url": "URL", (Auto-Translated) + "admin.metadata-import.page.toggle.url": "URL", + + // "admin.metadata-import.page.urlMsg": "Insert the batch ZIP url to import", (Auto-Translated) + "admin.metadata-import.page.urlMsg": "Insira o URL do lote em ZIP para importar", + // "admin.metadata-import.page.validateOnly": "Validate Only", "admin.metadata-import.page.validateOnly": "Validar Somente", // "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": "Quando selecionado, o CSV carregado será validado. Você receberá um relatório das alterações detectadas, mas nenhuma alteração será salva.", + // "advanced-workflow-action.rating.form.rating.label": "Rating", (Auto-Translated) + "advanced-workflow-action.rating.form.rating.label": "Avaliação", + + // "advanced-workflow-action.rating.form.rating.error": "You must rate the item", (Auto-Translated) + "advanced-workflow-action.rating.form.rating.error": "Você deve avaliar o item", + + // "advanced-workflow-action.rating.form.review.label": "Review", (Auto-Translated) + "advanced-workflow-action.rating.form.review.label": "Análise", + + // "advanced-workflow-action.rating.form.review.error": "You must enter a review to submit this rating", (Auto-Translated) + "advanced-workflow-action.rating.form.review.error": "Você deve inserir uma revisão para enviar esta classificação", + + // "advanced-workflow-action.rating.description": "Please select a rating below", (Auto-Translated) + "advanced-workflow-action.rating.description": "Selecione uma classificação abaixo", + + // "advanced-workflow-action.rating.description-requiredDescription": "Please select a rating below and also add a review", (Auto-Translated) + "advanced-workflow-action.rating.description-requiredDescription": "Selecione uma classificação abaixo e também adicione uma revisão", + + // "advanced-workflow-action.select-reviewer.description-single": "Please select a single reviewer below before submitting", (Auto-Translated) + "advanced-workflow-action.select-reviewer.description-single": "Selecione um único revisor abaixo antes de enviar", + + // "advanced-workflow-action.select-reviewer.description-multiple": "Please select one or more reviewers below before submitting", (Auto-Translated) + "advanced-workflow-action.select-reviewer.description-multiple": "Selecione um ou mais revisores abaixo antes de enviar", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.head": "EPeople", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.head": "EPeople", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.head": "Add EPeople", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.head": "Adicione EPeople", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.button.see-all": "Browse All", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.button.see-all": "Navegar por tudo", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.headMembers": "Current Members", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.headMembers": "Membros atuais", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.metadata": "Metadata", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.metadata": "Metadados", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.email": "E-mail (exact)", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.email": "E-mail (exato)", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.button": "Search", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.button": "Procurar", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.id": "ID", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.id": "ID", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.name": "Name", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.name": "Nome", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.identity": "Identity", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.identity": "Identidade", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.email": "Email", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.email": "E-mail", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.netid": "NetID", (Auto-Translated) + "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", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit": "Remover / adicionar", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.remove": "Remove member with name "{{name}}"", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.remove": "Remova o membro com o nome "{{name}}"", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.addMember": "Successfully added member: "{{name}}"", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.addMember": "Membro adicionado com sucesso: "{{name}}"", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.addMember": "Failed to add member: "{{name}}"", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.addMember": "Falha ao adicionar membro: "{{name}}"", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.deleteMember": "Successfully deleted member: "{{name}}"", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.deleteMember": "Membro excluÃdo com sucesso: "{{name}}"", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.deleteMember": "Failed to delete member: "{{name}}"", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.deleteMember": "Falha ao excluir membro: "{{name}}"", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.add": "Add member with name "{{name}}"", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.add": "Adicionar membro com o nome "{{name}}"", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.noActiveGroup": "No current active group, submit a name first.", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.noActiveGroup": "Nenhum grupo ativo atual, envie um nome primeiro.", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-members-yet": "No members in group yet, search and add.", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-members-yet": "Ainda não há membros do grupo, procure e adicione.", + + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-items": "No EPeople found in that search", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-items": "Nenhuma EPeople encontrou nessa pesquisa", + + // "advanced-workflow-action.select-reviewer.no-reviewer-selected.error": "No reviewer selected.", (Auto-Translated) + "advanced-workflow-action.select-reviewer.no-reviewer-selected.error": "Nenhum revisor selecionado.", + + // "admin.batch-import.page.validateOnly.hint": "When selected, the uploaded ZIP will be validated. You will receive a report of detected changes, but no changes will be saved.", + "admin.batch-import.page.validateOnly.hint": "Quando selecionado , o ZIP enviado sera validado. Você receberá um relatório das alterações detectadas, mas nenhuma alteração será salva.", + + // "admin.batch-import.page.remove": "remove", + "admin.batch-import.page.remove": "remover", + // "auth.errors.invalid-user": "Invalid email address or password.", "auth.errors.invalid-user": "Endereço de email ou senha inválidos.", @@ -862,12 +1007,11 @@ // "auth.messages.token-refresh-failed": "Refreshing your session token failed. Please log in again.", "auth.messages.token-refresh-failed": "Falha ao atualizar seu token de sessão. Por favor faça login novamente.", - // "bitstream.download.page": "Now downloading {{bitstream}}..." , - "bitstream.download.page": "Baixando {{bitstream}} agora ..." , - - // "bitstream.download.page.back": "Back" , - "bitstream.download.page.back": "Voltar" , + // "bitstream.download.page": "Now downloading {{bitstream}}...", + "bitstream.download.page": "Baixando {{bitstream}} agora ...", + // "bitstream.download.page.back": "Back", + "bitstream.download.page.back": "Voltar", // "bitstream.edit.authorizations.link": "Edit bitstream's Policies", "bitstream.edit.authorizations.link": "Editar as polÃticas do bitstream's", @@ -887,7 +1031,7 @@ // "bitstream.edit.form.description.label": "Description", "bitstream.edit.form.description.label": "Descrição", - // "bitstream.edit.form.embargo.hint": "The first day from which access is allowed. <b>This date cannot be modified on this form.</b> To set an embargo date for a bitstream, go to the <i>Item Status</i> tab, click <i>Autorizações...</i>, create or edit the bitstream's <i>READ</i> policy, and set the <i>Start Date</i> as desired.", + // "bitstream.edit.form.embargo.hint": "The first day from which access is allowed. <b>This date cannot be modified on this form.</b> To set an embargo date for a bitstream, go to the <i>Item Status</i> tab, click <i>Authorizations...</i>, create or edit the bitstream's <i>READ</i> policy, and set the <i>Start Date</i> as desired.", "bitstream.edit.form.embargo.hint": "O primeiro dia a partir do qual o acesso é permitido. <b>Esta data não pode ser modificada neste formulário.</b> Para definir uma data de embargo para este bitstream, vá para a guia <i>Status do Item</i>, clique em <i>Autorizações...</i >, crie ou edite a polÃtica <i>READ</i> do bitstream e defina a <i>Data de InÃcio</i> conforme desejado.", // "bitstream.edit.form.embargo.label": "Embargo until specific date", @@ -920,6 +1064,9 @@ // "bitstream.edit.notifications.error.format.title": "An error occurred saving the bitstream's format", "bitstream.edit.notifications.error.format.title": "Um erro ocorreu salvando o formato do bitstream's", + // "bitstream.edit.notifications.error.primaryBitstream.title": "An error occurred saving the primary bitstream", (Auto-Translated) + "bitstream.edit.notifications.error.primaryBitstream.title": "Ocorreu um erro salvando o BitStream primário", + // "bitstream.edit.form.iiifLabel.label": "IIIF Label", "bitstream.edit.form.iiifLabel.label": "Etiqueta IIIF", @@ -944,7 +1091,6 @@ // "bitstream.edit.form.iiifHeight.hint": "The canvas height should usually match the image height.", "bitstream.edit.form.iiifHeight.hint": "A altura da tela geralmente deve corresponder à altura da imagem.", - // "bitstream.edit.notifications.saved.content": "Your changes to this bitstream were saved.", "bitstream.edit.notifications.saved.content": "Suas alterações neste bitstream foram salvas.", @@ -968,6 +1114,7 @@ // "bitstream-request-a-copy.intro.bitstream.one": "Requesting the following file: ", "bitstream-request-a-copy.intro.bitstream.one": "Solicitando o seguinte arquivo: ", + // "bitstream-request-a-copy.intro.bitstream.all": "Requesting all files. ", "bitstream-request-a-copy.intro.bitstream.all": "Solicitando todos os arquivos. ", @@ -1022,6 +1169,12 @@ // "browse.comcol.by.subject": "By Subject", "browse.comcol.by.subject": "Por Assunto", + // "browse.comcol.by.srsc": "By Subject Category", (Auto-Translated) + "browse.comcol.by.srsc": "Por categoria de assunto", + + // "browse.comcol.by.nsi": "By Norwegian Science Index", (Auto-Translated) + "browse.comcol.by.nsi": "Pelo Ãndice de Ciências Norueguesas", + // "browse.comcol.by.title": "By Title", "browse.comcol.by.title": "Por TÃtulo", @@ -1052,6 +1205,12 @@ // "browse.metadata.subject.breadcrumbs": "Browse by Subject", "browse.metadata.subject.breadcrumbs": "Pesquisar por Assunto", + // "browse.metadata.srsc.breadcrumbs": "Browse by Subject Category", (Auto-Translated) + "browse.metadata.srsc.breadcrumbs": "Navegue por categoria de assunto", + + // "browse.metadata.nsi.breadcrumbs": "Browse by Norwegian Science Index", (Auto-Translated) + "browse.metadata.nsi.breadcrumbs": "Navegue pelo Ãndice de Ciência Norueguês", + // "browse.metadata.title.breadcrumbs": "Browse by Title", "browse.metadata.title.breadcrumbs": "Pesquisar por TÃtulo", @@ -1133,15 +1292,33 @@ // "browse.startsWith.type_text": "Filter results by typing the first few letters", "browse.startsWith.type_text": "Filtrar resultados informando as primeiras letras:", + // "browse.startsWith.input": "Filter", (Auto-Translated) + "browse.startsWith.input": "Filtro", + + // "browse.taxonomy.button": "Browse", (Auto-Translated) + "browse.taxonomy.button": "Navegar", + // "browse.title": "Browsing {{ collection }} by {{ field }}{{ startsWith }} {{ value }}", - "browse.title": "Navegando {{ collection }} por {{ field }} {{ value }}", + "browse.title": "Navegando {{ collection }} por {{ field }}{{ startsWith }} {{ value }}", // "browse.title.page": "Browsing {{ collection }} by {{ field }} {{ value }}", "browse.title.page": "Navegando {{ collection }} por {{ field }} {{ value }}", + // "search.browse.item-back": "Back to Results", (Auto-Translated) + "search.browse.item-back": "De volta aos resultados", + // "chips.remove": "Remove chip", "chips.remove": "Remover chip", + // "claimed-approved-search-result-list-element.title": "Approved", (Auto-Translated) + "claimed-approved-search-result-list-element.title": "Approved", + + // "claimed-declined-search-result-list-element.title": "Rejected, sent back to submitter", (Auto-Translated) + "claimed-declined-search-result-list-element.title": "Rejeitado, enviado de volta ao submissor", + + // "claimed-declined-task-search-result-list-element.title": "Declined, sent back to Review Manager's workflow", (Auto-Translated) + "claimed-declined-task-search-result-list-element.title": "Recusou, enviado de volta ao fluxo de trabalho do gerente de revisão", + // "collection.create.head": "Create a Collection", "collection.create.head": "Criar uma coleção", @@ -1235,8 +1412,8 @@ // "collection.edit.item-mapper.remove": "Remove selected item mappings", "collection.edit.item-mapper.remove": "Remover mapeamentos selecionados", - // "collection.edit.item-mapper.search-form.placeholder": "Search Item to Map...", - "collection.edit.item-mapper.search-form.placeholder": "Pesquisar Item a Mapear...", + // "collection.edit.item-mapper.search-form.placeholder": "Search items...", + "collection.edit.item-mapper.search-form.placeholder": "Pesquisar Itens...", // "collection.edit.item-mapper.tabs.browse": "Browse mapped items", "collection.edit.item-mapper.tabs.browse": "Navegar por itens mapeados", @@ -1274,9 +1451,15 @@ // "collection.edit.notifications.success": "Successfully edited the Collection", "collection.edit.notifications.success": "Coleção editada com sucesso", - // "collection.edit.return": "Return", + // "collection.edit.return": "Back", "collection.edit.return": "Voltar", + // "collection.edit.tabs.access-control.head": "Access Control", (Auto-Translated) + "collection.edit.tabs.access-control.head": "Controle de acesso", + + // "collection.edit.tabs.access-control.title": "Collection Edit - Access Control", (Auto-Translated) + "collection.edit.tabs.access-control.title": "Edição de coleção - Controle de acesso", + // "collection.edit.tabs.curate.head": "Curate", "collection.edit.tabs.curate.head": "Curadoria", @@ -1400,7 +1583,6 @@ // "collection.edit.template.title": "Edit Template Item", "collection.edit.template.title": "Editar Template de Item", - // "collection.form.abstract": "Short Description", "collection.form.abstract": "Descrição curta", @@ -1460,48 +1642,70 @@ // "collection.source.controls.head": "Harvest Controls", "collection.source.controls.head": "Controles de Colheita(Harvest)", + // "collection.source.controls.test.submit.error": "Something went wrong with initiating the testing of the settings", "collection.source.controls.test.submit.error": "Alguma coisa errada durante a inicialização e teste das configurações", + // "collection.source.controls.test.failed": "The script to test the settings has failed", "collection.source.controls.test.failed": "O script de teste das configurações falhou", + // "collection.source.controls.test.completed": "The script to test the settings has successfully finished", "collection.source.controls.test.completed": "O script de teste das configurações terminou com sucesso", + // "collection.source.controls.test.submit": "Test configuration", "collection.source.controls.test.submit": "Testar a configuração", + // "collection.source.controls.test.running": "Testing configuration...", "collection.source.controls.test.running": "Testando a configuração...", + // "collection.source.controls.import.submit.success": "The import has been successfully initiated", "collection.source.controls.import.submit.success": "A importação foi iniciada com sucesso", + // "collection.source.controls.import.submit.error": "Something went wrong with initiating the import", "collection.source.controls.import.submit.error": "Alguma coisa errada durante a inicialização da importação", + // "collection.source.controls.import.submit": "Import now", "collection.source.controls.import.submit": "Importar agora", + // "collection.source.controls.import.running": "Importing...", "collection.source.controls.import.running": "Importando...", + // "collection.source.controls.import.failed": "An error occurred during the import", "collection.source.controls.import.failed": "Um erro ocorreu durante a importação", + // "collection.source.controls.import.completed": "The import completed", "collection.source.controls.import.completed": "A importação concluiu", + // "collection.source.controls.reset.submit.success": "The reset and reimport has been successfully initiated", "collection.source.controls.reset.submit.success": "A redefinição e reimportação foram iniciadas com sucesso", + // "collection.source.controls.reset.submit.error": "Something went wrong with initiating the reset and reimport", "collection.source.controls.reset.submit.error": "Alguma coisa errada durante a inicialização da redefinição e reimportação", + // "collection.source.controls.reset.failed": "An error occurred during the reset and reimport", "collection.source.controls.reset.failed": "Um erro ocorreu durante a redifinição e reimportação", + // "collection.source.controls.reset.completed": "The reset and reimport completed", "collection.source.controls.reset.completed": "Completou a redefinição e a reimportação", + // "collection.source.controls.reset.submit": "Reset and reimport", "collection.source.controls.reset.submit": "Redefinir e reimportar", + // "collection.source.controls.reset.running": "Resetting and reimporting...", "collection.source.controls.reset.running": "Redefinindo e importando...", + // "collection.source.controls.harvest.status": "Harvest status:", "collection.source.controls.harvest.status": "Status da Colheita (Harvest):", + // "collection.source.controls.harvest.start": "Harvest start time:", "collection.source.controls.harvest.start": "Hora de Ãnicio da Colheita(Harvest):", + // "collection.source.controls.harvest.last": "Last time harvested:", "collection.source.controls.harvest.last": "Última hora de colhida:", + // "collection.source.controls.harvest.message": "Harvest info:", "collection.source.controls.harvest.message": "Informação sobre Colheita (Harvest):", + // "collection.source.controls.harvest.no-information": "N/A", "collection.source.controls.harvest.no-information": "N/D", @@ -1610,6 +1814,12 @@ // "community.edit.tabs.curate.title": "Community Edit - Curate", "community.edit.tabs.curate.title": "Editar Comunidade - Curador", + // "community.edit.tabs.access-control.head": "Access Control", (Auto-Translated) + "community.edit.tabs.access-control.head": "Controle de acesso", + + // "community.edit.tabs.access-control.title": "Community Edit - Access Control", (Auto-Translated) + "community.edit.tabs.access-control.title": "Edição da comunidade - Controle de acesso", + // "community.edit.tabs.metadata.head": "Edit Metadata", "community.edit.tabs.metadata.head": "Editar Metadado", @@ -1676,7 +1886,6 @@ // "comcol-role.edit.item_read.anonymous-group": "Default read for incoming items is currently set to Anonymous.", "comcol-role.edit.item_read.anonymous-group": "A leitura padrão para itens de entrada está atualmente definida como Anônima.", - // "comcol-role.edit.bitstream_read.name": "Default bitstream read access", "comcol-role.edit.bitstream_read.name": "Acesso de leitura de bitstream padrão", @@ -1686,27 +1895,29 @@ // "comcol-role.edit.bitstream_read.anonymous-group": "Default read for incoming bitstreams is currently set to Anonymous.", "comcol-role.edit.bitstream_read.anonymous-group": "A leitura padrão para bitstreams de entrada está atualmente definida como Anônima.", - // "comcol-role.edit.editor.name": "Editors", "comcol-role.edit.editor.name": "Editores", // "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": "Editores podem editar metadados de submissões de entrada, e aceitar ou rejeitar elas.", - // "comcol-role.edit.finaleditor.name": "Final editors", "comcol-role.edit.finaleditor.name": "Editores Finais", // "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": "Editores Finais podem editar os metadadods de submissões de entrada, mas não podem rejeitar elas.", - // "comcol-role.edit.reviewer.name": "Reviewers", "comcol-role.edit.reviewer.name": "Revisores", // "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": "Revisores podem aceitar ou rejeitar submissões de entrada.. Entretanto, eles não podem editar os metadados da submissão.", + // "comcol-role.edit.scorereviewers.name": "Score Reviewers", (Auto-Translated) + "comcol-role.edit.scorereviewers.name": "Revisores de pontuação", + + // "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.", (Auto-Translated) + "comcol-role.edit.scorereviewers.description": "Os revisores podem dar uma pontuação para os envios de entrada, isso definirá se o envio será rejeitado ou não.", // "community.form.abstract": "Short Description", "community.form.abstract": "Descrição curta", @@ -1741,11 +1952,11 @@ // "community.all-lists.head": "Subcommunities and Collections", "community.all-lists.head": "Sub-Comunidade e Coleções", - // "community.sub-collection-list.head": "Collections of this Community", - "community.sub-collection-list.head": "Coleções desta Comunidade", + // "community.sub-collection-list.head": "Collections in this Community", + "community.sub-collection-list.head": "Coleções nesta Comunidade", - // "community.sub-community-list.head": "Communities of this Community", - "community.sub-community-list.head": "Comunidades desta Comunidade", + // "community.sub-community-list.head": "Communities in this Community", + "community.sub-community-list.head": "Comunidades nesta Comunidade", // "cookies.consent.accept-all": "Accept all", "cookies.consent.accept-all": "Aceitar tudo", @@ -1768,6 +1979,12 @@ // "cookies.consent.app.required.title": "(always required)", "cookies.consent.app.required.title": "(sempre requerido)", + // "cookies.consent.app.disable-all.description": "Use this switch to enable or disable all services.", (Auto-Translated) + "cookies.consent.app.disable-all.description": "Use esse comutador para ativar ou desativar todos os serviços.", + + // "cookies.consent.app.disable-all.title": "Enable or disable all services", (Auto-Translated) + "cookies.consent.app.disable-all.title": "Ativar ou desativar todos os serviços", + // "cookies.consent.update": "There were changes since your last visit, please update your consent.", "cookies.consent.update": "Houve alterações desde sua última visita, atualize seu consentimento.", @@ -1777,6 +1994,15 @@ // "cookies.consent.decline": "Decline", "cookies.consent.decline": "Recusar", + // "cookies.consent.ok": "That's ok", (Auto-Translated) + "cookies.consent.ok": "Isso está ok", + + // "cookies.consent.save": "Save", (Auto-Translated) + "cookies.consent.save": "Salvar", + + // "cookies.consent.content-notice.title": "Cookie Consent", (Auto-Translated) + "cookies.consent.content-notice.title": "Consentimento de cookies", + // "cookies.consent.content-notice.description": "We collect and process your personal information for the following purposes: <strong>Authentication, Preferences, Acknowledgement and Statistics</strong>. <br/> To learn more, please read our {privacyPolicy}.", "cookies.consent.content-notice.description": "Coletamos e processamos suas informações pessoais para os seguintes propósitos: <strong>Autenticação, Preferências, Reconhecimento e EstatÃsticas</strong>. <br/> Para aprender mais, por favor leia nossa {privacyPolicy}.", @@ -1798,6 +2024,12 @@ // "cookies.consent.content-modal.title": "Information that we collect", "cookies.consent.content-modal.title": "Informações que coletamos", + // "cookies.consent.content-modal.services": "services", (Auto-Translated) + "cookies.consent.content-modal.services": "Serviços", + + // "cookies.consent.content-modal.service": "service", (Auto-Translated) + "cookies.consent.content-modal.service": "serviço", + // "cookies.consent.app.title.authentication": "Authentication", "cookies.consent.app.title.authentication": "Authenticação", @@ -1822,16 +2054,28 @@ // "cookies.consent.app.description.google-analytics": "Allows us to track statistical data", "cookies.consent.app.description.google-analytics": "Nos permite rastrear dados estatÃsticos", + // "cookies.consent.app.title.google-recaptcha": "Google reCaptcha", (Auto-Translated) + "cookies.consent.app.title.google-recaptcha": "Google reCAPTCHA", + + // "cookies.consent.app.description.google-recaptcha": "We use google reCAPTCHA service during registration and password recovery", (Auto-Translated) + "cookies.consent.app.description.google-recaptcha": "Usamos o serviço Google reCAPTCHA durante o registro e recuperação de senha", + // "cookies.consent.purpose.functional": "Functional", "cookies.consent.purpose.functional": "Funcional", // "cookies.consent.purpose.statistical": "Statistical", "cookies.consent.purpose.statistical": "EstatÃstica", - // "curation-task.task.citationpage.label": "Generate Citation Page", + // "cookies.consent.purpose.registration-password-recovery": "Registration and Password recovery", (Auto-Translated) + "cookies.consent.purpose.registration-password-recovery": "Registro e recuperação de senha", + + // "cookies.consent.purpose.sharing": "Sharing", (Auto-Translated) + "cookies.consent.purpose.sharing": "Compartilhamento", + + // "curation-task.task.citationpage.label": "Generate Citation Page", "curation-task.task.citationpage.label": "Gerar página de citação", - // "curation-task.task.checklinks.label": "Check Links in Metadata", + // "curation-task.task.checklinks.label": "Check Links in Metadata", "curation-task.task.checklinks.label": "Verificar links em metadados", // "curation-task.task.noop.label": "NOOP", @@ -1849,6 +2093,9 @@ // "curation-task.task.vscan.label": "Virus Scan", "curation-task.task.vscan.label": "Escanear Virus", + // "curation-task.task.registerdoi.label": "Register DOI", (Auto-Translated) + "curation-task.task.registerdoi.label": "Registrar DOI", + // "curation.form.task-select.label": "Task:", "curation.form.task-select.label": "Tarefa:", @@ -1897,6 +2144,9 @@ // "dso.name.untitled": "Untitled", "dso.name.untitled": "Sem tÃtulo", + // "dso.name.unnamed": "Unnamed", (Auto-Translated) + "dso.name.unnamed": "Sem nome", + // "dso-selector.create.collection.head": "New collection", "dso-selector.create.collection.head": "Nova coleção", @@ -1906,6 +2156,9 @@ // "dso-selector.create.community.head": "New community", "dso-selector.create.community.head": "Nova comunidade", + // "dso-selector.create.community.or-divider": "or", (Auto-Translated) + "dso-selector.create.community.or-divider": "ou", + // "dso-selector.create.community.sub-level": "Create a new community in", "dso-selector.create.community.sub-level": "Criar uma nova coleção em", @@ -1936,10 +2189,10 @@ // "dso-selector.export-metadata.dspaceobject.head": "Export metadata from", "dso-selector.export-metadata.dspaceobject.head": "Exportar metadados de", - //"dso-selector.export-batch.dspaceobject.head": "Export Batch (ZIP) from", + // "dso-selector.export-batch.dspaceobject.head": "Export Batch (ZIP) from", "dso-selector.export-batch.dspaceobject.head": "Exportar Lote (ZIP) de", - //"dso-selector.import-batch.dspaceobject.head": "Import batch from", + // "dso-selector.import-batch.dspaceobject.head": "Import batch from", "dso-selector.import-batch.dspaceobject.head": "Importar lote de", // "dso-selector.no-results": "No {{ type }} found", @@ -1957,6 +2210,9 @@ // "dso-selector.set-scope.community.button": "Search all of DSpace", "dso-selector.set-scope.community.button": "Pesquisar em todo o DSpace", + // "dso-selector.set-scope.community.or-divider": "or", (Auto-Translated) + "dso-selector.set-scope.community.or-divider": "ou", + // "dso-selector.set-scope.community.input-header": "Search for a community or collection", "dso-selector.set-scope.community.input-header": "Pesquisar uma comunidade ou coleção", @@ -1972,6 +2228,48 @@ // "dso-selector.claim.item.create-from-scratch": "Create a new one", "dso-selector.claim.item.create-from-scratch": "Criar um novo", + // "dso-selector.results-could-not-be-retrieved": "Something went wrong, please refresh again ↻", (Auto-Translated) + "dso-selector.results-could-not-be-retrieved": "Algo deu errado, por favor, recarregue novamente ↻", + + // "supervision-group-selector.header": "Supervision Group Selector", (Auto-Translated) + "supervision-group-selector.header": "Seletor de grupo de supervisão", + + // "supervision-group-selector.select.type-of-order.label": "Select a type of Order", (Auto-Translated) + "supervision-group-selector.select.type-of-order.label": "Selecione um tipo de pedido", + + // "supervision-group-selector.select.type-of-order.option.none": "NONE", (Auto-Translated) + "supervision-group-selector.select.type-of-order.option.none": "NENHUM", + + // "supervision-group-selector.select.type-of-order.option.editor": "EDITOR", (Auto-Translated) + "supervision-group-selector.select.type-of-order.option.editor": "EDITOR", + + // "supervision-group-selector.select.type-of-order.option.observer": "OBSERVER", (Auto-Translated) + "supervision-group-selector.select.type-of-order.option.observer": "OBSERVADOR", + + // "supervision-group-selector.select.group.label": "Select a Group", (Auto-Translated) + "supervision-group-selector.select.group.label": "Selecione um grupo", + + // "supervision-group-selector.button.cancel": "Cancel", (Auto-Translated) + "supervision-group-selector.button.cancel": "Cancelar", + + // "supervision-group-selector.button.save": "Save", (Auto-Translated) + "supervision-group-selector.button.save": "Salvar", + + // "supervision-group-selector.select.type-of-order.error": "Please select a type of order", (Auto-Translated) + "supervision-group-selector.select.type-of-order.error": "Selecione um tipo de pedido", + + // "supervision-group-selector.select.group.error": "Please select a group", (Auto-Translated) + "supervision-group-selector.select.group.error": "Selecione um grupo", + + // "supervision-group-selector.notification.create.success.title": "Successfully created supervision order for group {{ name }}", (Auto-Translated) + "supervision-group-selector.notification.create.success.title": "Ordem de supervisão criada com sucesso para o grupo {{ name }}", + + // "supervision-group-selector.notification.create.failure.title": "Error", (Auto-Translated) + "supervision-group-selector.notification.create.failure.title": "Erro", + + // "supervision-group-selector.notification.create.already-existing": "A supervision order already exists on this item for selected group", (Auto-Translated) + "supervision-group-selector.notification.create.already-existing": "Já existe uma ordem de supervisão neste item para o grupo selecionado", + // "confirmation-modal.export-metadata.header": "Export metadata for {{ dsoName }}", "confirmation-modal.export-metadata.header": "Exportar metadados para {{ dsoName }}", @@ -1984,16 +2282,16 @@ // "confirmation-modal.export-metadata.confirm": "Export", "confirmation-modal.export-metadata.confirm": "Exportar", - //"confirmation-modal.export-batch.header": "Export batch (ZIP) for {{ dsoName }}", + // "confirmation-modal.export-batch.header": "Export batch (ZIP) for {{ dsoName }}", "confirmation-modal.export-batch.header": "Exportar lote (ZIP) para {{ dsoName }}", - //"confirmation-modal.export-batch.info": "Are you sure you want to export batch (ZIP) for {{ dsoName }}", + // "confirmation-modal.export-batch.info": "Are you sure you want to export batch (ZIP) for {{ dsoName }}", "confirmation-modal.export-batch.info": "Você tem certeza que deseja exportar o lote (ZIP) para {{ dsoName }}", - //"confirmation-modal.export-batch.cancel": "Cancel", + // "confirmation-modal.export-batch.cancel": "Cancel", "confirmation-modal.export-batch.cancel": "Cancelar", - //"confirmation-modal.export-batch.confirm": "Export", + // "confirmation-modal.export-batch.confirm": "Export", "confirmation-modal.export-batch.confirm": "Exportar", // "confirmation-modal.delete-eperson.header": "Delete EPerson \"{{ dsoName }}\"", @@ -2020,6 +2318,18 @@ // "confirmation-modal.delete-profile.confirm": "Delete", "confirmation-modal.delete-profile.confirm": "Apagar", + // "confirmation-modal.delete-subscription.header": "Delete Subscription", (Auto-Translated) + "confirmation-modal.delete-subscription.header": "Excluir assinatura", + + // "confirmation-modal.delete-subscription.info": "Are you sure you want to delete subscription for "{{ dsoName }}"", (Auto-Translated) + "confirmation-modal.delete-subscription.info": "Tem certeza de que deseja excluir a assinatura para "{{ dsoName }}"", + + // "confirmation-modal.delete-subscription.cancel": "Cancel", (Auto-Translated) + "confirmation-modal.delete-subscription.cancel": "Cancelar", + + // "confirmation-modal.delete-subscription.confirm": "Delete", (Auto-Translated) + "confirmation-modal.delete-subscription.confirm": "Excluir", + // "error.bitstream": "Error fetching bitstream", "error.bitstream": "Erro ao carregar bitstream", @@ -2092,6 +2402,27 @@ // "error.validation.groupExists": "This group already exists", "error.validation.groupExists": "Este Grupo já existe", + // "error.validation.metadata.name.invalid-pattern": "This field cannot contain dots, commas or spaces. Please use the Element & Qualifier fields instead", (Auto-Translated) + "error.validation.metadata.name.invalid-pattern": "Este campo não pode conter pontos, vÃrgulas ou espaços. Ao invés, por favor, use os campos de Elemento e Qualificador", + + // "error.validation.metadata.name.max-length": "This field may not contain more than 32 characters", (Auto-Translated) + "error.validation.metadata.name.max-length": "Este campo pode não conter mais de 32 caracteres", + + // "error.validation.metadata.namespace.max-length": "This field may not contain more than 256 characters", (Auto-Translated) + "error.validation.metadata.namespace.max-length": "Este campo pode não conter mais de 256 caracteres", + + // "error.validation.metadata.element.invalid-pattern": "This field cannot contain dots, commas or spaces. Please use the Qualifier field instead", (Auto-Translated) + "error.validation.metadata.element.invalid-pattern": "Este campo não pode conter pontos, vÃrgulas ou espaços. Por favor, use o campo Qualificador em vez disso", + + // "error.validation.metadata.element.max-length": "This field may not contain more than 64 characters", (Auto-Translated) + "error.validation.metadata.element.max-length": "Este campo pode não conter mais de 64 caracteres", + + // "error.validation.metadata.qualifier.invalid-pattern": "This field cannot contain dots, commas or spaces", (Auto-Translated) + "error.validation.metadata.qualifier.invalid-pattern": "Este campo não pode conter pontos, vÃrgulas ou espaços", + + // "error.validation.metadata.qualifier.max-length": "This field may not contain more than 64 characters", (Auto-Translated) + "error.validation.metadata.qualifier.max-length": "Este campo pode não conter mais de 64 caracteres", + // "feed.description": "Syndication feed", "feed.description": "Feed de distribuição", @@ -2113,10 +2444,10 @@ // "footer.link.privacy-policy": "Privacy policy", "footer.link.privacy-policy": "PolÃtica de Privacidade", - // "footer.link.end-user-agreement":"End User Agreement", + // "footer.link.end-user-agreement": "End User Agreement", "footer.link.end-user-agreement": "Termos de Uso", - // "footer.link.feedback":"Send Feedback", + // "footer.link.feedback": "Send Feedback", "footer.link.feedback": "Enviar uma Sugestão", // "forgot-email.form.header": "Forgot Password", @@ -2131,8 +2462,8 @@ // "forgot-email.form.email.error.required": "Please fill in an email address", "forgot-email.form.email.error.required": "Por favor preencha o endereço de email", - // "forgot-email.form.email.error.pattern": "Please fill in a valid email address", - "forgot-email.form.email.error.pattern": "Por favor preencha com um e-mail válido", + // "forgot-email.form.email.error.not-email-form": "Please fill in a valid email address", (Auto-Translated) + "forgot-email.form.email.error.not-email-form": "Por favor preencha com um endereço de email válido", // "forgot-email.form.email.hint": "An email will be sent to this address with a further instructions.", "forgot-email.form.email.hint": "Um e-mail será enviado para este endereço com mais instruções.", @@ -2254,6 +2585,24 @@ // "form.no-value": "No value entered", "form.no-value": "Nenhum valor informado", + // "form.other-information.email": "Email", (Auto-Translated) + "form.other-information.email": "E-mail", + + // "form.other-information.first-name": "First Name", (Auto-Translated) + "form.other-information.first-name": "Primeiro nome", + + // "form.other-information.insolr": "In Solr Index", (Auto-Translated) + "form.other-information.insolr": "No Ãndice Solr", + + // "form.other-information.institution": "Institution", (Auto-Translated) + "form.other-information.institution": "Instituição", + + // "form.other-information.last-name": "Last Name", (Auto-Translated) + "form.other-information.last-name": "Sobrenome", + + // "form.other-information.orcid": "ORCID", (Auto-Translated) + "form.other-information.orcid": "ORCID", + // "form.remove": "Remove", "form.remove": "Apagar", @@ -2272,6 +2621,9 @@ // "form.submit": "Save", "form.submit": "Salvar", + // "form.create": "Create", (Auto-Translated) + "form.create": "Criar", + // "form.repeatable.sort.tip": "Drop the item in the new position", "form.repeatable.sort.tip": "Solte o item na nova posição", @@ -2281,8 +2633,8 @@ // "grant-deny-request-copy.email.back": "Back", "grant-deny-request-copy.email.back": "Voltar", - // "grant-deny-request-copy.email.message": "Message", - "grant-deny-request-copy.email.message": "Mensagem", + // "grant-deny-request-copy.email.message": "Optional additional message", + "grant-deny-request-copy.email.message": "Mensagem adicional opcional", // "grant-deny-request-copy.email.message.empty": "Please enter a message", "grant-deny-request-copy.email.message.empty": "Por favor coloque uma mensagem", @@ -2333,8 +2685,8 @@ // "grant-request-copy.header": "Grant document copy request", "grant-request-copy.header": "Conceder solicitação de cópia do documento", - // "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": "Esta mensagem será enviada ao requerente do pedido. O(s) documento(s) solicitado(s) será(ão) anexado(s).", + // "grant-request-copy.intro": "A message will be sent to the applicant of the request. The requested document(s) will be attached.", + "grant-request-copy.intro": "Uma mensagem será enviada ao requerente do pedido. O(s) documento(s) solicitado(s) será(ão) anexado(s).", // "grant-request-copy.success": "Successfully granted item request", "grant-request-copy.success": "Solicitação de item concedida com sucesso", @@ -2342,13 +2694,13 @@ // "health.breadcrumbs": "Health", "health.breadcrumbs": "Saúde", - // "health-page.heading" : "Health", + // "health-page.heading": "Health", "health-page.heading": "Saúde", - // "health-page.info-tab" : "Info", + // "health-page.info-tab": "Info", "health-page.info-tab": "Informação", - // "health-page.status-tab" : "Status", + // "health-page.status-tab": "Status", "health-page.status-tab": "Status", // "health-page.error.msg": "The health check service is temporarily unavailable", @@ -2441,6 +2793,9 @@ // "info.end-user-agreement.title": "End User Agreement", "info.end-user-agreement.title": "Contrato de Usuário Final", + // "info.end-user-agreement.hosting-country": "the United States", (Auto-Translated) + "info.end-user-agreement.hosting-country": "os Estados Unidos", + // "info.privacy.breadcrumbs": "Privacy Statement", "info.privacy.breadcrumbs": "PolÃtica de privacidade", @@ -2474,19 +2829,19 @@ // "info.feedback.email-label": "Your Email", "info.feedback.email-label": "Seu Email", - // "info.feedback.create.success" : "Feedback Sent Successfully!", + // "info.feedback.create.success": "Feedback Sent Successfully!", "info.feedback.create.success": "Sugestão Enviada com Sucesso!", - // "info.feedback.error.email.required" : "A valid email address is required", + // "info.feedback.error.email.required": "A valid email address is required", "info.feedback.error.email.required": "Um endereço de email válido é requerido", - // "info.feedback.error.message.required" : "A comment is required", + // "info.feedback.error.message.required": "A comment is required", "info.feedback.error.message.required": "Um comentário é requerido", - // "info.feedback.page-label" : "Page", + // "info.feedback.page-label": "Page", "info.feedback.page-label": "Página", - // "info.feedback.page_help" : "Tha page related to your feedback", + // "info.feedback.page_help": "Tha page related to your feedback", "info.feedback.page_help": "A página relacionada a sua sugestão", // "item.alerts.private": "This item is non-discoverable", @@ -2501,7 +2856,7 @@ // "item.edit.authorizations.title": "Edit item's Policies", "item.edit.authorizations.title": "Editar PolÃtica de item", - // "item.badge.private": "Private", + // "item.badge.private": "Non-discoverable", "item.badge.private": "Privado", // "item.badge.withdrawn": "Withdrawn", @@ -2657,13 +3012,75 @@ // "item.edit.tabs.disabled.tooltip": "You're not authorized to access this tab", "item.edit.tabs.disabled.tooltip": "Você não está autorizado a acessar esta guia", - // "item.edit.tabs.mapper.head": "Collection Mapper", "item.edit.tabs.mapper.head": "Mapeamento de Coleção", // "item.edit.tabs.item-mapper.title": "Item Edit - Collection Mapper", "item.edit.tabs.item-mapper.title": "Editar Item - Mapeamento de Coleção", + // "item.edit.identifiers.doi.status.UNKNOWN": "Unknown", (Auto-Translated) + "item.edit.identifiers.doi.status.UNKNOWN": "Desconhecido", + + // "item.edit.identifiers.doi.status.TO_BE_REGISTERED": "Queued for registration", (Auto-Translated) + "item.edit.identifiers.doi.status.TO_BE_REGISTERED": "Fila para registro", + + // "item.edit.identifiers.doi.status.TO_BE_RESERVED": "Queued for reservation", (Auto-Translated) + "item.edit.identifiers.doi.status.TO_BE_RESERVED": "Fila para reserva", + + // "item.edit.identifiers.doi.status.IS_REGISTERED": "Registered", (Auto-Translated) + "item.edit.identifiers.doi.status.IS_REGISTERED": "Registrado", + + // "item.edit.identifiers.doi.status.IS_RESERVED": "Reserved", (Auto-Translated) + "item.edit.identifiers.doi.status.IS_RESERVED": "Reservado", + + // "item.edit.identifiers.doi.status.UPDATE_RESERVED": "Reserved (update queued)", (Auto-Translated) + "item.edit.identifiers.doi.status.UPDATE_RESERVED": "Reservado (atualiza a fila)", + + // "item.edit.identifiers.doi.status.UPDATE_REGISTERED": "Registered (update queued)", (Auto-Translated) + "item.edit.identifiers.doi.status.UPDATE_REGISTERED": "Registrado (atualiza a fila)", + + // "item.edit.identifiers.doi.status.UPDATE_BEFORE_REGISTRATION": "Queued for update and registration", (Auto-Translated) + "item.edit.identifiers.doi.status.UPDATE_BEFORE_REGISTRATION": "Fila para atualização e registro", + + // "item.edit.identifiers.doi.status.TO_BE_DELETED": "Queued for deletion", (Auto-Translated) + "item.edit.identifiers.doi.status.TO_BE_DELETED": "Fila para exclusão", + + // "item.edit.identifiers.doi.status.DELETED": "Deleted", (Auto-Translated) + "item.edit.identifiers.doi.status.DELETED": "ExcluÃdo", + + // "item.edit.identifiers.doi.status.PENDING": "Pending (not registered)", (Auto-Translated) + "item.edit.identifiers.doi.status.PENDING": "Pendente (não registrado)", + + // "item.edit.identifiers.doi.status.MINTED": "Minted (not registered)", (Auto-Translated) + "item.edit.identifiers.doi.status.MINTED": "Cunhado (não registrado)", + + // "item.edit.tabs.status.buttons.register-doi.label": "Register a new or pending DOI", (Auto-Translated) + "item.edit.tabs.status.buttons.register-doi.label": "Registre um DOI novo ou pendente", + + // "item.edit.tabs.status.buttons.register-doi.button": "Register DOI...", (Auto-Translated) + "item.edit.tabs.status.buttons.register-doi.button": "Registre DOI ...", + + // "item.edit.register-doi.header": "Register a new or pending DOI", (Auto-Translated) + "item.edit.register-doi.header": "Registre um DOI novo ou pendente", + + // "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", (Auto-Translated) + "item.edit.register-doi.description": "Revise todos os identificadores pendentes e metadados do item abaixo e clique em Confirmar para prosseguir com o registro do DOI ou cancelar para desistir", + + // "item.edit.register-doi.confirm": "Confirm", (Auto-Translated) + "item.edit.register-doi.confirm": "Confirmar", + + // "item.edit.register-doi.cancel": "Cancel", (Auto-Translated) + "item.edit.register-doi.cancel": "Cancelar", + + // "item.edit.register-doi.success": "DOI queued for registration successfully.", (Auto-Translated) + "item.edit.register-doi.success": "DOI enfileirado para registro com sucesso.", + + // "item.edit.register-doi.error": "Error registering DOI", (Auto-Translated) + "item.edit.register-doi.error": "Erro ao registrar DOI", + + // "item.edit.register-doi.to-update": "The following DOI has already been minted and will be queued for registration online", (Auto-Translated) + "item.edit.register-doi.to-update": "O seguinte DOI já foi cunhado e será enfileirado para registro online", + // "item.edit.item-mapper.buttons.add": "Map item to selected collections", "item.edit.item-mapper.buttons.add": "Mapear item na(s) coleção(ões) seleciona(s)", @@ -2724,6 +3141,12 @@ // "item.edit.metadata.discard-button": "Discard", "item.edit.metadata.discard-button": "Descartar", + // "item.edit.metadata.edit.buttons.confirm": "Confirm", (Auto-Translated) + "item.edit.metadata.edit.buttons.confirm": "Confirmar", + + // "item.edit.metadata.edit.buttons.drag": "Drag to reorder", (Auto-Translated) + "item.edit.metadata.edit.buttons.drag": "Arraste para reordenar", + // "item.edit.metadata.edit.buttons.edit": "Edit", "item.edit.metadata.edit.buttons.edit": "Editar", @@ -2736,6 +3159,9 @@ // "item.edit.metadata.edit.buttons.unedit": "Stop editing", "item.edit.metadata.edit.buttons.unedit": "Parar edição", + // "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", (Auto-Translated) + "item.edit.metadata.edit.buttons.virtual": "Este é um valor de metadados virtuais, ou seja, um valor herdado de uma entidade relacionada. Não pode ser modificado diretamente. Adicione ou remova o relacionamento correspondente na guia \"Relacionamentos\"", + // "item.edit.metadata.empty": "The item currently doesn't contain any metadata. Click Add to start adding a metadata value.", "item.edit.metadata.empty": "O item atualmente não contém metadados. Clique em Adicionar para começar a adicionar um valor de metadados.", @@ -2751,6 +3177,9 @@ // "item.edit.metadata.headers.value": "Value", "item.edit.metadata.headers.value": "Valor", + // "item.edit.metadata.metadatafield.error": "An error occurred validating the metadata field", (Auto-Translated) + "item.edit.metadata.metadatafield.error": "Ocorreu um erro ao validar o campo de metadados", + // "item.edit.metadata.metadatafield.invalid": "Please choose a valid metadata field", "item.edit.metadata.metadatafield.invalid": "Por favor escolha um campo de metadados válido", @@ -2784,6 +3213,9 @@ // "item.edit.metadata.reinstate-button": "Undo", "item.edit.metadata.reinstate-button": "Desfazer", + // "item.edit.metadata.reset-order-button": "Undo reorder", (Auto-Translated) + "item.edit.metadata.reset-order-button": "Desfazer reordenar", + // "item.edit.metadata.save-button": "Save", "item.edit.metadata.save-button": "Salvar", @@ -2838,37 +3270,37 @@ // "item.edit.private.cancel": "Cancel", "item.edit.private.cancel": "Cancelar", - // "item.edit.private.confirm": "Make it Private", + // "item.edit.private.confirm": "Make it non-discoverable", "item.edit.private.confirm": "Tornar Privado", - // "item.edit.private.description": "Are you sure this item should be made private in the archive?", + // "item.edit.private.description": "Are you sure this item should be made non-discoverable in the archive?", "item.edit.private.description": "Tem certeza de que este item deve ser tornado privado no arquivo?", - // "item.edit.private.error": "An error occurred while making the item private", + // "item.edit.private.error": "An error occurred while making the item non-discoverable", "item.edit.private.error": "Ocorreu um erro ao tornar o item privado", - // "item.edit.private.header": "Make item private: {{ id }}", + // "item.edit.private.header": "Make item non-discoverable: {{ id }}", "item.edit.private.header": "Tornar o item privado: {{ id }}", - // "item.edit.private.success": "The item is now private", + // "item.edit.private.success": "The item is now non-discoverable", "item.edit.private.success": "O item agora é privado", // "item.edit.public.cancel": "Cancel", "item.edit.public.cancel": "Cancelar", - // "item.edit.public.confirm": "Make it public", + // "item.edit.public.confirm": "Make it discoverable", "item.edit.public.confirm": "Tornar público", - // "item.edit.public.description": "Are you sure this item should be made public in the archive?", + // "item.edit.public.description": "Are you sure this item should be made discoverable in the archive?", "item.edit.public.description": "Você tem certeza que deseja tornar este item público no arquivo?", - // "item.edit.public.error": "An error occurred while making the item public", + // "item.edit.public.error": "An error occurred while making the item discoverable", "item.edit.public.error": "Ocorreu um erro ao tornar o item público", - // "item.edit.public.header": "Make item public: {{ id }}", + // "item.edit.public.header": "Make item discoverable: {{ id }}", "item.edit.public.header": "Tornar o item público: {{ id }}", - // "item.edit.public.success": "The item is now public", + // "item.edit.public.success": "The item is now discoverable", "item.edit.public.success": "O item agora é público", // "item.edit.reinstate.cancel": "Cancel", @@ -2949,6 +3381,15 @@ // "item.edit.tabs.curate.title": "Item Edit - Curate", "item.edit.tabs.curate.title": "Editar Item - Curadoria", + // "item.edit.curate.title": "Curate Item: {{item}}", (Auto-Translated) + "item.edit.curate.title": "Fazer curadoria do Item: {{item}}", + + // "item.edit.tabs.access-control.head": "Access Control", (Auto-Translated) + "item.edit.tabs.access-control.head": "Controle de acesso", + + // "item.edit.tabs.access-control.title": "Item Edit - Access Control", (Auto-Translated) + "item.edit.tabs.access-control.title": "Edição de item - Controle de acesso", + // "item.edit.tabs.metadata.head": "Metadata", "item.edit.tabs.metadata.head": "Metadados", @@ -3102,6 +3543,30 @@ // "item.truncatable-part.show-less": "Collapse", "item.truncatable-part.show-less": "Fechar", + // "workflow-item.search.result.delete-supervision.modal.header": "Delete Supervision Order", (Auto-Translated) + "workflow-item.search.result.delete-supervision.modal.header": "Excluir ordem de supervisão", + + // "workflow-item.search.result.delete-supervision.modal.info": "Are you sure you want to delete Supervision Order", (Auto-Translated) + "workflow-item.search.result.delete-supervision.modal.info": "Tem certeza que deseja excluir o pedido de supervisão", + + // "workflow-item.search.result.delete-supervision.modal.cancel": "Cancel", (Auto-Translated) + "workflow-item.search.result.delete-supervision.modal.cancel": "Cancelar", + + // "workflow-item.search.result.delete-supervision.modal.confirm": "Delete", (Auto-Translated) + "workflow-item.search.result.delete-supervision.modal.confirm": "Excluir", + + // "workflow-item.search.result.notification.deleted.success": "Successfully deleted supervision order "{{name}}"", (Auto-Translated) + "workflow-item.search.result.notification.deleted.success": "Ordem de supervisão excluÃda com sucesso "{{name}}"", + + // "workflow-item.search.result.notification.deleted.failure": "Failed to delete supervision order "{{name}}"", (Auto-Translated) + "workflow-item.search.result.notification.deleted.failure": "Falha ao excluir a ordem de supervisão "{{name}}"", + + // "workflow-item.search.result.list.element.supervised-by": "Supervised by:", (Auto-Translated) + "workflow-item.search.result.list.element.supervised-by": "Supervisionado por:", + + // "workflow-item.search.result.list.element.supervised.remove-tooltip": "Remove supervision group", (Auto-Translated) + "workflow-item.search.result.list.element.supervised.remove-tooltip": "Remover o grupo de supervisão", + // "item.page.abstract": "Abstract", "item.page.abstract": "Resumo", @@ -3192,10 +3657,10 @@ // "item.page.bitstreams.collapse": "Collapse", "item.page.bitstreams.collapse": "Fechar", - // "item.page.filesection.original.bundle" : "Original bundle", + // "item.page.filesection.original.bundle": "Original bundle", "item.page.filesection.original.bundle": "Pacote Original", - // "item.page.filesection.license.bundle" : "License bundle", + // "item.page.filesection.license.bundle": "License bundle", "item.page.filesection.license.bundle": "Licença do Pacote", // "item.page.return": "Back", @@ -3240,27 +3705,30 @@ // "item.preview.dc.type": "Type:", "item.preview.dc.type": "Tipo:", - // "item.preview.oaire.citation.issue" : "Issue", + // "item.preview.oaire.citation.issue": "Issue", "item.preview.oaire.citation.issue": "Questão", - // "item.preview.oaire.citation.volume" : "Volume", + // "item.preview.oaire.citation.volume": "Volume", "item.preview.oaire.citation.volume": "Volume", - // "item.preview.dc.relation.issn" : "ISSN", + // "item.preview.dc.relation.issn": "ISSN", "item.preview.dc.relation.issn": "ISSN", - // "item.preview.dc.identifier.isbn" : "ISBN", + // "item.preview.dc.identifier.isbn": "ISBN", "item.preview.dc.identifier.isbn": "ISBN", // "item.preview.dc.identifier": "Identifier:", "item.preview.dc.identifier": "Identificador:", - // "item.preview.dc.relation.ispartof" : "Journal or Serie", - "item.preview.dc.relation.ispartof": "Revista ou Série", + // "item.preview.dc.relation.ispartof": "Journal or Series", + "item.preview.dc.relation.ispartof": "Revista ou Séries", - // "item.preview.dc.identifier.doi" : "DOI", + // "item.preview.dc.identifier.doi": "DOI", "item.preview.dc.identifier.doi": "DOI", + // "item.preview.dc.publisher": "Publisher:", (Auto-Translated) + "item.preview.dc.publisher": "Editora:", + // "item.preview.person.familyName": "Surname:", "item.preview.person.familyName": "Sobrenome:", @@ -3399,13 +3867,13 @@ // "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": "A nova versão está sendo criada. Isso pode levar algum tempo se o item tiver muitos relacionamentos.", - // "item.version.create.notification.success" : "New version has been created with version number {{version}}", + // "item.version.create.notification.success": "New version has been created with version number {{version}}", "item.version.create.notification.success": "Uma nova versão foi criada com o número de versão {{version}}", - // "item.version.create.notification.failure" : "New version has not been created", + // "item.version.create.notification.failure": "New version has not been created", "item.version.create.notification.failure": "A nova versão não foi criada", - // "item.version.create.notification.inProgress" : "A new version cannot be created because there is an inprogress submission in the version history", + // "item.version.create.notification.inProgress": "A new version cannot be created because there is an inprogress submission in the version history", "item.version.create.notification.inProgress": "Não é possÃvel criar uma nova versão porque há uma submissão em andamento no histórico de versões", // "item.version.delete.modal.header": "Delete version", @@ -3426,18 +3894,99 @@ // "item.version.delete.modal.button.cancel.tooltip": "Do not delete this version", "item.version.delete.modal.button.cancel.tooltip": "Não apague esta versão", - // "item.version.delete.notification.success" : "Version number {{version}} has been deleted", + // "item.version.delete.notification.success": "Version number {{version}} has been deleted", "item.version.delete.notification.success": "Versão número {{version}} foi apagada", - // "item.version.delete.notification.failure" : "Version number {{version}} has not been deleted", + // "item.version.delete.notification.failure": "Version number {{version}} has not been deleted", "item.version.delete.notification.failure": "Versão número {{version}} não foi apagada", - // "item.version.edit.notification.success" : "The summary of version number {{version}} has been changed", + // "item.version.edit.notification.success": "The summary of version number {{version}} has been changed", "item.version.edit.notification.success": "O resumo da versão número {{version}} foi alterado", - // "item.version.edit.notification.failure" : "The summary of version number {{version}} has not been changed", + // "item.version.edit.notification.failure": "The summary of version number {{version}} has not been changed", "item.version.edit.notification.failure": "O resumo da versão número {{version}} não foi alterado", + // "itemtemplate.edit.metadata.add-button": "Add", (Auto-Translated) + "itemtemplate.edit.metadata.add-button": "Adicionar", + + // "itemtemplate.edit.metadata.discard-button": "Discard", (Auto-Translated) + "itemtemplate.edit.metadata.discard-button": "Descartar", + + // "itemtemplate.edit.metadata.edit.buttons.confirm": "Confirm", (Auto-Translated) + "itemtemplate.edit.metadata.edit.buttons.confirm": "Confirmar", + + // "itemtemplate.edit.metadata.edit.buttons.drag": "Drag to reorder", (Auto-Translated) + "itemtemplate.edit.metadata.edit.buttons.drag": "Arraste para reordenar", + + // "itemtemplate.edit.metadata.edit.buttons.edit": "Edit", (Auto-Translated) + "itemtemplate.edit.metadata.edit.buttons.edit": "Editar", + + // "itemtemplate.edit.metadata.edit.buttons.remove": "Remove", (Auto-Translated) + "itemtemplate.edit.metadata.edit.buttons.remove": "Remover", + + // "itemtemplate.edit.metadata.edit.buttons.undo": "Undo changes", (Auto-Translated) + "itemtemplate.edit.metadata.edit.buttons.undo": "Desfazer mudanças", + + // "itemtemplate.edit.metadata.edit.buttons.unedit": "Stop editing", (Auto-Translated) + "itemtemplate.edit.metadata.edit.buttons.unedit": "Parar de editar", + + // "itemtemplate.edit.metadata.empty": "The item template currently doesn't contain any metadata. Click Add to start adding a metadata value.", (Auto-Translated) + "itemtemplate.edit.metadata.empty": "O modelo de item atualmente não contém metadados. Clique em Adicionar para começar a adicionar um valor de metadados.", + + // "itemtemplate.edit.metadata.headers.edit": "Edit", (Auto-Translated) + "itemtemplate.edit.metadata.headers.edit": "Editar", + + // "itemtemplate.edit.metadata.headers.field": "Field", (Auto-Translated) + "itemtemplate.edit.metadata.headers.field": "Campo", + + // "itemtemplate.edit.metadata.headers.language": "Lang", (Auto-Translated) + "itemtemplate.edit.metadata.headers.language": "Idioma", + + // "itemtemplate.edit.metadata.headers.value": "Value", (Auto-Translated) + "itemtemplate.edit.metadata.headers.value": "Valor", + + // "itemtemplate.edit.metadata.metadatafield.error": "An error occurred validating the metadata field", (Auto-Translated) + "itemtemplate.edit.metadata.metadatafield.error": "Ocorreu um erro validando o campo de metadados", + + // "itemtemplate.edit.metadata.metadatafield.invalid": "Please choose a valid metadata field", (Auto-Translated) + "itemtemplate.edit.metadata.metadatafield.invalid": "Escolha um campo de metadados válido", + + // "itemtemplate.edit.metadata.notifications.discarded.content": "Your changes were discarded. To reinstate your changes click the 'Undo' button", (Auto-Translated) + "itemtemplate.edit.metadata.notifications.discarded.content": "Suas mudanças foram descartadas. Para restabelecer suas alterações, clique no botão 'Desfazer'", + + // "itemtemplate.edit.metadata.notifications.discarded.title": "Changes discarded", (Auto-Translated) + "itemtemplate.edit.metadata.notifications.discarded.title": "Mudanças descartadas", + + // "itemtemplate.edit.metadata.notifications.error.title": "An error occurred", (Auto-Translated) + "itemtemplate.edit.metadata.notifications.error.title": "Um erro ocorreu", + + // "itemtemplate.edit.metadata.notifications.invalid.content": "Your changes were not saved. Please make sure all fields are valid before you save.", (Auto-Translated) + "itemtemplate.edit.metadata.notifications.invalid.content": "Suas mudanças não foram salvas. Certifique-se de que todos os campos sejam válidos antes de salvar.", + + // "itemtemplate.edit.metadata.notifications.invalid.title": "Metadata invalid", (Auto-Translated) + "itemtemplate.edit.metadata.notifications.invalid.title": "Metadados inválidos", + + // "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", (Auto-Translated) + "itemtemplate.edit.metadata.notifications.outdated.content": "O modelo de item em que você está trabalhando atualmente foi alterado por outro usuário. Suas alterações atuais serão descartadas para evitar conflitos", + + // "itemtemplate.edit.metadata.notifications.outdated.title": "Changes outdated", (Auto-Translated) + "itemtemplate.edit.metadata.notifications.outdated.title": "Mudanças desatualizadas", + + // "itemtemplate.edit.metadata.notifications.saved.content": "Your changes to this item template's metadata were saved.", (Auto-Translated) + "itemtemplate.edit.metadata.notifications.saved.content": "Suas alterações nos metadados do modelo deste item foram salvas.", + + // "itemtemplate.edit.metadata.notifications.saved.title": "Metadata saved", (Auto-Translated) + "itemtemplate.edit.metadata.notifications.saved.title": "Metadados salvos", + + // "itemtemplate.edit.metadata.reinstate-button": "Undo", (Auto-Translated) + "itemtemplate.edit.metadata.reinstate-button": "Desfazer", + + // "itemtemplate.edit.metadata.reset-order-button": "Undo reorder", (Auto-Translated) + "itemtemplate.edit.metadata.reset-order-button": "Desfazer reordenar", + + // "itemtemplate.edit.metadata.save-button": "Save", (Auto-Translated) + "itemtemplate.edit.metadata.save-button": "Salvar", + // "journal.listelement.badge": "Journal", "journal.listelement.badge": "Revista", @@ -3523,8 +4072,7 @@ "iiifsearchable.page.doi": "Link Permanente: ", // "iiifsearchable.page.issue": "Issue: ", - // TODO New key - Add a translation - "iiifsearchable.page.issue": "Issue: ", + "iiifsearchable.page.issue": "Edição: ", // "iiifsearchable.page.description": "Description: ", "iiifsearchable.page.description": "Descrição: ", @@ -3542,8 +4090,7 @@ "iiif.page.doi": "Link Permanente: ", // "iiif.page.issue": "Issue: ", - // TODO New key - Add a translation - "iiif.page.issue": "Issue: ", + "iiif.page.issue": "Edição: ", // "iiif.page.description": "Description: ", "iiif.page.description": "Descrição: ", @@ -3614,9 +4161,6 @@ // "login.form.new-user": "New user? Click here to register.", "login.form.new-user": "Novo usuário? Clique aqui para cadastrar.", - // "login.form.or-divider": "or", - "login.form.or-divider": "ou", - // "login.form.oidc": "Log in with OIDC", "login.form.oidc": "Entrar com o OIDC", @@ -3662,6 +4206,9 @@ // "menu.section.access_control_authorizations": "Authorizations", "menu.section.access_control_authorizations": "Autorizações", + // "menu.section.access_control_bulk": "Bulk Access Management", (Auto-Translated) + "menu.section.access_control_bulk": "Gerenciamento de acesso em massa", + // "menu.section.access_control_groups": "Groups", "menu.section.access_control_groups": "Grupos", @@ -3695,6 +4242,12 @@ // "menu.section.browse_global_by_subject": "By Subject", "menu.section.browse_global_by_subject": "Por Assunto", + // "menu.section.browse_global_by_srsc": "By Subject Category", (Auto-Translated) + "menu.section.browse_global_by_srsc": "Por categoria de assunto", + + // "menu.section.browse_global_by_nsi": "By Norwegian Science Index", (Auto-Translated) + "menu.section.browse_global_by_nsi": "Pelo Ãndice de Ciências Norueguesas", + // "menu.section.browse_global_by_title": "By Title", "menu.section.browse_global_by_title": "Por TÃtulo", @@ -3734,6 +4287,9 @@ // "menu.section.export_metadata": "Metadata", "menu.section.export_metadata": "Metadados", + // "menu.section.export_batch": "Batch Export (ZIP)", + "menu.section.export_batch": "Exportação em Lote (ZIP)", + // "menu.section.icon.access_control": "Access Control menu section", "menu.section.icon.access_control": "Seção do menu Controle de Acesso", @@ -3788,9 +4344,6 @@ // "menu.section.import_batch": "Batch Import (ZIP)", "menu.section.import_batch": "Importação em Lote (ZIP)", - // "menu.section.export_batch": "Batch Export (ZIP)", - "menu.section.export_batch": "Exportação em Lote (ZIP)", - // "menu.section.import_metadata": "Metadata", "menu.section.import_metadata": "Metadados", @@ -3874,8 +4427,10 @@ // "metadata-export-search.tooltip": "Export search results as CSV", "metadata-export-search.tooltip": "Exportar resultados de pesquisa como CSV", + // "metadata-export-search.submit.success": "The export was started successfully", "metadata-export-search.submit.success": "A exportação foi iniciada com sucesso", + // "metadata-export-search.submit.error": "Starting the export has failed", "metadata-export-search.submit.error": "Falha ao iniciar a exportação", @@ -3885,9 +4440,6 @@ // "mydspace.description": "", "mydspace.description": "", - // "mydspace.general.text-here": "here", - "mydspace.general.text-here": "aqui", - // "mydspace.messages.controller-help": "Select this option to send a message to item's submitter.", "mydspace.messages.controller-help": "Selecione esta opção para enviar uma mensagem para o submetedor do item.", @@ -3966,12 +4518,15 @@ // "mydspace.search-form.placeholder": "Search in mydspace...", "mydspace.search-form.placeholder": "Procurar no meudspace...", - // "mydspace.show.workflow": "All tasks", - "mydspace.show.workflow": "Todas as tarefas", + // "mydspace.show.workflow": "Workflow tasks", + "mydspace.show.workflow": "Tarefas de fluxo de trabalho", // "mydspace.show.workspace": "Your Submissions", "mydspace.show.workspace": "Minhas Submissões", + // "mydspace.show.supervisedWorkspace": "Supervised items", (Auto-Translated) + "mydspace.show.supervisedWorkspace": "Itens supervisionados", + // "mydspace.status.mydspaceArchived": "Archived", "mydspace.status.mydspaceArchived": "Arquivado", @@ -4014,14 +4569,20 @@ // "nav.community-browse.header": "By Community", "nav.community-browse.header": "Por Comunidade", + // "nav.context-help-toggle": "Toggle context help", (Auto-Translated) + "nav.context-help-toggle": "Alternar a ajuda do contexto", + // "nav.language": "Language switch", "nav.language": "Selecionar um idioma", // "nav.login": "Log In", "nav.login": "Entrar", - // "nav.logout": "User profile menu and Log Out", - "nav.logout": "Menu do Usuário e Sair", + // "nav.user-profile-menu-and-logout": "User profile menu and Log Out", (Auto-Translated) + "nav.user-profile-menu-and-logout": "Menu do perfil de usuário e Sair", + + // "nav.logout": "Log Out", + "nav.logout": "Sair", // "nav.main.description": "Main navigation bar", "nav.main.description": "Barra de navegação principal", @@ -4035,25 +4596,33 @@ // "nav.search": "Search", "nav.search": "Buscar", + // "nav.search.button": "Submit search", (Auto-Translated) + "nav.search.button": "Enviar pesquisa", + // "nav.statistics.header": "Statistics", "nav.statistics.header": "EstatÃsticas", // "nav.stop-impersonating": "Stop impersonating EPerson", "nav.stop-impersonating": "Deixar de assumir o papel do EPerson", - // "nav.toggle" : "Toggle navigation", + // "nav.subscriptions": "Subscriptions", (Auto-Translated) + "nav.subscriptions": "Assinaturas", + + // "nav.toggle": "Toggle navigation", "nav.toggle": "Alternar navegação", - // "nav.user.description" : "User profile bar", + // "nav.user.description": "User profile bar", "nav.user.description": "Barra de perfil do usuário", // "none.listelement.badge": "Item", "none.listelement.badge": "Item", - // "orgunit.listelement.badge": "Organizational Unit", "orgunit.listelement.badge": "Unidade Organizacional", + // "orgunit.listelement.no-title": "Untitled", (Auto-Translated) + "orgunit.listelement.no-title": "Sem tÃtulo", + // "orgunit.page.city": "City", "orgunit.page.city": "Cidade", @@ -4186,6 +4755,9 @@ // "process.new.notification.error.content": "An error occurred while creating this process", "process.new.notification.error.content": "Um erro ocorreu enquanto criava o processo", + // "process.new.notification.error.max-upload.content": "The file exceeds the maximum upload size", (Auto-Translated) + "process.new.notification.error.max-upload.content": "O arquivo excede o tamanho máximo de upload", + // "process.new.header": "Create a new process", "process.new.header": "Criar novo processo", @@ -4195,16 +4767,16 @@ // "process.new.breadcrumbs": "Create a new process", "process.new.breadcrumbs": "Criar novo processo", - // "process.detail.arguments" : "Arguments", + // "process.detail.arguments": "Arguments", "process.detail.arguments": "Argumentos", - // "process.detail.arguments.empty" : "This process doesn't contain any arguments", + // "process.detail.arguments.empty": "This process doesn't contain any arguments", "process.detail.arguments.empty": "Este processo não contêm nenhum argumento", - // "process.detail.back" : "Back", + // "process.detail.back": "Back", "process.detail.back": "Voltar", - // "process.detail.output" : "Process Output", + // "process.detail.output": "Process Output", "process.detail.output": "SaÃda do Processo", // "process.detail.logs.button": "Retrieve process output", @@ -4216,28 +4788,28 @@ // "process.detail.logs.none": "This process has no output", "process.detail.logs.none": "Este processo não tem saÃda", - // "process.detail.output-files" : "Output Files", + // "process.detail.output-files": "Output Files", "process.detail.output-files": "Arquivos de saÃda", - // "process.detail.output-files.empty" : "This process doesn't contain any output files", + // "process.detail.output-files.empty": "This process doesn't contain any output files", "process.detail.output-files.empty": "Este processo não contém nenhum arquivo de saÃda", - // "process.detail.script" : "Script", + // "process.detail.script": "Script", "process.detail.script": "Script", - // "process.detail.title" : "Process: {{ id }} - {{ name }}", + // "process.detail.title": "Process: {{ id }} - {{ name }}", "process.detail.title": "Processo: {{ id }} - {{ name }}", - // "process.detail.start-time" : "Start time", + // "process.detail.start-time": "Start time", "process.detail.start-time": "Hora de InÃcio", - // "process.detail.end-time" : "Finish time", + // "process.detail.end-time": "Finish time", "process.detail.end-time": "Hora de Fim", - // "process.detail.status" : "Status", + // "process.detail.status": "Status", "process.detail.status": "Status", - // "process.detail.create" : "Create similar process", + // "process.detail.create": "Create similar process", "process.detail.create": "Criar processo similar", // "process.detail.actions": "Actions", @@ -4264,22 +4836,22 @@ // "process.detail.delete.error": "Something went wrong when deleting the process", "process.detail.delete.error": "Algo deu errado ao excluir o processo", - // "process.overview.table.finish" : "Finish time (UTC)", + // "process.overview.table.finish": "Finish time (UTC)", "process.overview.table.finish": "Hora de Fim (UTC)", - // "process.overview.table.id" : "Process ID", + // "process.overview.table.id": "Process ID", "process.overview.table.id": "ID do Processo", - // "process.overview.table.name" : "Name", + // "process.overview.table.name": "Name", "process.overview.table.name": "Nome", - // "process.overview.table.start" : "Start time (UTC)", + // "process.overview.table.start": "Start time (UTC)", "process.overview.table.start": "Hora de InÃcio (UTC)", - // "process.overview.table.status" : "Status", + // "process.overview.table.status": "Status", "process.overview.table.status": "Status", - // "process.overview.table.user" : "User", + // "process.overview.table.user": "User", "process.overview.table.user": "Usuário", // "process.overview.title": "Processes Overview", @@ -4384,6 +4956,9 @@ // "profile.security.form.label.passwordrepeat": "Retype to confirm", "profile.security.form.label.passwordrepeat": "Redigite para confirmar", + // "profile.security.form.label.current-password": "Current password", (Auto-Translated) + "profile.security.form.label.current-password": "Senha atual", + // "profile.security.form.notifications.success.content": "Your changes to the password were saved.", "profile.security.form.notifications.success.content": "Suas alterações na senha foram salvas.", @@ -4393,6 +4968,9 @@ // "profile.security.form.notifications.error.title": "Error changing passwords", "profile.security.form.notifications.error.title": "Erro trocando a senha", + // "profile.security.form.notifications.error.change-failed": "An error occurred while trying to change the password. Please check if the current password is correct.", (Auto-Translated) + "profile.security.form.notifications.error.change-failed": "Ocorreu um erro ao tentar alterar a senha. Verifique se a senha atual está correta.", + // "profile.security.form.notifications.error.not-same": "The provided passwords are not the same.", "profile.security.form.notifications.error.not-same": "As senhas fornecidas não são as mesmas.", @@ -4558,8 +5136,11 @@ // "register-page.registration.email.error.required": "Please fill in an email address", "register-page.registration.email.error.required": "Por favor preencha o endereço de email", - // "register-page.registration.email.error.pattern": "Please fill in a valid email address", - "register-page.registration.email.error.pattern": "Por favor preencha com um endereço válido de email", + // "register-page.registration.email.error.not-email-form": "Please fill in a valid email address.", (Auto-Translated) + "register-page.registration.email.error.not-email-form": "Por favor preencha com um endereço de email válido.", + + // "register-page.registration.email.error.not-valid-domain": "Use email with allowed domains: {{ domains }}", (Auto-Translated) + "register-page.registration.email.error.not-valid-domain": "Use email com domÃnios permitidos: {{ domains }}", // "register-page.registration.email.hint": "This address will be verified and used as your login name.", "register-page.registration.email.hint": "Este endereço será verificado e usado como seu nome de login.", @@ -4579,6 +5160,30 @@ // "register-page.registration.error.content": "An error occured when registering the following email address: {{ email }}", "register-page.registration.error.content": "Um erro ocorreu enquanto registrava o seguinte endereço de email: {{ email }}", + // "register-page.registration.error.recaptcha": "Error when trying to authenticate with recaptcha", (Auto-Translated) + "register-page.registration.error.recaptcha": "Erro ao tentar autenticar com o reCAPTCHA", + + // "register-page.registration.google-recaptcha.must-accept-cookies": "In order to register you must accept the <b>Registration and Password recovery</b> (Google reCaptcha) cookies.", (Auto-Translated) + "register-page.registration.google-recaptcha.must-accept-cookies": "Para se registrar, você deve aceitar os cookies de <b> Registro e Recuperação de Senha </b> (Google reCAPTCHA).", + + // "register-page.registration.error.maildomain": "This email address is not on the list of domains who can register. Allowed domains are {{ domains }}", (Auto-Translated) + "register-page.registration.error.maildomain": "Este endereço de e-mail não está na lista de domÃnios que podem se registrar. Os domÃnios permitidos são {{ domains }}", + + // "register-page.registration.google-recaptcha.open-cookie-settings": "Open cookie settings", (Auto-Translated) + "register-page.registration.google-recaptcha.open-cookie-settings": "Abra as configurações de cookies", + + // "register-page.registration.google-recaptcha.notification.title": "Google reCaptcha", (Auto-Translated) + "register-page.registration.google-recaptcha.notification.title": "Google reCAPTCHA", + + // "register-page.registration.google-recaptcha.notification.message.error": "An error occurred during reCaptcha verification", (Auto-Translated) + "register-page.registration.google-recaptcha.notification.message.error": "Ocorreu um erro durante a verificação de reCAPTCHA", + + // "register-page.registration.google-recaptcha.notification.message.expired": "Verification expired. Please verify again.", (Auto-Translated) + "register-page.registration.google-recaptcha.notification.message.expired": "Verificação expirada. Por favor, verifique novamente.", + + // "register-page.registration.info.maildomain": "Accounts can be registered for mail addresses of the domains", (Auto-Translated) + "register-page.registration.info.maildomain": "Contas podem ser registradas para endereços de correio dos domÃnios", + // "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": "Nenhuma correspondência adequada foi encontrada para o tipo de relacionamento {{ type }} entre os dois itens", @@ -4645,11 +5250,11 @@ // "repository.image.logo": "Repository logo", "repository.image.logo": "Logo do Repositório", - // "repository.title.prefix": "DSpace Angular :: ", - "repository.title.prefix": "DSpace Angular :: ", + // "repository.title": "DSpace Repository", (Auto-Translated) + "repository.title": "Repositório DSpace", - // "repository.title.prefixDSpace": "DSpace Angular ::", - "repository.title.prefixDSpace": "DSpace Angular ::", + // "repository.title.prefix": "DSpace Repository :: ", + "repository.title.prefix": "Repositório DSpace :: ", // "resource-policies.add.button": "Add", "resource-policies.add.button": "Adicionar", @@ -4879,6 +5484,9 @@ // "search.filters.applied.f.birthDate.min": "Start birth date", "search.filters.applied.f.birthDate.min": "InÃcio data de nascimento", + // "search.filters.applied.f.supervisedBy": "Supervised by", (Auto-Translated) + "search.filters.applied.f.supervisedBy": "Supervisionado por", + // "search.filters.applied.f.withdrawn": "Withdrawn", "search.filters.applied.f.withdrawn": "Retirado", @@ -4963,7 +5571,7 @@ // "search.filters.filter.dateSubmitted.label": "Search date submitted", "search.filters.filter.dateSubmitted.label": "Procurar data de submissão", - // "search.filters.filter.discoverable.head": "Private", + // "search.filters.filter.discoverable.head": "Non-discoverable", "search.filters.filter.discoverable.head": "Privado", // "search.filters.filter.withdrawn.head": "Withdrawn", @@ -5089,6 +5697,18 @@ // "search.filters.filter.submitter.label": "Search submitter", "search.filters.filter.submitter.label": "Procurar submetedor", + // "search.filters.filter.show-tree": "Browse {{ name }} tree", (Auto-Translated) + "search.filters.filter.show-tree": "Navegar na árvore {{ name }}", + + // "search.filters.filter.supervisedBy.head": "Supervised By", (Auto-Translated) + "search.filters.filter.supervisedBy.head": "Supervisionado por", + + // "search.filters.filter.supervisedBy.placeholder": "Supervised By", (Auto-Translated) + "search.filters.filter.supervisedBy.placeholder": "Supervisionado por", + + // "search.filters.filter.supervisedBy.label": "Search Supervised By", (Auto-Translated) + "search.filters.filter.supervisedBy.label": "Pesquisa supervisionada por", + // "search.filters.entityType.JournalIssue": "Journal Issue", "search.filters.entityType.JournalIssue": "Número de Revista", @@ -5110,6 +5730,21 @@ // "search.filters.discoverable.false": "Yes", "search.filters.discoverable.false": "Sim", + // "search.filters.namedresourcetype.Archived": "Archived", (Auto-Translated) + "search.filters.namedresourcetype.Archived": "Arquivado", + + // "search.filters.namedresourcetype.Validation": "Validation", (Auto-Translated) + "search.filters.namedresourcetype.Validation": "Validação", + + // "search.filters.namedresourcetype.Waiting for Controller": "Waiting for Controller", (Auto-Translated) + "search.filters.namedresourcetype.Waiting for Controller": "Esperando por controlador", + + // "search.filters.namedresourcetype.Workflow": "Workflow", (Auto-Translated) + "search.filters.namedresourcetype.Workflow": "Fluxo de trabalho", + + // "search.filters.namedresourcetype.Workspace": "Workspace", (Auto-Translated) + "search.filters.namedresourcetype.Workspace": "Ãrea de trabalho", + // "search.filters.withdrawn.true": "Yes", "search.filters.withdrawn.true": "Sim", @@ -5257,6 +5892,9 @@ // "statistics.table.header.views": "Views", "statistics.table.header.views": "Visualizações", + // "statistics.table.no-name": "(object name could not be loaded)", (Auto-Translated) + "statistics.table.no-name": "(o nome do objeto não pôde ser carregado)", + // "submission.edit.breadcrumbs": "Edit Submission", "submission.edit.breadcrumbs": "Editar Submissão", @@ -5266,8 +5904,8 @@ // "submission.general.cancel": "Cancel", "submission.general.cancel": "Cancelar", - // "submission.general.cannot_submit": "You have not the privilege to make a new submission.", - "submission.general.cannot_submit": "Você mão tem privilégios para fazer uma nova submissão.", + // "submission.general.cannot_submit": "You don't have permission to make a new submission.", + "submission.general.cannot_submit": "Você não tem privilégios para fazer uma nova submissão.", // "submission.general.deposit": "Deposit", "submission.general.deposit": "Depositar", @@ -5309,8 +5947,7 @@ "submission.import-external.title.Journal": "Importar uma revista de uma fonte externa", // "submission.import-external.title.JournalIssue": "Import a journal issue from an external source", - // TODO New key - Add a translation - "submission.import-external.title.JournalIssue": "Import a journal issue from an external source", + "submission.import-external.title.JournalIssue": "Importar uma edição de revista de uma fonte externa", // "submission.import-external.title.JournalVolume": "Import a journal volume from an external source", "submission.import-external.title.JournalVolume": "Importar um volume de revista de uma fonte externa", @@ -5360,6 +5997,9 @@ // "submission.import-external.source.crossref": "CrossRef", "submission.import-external.source.crossref": "CrossRef", + // "submission.import-external.source.datacite": "DataCite", (Auto-Translated) + "submission.import-external.source.datacite": "DataCite", + // "submission.import-external.source.scielo": "SciELO", "submission.import-external.source.scielo": "SciELO", @@ -5451,8 +6091,7 @@ "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal": "Importar revista remota", // "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Issue": "Import remote journal issue", - // TODO New key - Add a translation - "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": "Importar uma edição de jornal remota", // "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": "Importar volume de revista remoto", @@ -5557,16 +6196,13 @@ "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.added.new-entity": "Revista Externa importada e adicionada com sucesso à seleção", // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.title": "Import Remote Journal Issue", - // TODO New key - Add a translation - "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": "Importar uma edição de jornal remota", // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.local-entity": "Successfully added local journal issue to the selection", - // TODO New key - Add a translation - "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": "Edição de jornal local adicionada com sucesso à seleção", // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.new-entity": "Successfully imported and added external journal issue to the selection", - // TODO New key - Add a translation - "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": "Edição de jornal externo importada e adicionada com sucesso à seleção", // "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": "Importar Volume de Revista Remoto", @@ -5612,6 +6248,7 @@ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalOfPublication": "Local Journals ({{ count }})", "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalOfPublication": "Revistas Locais ({{ count }})", + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.Project": "Local Projects ({{ count }})", "submission.sections.describe.relationship-lookup.search-tab.tab-title.Project": "Projetos Locais ({{ count }})", @@ -5635,11 +6272,13 @@ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalIssueOfPublication": "Local Journal Issues ({{ count }})", "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalIssueOfPublication": "Números de Revista Local ({{ 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": "Números de Revista Local ({{ 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": "Volumes de Revista Local ({{ 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": "Volumes de Revista Local ({{ count }})", @@ -5679,6 +6318,9 @@ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfProject": "Funder of the Project", "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfProject": "Financiador do Projeto", + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isPublicationOfAuthor": "Publication of the Author", (Auto-Translated) + "submission.sections.describe.relationship-lookup.search-tab.tab-title.isPublicationOfAuthor": "Publicação do Autor", + // "submission.sections.describe.relationship-lookup.selection-tab.title.openAIREFunding": "Funding OpenAIRE API", "submission.sections.describe.relationship-lookup.selection-tab.title.openAIREFunding": "Financiamento da API OpenAIRE", @@ -5699,11 +6341,13 @@ // "submission.sections.describe.relationship-lookup.title.isJournalIssueOfPublication": "Journal Issues", "submission.sections.describe.relationship-lookup.title.isJournalIssueOfPublication": "Números de Revista", + // "submission.sections.describe.relationship-lookup.title.JournalIssue": "Journal Issues", "submission.sections.describe.relationship-lookup.title.JournalIssue": "Números de Revista", // "submission.sections.describe.relationship-lookup.title.isJournalVolumeOfPublication": "Journal Volumes", "submission.sections.describe.relationship-lookup.title.isJournalVolumeOfPublication": "Volumes de Revista", + // "submission.sections.describe.relationship-lookup.title.JournalVolume": "Journal Volumes", "submission.sections.describe.relationship-lookup.title.JournalVolume": "Volumes de Revista", @@ -5715,6 +6359,7 @@ // "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfPublication": "Funding Agency", "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfPublication": "Agências de Financiamento", + // "submission.sections.describe.relationship-lookup.title.Project": "Projects", "submission.sections.describe.relationship-lookup.title.Project": "Projetos", @@ -5742,6 +6387,9 @@ // "submission.sections.describe.relationship-lookup.title.isChildOrgUnitOf": "Parent Organizational Unit", "submission.sections.describe.relationship-lookup.title.isChildOrgUnitOf": "Unidade organizacional principal", + // "submission.sections.describe.relationship-lookup.title.isPublicationOfAuthor": "Publication", (Auto-Translated) + "submission.sections.describe.relationship-lookup.title.isPublicationOfAuthor": "Publicação", + // "submission.sections.describe.relationship-lookup.search-tab.toggle-dropdown": "Toggle dropdown", "submission.sections.describe.relationship-lookup.search-tab.toggle-dropdown": "Alternar menu suspenso", @@ -5759,6 +6407,7 @@ // "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalVolumeOfPublication": "Selected Journal Volume", "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalVolumeOfPublication": "Volume de Revista selecionados", + // "submission.sections.describe.relationship-lookup.selection-tab.title.Project": "Selected Projects", "submission.sections.describe.relationship-lookup.selection-tab.title.Project": "Projetos Selecionados", @@ -5782,6 +6431,7 @@ // "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalIssueOfPublication": "Selected Issue", "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalIssueOfPublication": "Problema selecionado", + // "submission.sections.describe.relationship-lookup.selection-tab.title.JournalVolume": "Selected Journal Volume", "submission.sections.describe.relationship-lookup.selection-tab.title.JournalVolume": "Volume de Revista selecionado", @@ -5790,6 +6440,7 @@ // "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingOfPublication": "Selected Funding", "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingOfPublication": "Financiamento selecionado", + // "submission.sections.describe.relationship-lookup.selection-tab.title.JournalIssue": "Selected Issue", "submission.sections.describe.relationship-lookup.selection-tab.title.JournalIssue": "Problema selecionado", @@ -5910,6 +6561,24 @@ // "submission.sections.general.sections_not_valid": "There are incomplete sections.", "submission.sections.general.sections_not_valid": "Há seções incompletas.", + // "submission.sections.identifiers.info": "The following identifiers will be created for your item:", (Auto-Translated) + "submission.sections.identifiers.info": "Os seguintes identificadores serão criados para o seu item:", + + // "submission.sections.identifiers.no_handle": "No handles have been minted for this item.", (Auto-Translated) + "submission.sections.identifiers.no_handle": "Nenhuma alça foi cunhada para este item.", + + // "submission.sections.identifiers.no_doi": "No DOIs have been minted for this item.", (Auto-Translated) + "submission.sections.identifiers.no_doi": "Nenhum DOIs foi cunhado para este item.", + + // "submission.sections.identifiers.handle_label": "Handle: ", (Auto-Translated) + "submission.sections.identifiers.handle_label": "Lidar:", + + // "submission.sections.identifiers.doi_label": "DOI: ", (Auto-Translated) + "submission.sections.identifiers.doi_label": "DOI:", + + // "submission.sections.identifiers.otherIdentifiers_label": "Other identifiers: ", (Auto-Translated) + "submission.sections.identifiers.otherIdentifiers_label": "Outros identificadores:", + // "submission.sections.submit.progressbar.accessCondition": "Item access conditions", "submission.sections.submit.progressbar.accessCondition": "Condições de acesso ao Item", @@ -5931,6 +6600,9 @@ // "submission.sections.submit.progressbar.detect-duplicate": "Potential duplicates", "submission.sections.submit.progressbar.detect-duplicate": "Duplicados em potencial", + // "submission.sections.submit.progressbar.identifiers": "Identifiers", (Auto-Translated) + "submission.sections.submit.progressbar.identifiers": "Identificadores", + // "submission.sections.submit.progressbar.license": "Deposit license", "submission.sections.submit.progressbar.license": "Depositar licença", @@ -6076,8 +6748,7 @@ "submission.sections.accesses.form.discoverable-description": "Quando marcado, este item poderá ser descoberto na pesquisa/navegação. Quando desmarcado, o item estará disponÃvel apenas por meio de um link direto e nunca aparecerá na pesquisa/navegação.", // "submission.sections.accesses.form.discoverable-label": "Discoverable", - // TODO New key - Add a translation - "submission.sections.accesses.form.discoverable-label": "Discoverable", + "submission.sections.accesses.form.discoverable-label": "Público", // "submission.sections.accesses.form.access-condition-label": "Access condition type", "submission.sections.accesses.form.access-condition-label": "Tipo de condição de acesso", @@ -6118,16 +6789,15 @@ // "submission.sections.accesses.form.until-placeholder": "Until", "submission.sections.accesses.form.until-placeholder": "Até", - // "submission.sections.license.granted-label": "Confirmo a licença acima", - "submission.sections.license.granted-label": "I confirm the license above", + // "submission.sections.license.granted-label": "I confirm the license above", + "submission.sections.license.granted-label": "Confirmo a licença acima", // "submission.sections.license.required": "You must accept the license", "submission.sections.license.required": "Você deve aceitar a licença", - // "submission.sections.license.notgranted": "You must accept the license", + // "submission.sections.license.notgranted": "You must accept the license", "submission.sections.license.notgranted": "Você deve aceitar a licença", - // "submission.sections.sherpa.publication.information": "Publication information", "submission.sections.sherpa.publication.information": "Informações de publicação", @@ -6215,8 +6885,8 @@ // "submission.workflow.generic.delete": "Delete", "submission.workflow.generic.delete": "Apagar", - // "submission.workflow.generic.delete-help": "If you would to discard this item, select \"Delete\". You will then be asked to confirm it.", - "submission.workflow.generic.delete-help": "Se você gostaria de descartar este item, selecione \"Apagar\". Você será questionado para confirmar.", + // "submission.workflow.generic.delete-help": "Select this option to discard this item. You will then be asked to confirm it.", + "submission.workflow.generic.delete-help": "Selecione esta opção para descartar este item. Em seguida, será solicitada confirmção.", // "submission.workflow.generic.edit": "Edit", "submission.workflow.generic.edit": "Editar", @@ -6230,6 +6900,18 @@ // "submission.workflow.generic.view-help": "Select this option to view the item's metadata.", "submission.workflow.generic.view-help": "Selecione esta opção para ver o metadados do item.", + // "submission.workflow.generic.submit_select_reviewer": "Select Reviewer", (Auto-Translated) + "submission.workflow.generic.submit_select_reviewer": "Selecione Revisor", + + // "submission.workflow.generic.submit_select_reviewer-help": "", (Auto-Translated) + "submission.workflow.generic.submit_select_reviewer-help": "", + + // "submission.workflow.generic.submit_score": "Rate", (Auto-Translated) + "submission.workflow.generic.submit_score": "Avaliar", + + // "submission.workflow.generic.submit_score-help": "", (Auto-Translated) + "submission.workflow.generic.submit_score-help": "", + // "submission.workflow.tasks.claimed.approve": "Approve", "submission.workflow.tasks.claimed.approve": "Aprovar", @@ -6242,6 +6924,12 @@ // "submission.workflow.tasks.claimed.edit_help": "Select this option to change the item's metadata.", "submission.workflow.tasks.claimed.edit_help": "Selecione esta opção para modificar os metadados do item.", + // "submission.workflow.tasks.claimed.decline": "Decline", (Auto-Translated) + "submission.workflow.tasks.claimed.decline": "Recusar", + + // "submission.workflow.tasks.claimed.decline_help": "", (Auto-Translated) + "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": "Por favor informe o motivo pela rejeição da submissão na caixa abaixo, indicando se o submetedor pode corrigir um problema e reenviar.", @@ -6296,6 +6984,114 @@ // "submission.workspace.generic.view-help": "Select this option to view the item's metadata.", "submission.workspace.generic.view-help": "Selecione esta opção para visualizar os metadados do item.", + // "submitter.empty": "N/A", (Auto-Translated) + "submitter.empty": "N/D", + + // "subscriptions.title": "Subscriptions", (Auto-Translated) + "subscriptions.title": "Assinaturas", + + // "subscriptions.item": "Subscriptions for items", (Auto-Translated) + "subscriptions.item": "Assinaturas para itens", + + // "subscriptions.collection": "Subscriptions for collections", (Auto-Translated) + "subscriptions.collection": "Assinaturas para coleções", + + // "subscriptions.community": "Subscriptions for communities", (Auto-Translated) + "subscriptions.community": "Assinaturas para comunidades", + + // "subscriptions.subscription_type": "Subscription type", (Auto-Translated) + "subscriptions.subscription_type": "Tipo de assinatura", + + // "subscriptions.frequency": "Subscription frequency", (Auto-Translated) + "subscriptions.frequency": "Frequência de assinatura", + + // "subscriptions.frequency.D": "Daily", (Auto-Translated) + "subscriptions.frequency.D": "Diáriamente", + + // "subscriptions.frequency.M": "Monthly", (Auto-Translated) + "subscriptions.frequency.M": "Mensalmente", + + // "subscriptions.frequency.W": "Weekly", (Auto-Translated) + "subscriptions.frequency.W": "Semanalmente", + + // "subscriptions.tooltip": "Subscribe", (Auto-Translated) + "subscriptions.tooltip": "Se inscrever", + + // "subscriptions.modal.title": "Subscriptions", (Auto-Translated) + "subscriptions.modal.title": "Assinaturas", + + // "subscriptions.modal.type-frequency": "Type and frequency", (Auto-Translated) + "subscriptions.modal.type-frequency": "Tipo e frequência", + + // "subscriptions.modal.close": "Close", (Auto-Translated) + "subscriptions.modal.close": "Fechar", + + // "subscriptions.modal.delete-info": "To remove this subscription, please visit the "Subscriptions" page under your user profile", (Auto-Translated) + "subscriptions.modal.delete-info": "Para remover esta assinatura, visite a página \"Assinaturas\" no seu perfil de usuário", + + // "subscriptions.modal.new-subscription-form.type.content": "Content", (Auto-Translated) + "subscriptions.modal.new-subscription-form.type.content": "Conteúdo", + + // "subscriptions.modal.new-subscription-form.frequency.D": "Daily", (Auto-Translated) + "subscriptions.modal.new-subscription-form.frequency.D": "Diáriamente", + + // "subscriptions.modal.new-subscription-form.frequency.W": "Weekly", (Auto-Translated) + "subscriptions.modal.new-subscription-form.frequency.W": "Semanalmente", + + // "subscriptions.modal.new-subscription-form.frequency.M": "Monthly", (Auto-Translated) + "subscriptions.modal.new-subscription-form.frequency.M": "Mensalmente", + + // "subscriptions.modal.new-subscription-form.submit": "Submit", (Auto-Translated) + "subscriptions.modal.new-subscription-form.submit": "Enviar", + + // "subscriptions.modal.new-subscription-form.processing": "Processing...", (Auto-Translated) + "subscriptions.modal.new-subscription-form.processing": "Em processamento...", + + // "subscriptions.modal.create.success": "Subscribed to {{ type }} successfully.", (Auto-Translated) + "subscriptions.modal.create.success": "Inscrito em {{type}} com sucesso.", + + // "subscriptions.modal.delete.success": "Subscription deleted successfully", (Auto-Translated) + "subscriptions.modal.delete.success": "Assinatura excluÃda com sucesso", + + // "subscriptions.modal.update.success": "Subscription to {{ type }} updated successfully", (Auto-Translated) + "subscriptions.modal.update.success": "Assinatura para {{type}} atualizado com sucesso", + + // "subscriptions.modal.create.error": "An error occurs during the subscription creation", (Auto-Translated) + "subscriptions.modal.create.error": "Um erro ocorre durante a criação de assinatura", + + // "subscriptions.modal.delete.error": "An error occurs during the subscription delete", (Auto-Translated) + "subscriptions.modal.delete.error": "Um erro ocorre durante a exclusão de assinatura", + + // "subscriptions.modal.update.error": "An error occurs during the subscription update", (Auto-Translated) + "subscriptions.modal.update.error": "Um erro ocorre durante a atualização da assinatura", + + // "subscriptions.table.dso": "Subject", (Auto-Translated) + "subscriptions.table.dso": "Assunto", + + // "subscriptions.table.subscription_type": "Subscription Type", (Auto-Translated) + "subscriptions.table.subscription_type": "Tipo de assinatura", + + // "subscriptions.table.subscription_frequency": "Subscription Frequency", (Auto-Translated) + "subscriptions.table.subscription_frequency": "Frequência de assinatura", + + // "subscriptions.table.action": "Action", (Auto-Translated) + "subscriptions.table.action": "Ação", + + // "subscriptions.table.edit": "Edit", (Auto-Translated) + "subscriptions.table.edit": "Editar", + + // "subscriptions.table.delete": "Delete", (Auto-Translated) + "subscriptions.table.delete": "Excluir", + + // "subscriptions.table.not-available": "Not available", (Auto-Translated) + "subscriptions.table.not-available": "Não disponÃvel", + + // "subscriptions.table.not-available-message": "The subscribed item has been deleted, or you don't currently have the permission to view it", (Auto-Translated) + "subscriptions.table.not-available-message": "O item inscrito foi excluÃdo, ou você não tem permissão para vê-lo", + + // "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.", (Auto-Translated) + "subscriptions.table.empty.message": "Você não tem nenhuma assinatura no momento. Para se inscrever em atualizações por e-mail para uma comunidade ou coleção, use o botão de assinatura na página do objeto.", + // "thumbnail.default.alt": "Thumbnail Image", "thumbnail.default.alt": "Imagem de Miniatura", @@ -6344,6 +7140,9 @@ // "vocabulary-treeview.tree.description.srsc": "Research Subject Categories", "vocabulary-treeview.tree.description.srsc": "Categorias de Assuntos de Pesquisa", + // "vocabulary-treeview.info": "Select a subject to add as search filter", (Auto-Translated) + "vocabulary-treeview.info": "Selecione um assunto para adicionar como filtro de pesquisa", + // "uploader.browse": "browse", "uploader.browse": "Navegar", @@ -6356,8 +7155,8 @@ // "uploader.or": ", or ", "uploader.or": ", ou ", - // "uploader.processing": "Processing", - "uploader.processing": "Processando", + // "uploader.processing": "Processing uploaded file(s)... (it's now safe to close this page)", + "uploader.processing": "Processando arquivo(s) enviado(s)... (agora é seguro fechar esta página)", // "uploader.queue-length": "Queue length", "uploader.queue-length": "Tamanho da fila", @@ -6371,6 +7170,9 @@ // "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": "Selecione os itens para os quais você deseja salvar os metadados virtuais como metadados reais", + // "supervisedWorkspace.search.results.head": "Supervised Items", (Auto-Translated) + "supervisedWorkspace.search.results.head": "Itens supervisionados", + // "workspace.search.results.head": "Your submissions", "workspace.search.results.head": "Suas submissões", @@ -6380,6 +7182,9 @@ // "workflow.search.results.head": "Workflow tasks", "workflow.search.results.head": "Tarefas do Workflow", + // "supervision.search.results.head": "Workflow and Workspace tasks", (Auto-Translated) + "supervision.search.results.head": "Tarefas de fluxo de trabalho e espaço de trabalho", + // "workflow-item.edit.breadcrumbs": "Edit workflowitem", "workflow-item.edit.breadcrumbs": "Editar item do workflow", @@ -6443,6 +7248,81 @@ // "workspace-item.view.title": "Workspace View", "workspace-item.view.title": "Visualização da Ãrea de Trabalho (Workspace)", + // "workspace-item.delete.breadcrumbs": "Workspace Delete", (Auto-Translated) + "workspace-item.delete.breadcrumbs": "Excluir espaço de trabalho", + + // "workspace-item.delete.header": "Delete workspace item", (Auto-Translated) + "workspace-item.delete.header": "Excluir item do espaço de trabalho", + + // "workspace-item.delete.button.confirm": "Delete", (Auto-Translated) + "workspace-item.delete.button.confirm": "Excluir", + + // "workspace-item.delete.button.cancel": "Cancel", (Auto-Translated) + "workspace-item.delete.button.cancel": "Cancelar", + + // "workspace-item.delete.notification.success.title": "Deleted", (Auto-Translated) + "workspace-item.delete.notification.success.title": "ExcluÃdo", + + // "workspace-item.delete.title": "This workspace item was successfully deleted", (Auto-Translated) + "workspace-item.delete.title": "Este item do espaço de trabalho foi excluÃdo com sucesso", + + // "workspace-item.delete.notification.error.title": "Something went wrong", (Auto-Translated) + "workspace-item.delete.notification.error.title": "Algo deu errado", + + // "workspace-item.delete.notification.error.content": "The workspace item could not be deleted", (Auto-Translated) + "workspace-item.delete.notification.error.content": "O item do espaço de trabalho não pôde ser excluÃdo", + + // "workflow-item.advanced.title": "Advanced workflow", (Auto-Translated) + "workflow-item.advanced.title": "Fluxo de trabalho avançado", + + // "workflow-item.selectrevieweraction.notification.success.title": "Selected reviewer", (Auto-Translated) + "workflow-item.selectrevieweraction.notification.success.title": "Revisor selecionado", + + // "workflow-item.selectrevieweraction.notification.success.content": "The reviewer for this workflow item has been successfully selected", (Auto-Translated) + "workflow-item.selectrevieweraction.notification.success.content": "O revisor deste item de fluxo de trabalho foi selecionado com sucesso", + + // "workflow-item.selectrevieweraction.notification.error.title": "Something went wrong", (Auto-Translated) + "workflow-item.selectrevieweraction.notification.error.title": "Algo deu errado", + + // "workflow-item.selectrevieweraction.notification.error.content": "Couldn't select the reviewer for this workflow item", (Auto-Translated) + "workflow-item.selectrevieweraction.notification.error.content": "Não foi possÃvel selecionar o revisor para este item de fluxo de trabalho", + + // "workflow-item.selectrevieweraction.title": "Select Reviewer", (Auto-Translated) + "workflow-item.selectrevieweraction.title": "Selecione Revisor", + + // "workflow-item.selectrevieweraction.header": "Select Reviewer", (Auto-Translated) + "workflow-item.selectrevieweraction.header": "Selecione Revisor", + + // "workflow-item.selectrevieweraction.button.cancel": "Cancel", (Auto-Translated) + "workflow-item.selectrevieweraction.button.cancel": "Cancelar", + + // "workflow-item.selectrevieweraction.button.confirm": "Confirm", (Auto-Translated) + "workflow-item.selectrevieweraction.button.confirm": "Confirmar", + + // "workflow-item.scorereviewaction.notification.success.title": "Rating review", (Auto-Translated) + "workflow-item.scorereviewaction.notification.success.title": "Revisão de classificação", + + // "workflow-item.scorereviewaction.notification.success.content": "The rating for this item workflow item has been successfully submitted", (Auto-Translated) + "workflow-item.scorereviewaction.notification.success.content": "A classificação para este item de fluxo de trabalho do item foi enviada com sucesso", + + // "workflow-item.scorereviewaction.notification.error.title": "Something went wrong", (Auto-Translated) + "workflow-item.scorereviewaction.notification.error.title": "Algo deu errado", + + // "workflow-item.scorereviewaction.notification.error.content": "Couldn't rate this item", (Auto-Translated) + "workflow-item.scorereviewaction.notification.error.content": "Não foi possÃvel avaliar este item", + + // "workflow-item.scorereviewaction.title": "Rate this item", (Auto-Translated) + "workflow-item.scorereviewaction.title": "Avaliar este item", + + // "workflow-item.scorereviewaction.header": "Rate this item", (Auto-Translated) + "workflow-item.scorereviewaction.header": "Avaliar este item", + + // "workflow-item.scorereviewaction.button.cancel": "Cancel", (Auto-Translated) + "workflow-item.scorereviewaction.button.cancel": "Cancelar", + + // "workflow-item.scorereviewaction.button.confirm": "Confirm", (Auto-Translated) + "workflow-item.scorereviewaction.button.confirm": "Confirmar", + // "idle-modal.header": "Session will expire soon", "idle-modal.header": "Sessão vai expirar em breve", @@ -6455,7 +7335,7 @@ // "idle-modal.extend-session": "Extend session", "idle-modal.extend-session": "Estender sessão", - // "researcher.profile.action.processing" : "Processing...", + // "researcher.profile.action.processing": "Processing...", "researcher.profile.action.processing": "Processando...", // "researcher.profile.associated": "Researcher profile associated", @@ -6488,10 +7368,10 @@ // "researcher.profile.view": "View", "researcher.profile.view": "Ver", - // "researcher.profile.private.visibility" : "PRIVATE", + // "researcher.profile.private.visibility": "PRIVATE", "researcher.profile.private.visibility": "PRIVADO", - // "researcher.profile.public.visibility" : "PUBLIC", + // "researcher.profile.public.visibility": "PUBLIC", "researcher.profile.public.visibility": "PÚBLICO", // "researcher.profile.status": "Status:", @@ -6500,16 +7380,16 @@ // "researcherprofile.claim.not-authorized": "You are not authorized to claim this item. For more details contact the administrator(s).", "researcherprofile.claim.not-authorized": "Você não está autorizado a reivindicar este item. Para mais detalhes, entre em contato com o(s) administrador(es)", - // "researcherprofile.error.claim.body" : "An error occurred while claiming the profile, please try again later", + // "researcherprofile.error.claim.body": "An error occurred while claiming the profile, please try again later", "researcherprofile.error.claim.body": "Ocorreu um erro ao reivindicar o perfil, tente novamente mais tarde", - // "researcherprofile.error.claim.title" : "Error", + // "researcherprofile.error.claim.title": "Error", "researcherprofile.error.claim.title": "Erro", - // "researcherprofile.success.claim.body" : "Profile claimed with success", + // "researcherprofile.success.claim.body": "Profile claimed with success", "researcherprofile.success.claim.body": "Perfil reivindicado com sucesso", - // "researcherprofile.success.claim.title" : "Success", + // "researcherprofile.success.claim.title": "Success", "researcherprofile.success.claim.title": "Successo", // "person.page.orcid.create": "Create an ORCID ID", @@ -6518,7 +7398,7 @@ // "person.page.orcid.granted-authorizations": "Granted authorizations", "person.page.orcid.granted-authorizations": "Autorizações concedidas", - // "person.page.orcid.grant-authorizations" : "Grant authorizations", + // "person.page.orcid.grant-authorizations": "Grant authorizations", "person.page.orcid.grant-authorizations": "Conceder autorizações", // "person.page.orcid.link": "Connect to ORCID ID", @@ -6566,43 +7446,43 @@ // "person.page.orcid.save.preference.changes": "Update settings", "person.page.orcid.save.preference.changes": "Atualizar configurações", - // "person.page.orcid.sync-profile.affiliation" : "Affiliation", + // "person.page.orcid.sync-profile.affiliation": "Affiliation", "person.page.orcid.sync-profile.affiliation": "Afiliação", - // "person.page.orcid.sync-profile.biographical" : "Biographical data", + // "person.page.orcid.sync-profile.biographical": "Biographical data", "person.page.orcid.sync-profile.biographical": "Dados biográficos", - // "person.page.orcid.sync-profile.education" : "Education", + // "person.page.orcid.sync-profile.education": "Education", "person.page.orcid.sync-profile.education": "Educação", - // "person.page.orcid.sync-profile.identifiers" : "Identifiers", + // "person.page.orcid.sync-profile.identifiers": "Identifiers", "person.page.orcid.sync-profile.identifiers": "Identificadores", - // "person.page.orcid.sync-fundings.all" : "All fundings", + // "person.page.orcid.sync-fundings.all": "All fundings", "person.page.orcid.sync-fundings.all": "Todos financiamentos", - // "person.page.orcid.sync-fundings.mine" : "My fundings", + // "person.page.orcid.sync-fundings.mine": "My fundings", "person.page.orcid.sync-fundings.mine": "Meus financiamentos", - // "person.page.orcid.sync-fundings.my_selected" : "Selected fundings", + // "person.page.orcid.sync-fundings.my_selected": "Selected fundings", "person.page.orcid.sync-fundings.my_selected": "Financiamentos selecionados", - // "person.page.orcid.sync-fundings.disabled" : "Disabled", + // "person.page.orcid.sync-fundings.disabled": "Disabled", "person.page.orcid.sync-fundings.disabled": "Desabilitado", - // "person.page.orcid.sync-publications.all" : "All publications", + // "person.page.orcid.sync-publications.all": "All publications", "person.page.orcid.sync-publications.all": "Todas publicações", - // "person.page.orcid.sync-publications.mine" : "My publications", + // "person.page.orcid.sync-publications.mine": "My publications", "person.page.orcid.sync-publications.mine": "Minhas publicações", - // "person.page.orcid.sync-publications.my_selected" : "Selected publications", + // "person.page.orcid.sync-publications.my_selected": "Selected publications", "person.page.orcid.sync-publications.my_selected": "Publicações selecionadas", - // "person.page.orcid.sync-publications.disabled" : "Disabled", + // "person.page.orcid.sync-publications.disabled": "Disabled", "person.page.orcid.sync-publications.disabled": "Desabilitado", - // "person.page.orcid.sync-queue.discard" : "Discard the change and do not synchronize with the ORCID registry", + // "person.page.orcid.sync-queue.discard": "Discard the change and do not synchronize with the ORCID registry", "person.page.orcid.sync-queue.discard": "Descarte a alteração e não sincronize com o registro ORCID", // "person.page.orcid.sync-queue.discard.error": "The discarding of the ORCID queue record failed", @@ -6614,13 +7494,13 @@ // "person.page.orcid.sync-queue.empty-message": "The ORCID queue registry is empty", "person.page.orcid.sync-queue.empty-message": "O registro da fila ORCID está vazio", - // "person.page.orcid.sync-queue.table.header.type" : "Type", + // "person.page.orcid.sync-queue.table.header.type": "Type", "person.page.orcid.sync-queue.table.header.type": "Tipo", - // "person.page.orcid.sync-queue.table.header.description" : "Description", + // "person.page.orcid.sync-queue.table.header.description": "Description", "person.page.orcid.sync-queue.table.header.description": "Descrição", - // "person.page.orcid.sync-queue.table.header.action" : "Action", + // "person.page.orcid.sync-queue.table.header.action": "Action", "person.page.orcid.sync-queue.table.header.action": "Ação", // "person.page.orcid.sync-queue.description.affiliation": "Affiliations", @@ -6686,7 +7566,7 @@ // "person.page.orcid.sync-queue.tooltip.researcher_urls": "Researcher url", "person.page.orcid.sync-queue.tooltip.researcher_urls": "URL do pesquisador", - // "person.page.orcid.sync-queue.send" : "Synchronize with ORCID registry", + // "person.page.orcid.sync-queue.send": "Synchronize with ORCID registry", "person.page.orcid.sync-queue.send": "Sincronize com o registro ORCID", // "person.page.orcid.sync-queue.send.unauthorized-error.title": "The submission to ORCID failed for missing authorizations.", @@ -6740,7 +7620,7 @@ // "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": "O nome da organização é obrigatório", - // "person.page.orcid.sync-queue.send.validation-error.publication.date-invalid" : "The publication date must be one year after 1900", + // "person.page.orcid.sync-queue.send.validation-error.publication.date-invalid": "The publication date must be one year after 1900", "person.page.orcid.sync-queue.send.validation-error.publication.date-invalid": "A data de publicação deve ser um ano após 1900", // "person.page.orcid.sync-queue.send.validation-error.organization.address-required": "The organization to be sent requires an address", @@ -6818,10 +7698,156 @@ // "person.orcid.registry.queue": "ORCID Registry Queue", "person.orcid.registry.queue": "ORCID Registro na Fila", - // "person.orcid.registry.auth": "ORCID Autorizações", - "person.orcid.registry.auth": "ORCID Autorizações", + // "person.orcid.registry.auth": "ORCID Authorizations", + "person.orcid.registry.auth": "Autorizações ORCID", // "home.recent-submissions.head": "Recent Submissions", "home.recent-submissions.head": "Submissões Recentes", + // "listable-notification-object.default-message": "This object couldn't be retrieved", (Auto-Translated) + "listable-notification-object.default-message": "Este objeto não pôde ser recuperado", + + // "system-wide-alert-banner.retrieval.error": "Something went wrong retrieving the system-wide alert banner", (Auto-Translated) + "system-wide-alert-banner.retrieval.error": "Algo deu errado recuperar o banner de alerta em todo o sistema", + + // "system-wide-alert-banner.countdown.prefix": "In", (Auto-Translated) + "system-wide-alert-banner.countdown.prefix": "Em", + + // "system-wide-alert-banner.countdown.days": "{{days}} day(s),", (Auto-Translated) + "system-wide-alert-banner.countdown.days": "{{days}} dia (s),", + + // "system-wide-alert-banner.countdown.hours": "{{hours}} hour(s) and", (Auto-Translated) + "system-wide-alert-banner.countdown.hours": "{{hours}} hora (s) e", + + // "system-wide-alert-banner.countdown.minutes": "{{minutes}} minute(s):", (Auto-Translated) + "system-wide-alert-banner.countdown.minutes": "{{minutes}} minuto (s):", + + // "menu.section.system-wide-alert": "System-wide Alert", (Auto-Translated) + "menu.section.system-wide-alert": "Alerta em todo o sistema", + + // "system-wide-alert.form.header": "System-wide Alert", (Auto-Translated) + "system-wide-alert.form.header": "Alerta em todo o sistema", + + // "system-wide-alert-form.retrieval.error": "Something went wrong retrieving the system-wide alert", (Auto-Translated) + "system-wide-alert-form.retrieval.error": "Algo deu errado recuperando o alerta em todo o sistema", + + // "system-wide-alert.form.cancel": "Cancel", (Auto-Translated) + "system-wide-alert.form.cancel": "Cancelar", + + // "system-wide-alert.form.save": "Save", (Auto-Translated) + "system-wide-alert.form.save": "Salvar", + + // "system-wide-alert.form.label.active": "ACTIVE", (Auto-Translated) + "system-wide-alert.form.label.active": "ATIVO", + + // "system-wide-alert.form.label.inactive": "INACTIVE", (Auto-Translated) + "system-wide-alert.form.label.inactive": "INATIVO", + + // "system-wide-alert.form.error.message": "The system wide alert must have a message", (Auto-Translated) + "system-wide-alert.form.error.message": "O alerta amplo do sistema deve ter uma mensagem", + + // "system-wide-alert.form.label.message": "Alert message", (Auto-Translated) + "system-wide-alert.form.label.message": "Mensagem de alerta", + + // "system-wide-alert.form.label.countdownTo.enable": "Enable a countdown timer", (Auto-Translated) + "system-wide-alert.form.label.countdownTo.enable": "Ativar um cronômetro de contagem regressiva", + + // "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.", (Auto-Translated) + "system-wide-alert.form.label.countdownTo.hint": "Dica: defina um cronômetro de contagem regressiva. Quando ativado, uma data pode ser definida no futuro e o banner de alerta em todo o sistema executará uma contagem regressiva para a data definida. Quando esse timer terminar, ele desaparecerá do alerta. O servidor NÃO será interrompido automaticamente.", + + // "system-wide-alert.form.label.preview": "System-wide alert preview", (Auto-Translated) + "system-wide-alert.form.label.preview": "Visualização de alerta em todo o sistema", + + // "system-wide-alert.form.update.success": "The system-wide alert was successfully updated", (Auto-Translated) + "system-wide-alert.form.update.success": "O alerta em todo o sistema foi atualizado com sucesso", + + // "system-wide-alert.form.update.error": "Something went wrong when updating the system-wide alert", (Auto-Translated) + "system-wide-alert.form.update.error": "Algo deu errado ao atualizar o alerta em todo o sistema", + + // "system-wide-alert.form.create.success": "The system-wide alert was successfully created", (Auto-Translated) + "system-wide-alert.form.create.success": "O alerta em todo o sistema foi criado com sucesso", + + // "system-wide-alert.form.create.error": "Something went wrong when creating the system-wide alert", (Auto-Translated) + "system-wide-alert.form.create.error": "Algo deu errado ao criar o alerta em todo o sistema", + + // "admin.system-wide-alert.breadcrumbs": "System-wide Alerts", (Auto-Translated) + "admin.system-wide-alert.breadcrumbs": "Alertas em todo o sistema", + + // "admin.system-wide-alert.title": "System-wide Alerts", (Auto-Translated) + "admin.system-wide-alert.title": "Alertas em todo o sistema", + + // "item-access-control-title": "This form allows you to perform changes to the access conditions of the item's metadata or its bitstreams.", (Auto-Translated) + "item-access-control-title": "Este formulário permite que você execute alterações nas condições de acesso dos metadados do item ou seus bitstreams.", + + // "collection-access-control-title": "This form allows you to perform changes to the access conditions of all the items owned by this collection. Changes may be performed to either all Item metadata or all content (bitstreams).", (Auto-Translated) + "collection-access-control-title": "Este formulário permite executar alterações nas condições de acesso de todos os itens de propriedade desta coleção. As alterações podem ser realizadas em todos os metadados do item ou em todo o conteúdo (BitStreams).", + + // "community-access-control-title": "This form allows you to perform changes to the access conditions of all the items owned by any collection under this community. Changes may be performed to either all Item metadata or all content (bitstreams).", (Auto-Translated) + "community-access-control-title": "Este formulário permite executar alterações nas condições de acesso de todos os itens pertencentes a qualquer coleção nesta comunidade. As alterações podem ser realizadas em todos os metadados do item ou em todo o conteúdo (BitStreams).", + + // "access-control-item-header-toggle": "Item's Metadata", (Auto-Translated) + "access-control-item-header-toggle": "Metadados do item", + + // "access-control-bitstream-header-toggle": "Bitstreams", (Auto-Translated) + "access-control-bitstream-header-toggle": "BitStreams", + + // "access-control-mode": "Mode", (Auto-Translated) + "access-control-mode": "Modo", + + // "access-control-access-conditions": "Access conditions", (Auto-Translated) + "access-control-access-conditions": "Condições de acesso", + + // "access-control-no-access-conditions-warning-message": "Currently, no access conditions are specified below. If executed, this will replace the current access conditions with the default access conditions inherited from the owning collection.", (Auto-Translated) + "access-control-no-access-conditions-warning-message": "Atualmente, nenhuma condição de acesso é especificada abaixo. Se executado, isso substituirá as condições de acesso atuais pelas condições de acesso padrão herdadas da coleção proprietária.", + + // "access-control-replace-all": "Replace access conditions", (Auto-Translated) + "access-control-replace-all": "Substitua as condições de acesso", + + // "access-control-add-to-existing": "Add to existing ones", (Auto-Translated) + "access-control-add-to-existing": "Adicione aos existentes", + + // "access-control-limit-to-specific": "Limit the changes to specific bitstreams", (Auto-Translated) + "access-control-limit-to-specific": "Limitar as alterações em transmissões especÃficas", + + // "access-control-process-all-bitstreams": "Update all the bitstreams in the item", (Auto-Translated) + "access-control-process-all-bitstreams": "Atualize todos os streams de bits no item", + + // "access-control-bitstreams-selected": "bitstreams selected", (Auto-Translated) + "access-control-bitstreams-selected": "BitStreams selecionados", + + // "access-control-cancel": "Cancel", (Auto-Translated) + "access-control-cancel": "Cancelar", + + // "access-control-execute": "Execute", (Auto-Translated) + "access-control-execute": "Executar", + + // "access-control-add-more": "Add more", (Auto-Translated) + "access-control-add-more": "Adicione mais", + + // "access-control-select-bitstreams-modal.title": "Select bitstreams", (Auto-Translated) + "access-control-select-bitstreams-modal.title": "Selecione BitStreams", + + // "access-control-select-bitstreams-modal.no-items": "No items to show.", (Auto-Translated) + "access-control-select-bitstreams-modal.no-items": "Sem itens para mostrar.", + + // "access-control-select-bitstreams-modal.close": "Close", (Auto-Translated) + "access-control-select-bitstreams-modal.close": "Fechar", + + // "access-control-option-label": "Access condition type", (Auto-Translated) + "access-control-option-label": "Tipo de condição de acesso", + + // "access-control-option-note": "Choose an access condition to apply to selected objects.", (Auto-Translated) + "access-control-option-note": "Escolha uma condição de acesso para aplicar em objetos selecionados.", + + // "access-control-option-start-date": "Grant access from", (Auto-Translated) + "access-control-option-start-date": "Conceder acesso de", + + // "access-control-option-start-date-note": "Select the date from which the related access condition is applied", (Auto-Translated) + "access-control-option-start-date-note": "Selecione a data a partir da qual a condição de acesso relacionada é aplicada", + + // "access-control-option-end-date": "Grant access until", (Auto-Translated) + "access-control-option-end-date": "Conceder acesso até", + + // "access-control-option-end-date-note": "Select the date until which the related access condition is applied", (Auto-Translated) + "access-control-option-end-date-note": "Selecione a data até a qual a condição de acesso relacionada é aplicada", } -- GitLab From 8b48a0b1180a0cf48531b906d410cab35263ab81 Mon Sep 17 00:00:00 2001 From: Marco Aurelio Cardoso <marcoaurelio.cardoso@gmail.com> Date: Sun, 29 Oct 2023 07:18:04 -0300 Subject: [PATCH 134/183] fix(pt-BR.json5): fix and update the language file and previous errors Fix and update the pt-BR language file and the previous errors --- src/assets/i18n/pt-BR.json5 | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/assets/i18n/pt-BR.json5 b/src/assets/i18n/pt-BR.json5 index 79d332bace..ce35f1ec05 100644 --- a/src/assets/i18n/pt-BR.json5 +++ b/src/assets/i18n/pt-BR.json5 @@ -962,23 +962,23 @@ // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit": "Remove / Add", (Auto-Translated) "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit": "Remover / adicionar", - // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.remove": "Remove member with name "{{name}}"", (Auto-Translated) - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.remove": "Remova o membro com o nome "{{name}}"", + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.remove": "Remove member with name \"{{name}}\"", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.remove": "Remova o membro com o nome \"{{name}}\"", - // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.addMember": "Successfully added member: "{{name}}"", (Auto-Translated) - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.addMember": "Membro adicionado com sucesso: "{{name}}"", + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.addMember": "Successfully added member: \"{{name}}\"", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.addMember": "Membro adicionado com sucesso: \"{{name}}\"", - // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.addMember": "Failed to add member: "{{name}}"", (Auto-Translated) - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.addMember": "Falha ao adicionar membro: "{{name}}"", + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.addMember": "Failed to add member: \"{{name}}\"", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.addMember": "Falha ao adicionar membro: \"{{name}}\"", - // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.deleteMember": "Successfully deleted member: "{{name}}"", (Auto-Translated) - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.deleteMember": "Membro excluÃdo com sucesso: "{{name}}"", + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.deleteMember": "Successfully deleted member: \"{{name}}\"", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.deleteMember": "Membro excluÃdo com sucesso: \"{{name}}\"", - // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.deleteMember": "Failed to delete member: "{{name}}"", (Auto-Translated) - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.deleteMember": "Falha ao excluir membro: "{{name}}"", + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.deleteMember": "Failed to delete member: \"{{name}}\"", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.deleteMember": "Falha ao excluir membro: \"{{name}}\"", - // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.add": "Add member with name "{{name}}"", (Auto-Translated) - "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.add": "Adicionar membro com o nome "{{name}}"", + // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.add": "Add member with name \"{{name}}\"", (Auto-Translated) + "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.add": "Adicionar membro com o nome \"{{name}}\"", // "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.noActiveGroup": "No current active group, submit a name first.", (Auto-Translated) "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.noActiveGroup": "Nenhum grupo ativo atual, envie um nome primeiro.", @@ -2321,8 +2321,8 @@ // "confirmation-modal.delete-subscription.header": "Delete Subscription", (Auto-Translated) "confirmation-modal.delete-subscription.header": "Excluir assinatura", - // "confirmation-modal.delete-subscription.info": "Are you sure you want to delete subscription for "{{ dsoName }}"", (Auto-Translated) - "confirmation-modal.delete-subscription.info": "Tem certeza de que deseja excluir a assinatura para "{{ dsoName }}"", + // "confirmation-modal.delete-subscription.info": "Are you sure you want to delete subscription for \"{{ dsoName }}\"", (Auto-Translated) + "confirmation-modal.delete-subscription.info": "Tem certeza de que deseja excluir a assinatura para \"{{ dsoName }}\"", // "confirmation-modal.delete-subscription.cancel": "Cancel", (Auto-Translated) "confirmation-modal.delete-subscription.cancel": "Cancelar", @@ -3555,11 +3555,11 @@ // "workflow-item.search.result.delete-supervision.modal.confirm": "Delete", (Auto-Translated) "workflow-item.search.result.delete-supervision.modal.confirm": "Excluir", - // "workflow-item.search.result.notification.deleted.success": "Successfully deleted supervision order "{{name}}"", (Auto-Translated) - "workflow-item.search.result.notification.deleted.success": "Ordem de supervisão excluÃda com sucesso "{{name}}"", + // "workflow-item.search.result.notification.deleted.success": "Successfully deleted supervision order \"{{name}}\"", (Auto-Translated) + "workflow-item.search.result.notification.deleted.success": "Ordem de supervisão excluÃda com sucesso \"{{name}}\"", - // "workflow-item.search.result.notification.deleted.failure": "Failed to delete supervision order "{{name}}"", (Auto-Translated) - "workflow-item.search.result.notification.deleted.failure": "Falha ao excluir a ordem de supervisão "{{name}}"", + // "workflow-item.search.result.notification.deleted.failure": "Failed to delete supervision order \"{{name}}\"", (Auto-Translated) + "workflow-item.search.result.notification.deleted.failure": "Falha ao excluir a ordem de supervisão \"{{name}}\"", // "workflow-item.search.result.list.element.supervised-by": "Supervised by:", (Auto-Translated) "workflow-item.search.result.list.element.supervised-by": "Supervisionado por:", -- GitLab From e54723aa85f4dbcf376fecf0420e68f04d8e858b Mon Sep 17 00:00:00 2001 From: Alisa Ismailati <alisa.ismailati@atis.al> Date: Thu, 12 Oct 2023 16:12:32 +0000 Subject: [PATCH 135/183] Merged in DSC-106 (pull request #643) [DSC-106] Date input usable via keyboard using tab Approved-by: Vincenzo Mecca (cherry picked from commit 543b4ad576b740b27ecf7b3bfc607f021bde1494) --- .../date-picker/date-picker.component.spec.ts | 109 +++++++++++++++++- .../date-picker/date-picker.component.ts | 74 +++++++++++- 2 files changed, 178 insertions(+), 5 deletions(-) diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.component.spec.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.component.spec.ts index ffc36008c6..8ee90fb230 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.component.spec.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.component.spec.ts @@ -1,7 +1,7 @@ // Load the implementations that should be tested -import { ChangeDetectorRef, Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; -import { ComponentFixture, inject, TestBed, waitForAsync, } from '@angular/core/testing'; import { UntypedFormControl, UntypedFormGroup } from '@angular/forms'; +import { ChangeDetectorRef, Component, CUSTOM_ELEMENTS_SCHEMA, Renderer2 } from '@angular/core'; +import { ComponentFixture, fakeAsync, inject, TestBed, tick, waitForAsync, } from '@angular/core/testing'; import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; import { DynamicFormLayoutService, DynamicFormValidationService } from '@ng-dynamic-forms/core'; @@ -13,6 +13,7 @@ import { mockDynamicFormLayoutService, mockDynamicFormValidationService } from '../../../../../testing/dynamic-form-mock-services'; +import { By } from '@angular/platform-browser'; export const DATE_TEST_GROUP = new UntypedFormGroup({ @@ -39,6 +40,11 @@ describe('DsDatePickerComponent test suite', () => { let dateFixture: ComponentFixture<DsDatePickerComponent>; let html; + const renderer2: Renderer2 = { + selectRootElement: jasmine.createSpy('selectRootElement'), + querySelector: jasmine.createSpy('querySelector'), + } as unknown as Renderer2; + // waitForAsync beforeEach beforeEach(waitForAsync(() => { @@ -54,7 +60,8 @@ describe('DsDatePickerComponent test suite', () => { ChangeDetectorRef, DsDatePickerComponent, { provide: DynamicFormLayoutService, useValue: mockDynamicFormLayoutService }, - { provide: DynamicFormValidationService, useValue: mockDynamicFormValidationService } + { provide: DynamicFormValidationService, useValue: mockDynamicFormValidationService }, + { provide: Renderer2, useValue: renderer2 }, ], schemas: [CUSTOM_ELEMENTS_SCHEMA] }); @@ -233,6 +240,102 @@ describe('DsDatePickerComponent test suite', () => { expect(dateComp.disabledMonth).toBeFalsy(); expect(dateComp.disabledDay).toBeFalsy(); }); + + it('should move focus on month field when on year field and tab pressed', fakeAsync(() => { + const event = { + field: 'day', + value: null + }; + const event1 = { + field: 'month', + value: null + }; + dateComp.onChange(event); + dateComp.onChange(event1); + + const yearElement = dateFixture.debugElement.query(By.css(`#${dateComp.model.id}_year`)); + const monthElement = dateFixture.debugElement.query(By.css(`#${dateComp.model.id}_month`)); + + yearElement.nativeElement.focus(); + dateFixture.detectChanges(); + + expect(document.activeElement).toBe(yearElement.nativeElement); + + dateFixture.nativeElement.dispatchEvent(new KeyboardEvent('keydown', { key: 'tab' })); + dateFixture.detectChanges(); + + tick(200); + dateFixture.detectChanges(); + + expect(document.activeElement).toBe(monthElement.nativeElement); + })); + + it('should move focus on day field when on month field and tab pressed', fakeAsync(() => { + const event = { + field: 'day', + value: null + }; + dateComp.onChange(event); + + const monthElement = dateFixture.debugElement.query(By.css(`#${dateComp.model.id}_month`)); + const dayElement = dateFixture.debugElement.query(By.css(`#${dateComp.model.id}_day`)); + + monthElement.nativeElement.focus(); + dateFixture.detectChanges(); + + expect(document.activeElement).toBe(monthElement.nativeElement); + + dateFixture.nativeElement.dispatchEvent(new KeyboardEvent('keydown', { key: 'tab' })); + dateFixture.detectChanges(); + + tick(200); + dateFixture.detectChanges(); + + expect(document.activeElement).toBe(dayElement.nativeElement); + })); + + it('should move focus on month field when on day field and shift tab pressed', fakeAsync(() => { + const event = { + field: 'day', + value: null + }; + dateComp.onChange(event); + + const monthElement = dateFixture.debugElement.query(By.css(`#${dateComp.model.id}_month`)); + const dayElement = dateFixture.debugElement.query(By.css(`#${dateComp.model.id}_day`)); + + dayElement.nativeElement.focus(); + dateFixture.detectChanges(); + + expect(document.activeElement).toBe(dayElement.nativeElement); + + dateFixture.nativeElement.dispatchEvent(new KeyboardEvent('keydown', { key: 'shift.tab' })); + dateFixture.detectChanges(); + + tick(200); + dateFixture.detectChanges(); + + expect(document.activeElement).toBe(monthElement.nativeElement); + })); + + it('should move focus on year field when on month field and shift tab pressed', fakeAsync(() => { + const yearElement = dateFixture.debugElement.query(By.css(`#${dateComp.model.id}_year`)); + const monthElement = dateFixture.debugElement.query(By.css(`#${dateComp.model.id}_month`)); + + monthElement.nativeElement.focus(); + dateFixture.detectChanges(); + + expect(document.activeElement).toBe(monthElement.nativeElement); + + dateFixture.nativeElement.dispatchEvent(new KeyboardEvent('keydown', { key: 'shift.tab' })); + dateFixture.detectChanges(); + + tick(200); + dateFixture.detectChanges(); + + expect(document.activeElement).toBe(yearElement.nativeElement); + })); + }); }); diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.component.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.component.ts index 8d5ce5b48e..717aa88d44 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.component.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.component.ts @@ -1,5 +1,5 @@ -import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; import { UntypedFormGroup } from '@angular/forms'; +import { Component, EventEmitter, HostListener, Inject, Input, OnInit, Output, Renderer2 } from '@angular/core'; import { DynamicDsDatePickerModel } from './date-picker.model'; import { hasValue } from '../../../../../empty.util'; import { @@ -7,6 +7,11 @@ import { DynamicFormLayoutService, DynamicFormValidationService } from '@ng-dynamic-forms/core'; +import { DOCUMENT } from '@angular/common'; +import isEqual from 'lodash/isEqual'; + + +export type DatePickerFieldType = '_year' | '_month' | '_day'; export const DS_DATE_PICKER_SEPARATOR = '-'; @@ -50,8 +55,12 @@ export class DsDatePickerComponent extends DynamicFormControlComponent implement disabledMonth = true; disabledDay = true; + private readonly fields: DatePickerFieldType[] = ['_year', '_month', '_day']; + constructor(protected layoutService: DynamicFormLayoutService, - protected validationService: DynamicFormValidationService + protected validationService: DynamicFormValidationService, + private renderer: Renderer2, + @Inject(DOCUMENT) private _document: Document ) { super(layoutService, validationService); } @@ -166,6 +175,67 @@ export class DsDatePickerComponent extends DynamicFormControlComponent implement this.change.emit(value); } + /** + * Listen to keydown Tab event. + * Get the active element and blur it, in order to focus the next input field. + */ + @HostListener('keydown.tab', ['$event']) + onTabKeydown(event: KeyboardEvent) { + event.preventDefault(); + const activeElement: Element = this._document.activeElement; + (activeElement as any).blur(); + const index = this.selectedFieldIndex(activeElement); + if (index < 0) { + return; + } + let fieldToFocusOn = index + 1; + if (fieldToFocusOn < this.fields.length) { + this.focusInput(this.fields[fieldToFocusOn]); + } + } + + @HostListener('keydown.shift.tab', ['$event']) + onShiftTabKeyDown(event: KeyboardEvent) { + event.preventDefault(); + const activeElement: Element = this._document.activeElement; + (activeElement as any).blur(); + const index = this.selectedFieldIndex(activeElement); + let fieldToFocusOn = index - 1; + if (fieldToFocusOn >= 0) { + this.focusInput(this.fields[fieldToFocusOn]); + } + } + + private selectedFieldIndex(activeElement: Element): number { + return this.fields.findIndex(field => isEqual(activeElement.id, this.model.id.concat(field))); + } + + /** + * Focus the input field for the given type + * based on the model id. + * Used to focus the next input field + * in case of a disabled field. + * @param type DatePickerFieldType + */ + focusInput(type: DatePickerFieldType) { + const field = this._document.getElementById(this.model.id.concat(type)); + if (field) { + + if (hasValue(this.year) && isEqual(type, '_year')) { + this.disabledMonth = true; + this.disabledDay = true; + } + if (hasValue(this.year) && isEqual(type, '_month')) { + this.disabledMonth = false; + } else if (hasValue(this.month) && isEqual(type, '_day')) { + this.disabledDay = false; + } + setTimeout(() => { + this.renderer.selectRootElement(field).focus(); + }, 100); + } + } + onFocus(event) { this.focus.emit(event); } -- GitLab From c99487babc2666f2db643bc7a45e48777372dbfd Mon Sep 17 00:00:00 2001 From: Alisa Ismailati <alisa.ismailati@4science.com> Date: Mon, 30 Oct 2023 16:14:13 +0100 Subject: [PATCH 136/183] [DURACOM-194] fixed year input value on input type date (cherry picked from commit c412c1fa13b30ac5140259ff2542a60e8646382e) --- .../models/date-picker/date-picker.component.ts | 5 ++--- src/app/shared/form/number-picker/number-picker.component.ts | 3 +-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.component.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.component.ts index 717aa88d44..404e851493 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.component.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.component.ts @@ -89,9 +89,8 @@ export class DsDatePickerComponent extends DynamicFormControlComponent implement } } - this.maxYear = this.initialYear + 100; - - } + this.maxYear = now.getUTCFullYear() + 100; + } onBlur(event) { this.blur.emit(); diff --git a/src/app/shared/form/number-picker/number-picker.component.ts b/src/app/shared/form/number-picker/number-picker.component.ts index 82240c41d1..40562dd61c 100644 --- a/src/app/shared/form/number-picker/number-picker.component.ts +++ b/src/app/shared/form/number-picker/number-picker.component.ts @@ -103,13 +103,12 @@ export class NumberPickerComponent implements OnInit, ControlValueAccessor { if (i >= this.min && i <= this.max) { this.value = i; - this.emitChange(); } else if (event.target.value === null || event.target.value === '') { this.value = null; - this.emitChange(); } else { this.value = undefined; } + this.emitChange(); } catch (e) { this.value = undefined; } -- GitLab From f3f87dc928a7e6891ca003f5a29e7ee5460bfb9e Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Mon, 6 Nov 2023 10:25:08 -0600 Subject: [PATCH 137/183] Ensure e2e tests run in production mode (cherry picked from commit 7dcaae846547a48bf1cbe1fe4241ac661e20d71f) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 82dc2dece3..f94a48d6b0 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "test:headless": "ng test --source-map=true --watch=false --configuration test --browsers=ChromeHeadless --code-coverage", "lint": "ng lint", "lint-fix": "ng lint --fix=true", - "e2e": "ng e2e", + "e2e": "cross-env NODE_ENV=production ng e2e", "clean:dev:config": "rimraf src/assets/config.json", "clean:coverage": "rimraf coverage", "clean:dist": "rimraf dist", -- GitLab From 042c0f06f1d875a8331b34971ac1e01aa2cf518b Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Wed, 8 Nov 2023 10:08:49 -0600 Subject: [PATCH 138/183] Specify user agent to avoid being detected as a "bot" by backend (cherry picked from commit 72cda4173124c2d2b3125e4cfed106338dc70ad9) --- cypress/support/commands.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts index c70c4e37e1..92f0b1aeeb 100644 --- a/cypress/support/commands.ts +++ b/cypress/support/commands.ts @@ -177,6 +177,8 @@ function generateViewEvent(uuid: string, dsoType: string): void { [XSRF_REQUEST_HEADER] : csrfToken, // use a known public IP address to avoid being seen as a "bot" 'X-Forwarded-For': '1.1.1.1', + // Use a user-agent of a Firefox browser on Windows. This again avoids being seen as a "bot" + 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0', }, //form: true, // indicates the body should be form urlencoded body: { targetId: uuid, targetType: dsoType }, -- GitLab From 75e45cc8c271e36df065a4f62adb21ed7e07ea1a Mon Sep 17 00:00:00 2001 From: Davide Negretti <davide.negretti@4science.com> Date: Tue, 11 Jul 2023 16:05:33 +0200 Subject: [PATCH 139/183] [DURACOM-177] gap-* classes (cherry picked from commit 930a381e4a6beda611a87510e5b76a94d1c4c9af) --- src/styles/_global-styles.scss | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/styles/_global-styles.scss b/src/styles/_global-styles.scss index 00fcb0f86f..81d4fe0787 100644 --- a/src/styles/_global-styles.scss +++ b/src/styles/_global-styles.scss @@ -268,6 +268,30 @@ ul.dso-edit-menu-dropdown > li .nav-item.nav-link { vertical-align: middle; } +/* Flexbox gap */ + +.gap-0 { gap: 0; } +.gap-1 { gap: calc(#{$spacer} * .25); } +.gap-2 { gap: calc(#{$spacer} * .5); } +.gap-3 { gap: #{$spacer}; } +.gap-4 { gap: calc(#{$spacer} * 1.5); } +.gap-5 { gap: calc(#{$spacer} * 3); } + +.gapx-0 { column-gap: 0; } +.gapx-1 { column-gap: calc(#{$spacer} * .25); } +.gapx-2 { column-gap: calc(#{$spacer} * .5); } +.gapx-3 { column-gap: #{$spacer}; } +.gapx-4 { column-gap: calc(#{$spacer} * 1.5); } +.gapx-5 { column-gap: calc(#{$spacer} * 3); } + +.gapy-0 { row-gap: 0; } +.gapy-1 { row-gap: calc(#{$spacer} * .25); } +.gapy-2 { row-gap: calc(#{$spacer} * .5); } +.gapy-3 { row-gap: #{$spacer}; } +.gapy-4 { row-gap: calc(#{$spacer} * 1.5); } +.gapy-5 { row-gap: calc(#{$spacer} * 3); } + + .pt-0\.5 { padding-top: 0.125rem !important; } -- GitLab From c5f22ab9599255c309792a0e9f5fbcbfb54b3991 Mon Sep 17 00:00:00 2001 From: Davide Negretti <davide.negretti@4science.com> Date: Mon, 6 Nov 2023 11:39:48 +0100 Subject: [PATCH 140/183] [DURACOM-177] Use gap-* classes on navbar buttons (cherry picked from commit a35629536e70f8d4b691fa95fd0b8342a8d717a1) --- src/themes/dspace/app/header/header.component.html | 2 +- src/themes/dspace/app/header/header.component.scss | 6 ------ src/themes/dspace/app/navbar/navbar.component.html | 2 +- src/themes/dspace/app/navbar/navbar.component.scss | 6 ------ 4 files changed, 2 insertions(+), 14 deletions(-) diff --git a/src/themes/dspace/app/header/header.component.html b/src/themes/dspace/app/header/header.component.html index 4b0046bc83..205abfd463 100644 --- a/src/themes/dspace/app/header/header.component.html +++ b/src/themes/dspace/app/header/header.component.html @@ -5,7 +5,7 @@ <img src="assets/images/dspace-logo.svg" [attr.alt]="'menu.header.image.logo' | translate"/> </a> </div> - <div class="navbar-buttons d-flex flex-grow-1 ml-auto justify-content-end align-items-center"> + <div class="navbar-buttons d-flex flex-grow-1 ml-auto justify-content-end align-items-center gapx-1"> <ds-themed-search-navbar></ds-themed-search-navbar> <ds-themed-lang-switch></ds-themed-lang-switch> <ds-context-help-toggle></ds-context-help-toggle> diff --git a/src/themes/dspace/app/header/header.component.scss b/src/themes/dspace/app/header/header.component.scss index 14c46a2316..2fc857826f 100644 --- a/src/themes/dspace/app/header/header.component.scss +++ b/src/themes/dspace/app/header/header.component.scss @@ -24,9 +24,3 @@ color: var(--ds-header-icon-color-hover); } } - -.navbar-buttons { - display: flex; - gap: calc(var(--bs-spacer) / 3); - align-items: center; -} diff --git a/src/themes/dspace/app/navbar/navbar.component.html b/src/themes/dspace/app/navbar/navbar.component.html index c14671cf68..f2e231d46c 100644 --- a/src/themes/dspace/app/navbar/navbar.component.html +++ b/src/themes/dspace/app/navbar/navbar.component.html @@ -15,7 +15,7 @@ </li> </ul> </div> - <div class="navbar-buttons"> + <div class="navbar-buttons d-flex align-items-center gapx-1"> <ds-themed-search-navbar class="navbar-collapsed"></ds-themed-search-navbar> <ds-themed-lang-switch class="navbar-collapsed"></ds-themed-lang-switch> <ds-context-help-toggle class="navbar-collapsed"></ds-context-help-toggle> diff --git a/src/themes/dspace/app/navbar/navbar.component.scss b/src/themes/dspace/app/navbar/navbar.component.scss index b4b7a02e50..300d1f419a 100644 --- a/src/themes/dspace/app/navbar/navbar.component.scss +++ b/src/themes/dspace/app/navbar/navbar.component.scss @@ -59,9 +59,3 @@ a.navbar-brand img { } } } - -.navbar-buttons { - display: flex; - gap: calc(var(--bs-spacer) / 3); - align-items: center; -} -- GitLab From 4b4c1dc08a0aaaaaf96a9741656042311b3b368e Mon Sep 17 00:00:00 2001 From: Giuseppe Digilio <giuseppe.digilio@4science.com> Date: Thu, 2 Nov 2023 16:46:33 +0100 Subject: [PATCH 141/183] [DURACOM-197] Fix cache issue when depositing a submission (cherry picked from commit f992ff66713ea820e47cb44a28b5fd612d64fae2) --- src/app/submission/objects/submission-objects.effects.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/submission/objects/submission-objects.effects.ts b/src/app/submission/objects/submission-objects.effects.ts index 98646009d5..2c19224336 100644 --- a/src/app/submission/objects/submission-objects.effects.ts +++ b/src/app/submission/objects/submission-objects.effects.ts @@ -210,7 +210,7 @@ export class SubmissionObjectEffects { action.payload.submissionId, 'sections') as Observable<SubmissionObject[]>; } else { - response$ = this.submissionObjectService.findById(action.payload.submissionId, false, true).pipe( + response$ = this.submissionObjectService.findById(action.payload.submissionId, false, true, followLink('item'), followLink('collection')).pipe( getFirstSucceededRemoteDataPayload(), map((submissionObject: SubmissionObject) => [submissionObject]) ); -- GitLab From fba30781de4f61d25d00246a35b81c8f0321c2af Mon Sep 17 00:00:00 2001 From: William Welling <wwelling@tamu.edu> Date: Wed, 1 Nov 2023 14:39:08 -0500 Subject: [PATCH 142/183] Add UI nameSpace context path to Mirador viewer path (cherry picked from commit 3228c457a33710354c85b92efad5f6945af66e58) --- src/app/item-page/mirador-viewer/mirador-viewer.component.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/app/item-page/mirador-viewer/mirador-viewer.component.ts b/src/app/item-page/mirador-viewer/mirador-viewer.component.ts index fee8046272..15ebfc61bc 100644 --- a/src/app/item-page/mirador-viewer/mirador-viewer.component.ts +++ b/src/app/item-page/mirador-viewer/mirador-viewer.component.ts @@ -70,7 +70,8 @@ export class MiradorViewerComponent implements OnInit { const manifestApiEndpoint = encodeURIComponent(environment.rest.baseUrl + '/iiif/' + this.object.id + '/manifest'); // The Express path to Mirador viewer. - let viewerPath = '/iiif/mirador/index.html?manifest=' + manifestApiEndpoint; + let viewerPath = `${environment.ui.nameSpace}${environment.ui.nameSpace.length > 1 ? '/' : ''}` + + `iiif/mirador/index.html?manifest=${manifestApiEndpoint}`; if (this.searchable) { // Tell the viewer add search to menu. viewerPath += '&searchable=' + this.searchable; -- GitLab From a7588481460d7bc341f317a31816db14fa74682d Mon Sep 17 00:00:00 2001 From: Jens Vannerum <jens.vannerum@atmire.com> Date: Wed, 8 Nov 2023 10:25:27 +0100 Subject: [PATCH 143/183] 108055: fix issue 8686: unable to enter freetext values in the submission form for vocabulary (cherry picked from commit 0dcf6cb8855cc5c74f781fd7490f2daaeea29092) --- .../vocabulary-treeview.component.html | 3 +++ .../vocabulary-treeview/vocabulary-treeview.component.ts | 9 +++++++++ src/assets/i18n/en.json5 | 2 ++ 3 files changed, 14 insertions(+) diff --git a/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.html b/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.html index 3b858faac4..db3dc31948 100644 --- a/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.html +++ b/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.html @@ -10,6 +10,9 @@ <button class="btn btn-outline-secondary" type="button" (click)="reset()"> {{'vocabulary-treeview.search.form.reset' | translate}} </button> + <button class="btn btn-outline-primary" type="button" (click)="add()" [disabled]="this.vocabularyOptions.closed"> + {{'vocabulary-treeview.search.form.add' | translate}} + </button> </div> </div> </div> diff --git a/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.ts b/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.ts index 804ae63491..d5a5dee1f5 100644 --- a/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.ts +++ b/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.ts @@ -293,6 +293,15 @@ export class VocabularyTreeviewComponent implements OnDestroy, OnInit, OnChanges } } + add() { + const userVocabularyEntry = { + value: this.searchText, + display: this.searchText, + } as VocabularyEntryDetail; + this.select.emit(userVocabularyEntry); + } + + /** * Unsubscribe from all subscriptions */ diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 3b3578fac5..741ff0ffc9 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -5240,4 +5240,6 @@ "access-control-option-end-date-note": "Select the date until which the related access condition is applied", + "vocabulary-treeview.search.form.add": "Add", + } -- GitLab From e815b1d938066b06ec4ec887e1866327affaea7b Mon Sep 17 00:00:00 2001 From: Jens Vannerum <jens.vannerum@atmire.com> Date: Wed, 8 Nov 2023 12:00:46 +0100 Subject: [PATCH 144/183] 108055: add user input to tag list (cherry picked from commit aac58e612d7fb01f87dc7a6a46b92c9c4c2fe685) --- .../models/tag/dynamic-tag.component.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/models/tag/dynamic-tag.component.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/models/tag/dynamic-tag.component.ts index 4abb68a53b..7805dad1f3 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/models/tag/dynamic-tag.component.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/models/tag/dynamic-tag.component.ts @@ -89,6 +89,18 @@ export class DsDynamicTagComponent extends DsDynamicVocabularyComponent implemen } }), map((list: PaginatedList<VocabularyEntry>) => list.page), + // Add user input as last item of the list + map((list: VocabularyEntry[]) => { + if (list && list.length > 0) { + if (isNotEmpty(this.currentValue)) { + let vocEntry = new VocabularyEntry(); + vocEntry.display = this.currentValue; + vocEntry.value = this.currentValue; + list.push(vocEntry); + } + } + return list; + }), tap(() => this.changeSearchingStatus(false)), merge(this.hideSearchingWhenUnsubscribed)); -- GitLab From bc21085398cfa976893de3b097a6fc3100240784 Mon Sep 17 00:00:00 2001 From: Andreas Mahnke <andreas.mahnke@leuphana.de> Date: Wed, 25 Oct 2023 16:10:05 +0200 Subject: [PATCH 145/183] Support type-bind of elements based on repeatable list type-bound element (CHECKBOX_GROUP) (cherry picked from commit 09aaa46875146081cf812ed6f904178740ae8d30) --- .../ds-dynamic-type-bind-relation.service.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-type-bind-relation.service.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-type-bind-relation.service.ts index d5e735ed1a..5f7e2e3e22 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-type-bind-relation.service.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-type-bind-relation.service.ts @@ -183,7 +183,8 @@ export class DsDynamicTypeBindRelationService { const initValue = (hasNoValue(relatedModel.value) || typeof relatedModel.value === 'string') ? relatedModel.value : (Array.isArray(relatedModel.value) ? relatedModel.value : relatedModel.value.value); - const valueChanges = relatedModel.valueChanges.pipe( + const updateSubject = (relatedModel.type === 'CHECKBOX_GROUP' ? relatedModel.valueUpdates : relatedModel.valueChanges); + const valueChanges = updateSubject.pipe( startWith(initValue) ); -- GitLab From 0d0c2dac17ecd9af8217e9231288af9bed865a50 Mon Sep 17 00:00:00 2001 From: Davide Negretti <davide.negretti@4science.com> Date: Mon, 30 Oct 2023 18:27:00 +0100 Subject: [PATCH 146/183] [DURACOM-195] Simplify vertical spacing in header and breadcrumbs (cherry picked from commit a3e6d9b09a2d6e529dc28f7d1a1924b2830077e6) --- src/app/breadcrumbs/breadcrumbs.component.html | 2 +- src/app/breadcrumbs/breadcrumbs.component.scss | 5 ++--- src/app/home-page/home-news/home-news.component.html | 2 +- src/app/home-page/home-news/home-news.component.scss | 2 -- src/app/root/root.component.html | 4 ++-- src/styles/_custom_variables.scss | 2 +- src/styles/_global-styles.scss | 10 ++++++++-- .../app/home-page/home-news/home-news.component.html | 2 +- .../app/home-page/home-news/home-news.component.scss | 1 - 9 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/app/breadcrumbs/breadcrumbs.component.html b/src/app/breadcrumbs/breadcrumbs.component.html index bff792eeff..3bba89622f 100644 --- a/src/app/breadcrumbs/breadcrumbs.component.html +++ b/src/app/breadcrumbs/breadcrumbs.component.html @@ -1,6 +1,6 @@ <ng-container *ngVar="(breadcrumbs$ | async) as breadcrumbs"> <nav *ngIf="(showBreadcrumbs$ | async)" aria-label="breadcrumb" class="nav-breadcrumb"> - <ol class="container breadcrumb"> + <ol class="container breadcrumb my-0"> <ng-container *ngTemplateOutlet="breadcrumbs?.length > 0 ? breadcrumb : activeBreadcrumb; context: {text: 'home.breadcrumbs', url: '/'}"></ng-container> <ng-container *ngFor="let bc of breadcrumbs; let last = last;"> diff --git a/src/app/breadcrumbs/breadcrumbs.component.scss b/src/app/breadcrumbs/breadcrumbs.component.scss index 52634f2a5b..ac9cb42ce5 100644 --- a/src/app/breadcrumbs/breadcrumbs.component.scss +++ b/src/app/breadcrumbs/breadcrumbs.component.scss @@ -4,9 +4,8 @@ .breadcrumb { border-radius: 0; - margin-top: calc(-1 * var(--ds-content-spacing)); - padding-bottom: calc(var(--ds-content-spacing) / 3); - padding-top: calc(var(--ds-content-spacing) / 3); + padding-bottom: calc(var(--ds-content-spacing) / 2); + padding-top: calc(var(--ds-content-spacing) / 2); background-color: var(--ds-breadcrumb-bg); } diff --git a/src/app/home-page/home-news/home-news.component.html b/src/app/home-page/home-news/home-news.component.html index 6bee3cd76f..8d3f99b60d 100644 --- a/src/app/home-page/home-news/home-news.component.html +++ b/src/app/home-page/home-news/home-news.component.html @@ -1,4 +1,4 @@ -<div class="jumbotron jumbotron-fluid"> +<div class="jumbotron jumbotron-fluid mt-ncs"> <div class="container"> <div class="d-flex flex-wrap"> <div> diff --git a/src/app/home-page/home-news/home-news.component.scss b/src/app/home-page/home-news/home-news.component.scss index 9ab24daa25..911a2fafc5 100644 --- a/src/app/home-page/home-news/home-news.component.scss +++ b/src/app/home-page/home-news/home-news.component.scss @@ -1,7 +1,5 @@ :host { display: block; - margin-top: calc(-1 * var(--ds-content-spacing)); - margin-bottom: calc(-1 * var(--ds-content-spacing)); } .display-3 { diff --git a/src/app/root/root.component.html b/src/app/root/root.component.html index bf49e507c0..ef8e33704f 100644 --- a/src/app/root/root.component.html +++ b/src/app/root/root.component.html @@ -6,8 +6,8 @@ <div class="inner-wrapper"> <ds-system-wide-alert-banner></ds-system-wide-alert-banner> <ds-themed-header-navbar-wrapper></ds-themed-header-navbar-wrapper> - <main class="main-content"> - <ds-themed-breadcrumbs></ds-themed-breadcrumbs> + <ds-themed-breadcrumbs></ds-themed-breadcrumbs> + <main class="main-content my-cs"> <div class="container d-flex justify-content-center align-items-center h-100" *ngIf="shouldShowRouteLoader"> <ds-themed-loading [showMessage]="false"></ds-themed-loading> diff --git a/src/styles/_custom_variables.scss b/src/styles/_custom_variables.scss index 778ef6e9e3..ad9a074e1b 100644 --- a/src/styles/_custom_variables.scss +++ b/src/styles/_custom_variables.scss @@ -1,5 +1,5 @@ :root { - --ds-content-spacing: #{$spacer * 1.5}; + --ds-content-spacing: #{$spacer}; // equivalent to Bootstrap spaces of size 3 --ds-button-height: #{$input-btn-padding-y * 2 + $input-btn-line-height + calculateRem($input-btn-border-width*2)}; diff --git a/src/styles/_global-styles.scss b/src/styles/_global-styles.scss index 81d4fe0787..57a8455a19 100644 --- a/src/styles/_global-styles.scss +++ b/src/styles/_global-styles.scss @@ -26,8 +26,6 @@ body { .main-content { z-index: var(--ds-main-z-index); flex: 1 1 100%; - margin-top: var(--ds-content-spacing); - margin-bottom: var(--ds-content-spacing); } .alert.hide { @@ -317,3 +315,11 @@ ul.dso-edit-menu-dropdown > li .nav-item.nav-link { padding-top: 0.125rem !important; padding-bottom: 0.125rem !important; } + +// Margin utility classes based on DSpace content spacing +.mt-cs { margin-top: var(--ds-content-spacing); } +.mb-cs { margin-bottom: var(--ds-content-spacing); } +.my-cs { margin-top: var(--ds-content-spacing); margin-bottom: var(--ds-content-spacing); } +.mt-ncs { margin-top: calc(var(--ds-content-spacing) * -1); } +.mb-ncs { margin-bottom: calc(var(--ds-content-spacing) * -1); } +.my-ncs { margin-top: calc(var(--ds-content-spacing) * -1); margin-bottom: calc(var(--ds-content-spacing) * -1); } diff --git a/src/themes/dspace/app/home-page/home-news/home-news.component.html b/src/themes/dspace/app/home-page/home-news/home-news.component.html index ef576ed99c..29711c1bf6 100644 --- a/src/themes/dspace/app/home-page/home-news/home-news.component.html +++ b/src/themes/dspace/app/home-page/home-news/home-news.component.html @@ -1,4 +1,4 @@ -<div class="background-image-container"> +<div class="background-image-container mt-ncs"> <div class="container"> <div class="jumbotron jumbotron-fluid"> <div class="d-flex flex-wrap"> diff --git a/src/themes/dspace/app/home-page/home-news/home-news.component.scss b/src/themes/dspace/app/home-page/home-news/home-news.component.scss index 93ec1763f3..3c3aa8b445 100644 --- a/src/themes/dspace/app/home-page/home-news/home-news.component.scss +++ b/src/themes/dspace/app/home-page/home-news/home-news.component.scss @@ -1,6 +1,5 @@ :host { display: block; - margin-top: calc(var(--ds-content-spacing) * -1); div.background-image-container { color: white; -- GitLab From 5f46b638e436ce04de4f6d59e7733237283276b9 Mon Sep 17 00:00:00 2001 From: Davide Negretti <davide.negretti@4science.com> Date: Tue, 31 Oct 2023 15:32:41 +0100 Subject: [PATCH 147/183] [DURACOM-180] Prevent header from covering media viewer controls (dspace theme) (cherry picked from commit 0208a784378bf3f6226e6d9020523ae0fd38f9b4) --- .../header-navbar-wrapper.component.html | 2 +- .../header-navbar-wrapper.component.scss | 7 +++++++ .../header-nav-wrapper/header-navbar-wrapper.component.ts | 2 +- src/themes/dspace/app/navbar/navbar.component.scss | 8 ++++++-- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/themes/dspace/app/header-nav-wrapper/header-navbar-wrapper.component.html b/src/themes/dspace/app/header-nav-wrapper/header-navbar-wrapper.component.html index 091d152258..8c10efcb42 100644 --- a/src/themes/dspace/app/header-nav-wrapper/header-navbar-wrapper.component.html +++ b/src/themes/dspace/app/header-nav-wrapper/header-navbar-wrapper.component.html @@ -1,3 +1,3 @@ -<div [ngClass]="{'open': !(isNavBarCollapsed | async)}"> +<div [class.open]="!(isNavBarCollapsed | async)" id="header-navbar-wrapper"> <ds-themed-header></ds-themed-header> </div> diff --git a/src/themes/dspace/app/header-nav-wrapper/header-navbar-wrapper.component.scss b/src/themes/dspace/app/header-nav-wrapper/header-navbar-wrapper.component.scss index e69de29bb2..1daf4ebdbc 100644 --- a/src/themes/dspace/app/header-nav-wrapper/header-navbar-wrapper.component.scss +++ b/src/themes/dspace/app/header-nav-wrapper/header-navbar-wrapper.component.scss @@ -0,0 +1,7 @@ +:host { + // The header-navbar-wrapper should not have a z-index, otherwise it would cover the media viewer despite its higher z-index + position: relative; + div#header-navbar-wrapper { + border-bottom: 5px var(--ds-header-navbar-border-bottom-color) solid; + } +} diff --git a/src/themes/dspace/app/header-nav-wrapper/header-navbar-wrapper.component.ts b/src/themes/dspace/app/header-nav-wrapper/header-navbar-wrapper.component.ts index 57ade022ae..36e23e174a 100644 --- a/src/themes/dspace/app/header-nav-wrapper/header-navbar-wrapper.component.ts +++ b/src/themes/dspace/app/header-nav-wrapper/header-navbar-wrapper.component.ts @@ -6,7 +6,7 @@ import { HeaderNavbarWrapperComponent as BaseComponent } from '../../../../app/h */ @Component({ selector: 'ds-header-navbar-wrapper', - styleUrls: ['../../../../app/header-nav-wrapper/header-navbar-wrapper.component.scss'], + styleUrls: ['header-navbar-wrapper.component.scss'], templateUrl: 'header-navbar-wrapper.component.html', }) export class HeaderNavbarWrapperComponent extends BaseComponent { diff --git a/src/themes/dspace/app/navbar/navbar.component.scss b/src/themes/dspace/app/navbar/navbar.component.scss index 300d1f419a..28ead2f1de 100644 --- a/src/themes/dspace/app/navbar/navbar.component.scss +++ b/src/themes/dspace/app/navbar/navbar.component.scss @@ -1,7 +1,9 @@ nav.navbar { - border-top: 1px var(--ds-header-navbar-border-top-color) solid; - border-bottom: 5px var(--ds-header-navbar-border-bottom-color) solid; align-items: baseline; + + .navbar-inner-container { + border-top: 1px var(--ds-header-navbar-border-top-color) solid; + } } .navbar-nav { @@ -16,8 +18,10 @@ nav.navbar { position: absolute; overflow: hidden; height: 0; + z-index: var(--ds-nav-z-index); &.open { height: 100vh; //doesn't matter because wrapper is sticky + border-bottom: 5px var(--ds-header-navbar-border-bottom-color) solid; // open navbar covers header-navbar-wrapper border } } } -- GitLab From c6ade09e4a8cd050c701f2684aa35522695a1d5c Mon Sep 17 00:00:00 2001 From: Davide Negretti <davide.negretti@4science.com> Date: Thu, 9 Nov 2023 15:24:22 +0100 Subject: [PATCH 148/183] [DURACOM-180] Prevent header from covering media viewer controls (base theme) (cherry picked from commit c042cd8d1154af59310b162c9a97e7d3820a1592) --- .../header-nav-wrapper/header-navbar-wrapper.component.html | 2 +- .../header-nav-wrapper/header-navbar-wrapper.component.scss | 4 +++- src/app/navbar/navbar.component.scss | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/app/header-nav-wrapper/header-navbar-wrapper.component.html b/src/app/header-nav-wrapper/header-navbar-wrapper.component.html index f99070b738..5756ad32b0 100644 --- a/src/app/header-nav-wrapper/header-navbar-wrapper.component.html +++ b/src/app/header-nav-wrapper/header-navbar-wrapper.component.html @@ -1,4 +1,4 @@ -<div [ngClass]="{'open': !(isNavBarCollapsed | async)}"> +<div [ngClass]="{'open': !(isNavBarCollapsed | async)}" id="header-navbar-wrapper"> <ds-themed-header></ds-themed-header> <ds-themed-navbar></ds-themed-navbar> </div> diff --git a/src/app/header-nav-wrapper/header-navbar-wrapper.component.scss b/src/app/header-nav-wrapper/header-navbar-wrapper.component.scss index b02b3c378c..c1bc9c7e90 100644 --- a/src/app/header-nav-wrapper/header-navbar-wrapper.component.scss +++ b/src/app/header-nav-wrapper/header-navbar-wrapper.component.scss @@ -1,4 +1,6 @@ :host { position: relative; - z-index: var(--ds-nav-z-index); + div#header-navbar-wrapper { + border-bottom: 1px var(--ds-header-navbar-border-bottom-color) solid; + } } diff --git a/src/app/navbar/navbar.component.scss b/src/app/navbar/navbar.component.scss index 42e72aaffd..dac8c0927f 100644 --- a/src/app/navbar/navbar.component.scss +++ b/src/app/navbar/navbar.component.scss @@ -1,6 +1,5 @@ nav.navbar { background-color: var(--ds-navbar-bg); - border-bottom: 1px var(--ds-header-navbar-border-bottom-color) solid; align-items: baseline; } @@ -12,9 +11,11 @@ nav.navbar { position: absolute; overflow: hidden; height: 0; + z-index: var(--ds-nav-z-index); &.open { height: auto; min-height: 100vh; //doesn't matter because wrapper is sticky + border-bottom: 1px var(--ds-header-navbar-border-bottom-color) solid; // open navbar covers header-navbar-wrapper border } } } -- GitLab From 1d0ca049920a5ce9e0b65e8fe271aa17958f18e2 Mon Sep 17 00:00:00 2001 From: William Welling <wwelling@tamu.edu> Date: Fri, 3 Nov 2023 08:21:11 -0500 Subject: [PATCH 149/183] Update condition to render show more node `loadingNode` ends up being the current `node` after clicking it preventing it from rendering when more pages available. Update community list component spec Make the show more flat node id unique The nodes with same id are conflicting when added to the tree. Clicking on the second with same id places the show more button under the wrong branch and expands the wrong page. (cherry picked from commit 11d3771e72e3f54f73bb60a23abd970eff5d66a3) --- src/app/community-list-page/community-list-service.ts | 5 +++-- .../community-list/community-list.component.html | 2 +- .../community-list/community-list.component.spec.ts | 9 +++++---- .../community-list/community-list.component.ts | 7 +++---- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/app/community-list-page/community-list-service.ts b/src/app/community-list-page/community-list-service.ts index 67715716da..bbf1c7cdb5 100644 --- a/src/app/community-list-page/community-list-service.ts +++ b/src/app/community-list-page/community-list-service.ts @@ -24,6 +24,7 @@ import { FlatNode } from './flat-node.model'; import { ShowMoreFlatNode } from './show-more-flat-node.model'; import { FindListOptions } from '../core/data/find-list-options.model'; import { AppConfig, APP_CONFIG } from 'src/config/app-config.interface'; +import { v4 as uuidv4 } from 'uuid'; // Helper method to combine and flatten an array of observables of flatNode arrays export const combineAndFlatten = (obsList: Observable<FlatNode[]>[]): Observable<FlatNode[]> => @@ -186,7 +187,7 @@ export class CommunityListService { return this.transformCommunity(community, level, parent, expandedNodes); }); if (currentPage < listOfPaginatedCommunities.totalPages && currentPage === listOfPaginatedCommunities.currentPage) { - obsList = [...obsList, observableOf([showMoreFlatNode('community', level, parent)])]; + obsList = [...obsList, observableOf([showMoreFlatNode(`community-${uuidv4()}`, level, parent)])]; } return combineAndFlatten(obsList); @@ -257,7 +258,7 @@ export class CommunityListService { let nodes = rd.payload.page .map((collection: Collection) => toFlatNode(collection, observableOf(false), level + 1, false, communityFlatNode)); if (currentCollectionPage < rd.payload.totalPages && currentCollectionPage === rd.payload.currentPage) { - nodes = [...nodes, showMoreFlatNode('collection', level + 1, communityFlatNode)]; + nodes = [...nodes, showMoreFlatNode(`collection-${uuidv4()}`, level + 1, communityFlatNode)]; } return nodes; } else { diff --git a/src/app/community-list-page/community-list/community-list.component.html b/src/app/community-list-page/community-list/community-list.component.html index 18e9e84577..de67607bb4 100644 --- a/src/app/community-list-page/community-list/community-list.component.html +++ b/src/app/community-list-page/community-list/community-list.component.html @@ -8,7 +8,7 @@ <span class="fa fa-chevron-right invisible" aria-hidden="true"></span> </button> <div class="align-middle pt-2"> - <button *ngIf="node!==loadingNode" (click)="getNextPage(node)" + <button *ngIf="!(dataSource.loading$ | async)" (click)="getNextPage(node)" class="btn btn-outline-primary btn-sm" role="button"> <i class="fas fa-angle-down"></i> {{ 'communityList.showMore' | translate }} </button> diff --git a/src/app/community-list-page/community-list/community-list.component.spec.ts b/src/app/community-list-page/community-list/community-list.component.spec.ts index ce6b27dbeb..fb47f4994d 100644 --- a/src/app/community-list-page/community-list/community-list.component.spec.ts +++ b/src/app/community-list-page/community-list/community-list.component.spec.ts @@ -17,6 +17,7 @@ import { By } from '@angular/platform-browser'; import { isEmpty, isNotEmpty } from '../../shared/empty.util'; import { FlatNode } from '../flat-node.model'; import { RouterLinkWithHref } from '@angular/router'; +import { v4 as uuidv4 } from 'uuid'; describe('CommunityListComponent', () => { let component: CommunityListComponent; @@ -138,7 +139,7 @@ describe('CommunityListComponent', () => { } if (expandedNodes === null || isEmpty(expandedNodes)) { if (showMoreTopComNode) { - return observableOf([...mockTopFlatnodesUnexpanded.slice(0, endPageIndex), showMoreFlatNode('community', 0, null)]); + return observableOf([...mockTopFlatnodesUnexpanded.slice(0, endPageIndex), showMoreFlatNode(`community-${uuidv4()}`, 0, null)]); } else { return observableOf(mockTopFlatnodesUnexpanded.slice(0, endPageIndex)); } @@ -165,21 +166,21 @@ describe('CommunityListComponent', () => { const endSubComIndex = this.pageSize * expandedParent.currentCommunityPage; flatnodes = [...flatnodes, ...subComFlatnodes.slice(0, endSubComIndex)]; if (subComFlatnodes.length > endSubComIndex) { - flatnodes = [...flatnodes, showMoreFlatNode('community', topNode.level + 1, expandedParent)]; + flatnodes = [...flatnodes, showMoreFlatNode(`community-${uuidv4()}`, topNode.level + 1, expandedParent)]; } } if (isNotEmpty(collFlatnodes)) { const endColIndex = this.pageSize * expandedParent.currentCollectionPage; flatnodes = [...flatnodes, ...collFlatnodes.slice(0, endColIndex)]; if (collFlatnodes.length > endColIndex) { - flatnodes = [...flatnodes, showMoreFlatNode('collection', topNode.level + 1, expandedParent)]; + flatnodes = [...flatnodes, showMoreFlatNode(`collection-${uuidv4()}`, topNode.level + 1, expandedParent)]; } } } } }); if (showMoreTopComNode) { - flatnodes = [...flatnodes, showMoreFlatNode('community', 0, null)]; + flatnodes = [...flatnodes, showMoreFlatNode(`community-${uuidv4()}`, 0, null)]; } return observableOf(flatnodes); } diff --git a/src/app/community-list-page/community-list/community-list.component.ts b/src/app/community-list-page/community-list/community-list.component.ts index 90dd6b3c05..10ffb5e0b4 100644 --- a/src/app/community-list-page/community-list/community-list.component.ts +++ b/src/app/community-list-page/community-list/community-list.component.ts @@ -111,19 +111,18 @@ export class CommunityListComponent implements OnInit, OnDestroy { getNextPage(node: FlatNode): void { this.loadingNode = node; if (node.parent != null) { - if (node.id === 'collection') { + if (node.id.startsWith('collection')) { const parentNodeInExpandedNodes = this.expandedNodes.find((node2: FlatNode) => node.parent.id === node2.id); parentNodeInExpandedNodes.currentCollectionPage++; } - if (node.id === 'community') { + if (node.id.startsWith('community')) { const parentNodeInExpandedNodes = this.expandedNodes.find((node2: FlatNode) => node.parent.id === node2.id); parentNodeInExpandedNodes.currentCommunityPage++; } - this.dataSource.loadCommunities(this.paginationConfig, this.expandedNodes); } else { this.paginationConfig.currentPage++; - this.dataSource.loadCommunities(this.paginationConfig, this.expandedNodes); } + this.dataSource.loadCommunities(this.paginationConfig, this.expandedNodes); } } -- GitLab From b6d8c7d18e1faa6844c8ed0be3ef7e753d0c176c Mon Sep 17 00:00:00 2001 From: William Welling <wwelling@tamu.edu> Date: Thu, 9 Nov 2023 11:24:31 -0600 Subject: [PATCH 150/183] Filter expanded nodes by id Co-Authored-By: Art Lowel <1567693+artlowel@users.noreply.github.com> (cherry picked from commit dc2ef989e612c305ae98932be491db15a1fc74a4) --- .../community-list/community-list.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/community-list-page/community-list/community-list.component.ts b/src/app/community-list-page/community-list/community-list.component.ts index 10ffb5e0b4..6b5c6578e1 100644 --- a/src/app/community-list-page/community-list/community-list.component.ts +++ b/src/app/community-list-page/community-list/community-list.component.ts @@ -84,7 +84,7 @@ export class CommunityListComponent implements OnInit, OnDestroy { toggleExpanded(node: FlatNode) { this.loadingNode = node; if (node.isExpanded) { - this.expandedNodes = this.expandedNodes.filter((node2) => node2.name !== node.name); + this.expandedNodes = this.expandedNodes.filter((node2) => node2.id !== node.id); node.isExpanded = false; } else { this.expandedNodes.push(node); -- GitLab From e545c42aae5151cf4933910fd0ba8d5336e1958d Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Wed, 8 Nov 2023 23:43:17 +0100 Subject: [PATCH 151/183] Added skip to main content button --- .../feedback-form/feedback-form.component.html | 2 +- src/app/root/root.component.html | 6 +++++- src/app/root/root.component.scss | 16 ++++++++++++++++ src/app/root/root.component.ts | 8 ++++++++ src/assets/i18n/en.json5 | 2 ++ src/styles/_global-styles.scss | 2 +- 6 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/app/info/feedback/feedback-form/feedback-form.component.html b/src/app/info/feedback/feedback-form/feedback-form.component.html index 02745f2580..a3bab3a6a3 100644 --- a/src/app/info/feedback/feedback-form/feedback-form.component.html +++ b/src/app/info/feedback/feedback-form/feedback-form.component.html @@ -1,5 +1,5 @@ <div class="row row-offcanvas row-offcanvas-right"> - <div class="col-xs-12 col-sm-12 col-md-9 main-content"> + <div class="col-xs-12 col-sm-12 col-md-9"> <form class="primary" [formGroup]="feedbackForm" (ngSubmit)="createFeedback()"> <h2>{{ 'info.feedback.head' | translate }}</h2> <p>{{ 'info.feedback.info' | translate }}</p> diff --git a/src/app/root/root.component.html b/src/app/root/root.component.html index ef8e33704f..d6d0586892 100644 --- a/src/app/root/root.component.html +++ b/src/app/root/root.component.html @@ -1,3 +1,7 @@ +<button (click)="skipToMainContent()" class="btn btn-primary" id="skip-to-main-content"> + {{ 'root.skip-to-content' | translate }} +</button> + <div class="outer-wrapper" [class.d-none]="shouldShowFullscreenLoader" [@slideSidebarPadding]="{ value: (!(sidebarVisible | async) ? 'hidden' : (slideSidebarOver | async) ? 'shown' : 'expanded'), params: {collapsedSidebarWidth: (collapsedSidebarWidth | async), totalSidebarWidth: (totalSidebarWidth | async)} @@ -7,7 +11,7 @@ <ds-system-wide-alert-banner></ds-system-wide-alert-banner> <ds-themed-header-navbar-wrapper></ds-themed-header-navbar-wrapper> <ds-themed-breadcrumbs></ds-themed-breadcrumbs> - <main class="main-content my-cs"> + <main class="my-cs" id="main-content"> <div class="container d-flex justify-content-center align-items-center h-100" *ngIf="shouldShowRouteLoader"> <ds-themed-loading [showMessage]="false"></ds-themed-loading> diff --git a/src/app/root/root.component.scss b/src/app/root/root.component.scss index e69de29bb2..9eb198417a 100644 --- a/src/app/root/root.component.scss +++ b/src/app/root/root.component.scss @@ -0,0 +1,16 @@ +#skip-to-main-content { + position: absolute; + top: -40px; + left: 0; + opacity: 0; + transition: opacity 0.3s; + z-index: calc(var(--ds-nav-z-index) + 1); + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-left-radius: 0; + + &:focus { + opacity: 1; + top: 0; + } +} diff --git a/src/app/root/root.component.ts b/src/app/root/root.component.ts index 3c2d65fc1f..aef43b510a 100644 --- a/src/app/root/root.component.ts +++ b/src/app/root/root.component.ts @@ -78,4 +78,12 @@ export class RootComponent implements OnInit { this.shouldShowRouteLoader = false; } } + + skipToMainContent() { + const mainContent = document.getElementById('main-content'); + if (mainContent) { + mainContent.tabIndex = -1; + mainContent.focus(); + } + } } diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 741ff0ffc9..5c2ec4a7c4 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -3624,6 +3624,8 @@ "resource-policies.table.headers.title.for.collection": "Policies for Collection", + "root.skip-to-content": "Skip to main content", + "search.description": "", "search.switch-configuration.title": "Show", diff --git a/src/styles/_global-styles.scss b/src/styles/_global-styles.scss index 57a8455a19..b6b2d143d4 100644 --- a/src/styles/_global-styles.scss +++ b/src/styles/_global-styles.scss @@ -23,7 +23,7 @@ body { position: relative; } -.main-content { +#main-content { z-index: var(--ds-main-z-index); flex: 1 1 100%; } -- GitLab From 139446118ba9b3c338e0b1a91387c5b566a27a55 Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Wed, 20 Sep 2023 14:28:08 -0500 Subject: [PATCH 152/183] Limit getMembers() and getSubgroups() to only fetching one object. These lists are only used to find the size of each (cherry picked from commit 0da7c15f2eff6229caafccae1be8dd7b10ebc629) --- .../group-registry/groups-registry.component.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/app/access-control/group-registry/groups-registry.component.ts b/src/app/access-control/group-registry/groups-registry.component.ts index ccfd155e39..06a048ad72 100644 --- a/src/app/access-control/group-registry/groups-registry.component.ts +++ b/src/app/access-control/group-registry/groups-registry.component.ts @@ -216,18 +216,28 @@ export class GroupsRegistryComponent implements OnInit, OnDestroy { /** * Get the members (epersons embedded value of a group) + * NOTE: At this time we only grab the *first* member in order to receive the `totalElements` value + * needed for our HTML template. * @param group */ getMembers(group: Group): Observable<RemoteData<PaginatedList<EPerson>>> { - return this.ePersonDataService.findListByHref(group._links.epersons.href).pipe(getFirstSucceededRemoteData()); + return this.ePersonDataService.findListByHref(group._links.epersons.href, { + currentPage: 1, + elementsPerPage: 1, + }).pipe(getFirstSucceededRemoteData()); } /** * Get the subgroups (groups embedded value of a group) + * NOTE: At this time we only grab the *first* subgroup in order to receive the `totalElements` value + * needed for our HTML template. * @param group */ getSubgroups(group: Group): Observable<RemoteData<PaginatedList<Group>>> { - return this.groupService.findListByHref(group._links.subgroups.href).pipe(getFirstSucceededRemoteData()); + return this.groupService.findListByHref(group._links.subgroups.href, { + currentPage: 1, + elementsPerPage: 1, + }).pipe(getFirstSucceededRemoteData()); } /** -- GitLab From d7ccce1f8f6b4144c2ae8a886232e17122b15dd1 Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Wed, 20 Sep 2023 14:30:54 -0500 Subject: [PATCH 153/183] Remove isSubgroupOfGroup() functionality as it loads every subgroup at once. Bad peformance for large groups (cherry picked from commit 97479a29453eaf18031e095b612c1c054f9bb31f) --- .../subgroups-list.component.html | 9 +---- .../subgroup-list/subgroups-list.component.ts | 33 ++----------------- 2 files changed, 3 insertions(+), 39 deletions(-) diff --git a/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.html b/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.html index d009f0283e..8268eb5eb4 100644 --- a/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.html +++ b/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.html @@ -62,16 +62,9 @@ <td class="align-middle">{{ dsoNameService.getName((group.object | async)?.payload) }}</td> <td class="align-middle"> <div class="btn-group edit-field"> - <button *ngIf="(isSubgroupOfGroup(group) | async) && !(isActiveGroup(group) | async)" - (click)="deleteSubgroupFromGroup(group)" - class="btn btn-outline-danger btn-sm deleteButton" - title="{{messagePrefix + '.table.edit.buttons.remove' | translate: { name: dsoNameService.getName(group) } }}"> - <i class="fas fa-trash-alt fa-fw"></i> - </button> - <span *ngIf="(isActiveGroup(group) | async)">{{ messagePrefix + '.table.edit.currentGroup' | translate }}</span> - <button *ngIf="!(isSubgroupOfGroup(group) | async) && !(isActiveGroup(group) | async)" + <button *ngIf="!(isActiveGroup(group) | async)" (click)="addSubgroupToGroup(group)" class="btn btn-outline-primary btn-sm addButton" title="{{messagePrefix + '.table.edit.buttons.add' | translate: { name: dsoNameService.getName(group) } }}"> diff --git a/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts b/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts index 0cff730c62..83df0d8cdd 100644 --- a/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts +++ b/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts @@ -3,15 +3,13 @@ import { UntypedFormBuilder } from '@angular/forms'; import { Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; import { BehaviorSubject, Observable, of as observableOf, Subscription } from 'rxjs'; -import { map, mergeMap, switchMap, take } from 'rxjs/operators'; +import { mergeMap, switchMap, take } from 'rxjs/operators'; import { PaginatedList } from '../../../../core/data/paginated-list.model'; import { RemoteData } from '../../../../core/data/remote-data'; import { GroupDataService } from '../../../../core/eperson/group-data.service'; import { Group } from '../../../../core/eperson/models/group.model'; import { - getFirstCompletedRemoteData, - getFirstSucceededRemoteData, - getRemoteDataPayload + getFirstCompletedRemoteData } from '../../../../core/shared/operators'; import { NotificationsService } from '../../../../shared/notifications/notifications.service'; import { PaginationComponentOptions } from '../../../../shared/pagination/pagination-component-options.model'; @@ -131,33 +129,6 @@ export class SubgroupsListComponent implements OnInit, OnDestroy { })); } - /** - * Whether or not the given group is a subgroup of the group currently being edited - * @param possibleSubgroup Group that is a possible subgroup (being tested) of the group currently being edited - */ - isSubgroupOfGroup(possibleSubgroup: Group): Observable<boolean> { - return this.groupDataService.getActiveGroup().pipe(take(1), - mergeMap((activeGroup: Group) => { - if (activeGroup != null) { - if (activeGroup.uuid === possibleSubgroup.uuid) { - return observableOf(false); - } else { - return this.groupDataService.findListByHref(activeGroup._links.subgroups.href, { - currentPage: 1, - elementsPerPage: 9999 - }) - .pipe( - getFirstSucceededRemoteData(), - getRemoteDataPayload(), - map((listTotalGroups: PaginatedList<Group>) => listTotalGroups.page.filter((groupInList: Group) => groupInList.id === possibleSubgroup.id)), - map((groups: Group[]) => groups.length > 0)); - } - } else { - return observableOf(false); - } - })); - } - /** * Whether or not the given group is the current group being edited * @param group Group that is possibly the current group being edited -- GitLab From c02cfff8da241b29cf787706a750ad3e6672f228 Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Wed, 20 Sep 2023 15:17:34 -0500 Subject: [PATCH 154/183] Fix bug where linked Community/Collection info was sometimes listed many times in a row (cherry picked from commit 229236634a06f5468dc078eb5d814981ecf3d497) --- .../group-form/group-form.component.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/app/access-control/group-registry/group-form/group-form.component.ts b/src/app/access-control/group-registry/group-form/group-form.component.ts index 0758a455f5..925a8bb859 100644 --- a/src/app/access-control/group-registry/group-form/group-form.component.ts +++ b/src/app/access-control/group-registry/group-form/group-form.component.ts @@ -230,12 +230,14 @@ export class GroupFormComponent implements OnInit, OnDestroy { this.groupBeingEdited = activeGroup; if (linkedObject?.name) { - this.formBuilderService.insertFormGroupControl(1, this.formGroup, this.formModel, this.groupCommunity); - this.formGroup.patchValue({ - groupName: activeGroup.name, - groupCommunity: linkedObject?.name ?? '', - groupDescription: activeGroup.firstMetadataValue('dc.description'), - }); + if (!this.formGroup.controls.groupCommunity) { + this.formBuilderService.insertFormGroupControl(1, this.formGroup, this.formModel, this.groupCommunity); + this.formGroup.patchValue({ + groupName: activeGroup.name, + groupCommunity: linkedObject?.name ?? '', + groupDescription: activeGroup.firstMetadataValue('dc.description'), + }); + } } else { this.formModel = [ this.groupName, -- GitLab From ac6a7be7aaf4e1b6a4b6090ef5993259fa99979c Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Fri, 22 Sep 2023 12:13:39 -0500 Subject: [PATCH 155/183] Remove "isMemberOfGroup()" from members-list component. (cherry picked from commit 43d37196fbaf45648dbd5e604a3ee8d5df2a129e) --- .../members-list/members-list.component.html | 21 +------ .../members-list/members-list.component.ts | 56 +++---------------- 2 files changed, 11 insertions(+), 66 deletions(-) diff --git a/src/app/access-control/group-registry/group-form/members-list/members-list.component.html b/src/app/access-control/group-registry/group-form/members-list/members-list.component.html index cc9bf34d64..b90a3e405b 100644 --- a/src/app/access-control/group-registry/group-form/members-list/members-list.component.html +++ b/src/app/access-control/group-registry/group-form/members-list/members-list.component.html @@ -69,16 +69,7 @@ </td> <td class="align-middle"> <div class="btn-group edit-field"> - <button *ngIf="ePerson.memberOfGroup" - (click)="deleteMemberFromGroup(ePerson)" - [disabled]="actionConfig.remove.disabled" - [ngClass]="['btn btn-sm', actionConfig.remove.css]" - title="{{messagePrefix + '.table.edit.buttons.remove' | translate: { name: dsoNameService.getName(ePerson.eperson) } }}"> - <i [ngClass]="actionConfig.remove.icon"></i> - </button> - - <button *ngIf="!ePerson.memberOfGroup" - (click)="addMemberToGroup(ePerson)" + <button (click)="addMemberToGroup(ePerson)" [disabled]="actionConfig.add.disabled" [ngClass]="['btn btn-sm', actionConfig.add.css]" title="{{messagePrefix + '.table.edit.buttons.add' | translate: { name: dsoNameService.getName(ePerson.eperson) } }}"> @@ -133,20 +124,12 @@ </td> <td class="align-middle"> <div class="btn-group edit-field"> - <button *ngIf="ePerson.memberOfGroup" - (click)="deleteMemberFromGroup(ePerson)" + <button (click)="deleteMemberFromGroup(ePerson)" [disabled]="actionConfig.remove.disabled" [ngClass]="['btn btn-sm', actionConfig.remove.css]" title="{{messagePrefix + '.table.edit.buttons.remove' | translate: { name: dsoNameService.getName(ePerson.eperson) } }}"> <i [ngClass]="actionConfig.remove.icon"></i> </button> - <button *ngIf="!ePerson.memberOfGroup" - (click)="addMemberToGroup(ePerson)" - [disabled]="actionConfig.add.disabled" - [ngClass]="['btn btn-sm', actionConfig.add.css]" - title="{{messagePrefix + '.table.edit.buttons.add' | translate: { name: dsoNameService.getName(ePerson.eperson) } }}"> - <i [ngClass]="actionConfig.add.icon"></i> - </button> </div> </td> </tr> diff --git a/src/app/access-control/group-registry/group-form/members-list/members-list.component.ts b/src/app/access-control/group-registry/group-form/members-list/members-list.component.ts index b3e686c012..704a92d0f9 100644 --- a/src/app/access-control/group-registry/group-form/members-list/members-list.component.ts +++ b/src/app/access-control/group-registry/group-form/members-list/members-list.component.ts @@ -7,10 +7,9 @@ import { of as observableOf, Subscription, BehaviorSubject, - combineLatest as observableCombineLatest, - ObservedValueOf, + combineLatest as observableCombineLatest } from 'rxjs'; -import { defaultIfEmpty, map, mergeMap, switchMap, take } from 'rxjs/operators'; +import { defaultIfEmpty, map, switchMap, take } from 'rxjs/operators'; import { buildPaginatedList, PaginatedList } from '../../../../core/data/paginated-list.model'; import { RemoteData } from '../../../../core/data/remote-data'; import { EPersonDataService } from '../../../../core/eperson/eperson-data.service'; @@ -18,10 +17,8 @@ import { GroupDataService } from '../../../../core/eperson/group-data.service'; import { EPerson } from '../../../../core/eperson/models/eperson.model'; import { Group } from '../../../../core/eperson/models/group.model'; import { - getFirstSucceededRemoteData, getFirstCompletedRemoteData, - getAllCompletedRemoteData, - getRemoteDataPayload + getAllCompletedRemoteData } from '../../../../core/shared/operators'; import { NotificationsService } from '../../../../shared/notifications/notifications.service'; import { PaginationComponentOptions } from '../../../../shared/pagination/pagination-component-options.model'; @@ -191,14 +188,9 @@ export class MembersListComponent implements OnInit, OnDestroy { }), switchMap((epersonListRD: RemoteData<PaginatedList<EPerson>>) => { const dtos$ = observableCombineLatest([...epersonListRD.payload.page.map((member: EPerson) => { - const dto$: Observable<EpersonDtoModel> = observableCombineLatest( - this.isMemberOfGroup(member), (isMember: ObservedValueOf<Observable<boolean>>) => { - const epersonDtoModel: EpersonDtoModel = new EpersonDtoModel(); - epersonDtoModel.eperson = member; - epersonDtoModel.memberOfGroup = isMember; - return epersonDtoModel; - }); - return dto$; + const epersonDtoModel: EpersonDtoModel = new EpersonDtoModel(); + epersonDtoModel.eperson = member; + return observableOf(epersonDtoModel); })]); return dtos$.pipe(defaultIfEmpty([]), map((dtos: EpersonDtoModel[]) => { return buildPaginatedList(epersonListRD.payload.pageInfo, dtos); @@ -209,29 +201,6 @@ export class MembersListComponent implements OnInit, OnDestroy { })); } - /** - * Whether the given ePerson is a member of the group currently being edited - * @param possibleMember EPerson that is a possible member (being tested) of the group currently being edited - */ - isMemberOfGroup(possibleMember: EPerson): Observable<boolean> { - return this.groupDataService.getActiveGroup().pipe(take(1), - mergeMap((group: Group) => { - if (group != null) { - return this.ePersonDataService.findListByHref(group._links.epersons.href, { - currentPage: 1, - elementsPerPage: 9999 - }) - .pipe( - getFirstSucceededRemoteData(), - getRemoteDataPayload(), - map((listEPeopleInGroup: PaginatedList<EPerson>) => listEPeopleInGroup.page.filter((ePersonInList: EPerson) => ePersonInList.id === possibleMember.id)), - map((epeople: EPerson[]) => epeople.length > 0)); - } else { - return observableOf(false); - } - })); - } - /** * Unsubscribe from a subscription if it's still subscribed, and remove it from the map of * active subscriptions @@ -251,7 +220,6 @@ export class MembersListComponent implements OnInit, OnDestroy { * @param ePerson EPerson we want to delete as member from group that is currently being edited */ deleteMemberFromGroup(ePerson: EpersonDtoModel) { - ePerson.memberOfGroup = false; this.groupDataService.getActiveGroup().pipe(take(1)).subscribe((activeGroup: Group) => { if (activeGroup != null) { const response = this.groupDataService.deleteMemberFromGroup(activeGroup, ePerson.eperson); @@ -267,7 +235,6 @@ export class MembersListComponent implements OnInit, OnDestroy { * @param ePerson EPerson we want to add as member to group that is currently being edited */ addMemberToGroup(ePerson: EpersonDtoModel) { - ePerson.memberOfGroup = true; this.groupDataService.getActiveGroup().pipe(take(1)).subscribe((activeGroup: Group) => { if (activeGroup != null) { const response = this.groupDataService.addMemberToGroup(activeGroup, ePerson.eperson); @@ -321,14 +288,9 @@ export class MembersListComponent implements OnInit, OnDestroy { }), switchMap((epersonListRD: RemoteData<PaginatedList<EPerson>>) => { const dtos$ = observableCombineLatest([...epersonListRD.payload.page.map((member: EPerson) => { - const dto$: Observable<EpersonDtoModel> = observableCombineLatest( - this.isMemberOfGroup(member), (isMember: ObservedValueOf<Observable<boolean>>) => { - const epersonDtoModel: EpersonDtoModel = new EpersonDtoModel(); - epersonDtoModel.eperson = member; - epersonDtoModel.memberOfGroup = isMember; - return epersonDtoModel; - }); - return dto$; + const epersonDtoModel: EpersonDtoModel = new EpersonDtoModel(); + epersonDtoModel.eperson = member; + return observableOf(epersonDtoModel); })]); return dtos$.pipe(defaultIfEmpty([]), map((dtos: EpersonDtoModel[]) => { return buildPaginatedList(epersonListRD.payload.pageInfo, dtos); -- GitLab From 753a31f7f47c034fc53f9dbecf0161e2b10096f6 Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Mon, 25 Sep 2023 16:34:04 -0500 Subject: [PATCH 156/183] Remove unnecessary EpersonDtoModel. Rework code and tests to use EPerson instead. (cherry picked from commit bffae54b10ea7a4c883cb25512f9c9ac4949f97a) --- .../members-list/members-list.component.html | 48 +++--- .../members-list.component.spec.ts | 156 ++++++++---------- .../members-list/members-list.component.ts | 62 +++---- 3 files changed, 116 insertions(+), 150 deletions(-) diff --git a/src/app/access-control/group-registry/group-form/members-list/members-list.component.html b/src/app/access-control/group-registry/group-form/members-list/members-list.component.html index b90a3e405b..0f5010e08e 100644 --- a/src/app/access-control/group-registry/group-form/members-list/members-list.component.html +++ b/src/app/access-control/group-registry/group-form/members-list/members-list.component.html @@ -37,10 +37,10 @@ </div> </form> - <ds-pagination *ngIf="(ePeopleSearchDtos | async)?.totalElements > 0" + <ds-pagination *ngIf="(ePeopleSearch | async)?.totalElements > 0" [paginationOptions]="configSearch" - [pageInfoState]="(ePeopleSearchDtos | async)" - [collectionSize]="(ePeopleSearchDtos | async)?.totalElements" + [pageInfoState]="(ePeopleSearch | async)" + [collectionSize]="(ePeopleSearch | async)?.totalElements" [hideGear]="true" [hidePagerWhenSinglePage]="true"> @@ -55,24 +55,24 @@ </tr> </thead> <tbody> - <tr *ngFor="let ePerson of (ePeopleSearchDtos | async)?.page"> - <td class="align-middle">{{ePerson.eperson.id}}</td> + <tr *ngFor="let eperson of (ePeopleSearch | async)?.page"> + <td class="align-middle">{{eperson.id}}</td> <td class="align-middle"> - <a (click)="ePersonDataService.startEditingNewEPerson(ePerson.eperson)" + <a (click)="ePersonDataService.startEditingNewEPerson(eperson)" [routerLink]="[ePersonDataService.getEPeoplePageRouterLink()]"> - {{ dsoNameService.getName(ePerson.eperson) }} + {{ dsoNameService.getName(eperson) }} </a> </td> <td class="align-middle"> - {{messagePrefix + '.table.email' | translate}}: {{ ePerson.eperson.email ? ePerson.eperson.email : '-' }}<br/> - {{messagePrefix + '.table.netid' | translate}}: {{ ePerson.eperson.netid ? ePerson.eperson.netid : '-' }} + {{messagePrefix + '.table.email' | translate}}: {{ eperson.email ? eperson.email : '-' }}<br/> + {{messagePrefix + '.table.netid' | translate}}: {{ eperson.netid ? eperson.netid : '-' }} </td> <td class="align-middle"> <div class="btn-group edit-field"> - <button (click)="addMemberToGroup(ePerson)" + <button (click)="addMemberToGroup(eperson)" [disabled]="actionConfig.add.disabled" [ngClass]="['btn btn-sm', actionConfig.add.css]" - title="{{messagePrefix + '.table.edit.buttons.add' | translate: { name: dsoNameService.getName(ePerson.eperson) } }}"> + title="{{messagePrefix + '.table.edit.buttons.add' | translate: { name: dsoNameService.getName(eperson) } }}"> <i [ngClass]="actionConfig.add.icon"></i> </button> </div> @@ -84,7 +84,7 @@ </ds-pagination> - <div *ngIf="(ePeopleSearchDtos | async)?.totalElements == 0 && searchDone" + <div *ngIf="(ePeopleSearch | async)?.totalElements == 0 && searchDone" class="alert alert-info w-100 mb-2" role="alert"> {{messagePrefix + '.no-items' | translate}} @@ -92,10 +92,10 @@ <h4>{{messagePrefix + '.headMembers' | translate}}</h4> - <ds-pagination *ngIf="(ePeopleMembersOfGroupDtos | async)?.totalElements > 0" + <ds-pagination *ngIf="(ePeopleMembersOfGroup | async)?.totalElements > 0" [paginationOptions]="config" - [pageInfoState]="(ePeopleMembersOfGroupDtos | async)" - [collectionSize]="(ePeopleMembersOfGroupDtos | async)?.totalElements" + [pageInfoState]="(ePeopleMembersOfGroup | async)" + [collectionSize]="(ePeopleMembersOfGroup | async)?.totalElements" [hideGear]="true" [hidePagerWhenSinglePage]="true"> @@ -110,24 +110,24 @@ </tr> </thead> <tbody> - <tr *ngFor="let ePerson of (ePeopleMembersOfGroupDtos | async)?.page"> - <td class="align-middle">{{ePerson.eperson.id}}</td> + <tr *ngFor="let eperson of (ePeopleMembersOfGroup | async)?.page"> + <td class="align-middle">{{eperson.id}}</td> <td class="align-middle"> - <a (click)="ePersonDataService.startEditingNewEPerson(ePerson.eperson)" + <a (click)="ePersonDataService.startEditingNewEPerson(eperson)" [routerLink]="[ePersonDataService.getEPeoplePageRouterLink()]"> - {{ dsoNameService.getName(ePerson.eperson) }} + {{ dsoNameService.getName(eperson) }} </a> </td> <td class="align-middle"> - {{messagePrefix + '.table.email' | translate}}: {{ ePerson.eperson.email ? ePerson.eperson.email : '-' }}<br/> - {{messagePrefix + '.table.netid' | translate}}: {{ ePerson.eperson.netid ? ePerson.eperson.netid : '-' }} + {{messagePrefix + '.table.email' | translate}}: {{ eperson.email ? eperson.email : '-' }}<br/> + {{messagePrefix + '.table.netid' | translate}}: {{ eperson.netid ? eperson.netid : '-' }} </td> <td class="align-middle"> <div class="btn-group edit-field"> - <button (click)="deleteMemberFromGroup(ePerson)" + <button (click)="deleteMemberFromGroup(eperson)" [disabled]="actionConfig.remove.disabled" [ngClass]="['btn btn-sm', actionConfig.remove.css]" - title="{{messagePrefix + '.table.edit.buttons.remove' | translate: { name: dsoNameService.getName(ePerson.eperson) } }}"> + title="{{messagePrefix + '.table.edit.buttons.remove' | translate: { name: dsoNameService.getName(eperson) } }}"> <i [ngClass]="actionConfig.remove.icon"></i> </button> </div> @@ -139,7 +139,7 @@ </ds-pagination> - <div *ngIf="(ePeopleMembersOfGroupDtos | async) == undefined || (ePeopleMembersOfGroupDtos | async)?.totalElements == 0" class="alert alert-info w-100 mb-2" + <div *ngIf="(ePeopleMembersOfGroup | async) == undefined || (ePeopleMembersOfGroup | async)?.totalElements == 0" class="alert alert-info w-100 mb-2" role="alert"> {{messagePrefix + '.no-members-yet' | translate}} </div> diff --git a/src/app/access-control/group-registry/group-form/members-list/members-list.component.spec.ts b/src/app/access-control/group-registry/group-form/members-list/members-list.component.spec.ts index 7c8db399bc..76e38067bc 100644 --- a/src/app/access-control/group-registry/group-form/members-list/members-list.component.spec.ts +++ b/src/app/access-control/group-registry/group-form/members-list/members-list.component.spec.ts @@ -17,7 +17,7 @@ import { Group } from '../../../../core/eperson/models/group.model'; import { PageInfo } from '../../../../core/shared/page-info.model'; import { FormBuilderService } from '../../../../shared/form/builder/form-builder.service'; import { NotificationsService } from '../../../../shared/notifications/notifications.service'; -import { GroupMock, GroupMock2 } from '../../../../shared/testing/group-mock'; +import { GroupMock } from '../../../../shared/testing/group-mock'; import { MembersListComponent } from './members-list.component'; import { EPersonMock, EPersonMock2 } from '../../../../shared/testing/eperson.mock'; import { createSuccessfulRemoteDataObject$ } from '../../../../shared/remote-data.utils'; @@ -39,28 +39,26 @@ describe('MembersListComponent', () => { let ePersonDataServiceStub: any; let groupsDataServiceStub: any; let activeGroup; - let allEPersons: EPerson[]; - let allGroups: Group[]; let epersonMembers: EPerson[]; - let subgroupMembers: Group[]; + let epersonNonMembers: EPerson[]; let paginationService; beforeEach(waitForAsync(() => { activeGroup = GroupMock; epersonMembers = [EPersonMock2]; - subgroupMembers = [GroupMock2]; - allEPersons = [EPersonMock, EPersonMock2]; - allGroups = [GroupMock, GroupMock2]; + epersonNonMembers = [EPersonMock]; ePersonDataServiceStub = { activeGroup: activeGroup, epersonMembers: epersonMembers, - subgroupMembers: subgroupMembers, + epersonNonMembers: epersonNonMembers, + // This method is used to get all the current members findListByHref(_href: string): Observable<RemoteData<PaginatedList<EPerson>>> { return createSuccessfulRemoteDataObject$(buildPaginatedList<EPerson>(new PageInfo(), groupsDataServiceStub.getEPersonMembers())); }, + // This method is used to search across *non-members* searchByScope(scope: string, query: string): Observable<RemoteData<PaginatedList<EPerson>>> { if (query === '') { - return createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), allEPersons)); + return createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), epersonNonMembers)); } return createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), [])); }, @@ -77,22 +75,22 @@ describe('MembersListComponent', () => { groupsDataServiceStub = { activeGroup: activeGroup, epersonMembers: epersonMembers, - subgroupMembers: subgroupMembers, - allGroups: allGroups, + epersonNonMembers: epersonNonMembers, getActiveGroup(): Observable<Group> { return observableOf(activeGroup); }, getEPersonMembers() { return this.epersonMembers; }, - searchGroups(query: string): Observable<RemoteData<PaginatedList<Group>>> { - if (query === '') { - return createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), this.allGroups)); - } - return createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), [])); - }, - addMemberToGroup(parentGroup, eperson: EPerson): Observable<RestResponse> { - this.epersonMembers = [...this.epersonMembers, eperson]; + addMemberToGroup(parentGroup, epersonToAdd: EPerson): Observable<RestResponse> { + // Add eperson to list of members + this.epersonMembers = [...this.epersonMembers, epersonToAdd]; + // Remove eperson from list of non-members + this.epersonNonMembers.forEach( (eperson: EPerson, index: number) => { + if (eperson.id === epersonToAdd.id) { + this.epersonNonMembers.splice(index, 1); + } + }); return observableOf(new RestResponse(true, 200, 'Success')); }, clearGroupsRequests() { @@ -105,14 +103,14 @@ describe('MembersListComponent', () => { return '/access-control/groups/' + group.id; }, deleteMemberFromGroup(parentGroup, epersonToDelete: EPerson): Observable<RestResponse> { - this.epersonMembers = this.epersonMembers.find((eperson: EPerson) => { - if (eperson.id !== epersonToDelete.id) { - return eperson; + // Remove eperson from list of members + this.epersonMembers.forEach( (eperson: EPerson, index: number) => { + if (eperson.id === epersonToDelete.id) { + this.epersonMembers.splice(index, 1); } }); - if (this.epersonMembers === undefined) { - this.epersonMembers = []; - } + // Add eperson to list of non-members + this.epersonNonMembers = [...this.epersonNonMembers, epersonToDelete]; return observableOf(new RestResponse(true, 200, 'Success')); } }; @@ -160,13 +158,37 @@ describe('MembersListComponent', () => { expect(comp).toBeDefined(); })); - it('should show list of eperson members of current active group', () => { - const epersonIdsFound = fixture.debugElement.queryAll(By.css('#ePeopleMembersOfGroup tr td:first-child')); - expect(epersonIdsFound.length).toEqual(1); - epersonMembers.map((eperson: EPerson) => { - expect(epersonIdsFound.find((foundEl) => { - return (foundEl.nativeElement.textContent.trim() === eperson.uuid); - })).toBeTruthy(); + describe('current members list', () => { + it('should show list of eperson members of current active group', () => { + const epersonIdsFound = fixture.debugElement.queryAll(By.css('#ePeopleMembersOfGroup tr td:first-child')); + expect(epersonIdsFound.length).toEqual(1); + epersonMembers.map((eperson: EPerson) => { + expect(epersonIdsFound.find((foundEl) => { + return (foundEl.nativeElement.textContent.trim() === eperson.uuid); + })).toBeTruthy(); + }); + }); + + it('should show a delete button next to each member', () => { + const epersonsFound = fixture.debugElement.queryAll(By.css('#ePeopleMembersOfGroup tbody tr')); + epersonsFound.map((foundEPersonRowElement: DebugElement) => { + const addButton: DebugElement = foundEPersonRowElement.query(By.css('td:last-child .fa-plus')); + const deleteButton: DebugElement = foundEPersonRowElement.query(By.css('td:last-child .fa-trash-alt')); + expect(addButton).toBeNull(); + expect(deleteButton).not.toBeNull(); + }); + }); + + describe('if first delete button is pressed', () => { + beforeEach(() => { + const deleteButton: DebugElement = fixture.debugElement.query(By.css('#ePeopleMembersOfGroup tbody .fa-trash-alt')); + deleteButton.nativeElement.click(); + fixture.detectChanges(); + }); + it('then no ePerson remains as a member of the active group.', () => { + const epersonsFound = fixture.debugElement.queryAll(By.css('#ePeopleMembersOfGroup tbody tr')); + expect(epersonsFound.length).toEqual(0); + }); }); }); @@ -174,76 +196,40 @@ describe('MembersListComponent', () => { describe('when searching without query', () => { let epersonsFound: DebugElement[]; beforeEach(fakeAsync(() => { - spyOn(component, 'isMemberOfGroup').and.callFake((ePerson: EPerson) => { - return observableOf(activeGroup.epersons.includes(ePerson)); - }); component.search({ scope: 'metadata', query: '' }); tick(); fixture.detectChanges(); epersonsFound = fixture.debugElement.queryAll(By.css('#epersonsSearch tbody tr')); - // Stop using the fake spy function (because otherwise the clicking on the buttons will not change anything - // because they don't change the value of activeGroup.epersons) - jasmine.getEnv().allowRespy(true); - spyOn(component, 'isMemberOfGroup').and.callThrough(); })); - it('should display all epersons', () => { - expect(epersonsFound.length).toEqual(2); + it('should display only non-members of the group', () => { + const epersonIdsFound = fixture.debugElement.queryAll(By.css('#epersonsSearch tbody tr td:first-child')); + expect(epersonIdsFound.length).toEqual(1); + epersonNonMembers.map((eperson: EPerson) => { + expect(epersonIdsFound.find((foundEl) => { + return (foundEl.nativeElement.textContent.trim() === eperson.uuid); + })).toBeTruthy(); + }); }); - describe('if eperson is already a eperson', () => { - it('should have delete button, else it should have add button', () => { - const memberIds: string[] = activeGroup.epersons.map((ePerson: EPerson) => ePerson.id); - epersonsFound.map((foundEPersonRowElement: DebugElement) => { - const epersonId: DebugElement = foundEPersonRowElement.query(By.css('td:first-child')); - const addButton: DebugElement = foundEPersonRowElement.query(By.css('td:last-child .fa-plus')); - const deleteButton: DebugElement = foundEPersonRowElement.query(By.css('td:last-child .fa-trash-alt')); - if (memberIds.includes(epersonId.nativeElement.textContent)) { - expect(addButton).toBeNull(); - expect(deleteButton).not.toBeNull(); - } else { - expect(deleteButton).toBeNull(); - expect(addButton).not.toBeNull(); - } - }); + it('should display an add button next to non-members, not a delete button', () => { + epersonsFound.map((foundEPersonRowElement: DebugElement) => { + const addButton: DebugElement = foundEPersonRowElement.query(By.css('td:last-child .fa-plus')); + const deleteButton: DebugElement = foundEPersonRowElement.query(By.css('td:last-child .fa-trash-alt')); + expect(addButton).not.toBeNull(); + expect(deleteButton).toBeNull(); }); }); describe('if first add button is pressed', () => { - beforeEach(fakeAsync(() => { + beforeEach(() => { const addButton: DebugElement = fixture.debugElement.query(By.css('#epersonsSearch tbody .fa-plus')); addButton.nativeElement.click(); - tick(); fixture.detectChanges(); - })); - it('then all the ePersons are member of the active group', () => { - epersonsFound = fixture.debugElement.queryAll(By.css('#epersonsSearch tbody tr')); - expect(epersonsFound.length).toEqual(2); - epersonsFound.map((foundEPersonRowElement: DebugElement) => { - const addButton: DebugElement = foundEPersonRowElement.query(By.css('td:last-child .fa-plus')); - const deleteButton: DebugElement = foundEPersonRowElement.query(By.css('td:last-child .fa-trash-alt')); - expect(addButton).toBeNull(); - expect(deleteButton).not.toBeNull(); - }); }); - }); - - describe('if first delete button is pressed', () => { - beforeEach(fakeAsync(() => { - const deleteButton: DebugElement = fixture.debugElement.query(By.css('#epersonsSearch tbody .fa-trash-alt')); - deleteButton.nativeElement.click(); - tick(); - fixture.detectChanges(); - })); - it('then no ePerson is member of the active group', () => { + it('then all (two) ePersons are member of the active group. No non-members left', () => { epersonsFound = fixture.debugElement.queryAll(By.css('#epersonsSearch tbody tr')); - expect(epersonsFound.length).toEqual(2); - epersonsFound.map((foundEPersonRowElement: DebugElement) => { - const addButton: DebugElement = foundEPersonRowElement.query(By.css('td:last-child .fa-plus')); - const deleteButton: DebugElement = foundEPersonRowElement.query(By.css('td:last-child .fa-trash-alt')); - expect(deleteButton).toBeNull(); - expect(addButton).not.toBeNull(); - }); + expect(epersonsFound.length).toEqual(0); }); }); }); diff --git a/src/app/access-control/group-registry/group-form/members-list/members-list.component.ts b/src/app/access-control/group-registry/group-form/members-list/members-list.component.ts index 704a92d0f9..f49690f674 100644 --- a/src/app/access-control/group-registry/group-form/members-list/members-list.component.ts +++ b/src/app/access-control/group-registry/group-form/members-list/members-list.component.ts @@ -4,13 +4,11 @@ import { Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; import { Observable, - of as observableOf, Subscription, - BehaviorSubject, - combineLatest as observableCombineLatest + BehaviorSubject } from 'rxjs'; -import { defaultIfEmpty, map, switchMap, take } from 'rxjs/operators'; -import { buildPaginatedList, PaginatedList } from '../../../../core/data/paginated-list.model'; +import { map, switchMap, take } from 'rxjs/operators'; +import { PaginatedList } from '../../../../core/data/paginated-list.model'; import { RemoteData } from '../../../../core/data/remote-data'; import { EPersonDataService } from '../../../../core/eperson/eperson-data.service'; import { GroupDataService } from '../../../../core/eperson/group-data.service'; @@ -18,11 +16,11 @@ import { EPerson } from '../../../../core/eperson/models/eperson.model'; import { Group } from '../../../../core/eperson/models/group.model'; import { getFirstCompletedRemoteData, - getAllCompletedRemoteData + getAllCompletedRemoteData, + getRemoteDataPayload } from '../../../../core/shared/operators'; import { NotificationsService } from '../../../../shared/notifications/notifications.service'; import { PaginationComponentOptions } from '../../../../shared/pagination/pagination-component-options.model'; -import { EpersonDtoModel } from '../../../../core/eperson/models/eperson-dto.model'; import { PaginationService } from '../../../../core/pagination/pagination.service'; import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service'; @@ -93,11 +91,11 @@ export class MembersListComponent implements OnInit, OnDestroy { /** * EPeople being displayed in search result, initially all members, after search result of search */ - ePeopleSearchDtos: BehaviorSubject<PaginatedList<EpersonDtoModel>> = new BehaviorSubject<PaginatedList<EpersonDtoModel>>(undefined); + ePeopleSearch: BehaviorSubject<PaginatedList<EPerson>> = new BehaviorSubject<PaginatedList<EPerson>>(undefined); /** * List of EPeople members of currently active group being edited */ - ePeopleMembersOfGroupDtos: BehaviorSubject<PaginatedList<EpersonDtoModel>> = new BehaviorSubject<PaginatedList<EpersonDtoModel>>(undefined); + ePeopleMembersOfGroup: BehaviorSubject<PaginatedList<EPerson>> = new BehaviorSubject<PaginatedList<EPerson>>(undefined); /** * Pagination config used to display the list of EPeople that are result of EPeople search @@ -186,18 +184,9 @@ export class MembersListComponent implements OnInit, OnDestroy { return rd; } }), - switchMap((epersonListRD: RemoteData<PaginatedList<EPerson>>) => { - const dtos$ = observableCombineLatest([...epersonListRD.payload.page.map((member: EPerson) => { - const epersonDtoModel: EpersonDtoModel = new EpersonDtoModel(); - epersonDtoModel.eperson = member; - return observableOf(epersonDtoModel); - })]); - return dtos$.pipe(defaultIfEmpty([]), map((dtos: EpersonDtoModel[]) => { - return buildPaginatedList(epersonListRD.payload.pageInfo, dtos); - })); - })) - .subscribe((paginatedListOfDTOs: PaginatedList<EpersonDtoModel>) => { - this.ePeopleMembersOfGroupDtos.next(paginatedListOfDTOs); + getRemoteDataPayload()) + .subscribe((paginatedListOfEPersons: PaginatedList<EPerson>) => { + this.ePeopleMembersOfGroup.next(paginatedListOfEPersons); })); } @@ -217,13 +206,13 @@ export class MembersListComponent implements OnInit, OnDestroy { /** * Deletes a given EPerson from the members list of the group currently being edited - * @param ePerson EPerson we want to delete as member from group that is currently being edited + * @param eperson EPerson we want to delete as member from group that is currently being edited */ - deleteMemberFromGroup(ePerson: EpersonDtoModel) { + deleteMemberFromGroup(eperson: EPerson) { this.groupDataService.getActiveGroup().pipe(take(1)).subscribe((activeGroup: Group) => { if (activeGroup != null) { - const response = this.groupDataService.deleteMemberFromGroup(activeGroup, ePerson.eperson); - this.showNotifications('deleteMember', response, this.dsoNameService.getName(ePerson.eperson), activeGroup); + const response = this.groupDataService.deleteMemberFromGroup(activeGroup, eperson); + this.showNotifications('deleteMember', response, this.dsoNameService.getName(eperson), activeGroup); } else { this.notificationsService.error(this.translateService.get(this.messagePrefix + '.notification.failure.noActiveGroup')); } @@ -232,13 +221,13 @@ export class MembersListComponent implements OnInit, OnDestroy { /** * Adds a given EPerson to the members list of the group currently being edited - * @param ePerson EPerson we want to add as member to group that is currently being edited + * @param eperson EPerson we want to add as member to group that is currently being edited */ - addMemberToGroup(ePerson: EpersonDtoModel) { + addMemberToGroup(eperson: EPerson) { this.groupDataService.getActiveGroup().pipe(take(1)).subscribe((activeGroup: Group) => { if (activeGroup != null) { - const response = this.groupDataService.addMemberToGroup(activeGroup, ePerson.eperson); - this.showNotifications('addMember', response, this.dsoNameService.getName(ePerson.eperson), activeGroup); + const response = this.groupDataService.addMemberToGroup(activeGroup, eperson); + this.showNotifications('addMember', response, this.dsoNameService.getName(eperson), activeGroup); } else { this.notificationsService.error(this.translateService.get(this.messagePrefix + '.notification.failure.noActiveGroup')); } @@ -286,18 +275,9 @@ export class MembersListComponent implements OnInit, OnDestroy { return rd; } }), - switchMap((epersonListRD: RemoteData<PaginatedList<EPerson>>) => { - const dtos$ = observableCombineLatest([...epersonListRD.payload.page.map((member: EPerson) => { - const epersonDtoModel: EpersonDtoModel = new EpersonDtoModel(); - epersonDtoModel.eperson = member; - return observableOf(epersonDtoModel); - })]); - return dtos$.pipe(defaultIfEmpty([]), map((dtos: EpersonDtoModel[]) => { - return buildPaginatedList(epersonListRD.payload.pageInfo, dtos); - })); - })) - .subscribe((paginatedListOfDTOs: PaginatedList<EpersonDtoModel>) => { - this.ePeopleSearchDtos.next(paginatedListOfDTOs); + getRemoteDataPayload()) + .subscribe((paginatedListOfEPersons: PaginatedList<EPerson>) => { + this.ePeopleSearch.next(paginatedListOfEPersons); })); } -- GitLab From f0b4239df96fd0c5d53750d44ac171987d476090 Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Tue, 26 Sep 2023 12:07:30 -0500 Subject: [PATCH 157/183] Also remove unnecessary EpersonDtoModel from extending ReviewersListComponent. Remove "memberOfGroup" from EpersonDtoModel as it is no longer used (cherry picked from commit b598f1b5ca9b54c4b5fe23daa3d7b502ee0dc6b2) --- .../members-list/members-list.component.ts | 12 +-- .../core/eperson/models/eperson-dto.model.ts | 5 - .../reviewers-list.component.spec.ts | 95 ++++++++----------- .../reviewers-list.component.ts | 51 ++++------ 4 files changed, 65 insertions(+), 98 deletions(-) diff --git a/src/app/access-control/group-registry/group-form/members-list/members-list.component.ts b/src/app/access-control/group-registry/group-form/members-list/members-list.component.ts index f49690f674..e828555a80 100644 --- a/src/app/access-control/group-registry/group-form/members-list/members-list.component.ts +++ b/src/app/access-control/group-registry/group-form/members-list/members-list.component.ts @@ -29,8 +29,8 @@ import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service'; */ enum SubKey { ActiveGroup, - MembersDTO, - SearchResultsDTO, + Members, + SearchResults, } /** @@ -166,8 +166,8 @@ export class MembersListComponent implements OnInit, OnDestroy { * @private */ retrieveMembers(page: number): void { - this.unsubFrom(SubKey.MembersDTO); - this.subs.set(SubKey.MembersDTO, + this.unsubFrom(SubKey.Members); + this.subs.set(SubKey.Members, this.paginationService.getCurrentPagination(this.config.id, this.config).pipe( switchMap((currentPagination) => { return this.ePersonDataService.findListByHref(this.groupBeingEdited._links.epersons.href, { @@ -239,8 +239,8 @@ export class MembersListComponent implements OnInit, OnDestroy { * @param data Contains scope and query param */ search(data: any) { - this.unsubFrom(SubKey.SearchResultsDTO); - this.subs.set(SubKey.SearchResultsDTO, + this.unsubFrom(SubKey.SearchResults); + this.subs.set(SubKey.SearchResults, this.paginationService.getCurrentPagination(this.configSearch.id, this.configSearch).pipe( switchMap((paginationOptions) => { diff --git a/src/app/core/eperson/models/eperson-dto.model.ts b/src/app/core/eperson/models/eperson-dto.model.ts index 0e79902196..5fa6c7ed68 100644 --- a/src/app/core/eperson/models/eperson-dto.model.ts +++ b/src/app/core/eperson/models/eperson-dto.model.ts @@ -13,9 +13,4 @@ export class EpersonDtoModel { * Whether or not the linked EPerson is able to be deleted */ public ableToDelete: boolean; - /** - * Whether or not this EPerson is member of group on page it is being used on - */ - public memberOfGroup: boolean; - } diff --git a/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/reviewers-list/reviewers-list.component.spec.ts b/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/reviewers-list/reviewers-list.component.spec.ts index 7c8db782ce..bcbeef5683 100644 --- a/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/reviewers-list/reviewers-list.component.spec.ts +++ b/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/reviewers-list/reviewers-list.component.spec.ts @@ -17,7 +17,7 @@ import { Group } from '../../../../core/eperson/models/group.model'; import { PageInfo } from '../../../../core/shared/page-info.model'; import { FormBuilderService } from '../../../../shared/form/builder/form-builder.service'; import { NotificationsService } from '../../../../shared/notifications/notifications.service'; -import { GroupMock, GroupMock2 } from '../../../../shared/testing/group-mock'; +import { GroupMock } from '../../../../shared/testing/group-mock'; import { ReviewersListComponent } from './reviewers-list.component'; import { EPersonMock, EPersonMock2 } from '../../../../shared/testing/eperson.mock'; import { @@ -31,8 +31,10 @@ import { NotificationsServiceStub } from '../../../../shared/testing/notificatio import { RouterMock } from '../../../../shared/mocks/router.mock'; import { PaginationService } from '../../../../core/pagination/pagination.service'; import { PaginationServiceStub } from '../../../../shared/testing/pagination-service.stub'; -import { EpersonDtoModel } from '../../../../core/eperson/models/eperson-dto.model'; +// NOTE: Because ReviewersListComponent extends MembersListComponent, the below tests ONLY validate +// features which are *unique* to ReviewersListComponent. All other features are tested in the +// members-list.component.spec.ts file. describe('ReviewersListComponent', () => { let component: ReviewersListComponent; let fixture: ComponentFixture<ReviewersListComponent>; @@ -40,31 +42,27 @@ describe('ReviewersListComponent', () => { let builderService: FormBuilderService; let ePersonDataServiceStub: any; let groupsDataServiceStub: any; - let activeGroup; - let allEPersons; - let allGroups; - let epersonMembers; - let subgroupMembers; + let activeGroup: Group; + let epersonMembers: EPerson[]; + let epersonNonMembers: EPerson[]; let paginationService; - let ePersonDtoModel1: EpersonDtoModel; - let ePersonDtoModel2: EpersonDtoModel; beforeEach(waitForAsync(() => { activeGroup = GroupMock; epersonMembers = [EPersonMock2]; - subgroupMembers = [GroupMock2]; - allEPersons = [EPersonMock, EPersonMock2]; - allGroups = [GroupMock, GroupMock2]; + epersonNonMembers = [EPersonMock]; ePersonDataServiceStub = { activeGroup: activeGroup, epersonMembers: epersonMembers, - subgroupMembers: subgroupMembers, + epersonNonMembers: epersonNonMembers, + // This method is used to get all the current members findListByHref(_href: string): Observable<RemoteData<PaginatedList<EPerson>>> { return createSuccessfulRemoteDataObject$(buildPaginatedList<EPerson>(new PageInfo(), groupsDataServiceStub.getEPersonMembers())); }, + // This method is used to search across *non-members* searchByScope(scope: string, query: string): Observable<RemoteData<PaginatedList<EPerson>>> { if (query === '') { - return createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), allEPersons)); + return createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), epersonNonMembers)); } return createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), [])); }, @@ -81,22 +79,22 @@ describe('ReviewersListComponent', () => { groupsDataServiceStub = { activeGroup: activeGroup, epersonMembers: epersonMembers, - subgroupMembers: subgroupMembers, - allGroups: allGroups, + epersonNonMembers: epersonNonMembers, getActiveGroup(): Observable<Group> { return observableOf(activeGroup); }, getEPersonMembers() { return this.epersonMembers; }, - searchGroups(query: string): Observable<RemoteData<PaginatedList<Group>>> { - if (query === '') { - return createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), this.allGroups)); - } - return createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), [])); - }, - addMemberToGroup(parentGroup, eperson: EPerson): Observable<RestResponse> { - this.epersonMembers = [...this.epersonMembers, eperson]; + addMemberToGroup(parentGroup, epersonToAdd: EPerson): Observable<RestResponse> { + // Add eperson to list of members + this.epersonMembers = [...this.epersonMembers, epersonToAdd]; + // Remove eperson from list of non-members + this.epersonNonMembers.forEach( (eperson: EPerson, index: number) => { + if (eperson.id === epersonToAdd.id) { + this.epersonNonMembers.splice(index, 1); + } + }); return observableOf(new RestResponse(true, 200, 'Success')); }, clearGroupsRequests() { @@ -109,21 +107,20 @@ describe('ReviewersListComponent', () => { return '/access-control/groups/' + group.id; }, deleteMemberFromGroup(parentGroup, epersonToDelete: EPerson): Observable<RestResponse> { - this.epersonMembers = this.epersonMembers.find((eperson: EPerson) => { - if (eperson.id !== epersonToDelete.id) { - return eperson; + // Remove eperson from list of members + this.epersonMembers.forEach( (eperson: EPerson, index: number) => { + if (eperson.id === epersonToDelete.id) { + this.epersonMembers.splice(index, 1); } }); - if (this.epersonMembers === undefined) { - this.epersonMembers = []; - } + // Add eperson to list of non-members + this.epersonNonMembers = [...this.epersonNonMembers, epersonToDelete]; return observableOf(new RestResponse(true, 200, 'Success')); }, + // Used to find the currently active group findById(id: string) { - for (const group of allGroups) { - if (group.id === id) { - return createSuccessfulRemoteDataObject$(group); - } + if (activeGroup.id === id) { + return createSuccessfulRemoteDataObject$(activeGroup); } return createNoContentRemoteDataObject$(); }, @@ -135,7 +132,7 @@ describe('ReviewersListComponent', () => { translateService = getMockTranslateService(); paginationService = new PaginationServiceStub(); - TestBed.configureTestingModule({ + return TestBed.configureTestingModule({ imports: [CommonModule, NgbModule, FormsModule, ReactiveFormsModule, BrowserModule, TranslateModule.forRoot({ loader: { @@ -169,12 +166,6 @@ describe('ReviewersListComponent', () => { fixture.debugElement.nativeElement.remove(); })); - beforeEach(() => { - ePersonDtoModel1 = new EpersonDtoModel(); - ePersonDtoModel1.eperson = EPersonMock; - ePersonDtoModel2 = new EpersonDtoModel(); - ePersonDtoModel2.eperson = EPersonMock2; - }); describe('when no group is selected', () => { beforeEach(() => { @@ -218,34 +209,32 @@ describe('ReviewersListComponent', () => { it('should replace the value when a new member is added when multipleReviewers is false', () => { spyOn(component.selectedReviewersUpdated, 'emit'); component.multipleReviewers = false; - component.selectedReviewers = [ePersonDtoModel1]; + component.selectedReviewers = [EPersonMock]; - component.addMemberToGroup(ePersonDtoModel2); + component.addMemberToGroup(EPersonMock2); - expect(component.selectedReviewers).toEqual([ePersonDtoModel2]); - expect(component.selectedReviewersUpdated.emit).toHaveBeenCalledWith([ePersonDtoModel2.eperson]); + expect(component.selectedReviewers).toEqual([EPersonMock2]); + expect(component.selectedReviewersUpdated.emit).toHaveBeenCalledWith([EPersonMock2]); }); it('should add the value when a new member is added when multipleReviewers is true', () => { spyOn(component.selectedReviewersUpdated, 'emit'); component.multipleReviewers = true; - component.selectedReviewers = [ePersonDtoModel1]; + component.selectedReviewers = [EPersonMock]; - component.addMemberToGroup(ePersonDtoModel2); + component.addMemberToGroup(EPersonMock2); - expect(component.selectedReviewers).toEqual([ePersonDtoModel1, ePersonDtoModel2]); - expect(component.selectedReviewersUpdated.emit).toHaveBeenCalledWith([ePersonDtoModel1.eperson, ePersonDtoModel2.eperson]); + expect(component.selectedReviewers).toEqual([EPersonMock, EPersonMock2]); + expect(component.selectedReviewersUpdated.emit).toHaveBeenCalledWith([EPersonMock, EPersonMock2]); }); it('should delete the member when present', () => { spyOn(component.selectedReviewersUpdated, 'emit'); - ePersonDtoModel1.memberOfGroup = true; - component.selectedReviewers = [ePersonDtoModel1]; + component.selectedReviewers = [EPersonMock]; - component.deleteMemberFromGroup(ePersonDtoModel1); + component.deleteMemberFromGroup(EPersonMock); expect(component.selectedReviewers).toEqual([]); - expect(ePersonDtoModel1.memberOfGroup).toBeFalse(); expect(component.selectedReviewersUpdated.emit).toHaveBeenCalledWith([]); }); diff --git a/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/reviewers-list/reviewers-list.component.ts b/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/reviewers-list/reviewers-list.component.ts index 6984a1d86d..65a106e2e8 100644 --- a/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/reviewers-list/reviewers-list.component.ts +++ b/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/reviewers-list/reviewers-list.component.ts @@ -8,10 +8,7 @@ import { NotificationsService } from '../../../../shared/notifications/notificat import { PaginationService } from '../../../../core/pagination/pagination.service'; import { Group } from '../../../../core/eperson/models/group.model'; import { getFirstSucceededRemoteDataPayload } from '../../../../core/shared/operators'; -import { EpersonDtoModel } from '../../../../core/eperson/models/eperson-dto.model'; import { EPerson } from '../../../../core/eperson/models/eperson.model'; -import { Observable, of as observableOf } from 'rxjs'; -import { hasValue } from '../../../../shared/empty.util'; import { PaginatedList } from '../../../../core/data/paginated-list.model'; import { MembersListComponent, @@ -24,8 +21,8 @@ import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service'; */ enum SubKey { ActiveGroup, - MembersDTO, - SearchResultsDTO, + Members, + SearchResults, } /** @@ -50,7 +47,7 @@ export class ReviewersListComponent extends MembersListComponent implements OnIn @Output() selectedReviewersUpdated: EventEmitter<EPerson[]> = new EventEmitter(); - selectedReviewers: EpersonDtoModel[] = []; + selectedReviewers: EPerson[] = []; constructor( protected groupService: GroupDataService, @@ -100,54 +97,40 @@ export class ReviewersListComponent extends MembersListComponent implements OnIn retrieveMembers(page: number): void { this.config.currentPage = page; if (this.groupId === null) { - this.unsubFrom(SubKey.MembersDTO); - const paginatedListOfDTOs: PaginatedList<EpersonDtoModel> = new PaginatedList(); - paginatedListOfDTOs.page = this.selectedReviewers; - this.ePeopleMembersOfGroupDtos.next(paginatedListOfDTOs); + this.unsubFrom(SubKey.Members); + const paginatedListOfEPersons: PaginatedList<EPerson> = new PaginatedList(); + paginatedListOfEPersons.page = this.selectedReviewers; + this.ePeopleMembersOfGroup.next(paginatedListOfEPersons); } else { super.retrieveMembers(page); } } /** - * Checks whether the given {@link possibleMember} is part of the {@link selectedReviewers}. + * Removes the {@link eperson} from the {@link selectedReviewers} * - * @param possibleMember The {@link EPerson} that needs to be checked + * @param eperson The {@link EPerson} to remove */ - isMemberOfGroup(possibleMember: EPerson): Observable<boolean> { - return observableOf(hasValue(this.selectedReviewers.find((reviewer: EpersonDtoModel) => reviewer.eperson.id === possibleMember.id))); - } - - /** - * Removes the {@link ePerson} from the {@link selectedReviewers} - * - * @param ePerson The {@link EpersonDtoModel} containg the {@link EPerson} to remove - */ - deleteMemberFromGroup(ePerson: EpersonDtoModel) { - ePerson.memberOfGroup = false; - const index = this.selectedReviewers.indexOf(ePerson); + deleteMemberFromGroup(eperson: EPerson) { + const index = this.selectedReviewers.indexOf(eperson); if (index !== -1) { this.selectedReviewers.splice(index, 1); } - this.selectedReviewersUpdated.emit(this.selectedReviewers.map((ePersonDtoModel: EpersonDtoModel) => ePersonDtoModel.eperson)); + this.selectedReviewersUpdated.emit(this.selectedReviewers); } /** - * Adds the {@link ePerson} to the {@link selectedReviewers} (or replaces it when {@link multipleReviewers} is + * Adds the {@link eperson} to the {@link selectedReviewers} (or replaces it when {@link multipleReviewers} is * `false`). Afterwards it will emit the list. * - * @param ePerson The {@link EPerson} to add to the list + * @param eperson The {@link EPerson} to add to the list */ - addMemberToGroup(ePerson: EpersonDtoModel) { - ePerson.memberOfGroup = true; + addMemberToGroup(eperson: EPerson) { if (!this.multipleReviewers) { - for (const selectedReviewer of this.selectedReviewers) { - selectedReviewer.memberOfGroup = false; - } this.selectedReviewers = []; } - this.selectedReviewers.push(ePerson); - this.selectedReviewersUpdated.emit(this.selectedReviewers.map((epersonDtoModel: EpersonDtoModel) => epersonDtoModel.eperson)); + this.selectedReviewers.push(eperson); + this.selectedReviewersUpdated.emit(this.selectedReviewers); } } -- GitLab From 1f1dc59f8b88386b4599d8f674df7c8ad868d3b4 Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Mon, 2 Oct 2023 16:35:26 -0500 Subject: [PATCH 158/183] Fix subgroups-list specs so they align with new members-list specs (cherry picked from commit 64f968b246774140b2e3d4f134be7608ab7a6207) --- .../subgroups-list.component.spec.ts | 184 ++++++++++-------- 1 file changed, 102 insertions(+), 82 deletions(-) diff --git a/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.spec.ts b/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.spec.ts index ac5750dcac..7bbbb24f30 100644 --- a/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.spec.ts +++ b/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.spec.ts @@ -1,12 +1,12 @@ import { CommonModule } from '@angular/common'; import { NO_ERRORS_SCHEMA, DebugElement } from '@angular/core'; -import { ComponentFixture, fakeAsync, flush, inject, TestBed, tick, waitForAsync } from '@angular/core/testing'; +import { ComponentFixture, fakeAsync, flush, inject, TestBed, waitForAsync } from '@angular/core/testing'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { BrowserModule, By } from '@angular/platform-browser'; import { Router } from '@angular/router'; import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; import { TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core'; -import { Observable, of as observableOf, BehaviorSubject } from 'rxjs'; +import { Observable, of as observableOf } from 'rxjs'; import { RestResponse } from '../../../../core/cache/response.models'; import { buildPaginatedList, PaginatedList } from '../../../../core/data/paginated-list.model'; import { RemoteData } from '../../../../core/data/remote-data'; @@ -18,19 +18,18 @@ import { NotificationsService } from '../../../../shared/notifications/notificat import { GroupMock, GroupMock2 } from '../../../../shared/testing/group-mock'; import { SubgroupsListComponent } from './subgroups-list.component'; import { - createSuccessfulRemoteDataObject$, - createSuccessfulRemoteDataObject + createSuccessfulRemoteDataObject$ } from '../../../../shared/remote-data.utils'; import { RouterMock } from '../../../../shared/mocks/router.mock'; import { getMockFormBuilderService } from '../../../../shared/mocks/form-builder-service.mock'; import { getMockTranslateService } from '../../../../shared/mocks/translate.service.mock'; import { TranslateLoaderMock } from '../../../../shared/testing/translate-loader.mock'; import { NotificationsServiceStub } from '../../../../shared/testing/notifications-service.stub'; -import { map } from 'rxjs/operators'; import { PaginationService } from '../../../../core/pagination/pagination.service'; import { PaginationServiceStub } from '../../../../shared/testing/pagination-service.stub'; import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service'; import { DSONameServiceMock } from '../../../../shared/mocks/dso-name.service.mock'; +import { EPersonMock2 } from 'src/app/shared/testing/eperson.mock'; describe('SubgroupsListComponent', () => { let component: SubgroupsListComponent; @@ -39,44 +38,70 @@ describe('SubgroupsListComponent', () => { let builderService: FormBuilderService; let ePersonDataServiceStub: any; let groupsDataServiceStub: any; - let activeGroup; + let activeGroup: Group; let subgroups: Group[]; - let allGroups: Group[]; + let groupNonMembers: Group[]; let routerStub; let paginationService; + // Define a new mock activegroup for all tests below + let mockActiveGroup: Group = Object.assign(new Group(), { + handle: null, + subgroups: [GroupMock2], + epersons: [EPersonMock2], + selfRegistered: false, + permanent: false, + _links: { + self: { + href: 'https://rest.api/server/api/eperson/groups/activegroupid', + }, + subgroups: { href: 'https://rest.api/server/api/eperson/groups/activegroupid/subgroups' }, + object: { href: 'https://rest.api/server/api/eperson/groups/activegroupid/object' }, + epersons: { href: 'https://rest.api/server/api/eperson/groups/activegroupid/epersons' } + }, + _name: 'activegroupname', + id: 'activegroupid', + uuid: 'activegroupid', + type: 'group', + }); beforeEach(waitForAsync(() => { - activeGroup = GroupMock; + activeGroup = mockActiveGroup; subgroups = [GroupMock2]; - allGroups = [GroupMock, GroupMock2]; + groupNonMembers = [GroupMock]; ePersonDataServiceStub = {}; groupsDataServiceStub = { activeGroup: activeGroup, - subgroups$: new BehaviorSubject(subgroups), + subgroups: subgroups, + groupNonMembers: groupNonMembers, getActiveGroup(): Observable<Group> { return observableOf(this.activeGroup); }, getSubgroups(): Group { - return this.activeGroup; + return this.subgroups; }, + // This method is used to get all the current subgroups findListByHref(_href: string): Observable<RemoteData<PaginatedList<Group>>> { - return this.subgroups$.pipe( - map((currentGroups: Group[]) => { - return createSuccessfulRemoteDataObject(buildPaginatedList<Group>(new PageInfo(), currentGroups)); - }) - ); + return createSuccessfulRemoteDataObject$(buildPaginatedList<Group>(new PageInfo(), groupsDataServiceStub.getSubgroups())); }, getGroupEditPageRouterLink(group: Group): string { return '/access-control/groups/' + group.id; }, + // This method is used to get all groups which are NOT currently a subgroup member searchGroups(query: string): Observable<RemoteData<PaginatedList<Group>>> { if (query === '') { - return createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), allGroups)); + return createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), groupNonMembers)); } return createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), [])); }, - addSubGroupToGroup(parentGroup, subgroup: Group): Observable<RestResponse> { - this.subgroups$.next([...this.subgroups$.getValue(), subgroup]); + addSubGroupToGroup(parentGroup, subgroupToAdd: Group): Observable<RestResponse> { + // Add group to list of subgroups + this.subgroups = [...this.subgroups, subgroupToAdd]; + // Remove group from list of non-members + this.groupNonMembers.forEach( (group: Group, index: number) => { + if (group.id === subgroupToAdd.id) { + this.groupNonMembers.splice(index, 1); + } + }); return observableOf(new RestResponse(true, 200, 'Success')); }, clearGroupsRequests() { @@ -85,12 +110,15 @@ describe('SubgroupsListComponent', () => { clearGroupLinkRequests() { // empty }, - deleteSubGroupFromGroup(parentGroup, subgroup: Group): Observable<RestResponse> { - this.subgroups$.next(this.subgroups$.getValue().filter((group: Group) => { - if (group.id !== subgroup.id) { - return group; + deleteSubGroupFromGroup(parentGroup, subgroupToDelete: Group): Observable<RestResponse> { + // Remove group from list of subgroups + this.subgroups.forEach( (group: Group, index: number) => { + if (group.id === subgroupToDelete.id) { + this.subgroups.splice(index, 1); } - })); + }); + // Add group to list of non-members + this.groupNonMembers = [...this.groupNonMembers, subgroupToDelete]; return observableOf(new RestResponse(true, 200, 'Success')); } }; @@ -99,7 +127,7 @@ describe('SubgroupsListComponent', () => { translateService = getMockTranslateService(); paginationService = new PaginationServiceStub(); - TestBed.configureTestingModule({ + return TestBed.configureTestingModule({ imports: [CommonModule, NgbModule, FormsModule, ReactiveFormsModule, BrowserModule, TranslateModule.forRoot({ loader: { @@ -137,30 +165,38 @@ describe('SubgroupsListComponent', () => { expect(comp).toBeDefined(); })); - it('should show list of subgroups of current active group', () => { - const groupIdsFound = fixture.debugElement.queryAll(By.css('#subgroupsOfGroup tr td:first-child')); - expect(groupIdsFound.length).toEqual(1); - activeGroup.subgroups.map((group: Group) => { - expect(groupIdsFound.find((foundEl) => { - return (foundEl.nativeElement.textContent.trim() === group.uuid); - })).toBeTruthy(); + describe('current subgroup list', () => { + it('should show list of subgroups of current active group', () => { + const groupIdsFound = fixture.debugElement.queryAll(By.css('#subgroupsOfGroup tr td:first-child')); + expect(groupIdsFound.length).toEqual(1); + subgroups.map((group: Group) => { + expect(groupIdsFound.find((foundEl) => { + return (foundEl.nativeElement.textContent.trim() === group.uuid); + })).toBeTruthy(); + }); }); - }); - describe('if first group delete button is pressed', () => { - let groupsFound: DebugElement[]; - beforeEach(fakeAsync(() => { - const addButton = fixture.debugElement.query(By.css('#subgroupsOfGroup tbody .deleteButton')); - addButton.triggerEventHandler('click', { - preventDefault: () => {/**/ - } + it('should show a delete button next to each subgroup', () => { + const subgroupsFound = fixture.debugElement.queryAll(By.css('#subgroupsOfGroup tbody tr')); + subgroupsFound.map((foundGroupRowElement: DebugElement) => { + const addButton: DebugElement = foundGroupRowElement.query(By.css('td:last-child .fa-plus')); + const deleteButton: DebugElement = foundGroupRowElement.query(By.css('td:last-child .fa-trash-alt')); + expect(addButton).toBeNull(); + expect(deleteButton).not.toBeNull(); + }); + }); + + describe('if first group delete button is pressed', () => { + let groupsFound: DebugElement[]; + beforeEach(() => { + const deleteButton = fixture.debugElement.query(By.css('#subgroupsOfGroup tbody .deleteButton')); + deleteButton.nativeElement.click(); + fixture.detectChanges(); + }); + it('then no subgroup remains as a member of the active group', () => { + groupsFound = fixture.debugElement.queryAll(By.css('#subgroupsOfGroup tbody tr')); + expect(groupsFound.length).toEqual(0); }); - tick(); - fixture.detectChanges(); - })); - it('one less subgroup in list from 1 to 0 (of 2 total groups)', () => { - groupsFound = fixture.debugElement.queryAll(By.css('#subgroupsOfGroup tbody tr')); - expect(groupsFound.length).toEqual(0); }); }); @@ -169,54 +205,38 @@ describe('SubgroupsListComponent', () => { let groupsFound: DebugElement[]; beforeEach(fakeAsync(() => { component.search({ query: '' }); + fixture.detectChanges(); groupsFound = fixture.debugElement.queryAll(By.css('#groupsSearch tbody tr')); })); - it('should display all groups', () => { - fixture.detectChanges(); - groupsFound = fixture.debugElement.queryAll(By.css('#groupsSearch tbody tr')); - expect(groupsFound.length).toEqual(2); - groupsFound = fixture.debugElement.queryAll(By.css('#groupsSearch tbody tr')); + it('should display only non-member groups (i.e. groups that are not a subgroup)', () => { const groupIdsFound: DebugElement[] = fixture.debugElement.queryAll(By.css('#groupsSearch tbody tr td:first-child')); - allGroups.map((group: Group) => { + expect(groupIdsFound.length).toEqual(1); + groupNonMembers.map((group: Group) => { expect(groupIdsFound.find((foundEl: DebugElement) => { return (foundEl.nativeElement.textContent.trim() === group.uuid); })).toBeTruthy(); }); }); - describe('if group is already a subgroup', () => { - it('should have delete button, else it should have add button', () => { + it('should display an add button next to non-member groups, not a delete button', () => { + groupsFound.map((foundGroupRowElement: DebugElement) => { + const addButton: DebugElement = foundGroupRowElement.query(By.css('td:last-child .fa-plus')); + const deleteButton: DebugElement = foundGroupRowElement.query(By.css('td:last-child .fa-trash-alt')); + expect(addButton).not.toBeNull(); + expect(deleteButton).toBeNull(); + }); + }); + + describe('if first add button is pressed', () => { + beforeEach(() => { + const addButton: DebugElement = fixture.debugElement.query(By.css('#groupsSearch tbody .fa-plus')); + addButton.nativeElement.click(); fixture.detectChanges(); + }); + it('then all (two) Groups are subgroups of the active group. No non-members left', () => { groupsFound = fixture.debugElement.queryAll(By.css('#groupsSearch tbody tr')); - const getSubgroups = groupsDataServiceStub.getSubgroups().subgroups; - if (getSubgroups !== undefined && getSubgroups.length > 0) { - groupsFound.map((foundGroupRowElement: DebugElement) => { - const groupId: DebugElement = foundGroupRowElement.query(By.css('td:first-child')); - const addButton: DebugElement = foundGroupRowElement.query(By.css('td:last-child .fa-plus')); - const deleteButton: DebugElement = foundGroupRowElement.query(By.css('td:last-child .fa-trash-alt')); - expect(addButton).toBeNull(); - if (activeGroup.id === groupId.nativeElement.textContent) { - expect(deleteButton).toBeNull(); - } else { - expect(deleteButton).not.toBeNull(); - } - }); - } else { - const subgroupIds: string[] = activeGroup.subgroups.map((group: Group) => group.id); - groupsFound.map((foundGroupRowElement: DebugElement) => { - const groupId: DebugElement = foundGroupRowElement.query(By.css('td:first-child')); - const addButton: DebugElement = foundGroupRowElement.query(By.css('td:last-child .fa-plus')); - const deleteButton: DebugElement = foundGroupRowElement.query(By.css('td:last-child .fa-trash-alt')); - if (subgroupIds.includes(groupId.nativeElement.textContent)) { - expect(addButton).toBeNull(); - expect(deleteButton).not.toBeNull(); - } else { - expect(deleteButton).toBeNull(); - expect(addButton).not.toBeNull(); - } - }); - } + expect(groupsFound.length).toEqual(0); }); }); }); -- GitLab From 4a1f2a1b7570703a4e76b4189315f130f063daf0 Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Fri, 13 Oct 2023 14:43:28 -0500 Subject: [PATCH 159/183] Refactor members-list and subgroups-list components to use new isNotMemberOf endpoints (via services) (cherry picked from commit 8a10888d2ad7916570472173070370da61320a72) --- .../members-list/members-list.component.html | 10 +---- .../members-list.component.spec.ts | 2 +- .../members-list/members-list.component.ts | 30 +++++++------ .../subgroups-list.component.html | 5 +-- .../subgroups-list.component.spec.ts | 2 +- .../subgroup-list/subgroups-list.component.ts | 35 +++++++--------- .../core/eperson/eperson-data.service.spec.ts | 25 +++++++++++ src/app/core/eperson/eperson-data.service.ts | 28 +++++++++++++ .../core/eperson/group-data.service.spec.ts | 28 ++++++++++++- src/app/core/eperson/group-data.service.ts | 42 +++++++++++-------- src/assets/i18n/en.json5 | 10 ----- 11 files changed, 139 insertions(+), 78 deletions(-) diff --git a/src/app/access-control/group-registry/group-form/members-list/members-list.component.html b/src/app/access-control/group-registry/group-form/members-list/members-list.component.html index 0f5010e08e..e185d37e28 100644 --- a/src/app/access-control/group-registry/group-form/members-list/members-list.component.html +++ b/src/app/access-control/group-registry/group-form/members-list/members-list.component.html @@ -15,14 +15,8 @@ </h4> <form [formGroup]="searchForm" (ngSubmit)="search(searchForm.value)" class="d-flex justify-content-between"> - <div> - <select name="scope" id="scope" formControlName="scope" class="form-control" aria-label="Search scope"> - <option value="metadata">{{messagePrefix + '.search.scope.metadata' | translate}}</option> - <option value="email">{{messagePrefix + '.search.scope.email' | translate}}</option> - </select> - </div> - <div class="flex-grow-1 mr-3 ml-3"> - <div class="form-group input-group"> + <div class="flex-grow-1 mr-3"> + <div class="form-group input-group mr-3"> <input type="text" name="query" id="query" formControlName="query" class="form-control" aria-label="Search input"> <span class="input-group-append"> diff --git a/src/app/access-control/group-registry/group-form/members-list/members-list.component.spec.ts b/src/app/access-control/group-registry/group-form/members-list/members-list.component.spec.ts index 76e38067bc..5d97dcade8 100644 --- a/src/app/access-control/group-registry/group-form/members-list/members-list.component.spec.ts +++ b/src/app/access-control/group-registry/group-form/members-list/members-list.component.spec.ts @@ -56,7 +56,7 @@ describe('MembersListComponent', () => { return createSuccessfulRemoteDataObject$(buildPaginatedList<EPerson>(new PageInfo(), groupsDataServiceStub.getEPersonMembers())); }, // This method is used to search across *non-members* - searchByScope(scope: string, query: string): Observable<RemoteData<PaginatedList<EPerson>>> { + searchNonMembers(query: string, group: string): Observable<RemoteData<PaginatedList<EPerson>>> { if (query === '') { return createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), epersonNonMembers)); } diff --git a/src/app/access-control/group-registry/group-form/members-list/members-list.component.ts b/src/app/access-control/group-registry/group-form/members-list/members-list.component.ts index e828555a80..4924f3168b 100644 --- a/src/app/access-control/group-registry/group-form/members-list/members-list.component.ts +++ b/src/app/access-control/group-registry/group-form/members-list/members-list.component.ts @@ -124,7 +124,6 @@ export class MembersListComponent implements OnInit, OnDestroy { // Current search in edit group - epeople search form currentSearchQuery: string; - currentSearchScope: string; // Whether or not user has done a EPeople search yet searchDone: boolean; @@ -143,12 +142,10 @@ export class MembersListComponent implements OnInit, OnDestroy { public dsoNameService: DSONameService, ) { this.currentSearchQuery = ''; - this.currentSearchScope = 'metadata'; } ngOnInit(): void { this.searchForm = this.formBuilder.group(({ - scope: 'metadata', query: '', })); this.subs.set(SubKey.ActiveGroup, this.groupDataService.getActiveGroup().subscribe((activeGroup: Group) => { @@ -213,6 +210,11 @@ export class MembersListComponent implements OnInit, OnDestroy { if (activeGroup != null) { const response = this.groupDataService.deleteMemberFromGroup(activeGroup, eperson); this.showNotifications('deleteMember', response, this.dsoNameService.getName(eperson), activeGroup); + // Reload search results (if there is an active query). + // This will potentially add this deleted subgroup into the list of search results. + if (this.currentSearchQuery != null) { + this.search({query: this.currentSearchQuery}); + } } else { this.notificationsService.error(this.translateService.get(this.messagePrefix + '.notification.failure.noActiveGroup')); } @@ -228,6 +230,11 @@ export class MembersListComponent implements OnInit, OnDestroy { if (activeGroup != null) { const response = this.groupDataService.addMemberToGroup(activeGroup, eperson); this.showNotifications('addMember', response, this.dsoNameService.getName(eperson), activeGroup); + // Reload search results (if there is an active query). + // This will potentially add this deleted subgroup into the list of search results. + if (this.currentSearchQuery != null) { + this.search({query: this.currentSearchQuery}); + } } else { this.notificationsService.error(this.translateService.get(this.messagePrefix + '.notification.failure.noActiveGroup')); } @@ -235,17 +242,15 @@ export class MembersListComponent implements OnInit, OnDestroy { } /** - * Search in the EPeople by name, email or metadata - * @param data Contains scope and query param + * Search all EPeople who are NOT a member of the current group by name, email or metadata + * @param data Contains query param */ search(data: any) { this.unsubFrom(SubKey.SearchResults); this.subs.set(SubKey.SearchResults, this.paginationService.getCurrentPagination(this.configSearch.id, this.configSearch).pipe( switchMap((paginationOptions) => { - const query: string = data.query; - const scope: string = data.scope; if (query != null && this.currentSearchQuery !== query && this.groupBeingEdited) { this.router.navigate([], { queryParamsHandling: 'merge' @@ -253,19 +258,12 @@ export class MembersListComponent implements OnInit, OnDestroy { this.currentSearchQuery = query; this.paginationService.resetPage(this.configSearch.id); } - if (scope != null && this.currentSearchScope !== scope && this.groupBeingEdited) { - this.router.navigate([], { - queryParamsHandling: 'merge' - }); - this.currentSearchScope = scope; - this.paginationService.resetPage(this.configSearch.id); - } this.searchDone = true; - return this.ePersonDataService.searchByScope(this.currentSearchScope, this.currentSearchQuery, { + return this.ePersonDataService.searchNonMembers(this.currentSearchQuery, this.groupBeingEdited.id, { currentPage: paginationOptions.currentPage, elementsPerPage: paginationOptions.pageSize - }); + }, false, true); }), getAllCompletedRemoteData(), map((rd: RemoteData<any>) => { diff --git a/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.html b/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.html index 8268eb5eb4..d97272ec6f 100644 --- a/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.html +++ b/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.html @@ -62,10 +62,7 @@ <td class="align-middle">{{ dsoNameService.getName((group.object | async)?.payload) }}</td> <td class="align-middle"> <div class="btn-group edit-field"> - <span *ngIf="(isActiveGroup(group) | async)">{{ messagePrefix + '.table.edit.currentGroup' | translate }}</span> - - <button *ngIf="!(isActiveGroup(group) | async)" - (click)="addSubgroupToGroup(group)" + <button (click)="addSubgroupToGroup(group)" class="btn btn-outline-primary btn-sm addButton" title="{{messagePrefix + '.table.edit.buttons.add' | translate: { name: dsoNameService.getName(group) } }}"> <i class="fas fa-plus fa-fw"></i> diff --git a/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.spec.ts b/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.spec.ts index 7bbbb24f30..6fe7c2cf67 100644 --- a/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.spec.ts +++ b/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.spec.ts @@ -87,7 +87,7 @@ describe('SubgroupsListComponent', () => { return '/access-control/groups/' + group.id; }, // This method is used to get all groups which are NOT currently a subgroup member - searchGroups(query: string): Observable<RemoteData<PaginatedList<Group>>> { + searchNonMemberGroups(query: string, group: string): Observable<RemoteData<PaginatedList<Group>>> { if (query === '') { return createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), groupNonMembers)); } diff --git a/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts b/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts index 83df0d8cdd..20200e47d2 100644 --- a/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts +++ b/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts @@ -2,8 +2,8 @@ import { Component, Input, OnDestroy, OnInit } from '@angular/core'; import { UntypedFormBuilder } from '@angular/forms'; import { Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; -import { BehaviorSubject, Observable, of as observableOf, Subscription } from 'rxjs'; -import { mergeMap, switchMap, take } from 'rxjs/operators'; +import { BehaviorSubject, Observable, Subscription } from 'rxjs'; +import { switchMap, take } from 'rxjs/operators'; import { PaginatedList } from '../../../../core/data/paginated-list.model'; import { RemoteData } from '../../../../core/data/remote-data'; import { GroupDataService } from '../../../../core/eperson/group-data.service'; @@ -129,20 +129,6 @@ export class SubgroupsListComponent implements OnInit, OnDestroy { })); } - /** - * Whether or not the given group is the current group being edited - * @param group Group that is possibly the current group being edited - */ - isActiveGroup(group: Group): Observable<boolean> { - return this.groupDataService.getActiveGroup().pipe(take(1), - mergeMap((activeGroup: Group) => { - if (activeGroup != null && activeGroup.uuid === group.uuid) { - return observableOf(true); - } - return observableOf(false); - })); - } - /** * Deletes given subgroup from the group currently being edited * @param subgroup Group we want to delete from the subgroups of the group currently being edited @@ -152,6 +138,11 @@ export class SubgroupsListComponent implements OnInit, OnDestroy { if (activeGroup != null) { const response = this.groupDataService.deleteSubGroupFromGroup(activeGroup, subgroup); this.showNotifications('deleteSubgroup', response, this.dsoNameService.getName(subgroup), activeGroup); + // Reload search results (if there is an active query). + // This will potentially add this deleted subgroup into the list of search results. + if (this.currentSearchQuery != null) { + this.search({query: this.currentSearchQuery}); + } } else { this.notificationsService.error(this.translateService.get(this.messagePrefix + '.notification.failure.noActiveGroup')); } @@ -168,6 +159,11 @@ export class SubgroupsListComponent implements OnInit, OnDestroy { if (activeGroup.uuid !== subgroup.uuid) { const response = this.groupDataService.addSubGroupToGroup(activeGroup, subgroup); this.showNotifications('addSubgroup', response, this.dsoNameService.getName(subgroup), activeGroup); + // Reload search results (if there is an active query). + // This will potentially remove this added subgroup from search results. + if (this.currentSearchQuery != null) { + this.search({query: this.currentSearchQuery}); + } } else { this.notificationsService.error(this.translateService.get(this.messagePrefix + '.notification.failure.subgroupToAddIsActiveGroup')); } @@ -178,7 +174,8 @@ export class SubgroupsListComponent implements OnInit, OnDestroy { } /** - * Search in the groups (searches by group name and by uuid exact match) + * Search all non-member groups (searches by group name and by uuid exact match). Used to search for + * groups that could be added to current group as a subgroup. * @param data Contains query param */ search(data: any) { @@ -192,10 +189,10 @@ export class SubgroupsListComponent implements OnInit, OnDestroy { this.unsubFrom(SubKey.SearchResults); this.subs.set(SubKey.SearchResults, this.paginationService.getCurrentPagination(this.configSearch.id, this.configSearch).pipe( - switchMap((config) => this.groupDataService.searchGroups(this.currentSearchQuery, { + switchMap((config) => this.groupDataService.searchNonMemberGroups(this.currentSearchQuery, this.groupBeingEdited.id, { currentPage: config.currentPage, elementsPerPage: config.pageSize - }, true, true, followLink('object') + }, false, true, followLink('object') )) ).subscribe((rd: RemoteData<PaginatedList<Group>>) => { this.searchResults$.next(rd); diff --git a/src/app/core/eperson/eperson-data.service.spec.ts b/src/app/core/eperson/eperson-data.service.spec.ts index b4b939eebf..c1bc3563a3 100644 --- a/src/app/core/eperson/eperson-data.service.spec.ts +++ b/src/app/core/eperson/eperson-data.service.spec.ts @@ -11,6 +11,7 @@ import { EPeopleRegistryCancelEPersonAction, EPeopleRegistryEditEPersonAction } from '../../access-control/epeople-registry/epeople-registry.actions'; +import { GroupMock } from '../../shared/testing/group-mock'; import { RequestParam } from '../cache/models/request-param.model'; import { ChangeAnalyzer } from '../data/change-analyzer'; import { PatchRequest, PostRequest } from '../data/request.models'; @@ -140,6 +141,30 @@ describe('EPersonDataService', () => { }); }); + describe('searchNonMembers', () => { + beforeEach(() => { + spyOn(service, 'searchBy'); + }); + + it('search with empty query and a group ID', () => { + service.searchNonMembers('', GroupMock.id); + const options = Object.assign(new FindListOptions(), { + searchParams: [Object.assign(new RequestParam('query', '')), + Object.assign(new RequestParam('group', GroupMock.id))] + }); + expect(service.searchBy).toHaveBeenCalledWith('isNotMemberOf', options, true, true); + }); + + it('search with query and a group ID', () => { + service.searchNonMembers('test', GroupMock.id); + const options = Object.assign(new FindListOptions(), { + searchParams: [Object.assign(new RequestParam('query', 'test')), + Object.assign(new RequestParam('group', GroupMock.id))] + }); + expect(service.searchBy).toHaveBeenCalledWith('isNotMemberOf', options, true, true); + }); + }); + describe('updateEPerson', () => { beforeEach(() => { spyOn(service, 'findByHref').and.returnValue(createSuccessfulRemoteDataObject$(EPersonMock)); diff --git a/src/app/core/eperson/eperson-data.service.ts b/src/app/core/eperson/eperson-data.service.ts index 00620655de..fb8b8bc9b0 100644 --- a/src/app/core/eperson/eperson-data.service.ts +++ b/src/app/core/eperson/eperson-data.service.ts @@ -177,6 +177,34 @@ export class EPersonDataService extends IdentifiableDataService<EPerson> impleme return this.searchBy(searchMethod, findListOptions, useCachedVersionIfAvailable, reRequestOnStale, ...linksToFollow); } + /** + * Searches for all EPerons which are *not* a member of a given group, via a passed in query + * (searches all EPerson metadata and by exact UUID). + * Endpoint used: /eperson/epesons/search/isNotMemberOf?query=<:string>&group=<:uuid> + * @param query search query param + * @param group UUID of group to exclude results from. Members of this group will never be returned. + * @param options + * @param useCachedVersionIfAvailable If this is true, the request will only be sent if there's + * no valid cached version. Defaults to true + * @param reRequestOnStale Whether or not the request should automatically be re- + * requested after the response becomes stale + * @param linksToFollow List of {@link FollowLinkConfig} that indicate which + * {@link HALLink}s should be automatically resolved + */ + public searchNonMembers(query: string, group: string, options?: FindListOptions, useCachedVersionIfAvailable = true, reRequestOnStale = true, ...linksToFollow: FollowLinkConfig<EPerson>[]): Observable<RemoteData<PaginatedList<EPerson>>> { + const searchParams = [new RequestParam('query', query), new RequestParam('group', group)]; + let findListOptions = new FindListOptions(); + if (options) { + findListOptions = Object.assign(new FindListOptions(), options); + } + if (findListOptions.searchParams) { + findListOptions.searchParams = [...findListOptions.searchParams, ...searchParams]; + } else { + findListOptions.searchParams = searchParams; + } + return this.searchBy('isNotMemberOf', findListOptions, useCachedVersionIfAvailable, reRequestOnStale, ...linksToFollow); + } + /** * Add a new patch to the object cache * The patch is derived from the differences between the given object and its version in the object cache diff --git a/src/app/core/eperson/group-data.service.spec.ts b/src/app/core/eperson/group-data.service.spec.ts index b424aed1aa..6eecfd7fa1 100644 --- a/src/app/core/eperson/group-data.service.spec.ts +++ b/src/app/core/eperson/group-data.service.spec.ts @@ -43,11 +43,11 @@ describe('GroupDataService', () => { let rdbService; let objectCache; function init() { - restEndpointURL = 'https://dspace.4science.it/dspace-spring-rest/api/eperson'; + restEndpointURL = 'https://rest.api/server/api/eperson'; groupsEndpoint = `${restEndpointURL}/groups`; groups = [GroupMock, GroupMock2]; groups$ = createSuccessfulRemoteDataObject$(createPaginatedList(groups)); - rdbService = getMockRemoteDataBuildServiceHrefMap(undefined, { 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups': groups$ }); + rdbService = getMockRemoteDataBuildServiceHrefMap(undefined, { 'https://rest.api/server/api/eperson/groups': groups$ }); halService = new HALEndpointServiceStub(restEndpointURL); objectCache = getMockObjectCacheService(); TestBed.configureTestingModule({ @@ -111,6 +111,30 @@ describe('GroupDataService', () => { }); }); + describe('searchNonMemberGroups', () => { + beforeEach(() => { + spyOn(service, 'searchBy'); + }); + + it('search with empty query and a group ID', () => { + service.searchNonMemberGroups('', GroupMock.id); + const options = Object.assign(new FindListOptions(), { + searchParams: [Object.assign(new RequestParam('query', '')), + Object.assign(new RequestParam('group', GroupMock.id))] + }); + expect(service.searchBy).toHaveBeenCalledWith('isNotMemberOf', options, true, true); + }); + + it('search with query and a group ID', () => { + service.searchNonMemberGroups('test', GroupMock.id); + const options = Object.assign(new FindListOptions(), { + searchParams: [Object.assign(new RequestParam('query', 'test')), + Object.assign(new RequestParam('group', GroupMock.id))] + }); + expect(service.searchBy).toHaveBeenCalledWith('isNotMemberOf', options, true, true); + }); + }); + describe('addSubGroupToGroup', () => { beforeEach(() => { objectCache.getByHref.and.returnValue(observableOf({ diff --git a/src/app/core/eperson/group-data.service.ts b/src/app/core/eperson/group-data.service.ts index 7b3a14c70b..683d026bb6 100644 --- a/src/app/core/eperson/group-data.service.ts +++ b/src/app/core/eperson/group-data.service.ts @@ -3,7 +3,7 @@ import { Injectable } from '@angular/core'; import { createSelector, select, Store } from '@ngrx/store'; import { Observable, zip as observableZip } from 'rxjs'; -import { filter, map, take } from 'rxjs/operators'; +import { take } from 'rxjs/operators'; import { GroupRegistryCancelGroupAction, GroupRegistryEditGroupAction @@ -105,23 +105,31 @@ export class GroupDataService extends IdentifiableDataService<Group> implements } /** - * Check if the current user is member of to the indicated group - * - * @param groupName - * the group name - * @return boolean - * true if user is member of the indicated group, false otherwise + * Searches for all groups which are *not* a member of a given group, via a passed in query + * (searches in group name and by exact UUID). + * Endpoint used: /eperson/groups/search/isNotMemberOf?query=<:string>&group=<:uuid> + * @param query search query param + * @param group UUID of group to exclude results from. Members of this group will never be returned. + * @param options + * @param useCachedVersionIfAvailable If this is true, the request will only be sent if there's + * no valid cached version. Defaults to true + * @param reRequestOnStale Whether or not the request should automatically be re- + * requested after the response becomes stale + * @param linksToFollow List of {@link FollowLinkConfig} that indicate which + * {@link HALLink}s should be automatically resolved */ - isMemberOf(groupName: string): Observable<boolean> { - const searchHref = 'isMemberOf'; - const options = new FindListOptions(); - options.searchParams = [new RequestParam('groupName', groupName)]; - - return this.searchBy(searchHref, options).pipe( - filter((groups: RemoteData<PaginatedList<Group>>) => !groups.isResponsePending), - take(1), - map((groups: RemoteData<PaginatedList<Group>>) => groups.payload.totalElements > 0) - ); + public searchNonMemberGroups(query: string, group: string, options?: FindListOptions, useCachedVersionIfAvailable = true, reRequestOnStale = true, ...linksToFollow: FollowLinkConfig<Group>[]): Observable<RemoteData<PaginatedList<Group>>> { + const searchParams = [new RequestParam('query', query), new RequestParam('group', group)]; + let findListOptions = new FindListOptions(); + if (options) { + findListOptions = Object.assign(new FindListOptions(), options); + } + if (findListOptions.searchParams) { + findListOptions.searchParams = [...findListOptions.searchParams, ...searchParams]; + } else { + findListOptions.searchParams = searchParams; + } + return this.searchBy('isNotMemberOf', findListOptions, useCachedVersionIfAvailable, reRequestOnStale, ...linksToFollow); } /** diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 5c2ec4a7c4..6dee5d54e6 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -434,10 +434,6 @@ "admin.access-control.groups.form.members-list.headMembers": "Current Members", - "admin.access-control.groups.form.members-list.search.scope.metadata": "Metadata", - - "admin.access-control.groups.form.members-list.search.scope.email": "E-mail (exact)", - "admin.access-control.groups.form.members-list.search.button": "Search", "admin.access-control.groups.form.members-list.table.id": "ID", @@ -494,8 +490,6 @@ "admin.access-control.groups.form.subgroups-list.table.edit.buttons.add": "Add subgroup with name \"{{name}}\"", - "admin.access-control.groups.form.subgroups-list.table.edit.currentGroup": "Current group", - "admin.access-control.groups.form.subgroups-list.notification.success.addSubgroup": "Successfully added subgroup: \"{{name}}\"", "admin.access-control.groups.form.subgroups-list.notification.failure.addSubgroup": "Failed to add subgroup: \"{{name}}\"", @@ -632,10 +626,6 @@ "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", - - "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", "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.id": "ID", -- GitLab From 8cc36d7056bada292bf849a03c6eba3b590e4508 Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Fri, 13 Oct 2023 14:56:45 -0500 Subject: [PATCH 160/183] Refactor subgroups-list component's "search()" to act same as member-list component's "search()". Avoids reloading the page as frequently. (cherry picked from commit 2eb1a17e4e0fd0eb6a13f30c6f8b847f6d9d7a89) --- .../subgroup-list/subgroups-list.component.ts | 49 ++++++++++++------- 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts b/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts index 20200e47d2..119b147a95 100644 --- a/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts +++ b/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts @@ -3,12 +3,13 @@ import { UntypedFormBuilder } from '@angular/forms'; import { Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; import { BehaviorSubject, Observable, Subscription } from 'rxjs'; -import { switchMap, take } from 'rxjs/operators'; +import { map, switchMap, take } from 'rxjs/operators'; import { PaginatedList } from '../../../../core/data/paginated-list.model'; import { RemoteData } from '../../../../core/data/remote-data'; import { GroupDataService } from '../../../../core/eperson/group-data.service'; import { Group } from '../../../../core/eperson/models/group.model'; import { + getAllCompletedRemoteData, getFirstCompletedRemoteData } from '../../../../core/shared/operators'; import { NotificationsService } from '../../../../shared/notifications/notifications.service'; @@ -179,24 +180,36 @@ export class SubgroupsListComponent implements OnInit, OnDestroy { * @param data Contains query param */ search(data: any) { - const query: string = data.query; - if (query != null && this.currentSearchQuery !== query) { - this.router.navigateByUrl(this.groupDataService.getGroupEditPageRouterLink(this.groupBeingEdited)); - this.currentSearchQuery = query; - this.configSearch.currentPage = 1; - } - this.searchDone = true; - this.unsubFrom(SubKey.SearchResults); - this.subs.set(SubKey.SearchResults, this.paginationService.getCurrentPagination(this.configSearch.id, this.configSearch).pipe( - switchMap((config) => this.groupDataService.searchNonMemberGroups(this.currentSearchQuery, this.groupBeingEdited.id, { - currentPage: config.currentPage, - elementsPerPage: config.pageSize - }, false, true, followLink('object') - )) - ).subscribe((rd: RemoteData<PaginatedList<Group>>) => { - this.searchResults$.next(rd); - })); + this.subs.set(SubKey.SearchResults, + this.paginationService.getCurrentPagination(this.configSearch.id, this.configSearch).pipe( + switchMap((paginationOptions) => { + const query: string = data.query; + if (query != null && this.currentSearchQuery !== query && this.groupBeingEdited) { + this.router.navigate([], { + queryParamsHandling: 'merge' + }); + this.currentSearchQuery = query; + this.paginationService.resetPage(this.configSearch.id); + } + this.searchDone = true; + + return this.groupDataService.searchNonMemberGroups(this.currentSearchQuery, this.groupBeingEdited.id, { + currentPage: paginationOptions.currentPage, + elementsPerPage: paginationOptions.pageSize + }, false, true, followLink('object')); + }), + getAllCompletedRemoteData(), + map((rd: RemoteData<any>) => { + if (rd.hasFailed) { + this.notificationsService.error(this.translateService.get(this.messagePrefix + '.notification.failure', { cause: rd.errorMessage })); + } else { + return rd; + } + })) + .subscribe((rd: RemoteData<PaginatedList<Group>>) => { + this.searchResults$.next(rd); + })); } /** -- GitLab From 37ae09acd185d96a9690751a52bfd6d82cbc5b32 Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Fri, 13 Oct 2023 15:07:04 -0500 Subject: [PATCH 161/183] Remove seemingly unnecessary page reload after new search. (cherry picked from commit d163db13f219ab81ca821e1695a2193edb38c79a) --- .../group-form/members-list/members-list.component.ts | 3 --- .../group-form/subgroup-list/subgroups-list.component.ts | 3 --- 2 files changed, 6 deletions(-) diff --git a/src/app/access-control/group-registry/group-form/members-list/members-list.component.ts b/src/app/access-control/group-registry/group-form/members-list/members-list.component.ts index 4924f3168b..d2ddd700a9 100644 --- a/src/app/access-control/group-registry/group-form/members-list/members-list.component.ts +++ b/src/app/access-control/group-registry/group-form/members-list/members-list.component.ts @@ -252,9 +252,6 @@ export class MembersListComponent implements OnInit, OnDestroy { switchMap((paginationOptions) => { const query: string = data.query; if (query != null && this.currentSearchQuery !== query && this.groupBeingEdited) { - this.router.navigate([], { - queryParamsHandling: 'merge' - }); this.currentSearchQuery = query; this.paginationService.resetPage(this.configSearch.id); } diff --git a/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts b/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts index 119b147a95..12cdc27943 100644 --- a/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts +++ b/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts @@ -186,9 +186,6 @@ export class SubgroupsListComponent implements OnInit, OnDestroy { switchMap((paginationOptions) => { const query: string = data.query; if (query != null && this.currentSearchQuery !== query && this.groupBeingEdited) { - this.router.navigate([], { - queryParamsHandling: 'merge' - }); this.currentSearchQuery = query; this.paginationService.resetPage(this.configSearch.id); } -- GitLab From d305e6096a129a6949bc2952e54ef053aabe3838 Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Thu, 9 Nov 2023 13:57:04 -0600 Subject: [PATCH 162/183] Address feedback. Run empty search on init. Reorder sections to list current members before add members (for both eperson and groups) (cherry picked from commit 9117ac005f575277bf2e025d18afb878d18b0589) --- .../members-list/members-list.component.html | 108 +++++++++--------- .../members-list/members-list.component.ts | 1 + .../subgroups-list.component.html | 98 ++++++++-------- .../subgroup-list/subgroups-list.component.ts | 1 + 4 files changed, 105 insertions(+), 103 deletions(-) diff --git a/src/app/access-control/group-registry/group-form/members-list/members-list.component.html b/src/app/access-control/group-registry/group-form/members-list/members-list.component.html index e185d37e28..c0c77f44eb 100644 --- a/src/app/access-control/group-registry/group-form/members-list/members-list.component.html +++ b/src/app/access-control/group-registry/group-form/members-list/members-list.component.html @@ -1,6 +1,60 @@ <ng-container> <h3 class="border-bottom pb-2">{{messagePrefix + '.head' | translate}}</h3> + <h4>{{messagePrefix + '.headMembers' | translate}}</h4> + + <ds-pagination *ngIf="(ePeopleMembersOfGroup | async)?.totalElements > 0" + [paginationOptions]="config" + [pageInfoState]="(ePeopleMembersOfGroup | async)" + [collectionSize]="(ePeopleMembersOfGroup | async)?.totalElements" + [hideGear]="true" + [hidePagerWhenSinglePage]="true"> + + <div class="table-responsive"> + <table id="ePeopleMembersOfGroup" class="table table-striped table-hover table-bordered"> + <thead> + <tr> + <th scope="col" class="align-middle">{{messagePrefix + '.table.id' | translate}}</th> + <th scope="col" class="align-middle">{{messagePrefix + '.table.name' | translate}}</th> + <th scope="col" class="align-middle">{{messagePrefix + '.table.identity' | translate}}</th> + <th class="align-middle">{{messagePrefix + '.table.edit' | translate}}</th> + </tr> + </thead> + <tbody> + <tr *ngFor="let eperson of (ePeopleMembersOfGroup | async)?.page"> + <td class="align-middle">{{eperson.id}}</td> + <td class="align-middle"> + <a (click)="ePersonDataService.startEditingNewEPerson(eperson)" + [routerLink]="[ePersonDataService.getEPeoplePageRouterLink()]"> + {{ dsoNameService.getName(eperson) }} + </a> + </td> + <td class="align-middle"> + {{messagePrefix + '.table.email' | translate}}: {{ eperson.email ? eperson.email : '-' }}<br/> + {{messagePrefix + '.table.netid' | translate}}: {{ eperson.netid ? eperson.netid : '-' }} + </td> + <td class="align-middle"> + <div class="btn-group edit-field"> + <button (click)="deleteMemberFromGroup(eperson)" + [disabled]="actionConfig.remove.disabled" + [ngClass]="['btn btn-sm', actionConfig.remove.css]" + title="{{messagePrefix + '.table.edit.buttons.remove' | translate: { name: dsoNameService.getName(eperson) } }}"> + <i [ngClass]="actionConfig.remove.icon"></i> + </button> + </div> + </td> + </tr> + </tbody> + </table> + </div> + + </ds-pagination> + + <div *ngIf="(ePeopleMembersOfGroup | async) == undefined || (ePeopleMembersOfGroup | async)?.totalElements == 0" class="alert alert-info w-100 mb-2" + role="alert"> + {{messagePrefix + '.no-members-yet' | translate}} + </div> + <h4 id="search" class="border-bottom pb-2"> <span *dsContextHelp="{ @@ -84,58 +138,4 @@ {{messagePrefix + '.no-items' | translate}} </div> - <h4>{{messagePrefix + '.headMembers' | translate}}</h4> - - <ds-pagination *ngIf="(ePeopleMembersOfGroup | async)?.totalElements > 0" - [paginationOptions]="config" - [pageInfoState]="(ePeopleMembersOfGroup | async)" - [collectionSize]="(ePeopleMembersOfGroup | async)?.totalElements" - [hideGear]="true" - [hidePagerWhenSinglePage]="true"> - - <div class="table-responsive"> - <table id="ePeopleMembersOfGroup" class="table table-striped table-hover table-bordered"> - <thead> - <tr> - <th scope="col" class="align-middle">{{messagePrefix + '.table.id' | translate}}</th> - <th scope="col" class="align-middle">{{messagePrefix + '.table.name' | translate}}</th> - <th scope="col" class="align-middle">{{messagePrefix + '.table.identity' | translate}}</th> - <th class="align-middle">{{messagePrefix + '.table.edit' | translate}}</th> - </tr> - </thead> - <tbody> - <tr *ngFor="let eperson of (ePeopleMembersOfGroup | async)?.page"> - <td class="align-middle">{{eperson.id}}</td> - <td class="align-middle"> - <a (click)="ePersonDataService.startEditingNewEPerson(eperson)" - [routerLink]="[ePersonDataService.getEPeoplePageRouterLink()]"> - {{ dsoNameService.getName(eperson) }} - </a> - </td> - <td class="align-middle"> - {{messagePrefix + '.table.email' | translate}}: {{ eperson.email ? eperson.email : '-' }}<br/> - {{messagePrefix + '.table.netid' | translate}}: {{ eperson.netid ? eperson.netid : '-' }} - </td> - <td class="align-middle"> - <div class="btn-group edit-field"> - <button (click)="deleteMemberFromGroup(eperson)" - [disabled]="actionConfig.remove.disabled" - [ngClass]="['btn btn-sm', actionConfig.remove.css]" - title="{{messagePrefix + '.table.edit.buttons.remove' | translate: { name: dsoNameService.getName(eperson) } }}"> - <i [ngClass]="actionConfig.remove.icon"></i> - </button> - </div> - </td> - </tr> - </tbody> - </table> - </div> - - </ds-pagination> - - <div *ngIf="(ePeopleMembersOfGroup | async) == undefined || (ePeopleMembersOfGroup | async)?.totalElements == 0" class="alert alert-info w-100 mb-2" - role="alert"> - {{messagePrefix + '.no-members-yet' | translate}} - </div> - </ng-container> diff --git a/src/app/access-control/group-registry/group-form/members-list/members-list.component.ts b/src/app/access-control/group-registry/group-form/members-list/members-list.component.ts index d2ddd700a9..feb90b52b3 100644 --- a/src/app/access-control/group-registry/group-form/members-list/members-list.component.ts +++ b/src/app/access-control/group-registry/group-form/members-list/members-list.component.ts @@ -152,6 +152,7 @@ export class MembersListComponent implements OnInit, OnDestroy { if (activeGroup != null) { this.groupBeingEdited = activeGroup; this.retrieveMembers(this.config.currentPage); + this.search({query: ''}); } })); } diff --git a/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.html b/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.html index d97272ec6f..85fe8974ed 100644 --- a/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.html +++ b/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.html @@ -1,6 +1,55 @@ <ng-container> <h3 class="border-bottom pb-2">{{messagePrefix + '.head' | translate}}</h3> + <h4>{{messagePrefix + '.headSubgroups' | translate}}</h4> + + <ds-pagination *ngIf="(subGroups$ | async)?.payload?.totalElements > 0" + [paginationOptions]="config" + [pageInfoState]="(subGroups$ | async)?.payload" + [collectionSize]="(subGroups$ | async)?.payload?.totalElements" + [hideGear]="true" + [hidePagerWhenSinglePage]="true"> + + <div class="table-responsive"> + <table id="subgroupsOfGroup" class="table table-striped table-hover table-bordered"> + <thead> + <tr> + <th scope="col" class="align-middle">{{messagePrefix + '.table.id' | translate}}</th> + <th scope="col" class="align-middle">{{messagePrefix + '.table.name' | translate}}</th> + <th scope="col" class="align-middle">{{messagePrefix + '.table.collectionOrCommunity' | translate}}</th> + <th>{{messagePrefix + '.table.edit' | translate}}</th> + </tr> + </thead> + <tbody> + <tr *ngFor="let group of (subGroups$ | async)?.payload?.page"> + <td class="align-middle">{{group.id}}</td> + <td class="align-middle"> + <a (click)="groupDataService.startEditingNewGroup(group)" + [routerLink]="[groupDataService.getGroupEditPageRouterLink(group)]"> + {{ dsoNameService.getName(group) }} + </a> + </td> + <td class="align-middle">{{ dsoNameService.getName((group.object | async)?.payload)}}</td> + <td class="align-middle"> + <div class="btn-group edit-field"> + <button (click)="deleteSubgroupFromGroup(group)" + class="btn btn-outline-danger btn-sm deleteButton" + title="{{messagePrefix + '.table.edit.buttons.remove' | translate: { name: dsoNameService.getName(group) } }}"> + <i class="fas fa-trash-alt fa-fw"></i> + </button> + </div> + </td> + </tr> + </tbody> + </table> + </div> + </ds-pagination> + + <div *ngIf="(subGroups$ | async)?.payload?.totalElements == 0" class="alert alert-info w-100 mb-2" + role="alert"> + {{messagePrefix + '.no-subgroups-yet' | translate}} + </div> + <h4 id="search" class="border-bottom pb-2"> <span *dsContextHelp="{ content: 'admin.access-control.groups.form.tooltip.editGroup.addSubgroups', @@ -80,53 +129,4 @@ {{messagePrefix + '.no-items' | translate}} </div> - <h4>{{messagePrefix + '.headSubgroups' | translate}}</h4> - - <ds-pagination *ngIf="(subGroups$ | async)?.payload?.totalElements > 0" - [paginationOptions]="config" - [pageInfoState]="(subGroups$ | async)?.payload" - [collectionSize]="(subGroups$ | async)?.payload?.totalElements" - [hideGear]="true" - [hidePagerWhenSinglePage]="true"> - - <div class="table-responsive"> - <table id="subgroupsOfGroup" class="table table-striped table-hover table-bordered"> - <thead> - <tr> - <th scope="col" class="align-middle">{{messagePrefix + '.table.id' | translate}}</th> - <th scope="col" class="align-middle">{{messagePrefix + '.table.name' | translate}}</th> - <th scope="col" class="align-middle">{{messagePrefix + '.table.collectionOrCommunity' | translate}}</th> - <th>{{messagePrefix + '.table.edit' | translate}}</th> - </tr> - </thead> - <tbody> - <tr *ngFor="let group of (subGroups$ | async)?.payload?.page"> - <td class="align-middle">{{group.id}}</td> - <td class="align-middle"> - <a (click)="groupDataService.startEditingNewGroup(group)" - [routerLink]="[groupDataService.getGroupEditPageRouterLink(group)]"> - {{ dsoNameService.getName(group) }} - </a> - </td> - <td class="align-middle">{{ dsoNameService.getName((group.object | async)?.payload)}}</td> - <td class="align-middle"> - <div class="btn-group edit-field"> - <button (click)="deleteSubgroupFromGroup(group)" - class="btn btn-outline-danger btn-sm deleteButton" - title="{{messagePrefix + '.table.edit.buttons.remove' | translate: { name: dsoNameService.getName(group) } }}"> - <i class="fas fa-trash-alt fa-fw"></i> - </button> - </div> - </td> - </tr> - </tbody> - </table> - </div> - </ds-pagination> - - <div *ngIf="(subGroups$ | async)?.payload?.totalElements == 0" class="alert alert-info w-100 mb-2" - role="alert"> - {{messagePrefix + '.no-subgroups-yet' | translate}} - </div> - </ng-container> diff --git a/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts b/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts index 12cdc27943..aea545e554 100644 --- a/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts +++ b/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts @@ -102,6 +102,7 @@ export class SubgroupsListComponent implements OnInit, OnDestroy { if (activeGroup != null) { this.groupBeingEdited = activeGroup; this.retrieveSubGroups(); + this.search({query: ''}); } })); } -- GitLab From c8d98ec0b1427b3947f023a7a64eb182e4cb30ae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Nov 2023 16:44:04 +0000 Subject: [PATCH 163/183] Bump axios from 0.27.2 to 1.6.0 Bumps [axios](https://github.com/axios/axios) from 0.27.2 to 1.6.0. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](https://github.com/axios/axios/compare/v0.27.2...v1.6.0) --- updated-dependencies: - dependency-name: axios dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> (cherry picked from commit ef9f31d3c612b5aa93a9f8950888bd034ad03d01) --- package.json | 2 +- yarn.lock | 24 +++++++++++++++--------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index f94a48d6b0..77e5ae3620 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ "@types/grecaptcha": "^3.0.4", "angular-idle-preload": "3.0.0", "angulartics2": "^12.2.0", - "axios": "^0.27.2", + "axios": "^1.6.0", "bootstrap": "^4.6.1", "cerialize": "0.1.18", "cli-progress": "^3.12.0", diff --git a/yarn.lock b/yarn.lock index dff9302cc7..27307aefa2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3467,13 +3467,14 @@ axios@0.21.4: dependencies: follow-redirects "^1.14.0" -axios@^0.27.2: - version "0.27.2" - resolved "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz" - integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== +axios@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.0.tgz#f1e5292f26b2fd5c2e66876adc5b06cdbd7d2102" + integrity sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg== dependencies: - follow-redirects "^1.14.9" + follow-redirects "^1.15.0" form-data "^4.0.0" + proxy-from-env "^1.1.0" axobject-query@3.1.1: version "3.1.1" @@ -5857,10 +5858,10 @@ flatted@^3.1.0, flatted@^3.2.7: resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== -follow-redirects@^1.0.0, follow-redirects@^1.14.0, follow-redirects@^1.14.9: - version "1.15.2" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== +follow-redirects@^1.0.0, follow-redirects@^1.14.0, follow-redirects@^1.15.0: + version "1.15.3" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" + integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== for-each@^0.3.3: version "0.3.3" @@ -9478,6 +9479,11 @@ proxy-from-env@1.0.0: resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz" integrity sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A== +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + prr@~1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" -- GitLab From 30ce8440e197d2433babd7e9e0adb56977eb18f2 Mon Sep 17 00:00:00 2001 From: lotte <lotte_hofstede@hotmail.com> Date: Thu, 9 Nov 2023 15:46:57 +0100 Subject: [PATCH 164/183] 108045: Fix for repeatable date field labels --- .../models/date-picker/date-picker.component.html | 2 +- .../ds-dynamic-form-ui/models/date-picker/date-picker.model.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.component.html b/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.component.html index 1046dd6b2d..26803f3c67 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.component.html +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.component.html @@ -1,6 +1,6 @@ <div> <fieldset class="d-flex"> - <legend [id]="'legend_' + model.id" [ngClass]="[getClass('element', 'label'), getClass('grid', 'label')]"> + <legend *ngIf="!model.repeatable" [id]="'legend_' + model.id" [ngClass]="[getClass('element', 'label'), getClass('grid', 'label')]"> {{model.placeholder}} <span *ngIf="model.required">*</span> </legend> <ds-number-picker diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.model.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.model.ts index 5af9b2bd32..88820cdaa3 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.model.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.model.ts @@ -15,6 +15,7 @@ export const DYNAMIC_FORM_CONTROL_TYPE_DSDATEPICKER = 'DATE'; export interface DynamicDsDateControlModelConfig extends DynamicDatePickerModelConfig { legend?: string; typeBindRelations?: DynamicFormControlRelation[]; + repeatable: boolean; } /** @@ -37,7 +38,7 @@ export class DynamicDsDatePickerModel extends DynamicDateControlModel { this.metadataValue = (config as any).metadataValue; this.typeBindRelations = config.typeBindRelations ? config.typeBindRelations : []; this.hiddenUpdates = new BehaviorSubject<boolean>(this.hidden); - + this.repeatable = config.repeatable; // This was a subscription, then an async setTimeout, but it seems unnecessary const parentModel = this.getRootParent(this); if (parentModel && isNotUndefined(parentModel.hidden)) { -- GitLab From 8458d589b25db41c44437685cd26360928856486 Mon Sep 17 00:00:00 2001 From: lotte <lotte_hofstede@hotmail.com> Date: Fri, 10 Nov 2023 14:42:03 +0100 Subject: [PATCH 165/183] Fixed test --- .../ds-dynamic-form-control-container.component.spec.ts | 2 +- .../models/date-picker/date-picker.component.spec.ts | 1 + src/app/shared/form/builder/form-builder.service.spec.ts | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.spec.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.spec.ts index b77ee9950c..355e10b9a0 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.spec.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.spec.ts @@ -169,7 +169,7 @@ describe('DsDynamicFormControlContainerComponent test suite', () => { metadataFields: [], hasSelectableMetadata: false }), - new DynamicDsDatePickerModel({ id: 'datepicker' }), + new DynamicDsDatePickerModel({ id: 'datepicker', repeatable: false }), new DynamicLookupModel({ id: 'lookup', metadataFields: [], diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.component.spec.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.component.spec.ts index 8ee90fb230..2b30c439b8 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.component.spec.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.component.spec.ts @@ -29,6 +29,7 @@ export const DATE_TEST_MODEL_CONFIG = { placeholder: 'Date', readOnly: false, required: true, + repeatable: false, toggleIcon: 'fas fa-calendar' }; diff --git a/src/app/shared/form/builder/form-builder.service.spec.ts b/src/app/shared/form/builder/form-builder.service.spec.ts index fd3588e73e..5e045c88ed 100644 --- a/src/app/shared/form/builder/form-builder.service.spec.ts +++ b/src/app/shared/form/builder/form-builder.service.spec.ts @@ -290,7 +290,7 @@ describe('FormBuilderService test suite', () => { hasSelectableMetadata: true }), - new DynamicDsDatePickerModel({ id: 'testDate' }), + new DynamicDsDatePickerModel({ id: 'testDate', repeatable: false}), new DynamicLookupModel({ id: 'testLookup', -- GitLab From 68cdd120c921d21ccb53da395d9c871cb51fe382 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Sat, 11 Nov 2023 19:31:01 +0100 Subject: [PATCH 166/183] Fix handle redirect not working with custom nameSpace (cherry picked from commit b894dce3b0d4e98c7859efe40a1112bbb3265538) --- src/app/core/data/dso-redirect.service.spec.ts | 11 +++++++---- src/app/core/data/dso-redirect.service.ts | 6 ++++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/app/core/data/dso-redirect.service.spec.ts b/src/app/core/data/dso-redirect.service.spec.ts index 2122dc663a..9271bd5f7f 100644 --- a/src/app/core/data/dso-redirect.service.spec.ts +++ b/src/app/core/data/dso-redirect.service.spec.ts @@ -11,6 +11,8 @@ import { createSuccessfulRemoteDataObject } from '../../shared/remote-data.utils import { Item } from '../shared/item.model'; import { EMBED_SEPARATOR } from './base/base-data.service'; import { HardRedirectService } from '../services/hard-redirect.service'; +import { environment } from '../../../environments/environment.test'; +import { AppConfig } from '../../../config/app-config.interface'; describe('DsoRedirectService', () => { let scheduler: TestScheduler; @@ -56,6 +58,7 @@ describe('DsoRedirectService', () => { }); service = new DsoRedirectService( + environment as AppConfig, requestService, rdbService, objectCache, @@ -107,7 +110,7 @@ describe('DsoRedirectService', () => { redir.subscribe(); scheduler.schedule(() => redir); scheduler.flush(); - expect(redirectService.redirect).toHaveBeenCalledWith('/items/' + remoteData.payload.uuid, 301); + expect(redirectService.redirect).toHaveBeenCalledWith(`${environment.ui.nameSpace}/items/${remoteData.payload.uuid}`, 301); }); it('should navigate to entities route with the corresponding entity type', () => { remoteData.payload.type = 'item'; @@ -124,7 +127,7 @@ describe('DsoRedirectService', () => { redir.subscribe(); scheduler.schedule(() => redir); scheduler.flush(); - expect(redirectService.redirect).toHaveBeenCalledWith('/entities/publication/' + remoteData.payload.uuid, 301); + expect(redirectService.redirect).toHaveBeenCalledWith(`${environment.ui.nameSpace}/entities/publication/${remoteData.payload.uuid}`, 301); }); it('should navigate to collections route', () => { @@ -133,7 +136,7 @@ describe('DsoRedirectService', () => { redir.subscribe(); scheduler.schedule(() => redir); scheduler.flush(); - expect(redirectService.redirect).toHaveBeenCalledWith('/collections/' + remoteData.payload.uuid, 301); + expect(redirectService.redirect).toHaveBeenCalledWith(`${environment.ui.nameSpace}/collections/${remoteData.payload.uuid}`, 301); }); it('should navigate to communities route', () => { @@ -142,7 +145,7 @@ describe('DsoRedirectService', () => { redir.subscribe(); scheduler.schedule(() => redir); scheduler.flush(); - expect(redirectService.redirect).toHaveBeenCalledWith('/communities/' + remoteData.payload.uuid, 301); + expect(redirectService.redirect).toHaveBeenCalledWith(`${environment.ui.nameSpace}/communities/${remoteData.payload.uuid}`, 301); }); }); diff --git a/src/app/core/data/dso-redirect.service.ts b/src/app/core/data/dso-redirect.service.ts index a27d1fb11f..4585df5b4b 100644 --- a/src/app/core/data/dso-redirect.service.ts +++ b/src/app/core/data/dso-redirect.service.ts @@ -6,7 +6,7 @@ * http://www.dspace.org/license/ */ /* eslint-disable max-classes-per-file */ -import { Injectable } from '@angular/core'; +import { Injectable, Inject } from '@angular/core'; import { Observable } from 'rxjs'; import { tap } from 'rxjs/operators'; import { hasValue } from '../../shared/empty.util'; @@ -21,6 +21,7 @@ import { DSpaceObject } from '../shared/dspace-object.model'; import { IdentifiableDataService } from './base/identifiable-data.service'; import { getDSORoute } from '../../app-routing-paths'; import { HardRedirectService } from '../services/hard-redirect.service'; +import { APP_CONFIG, AppConfig } from '../../../config/app-config.interface'; const ID_ENDPOINT = 'pid'; const UUID_ENDPOINT = 'dso'; @@ -70,6 +71,7 @@ export class DsoRedirectService { private dataService: DsoByIdOrUUIDDataService; constructor( + @Inject(APP_CONFIG) protected appConfig: AppConfig, protected requestService: RequestService, protected rdbService: RemoteDataBuildService, protected objectCache: ObjectCacheService, @@ -98,7 +100,7 @@ export class DsoRedirectService { let newRoute = getDSORoute(dso); if (hasValue(newRoute)) { // Use a "301 Moved Permanently" redirect for SEO purposes - this.hardRedirectService.redirect(newRoute, 301); + this.hardRedirectService.redirect(this.appConfig.ui.nameSpace.replace(/\/$/, '') + newRoute, 301); } } } -- GitLab From 116bfbded1d3fe8ba3759a6079ffe6613a9ef21e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paulo=20Gra=C3=A7a?= <paulo1978@gmail.com> Date: Thu, 26 Oct 2023 14:14:22 +0100 Subject: [PATCH 167/183] adding new access-status-list-element-badge css classes (cherry picked from commit e847e4ef51aab604d1d07b79860003551eafe467) --- .../access-status-badge/access-status-badge.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.html b/src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.html index a0180a761a..264bd3621c 100644 --- a/src/app/shared/object-collection/shared/badges/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 @@ <ng-container *ngIf="showAccessStatus"> <span *ngIf="accessStatus$ | async as accessStatus"> - <span class="badge badge-secondary">{{ accessStatus | translate }}</span> + <span [class]="'badge badge-secondary access-status-list-element-badge ' + accessStatus.replaceAll('.','-')">{{ accessStatus | translate }}</span> </span> </ng-container> -- GitLab From ff032432983ad0a957b42f138706165d566f6da6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paulo=20Gra=C3=A7a?= <paulo1978@gmail.com> Date: Fri, 10 Nov 2023 00:04:45 +0000 Subject: [PATCH 168/183] Create new access-status-badge.component.scss (cherry picked from commit 3bf2eb1997aff92abc9bb7f642d5e7c77866d552) --- .../access-status-badge/access-status-badge.component.scss | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.scss diff --git a/src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.scss b/src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.scss new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.scss @@ -0,0 +1 @@ + -- GitLab From a12488c8276ddc90ad4399fcaea209de6e08c129 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paulo=20Gra=C3=A7a?= <paulo1978@gmail.com> Date: Fri, 10 Nov 2023 00:09:46 +0000 Subject: [PATCH 169/183] new accessStatusClass atribute (cherry picked from commit 6378dbec4afc635a3e3e3dc37f573122a5097746) --- .../access-status-badge.component.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.ts b/src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.ts index 2be44669b0..e7bb15a75b 100644 --- a/src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.ts +++ b/src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.ts @@ -11,7 +11,8 @@ import { ITEM } from '../../../../../core/shared/item.resource-type'; @Component({ selector: 'ds-access-status-badge', - templateUrl: './access-status-badge.component.html' + templateUrl: './access-status-badge.component.html', + styleUrls: ['./access-status-badge.component.scss'] }) /** * Component rendering the access status of an item as a badge @@ -26,6 +27,11 @@ export class AccessStatusBadgeComponent { */ showAccessStatus: boolean; + /** + * Value based stylesheet class for access status badge + */ + accessStatusClass: string; + /** * Initialize instance variables * @@ -57,5 +63,12 @@ export class AccessStatusBadgeComponent { map((status: string) => `access-status.${status.toLowerCase()}.listelement.badge`), catchError(() => observableOf('access-status.unknown.listelement.badge')) ); + + // stylesheet based on the access status value + this.accessStatus$.pipe( + map((accessStatusClass: string) => accessStatusClass.replace(/\./g, '-')) + ).subscribe((accessStatusClass: string) => { + this.accessStatusClass = accessStatusClass; + }); } } -- GitLab From 59c4d59e458d3b5458dc165c33912894d13ef64c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paulo=20Gra=C3=A7a?= <paulo1978@gmail.com> Date: Fri, 10 Nov 2023 00:10:55 +0000 Subject: [PATCH 170/183] remove replaceAll and use an object property (cherry picked from commit c7eae9242a69cb9a598c2a55843dda72f5125ca5) --- .../access-status-badge/access-status-badge.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.html b/src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.html index 264bd3621c..5b20860684 100644 --- a/src/app/shared/object-collection/shared/badges/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 @@ <ng-container *ngIf="showAccessStatus"> <span *ngIf="accessStatus$ | async as accessStatus"> - <span [class]="'badge badge-secondary access-status-list-element-badge ' + accessStatus.replaceAll('.','-')">{{ accessStatus | translate }}</span> + <span [class]="'badge badge-secondary access-status-list-element-badge ' + accessStatusClass">{{ accessStatus | translate }}</span> </span> </ng-container> -- GitLab From a276f415a8c53b6777a592ae8e62cafbb0339818 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paulo=20Gra=C3=A7a?= <paulo1978@gmail.com> Date: Fri, 10 Nov 2023 15:19:36 +0000 Subject: [PATCH 171/183] adding ngOnDestroy for dealing with unsubscribe (cherry picked from commit 75b788d05b819715feefc31e645d97368ae63054) --- .../access-status-badge.component.ts | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.ts b/src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.ts index e7bb15a75b..5f27ba4f65 100644 --- a/src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.ts +++ b/src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.ts @@ -1,6 +1,6 @@ import { Component, Input } from '@angular/core'; import { catchError, map } from 'rxjs/operators'; -import { Observable, of as observableOf } from 'rxjs'; +import { Observable, of as observableOf, Subscription } from 'rxjs'; import { AccessStatusObject } from './access-status.model'; import { hasValue } from '../../../../empty.util'; import { environment } from 'src/environments/environment'; @@ -32,6 +32,11 @@ export class AccessStatusBadgeComponent { */ accessStatusClass: string; + /** + * List of subscriptions + */ + subs: Subscription[] = []; + /** * Initialize instance variables * @@ -65,10 +70,16 @@ export class AccessStatusBadgeComponent { ); // stylesheet based on the access status value - this.accessStatus$.pipe( - map((accessStatusClass: string) => accessStatusClass.replace(/\./g, '-')) - ).subscribe((accessStatusClass: string) => { - this.accessStatusClass = accessStatusClass; - }); + this.subs.push( + this.accessStatus$.pipe( + map((accessStatusClass: string) => accessStatusClass.replace(/\./g, '-')) + ).subscribe((accessStatusClass: string) => { + this.accessStatusClass = accessStatusClass; + }) + ); + } + + ngOnDestroy(): void { + this.subs.filter((sub) => hasValue(sub)).forEach((sub) => sub.unsubscribe()); } } -- GitLab From d3fdfebde1973dd82b162be65b71296175b50d12 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Mon, 16 Oct 2023 22:16:22 +0200 Subject: [PATCH 172/183] 107671: Fix handle theme not working with canonical prefix https://hdl.handle.net/ (cherry picked from commit a7faf7d449a44ce793bfe4b72cf7b377445ae181) --- .../core/data/configuration-data.service.ts | 1 - .../curation-form.component.spec.ts | 12 +-- .../curation-form/curation-form.component.ts | 82 +++++++++-------- src/app/shared/handle.service.spec.ts | 84 ++++++++++++------ src/app/shared/handle.service.ts | 86 +++++++++++++----- .../configuration-data.service.stub.ts | 14 +++ .../theme-support/theme.service.spec.ts | 43 ++++++--- src/app/shared/theme-support/theme.service.ts | 71 ++++++++------- src/config/theme.model.spec.ts | 87 ++++++++++++++----- src/config/theme.model.ts | 34 +++++--- 10 files changed, 348 insertions(+), 166 deletions(-) create mode 100644 src/app/shared/testing/configuration-data.service.stub.ts diff --git a/src/app/core/data/configuration-data.service.ts b/src/app/core/data/configuration-data.service.ts index de044e25e3..557e13f57b 100644 --- a/src/app/core/data/configuration-data.service.ts +++ b/src/app/core/data/configuration-data.service.ts @@ -1,4 +1,3 @@ -/* eslint-disable max-classes-per-file */ import { Injectable } from '@angular/core'; import { Observable } from 'rxjs'; import { RemoteDataBuildService } from '../cache/builders/remote-data-build.service'; diff --git a/src/app/curation-form/curation-form.component.spec.ts b/src/app/curation-form/curation-form.component.spec.ts index dc70b925e8..a0bdee21f4 100644 --- a/src/app/curation-form/curation-form.component.spec.ts +++ b/src/app/curation-form/curation-form.component.spec.ts @@ -1,4 +1,4 @@ -import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync, fakeAsync, flush } from '@angular/core/testing'; import { TranslateModule } from '@ngx-translate/core'; import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; import { CurationFormComponent } from './curation-form.component'; @@ -16,6 +16,7 @@ import { ConfigurationDataService } from '../core/data/configuration-data.servic import { ConfigurationProperty } from '../core/shared/configuration-property.model'; import { getProcessDetailRoute } from '../process-page/process-page-routing.paths'; import { HandleService } from '../shared/handle.service'; +import { of as observableOf } from 'rxjs'; describe('CurationFormComponent', () => { let comp: CurationFormComponent; @@ -54,7 +55,7 @@ describe('CurationFormComponent', () => { }); handleService = { - normalizeHandle: (a) => a + normalizeHandle: (a: string) => observableOf(a), } as any; notificationsService = new NotificationsServiceStub(); @@ -151,12 +152,13 @@ describe('CurationFormComponent', () => { ], []); }); - it(`should show an error notification and return when an invalid dsoHandle is provided`, () => { + it(`should show an error notification and return when an invalid dsoHandle is provided`, fakeAsync(() => { comp.dsoHandle = 'test-handle'; - spyOn(handleService, 'normalizeHandle').and.returnValue(null); + spyOn(handleService, 'normalizeHandle').and.returnValue(observableOf(null)); comp.submit(); + flush(); expect(notificationsService.error).toHaveBeenCalled(); expect(scriptDataService.invoke).not.toHaveBeenCalled(); - }); + })); }); diff --git a/src/app/curation-form/curation-form.component.ts b/src/app/curation-form/curation-form.component.ts index 2c0e900a66..cc2c14f89f 100644 --- a/src/app/curation-form/curation-form.component.ts +++ b/src/app/curation-form/curation-form.component.ts @@ -1,22 +1,22 @@ -import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core'; +import { ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from '@angular/core'; import { ScriptDataService } from '../core/data/processes/script-data.service'; import { UntypedFormControl, UntypedFormGroup } from '@angular/forms'; -import { getFirstCompletedRemoteData } from '../core/shared/operators'; -import { find, map } from 'rxjs/operators'; +import { getFirstCompletedRemoteData, getFirstSucceededRemoteDataPayload } from '../core/shared/operators'; +import { map } from 'rxjs/operators'; import { NotificationsService } from '../shared/notifications/notifications.service'; import { TranslateService } from '@ngx-translate/core'; import { hasValue, isEmpty, isNotEmpty } from '../shared/empty.util'; import { RemoteData } from '../core/data/remote-data'; import { Router } from '@angular/router'; -import { ProcessDataService } from '../core/data/processes/process-data.service'; import { Process } from '../process-page/processes/process.model'; import { ConfigurationDataService } from '../core/data/configuration-data.service'; import { ConfigurationProperty } from '../core/shared/configuration-property.model'; -import { Observable } from 'rxjs'; +import { Observable, Subscription } from 'rxjs'; import { getProcessDetailRoute } from '../process-page/process-page-routing.paths'; import { HandleService } from '../shared/handle.service'; export const CURATION_CFG = 'plugin.named.org.dspace.curate.CurationTask'; + /** * Component responsible for rendering the Curation Task form */ @@ -24,7 +24,7 @@ export const CURATION_CFG = 'plugin.named.org.dspace.curate.CurationTask'; selector: 'ds-curation-form', templateUrl: './curation-form.component.html' }) -export class CurationFormComponent implements OnInit { +export class CurationFormComponent implements OnDestroy, OnInit { config: Observable<RemoteData<ConfigurationProperty>>; tasks: string[]; @@ -33,10 +33,11 @@ export class CurationFormComponent implements OnInit { @Input() dsoHandle: string; + subs: Subscription[] = []; + constructor( private scriptDataService: ScriptDataService, private configurationDataService: ConfigurationDataService, - private processDataService: ProcessDataService, private notificationsService: NotificationsService, private translateService: TranslateService, private handleService: HandleService, @@ -45,6 +46,10 @@ export class CurationFormComponent implements OnInit { ) { } + ngOnDestroy(): void { + this.subs.forEach((sub: Subscription) => sub.unsubscribe()); + } + ngOnInit(): void { this.form = new UntypedFormGroup({ task: new UntypedFormControl(''), @@ -52,16 +57,15 @@ export class CurationFormComponent implements OnInit { }); this.config = this.configurationDataService.findByPropertyName(CURATION_CFG); - this.config.pipe( - find((rd: RemoteData<ConfigurationProperty>) => rd.hasSucceeded), - map((rd: RemoteData<ConfigurationProperty>) => rd.payload) - ).subscribe((configProperties) => { + this.subs.push(this.config.pipe( + getFirstSucceededRemoteDataPayload(), + ).subscribe((configProperties: ConfigurationProperty) => { this.tasks = configProperties.values .filter((value) => isNotEmpty(value) && value.includes('=')) .map((value) => value.split('=')[1].trim()); this.form.get('task').patchValue(this.tasks[0]); this.cdr.detectChanges(); - }); + })); } /** @@ -77,33 +81,41 @@ export class CurationFormComponent implements OnInit { */ submit() { const taskName = this.form.get('task').value; - let handle; + let handle$: Observable<string | null>; if (this.hasHandleValue()) { - handle = this.handleService.normalizeHandle(this.dsoHandle); - if (isEmpty(handle)) { - this.notificationsService.error(this.translateService.get('curation.form.submit.error.head'), - this.translateService.get('curation.form.submit.error.invalid-handle')); - return; - } + handle$ = this.handleService.normalizeHandle(this.dsoHandle).pipe( + map((handle: string | null) => { + if (isEmpty(handle)) { + this.notificationsService.error(this.translateService.get('curation.form.submit.error.head'), + this.translateService.get('curation.form.submit.error.invalid-handle')); + } + return handle; + }), + ); } else { - handle = this.handleService.normalizeHandle(this.form.get('handle').value); - if (isEmpty(handle)) { - handle = 'all'; - } + handle$ = this.handleService.normalizeHandle(this.form.get('handle').value).pipe( + map((handle: string | null) => isEmpty(handle) ? 'all' : handle), + ); } - this.scriptDataService.invoke('curate', [ - { name: '-t', value: taskName }, - { name: '-i', value: handle }, - ], []).pipe(getFirstCompletedRemoteData()).subscribe((rd: RemoteData<Process>) => { - if (rd.hasSucceeded) { - this.notificationsService.success(this.translateService.get('curation.form.submit.success.head'), - this.translateService.get('curation.form.submit.success.content')); - this.router.navigateByUrl(getProcessDetailRoute(rd.payload.processId)); - } else { - this.notificationsService.error(this.translateService.get('curation.form.submit.error.head'), - this.translateService.get('curation.form.submit.error.content')); + this.subs.push(handle$.subscribe((handle: string) => { + if (hasValue(handle)) { + this.subs.push(this.scriptDataService.invoke('curate', [ + { name: '-t', value: taskName }, + { name: '-i', value: handle }, + ], []).pipe( + getFirstCompletedRemoteData(), + ).subscribe((rd: RemoteData<Process>) => { + if (rd.hasSucceeded) { + this.notificationsService.success(this.translateService.get('curation.form.submit.success.head'), + this.translateService.get('curation.form.submit.success.content')); + void this.router.navigateByUrl(getProcessDetailRoute(rd.payload.processId)); + } else { + this.notificationsService.error(this.translateService.get('curation.form.submit.error.head'), + this.translateService.get('curation.form.submit.error.content')); + } + })); } - }); + })); } } diff --git a/src/app/shared/handle.service.spec.ts b/src/app/shared/handle.service.spec.ts index b326eb0416..a499bdd464 100644 --- a/src/app/shared/handle.service.spec.ts +++ b/src/app/shared/handle.service.spec.ts @@ -1,47 +1,79 @@ import { HandleService } from './handle.service'; +import { TestBed } from '@angular/core/testing'; +import { ConfigurationDataServiceStub } from './testing/configuration-data.service.stub'; +import { ConfigurationDataService } from '../core/data/configuration-data.service'; +import { of as observableOf } from 'rxjs'; describe('HandleService', () => { let service: HandleService; + let configurationService: ConfigurationDataServiceStub; + beforeEach(() => { - service = new HandleService(); + configurationService = new ConfigurationDataServiceStub(); + + TestBed.configureTestingModule({ + providers: [ + { provide: ConfigurationDataService, useValue: configurationService }, + ], + }); + service = TestBed.inject(HandleService); }); describe(`normalizeHandle`, () => { - it(`should simply return an already normalized handle`, () => { - let input, output; - - input = '123456789/123456'; - output = service.normalizeHandle(input); - expect(output).toEqual(input); + it('should normalize a handle url with custom conical prefix with trailing slash', (done: DoneFn) => { + service.canonicalPrefix$ = observableOf('https://hdl.handle.net/'); - input = '12.3456.789/123456'; - output = service.normalizeHandle(input); - expect(output).toEqual(input); + service.normalizeHandle('https://hdl.handle.net/123456789/123456').subscribe((handle: string | null) => { + expect(handle).toBe('123456789/123456'); + done(); + }); }); - it(`should normalize a handle url`, () => { - let input, output; + it('should normalize a handle url with custom conical prefix without trailing slash', (done: DoneFn) => { + service.canonicalPrefix$ = observableOf('https://hdl.handle.net'); - input = 'https://hdl.handle.net/handle/123456789/123456'; - output = service.normalizeHandle(input); - expect(output).toEqual('123456789/123456'); + service.normalizeHandle('https://hdl.handle.net/123456789/123456').subscribe((handle: string | null) => { + expect(handle).toBe('123456789/123456'); + done(); + }); + }); + + describe('should simply return an already normalized handle', () => { + it('123456789/123456', (done: DoneFn) => { + service.normalizeHandle('123456789/123456').subscribe((handle: string | null) => { + expect(handle).toBe('123456789/123456'); + done(); + }); + }); - input = 'https://rest.api/server/handle/123456789/123456'; - output = service.normalizeHandle(input); - expect(output).toEqual('123456789/123456'); + it('12.3456.789/123456', (done: DoneFn) => { + service.normalizeHandle('12.3456.789/123456').subscribe((handle: string | null) => { + expect(handle).toBe('12.3456.789/123456'); + done(); + }); + }); }); - it(`should return null if the input doesn't contain a handle`, () => { - let input, output; + it('should normalize handle urls starting with handle', (done: DoneFn) => { + service.normalizeHandle('https://rest.api/server/handle/123456789/123456').subscribe((handle: string | null) => { + expect(handle).toBe('123456789/123456'); + done(); + }); + }); - input = 'https://hdl.handle.net/handle/123456789'; - output = service.normalizeHandle(input); - expect(output).toBeNull(); + it('should return null if the input doesn\'t contain a valid handle', (done: DoneFn) => { + service.normalizeHandle('https://hdl.handle.net/123456789').subscribe((handle: string | null) => { + expect(handle).toBeNull(); + done(); + }); + }); - input = 'something completely different'; - output = service.normalizeHandle(input); - expect(output).toBeNull(); + it('should return null if the input doesn\'t contain a handle', (done: DoneFn) => { + service.normalizeHandle('something completely different').subscribe((handle: string | null) => { + expect(handle).toBeNull(); + done(); + }); }); }); }); diff --git a/src/app/shared/handle.service.ts b/src/app/shared/handle.service.ts index da0f17f7de..56b3922753 100644 --- a/src/app/shared/handle.service.ts +++ b/src/app/shared/handle.service.ts @@ -1,7 +1,18 @@ import { Injectable } from '@angular/core'; -import { isNotEmpty, isEmpty } from './empty.util'; +import { isEmpty, hasNoValue } from './empty.util'; +import { ConfigurationDataService } from '../core/data/configuration-data.service'; +import { getFirstCompletedRemoteData } from '../core/shared/operators'; +import { map, take } from 'rxjs/operators'; +import { ConfigurationProperty } from '../core/shared/configuration-property.model'; +import { Observable } from 'rxjs'; +import { RemoteData } from '../core/data/remote-data'; -const PREFIX_REGEX = /handle\/([^\/]+\/[^\/]+)$/; +export const CANONICAL_PREFIX_KEY = 'handle.canonical.prefix'; + +const PREFIX_REGEX = (prefix: string | undefined) => { + const formattedPrefix: string = prefix?.replace(/\/$/, ''); + return new RegExp(`(${formattedPrefix ? formattedPrefix + '|' : '' }handle)\/([^\/]+\/[^\/]+)$`); +}; const NO_PREFIX_REGEX = /^([^\/]+\/[^\/]+)$/; @Injectable({ @@ -9,33 +20,62 @@ const NO_PREFIX_REGEX = /^([^\/]+\/[^\/]+)$/; }) export class HandleService { + canonicalPrefix$: Observable<string | undefined>; + + constructor( + protected configurationService: ConfigurationDataService, + ) { + this.canonicalPrefix$ = this.configurationService.findByPropertyName(CANONICAL_PREFIX_KEY).pipe( + getFirstCompletedRemoteData(), + take(1), + map((configurationPropertyRD: RemoteData<ConfigurationProperty>) => { + if (configurationPropertyRD.hasSucceeded) { + return configurationPropertyRD.payload.values.length >= 1 ? configurationPropertyRD.payload.values[0] : undefined; + } else { + return undefined; + } + }), + ); + } /** * Turns a handle string into the default 123456789/12345 format * - * @param handle the input handle + * When the <b>handle.canonical.prefix</b> doesn't end with handle, be sure to expose the variable so that the + * frontend can find the handle * - * normalizeHandle('123456789/123456') // '123456789/123456' - * normalizeHandle('12.3456.789/123456') // '12.3456.789/123456' - * normalizeHandle('https://hdl.handle.net/handle/123456789/123456') // '123456789/123456' - * normalizeHandle('https://rest.api/server/handle/123456789/123456') // '123456789/123456' - * normalizeHandle('https://rest.api/server/handle/123456789') // null + * @param handle the input handle + * @return + * <ul> + * <li>normalizeHandle('123456789/123456') // '123456789/123456'</li> + * <li>normalizeHandle('12.3456.789/123456') // '12.3456.789/123456'</li> + * <li>normalizeHandle('https://hdl.handle.net/123456789/123456') // '123456789/123456'</li> + * <li>normalizeHandle('https://rest.api/server/handle/123456789/123456') // '123456789/123456'</li> + * <li>normalizeHandle('https://rest.api/server/handle/123456789') // null</li> + * </ul> */ - normalizeHandle(handle: string): string { - let matches: string[]; - if (isNotEmpty(handle)) { - matches = handle.match(PREFIX_REGEX); - } - - if (isEmpty(matches) || matches.length < 2) { - matches = handle.match(NO_PREFIX_REGEX); - } - - if (isEmpty(matches) || matches.length < 2) { - return null; - } else { - return matches[1]; - } + normalizeHandle(handle: string): Observable<string | null> { + return this.canonicalPrefix$.pipe( + map((prefix: string | undefined) => { + let matches: string[]; + if (hasNoValue(handle)) { + return null; + } + + matches = handle.match(PREFIX_REGEX(prefix)); + + if (isEmpty(matches) || matches.length < 3) { + matches = handle.match(NO_PREFIX_REGEX); + } + + if (isEmpty(matches) || matches.length < 2) { + return null; + } else { + return matches[matches.length - 1]; + } + }), + take(1), + ); } } diff --git a/src/app/shared/testing/configuration-data.service.stub.ts b/src/app/shared/testing/configuration-data.service.stub.ts new file mode 100644 index 0000000000..f17e2d7b5b --- /dev/null +++ b/src/app/shared/testing/configuration-data.service.stub.ts @@ -0,0 +1,14 @@ +import { Observable } from 'rxjs'; +import { RemoteData } from '../../core/data/remote-data'; +import { ConfigurationProperty } from '../../core/shared/configuration-property.model'; +import { createSuccessfulRemoteDataObject$ } from '../remote-data.utils'; + +export class ConfigurationDataServiceStub { + + findByPropertyName(_name: string): Observable<RemoteData<ConfigurationProperty>> { + const configurationProperty = new ConfigurationProperty(); + configurationProperty.values = []; + return createSuccessfulRemoteDataObject$(configurationProperty); + } + +} diff --git a/src/app/shared/theme-support/theme.service.spec.ts b/src/app/shared/theme-support/theme.service.spec.ts index f56fb86cbc..c4669408e1 100644 --- a/src/app/shared/theme-support/theme.service.spec.ts +++ b/src/app/shared/theme-support/theme.service.spec.ts @@ -24,6 +24,8 @@ import { ROUTER_NAVIGATED } from '@ngrx/router-store'; import { ActivatedRouteSnapshot, Router } from '@angular/router'; import { CommonModule, DOCUMENT } from '@angular/common'; import { RouterMock } from '../mocks/router.mock'; +import { ConfigurationDataServiceStub } from '../testing/configuration-data.service.stub'; +import { ConfigurationDataService } from '../../core/data/configuration-data.service'; /** * LinkService able to mock recursively resolving DSO parent links @@ -49,6 +51,7 @@ class MockLinkService { describe('ThemeService', () => { let themeService: ThemeService; let linkService: LinkService; + let configurationService: ConfigurationDataServiceStub; let initialState; let ancestorDSOs: DSpaceObject[]; @@ -78,6 +81,7 @@ describe('ThemeService', () => { currentTheme: 'custom', }, }; + configurationService = new ConfigurationDataServiceStub(); } function setupServiceWithActions(mockActions) { @@ -96,6 +100,7 @@ describe('ThemeService', () => { provideMockActions(() => mockActions), { provide: DSpaceObjectDataService, useValue: mockDsoService }, { provide: Router, useValue: new RouterMock() }, + { provide: ConfigurationDataService, useValue: configurationService }, ] }); @@ -112,7 +117,7 @@ describe('ThemeService', () => { function spyOnPrivateMethods() { spyOn((themeService as any), 'getAncestorDSOs').and.returnValue(() => observableOf([dso])); - spyOn((themeService as any), 'matchThemeToDSOs').and.returnValue(new Theme({ name: 'custom' })); + spyOn((themeService as any), 'matchThemeToDSOs').and.returnValue(observableOf(new Theme({ name: 'custom' }))); spyOn((themeService as any), 'getActionForMatch').and.returnValue(new SetThemeAction('custom')); } @@ -283,13 +288,13 @@ describe('ThemeService', () => { beforeEach(() => { nonMatchingTheme = Object.assign(new Theme({ name: 'non-matching-theme' }), { - matches: () => false + matches: () => observableOf(false), }); itemMatchingTheme = Object.assign(new Theme({ name: 'item-matching-theme' }), { - matches: (url, dso) => (dso as any).type === ITEM.value + matches: (url, dso) => observableOf((dso as any).type === ITEM.value), }); communityMatchingTheme = Object.assign(new Theme({ name: 'community-matching-theme' }), { - matches: (url, dso) => (dso as any).type === COMMUNITY.value + matches: (url, dso) => observableOf((dso as any).type === COMMUNITY.value), }); dsos = [ Object.assign(new Item(), { @@ -313,8 +318,11 @@ describe('ThemeService', () => { themeService.themes = themes; }); - it('should return undefined', () => { - expect((themeService as any).matchThemeToDSOs(dsos, '')).toBeUndefined(); + it('should return undefined', (done: DoneFn) => { + (themeService as any).matchThemeToDSOs(dsos, '').subscribe((theme: Theme) => { + expect(theme).toBeUndefined(); + done(); + }); }); }); @@ -324,20 +332,31 @@ describe('ThemeService', () => { themeService.themes = themes; }); - it('should return the matching theme', () => { - expect((themeService as any).matchThemeToDSOs(dsos, '')).toEqual(itemMatchingTheme); + it('should return the matching theme', (done: DoneFn) => { + (themeService as any).matchThemeToDSOs(dsos, '').subscribe((theme: Theme) => { + expect(theme).toBe(itemMatchingTheme); + done(); + }); }); }); describe('when multiple themes match some of the DSOs', () => { - it('should return the first matching theme', () => { + it('should return the first matching theme (itemMatchingTheme)', (done: DoneFn) => { themes = [ nonMatchingTheme, itemMatchingTheme, communityMatchingTheme ]; themeService.themes = themes; - expect((themeService as any).matchThemeToDSOs(dsos, '')).toEqual(itemMatchingTheme); + (themeService as any).matchThemeToDSOs(dsos, '').subscribe((theme: Theme) => { + expect(theme).toBe(itemMatchingTheme); + done(); + }); + }); + it('should return the first matching theme (communityMatchingTheme)', (done: DoneFn) => { themes = [ nonMatchingTheme, communityMatchingTheme, itemMatchingTheme ]; themeService.themes = themes; - expect((themeService as any).matchThemeToDSOs(dsos, '')).toEqual(communityMatchingTheme); + (themeService as any).matchThemeToDSOs(dsos, '').subscribe((theme: Theme) => { + expect(theme).toBe(communityMatchingTheme); + done(); + }); }); }); }); @@ -382,6 +401,7 @@ describe('ThemeService', () => { const mockDsoService = { findById: () => createSuccessfulRemoteDataObject$(mockCommunity) }; + configurationService = new ConfigurationDataServiceStub(); TestBed.configureTestingModule({ imports: [ @@ -393,6 +413,7 @@ describe('ThemeService', () => { provideMockStore({ initialState }), { provide: DSpaceObjectDataService, useValue: mockDsoService }, { provide: Router, useValue: new RouterMock() }, + { provide: ConfigurationDataService, useValue: configurationService }, ] }); diff --git a/src/app/shared/theme-support/theme.service.ts b/src/app/shared/theme-support/theme.service.ts index 4ce976dd58..daf2e3960e 100644 --- a/src/app/shared/theme-support/theme.service.ts +++ b/src/app/shared/theme-support/theme.service.ts @@ -1,17 +1,13 @@ import { Injectable, Inject, Injector } from '@angular/core'; import { Store, createFeatureSelector, createSelector, select } from '@ngrx/store'; -import { BehaviorSubject, EMPTY, Observable, of as observableOf } from 'rxjs'; +import { BehaviorSubject, EMPTY, Observable, of as observableOf, from, concatMap } from 'rxjs'; import { ThemeState } from './theme.reducer'; import { SetThemeAction, ThemeActionTypes } from './theme.actions'; -import { expand, filter, map, switchMap, take, toArray } from 'rxjs/operators'; +import { defaultIfEmpty, expand, filter, map, switchMap, take, toArray } from 'rxjs/operators'; import { hasNoValue, hasValue, isNotEmpty } from '../empty.util'; import { RemoteData } from '../../core/data/remote-data'; import { DSpaceObject } from '../../core/shared/dspace-object.model'; -import { - getFirstCompletedRemoteData, - getFirstSucceededRemoteData, - getRemoteDataPayload -} from '../../core/shared/operators'; +import { getFirstCompletedRemoteData, getFirstSucceededRemoteData, getRemoteDataPayload } from '../../core/shared/operators'; import { HeadTagConfig, Theme, ThemeConfig, themeFactory } from '../../../config/theme.model'; import { NO_OP_ACTION_TYPE, NoOpAction } from '../ngrx/no-op.action'; import { followLink } from '../utils/follow-link-config.model'; @@ -219,7 +215,7 @@ export class ThemeService { // create new head tags (not yet added to DOM) const headTagFragment = this.document.createDocumentFragment(); this.createHeadTags(themeName) - .forEach(newHeadTag => headTagFragment.appendChild(newHeadTag)); + .forEach(newHeadTag => headTagFragment.appendChild(newHeadTag)); // add new head tags to DOM head.appendChild(headTagFragment); @@ -268,7 +264,7 @@ export class ThemeService { if (hasValue(headTagConfig.attributes)) { Object.entries(headTagConfig.attributes) - .forEach(([key, value]) => tag.setAttribute(key, value)); + .forEach(([key, value]) => tag.setAttribute(key, value)); } // 'class' attribute should always be 'theme-head-tag' for removal @@ -292,7 +288,7 @@ export class ThemeService { // and the current theme from the store const currentTheme$: Observable<string> = this.store.pipe(select(currentThemeSelector)); - const action$ = currentTheme$.pipe( + const action$: Observable<SetThemeAction | NoOpAction> = currentTheme$.pipe( switchMap((currentTheme: string) => { const snapshotWithData = this.findRouteData(activatedRouteSnapshot); if (this.hasDynamicTheme === true && isNotEmpty(this.themes)) { @@ -302,8 +298,10 @@ export class ThemeService { // Start with the resolved dso and go recursively through its parents until you reach the top-level community return observableOf(dsoRD.payload).pipe( this.getAncestorDSOs(), - map((dsos: DSpaceObject[]) => { - const dsoMatch = this.matchThemeToDSOs(dsos, currentRouteUrl); + switchMap((dsos: DSpaceObject[]) => { + return this.matchThemeToDSOs(dsos, currentRouteUrl); + }), + map((dsoMatch: Theme) => { return this.getActionForMatch(dsoMatch, currentTheme); }) ); @@ -316,33 +314,41 @@ export class ThemeService { getFirstSucceededRemoteData(), getRemoteDataPayload(), this.getAncestorDSOs(), - map((dsos: DSpaceObject[]) => { - const dsoMatch = this.matchThemeToDSOs(dsos, currentRouteUrl); + switchMap((dsos: DSpaceObject[]) => { + return this.matchThemeToDSOs(dsos, currentRouteUrl); + }), + map((dsoMatch: Theme) => { return this.getActionForMatch(dsoMatch, currentTheme); }) ); } // check whether the route itself matches - const routeMatch = this.themes.find((theme: Theme) => theme.matches(currentRouteUrl, undefined)); - - return [this.getActionForMatch(routeMatch, currentTheme)]; + return from(this.themes).pipe( + concatMap((theme: Theme) => theme.matches(currentRouteUrl, undefined).pipe( + filter((result: boolean) => result === true), + map(() => theme), + take(1), + )), + take(1), + map((theme: Theme) => this.getActionForMatch(theme, currentTheme)) + ); + } else { + // If there are no themes configured, do nothing + return observableOf(new NoOpAction()); } - - // If there are no themes configured, do nothing - return [new NoOpAction()]; }), take(1), ); action$.pipe( - filter((action) => action.type !== NO_OP_ACTION_TYPE), - ).subscribe((action) => { + filter((action: SetThemeAction | NoOpAction) => action.type !== NO_OP_ACTION_TYPE), + ).subscribe((action: SetThemeAction | NoOpAction) => { this.store.dispatch(action); }); return action$.pipe( - map((action) => action.type === ThemeActionTypes.SET), + map((action: SetThemeAction | NoOpAction) => action.type === ThemeActionTypes.SET), ); } @@ -433,14 +439,17 @@ export class ThemeService { * @param currentRouteUrl The url for the current route * @private */ - private matchThemeToDSOs(dsos: DSpaceObject[], currentRouteUrl: string): Theme { - // iterate over the themes in order, and return the first one that matches - return this.themes.find((theme: Theme) => { - // iterate over the dsos's in order (most specific one first, so Item, Collection, - // Community), and return the first one that matches the current theme - const match = dsos.find((dso: DSpaceObject) => theme.matches(currentRouteUrl, dso)); - return hasValue(match); - }); + private matchThemeToDSOs(dsos: DSpaceObject[], currentRouteUrl: string): Observable<Theme> { + return from(this.themes).pipe( + concatMap((theme: Theme) => from(dsos).pipe( + concatMap((dso: DSpaceObject) => theme.matches(currentRouteUrl, dso)), + filter((result: boolean) => result === true), + map(() => theme), + take(1), + )), + take(1), + defaultIfEmpty(undefined), + ); } /** diff --git a/src/config/theme.model.spec.ts b/src/config/theme.model.spec.ts index 79b5a1f32b..d5005cb245 100644 --- a/src/config/theme.model.spec.ts +++ b/src/config/theme.model.spec.ts @@ -9,12 +9,15 @@ import { Item } from '../app/core/shared/item.model'; import { ITEM } from '../app/core/shared/item.resource-type'; import { getItemModuleRoute } from '../app/item-page/item-page-routing-paths'; import { HandleService } from '../app/shared/handle.service'; +import { TestBed } from '@angular/core/testing'; +import { ConfigurationDataService } from '../app/core/data/configuration-data.service'; +import { ConfigurationDataServiceStub } from '../app/shared/testing/configuration-data.service.stub'; describe('Theme Models', () => { let theme: Theme; describe('RegExTheme', () => { - it('should return true when the regex matches the community\'s DSO route', () => { + it('should return true when the regex matches the community\'s DSO route', (done: DoneFn) => { theme = new RegExTheme({ name: 'community', regex: getCommunityModuleRoute() + '/.*', @@ -23,10 +26,13 @@ describe('Theme Models', () => { type: COMMUNITY.value, uuid: 'community-uuid', }); - expect(theme.matches('', dso)).toEqual(true); + theme.matches('', dso).subscribe((matches: boolean) => { + expect(matches).toBeTrue(); + done(); + }); }); - it('should return true when the regex matches the collection\'s DSO route', () => { + it('should return true when the regex matches the collection\'s DSO route', (done: DoneFn) => { theme = new RegExTheme({ name: 'collection', regex: getCollectionModuleRoute() + '/.*', @@ -35,10 +41,13 @@ describe('Theme Models', () => { type: COLLECTION.value, uuid: 'collection-uuid', }); - expect(theme.matches('', dso)).toEqual(true); + theme.matches('', dso).subscribe((matches: boolean) => { + expect(matches).toBeTrue(); + done(); + }); }); - it('should return true when the regex matches the item\'s DSO route', () => { + it('should return true when the regex matches the item\'s DSO route', (done: DoneFn) => { theme = new RegExTheme({ name: 'item', regex: getItemModuleRoute() + '/.*', @@ -47,32 +56,51 @@ describe('Theme Models', () => { type: ITEM.value, uuid: 'item-uuid', }); - expect(theme.matches('', dso)).toEqual(true); + theme.matches('', dso).subscribe((matches: boolean) => { + expect(matches).toBeTrue(); + done(); + }); }); - it('should return true when the regex matches the url', () => { + it('should return true when the regex matches the url', (done: DoneFn) => { theme = new RegExTheme({ name: 'url', regex: '.*partial.*', }); - expect(theme.matches('theme/partial/url/match', null)).toEqual(true); + theme.matches('theme/partial/url/match', null).subscribe((matches: boolean) => { + expect(matches).toBeTrue(); + done(); + }); }); - it('should return false when the regex matches neither the url, nor the DSO route', () => { + it('should return false when the regex matches neither the url, nor the DSO route', (done: DoneFn) => { theme = new RegExTheme({ name: 'no-match', regex: '.*no/match.*', }); - expect(theme.matches('theme/partial/url/match', null)).toEqual(false); + theme.matches('theme/partial/url/match', null).subscribe((matches: boolean) => { + expect(matches).toBeFalse(); + done(); + }); }); }); describe('HandleTheme', () => { - let handleService; + let handleService: HandleService; + + let configurationService: ConfigurationDataServiceStub; + beforeEach(() => { - handleService = new HandleService(); + configurationService = new ConfigurationDataServiceStub(); + + TestBed.configureTestingModule({ + providers: [ + { provide: ConfigurationDataService, useValue: configurationService }, + ], }); - it('should return true when the DSO\'s handle matches the theme\'s handle', () => { + handleService = TestBed.inject(HandleService); + }); + it('should return true when the DSO\'s handle matches the theme\'s handle', (done: DoneFn) => { theme = new HandleTheme({ name: 'matching-handle', handle: '1234/5678', @@ -82,9 +110,12 @@ describe('Theme Models', () => { uuid: 'item-uuid', handle: '1234/5678', }, handleService); - expect(theme.matches('', matchingDso)).toEqual(true); + theme.matches('', matchingDso).subscribe((matches: boolean) => { + expect(matches).toBeTrue(); + done(); + }); }); - it('should return false when the DSO\'s handle contains the theme\'s handle as a subpart', () => { + it('should return false when the DSO\'s handle contains the theme\'s handle as a subpart', (done: DoneFn) => { theme = new HandleTheme({ name: 'matching-handle', handle: '1234/5678', @@ -94,10 +125,13 @@ describe('Theme Models', () => { uuid: 'item-uuid', handle: '1234/567891011', }); - expect(theme.matches('', dso)).toEqual(false); + theme.matches('', dso).subscribe((matches: boolean) => { + expect(matches).toBeFalse(); + done(); + }); }); - it('should return false when the handles don\'t match', () => { + it('should return false when the handles don\'t match', (done: DoneFn) => { theme = new HandleTheme({ name: 'no-matching-handle', handle: '1234/5678', @@ -107,12 +141,15 @@ describe('Theme Models', () => { uuid: 'item-uuid', handle: '1234/6789', }); - expect(theme.matches('', dso)).toEqual(false); + theme.matches('', dso).subscribe((matches: boolean) => { + expect(matches).toBeFalse(); + done(); + }); }); }); describe('UUIDTheme', () => { - it('should return true when the DSO\'s UUID matches the theme\'s UUID', () => { + it('should return true when the DSO\'s UUID matches the theme\'s UUID', (done: DoneFn) => { theme = new UUIDTheme({ name: 'matching-uuid', uuid: 'item-uuid', @@ -121,10 +158,13 @@ describe('Theme Models', () => { type: ITEM.value, uuid: 'item-uuid', }); - expect(theme.matches('', dso)).toEqual(true); + theme.matches('', dso).subscribe((matches: boolean) => { + expect(matches).toBeTrue(); + done(); + }); }); - it('should return true when the UUIDs don\'t match', () => { + it('should return true when the UUIDs don\'t match', (done: DoneFn) => { theme = new UUIDTheme({ name: 'matching-uuid', uuid: 'item-uuid', @@ -133,7 +173,10 @@ describe('Theme Models', () => { type: COLLECTION.value, uuid: 'collection-uuid', }); - expect(theme.matches('', dso)).toEqual(false); + theme.matches('', dso).subscribe((matches: boolean) => { + expect(matches).toBeFalse(); + done(); + }); }); }); }); diff --git a/src/config/theme.model.ts b/src/config/theme.model.ts index 019540f18a..571d47a1d1 100644 --- a/src/config/theme.model.ts +++ b/src/config/theme.model.ts @@ -6,6 +6,8 @@ import { getDSORoute } from '../app/app-routing-paths'; import { HandleObject } from '../app/core/shared/handle-object.model'; import { Injector } from '@angular/core'; import { HandleService } from '../app/shared/handle.service'; +import { combineLatest, Observable, of as observableOf } from 'rxjs'; +import { map, take } from 'rxjs/operators'; export interface NamedThemeConfig extends Config { name: string; @@ -55,8 +57,8 @@ export class Theme { constructor(public config: NamedThemeConfig) { } - matches(url: string, dso: DSpaceObject): boolean { - return true; + matches(url: string, dso: DSpaceObject): Observable<boolean> { + return observableOf(true); } } @@ -68,7 +70,7 @@ export class RegExTheme extends Theme { this.regex = new RegExp(this.config.regex); } - matches(url: string, dso: DSpaceObject): boolean { + matches(url: string, dso: DSpaceObject): Observable<boolean> { let match; const route = getDSORoute(dso); @@ -80,25 +82,33 @@ export class RegExTheme extends Theme { match = url.match(this.regex); } - return hasValue(match); + return observableOf(hasValue(match)); } } export class HandleTheme extends Theme { - private normalizedHandle; + private normalizedHandle$: Observable<string | null>; constructor(public config: HandleThemeConfig, protected handleService: HandleService ) { super(config); - this.normalizedHandle = this.handleService.normalizeHandle(this.config.handle); - + this.normalizedHandle$ = this.handleService.normalizeHandle(this.config.handle).pipe( + take(1), + ); } - matches<T extends DSpaceObject & HandleObject>(url: string, dso: T): boolean { - return hasValue(dso) && hasValue(dso.handle) - && this.handleService.normalizeHandle(dso.handle) === this.normalizedHandle; + matches<T extends DSpaceObject & HandleObject>(url: string, dso: T): Observable<boolean> { + return combineLatest([ + this.handleService.normalizeHandle(dso?.handle), + this.normalizedHandle$, + ]).pipe( + map(([handle, normalizedHandle]: [string | null, string | null]) => { + return hasValue(dso) && hasValue(dso.handle) && handle === normalizedHandle; + }), + take(1), + ); } } @@ -107,8 +117,8 @@ export class UUIDTheme extends Theme { super(config); } - matches(url: string, dso: DSpaceObject): boolean { - return hasValue(dso) && dso.uuid === this.config.uuid; + matches(url: string, dso: DSpaceObject): Observable<boolean> { + return observableOf(hasValue(dso) && dso.uuid === this.config.uuid); } } -- GitLab From 27f3fc310f5cc14d8b8e81c7009247db9b8066ad Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Tue, 31 Oct 2023 00:04:46 +0100 Subject: [PATCH 173/183] 107671: Split Theme model & ThemeConfig classes in separate files to prevent circular dependencies (cherry picked from commit da8880e5ba4ca1bff5936618391d14ce9a8d6153) --- src/app/root/root.component.ts | 2 +- src/app/shared/mocks/theme-service.mock.ts | 2 +- .../listable-object.decorator.ts | 2 +- .../shared/theme-support}/theme.model.ts | 66 +++---------------- .../theme-support/theme.service.spec.ts | 2 +- src/app/shared/theme-support/theme.service.ts | 3 +- .../theme-support/themed.component.spec.ts | 2 +- src/config/app-config.interface.ts | 2 +- src/config/config.util.spec.ts | 2 +- src/config/config.util.ts | 2 +- src/config/default-app-config.ts | 2 +- src/config/theme.config.ts | 51 ++++++++++++++ src/config/theme.model.spec.ts | 2 +- 13 files changed, 71 insertions(+), 69 deletions(-) rename src/{config => app/shared/theme-support}/theme.model.ts (60%) create mode 100644 src/config/theme.config.ts diff --git a/src/app/root/root.component.ts b/src/app/root/root.component.ts index aef43b510a..160504f14f 100644 --- a/src/app/root/root.component.ts +++ b/src/app/root/root.component.ts @@ -13,7 +13,7 @@ import { AuthService } from '../core/auth/auth.service'; import { CSSVariableService } from '../shared/sass-helper/css-variable.service'; import { MenuService } from '../shared/menu/menu.service'; import { HostWindowService } from '../shared/host-window.service'; -import { ThemeConfig } from '../../config/theme.model'; +import { ThemeConfig } from '../../config/theme.config'; import { Angulartics2DSpace } from '../statistics/angulartics/dspace-provider'; import { environment } from '../../environments/environment'; import { slideSidebarPadding } from '../shared/animations/slide'; diff --git a/src/app/shared/mocks/theme-service.mock.ts b/src/app/shared/mocks/theme-service.mock.ts index e3c2960e51..3997d17504 100644 --- a/src/app/shared/mocks/theme-service.mock.ts +++ b/src/app/shared/mocks/theme-service.mock.ts @@ -1,6 +1,6 @@ import { ThemeService } from '../theme-support/theme.service'; import { of as observableOf } from 'rxjs'; -import { ThemeConfig } from '../../../config/theme.model'; +import { ThemeConfig } from '../../../config/theme.config'; import { isNotEmpty } from '../empty.util'; export function getMockThemeService(themeName = 'base', themes?: ThemeConfig[]): ThemeService { diff --git a/src/app/shared/object-collection/shared/listable-object/listable-object.decorator.ts b/src/app/shared/object-collection/shared/listable-object/listable-object.decorator.ts index e5654e63e0..470bcfcdaf 100644 --- a/src/app/shared/object-collection/shared/listable-object/listable-object.decorator.ts +++ b/src/app/shared/object-collection/shared/listable-object/listable-object.decorator.ts @@ -4,7 +4,7 @@ import { hasNoValue, hasValue, isNotEmpty } from '../../../empty.util'; import { GenericConstructor } from '../../../../core/shared/generic-constructor'; import { ListableObject } from '../listable-object.model'; import { environment } from '../../../../../environments/environment'; -import { ThemeConfig } from '../../../../../config/theme.model'; +import { ThemeConfig } from '../../../../../config/theme.config'; import { InjectionToken } from '@angular/core'; export const DEFAULT_VIEW_MODE = ViewMode.ListElement; diff --git a/src/config/theme.model.ts b/src/app/shared/theme-support/theme.model.ts similarity index 60% rename from src/config/theme.model.ts rename to src/app/shared/theme-support/theme.model.ts index 571d47a1d1..ce470dedc0 100644 --- a/src/config/theme.model.ts +++ b/src/app/shared/theme-support/theme.model.ts @@ -1,57 +1,13 @@ /* eslint-disable max-classes-per-file */ -import { Config } from './config.interface'; -import { hasValue, hasNoValue, isNotEmpty } from '../app/shared/empty.util'; -import { DSpaceObject } from '../app/core/shared/dspace-object.model'; -import { getDSORoute } from '../app/app-routing-paths'; -import { HandleObject } from '../app/core/shared/handle-object.model'; +import { hasValue, hasNoValue, isNotEmpty } from '../empty.util'; +import { DSpaceObject } from '../../core/shared/dspace-object.model'; +import { getDSORoute } from '../../app-routing-paths'; +import { HandleObject } from '../../core/shared/handle-object.model'; import { Injector } from '@angular/core'; -import { HandleService } from '../app/shared/handle.service'; +import { HandleService } from '../handle.service'; import { combineLatest, Observable, of as observableOf } from 'rxjs'; import { map, take } from 'rxjs/operators'; - -export interface NamedThemeConfig extends Config { - name: string; - - /** - * Specify another theme to build upon: whenever a themed component is not found in the current theme, - * its ancestor theme(s) will be checked recursively before falling back to the default theme. - */ - extends?: string; - - /** - * A list of HTML tags that should be added to the HEAD section of the document, whenever this theme is active. - */ - headTags?: HeadTagConfig[]; -} - -/** - * Interface that represents a single theme-specific HTML tag in the HEAD section of the page. - */ -export interface HeadTagConfig extends Config { - /** - * The name of the HTML tag - */ - tagName: string; - - /** - * The attributes on the HTML tag - */ - attributes?: { - [key: string]: string; - }; -} - -export interface RegExThemeConfig extends NamedThemeConfig { - regex: string; -} - -export interface HandleThemeConfig extends NamedThemeConfig { - handle: string; -} - -export interface UUIDThemeConfig extends NamedThemeConfig { - uuid: string; -} +import { HandleThemeConfig, NamedThemeConfig, RegExThemeConfig, UUIDThemeConfig, ThemeConfig } from '../../../config/theme.config'; export class Theme { constructor(public config: NamedThemeConfig) { @@ -71,7 +27,7 @@ export class RegExTheme extends Theme { } matches(url: string, dso: DSpaceObject): Observable<boolean> { - let match; + let match: RegExpMatchArray; const route = getDSORoute(dso); if (isNotEmpty(route)) { @@ -92,7 +48,7 @@ export class HandleTheme extends Theme { constructor(public config: HandleThemeConfig, protected handleService: HandleService - ) { + ) { super(config); this.normalizedHandle$ = this.handleService.normalizeHandle(this.config.handle).pipe( take(1), @@ -133,9 +89,3 @@ export const themeFactory = (config: ThemeConfig, injector: Injector): Theme => return new Theme(config as NamedThemeConfig); } }; - -export type ThemeConfig - = NamedThemeConfig - | RegExThemeConfig - | HandleThemeConfig - | UUIDThemeConfig; diff --git a/src/app/shared/theme-support/theme.service.spec.ts b/src/app/shared/theme-support/theme.service.spec.ts index c4669408e1..34dffe2ef2 100644 --- a/src/app/shared/theme-support/theme.service.spec.ts +++ b/src/app/shared/theme-support/theme.service.spec.ts @@ -4,7 +4,7 @@ import { provideMockActions } from '@ngrx/effects/testing'; import { LinkService } from '../../core/cache/builders/link.service'; import { hot } from 'jasmine-marbles'; import { SetThemeAction } from './theme.actions'; -import { Theme } from '../../../config/theme.model'; +import { Theme } from './theme.model'; import { provideMockStore } from '@ngrx/store/testing'; import { Community } from '../../core/shared/community.model'; import { COMMUNITY } from '../../core/shared/community.resource-type'; diff --git a/src/app/shared/theme-support/theme.service.ts b/src/app/shared/theme-support/theme.service.ts index daf2e3960e..40aa559b23 100644 --- a/src/app/shared/theme-support/theme.service.ts +++ b/src/app/shared/theme-support/theme.service.ts @@ -8,7 +8,8 @@ import { hasNoValue, hasValue, isNotEmpty } from '../empty.util'; import { RemoteData } from '../../core/data/remote-data'; import { DSpaceObject } from '../../core/shared/dspace-object.model'; import { getFirstCompletedRemoteData, getFirstSucceededRemoteData, getRemoteDataPayload } from '../../core/shared/operators'; -import { HeadTagConfig, Theme, ThemeConfig, themeFactory } from '../../../config/theme.model'; +import { Theme, themeFactory } from './theme.model'; +import { ThemeConfig, HeadTagConfig } from '../../../config/theme.config'; import { NO_OP_ACTION_TYPE, NoOpAction } from '../ngrx/no-op.action'; import { followLink } from '../utils/follow-link-config.model'; import { LinkService } from '../../core/cache/builders/link.service'; diff --git a/src/app/shared/theme-support/themed.component.spec.ts b/src/app/shared/theme-support/themed.component.spec.ts index 7776e60379..3ddc13ab6c 100644 --- a/src/app/shared/theme-support/themed.component.spec.ts +++ b/src/app/shared/theme-support/themed.component.spec.ts @@ -6,7 +6,7 @@ import { VarDirective } from '../utils/var.directive'; import { ThemeService } from './theme.service'; import { getMockThemeService } from '../mocks/theme-service.mock'; import { TestComponent } from './test/test.component.spec'; -import { ThemeConfig } from '../../../config/theme.model'; +import { ThemeConfig } from '../../../config/theme.config'; @Component({ selector: 'ds-test-themed-component', diff --git a/src/config/app-config.interface.ts b/src/config/app-config.interface.ts index 84a30549a7..69aeab7cbf 100644 --- a/src/config/app-config.interface.ts +++ b/src/config/app-config.interface.ts @@ -9,7 +9,7 @@ import { FormConfig } from './form-config.interfaces'; import { LangConfig } from './lang-config.interface'; import { ItemConfig } from './item-config.interface'; import { CollectionPageConfig } from './collection-page-config.interface'; -import { ThemeConfig } from './theme.model'; +import { ThemeConfig } from './theme.config'; import { AuthConfig } from './auth-config.interfaces'; import { UIServerConfig } from './ui-server-config.interface'; import { MediaViewerConfig } from './media-viewer-config.interface'; diff --git a/src/config/config.util.spec.ts b/src/config/config.util.spec.ts index 2d1d8e1be7..4dc2b67260 100644 --- a/src/config/config.util.spec.ts +++ b/src/config/config.util.spec.ts @@ -1,7 +1,7 @@ import { environment } from '../environments/environment.production'; import { extendEnvironmentWithAppConfig } from './config.util'; import { DefaultAppConfig } from './default-app-config'; -import { HandleThemeConfig } from './theme.model'; +import { HandleThemeConfig } from './theme.config'; describe('Config Util', () => { describe('extendEnvironmentWithAppConfig', () => { diff --git a/src/config/config.util.ts b/src/config/config.util.ts index 9912a817d6..c1d87e3490 100644 --- a/src/config/config.util.ts +++ b/src/config/config.util.ts @@ -5,7 +5,7 @@ import { environment } from '../environments/environment'; import { hasNoValue } from '../app/shared/empty.util'; import { AppConfig } from './app-config.interface'; -import { ThemeConfig, NamedThemeConfig } from './theme.model'; +import { ThemeConfig, NamedThemeConfig } from './theme.config'; import { BASE_THEME_NAME } from '../app/shared/theme-support/theme.constants'; /** diff --git a/src/config/default-app-config.ts b/src/config/default-app-config.ts index 61e7abcd62..5eced97ee2 100644 --- a/src/config/default-app-config.ts +++ b/src/config/default-app-config.ts @@ -12,7 +12,7 @@ import { MediaViewerConfig } from './media-viewer-config.interface'; import { INotificationBoardOptions } from './notifications-config.interfaces'; import { ServerConfig } from './server-config.interface'; import { SubmissionConfig } from './submission-config.interface'; -import { ThemeConfig } from './theme.model'; +import { ThemeConfig } from './theme.config'; import { UIServerConfig } from './ui-server-config.interface'; import { BundleConfig } from './bundle-config.interface'; import { ActuatorsConfig } from './actuators.config'; diff --git a/src/config/theme.config.ts b/src/config/theme.config.ts new file mode 100644 index 0000000000..7989dc3af9 --- /dev/null +++ b/src/config/theme.config.ts @@ -0,0 +1,51 @@ +import { Config } from './config.interface'; + +export interface NamedThemeConfig extends Config { + name: string; + + /** + * Specify another theme to build upon: whenever a themed component is not found in the current theme, + * its ancestor theme(s) will be checked recursively before falling back to the default theme. + */ + extends?: string; + + /** + * A list of HTML tags that should be added to the HEAD section of the document, whenever this theme is active. + */ + headTags?: HeadTagConfig[]; +} + +/** + * Interface that represents a single theme-specific HTML tag in the HEAD section of the page. + */ +export interface HeadTagConfig extends Config { + /** + * The name of the HTML tag + */ + tagName: string; + + /** + * The attributes on the HTML tag + */ + attributes?: { + [key: string]: string; + }; +} + +export interface RegExThemeConfig extends NamedThemeConfig { + regex: string; +} + +export interface HandleThemeConfig extends NamedThemeConfig { + handle: string; +} + +export interface UUIDThemeConfig extends NamedThemeConfig { + uuid: string; +} + +export type ThemeConfig + = NamedThemeConfig + | RegExThemeConfig + | HandleThemeConfig + | UUIDThemeConfig; diff --git a/src/config/theme.model.spec.ts b/src/config/theme.model.spec.ts index d5005cb245..de2e2f7cef 100644 --- a/src/config/theme.model.spec.ts +++ b/src/config/theme.model.spec.ts @@ -1,4 +1,4 @@ -import { HandleTheme, RegExTheme, Theme, UUIDTheme } from './theme.model'; +import { HandleTheme, RegExTheme, Theme, UUIDTheme } from '../app/shared/theme-support/theme.model'; import { getCommunityModuleRoute } from '../app/community-page/community-page-routing-paths'; import { Community } from '../app/core/shared/community.model'; import { COMMUNITY } from '../app/core/shared/community.resource-type'; -- GitLab From 1222ed45ca55d6ae548fb92612b03d5e33810202 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Wed, 1 Nov 2023 00:20:50 +0100 Subject: [PATCH 174/183] 107671: Fixed bug where config property would still sometimes be undefined whey calling the ngOnDestroy in the ThemedComponent (cherry picked from commit 4e54cca6004e0e28d532c175ac29895fe7e7c0db) --- .../community-page-sub-collection-list.component.ts | 11 +++++++---- .../community-page-sub-community-list.component.ts | 11 +++++++---- 2 files changed, 14 insertions(+), 8 deletions(-) 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 3a77149e5b..ed14096ce0 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,7 +1,7 @@ import { Component, Input, OnDestroy, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; -import { BehaviorSubject, combineLatest as observableCombineLatest } from 'rxjs'; +import { BehaviorSubject, combineLatest as observableCombineLatest, Subscription } from 'rxjs'; import { RemoteData } from '../../core/data/remote-data'; import { Collection } from '../../core/shared/collection.model'; @@ -50,6 +50,8 @@ export class CommunityPageSubCollectionListComponent implements OnInit, OnDestro */ subCollectionsRDObs: BehaviorSubject<RemoteData<PaginatedList<Collection>>> = new BehaviorSubject<RemoteData<PaginatedList<Collection>>>({} as any); + subscriptions: Subscription[] = []; + constructor( protected cds: CollectionDataService, protected paginationService: PaginationService, @@ -77,7 +79,7 @@ export class CommunityPageSubCollectionListComponent implements OnInit, OnDestro const pagination$ = this.paginationService.getCurrentPagination(this.config.id, this.config); const sort$ = this.paginationService.getCurrentSort(this.config.id, this.sortConfig); - observableCombineLatest([pagination$, sort$]).pipe( + this.subscriptions.push(observableCombineLatest([pagination$, sort$]).pipe( switchMap(([currentPagination, currentSort]) => { return this.cds.findByParent(this.community.id, { currentPage: currentPagination.currentPage, @@ -87,11 +89,12 @@ export class CommunityPageSubCollectionListComponent implements OnInit, OnDestro }) ).subscribe((results) => { this.subCollectionsRDObs.next(results); - }); + })); } ngOnDestroy(): void { - this.paginationService.clearPagination(this.config.id); + this.paginationService.clearPagination(this.config?.id); + this.subscriptions.map((subscription: Subscription) => subscription.unsubscribe()); } } 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 5a0409a051..08c9509edb 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,7 +1,7 @@ import { Component, Input, OnDestroy, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; -import { BehaviorSubject, combineLatest as observableCombineLatest } from 'rxjs'; +import { BehaviorSubject, combineLatest as observableCombineLatest, Subscription } from 'rxjs'; import { RemoteData } from '../../core/data/remote-data'; import { Community } from '../../core/shared/community.model'; @@ -52,6 +52,8 @@ export class CommunityPageSubCommunityListComponent implements OnInit, OnDestroy */ subCommunitiesRDObs: BehaviorSubject<RemoteData<PaginatedList<Community>>> = new BehaviorSubject<RemoteData<PaginatedList<Community>>>({} as any); + subscriptions: Subscription[] = []; + constructor( protected cds: CommunityDataService, protected paginationService: PaginationService, @@ -79,7 +81,7 @@ export class CommunityPageSubCommunityListComponent implements OnInit, OnDestroy const pagination$ = this.paginationService.getCurrentPagination(this.config.id, this.config); const sort$ = this.paginationService.getCurrentSort(this.config.id, this.sortConfig); - observableCombineLatest([pagination$, sort$]).pipe( + this.subscriptions.push(observableCombineLatest([pagination$, sort$]).pipe( switchMap(([currentPagination, currentSort]) => { return this.cds.findByParent(this.community.id, { currentPage: currentPagination.currentPage, @@ -89,11 +91,12 @@ export class CommunityPageSubCommunityListComponent implements OnInit, OnDestroy }) ).subscribe((results) => { this.subCommunitiesRDObs.next(results); - }); + })); } ngOnDestroy(): void { - this.paginationService.clearPagination(this.config.id); + this.paginationService.clearPagination(this.config?.id); + this.subscriptions.map((subscription: Subscription) => subscription.unsubscribe()); } } -- GitLab From 0cd72e4917ee8aa162098d92749b9544a8e89645 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Sat, 11 Nov 2023 02:03:39 +0100 Subject: [PATCH 175/183] 107671: Fixed theme matching by handle not working in production mode (cherry picked from commit 7529ed8b350878bda844138a3c78a6587a3034a9) --- src/app/shared/handle.service.spec.ts | 17 ++++++++--- src/app/shared/handle.service.ts | 31 +++++++++------------ src/app/shared/theme-support/theme.model.ts | 27 +++++++++--------- 3 files changed, 39 insertions(+), 36 deletions(-) diff --git a/src/app/shared/handle.service.spec.ts b/src/app/shared/handle.service.spec.ts index a499bdd464..8203940c6a 100644 --- a/src/app/shared/handle.service.spec.ts +++ b/src/app/shared/handle.service.spec.ts @@ -1,8 +1,9 @@ -import { HandleService } from './handle.service'; +import { HandleService, CANONICAL_PREFIX_KEY } from './handle.service'; import { TestBed } from '@angular/core/testing'; import { ConfigurationDataServiceStub } from './testing/configuration-data.service.stub'; import { ConfigurationDataService } from '../core/data/configuration-data.service'; -import { of as observableOf } from 'rxjs'; +import { createSuccessfulRemoteDataObject$ } from './remote-data.utils'; +import { ConfigurationProperty } from '../core/shared/configuration-property.model'; describe('HandleService', () => { let service: HandleService; @@ -22,7 +23,11 @@ describe('HandleService', () => { describe(`normalizeHandle`, () => { it('should normalize a handle url with custom conical prefix with trailing slash', (done: DoneFn) => { - service.canonicalPrefix$ = observableOf('https://hdl.handle.net/'); + spyOn(configurationService, 'findByPropertyName').and.returnValue(createSuccessfulRemoteDataObject$({ + ... new ConfigurationProperty(), + name: CANONICAL_PREFIX_KEY, + values: ['https://hdl.handle.net/'], + })); service.normalizeHandle('https://hdl.handle.net/123456789/123456').subscribe((handle: string | null) => { expect(handle).toBe('123456789/123456'); @@ -31,7 +36,11 @@ describe('HandleService', () => { }); it('should normalize a handle url with custom conical prefix without trailing slash', (done: DoneFn) => { - service.canonicalPrefix$ = observableOf('https://hdl.handle.net'); + spyOn(configurationService, 'findByPropertyName').and.returnValue(createSuccessfulRemoteDataObject$({ + ... new ConfigurationProperty(), + name: CANONICAL_PREFIX_KEY, + values: ['https://hdl.handle.net/'], + })); service.normalizeHandle('https://hdl.handle.net/123456789/123456').subscribe((handle: string | null) => { expect(handle).toBe('123456789/123456'); diff --git a/src/app/shared/handle.service.ts b/src/app/shared/handle.service.ts index 56b3922753..1f22c7d304 100644 --- a/src/app/shared/handle.service.ts +++ b/src/app/shared/handle.service.ts @@ -4,7 +4,7 @@ import { ConfigurationDataService } from '../core/data/configuration-data.servic import { getFirstCompletedRemoteData } from '../core/shared/operators'; import { map, take } from 'rxjs/operators'; import { ConfigurationProperty } from '../core/shared/configuration-property.model'; -import { Observable } from 'rxjs'; +import { Observable, of as observableOf } from 'rxjs'; import { RemoteData } from '../core/data/remote-data'; export const CANONICAL_PREFIX_KEY = 'handle.canonical.prefix'; @@ -20,22 +20,9 @@ const NO_PREFIX_REGEX = /^([^\/]+\/[^\/]+)$/; }) export class HandleService { - canonicalPrefix$: Observable<string | undefined>; - constructor( protected configurationService: ConfigurationDataService, ) { - this.canonicalPrefix$ = this.configurationService.findByPropertyName(CANONICAL_PREFIX_KEY).pipe( - getFirstCompletedRemoteData(), - take(1), - map((configurationPropertyRD: RemoteData<ConfigurationProperty>) => { - if (configurationPropertyRD.hasSucceeded) { - return configurationPropertyRD.payload.values.length >= 1 ? configurationPropertyRD.payload.values[0] : undefined; - } else { - return undefined; - } - }), - ); } /** @@ -55,12 +42,20 @@ export class HandleService { * </ul> */ normalizeHandle(handle: string): Observable<string | null> { - return this.canonicalPrefix$.pipe( + if (hasNoValue(handle)) { + return observableOf(null); + } + return this.configurationService.findByPropertyName(CANONICAL_PREFIX_KEY).pipe( + getFirstCompletedRemoteData(), + map((configurationPropertyRD: RemoteData<ConfigurationProperty>) => { + if (configurationPropertyRD.hasSucceeded) { + return configurationPropertyRD.payload.values.length >= 1 ? configurationPropertyRD.payload.values[0] : undefined; + } else { + return undefined; + } + }), map((prefix: string | undefined) => { let matches: string[]; - if (hasNoValue(handle)) { - return null; - } matches = handle.match(PREFIX_REGEX(prefix)); diff --git a/src/app/shared/theme-support/theme.model.ts b/src/app/shared/theme-support/theme.model.ts index ce470dedc0..470f09853c 100644 --- a/src/app/shared/theme-support/theme.model.ts +++ b/src/app/shared/theme-support/theme.model.ts @@ -44,27 +44,26 @@ export class RegExTheme extends Theme { export class HandleTheme extends Theme { - private normalizedHandle$: Observable<string | null>; - constructor(public config: HandleThemeConfig, protected handleService: HandleService ) { super(config); - this.normalizedHandle$ = this.handleService.normalizeHandle(this.config.handle).pipe( - take(1), - ); } matches<T extends DSpaceObject & HandleObject>(url: string, dso: T): Observable<boolean> { - return combineLatest([ - this.handleService.normalizeHandle(dso?.handle), - this.normalizedHandle$, - ]).pipe( - map(([handle, normalizedHandle]: [string | null, string | null]) => { - return hasValue(dso) && hasValue(dso.handle) && handle === normalizedHandle; - }), - take(1), - ); + if (hasValue(dso?.handle)) { + return combineLatest([ + this.handleService.normalizeHandle(dso?.handle), + this.handleService.normalizeHandle(this.config.handle), + ]).pipe( + map(([handle, normalizedHandle]: [string | null, string | null]) => { + return hasValue(dso) && hasValue(dso.handle) && handle === normalizedHandle; + }), + take(1), + ); + } else { + return observableOf(false); + } } } -- GitLab From 8f9a358afb00ffc5784788d291811c26154acdcb Mon Sep 17 00:00:00 2001 From: Vlad Nouski <uladzislau.nouski@4science.com> Date: Fri, 10 Nov 2023 14:38:56 +0100 Subject: [PATCH 176/183] [DURACOM-202] feature: item edit pages are accessible by administrator (cherry picked from commit ccf1cc45473a8a92d117215adc0eb650a27d6d77) --- .../edit-item-page.routing.module.ts | 10 ++++-- .../item-page-access-control.guard.ts | 31 +++++++++++++++++++ .../edit-item-page/item-page-curate.guard.ts | 31 +++++++++++++++++++ 3 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 src/app/item-page/edit-item-page/item-page-access-control.guard.ts create mode 100644 src/app/item-page/edit-item-page/item-page-curate.guard.ts diff --git a/src/app/item-page/edit-item-page/edit-item-page.routing.module.ts b/src/app/item-page/edit-item-page/edit-item-page.routing.module.ts index f22027916f..5266b1b926 100644 --- a/src/app/item-page/edit-item-page/edit-item-page.routing.module.ts +++ b/src/app/item-page/edit-item-page/edit-item-page.routing.module.ts @@ -38,6 +38,8 @@ import { ItemPageBitstreamsGuard } from './item-page-bitstreams.guard'; import { ItemPageRelationshipsGuard } from './item-page-relationships.guard'; import { ItemPageVersionHistoryGuard } from './item-page-version-history.guard'; import { ItemPageCollectionMapperGuard } from './item-page-collection-mapper.guard'; +import { ItemPageCurateGuard } from './item-page-curate.guard'; +import { ItemPageAccessControlGuard } from './item-page-access-control.guard'; import { ThemedDsoEditMetadataComponent } from '../../dso-shared/dso-edit-metadata/themed-dso-edit-metadata.component'; import { ItemPageRegisterDoiGuard } from './item-page-register-doi.guard'; import { ItemCurateComponent } from './item-curate/item-curate.component'; @@ -87,7 +89,8 @@ import { ItemAccessControlComponent } from './item-access-control/item-access-co { path: 'curate', component: ItemCurateComponent, - data: { title: 'item.edit.tabs.curate.title', showBreadcrumbs: true } + data: { title: 'item.edit.tabs.curate.title', showBreadcrumbs: true }, + canActivate: [ItemPageCurateGuard] }, { path: 'relationships', @@ -116,7 +119,8 @@ import { ItemAccessControlComponent } from './item-access-control/item-access-co { path: 'access-control', component: ItemAccessControlComponent, - data: { title: 'item.edit.tabs.access-control.title', showBreadcrumbs: true } + data: { title: 'item.edit.tabs.access-control.title', showBreadcrumbs: true }, + canActivate: [ItemPageAccessControlGuard] }, { path: 'mapper', @@ -202,11 +206,13 @@ import { ItemAccessControlComponent } from './item-access-control/item-access-co ItemPageWithdrawGuard, ItemPageAdministratorGuard, ItemPageMetadataGuard, + ItemPageCurateGuard, ItemPageStatusGuard, ItemPageBitstreamsGuard, ItemPageRelationshipsGuard, ItemPageVersionHistoryGuard, ItemPageCollectionMapperGuard, + ItemPageAccessControlGuard, ItemPageRegisterDoiGuard, ] }) diff --git a/src/app/item-page/edit-item-page/item-page-access-control.guard.ts b/src/app/item-page/edit-item-page/item-page-access-control.guard.ts new file mode 100644 index 0000000000..49975e5cfe --- /dev/null +++ b/src/app/item-page/edit-item-page/item-page-access-control.guard.ts @@ -0,0 +1,31 @@ +import { Injectable } from '@angular/core'; +import { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router'; +import { AuthorizationDataService } from '../../core/data/feature-authorization/authorization-data.service'; +import { ItemPageResolver } from '../item-page.resolver'; +import { Item } from '../../core/shared/item.model'; +import { DsoPageSingleFeatureGuard } from '../../core/data/feature-authorization/feature-authorization-guard/dso-page-single-feature.guard'; +import { Observable, of as observableOf } from 'rxjs'; +import { FeatureID } from '../../core/data/feature-authorization/feature-id'; +import { AuthService } from '../../core/auth/auth.service'; + +@Injectable({ + providedIn: 'root' +}) +/** + * Guard for preventing unauthorized access to certain {@link Item} pages requiring manage mappings rights + */ +export class ItemPageAccessControlGuard extends DsoPageSingleFeatureGuard<Item> { + constructor(protected resolver: ItemPageResolver, + protected authorizationService: AuthorizationDataService, + protected router: Router, + protected authService: AuthService) { + super(resolver, authorizationService, router, authService); + } + + /** + * Check manage mappings authorization rights + */ + getFeatureID(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<FeatureID> { + return observableOf(FeatureID.AdministratorOf); + } +} diff --git a/src/app/item-page/edit-item-page/item-page-curate.guard.ts b/src/app/item-page/edit-item-page/item-page-curate.guard.ts new file mode 100644 index 0000000000..b0594e016b --- /dev/null +++ b/src/app/item-page/edit-item-page/item-page-curate.guard.ts @@ -0,0 +1,31 @@ +import { Injectable } from '@angular/core'; +import { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router'; +import { AuthorizationDataService } from '../../core/data/feature-authorization/authorization-data.service'; +import { ItemPageResolver } from '../item-page.resolver'; +import { Item } from '../../core/shared/item.model'; +import { DsoPageSingleFeatureGuard } from '../../core/data/feature-authorization/feature-authorization-guard/dso-page-single-feature.guard'; +import { Observable, of as observableOf } from 'rxjs'; +import { FeatureID } from '../../core/data/feature-authorization/feature-id'; +import { AuthService } from '../../core/auth/auth.service'; + +@Injectable({ + providedIn: 'root' +}) +/** + * Guard for preventing unauthorized access to certain {@link Item} pages requiring edit metadata rights + */ +export class ItemPageCurateGuard extends DsoPageSingleFeatureGuard<Item> { + constructor(protected resolver: ItemPageResolver, + protected authorizationService: AuthorizationDataService, + protected router: Router, + protected authService: AuthService) { + super(resolver, authorizationService, router, authService); + } + + /** + * Check edit curate authorization rights + */ + getFeatureID(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<FeatureID> { + return observableOf(FeatureID.AdministratorOf); + } +} -- GitLab From a5a59dcf8bea220fb02e85c617338b3f7f3e1a84 Mon Sep 17 00:00:00 2001 From: Vlad Nouski <uladzislau.nouski@4science.com> Date: Fri, 10 Nov 2023 15:09:02 +0100 Subject: [PATCH 177/183] [DURACOM-202] refactor: code (cherry picked from commit b6d515ff09011d6ceef358c6836f2616cc059657) --- .../item-page/edit-item-page/item-page-access-control.guard.ts | 2 +- src/app/item-page/edit-item-page/item-page-curate.guard.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/item-page/edit-item-page/item-page-access-control.guard.ts b/src/app/item-page/edit-item-page/item-page-access-control.guard.ts index 49975e5cfe..a036fd9576 100644 --- a/src/app/item-page/edit-item-page/item-page-access-control.guard.ts +++ b/src/app/item-page/edit-item-page/item-page-access-control.guard.ts @@ -12,7 +12,7 @@ import { AuthService } from '../../core/auth/auth.service'; providedIn: 'root' }) /** - * Guard for preventing unauthorized access to certain {@link Item} pages requiring manage mappings rights + * Guard for preventing unauthorized access to certain {@link Item} pages requiring administrator rights */ export class ItemPageAccessControlGuard extends DsoPageSingleFeatureGuard<Item> { constructor(protected resolver: ItemPageResolver, diff --git a/src/app/item-page/edit-item-page/item-page-curate.guard.ts b/src/app/item-page/edit-item-page/item-page-curate.guard.ts index b0594e016b..40f9444524 100644 --- a/src/app/item-page/edit-item-page/item-page-curate.guard.ts +++ b/src/app/item-page/edit-item-page/item-page-curate.guard.ts @@ -12,7 +12,7 @@ import { AuthService } from '../../core/auth/auth.service'; providedIn: 'root' }) /** - * Guard for preventing unauthorized access to certain {@link Item} pages requiring edit metadata rights + * Guard for preventing unauthorized access to certain {@link Item} pages requiring administrator rights */ export class ItemPageCurateGuard extends DsoPageSingleFeatureGuard<Item> { constructor(protected resolver: ItemPageResolver, -- GitLab From 94866cab4568bf82b3501822c301ea09d3f9fc31 Mon Sep 17 00:00:00 2001 From: Vlad Nouski <uladzislau.nouski@4science.com> Date: Fri, 10 Nov 2023 15:11:09 +0100 Subject: [PATCH 178/183] [DURACOM-202] refactor: code (cherry picked from commit 6f64db1645623d9ac735ccab107439c77cc9969f) --- .../item-page/edit-item-page/item-page-access-control.guard.ts | 2 +- src/app/item-page/edit-item-page/item-page-curate.guard.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/item-page/edit-item-page/item-page-access-control.guard.ts b/src/app/item-page/edit-item-page/item-page-access-control.guard.ts index a036fd9576..9bc953db1e 100644 --- a/src/app/item-page/edit-item-page/item-page-access-control.guard.ts +++ b/src/app/item-page/edit-item-page/item-page-access-control.guard.ts @@ -23,7 +23,7 @@ export class ItemPageAccessControlGuard extends DsoPageSingleFeatureGuard<Item> } /** - * Check manage mappings authorization rights + * Check administrator authorization rights */ getFeatureID(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<FeatureID> { return observableOf(FeatureID.AdministratorOf); diff --git a/src/app/item-page/edit-item-page/item-page-curate.guard.ts b/src/app/item-page/edit-item-page/item-page-curate.guard.ts index 40f9444524..387b1b8bb9 100644 --- a/src/app/item-page/edit-item-page/item-page-curate.guard.ts +++ b/src/app/item-page/edit-item-page/item-page-curate.guard.ts @@ -23,7 +23,7 @@ export class ItemPageCurateGuard extends DsoPageSingleFeatureGuard<Item> { } /** - * Check edit curate authorization rights + * Check administrator authorization rights */ getFeatureID(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<FeatureID> { return observableOf(FeatureID.AdministratorOf); -- GitLab From dd554590b187c1940f565a89e2799f15ed7409e3 Mon Sep 17 00:00:00 2001 From: Vlad Nouski <uladzislau.nouski@4science.com> Date: Tue, 31 Oct 2023 14:21:42 +0100 Subject: [PATCH 179/183] fix: random order of buttons in status tab (cherry picked from commit 35f8b55f588985146482313a6ebad80154b6edbd) --- .../item-operation/itemOperation.model.ts | 8 + .../item-status/item-status.component.html | 2 +- .../item-status/item-status.component.ts | 212 +++++++++--------- 3 files changed, 121 insertions(+), 101 deletions(-) diff --git a/src/app/item-page/edit-item-page/item-operation/itemOperation.model.ts b/src/app/item-page/edit-item-page/item-operation/itemOperation.model.ts index 33302dcba6..a6f08ac95c 100644 --- a/src/app/item-page/edit-item-page/item-operation/itemOperation.model.ts +++ b/src/app/item-page/edit-item-page/item-operation/itemOperation.model.ts @@ -28,4 +28,12 @@ export class ItemOperation { this.disabled = disabled; } + /** + * Set whether this operation is authorized + * @param authorized + */ + setAuthorized(authorized: boolean): void { + this.authorized = authorized; + } + } diff --git a/src/app/item-page/edit-item-page/item-status/item-status.component.html b/src/app/item-page/edit-item-page/item-status/item-status.component.html index 8d4faaa2ac..155b947804 100644 --- a/src/app/item-page/edit-item-page/item-status/item-status.component.html +++ b/src/app/item-page/edit-item-page/item-status/item-status.component.html @@ -27,7 +27,7 @@ </div> <div *ngFor="let operation of (operations$ | async)" class="w-100" [ngClass]="{'pt-3': operation}"> - <ds-item-operation *ngIf="operation" [operation]="operation"></ds-item-operation> + <ds-item-operation [operation]="operation"></ds-item-operation> </div> </div> diff --git a/src/app/item-page/edit-item-page/item-status/item-status.component.ts b/src/app/item-page/edit-item-page/item-status/item-status.component.ts index 828f8d7439..8e04985c18 100644 --- a/src/app/item-page/edit-item-page/item-status/item-status.component.ts +++ b/src/app/item-page/edit-item-page/item-status/item-status.component.ts @@ -3,21 +3,20 @@ import { fadeIn, fadeInOut } from '../../../shared/animations/fade'; import { Item } from '../../../core/shared/item.model'; import { ActivatedRoute } from '@angular/router'; import { ItemOperation } from '../item-operation/itemOperation.model'; -import { distinctUntilChanged, map, mergeMap, switchMap, toArray } from 'rxjs/operators'; -import { BehaviorSubject, Observable, Subscription } from 'rxjs'; +import { concatMap, distinctUntilChanged, first, map, mergeMap, switchMap, toArray } from 'rxjs/operators'; +import { BehaviorSubject, combineLatest, Observable, of, Subscription } from 'rxjs'; import { RemoteData } from '../../../core/data/remote-data'; import { getItemEditRoute, getItemPageRoute } from '../../item-page-routing-paths'; import { AuthorizationDataService } from '../../../core/data/feature-authorization/authorization-data.service'; import { FeatureID } from '../../../core/data/feature-authorization/feature-id'; -import { hasValue, isNotEmpty } from '../../../shared/empty.util'; -import { - getAllSucceededRemoteDataPayload, getFirstCompletedRemoteData, getFirstSucceededRemoteData, getRemoteDataPayload, -} from '../../../core/shared/operators'; +import { hasValue } from '../../../shared/empty.util'; +import { getAllSucceededRemoteDataPayload, getFirstCompletedRemoteData, } from '../../../core/shared/operators'; import { IdentifierDataService } from '../../../core/data/identifier-data.service'; import { Identifier } from '../../../shared/object-list/identifier-data/identifier.model'; import { ConfigurationProperty } from '../../../core/shared/configuration-property.model'; import { ConfigurationDataService } from '../../../core/data/configuration-data.service'; import { IdentifierData } from '../../../shared/object-list/identifier-data/identifier-data.model'; +import { OrcidAuthService } from '../../../core/orcid/orcid-auth.service'; @Component({ selector: 'ds-item-status', @@ -73,6 +72,7 @@ export class ItemStatusComponent implements OnInit { private authorizationService: AuthorizationDataService, private identifierDataService: IdentifierDataService, private configurationService: ConfigurationDataService, + private orcidAuthService: OrcidAuthService ) { } @@ -82,14 +82,16 @@ export class ItemStatusComponent implements OnInit { ngOnInit(): void { this.itemRD$ = this.route.parent.data.pipe(map((data) => data.dso)); this.itemRD$.pipe( + first(), map((data: RemoteData<Item>) => data.payload) - ).subscribe((item: Item) => { - this.statusData = Object.assign({ - id: item.id, - handle: item.handle, - lastModified: item.lastModified - }); - this.statusDataKeys = Object.keys(this.statusData); + ).pipe( + switchMap((item: Item) => { + this.statusData = Object.assign({ + id: item.id, + handle: item.handle, + lastModified: item.lastModified + }); + this.statusDataKeys = Object.keys(this.statusData); // Observable for item identifiers (retrieved from embedded link) this.identifiers$ = this.identifierDataService.getIdentifierDataFor(item).pipe( @@ -105,99 +107,108 @@ export class ItemStatusComponent implements OnInit { // Observable for configuration determining whether the Register DOI feature is enabled let registerConfigEnabled$: Observable<boolean> = this.configurationService.findByPropertyName('identifiers.item-status.register-doi').pipe( getFirstCompletedRemoteData(), - map((rd: RemoteData<ConfigurationProperty>) => { - // If the config property is exposed via rest and has a value set, return it - if (rd.hasSucceeded && hasValue(rd.payload) && isNotEmpty(rd.payload.values)) { - return rd.payload.values[0] === 'true'; - } - // Otherwise, return false - return false; - }) + map((enabledRD: RemoteData<ConfigurationProperty>) => enabledRD.hasSucceeded && enabledRD.payload.values.length > 0) ); - /* - Construct a base list of operations. - The key is used to build messages - i18n example: 'item.edit.tabs.status.buttons.<key>.label' - The value is supposed to be a href for the button - */ - const operations: ItemOperation[] = []; - operations.push(new ItemOperation('authorizations', this.getCurrentUrl(item) + '/authorizations', FeatureID.CanManagePolicies, true)); - operations.push(new ItemOperation('mappedCollections', this.getCurrentUrl(item) + '/mapper', FeatureID.CanManageMappings, true)); - if (item.isWithdrawn) { - operations.push(new ItemOperation('reinstate', this.getCurrentUrl(item) + '/reinstate', FeatureID.ReinstateItem, true)); - } else { - operations.push(new ItemOperation('withdraw', this.getCurrentUrl(item) + '/withdraw', FeatureID.WithdrawItem, true)); - } - if (item.isDiscoverable) { - operations.push(new ItemOperation('private', this.getCurrentUrl(item) + '/private', FeatureID.CanMakePrivate, true)); - } else { - operations.push(new ItemOperation('public', this.getCurrentUrl(item) + '/public', FeatureID.CanMakePrivate, true)); - } - operations.push(new ItemOperation('delete', this.getCurrentUrl(item) + '/delete', FeatureID.CanDelete, true)); - operations.push(new ItemOperation('move', this.getCurrentUrl(item) + '/move', FeatureID.CanMove, true)); - this.operations$.next(operations); - - /* - When the identifier data stream changes, determine whether the register DOI button should be shown or not. - This is based on whether the DOI is in the right state (minted or pending, not already queued for registration - or registered) and whether the configuration property identifiers.item-status.register-doi is true + /** + * Construct a base list of operations. + * The key is used to build messages + * i18n example: 'item.edit.tabs.status.buttons.<key>.label' + * The value is supposed to be a href for the button */ - this.identifierDataService.getIdentifierDataFor(item).pipe( - getFirstSucceededRemoteData(), - getRemoteDataPayload(), - mergeMap((data: IdentifierData) => { - let identifiers = data.identifiers; - let no_doi = true; - let pending = false; - if (identifiers !== undefined && identifiers !== null) { - identifiers.forEach((identifier: Identifier) => { - if (hasValue(identifier) && identifier.identifierType === 'doi') { - // The item has some kind of DOI - no_doi = false; - if (identifier.identifierStatus === 'PENDING' || identifier.identifierStatus === 'MINTED' - || identifier.identifierStatus == null) { - // The item's DOI is pending, minted or null. - // It isn't registered, reserved, queued for registration or reservation or update, deleted - // or queued for deletion. - pending = true; - } + const currentUrl = this.getCurrentUrl(item); + const inititalOperations: ItemOperation[] = [ + new ItemOperation('authorizations', `${currentUrl}/authorizations`, FeatureID.CanManagePolicies, true), + new ItemOperation('mappedCollections', `${currentUrl}/mapper`, FeatureID.CanManageMappings, true), + item.isWithdrawn + ? new ItemOperation('reinstate', `${currentUrl}/reinstate`, FeatureID.ReinstateItem, true) + : new ItemOperation('withdraw', `${currentUrl}/withdraw`, FeatureID.WithdrawItem, true), + item.isDiscoverable + ? new ItemOperation('private', `${currentUrl}/private`, FeatureID.CanMakePrivate, true) + : new ItemOperation('public', `${currentUrl}/public`, FeatureID.CanMakePrivate, true), + new ItemOperation('move', `${currentUrl}/move`, FeatureID.CanMove, true), + new ItemOperation('delete', `${currentUrl}/delete`, FeatureID.CanDelete, true) + ]; + + this.operations$.next(inititalOperations); + + /** + * When the identifier data stream changes, determine whether the register DOI button should be shown or not. + * This is based on whether the DOI is in the right state (minted or pending, not already queued for registration + * or registered) and whether the configuration property identifiers.item-status.register-doi is true + */ + const ops$ = this.identifierDataService.getIdentifierDataFor(item).pipe( + getFirstCompletedRemoteData(), + mergeMap((dataRD: RemoteData<IdentifierData>) => { + if (dataRD.hasSucceeded) { + let identifiers = dataRD.payload.identifiers; + let no_doi = true; + let pending = false; + if (identifiers !== undefined && identifiers !== null) { + identifiers.forEach((identifier: Identifier) => { + if (hasValue(identifier) && identifier.identifierType === 'doi') { + // The item has some kind of DOI + no_doi = false; + if (['PENDING', 'MINTED', null].includes(identifier.identifierStatus)) { + // The item's DOI is pending, minted or null. + // It isn't registered, reserved, queued for registration or reservation or update, deleted + // or queued for deletion. + pending = true; + } + } + }); } - }); - } - // If there is no DOI, or a pending/minted/null DOI, and the config is enabled, return true - return registerConfigEnabled$.pipe( - map((enabled: boolean) => { - return enabled && (pending || no_doi); + // If there is no DOI, or a pending/minted/null DOI, and the config is enabled, return true + return registerConfigEnabled$.pipe( + map((enabled: boolean) => { + return enabled && (pending || no_doi); + } + )); + } else { + return of(false); + } + }), + // Switch map pushes the register DOI operation onto a copy of the base array then returns to the pipe + switchMap((showDoi: boolean) => { + const ops = [...inititalOperations]; + if (showDoi) { + const op = new ItemOperation('register-doi', `${currentUrl}/register-doi`, FeatureID.CanRegisterDOI, true); + ops.splice(ops.length - 1, 0, op); // Add item before last + } + return inititalOperations; + }), + concatMap((op: ItemOperation) => { + if (hasValue(op.featureID)) { + return this.authorizationService.isAuthorized(op.featureID, item.self).pipe( + distinctUntilChanged(), + map((authorized) => { + op.setDisabled(!authorized); + op.setAuthorized(authorized); + return op; + }) + ); } - )); - }), - // Switch map pushes the register DOI operation onto a copy of the base array then returns to the pipe - switchMap((showDoi: boolean) => { - let ops = [...operations]; - if (showDoi) { - ops.push(new ItemOperation('register-doi', this.getCurrentUrl(item) + '/register-doi', FeatureID.CanRegisterDOI, true)); - } - return ops; - }), - // Merge map checks and transforms each operation in the array based on whether it is authorized or not (disabled) - mergeMap((op: ItemOperation) => { - if (hasValue(op.featureID)) { - return this.authorizationService.isAuthorized(op.featureID, item.self).pipe( - distinctUntilChanged(), - map((authorized) => new ItemOperation(op.operationKey, op.operationUrl, op.featureID, !authorized, authorized)) - ); - } else { return [op]; - } - }), - // Wait for all operations to be emitted and return as an array - toArray(), - ).subscribe((data) => { - // Update the operations$ subject that draws the administrative buttons on the status page - this.operations$.next(data); - }); - }); + }), + toArray() + ); + + let orcidOps$ = of([]); + if (this.orcidAuthService.isLinkedToOrcid(item)) { + orcidOps$ = this.orcidAuthService.onlyAdminCanDisconnectProfileFromOrcid().pipe( + map((canDisconnect) => { + if (canDisconnect) { + return [new ItemOperation('unlinkOrcid', `${currentUrl}/unlink-orcid`)]; + } + return []; + }) + ); + } + + return combineLatest([ops$, orcidOps$]); + }), + map(([ops, orcidOps]: [ItemOperation[], ItemOperation[]]) => [...ops, ...orcidOps]) + ).subscribe((ops) => this.operations$.next(ops)); this.itemPageRoute$ = this.itemRD$.pipe( getAllSucceededRemoteDataPayload(), @@ -206,6 +217,7 @@ export class ItemStatusComponent implements OnInit { } + /** * Get the current url without query params * @returns {string} url -- GitLab From 651b6a7d76c6c5698fbbcde3085f0939c6a3b263 Mon Sep 17 00:00:00 2001 From: Vlad Nouski <uladzislau.nouski@4science.com> Date: Mon, 13 Nov 2023 15:02:27 +0100 Subject: [PATCH 180/183] refactor: code (cherry picked from commit fbbbc18844b44f6f56b7c5f1f5e07e4886877d20) --- .../item-status/item-status.component.spec.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/app/item-page/edit-item-page/item-status/item-status.component.spec.ts b/src/app/item-page/edit-item-page/item-status/item-status.component.spec.ts index a67de2f435..17ac3efa09 100644 --- a/src/app/item-page/edit-item-page/item-status/item-status.component.spec.ts +++ b/src/app/item-page/edit-item-page/item-status/item-status.component.spec.ts @@ -16,6 +16,7 @@ import { AuthorizationDataService } from '../../../core/data/feature-authorizati import { IdentifierDataService } from '../../../core/data/identifier-data.service'; import { ConfigurationDataService } from '../../../core/data/configuration-data.service'; import { ConfigurationProperty } from '../../../core/shared/configuration-property.model'; +import { OrcidAuthService } from '../../../core/orcid/orcid-auth.service'; let mockIdentifierDataService: IdentifierDataService; let mockConfigurationDataService: ConfigurationDataService; @@ -57,12 +58,18 @@ describe('ItemStatusComponent', () => { }; let authorizationService: AuthorizationDataService; + let orcidAuthService: any; beforeEach(waitForAsync(() => { authorizationService = jasmine.createSpyObj('authorizationService', { isAuthorized: observableOf(true) }); + orcidAuthService = jasmine.createSpyObj('OrcidAuthService', { + onlyAdminCanDisconnectProfileFromOrcid: observableOf ( true ), + isLinkedToOrcid: true + }); + TestBed.configureTestingModule({ imports: [CommonModule, RouterTestingModule.withRoutes([]), TranslateModule.forRoot(), NgbModule], declarations: [ItemStatusComponent], @@ -71,7 +78,8 @@ describe('ItemStatusComponent', () => { { provide: HostWindowService, useValue: new HostWindowServiceStub(0) }, { provide: AuthorizationDataService, useValue: authorizationService }, { provide: IdentifierDataService, useValue: mockIdentifierDataService }, - { provide: ConfigurationDataService, useValue: mockConfigurationDataService } + { provide: ConfigurationDataService, useValue: mockConfigurationDataService }, + { provide: OrcidAuthService, useValue: orcidAuthService }, ], schemas: [CUSTOM_ELEMENTS_SCHEMA] }).compileComponents(); })); -- GitLab From e293f3db52cf1e5b95a053480630525904f30664 Mon Sep 17 00:00:00 2001 From: Kristof De Langhe <kristof.delanghe@atmire.com> Date: Wed, 25 Oct 2023 11:20:39 +0200 Subject: [PATCH 181/183] 107685: menu-component re-render section on store update --- src/app/shared/menu/menu.component.ts | 3 +-- src/app/shared/menu/menu.service.ts | 9 ++++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/app/shared/menu/menu.component.ts b/src/app/shared/menu/menu.component.ts index 35e180b476..805f5888ea 100644 --- a/src/app/shared/menu/menu.component.ts +++ b/src/app/shared/menu/menu.component.ts @@ -6,7 +6,6 @@ import { GenericConstructor } from '../../core/shared/generic-constructor'; import { hasValue, isNotEmptyOperator } from '../empty.util'; import { MenuSectionComponent } from './menu-section/menu-section.component'; import { getComponentForMenu } from './menu-section.decorator'; -import { compareArraysUsingIds } from '../../item-page/simple/item-types/shared/item-relationships-utils'; import { MenuSection } from './menu-section.model'; import { MenuID } from './menu-id.model'; import { ActivatedRoute } from '@angular/router'; @@ -86,7 +85,7 @@ export class MenuComponent implements OnInit, OnDestroy { this.menuCollapsed = this.menuService.isMenuCollapsed(this.menuID); this.menuPreviewCollapsed = this.menuService.isMenuPreviewCollapsed(this.menuID); this.menuVisible = this.menuService.isMenuVisible(this.menuID); - this.sections = this.menuService.getMenuTopSections(this.menuID).pipe(distinctUntilChanged(compareArraysUsingIds())); + this.sections = this.menuService.getMenuTopSections(this.menuID); this.subs.push( this.sections.pipe( diff --git a/src/app/shared/menu/menu.service.ts b/src/app/shared/menu/menu.service.ts index 0ec7d67f25..f6f09be876 100644 --- a/src/app/shared/menu/menu.service.ts +++ b/src/app/shared/menu/menu.service.ts @@ -2,7 +2,7 @@ import { Injectable } from '@angular/core'; import { createSelector, MemoizedSelector, select, Store } from '@ngrx/store'; import { AppState, keySelector } from '../../app.reducer'; import { combineLatest as observableCombineLatest, Observable } from 'rxjs'; -import { filter, map, switchMap, take } from 'rxjs/operators'; +import { distinctUntilChanged, filter, map, switchMap, take } from 'rxjs/operators'; import { ActivateMenuSectionAction, AddMenuSectionAction, @@ -23,6 +23,7 @@ import { MenuSections } from './menu-sections.model'; import { MenuSection } from './menu-section.model'; import { MenuID } from './menu-id.model'; import { ActivatedRoute, NavigationEnd, Router } from '@angular/router'; +import { compareArraysUsingIds } from '../../item-page/simple/item-types/shared/item-relationships-utils'; export function menuKeySelector<T>(key: string, selector): MemoizedSelector<MenuState, T> { return createSelector(selector, (state) => { @@ -81,8 +82,10 @@ export class MenuService { return this.store.pipe( select(menuByIDSelector(menuID)), select(menuSectionStateSelector), - map((sections: MenuSections) => { - return Object.values(sections) + map((sections: MenuSections) => Object.values(sections)), + distinctUntilChanged(compareArraysUsingIds()), + map((sections: MenuSection[]) => { + return sections .filter((section: MenuSection) => hasNoValue(section.parentID)) .filter((section: MenuSection) => !mustBeVisible || section.visible); } -- GitLab From c98e8f6504e75e3574bfd1f090b7c8d9fe44e270 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem <alexandre@atmire.com> Date: Wed, 8 Nov 2023 14:57:54 +0100 Subject: [PATCH 182/183] 107902: Created test case for 2f26e686cc --- src/app/shared/menu/menu.component.spec.ts | 134 +++++++++++++++++++-- src/app/shared/menu/menu.component.ts | 2 +- 2 files changed, 122 insertions(+), 14 deletions(-) diff --git a/src/app/shared/menu/menu.component.spec.ts b/src/app/shared/menu/menu.component.spec.ts index f0660fab4a..e6566d97c3 100644 --- a/src/app/shared/menu/menu.component.spec.ts +++ b/src/app/shared/menu/menu.component.spec.ts @@ -1,12 +1,12 @@ +// eslint-disable-next-line max-classes-per-file import { ComponentFixture, fakeAsync, TestBed, tick, waitForAsync } from '@angular/core/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { TranslateModule } from '@ngx-translate/core'; -import { ChangeDetectionStrategy, Injector, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ChangeDetectionStrategy, Injector, NO_ERRORS_SCHEMA, Component } from '@angular/core'; import { MenuService } from './menu.service'; import { MenuComponent } from './menu.component'; -import { MenuServiceStub } from '../testing/menu-service.stub'; -import { of as observableOf } from 'rxjs'; -import { Router, ActivatedRoute } from '@angular/router'; +import { of as observableOf, BehaviorSubject } from 'rxjs'; +import { ActivatedRoute } from '@angular/router'; import { RouterTestingModule } from '@angular/router/testing'; import { MenuSection } from './menu-section.model'; import { MenuID } from './menu-id.model'; @@ -15,14 +15,39 @@ import { AuthorizationDataService } from '../../core/data/feature-authorization/ import { createSuccessfulRemoteDataObject } from '../remote-data.utils'; import { ThemeService } from '../theme-support/theme.service'; import { getMockThemeService } from '../mocks/theme-service.mock'; +import { MenuItemType } from './menu-item-type.model'; +import { LinkMenuItemModel } from './menu-item/models/link.model'; +import { provideMockStore, MockStore } from '@ngrx/store/testing'; +import { StoreModule, Store } from '@ngrx/store'; +import { authReducer } from '../../core/auth/auth.reducer'; +import { storeModuleConfig, AppState } from '../../app.reducer'; +import { rendersSectionForMenu } from './menu-section.decorator'; + +const mockMenuID = 'mock-menuID' as MenuID; + +@Component({ + // eslint-disable-next-line @angular-eslint/component-selector + selector: '', + template: '', +}) +@rendersSectionForMenu(mockMenuID, true) +class TestExpandableMenuComponent { +} + +@Component({ + // eslint-disable-next-line @angular-eslint/component-selector + selector: '', + template: '', +}) +@rendersSectionForMenu(mockMenuID, false) +class TestMenuComponent { +} describe('MenuComponent', () => { let comp: MenuComponent; let fixture: ComponentFixture<MenuComponent>; let menuService: MenuService; - let router: any; - - const mockMenuID = 'mock-menuID' as MenuID; + let store: MockStore; const mockStatisticSection = { 'id': 'statistics_site', 'active': true, 'visible': true, 'index': 2, 'type': 'statistics', 'model': { 'type': 1, 'text': 'menu.section.statistics', 'link': 'statistics' } }; @@ -48,21 +73,55 @@ describe('MenuComponent', () => { children: [] }; + const initialState = { + menus: { + [mockMenuID]: { + collapsed: true, + id: mockMenuID, + previewCollapsed: true, + sectionToSubsectionIndex: { + section1: [], + }, + sections: { + section1: { + id: 'section1', + active: false, + visible: true, + model: { + type: MenuItemType.LINK, + text: 'test', + link: '/test', + } as LinkMenuItemModel, + }, + }, + visible: true, + }, + }, + }; + beforeEach(waitForAsync(() => { authorizationService = jasmine.createSpyObj('authorizationService', { isAuthorized: observableOf(false) }); - TestBed.configureTestingModule({ - imports: [TranslateModule.forRoot(), NoopAnimationsModule, RouterTestingModule], + void TestBed.configureTestingModule({ + imports: [ + TranslateModule.forRoot(), + NoopAnimationsModule, + RouterTestingModule, + StoreModule.forRoot(authReducer, storeModuleConfig), + ], declarations: [MenuComponent], providers: [ Injector, { provide: ThemeService, useValue: getMockThemeService() }, - { provide: MenuService, useClass: MenuServiceStub }, + MenuService, + provideMockStore({ initialState }), { provide: AuthorizationDataService, useValue: authorizationService }, { provide: ActivatedRoute, useValue: routeStub }, + TestExpandableMenuComponent, + TestMenuComponent, ], schemas: [NO_ERRORS_SCHEMA] }).overrideComponent(MenuComponent, { @@ -74,13 +133,62 @@ describe('MenuComponent', () => { fixture = TestBed.createComponent(MenuComponent); comp = fixture.componentInstance; // SearchPageComponent test instance comp.menuID = mockMenuID; - menuService = (comp as any).menuService; - router = TestBed.inject(Router); + menuService = TestBed.inject(MenuService); + store = TestBed.inject(Store) as MockStore<AppState>; spyOn(comp as any, 'getSectionDataInjector').and.returnValue(MenuSection); - spyOn(comp as any, 'getSectionComponent').and.returnValue(observableOf({})); fixture.detectChanges(); }); + describe('ngOnInit', () => { + it('should trigger the section observable again when a new sub section has been added', () => { + spyOn(comp.sectionMap$, 'next').and.callThrough(); + const hasSubSections = new BehaviorSubject(false); + spyOn(menuService, 'hasSubSections').and.returnValue(hasSubSections.asObservable()); + spyOn(store, 'dispatch').and.callThrough(); + + store.setState({ + menus: { + [mockMenuID]: { + collapsed: true, + id: mockMenuID, + previewCollapsed: true, + sectionToSubsectionIndex: { + section1: ['test'], + }, + sections: { + section1: { + id: 'section1', + active: false, + visible: true, + model: { + type: MenuItemType.LINK, + text: 'test', + link: '/test', + } as LinkMenuItemModel, + }, + test: { + id: 'test', + parentID: 'section1', + active: false, + visible: true, + model: { + type: MenuItemType.LINK, + text: 'test', + link: '/test', + } as LinkMenuItemModel, + } + }, + visible: true, + }, + }, + }); + expect(menuService.hasSubSections).toHaveBeenCalled(); + hasSubSections.next(true); + + expect(comp.sectionMap$.next).toHaveBeenCalled(); + }); + }); + describe('toggle', () => { beforeEach(() => { spyOn(menuService, 'toggleMenu'); diff --git a/src/app/shared/menu/menu.component.ts b/src/app/shared/menu/menu.component.ts index 805f5888ea..7b1394ddd2 100644 --- a/src/app/shared/menu/menu.component.ts +++ b/src/app/shared/menu/menu.component.ts @@ -102,7 +102,7 @@ export class MenuComponent implements OnInit, OnDestroy { switchMap((section: MenuSection) => this.getSectionComponent(section).pipe( map((component: GenericConstructor<MenuSectionComponent>) => ({ section, component })) )), - distinctUntilChanged((x, y) => x.section.id === y.section.id) + distinctUntilChanged((x, y) => x.section.id === y.section.id && x.component.prototype === y.component.prototype), ).subscribe(({ section, component }) => { const nextMap = this.sectionMap$.getValue(); nextMap.set(section.id, { -- GitLab From d8ed267e5f1b4f3e91ac5aabc0cc8d77e07d05ba Mon Sep 17 00:00:00 2001 From: Tim Donohue <tim.donohue@lyrasis.org> Date: Wed, 15 Nov 2023 14:33:16 -0600 Subject: [PATCH 183/183] Update version tag for release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 77e5ae3620..1ddb27078f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dspace-angular", - "version": "7.6.1-next", + "version": "7.6.1", "scripts": { "ng": "ng", "config:watch": "nodemon", -- GitLab