+
+
diff --git a/src/app/root/root.component.spec.ts b/src/app/root/root.component.spec.ts
index 504bc34e34..ab148b8ebd 100644
--- a/src/app/root/root.component.spec.ts
+++ b/src/app/root/root.component.spec.ts
@@ -17,7 +17,7 @@ import { ActivatedRoute, Router } from '@angular/router';
import { RouterMock } from '../shared/mocks/router.mock';
import { MockActivatedRoute } from '../shared/mocks/active-router.mock';
import { MenuService } from '../shared/menu/menu.service';
-import { CSSVariableService } from '../shared/sass-helper/sass-helper.service';
+import { CSSVariableService } from '../shared/sass-helper/css-variable.service';
import { CSSVariableServiceStub } from '../shared/testing/css-variable-service.stub';
import { HostWindowService } from '../shared/host-window.service';
import { HostWindowServiceStub } from '../shared/testing/host-window-service.stub';
diff --git a/src/app/root/root.component.ts b/src/app/root/root.component.ts
index 472ba440c9..99b14e6458 100644
--- a/src/app/root/root.component.ts
+++ b/src/app/root/root.component.ts
@@ -10,7 +10,7 @@ import { MetadataService } from '../core/metadata/metadata.service';
import { HostWindowState } from '../shared/search/host-window.reducer';
import { NativeWindowRef, NativeWindowService } from '../core/services/window.service';
import { AuthService } from '../core/auth/auth.service';
-import { CSSVariableService } from '../shared/sass-helper/sass-helper.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';
@@ -63,8 +63,8 @@ export class RootComponent implements OnInit {
ngOnInit() {
this.sidebarVisible = this.menuService.isMenuVisible(MenuID.ADMIN);
- this.collapsedSidebarWidth = this.cssService.getVariable('collapsedSidebarWidth');
- this.totalSidebarWidth = this.cssService.getVariable('totalSidebarWidth');
+ this.collapsedSidebarWidth = this.cssService.getVariable('--ds-collapsed-sidebar-width');
+ this.totalSidebarWidth = this.cssService.getVariable('--ds-total-sidebar-width');
const sidebarCollapsed = this.menuService.isMenuCollapsed(MenuID.ADMIN);
this.slideSidebarOver = combineLatestObservable([sidebarCollapsed, this.windowService.isXsOrSm()])
diff --git a/src/app/shared/animations/slide.ts b/src/app/shared/animations/slide.ts
index b396333fb4..310ddbbfde 100644
--- a/src/app/shared/animations/slide.ts
+++ b/src/app/shared/animations/slide.ts
@@ -12,7 +12,7 @@ export const slide = trigger('slide', [
export const slideMobileNav = trigger('slideMobileNav', [
- state('expanded', style({ height: '100vh' })),
+ state('expanded', style({ height: 'auto', 'min-height': '100vh' })),
state('collapsed', style({ height: 0 })),
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 c2b414b6f3..94cbd4368a 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,11 +2,11 @@
-
- {{ 'nav.login' | translate }}
-
+
{{ 'nav.login' | translate }}
@@ -19,16 +19,16 @@
-
+
-
-
+
(current)
diff --git a/src/app/shared/auth-nav-menu/user-menu/user-menu.component.html b/src/app/shared/auth-nav-menu/user-menu/user-menu.component.html
index 736d39d318..e730b0d85c 100644
--- a/src/app/shared/auth-nav-menu/user-menu/user-menu.component.html
+++ b/src/app/shared/auth-nav-menu/user-menu/user-menu.component.html
@@ -1,10 +1,13 @@
diff --git a/src/app/shared/auth-nav-menu/user-menu/user-menu.component.spec.ts b/src/app/shared/auth-nav-menu/user-menu/user-menu.component.spec.ts
index 983fe68274..5576b942b3 100644
--- a/src/app/shared/auth-nav-menu/user-menu/user-menu.component.spec.ts
+++ b/src/app/shared/auth-nav-menu/user-menu/user-menu.component.spec.ts
@@ -162,10 +162,24 @@ describe('UserMenuComponent', () => {
});
it('should display user name and email', () => {
- const user = 'User Test (test@test.com)';
+ const username = 'User Test';
+ const email = 'test@test.com';
const span = deUserMenu.query(By.css('.dropdown-item-text'));
expect(span).toBeDefined();
- expect(span.nativeElement.innerHTML).toBe(user);
+ expect(span.nativeElement.innerHTML).toContain(username);
+ expect(span.nativeElement.innerHTML).toContain(email);
+ });
+
+ it('should create logout component', () => {
+ const components = fixture.debugElement.query(By.css('[data-test="log-out-component"]'));
+ expect(components).toBeTruthy();
+ });
+
+ it('should not create logout component', () => {
+ component.inExpandableNavbar = true;
+ fixture.detectChanges();
+ const components = fixture.debugElement.query(By.css('[data-test="log-out-component"]'));
+ expect(components).toBeFalsy();
});
});
diff --git a/src/app/shared/auth-nav-menu/user-menu/user-menu.component.ts b/src/app/shared/auth-nav-menu/user-menu/user-menu.component.ts
index aa78be9749..22b076c31a 100644
--- a/src/app/shared/auth-nav-menu/user-menu/user-menu.component.ts
+++ b/src/app/shared/auth-nav-menu/user-menu/user-menu.component.ts
@@ -1,4 +1,4 @@
-import { Component, OnInit } from '@angular/core';
+import { Component, Input, OnInit } from '@angular/core';
import { Observable } from 'rxjs';
import { select, Store } from '@ngrx/store';
@@ -20,6 +20,11 @@ import { getProfileModuleRoute } from '../../../app-routing-paths';
})
export class UserMenuComponent implements OnInit {
+ /**
+ * The input flag to show user details in navbar expandable menu
+ */
+ @Input() inExpandableNavbar = false;
+
/**
* True if the authentication is loading.
* @type {Observable
}
diff --git a/src/app/shared/comcol/comcol-forms/delete-comcol-page/delete-comcol-page.component.spec.ts b/src/app/shared/comcol/comcol-forms/delete-comcol-page/delete-comcol-page.component.spec.ts
index bc73e4134b..1040e31c57 100644
--- a/src/app/shared/comcol/comcol-forms/delete-comcol-page/delete-comcol-page.component.spec.ts
+++ b/src/app/shared/comcol/comcol-forms/delete-comcol-page/delete-comcol-page.component.spec.ts
@@ -11,7 +11,6 @@ import { NO_ERRORS_SCHEMA } from '@angular/core';
import { DeleteComColPageComponent } from './delete-comcol-page.component';
import { NotificationsService } from '../../../notifications/notifications.service';
import { NotificationsServiceStub } from '../../../testing/notifications-service.stub';
-import { RequestService } from '../../../../core/data/request.service';
import { getTestScheduler } from 'jasmine-marbles';
import { ComColDataService } from '../../../../core/data/comcol-data.service';
import { createFailedRemoteDataObject$, createNoContentRemoteDataObject$ } from '../../../remote-data.utils';
diff --git a/src/app/shared/cookies/browser-klaro.service.spec.ts b/src/app/shared/cookies/browser-klaro.service.spec.ts
index 9db9caf364..7fd72b54b3 100644
--- a/src/app/shared/cookies/browser-klaro.service.spec.ts
+++ b/src/app/shared/cookies/browser-klaro.service.spec.ts
@@ -10,7 +10,8 @@ import { AuthService } from '../../core/auth/auth.service';
import { CookieService } from '../../core/services/cookie.service';
import { getTestScheduler } from 'jasmine-marbles';
import { MetadataValue } from '../../core/shared/metadata.models';
-import { clone, cloneDeep } from 'lodash';
+import clone from 'lodash/clone';
+import cloneDeep from 'lodash/cloneDeep';
import { ConfigurationDataService } from '../../core/data/configuration-data.service';
import { createFailedRemoteDataObject$, createSuccessfulRemoteDataObject$ } from '../remote-data.utils';
import { ConfigurationProperty } from '../../core/shared/configuration-property.model';
@@ -100,7 +101,7 @@ describe('BrowserKlaroService', () => {
mockConfig = {
translations: {
- en: {
+ zz: {
purposes: {},
test: {
testeritis: testKey
@@ -158,8 +159,8 @@ describe('BrowserKlaroService', () => {
it('addAppMessages', () => {
service.addAppMessages();
- expect(mockConfig.translations.en[appName]).toBeDefined();
- expect(mockConfig.translations.en.purposes[purpose]).toBeDefined();
+ expect(mockConfig.translations.zz[appName]).toBeDefined();
+ expect(mockConfig.translations.zz.purposes[purpose]).toBeDefined();
});
it('translateConfiguration', () => {
diff --git a/src/app/shared/cookies/browser-klaro.service.ts b/src/app/shared/cookies/browser-klaro.service.ts
index 2bb9a696bc..3e830811b3 100644
--- a/src/app/shared/cookies/browser-klaro.service.ts
+++ b/src/app/shared/cookies/browser-klaro.service.ts
@@ -9,7 +9,8 @@ import { KlaroService } from './klaro.service';
import { hasValue, isEmpty, isNotEmpty } from '../empty.util';
import { CookieService } from '../../core/services/cookie.service';
import { EPersonDataService } from '../../core/eperson/eperson-data.service';
-import { cloneDeep, debounce } from 'lodash';
+import cloneDeep from 'lodash/cloneDeep';
+import debounce from 'lodash/debounce';
import { ANONYMOUS_STORAGE_NAME_KLARO, klaroConfiguration } from './klaro-configuration';
import { Operation } from 'fast-json-patch';
import { getFirstCompletedRemoteData } from '../../core/shared/operators';
@@ -90,7 +91,7 @@ export class BrowserKlaroService extends KlaroService {
initialize() {
if (!environment.info.enablePrivacyStatement) {
delete this.klaroConfig.privacyPolicy;
- this.klaroConfig.translations.en.consentNotice.description = 'cookies.consent.content-notice.description.no-privacy';
+ this.klaroConfig.translations.zz.consentNotice.description = 'cookies.consent.content-notice.description.no-privacy';
}
const hideGoogleAnalytics$ = this.configService.findByPropertyName(this.GOOGLE_ANALYTICS_KEY).pipe(
@@ -238,12 +239,12 @@ export class BrowserKlaroService extends KlaroService {
*/
addAppMessages() {
this.klaroConfig.services.forEach((app) => {
- this.klaroConfig.translations.en[app.name] = {
+ this.klaroConfig.translations.zz[app.name] = {
title: this.getTitleTranslation(app.name),
description: this.getDescriptionTranslation(app.name)
};
app.purposes.forEach((purpose) => {
- this.klaroConfig.translations.en.purposes[purpose] = this.getPurposeTranslation(purpose);
+ this.klaroConfig.translations.zz.purposes[purpose] = this.getPurposeTranslation(purpose);
});
});
}
@@ -257,7 +258,7 @@ export class BrowserKlaroService extends KlaroService {
*/
this.translateService.setDefaultLang(environment.defaultLanguage);
- this.translate(this.klaroConfig.translations.en);
+ this.translate(this.klaroConfig.translations.zz);
}
/**
diff --git a/src/app/shared/cookies/klaro-configuration.ts b/src/app/shared/cookies/klaro-configuration.ts
index 8a9855bd89..a41b641dec 100644
--- a/src/app/shared/cookies/klaro-configuration.ts
+++ b/src/app/shared/cookies/klaro-configuration.ts
@@ -54,10 +54,46 @@ export const klaroConfiguration: any = {
https://github.com/KIProtect/klaro/tree/master/src/translations
*/
translations: {
- en: {
+ /*
+ The `zz` key contains default translations that will be used as fallback values.
+ This can e.g. be useful for defining a fallback privacy policy URL.
+ FOR DSPACE: We use 'zz' to map to our own i18n translations for klaro, see
+ translateConfiguration() in browser-klaro.service.ts. All the below i18n keys are specified
+ in your /src/assets/i18n/*.json5 translation pack.
+ */
+ zz: {
acceptAll: 'cookies.consent.accept-all',
acceptSelected: 'cookies.consent.accept-selected',
- app: {
+ close: 'cookies.consent.close',
+ consentModal: {
+ title: 'cookies.consent.content-modal.title',
+ description: 'cookies.consent.content-modal.description'
+ },
+ consentNotice: {
+ changeDescription: 'cookies.consent.update',
+ title: 'cookies.consent.content-notice.title',
+ description: 'cookies.consent.content-notice.description',
+ learnMore: 'cookies.consent.content-notice.learnMore',
+ },
+ decline: 'cookies.consent.decline',
+ ok: 'cookies.consent.ok',
+ poweredBy: 'Powered by Klaro!',
+ privacyPolicy: {
+ name: 'cookies.consent.content-modal.privacy-policy.name',
+ text: 'cookies.consent.content-modal.privacy-policy.text'
+ },
+ purposeItem: {
+ service: 'cookies.consent.content-modal.service',
+ services: 'cookies.consent.content-modal.services'
+ },
+ purposes: {
+ },
+ save: 'cookies.consent.save',
+ service: {
+ disableAll: {
+ description: 'cookies.consent.app.disable-all.description',
+ title: 'cookies.consent.app.disable-all.title'
+ },
optOut: {
description: 'cookies.consent.app.opt-out.description',
title: 'cookies.consent.app.opt-out.title'
@@ -65,26 +101,10 @@ export const klaroConfiguration: any = {
purpose: 'cookies.consent.app.purpose',
purposes: 'cookies.consent.app.purposes',
required: {
- description: 'cookies.consent.app.required.description',
- title: 'cookies.consent.app.required.title'
+ title: 'cookies.consent.app.required.title',
+ description: 'cookies.consent.app.required.description'
}
- },
- close: 'cookies.consent.close',
- decline: 'cookies.consent.decline',
- changeDescription: 'cookies.consent.update',
- consentNotice: {
- description: 'cookies.consent.content-notice.description',
- learnMore: 'cookies.consent.content-notice.learnMore'
- },
- consentModal: {
- description: 'cookies.consent.content-modal.description',
- privacyPolicy: {
- name: 'cookies.consent.content-modal.privacy-policy.name',
- text: 'cookies.consent.content-modal.privacy-policy.text'
- },
- title: 'cookies.consent.content-modal.title'
- },
- purposes: {}
+ }
}
},
services: [
diff --git a/src/app/shared/date.util.spec.ts b/src/app/shared/date.util.spec.ts
new file mode 100644
index 0000000000..4576ea497c
--- /dev/null
+++ b/src/app/shared/date.util.spec.ts
@@ -0,0 +1,107 @@
+import { dateToString, dateToNgbDateStruct, dateToISOFormat, isValidDate, yearFromString } from './date.util';
+
+describe('Date Utils', () => {
+
+ describe('dateToISOFormat', () => {
+ it('should convert Date to YYYY-MM-DDThh:mm:ssZ string', () => {
+ // NOTE: month is zero indexed which is why it increases by one
+ expect(dateToISOFormat(new Date(Date.UTC(2022, 5, 3)))).toEqual('2022-06-03T00:00:00Z');
+ });
+ it('should convert Date string to YYYY-MM-DDThh:mm:ssZ string', () => {
+ expect(dateToISOFormat('2022-06-03')).toEqual('2022-06-03T00:00:00Z');
+ });
+ it('should convert Month string to YYYY-MM-DDThh:mm:ssZ string', () => {
+ expect(dateToISOFormat('2022-06')).toEqual('2022-06-01T00:00:00Z');
+ });
+ it('should convert Year string to YYYY-MM-DDThh:mm:ssZ string', () => {
+ expect(dateToISOFormat('2022')).toEqual('2022-01-01T00:00:00Z');
+ });
+ it('should convert ISO Date string to YYYY-MM-DDThh:mm:ssZ string', () => {
+ // NOTE: Time is always zeroed out as proven by this test.
+ expect(dateToISOFormat('2022-06-03T03:24:04Z')).toEqual('2022-06-03T00:00:00Z');
+ });
+ it('should convert NgbDateStruct to YYYY-MM-DDThh:mm:ssZ string', () => {
+ // NOTE: month is zero indexed which is why it increases by one
+ const date = new Date(Date.UTC(2022, 5, 3));
+ expect(dateToISOFormat(dateToNgbDateStruct(date))).toEqual('2022-06-03T00:00:00Z');
+ });
+ });
+
+ describe('dateToString', () => {
+ it('should convert Date to YYYY-MM-DD string', () => {
+ // NOTE: month is zero indexed which is why it increases by one
+ expect(dateToString(new Date(Date.UTC(2022, 5, 3)))).toEqual('2022-06-03');
+ });
+ it('should convert Date with time to YYYY-MM-DD string', () => {
+ // NOTE: month is zero indexed which is why it increases by one
+ expect(dateToString(new Date(Date.UTC(2022, 5, 3, 3, 24, 0)))).toEqual('2022-06-03');
+ });
+ it('should convert Month only to YYYY-MM-DD string', () => {
+ // NOTE: month is zero indexed which is why it increases by one
+ expect(dateToString(new Date(Date.UTC(2022, 5)))).toEqual('2022-06-01');
+ });
+ it('should convert ISO Date to YYYY-MM-DD string', () => {
+ expect(dateToString(new Date('2022-06-03T03:24:00Z'))).toEqual('2022-06-03');
+ });
+ it('should convert NgbDateStruct to YYYY-MM-DD string', () => {
+ // NOTE: month is zero indexed which is why it increases by one
+ const date = new Date(Date.UTC(2022, 5, 3));
+ expect(dateToString(dateToNgbDateStruct(date))).toEqual('2022-06-03');
+ });
+ });
+
+
+ describe('isValidDate', () => {
+ it('should return false for null', () => {
+ expect(isValidDate(null)).toBe(false);
+ });
+ it('should return false for empty string', () => {
+ expect(isValidDate('')).toBe(false);
+ });
+ it('should return false for text', () => {
+ expect(isValidDate('test')).toBe(false);
+ });
+ it('should return true for YYYY', () => {
+ expect(isValidDate('2022')).toBe(true);
+ });
+ it('should return true for YYYY-MM', () => {
+ expect(isValidDate('2022-12')).toBe(true);
+ });
+ it('should return true for YYYY-MM-DD', () => {
+ expect(isValidDate('2022-06-03')).toBe(true);
+ });
+ it('should return true for YYYY-MM-DDTHH:MM:SS', () => {
+ expect(isValidDate('2022-06-03T10:20:30')).toBe(true);
+ });
+ it('should return true for YYYY-MM-DDTHH:MM:SSZ', () => {
+ expect(isValidDate('2022-06-03T10:20:30Z')).toBe(true);
+ });
+ it('should return false for a month that does not exist', () => {
+ expect(isValidDate('2022-13')).toBe(false);
+ });
+ it('should return false for a day that does not exist', () => {
+ expect(isValidDate('2022-02-60')).toBe(false);
+ });
+ it('should return false for a time that does not exist', () => {
+ expect(isValidDate('2022-02-60T10:60:20')).toBe(false);
+ });
+ });
+
+ describe('yearFromString', () => {
+ it('should return year from YYYY string', () => {
+ expect(yearFromString('2022')).toEqual(2022);
+ });
+ it('should return year from YYYY-MM string', () => {
+ expect(yearFromString('1970-06')).toEqual(1970);
+ });
+ it('should return year from YYYY-MM-DD string', () => {
+ expect(yearFromString('1914-10-23')).toEqual(1914);
+ });
+ it('should return year from YYYY-MM-DDTHH:MM:SSZ string', () => {
+ expect(yearFromString('1914-10-23T10:20:30Z')).toEqual(1914);
+ });
+ it('should return null if invalid date', () => {
+ expect(yearFromString('test')).toBeNull();
+ });
+ });
+});
diff --git a/src/app/shared/date.util.ts b/src/app/shared/date.util.ts
index 5f7ccb2438..5b74ed02d2 100644
--- a/src/app/shared/date.util.ts
+++ b/src/app/shared/date.util.ts
@@ -1,9 +1,8 @@
import { NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';
-
-import { isObject } from 'lodash';
-import * as moment from 'moment';
-
-import { isNull, isUndefined } from './empty.util';
+import { formatInTimeZone } from 'date-fns-tz';
+import { isValid } from 'date-fns';
+import isObject from 'lodash/isObject';
+import { hasNoValue } from './empty.util';
/**
* Returns true if the passed value is a NgbDateStruct.
@@ -31,21 +30,7 @@ export function dateToISOFormat(date: Date | NgbDateStruct | string): string {
const dateObj: Date = (date instanceof Date) ? date :
((typeof date === 'string') ? ngbDateStructToDate(stringToNgbDateStruct(date)) : ngbDateStructToDate(date));
- let year = dateObj.getUTCFullYear().toString();
- let month = (dateObj.getUTCMonth() + 1).toString();
- let day = dateObj.getUTCDate().toString();
- let hour = dateObj.getHours().toString();
- let min = dateObj.getMinutes().toString();
- let sec = dateObj.getSeconds().toString();
-
- year = (year.length === 1) ? '0' + year : year;
- month = (month.length === 1) ? '0' + month : month;
- day = (day.length === 1) ? '0' + day : day;
- hour = (hour.length === 1) ? '0' + hour : hour;
- min = (min.length === 1) ? '0' + min : min;
- sec = (sec.length === 1) ? '0' + sec : sec;
- const dateStr = `${year}${month}${day}${hour}${min}${sec}`;
- return moment.utc(dateStr, 'YYYYMMDDhhmmss').format();
+ return formatInTimeZone(dateObj, 'UTC', "yyyy-MM-dd'T'HH:mm:ss'Z'");
}
/**
@@ -81,7 +66,7 @@ export function stringToNgbDateStruct(date: string): NgbDateStruct {
* the NgbDateStruct object
*/
export function dateToNgbDateStruct(date?: Date): NgbDateStruct {
- if (isNull(date) || isUndefined(date)) {
+ if (hasNoValue(date)) {
date = new Date();
}
@@ -102,16 +87,7 @@ export function dateToNgbDateStruct(date?: Date): NgbDateStruct {
*/
export function dateToString(date: Date | NgbDateStruct): string {
const dateObj: Date = (date instanceof Date) ? date : ngbDateStructToDate(date);
-
- let year = dateObj.getUTCFullYear().toString();
- let month = (dateObj.getUTCMonth() + 1).toString();
- let day = dateObj.getUTCDate().toString();
-
- year = (year.length === 1) ? '0' + year : year;
- month = (month.length === 1) ? '0' + month : month;
- day = (day.length === 1) ? '0' + day : day;
- const dateStr = `${year}-${month}-${day}`;
- return moment.utc(dateStr, 'YYYYMMDD').format('YYYY-MM-DD');
+ return formatInTimeZone(dateObj, 'UTC', 'yyyy-MM-dd');
}
/**
@@ -119,5 +95,15 @@ export function dateToString(date: Date | NgbDateStruct): string {
* @param date the string to be checked
*/
export function isValidDate(date: string) {
- return moment(date).isValid();
+ return (hasNoValue(date)) ? false : isValid(new Date(date));
}
+
+/**
+ * Parse given date string to a year number based on expected formats
+ * @param date the string to be parsed
+ * @param formats possible formats the string may align with. MUST be valid date-fns formats
+ */
+export function yearFromString(date: string) {
+ return isValidDate(date) ? new Date(date).getUTCFullYear() : null;
+}
+
diff --git a/src/app/shared/dso-selector/dso-selector/authorized-collection-selector/authorized-collection-selector.component.ts b/src/app/shared/dso-selector/dso-selector/authorized-collection-selector/authorized-collection-selector.component.ts
index ab48d058ca..cc1f9822d6 100644
--- a/src/app/shared/dso-selector/dso-selector/authorized-collection-selector/authorized-collection-selector.component.ts
+++ b/src/app/shared/dso-selector/dso-selector/authorized-collection-selector/authorized-collection-selector.component.ts
@@ -53,8 +53,9 @@ export class AuthorizedCollectionSelectorComponent extends DSOSelectorComponent
* Perform a search for authorized collections with the current query and page
* @param query Query to search objects for
* @param page Page to retrieve
+ * @param useCache Whether or not to use the cache
*/
- search(query: string, page: number): Observable>>> {
+ search(query: string, page: number, useCache: boolean = true): Observable>>> {
let searchListService$: Observable>> = null;
const findOptions: FindListOptions = {
currentPage: page,
@@ -69,7 +70,7 @@ export class AuthorizedCollectionSelectorComponent extends DSOSelectorComponent
findOptions);
} else {
searchListService$ = this.collectionDataService
- .getAuthorizedCollection(query, findOptions, true, false, followLink('parentCommunity'));
+ .getAuthorizedCollection(query, findOptions, useCache, false, followLink('parentCommunity'));
}
return searchListService$.pipe(
getFirstCompletedRemoteData(),
diff --git a/src/app/shared/dso-selector/dso-selector/dso-selector.component.html b/src/app/shared/dso-selector/dso-selector/dso-selector.component.html
index 8abb8ad558..c4f5dbc4cd 100644
--- a/src/app/shared/dso-selector/dso-selector/dso-selector.component.html
+++ b/src/app/shared/dso-selector/dso-selector/dso-selector.component.html
@@ -21,12 +21,12 @@
+ (click)="onClick(listEntry)" #listEntryElement>
+ [linkType]=linkTypes.None [context]="getContext(listEntry['id'])">
[]> = new BehaviorSubject(null);
+ listEntries$: BehaviorSubject = new BehaviorSubject(null);
/**
* The current page to load
@@ -116,11 +124,6 @@ export class DSOSelectorComponent implements OnInit, OnDestroy {
*/
linkTypes = CollectionElementLinkType;
- /**
- * Track whether the element has the mouse over it
- */
- isMouseOver = false;
-
/**
* Array to track all subscriptions and unsubscribe them onDestroy
* @type {Array}
@@ -182,24 +185,28 @@ export class DSOSelectorComponent implements OnInit, OnDestroy {
})
);
})
- ).subscribe((rd) => {
- this.loading = false;
- if (rd.hasSucceeded) {
- const currentEntries = this.listEntries$.getValue();
- if (hasNoValue(currentEntries)) {
- this.listEntries$.next(rd.payload.page);
- } else {
- this.listEntries$.next([...currentEntries, ...rd.payload.page]);
- }
- // Check if there are more pages available after the current one
- this.hasNextPage = rd.payload.totalElements > this.listEntries$.getValue().length;
- } else {
- this.listEntries$.next(null);
- this.hasNextPage = false;
- }
+ ).subscribe((rd: RemoteData>>) => {
+ this.updateList(rd);
}));
}
+ updateList(rd: RemoteData>>) {
+ this.loading = false;
+ const currentEntries = this.listEntries$.getValue();
+ if (rd.hasSucceeded) {
+ if (hasNoValue(currentEntries)) {
+ this.listEntries$.next(rd.payload.page);
+ } else {
+ this.listEntries$.next([...currentEntries, ...rd.payload.page]);
+ }
+ // Check if there are more pages available after the current one
+ this.hasNextPage = rd.payload.totalElements > this.listEntries$.getValue().length;
+ } else {
+ this.listEntries$.next([...(hasNoValue(currentEntries) ? [] : this.listEntries$.getValue()), new ListableNotificationObject(NotificationType.Error, 'dso-selector.results-could-not-be-retrieved', LISTABLE_NOTIFICATION_OBJECT.value)]);
+ this.hasNextPage = false;
+ }
+ }
+
/**
* Get a query to send for retrieving the current DSO
*/
@@ -211,8 +218,9 @@ export class DSOSelectorComponent implements OnInit, OnDestroy {
* Perform a search for the current query and page
* @param query Query to search objects for
* @param page Page to retrieve
+ * @param useCache Whether or not to use the cache
*/
- search(query: string, page: number): Observable>>> {
+ search(query: string, page: number, useCache: boolean = true): Observable>>> {
return this.searchService.search(
new PaginatedSearchOptions({
query: query,
@@ -220,7 +228,9 @@ export class DSOSelectorComponent implements OnInit, OnDestroy {
pagination: Object.assign({}, this.defaultPagination, {
currentPage: page
})
- })
+ }),
+ null,
+ useCache,
).pipe(
getFirstCompletedRemoteData()
);
@@ -262,7 +272,28 @@ export class DSOSelectorComponent implements OnInit, OnDestroy {
this.subs.filter((sub) => hasValue(sub)).forEach((sub) => sub.unsubscribe());
}
- getName(searchResult: SearchResult): string {
- return this.dsoNameService.getName(searchResult.indexableObject);
+ /**
+ * Handles the user clicks on the {@link ListableObject}s. When the {@link listableObject} is a
+ * {@link ListableObject} it will retry the error when the user clicks it. Otherwise it will emit the {@link onSelect}.
+ *
+ * @param listableObject The {@link ListableObject} to evaluate
+ */
+ onClick(listableObject: ListableObject): void {
+ if (hasValue((listableObject as SearchResult).indexableObject)) {
+ this.onSelect.emit((listableObject as SearchResult).indexableObject);
+ } else {
+ this.listEntries$.value.pop();
+ this.hasNextPage = true;
+ this.search(this.input.value ? this.input.value : '', this.currentPage$.value, false).pipe(
+ getFirstCompletedRemoteData(),
+ ).subscribe((rd: RemoteData>>) => {
+ this.updateList(rd);
+ });
+ }
+ }
+
+ getName(listableObject: ListableObject): string {
+ return hasValue((listableObject as SearchResult).indexableObject) ?
+ this.dsoNameService.getName((listableObject as SearchResult).indexableObject) : null;
}
}
diff --git a/src/app/shared/dso-selector/modal-wrappers/create-community-parent-selector/create-community-parent-selector.component.html b/src/app/shared/dso-selector/modal-wrappers/create-community-parent-selector/create-community-parent-selector.component.html
index 84fdd34c01..4a22672988 100644
--- a/src/app/shared/dso-selector/modal-wrappers/create-community-parent-selector/create-community-parent-selector.component.html
+++ b/src/app/shared/dso-selector/modal-wrappers/create-community-parent-selector/create-community-parent-selector.component.html
@@ -9,7 +9,7 @@
diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-type-bind-relation.service.spec.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-type-bind-relation.service.spec.ts
index f8bc7ea886..7f0c7e2e35 100644
--- a/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-type-bind-relation.service.spec.ts
+++ b/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-type-bind-relation.service.spec.ts
@@ -10,7 +10,7 @@ import {
} from '@ng-dynamic-forms/core';
import {
- mockInputWithTypeBindModel, MockRelationModel, mockDcTypeInputModel
+ mockInputWithTypeBindModel, MockRelationModel
} from '../../../mocks/form-models.mock';
import {DsDynamicTypeBindRelationService} from './ds-dynamic-type-bind-relation.service';
import {FormFieldMetadataValueObject} from '../models/form-field-metadata-value.model';
diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/models/ds-dynamic-concat.model.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/models/ds-dynamic-concat.model.ts
index 1c568dbd32..1d6037a409 100644
--- a/src/app/shared/form/builder/ds-dynamic-form-ui/models/ds-dynamic-concat.model.ts
+++ b/src/app/shared/form/builder/ds-dynamic-form-ui/models/ds-dynamic-concat.model.ts
@@ -1,4 +1,10 @@
-import { DynamicFormControlLayout, DynamicFormGroupModel, DynamicFormGroupModelConfig, serializable } from '@ng-dynamic-forms/core';
+import {
+ DynamicFormControlLayout,
+ DynamicFormControlRelation,
+ DynamicFormGroupModel,
+ DynamicFormGroupModelConfig,
+ serializable
+} from '@ng-dynamic-forms/core';
import { Subject } from 'rxjs';
@@ -16,6 +22,7 @@ export interface DynamicConcatModelConfig extends DynamicFormGroupModelConfig {
separator: string;
value?: any;
hint?: string;
+ typeBindRelations?: DynamicFormControlRelation[];
relationship?: RelationshipOptions;
repeatable: boolean;
required: boolean;
@@ -29,6 +36,8 @@ export class DynamicConcatModel extends DynamicFormGroupModel {
@serializable() separator: string;
@serializable() hasLanguages = false;
+ @serializable() typeBindRelations: DynamicFormControlRelation[];
+ @serializable() typeBindHidden = false;
@serializable() relationship?: RelationshipOptions;
@serializable() repeatable?: boolean;
@serializable() required?: boolean;
@@ -55,6 +64,7 @@ export class DynamicConcatModel extends DynamicFormGroupModel {
this.metadataValue = config.metadataValue;
this.valueUpdates = new Subject();
this.valueUpdates.subscribe((value: string) => this.value = value);
+ this.typeBindRelations = config.typeBindRelations ? config.typeBindRelations : [];
}
get value() {
diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/models/list/dynamic-list-checkbox-group.model.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/models/list/dynamic-list-checkbox-group.model.ts
index d4ddd0c3c8..7cffdfe801 100644
--- a/src/app/shared/form/builder/ds-dynamic-form-ui/models/list/dynamic-list-checkbox-group.model.ts
+++ b/src/app/shared/form/builder/ds-dynamic-form-ui/models/list/dynamic-list-checkbox-group.model.ts
@@ -2,6 +2,7 @@ import { Subject } from 'rxjs';
import {
DynamicCheckboxGroupModel,
DynamicFormControlLayout,
+ DynamicFormControlRelation,
DynamicFormGroupModelConfig,
serializable
} from '@ng-dynamic-forms/core';
@@ -15,6 +16,7 @@ export interface DynamicListCheckboxGroupModelConfig extends DynamicFormGroupMod
groupLength?: number;
repeatable: boolean;
value?: any;
+ typeBindRelations?: DynamicFormControlRelation[];
}
export class DynamicListCheckboxGroupModel extends DynamicCheckboxGroupModel {
@@ -23,6 +25,7 @@ export class DynamicListCheckboxGroupModel extends DynamicCheckboxGroupModel {
@serializable() repeatable: boolean;
@serializable() groupLength: number;
@serializable() _value: VocabularyEntry[];
+ @serializable() typeBindRelations: DynamicFormControlRelation[];
isListGroup = true;
valueUpdates: Subject;
@@ -37,6 +40,7 @@ export class DynamicListCheckboxGroupModel extends DynamicCheckboxGroupModel {
this.valueUpdates = new Subject();
this.valueUpdates.subscribe((value: VocabularyEntry | VocabularyEntry[]) => this.value = value);
this.valueUpdates.next(config.value);
+ this.typeBindRelations = config.typeBindRelations ? config.typeBindRelations : [];
}
get hasAuthority(): boolean {
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 bebef5860e..d44d24f8b8 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
@@ -7,7 +7,7 @@ import {
DynamicFormLayoutService,
DynamicFormValidationService
} from '@ng-dynamic-forms/core';
-import { findKey } from 'lodash';
+import findKey from 'lodash/findKey';
import { hasValue, isNotEmpty } from '../../../../../empty.util';
import { DynamicListCheckboxGroupModel } from './dynamic-list-checkbox-group.model';
diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/models/relation-group/dynamic-relation-group.components.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/models/relation-group/dynamic-relation-group.components.ts
index 06e8c01a9b..fd111e44c2 100644
--- a/src/app/shared/form/builder/ds-dynamic-form-ui/models/relation-group/dynamic-relation-group.components.ts
+++ b/src/app/shared/form/builder/ds-dynamic-form-ui/models/relation-group/dynamic-relation-group.components.ts
@@ -11,7 +11,8 @@ import {
DynamicFormValidationService,
DynamicInputModel
} from '@ng-dynamic-forms/core';
-import { isEqual, isObject } from 'lodash';
+import isEqual from 'lodash/isEqual';
+import isObject from 'lodash/isObject';
import { DynamicRelationGroupModel } from './dynamic-relation-group.model';
import { FormBuilderService } from '../../../form-builder.service';
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 8a9f8e3c84..1c015be747 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
@@ -5,7 +5,7 @@ import { DynamicFormLayoutService, DynamicFormValidationService } from '@ng-dyna
import { Observable, of as observableOf } from 'rxjs';
import { catchError, debounceTime, distinctUntilChanged, map, merge, switchMap, tap } from 'rxjs/operators';
import { NgbTypeahead, NgbTypeaheadSelectItemEvent } from '@ng-bootstrap/ng-bootstrap';
-import { isEqual } from 'lodash';
+import isEqual from 'lodash/isEqual';
import { VocabularyService } from '../../../../../../core/submission/vocabularies/vocabulary.service';
import { DynamicTagModel } from './dynamic-tag.model';
diff --git a/src/app/shared/form/builder/form-builder.service.ts b/src/app/shared/form/builder/form-builder.service.ts
index a281942bc7..b3a78d4669 100644
--- a/src/app/shared/form/builder/form-builder.service.ts
+++ b/src/app/shared/form/builder/form-builder.service.ts
@@ -18,7 +18,9 @@ import {
DynamicPathable,
parseReviver,
} from '@ng-dynamic-forms/core';
-import { isObject, isString, mergeWith } from 'lodash';
+import isObject from 'lodash/isObject';
+import isString from 'lodash/isString';
+import mergeWith from 'lodash/mergeWith';
import {
hasNoValue,
diff --git a/src/app/shared/form/builder/models/form-field-previous-value-object.ts b/src/app/shared/form/builder/models/form-field-previous-value-object.ts
index ca4a47c089..2aa40f97ae 100644
--- a/src/app/shared/form/builder/models/form-field-previous-value-object.ts
+++ b/src/app/shared/form/builder/models/form-field-previous-value-object.ts
@@ -1,4 +1,4 @@
-import { isEqual } from 'lodash';
+import isEqual from 'lodash/isEqual';
export class FormFieldPreviousValueObject {
diff --git a/src/app/shared/form/builder/parsers/field-parser.ts b/src/app/shared/form/builder/parsers/field-parser.ts
index bd6820d4b3..86a7d99e41 100644
--- a/src/app/shared/form/builder/parsers/field-parser.ts
+++ b/src/app/shared/form/builder/parsers/field-parser.ts
@@ -1,6 +1,6 @@
import {Inject, InjectionToken} from '@angular/core';
-import { uniqueId } from 'lodash';
+import uniqueId from 'lodash/uniqueId';
import {DynamicFormControlLayout, DynamicFormControlRelation, MATCH_VISIBLE, OR_OPERATOR} from '@ng-dynamic-forms/core';
import { hasValue, isNotEmpty, isNotNull, isNotUndefined } from '../../../empty.util';
diff --git a/src/app/shared/form/builder/parsers/row-parser.ts b/src/app/shared/form/builder/parsers/row-parser.ts
index 764f52ffdf..2818e37b25 100644
--- a/src/app/shared/form/builder/parsers/row-parser.ts
+++ b/src/app/shared/form/builder/parsers/row-parser.ts
@@ -1,7 +1,7 @@
import { Injectable, Injector } from '@angular/core';
import { DYNAMIC_FORM_CONTROL_TYPE_ARRAY, DynamicFormGroupModelConfig } from '@ng-dynamic-forms/core';
-import { uniqueId } from 'lodash';
+import uniqueId from 'lodash/uniqueId';
import { isEmpty } from '../../../empty.util';
import { DynamicRowGroupModel } from '../ds-dynamic-form-ui/models/ds-dynamic-row-group-model';
diff --git a/src/app/shared/form/chips/chips.component.ts b/src/app/shared/form/chips/chips.component.ts
index 31aaf04db0..5166657582 100644
--- a/src/app/shared/form/chips/chips.component.ts
+++ b/src/app/shared/form/chips/chips.component.ts
@@ -1,7 +1,7 @@
import { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, } from '@angular/core';
import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';
-import { isObject } from 'lodash';
+import isObject from 'lodash/isObject';
import { Chips } from './models/chips.model';
import { ChipsItem } from './models/chips-item.model';
diff --git a/src/app/shared/form/chips/models/chips-item.model.ts b/src/app/shared/form/chips/models/chips-item.model.ts
index a43386862b..277e6477ce 100644
--- a/src/app/shared/form/chips/models/chips-item.model.ts
+++ b/src/app/shared/form/chips/models/chips-item.model.ts
@@ -1,4 +1,5 @@
-import { isObject, uniqueId } from 'lodash';
+import isObject from 'lodash/isObject';
+import uniqueId from 'lodash/uniqueId';
import { hasValue, isNotEmpty } from '../../../empty.util';
import { FormFieldMetadataValueObject } from '../../builder/models/form-field-metadata-value.model';
import { ConfidenceType } from '../../../../core/shared/confidence-type';
diff --git a/src/app/shared/form/chips/models/chips.model.ts b/src/app/shared/form/chips/models/chips.model.ts
index 73ccdd3e54..daeb363d82 100644
--- a/src/app/shared/form/chips/models/chips.model.ts
+++ b/src/app/shared/form/chips/models/chips.model.ts
@@ -1,4 +1,6 @@
-import { findIndex, isEqual, isObject } from 'lodash';
+import findIndex from 'lodash/findIndex';
+import isEqual from 'lodash/isEqual';
+import isObject from 'lodash/isObject';
import { BehaviorSubject } from 'rxjs';
import { ChipsItem, ChipsItemIcon } from './chips-item.model';
import { hasValue, isNotEmpty } from '../../../empty.util';
diff --git a/src/app/shared/form/directives/authority-confidence-state.directive.ts b/src/app/shared/form/directives/authority-confidence-state.directive.ts
index 0500b42dfb..49eee5ae8f 100644
--- a/src/app/shared/form/directives/authority-confidence-state.directive.ts
+++ b/src/app/shared/form/directives/authority-confidence-state.directive.ts
@@ -19,7 +19,7 @@ import {
SimpleChanges
} from '@angular/core';
-import { findIndex } from 'lodash';
+import findIndex from 'lodash/findIndex';
import { VocabularyEntry } from '../../../core/submission/vocabularies/models/vocabulary-entry.model';
import { FormFieldMetadataValueObject } from '../builder/models/form-field-metadata-value.model';
diff --git a/src/app/shared/form/form.component.ts b/src/app/shared/form/form.component.ts
index 7c16be7542..086b5e1fd8 100644
--- a/src/app/shared/form/form.component.ts
+++ b/src/app/shared/form/form.component.ts
@@ -11,7 +11,7 @@ import {
DynamicFormLayout,
} from '@ng-dynamic-forms/core';
import { NgbModalRef } from '@ng-bootstrap/ng-bootstrap';
-import { findIndex } from 'lodash';
+import findIndex from 'lodash/findIndex';
import { FormBuilderService } from './builder/form-builder.service';
import { hasValue, isNotEmpty, isNotNull, isNull } from '../empty.util';
diff --git a/src/app/shared/form/form.reducer.ts b/src/app/shared/form/form.reducer.ts
index 22094b2e5d..c1e9b12efa 100644
--- a/src/app/shared/form/form.reducer.ts
+++ b/src/app/shared/form/form.reducer.ts
@@ -11,7 +11,8 @@ import {
FormStatusChangeAction
} from './form.actions';
import { hasValue } from '../empty.util';
-import { isEqual, uniqWith } from 'lodash';
+import isEqual from 'lodash/isEqual';
+import uniqWith from 'lodash/uniqWith';
export interface FormError {
message: string;
diff --git a/src/app/shared/form/form.service.ts b/src/app/shared/form/form.service.ts
index c4d6003abd..2dbf78f565 100644
--- a/src/app/shared/form/form.service.ts
+++ b/src/app/shared/form/form.service.ts
@@ -9,7 +9,7 @@ import { formObjectFromIdSelector } from './selectors';
import { FormBuilderService } from './builder/form-builder.service';
import { DynamicFormControlEvent, DynamicFormControlModel, DynamicFormGroupModel } from '@ng-dynamic-forms/core';
import { isEmpty, isNotUndefined } from '../empty.util';
-import { uniqueId } from 'lodash';
+import uniqueId from 'lodash/uniqueId';
import {
FormAddError,
FormAddTouchedAction,
diff --git a/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.service.ts b/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.service.ts
index 04203ebf79..8804716927 100644
--- a/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.service.ts
+++ b/src/app/shared/form/vocabulary-treeview/vocabulary-treeview.service.ts
@@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
import { BehaviorSubject, Observable, of as observableOf } from 'rxjs';
import { map, merge, mergeMap, scan } from 'rxjs/operators';
-import { findIndex } from 'lodash';
+import findIndex from 'lodash/findIndex';
import {
LOAD_MORE_NODE,
diff --git a/src/app/shared/host-window.reducer.spec.ts b/src/app/shared/host-window.reducer.spec.ts
index f0e7aa7245..f580c0e1da 100644
--- a/src/app/shared/host-window.reducer.spec.ts
+++ b/src/app/shared/host-window.reducer.spec.ts
@@ -1,3 +1,4 @@
+// eslint-disable-next-line import/no-namespace
import * as deepFreeze from 'deep-freeze';
import { hostWindowReducer } from './search/host-window.reducer';
import { HostWindowResizeAction } from './host-window.actions';
diff --git a/src/app/shared/host-window.service.ts b/src/app/shared/host-window.service.ts
index 443dd40b14..6d13d921e0 100644
--- a/src/app/shared/host-window.service.ts
+++ b/src/app/shared/host-window.service.ts
@@ -7,7 +7,7 @@ import { createSelector, select, Store } from '@ngrx/store';
import { hasValue } from './empty.util';
import { AppState } from '../app.reducer';
-import { CSSVariableService } from './sass-helper/sass-helper.service';
+import { CSSVariableService } from './sass-helper/css-variable.service';
export enum WidthCategory {
XS,
@@ -31,10 +31,10 @@ export class HostWindowService {
/* See _exposed_variables.scss */
variableService.getAllVariables()
.subscribe((variables) => {
- this.breakPoints.XL_MIN = parseInt(variables.xlMin, 10);
- this.breakPoints.LG_MIN = parseInt(variables.lgMin, 10);
- this.breakPoints.MD_MIN = parseInt(variables.mdMin, 10);
- this.breakPoints.SM_MIN = parseInt(variables.smMin, 10);
+ this.breakPoints.XL_MIN = parseInt(variables['--bs-xl-min'], 10);
+ this.breakPoints.LG_MIN = parseInt(variables['--bs-lg-min'], 10);
+ this.breakPoints.MD_MIN = parseInt(variables['--bs-md-min'], 10);
+ this.breakPoints.SM_MIN = parseInt(variables['--bs-sm-min'], 10);
});
}
diff --git a/src/app/shared/interfaces/modal-before-dismiss.interface.ts b/src/app/shared/interfaces/modal-before-dismiss.interface.ts
index fca28e1cff..f884432fb8 100644
--- a/src/app/shared/interfaces/modal-before-dismiss.interface.ts
+++ b/src/app/shared/interfaces/modal-before-dismiss.interface.ts
@@ -1,4 +1,3 @@
-import { NgbModalConfig, NgbModal } from '@ng-bootstrap/ng-bootstrap';
/**
* If a component implementing this interface is used to create a modal (i.e. it is passed to {@link NgbModal#open}),
diff --git a/src/app/shared/key-value-pair.model.ts b/src/app/shared/key-value-pair.model.ts
new file mode 100644
index 0000000000..6fb63070ad
--- /dev/null
+++ b/src/app/shared/key-value-pair.model.ts
@@ -0,0 +1,4 @@
+export interface KeyValuePair {
+ key: K;
+ value: V;
+}
diff --git a/src/app/shared/menu/menu-item/link-menu-item.component.ts b/src/app/shared/menu/menu-item/link-menu-item.component.ts
index c9a60f0c28..78d5b2fc6f 100644
--- a/src/app/shared/menu/menu-item/link-menu-item.component.ts
+++ b/src/app/shared/menu/menu-item/link-menu-item.component.ts
@@ -1,4 +1,4 @@
-import { Component, Inject, Input, OnInit } from '@angular/core';
+import { Component, Inject, OnInit } from '@angular/core';
import { LinkMenuItemModel } from './models/link.model';
import { rendersMenuItemForType } from '../menu-item.decorator';
import { isNotEmpty } from '../../empty.util';
diff --git a/src/app/shared/menu/menu-item/text-menu-item.component.ts b/src/app/shared/menu/menu-item/text-menu-item.component.ts
index af690d198c..25549f53a8 100644
--- a/src/app/shared/menu/menu-item/text-menu-item.component.ts
+++ b/src/app/shared/menu/menu-item/text-menu-item.component.ts
@@ -1,4 +1,4 @@
-import { Component, Inject, Input } from '@angular/core';
+import { Component, Inject } from '@angular/core';
import { TextMenuItemModel } from './models/text.model';
import { rendersMenuItemForType } from '../menu-item.decorator';
import { MenuItemType } from '../menu-item-type.model';
diff --git a/src/app/shared/menu/menu.reducer.spec.ts b/src/app/shared/menu/menu.reducer.spec.ts
index 7ae05536af..2865e887fc 100644
--- a/src/app/shared/menu/menu.reducer.spec.ts
+++ b/src/app/shared/menu/menu.reducer.spec.ts
@@ -1,3 +1,4 @@
+// eslint-disable-next-line import/no-namespace
import * as deepFreeze from 'deep-freeze';
import {
ActivateMenuSectionAction,
diff --git a/src/app/shared/mocks/dspace-rest/endpoint-mocking-rest.service.ts b/src/app/shared/mocks/dspace-rest/endpoint-mocking-rest.service.ts
index 8d621ad4be..0358451557 100644
--- a/src/app/shared/mocks/dspace-rest/endpoint-mocking-rest.service.ts
+++ b/src/app/shared/mocks/dspace-rest/endpoint-mocking-rest.service.ts
@@ -7,7 +7,6 @@ import { RestRequestMethod } from '../../../core/data/rest-request-method';
import { RawRestResponse } from '../../../core/dspace-rest/raw-rest-response.model';
import { DspaceRestService, HttpOptions } from '../../../core/dspace-rest/dspace-rest.service';
import { MOCK_RESPONSE_MAP, ResponseMapMock } from './mocks/response-map.mock';
-import * as URL from 'url-parse';
import { environment } from '../../../../environments/environment';
/**
diff --git a/src/app/shared/mydspace-actions/claimed-task/approve/claimed-task-actions-approve.component.spec.ts b/src/app/shared/mydspace-actions/claimed-task/approve/claimed-task-actions-approve.component.spec.ts
index ce67da1349..f43316c4e1 100644
--- a/src/app/shared/mydspace-actions/claimed-task/approve/claimed-task-actions-approve.component.spec.ts
+++ b/src/app/shared/mydspace-actions/claimed-task/approve/claimed-task-actions-approve.component.spec.ts
@@ -1,5 +1,5 @@
import { ChangeDetectionStrategy, Injector, NO_ERRORS_SCHEMA } from '@angular/core';
-import { async, ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
+import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { of, of as observableOf } from 'rxjs';
diff --git a/src/app/shared/notifications/notifications-board/notifications-board.component.spec.ts b/src/app/shared/notifications/notifications-board/notifications-board.component.spec.ts
index 1d3faabdaa..08b9585a8c 100644
--- a/src/app/shared/notifications/notifications-board/notifications-board.component.spec.ts
+++ b/src/app/shared/notifications/notifications-board/notifications-board.component.spec.ts
@@ -11,7 +11,7 @@ import { AppState } from '../../../app.reducer';
import { NotificationComponent } from '../notification/notification.component';
import { Notification } from '../models/notification.model';
import { NotificationType } from '../models/notification-type';
-import { uniqueId } from 'lodash';
+import uniqueId from 'lodash/uniqueId';
import { INotificationBoardOptions } from '../../../../config/notifications-config.interfaces';
import { NotificationsServiceStub } from '../../testing/notifications-service.stub';
import { cold } from 'jasmine-marbles';
diff --git a/src/app/shared/notifications/notifications-board/notifications-board.component.ts b/src/app/shared/notifications/notifications-board/notifications-board.component.ts
index f153d1009e..97ae09c1a6 100644
--- a/src/app/shared/notifications/notifications-board/notifications-board.component.ts
+++ b/src/app/shared/notifications/notifications-board/notifications-board.component.ts
@@ -10,7 +10,7 @@ import {
import { select, Store } from '@ngrx/store';
import { BehaviorSubject, Subscription } from 'rxjs';
-import { difference } from 'lodash';
+import difference from 'lodash/difference';
import { NotificationsService } from '../notifications.service';
import { AppState } from '../../../app.reducer';
diff --git a/src/app/shared/notifications/notifications.reducers.spec.ts b/src/app/shared/notifications/notifications.reducers.spec.ts
index b834797115..fde92e8891 100644
--- a/src/app/shared/notifications/notifications.reducers.spec.ts
+++ b/src/app/shared/notifications/notifications.reducers.spec.ts
@@ -9,7 +9,7 @@ import { NotificationOptions } from './models/notification-options.model';
import { NotificationAnimationsType } from './models/notification-animations-type';
import { NotificationType } from './models/notification-type';
import { Notification } from './models/notification.model';
-import { uniqueId } from 'lodash';
+import uniqueId from 'lodash/uniqueId';
import { ChangeDetectorRef } from '@angular/core';
import { storeModuleConfig } from '../../app.reducer';
diff --git a/src/app/shared/notifications/notifications.service.ts b/src/app/shared/notifications/notifications.service.ts
index 98272d4f43..d37d6a349b 100644
--- a/src/app/shared/notifications/notifications.service.ts
+++ b/src/app/shared/notifications/notifications.service.ts
@@ -4,7 +4,7 @@ import { of as observableOf } from 'rxjs';
import { first } from 'rxjs/operators';
import { Store } from '@ngrx/store';
import { TranslateService } from '@ngx-translate/core';
-import { uniqueId } from 'lodash';
+import uniqueId from 'lodash/uniqueId';
import { INotification, Notification } from './models/notification.model';
import { NotificationType } from './models/notification-type';
diff --git a/src/app/shared/object-collection/shared/listable-object/listable-object.decorator.spec.ts b/src/app/shared/object-collection/shared/listable-object/listable-object.decorator.spec.ts
index 7475aac967..f7d00510f6 100644
--- a/src/app/shared/object-collection/shared/listable-object/listable-object.decorator.spec.ts
+++ b/src/app/shared/object-collection/shared/listable-object/listable-object.decorator.spec.ts
@@ -1,7 +1,6 @@
/* eslint-disable max-classes-per-file */
-import { Item } from '../../../../core/shared/item.model';
import { ViewMode } from '../../../../core/shared/view-mode.model';
-import { getListableObjectComponent, listableObjectComponent } from './listable-object.decorator';
+import { DEFAULT_VIEW_MODE, getListableObjectComponent, listableObjectComponent } from './listable-object.decorator';
import { Context } from '../../../../core/shared/context.model';
import { environment } from '../../../../../environments/environment';
@@ -13,6 +12,10 @@ describe('ListableObject decorator function', () => {
const type3 = 'TestType3';
const typeAncestor = 'TestTypeAncestor';
const typeUnthemed = 'TestTypeUnthemed';
+ const typeLowPriority = 'TypeLowPriority';
+ const typeLowPriority2 = 'TypeLowPriority2';
+ const typeMidPriority = 'TypeMidPriority';
+ const typeHighPriority = 'TypeHighPriority';
class Test1List {
}
@@ -38,6 +41,21 @@ describe('ListableObject decorator function', () => {
class TestUnthemedComponent {
}
+ class TestDefaultLowPriorityComponent {
+ }
+
+ class TestLowPriorityComponent {
+ }
+
+ class TestDefaultMidPriorityComponent {
+ }
+
+ class TestMidPriorityComponent {
+ }
+
+ class TestHighPriorityComponent {
+ }
+
/* eslint-enable max-classes-per-file */
beforeEach(() => {
@@ -54,6 +72,15 @@ describe('ListableObject decorator function', () => {
listableObjectComponent(typeAncestor, ViewMode.ListElement, Context.Any, 'ancestor')(TestAncestorComponent);
listableObjectComponent(typeUnthemed, ViewMode.ListElement, Context.Any)(TestUnthemedComponent);
+ // Register component with different priorities for expected parameters:
+ // ViewMode.DetailedListElement, Context.Search, 'custom'
+ listableObjectComponent(typeLowPriority, DEFAULT_VIEW_MODE, undefined, undefined)(TestDefaultLowPriorityComponent);
+ listableObjectComponent(typeLowPriority, DEFAULT_VIEW_MODE, Context.Search, 'custom')(TestLowPriorityComponent);
+ listableObjectComponent(typeLowPriority2, DEFAULT_VIEW_MODE, undefined, undefined)(TestDefaultLowPriorityComponent);
+ listableObjectComponent(typeMidPriority, ViewMode.DetailedListElement, undefined, undefined)(TestDefaultMidPriorityComponent);
+ listableObjectComponent(typeMidPriority, ViewMode.DetailedListElement, undefined, 'custom')(TestMidPriorityComponent);
+ listableObjectComponent(typeHighPriority, ViewMode.DetailedListElement, Context.Search, undefined)(TestHighPriorityComponent);
+
ogEnvironmentThemes = environment.themes;
});
@@ -81,7 +108,7 @@ describe('ListableObject decorator function', () => {
});
});
- describe('If there isn\'nt an exact match', () => {
+ describe('If there isn\'t an exact match', () => {
describe('If there is a match for one of the entity types and the view mode', () => {
it('should return the class with the matching entity type and view mode and default context', () => {
const component = getListableObjectComponent([type3], ViewMode.ListElement, Context.Workspace);
@@ -152,4 +179,45 @@ describe('ListableObject decorator function', () => {
});
});
});
+
+ describe('priorities', () => {
+ beforeEach(() => {
+ environment.themes = [
+ {
+ name: 'custom',
+ }
+ ];
+ });
+
+ describe('If a component with default ViewMode contains specific context and/or theme', () => {
+ it('requesting a specific ViewMode should return the one with the requested context and/or theme', () => {
+ const component = getListableObjectComponent([typeLowPriority], ViewMode.DetailedListElement, Context.Search, 'custom');
+ expect(component).toEqual(TestLowPriorityComponent);
+ });
+ });
+
+ describe('If a component with default Context contains specific ViewMode and/or theme', () => {
+ it('requesting a specific Context should return the one with the requested view-mode and/or theme', () => {
+ const component = getListableObjectComponent([typeMidPriority], ViewMode.DetailedListElement, Context.Search, 'custom');
+ expect(component).toEqual(TestMidPriorityComponent);
+ });
+ });
+
+ describe('If multiple components exist, each containing a different default value for one of the requested parameters', () => {
+ it('the component with the latest default value in the list should be returned', () => {
+ let component = getListableObjectComponent([typeMidPriority, typeLowPriority], ViewMode.DetailedListElement, Context.Search, 'custom');
+ expect(component).toEqual(TestMidPriorityComponent);
+
+ component = getListableObjectComponent([typeLowPriority, typeMidPriority, typeHighPriority], ViewMode.DetailedListElement, Context.Search, 'custom');
+ expect(component).toEqual(TestHighPriorityComponent);
+ });
+ });
+
+ describe('If two components exist for two different types, both configured for the same view-mode, but one for a specific context and/or theme', () => {
+ it('requesting a component for that specific context and/or theme while providing both types should return the most relevant one', () => {
+ const component = getListableObjectComponent([typeLowPriority2, typeLowPriority], ViewMode.DetailedListElement, Context.Search, 'custom');
+ expect(component).toEqual(TestLowPriorityComponent);
+ });
+ });
+ });
});
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 b7f27d1553..e5654e63e0 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
@@ -11,6 +11,53 @@ export const DEFAULT_VIEW_MODE = ViewMode.ListElement;
export const DEFAULT_CONTEXT = Context.Any;
export const DEFAULT_THEME = '*';
+/**
+ * A class used to compare two matches and their relevancy to determine which of the two gains priority over the other
+ *
+ * "level" represents the index of the first default value that was used to find the match with:
+ * ViewMode being index 0, Context index 1 and theme index 2. Examples:
+ * - If a default value was used for context, but not view-mode and theme, the "level" will be 1
+ * - If a default value was used for view-mode and context, but not for theme, the "level" will be 0
+ * - If no default value was used for any of the fields, the "level" will be 3
+ *
+ * "relevancy" represents the amount of values that didn't require a default value to fall back on. Examples:
+ * - If a default value was used for theme, but not view-mode and context, the "relevancy" will be 2
+ * - If a default value was used for view-mode and context, but not for theme, the "relevancy" will be 1
+ * - If a default value was used for all fields, the "relevancy" will be 0
+ * - If no default value was used for any of the fields, the "relevancy" will be 3
+ *
+ * To determine which of two MatchRelevancies is the most relevant, we compare "level" and "relevancy" in that order.
+ * If any of the two is higher than the other, that match is most relevant. Examples:
+ * - { level: 1, relevancy: 1 } is more relevant than { level: 0, relevancy: 2 }
+ * - { level: 1, relevancy: 1 } is less relevant than { level: 1, relevancy: 2 }
+ * - { level: 1, relevancy: 1 } is more relevant than { level: 1, relevancy: 0 }
+ * - { level: 1, relevancy: 1 } is less relevant than { level: 2, relevancy: 0 }
+ * - { level: 1, relevancy: 1 } is more relevant than null
+ */
+class MatchRelevancy {
+ constructor(public match: any,
+ public level: number,
+ public relevancy: number) {
+ }
+
+ isMoreRelevantThan(otherMatch: MatchRelevancy): boolean {
+ if (hasNoValue(otherMatch)) {
+ return true;
+ }
+ if (otherMatch.level > this.level) {
+ return false;
+ }
+ if (otherMatch.level === this.level && otherMatch.relevancy > this.relevancy) {
+ return false;
+ }
+ return true;
+ }
+
+ isLessRelevantThan(otherMatch: MatchRelevancy): boolean {
+ return !this.isMoreRelevantThan(otherMatch);
+ }
+}
+
/**
* Factory to allow us to inject getThemeConfigFor so we can mock it in tests
*/
@@ -48,47 +95,70 @@ export function listableObjectComponent(objectType: string | GenericConstructor<
/**
* Getter to retrieve the matching listable object component
+ *
+ * Looping over the provided types, it'll attempt to find the best match depending on the {@link MatchRelevancy} returned by getMatch()
+ * The most relevant match between types is kept and eventually returned
+ *
* @param types The types of which one should match the listable component
* @param viewMode The view mode that should match the components
* @param context The context that should match the components
* @param theme The theme that should match the components
*/
export function getListableObjectComponent(types: (string | GenericConstructor)[], viewMode: ViewMode, context: Context = DEFAULT_CONTEXT, theme: string = DEFAULT_THEME) {
- let bestMatch;
- let bestMatchValue = 0;
+ let currentBestMatch: MatchRelevancy = null;
for (const type of types) {
const typeMap = map.get(type);
if (hasValue(typeMap)) {
- const typeModeMap = typeMap.get(viewMode);
- if (hasValue(typeModeMap)) {
- const contextMap = typeModeMap.get(context);
- if (hasValue(contextMap)) {
- const match = resolveTheme(contextMap, theme);
- if (hasValue(match)) {
- return match;
- }
- if (bestMatchValue < 3 && hasValue(contextMap.get(DEFAULT_THEME))) {
- bestMatchValue = 3;
- bestMatch = contextMap.get(DEFAULT_THEME);
- }
- }
- if (bestMatchValue < 2 &&
- hasValue(typeModeMap.get(DEFAULT_CONTEXT)) &&
- hasValue(typeModeMap.get(DEFAULT_CONTEXT).get(DEFAULT_THEME))) {
- bestMatchValue = 2;
- bestMatch = typeModeMap.get(DEFAULT_CONTEXT).get(DEFAULT_THEME);
- }
- }
- if (bestMatchValue < 1 &&
- hasValue(typeMap.get(DEFAULT_VIEW_MODE)) &&
- hasValue(typeMap.get(DEFAULT_VIEW_MODE).get(DEFAULT_CONTEXT)) &&
- hasValue(typeMap.get(DEFAULT_VIEW_MODE).get(DEFAULT_CONTEXT).get(DEFAULT_THEME))) {
- bestMatchValue = 1;
- bestMatch = typeMap.get(DEFAULT_VIEW_MODE).get(DEFAULT_CONTEXT).get(DEFAULT_THEME);
+ const match = getMatch(typeMap, [viewMode, context, theme], [DEFAULT_VIEW_MODE, DEFAULT_CONTEXT, DEFAULT_THEME]);
+ if (hasNoValue(currentBestMatch) || currentBestMatch.isLessRelevantThan(match)) {
+ currentBestMatch = match;
}
}
}
- return bestMatch;
+ return hasValue(currentBestMatch) ? currentBestMatch.match : null;
+}
+
+/**
+ * Find an object within a nested map, matching the provided keys as best as possible, falling back on defaults wherever
+ * needed.
+ *
+ * Starting off with a Map, it loops over the provided keys, going deeper into the map until it finds a value
+ * If at some point, no value is found, it'll attempt to use the default value for that index instead
+ * If the default value exists, the index is stored in the "level"
+ * If no default value exists, 1 is added to "relevancy"
+ * See {@link MatchRelevancy} what these represent
+ *
+ * @param typeMap a multi-dimensional map
+ * @param keys the keys of the multi-dimensional map to loop over. Each key represents a level within the map
+ * @param defaults the default values to use for each level, in case no value is found for the key at that index
+ * @returns matchAndLevel a {@link MatchRelevancy} object containing the match and its level of relevancy
+ */
+function getMatch(typeMap: Map, keys: any[], defaults: any[]): MatchRelevancy {
+ let currentMap = typeMap;
+ let level = -1;
+ let relevancy = 0;
+ for (let i = 0; i < keys.length; i++) {
+ // If we're currently checking the theme, resolve it first to take extended themes into account
+ let currentMatch = defaults[i] === DEFAULT_THEME ? resolveTheme(currentMap, keys[i]) : currentMap.get(keys[i]);
+ if (hasNoValue(currentMatch)) {
+ currentMatch = currentMap.get(defaults[i]);
+ if (level === -1) {
+ level = i;
+ }
+ } else {
+ relevancy++;
+ }
+ if (hasValue(currentMatch)) {
+ if (currentMatch instanceof Map) {
+ currentMap = currentMatch as Map;
+ } else {
+ return new MatchRelevancy(currentMatch, level > -1 ? level : i + 1, relevancy);
+ }
+ } else {
+ return null;
+ }
+ }
+ return null;
}
/**
diff --git a/src/app/shared/object-list/listable-notification-object/listable-notification-object.component.html b/src/app/shared/object-list/listable-notification-object/listable-notification-object.component.html
new file mode 100644
index 0000000000..d29199bae3
--- /dev/null
+++ b/src/app/shared/object-list/listable-notification-object/listable-notification-object.component.html
@@ -0,0 +1 @@
+{{ object?.message | translate }}
diff --git a/src/app/shared/object-list/listable-notification-object/listable-notification-object.component.scss b/src/app/shared/object-list/listable-notification-object/listable-notification-object.component.scss
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/src/app/shared/object-list/listable-notification-object/listable-notification-object.component.spec.ts b/src/app/shared/object-list/listable-notification-object/listable-notification-object.component.spec.ts
new file mode 100644
index 0000000000..3cf05f7fec
--- /dev/null
+++ b/src/app/shared/object-list/listable-notification-object/listable-notification-object.component.spec.ts
@@ -0,0 +1,43 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { ListableNotificationObjectComponent } from './listable-notification-object.component';
+import { NotificationType } from '../../notifications/models/notification-type';
+import { ListableNotificationObject } from './listable-notification-object.model';
+import { By } from '@angular/platform-browser';
+import { TranslateModule } from '@ngx-translate/core';
+
+describe('ListableNotificationObjectComponent', () => {
+ let component: ListableNotificationObjectComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ imports: [
+ TranslateModule.forRoot(),
+ ],
+ declarations: [
+ ListableNotificationObjectComponent,
+ ],
+ }).compileComponents();
+ });
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(ListableNotificationObjectComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ describe('ui', () => {
+ it('should display the given error message', () => {
+ component.object = new ListableNotificationObject(NotificationType.Error, 'test error message');
+ fixture.detectChanges();
+
+ const listableNotificationObject: Element = fixture.debugElement.query(By.css('.alert')).nativeElement;
+ expect(listableNotificationObject.className).toContain(NotificationType.Error);
+ expect(listableNotificationObject.innerHTML).toBe('test error message');
+ });
+ });
+
+ afterEach(() => {
+ fixture.debugElement.nativeElement.remove();
+ });
+});
diff --git a/src/app/shared/object-list/listable-notification-object/listable-notification-object.component.ts b/src/app/shared/object-list/listable-notification-object/listable-notification-object.component.ts
new file mode 100644
index 0000000000..ca23ee76a2
--- /dev/null
+++ b/src/app/shared/object-list/listable-notification-object/listable-notification-object.component.ts
@@ -0,0 +1,21 @@
+import { Component } from '@angular/core';
+import {
+ AbstractListableElementComponent
+} from '../../object-collection/shared/object-collection-element/abstract-listable-element.component';
+import { ListableNotificationObject } from './listable-notification-object.model';
+import { listableObjectComponent } from '../../object-collection/shared/listable-object/listable-object.decorator';
+import { ViewMode } from '../../../core/shared/view-mode.model';
+import { LISTABLE_NOTIFICATION_OBJECT } from './listable-notification-object.resource-type';
+
+/**
+ * The component for displaying a notifications inside an object list
+ */
+@listableObjectComponent(ListableNotificationObject, ViewMode.ListElement)
+@listableObjectComponent(LISTABLE_NOTIFICATION_OBJECT.value, ViewMode.ListElement)
+@Component({
+ selector: 'ds-listable-notification-object',
+ templateUrl: './listable-notification-object.component.html',
+ styleUrls: ['./listable-notification-object.component.scss'],
+})
+export class ListableNotificationObjectComponent extends AbstractListableElementComponent {
+}
diff --git a/src/app/shared/object-list/listable-notification-object/listable-notification-object.model.ts b/src/app/shared/object-list/listable-notification-object/listable-notification-object.model.ts
new file mode 100644
index 0000000000..163d9096a2
--- /dev/null
+++ b/src/app/shared/object-list/listable-notification-object/listable-notification-object.model.ts
@@ -0,0 +1,36 @@
+import { ListableObject } from '../../object-collection/shared/listable-object.model';
+import { typedObject } from '../../../core/cache/builders/build-decorators';
+import { TypedObject } from '../../../core/cache/typed-object.model';
+import { LISTABLE_NOTIFICATION_OBJECT } from './listable-notification-object.resource-type';
+import { GenericConstructor } from '../../../core/shared/generic-constructor';
+import { NotificationType } from '../../notifications/models/notification-type';
+import { ResourceType } from '../../../core/shared/resource-type';
+
+/**
+ * Object representing a notification message inside a list of objects
+ */
+@typedObject
+export class ListableNotificationObject extends ListableObject implements TypedObject {
+
+ static type: ResourceType = LISTABLE_NOTIFICATION_OBJECT;
+ type: ResourceType = LISTABLE_NOTIFICATION_OBJECT;
+
+ protected renderTypes: string[];
+
+ constructor(
+ public notificationType: NotificationType = NotificationType.Error,
+ public message: string = 'listable-notification-object.default-message',
+ ...renderTypes: string[]
+ ) {
+ super();
+ this.renderTypes = renderTypes;
+ }
+
+ /**
+ * Method that returns as which type of object this object should be rendered.
+ */
+ getRenderTypes(): (string | GenericConstructor)[] {
+ return [...this.renderTypes, this.constructor as GenericConstructor];
+ }
+
+}
diff --git a/src/app/shared/object-list/listable-notification-object/listable-notification-object.resource-type.ts b/src/app/shared/object-list/listable-notification-object/listable-notification-object.resource-type.ts
new file mode 100644
index 0000000000..ed458126bb
--- /dev/null
+++ b/src/app/shared/object-list/listable-notification-object/listable-notification-object.resource-type.ts
@@ -0,0 +1,9 @@
+import { ResourceType } from '../../../core/shared/resource-type';
+
+/**
+ * The resource type for {@link ListableNotificationObject}
+ *
+ * Needs to be in a separate file to prevent circular
+ * dependencies in webpack.
+ */
+export const LISTABLE_NOTIFICATION_OBJECT = new ResourceType('listable-notification-object');
diff --git a/src/app/shared/object-list/sidebar-search-list-element/sidebar-search-list-element.component.spec.ts b/src/app/shared/object-list/sidebar-search-list-element/sidebar-search-list-element.component.spec.ts
index 897ec43491..226c1be33e 100644
--- a/src/app/shared/object-list/sidebar-search-list-element/sidebar-search-list-element.component.spec.ts
+++ b/src/app/shared/object-list/sidebar-search-list-element/sidebar-search-list-element.component.spec.ts
@@ -11,7 +11,6 @@ import { createSuccessfulRemoteDataObject$ } from '../../remote-data.utils';
import { HALResource } from '../../../core/shared/hal-resource.model';
import { ChildHALResource } from '../../../core/shared/child-hal-resource.model';
import { DSONameService } from '../../../core/breadcrumbs/dso-name.service';
-import { DSONameServiceMock } from '../../mocks/dso-name.service.mock';
export function createSidebarSearchListElementTests(
componentClass: any,
diff --git a/src/app/shared/object.util.ts b/src/app/shared/object.util.ts
index 1602fb9839..4f8954259e 100644
--- a/src/app/shared/object.util.ts
+++ b/src/app/shared/object.util.ts
@@ -1,5 +1,7 @@
import { isNotEmpty } from './empty.util';
-import { isEqual, isObject, transform } from 'lodash';
+import isEqual from 'lodash/isEqual';
+import isObject from 'lodash/isObject';
+import transform from 'lodash/transform';
/**
* Returns passed object without specified property
diff --git a/src/app/shared/pagination-drag-and-drop/abstract-paginated-drag-and-drop-list.component.spec.ts b/src/app/shared/pagination-drag-and-drop/abstract-paginated-drag-and-drop-list.component.spec.ts
index 7db53425d5..bac6b89583 100644
--- a/src/app/shared/pagination-drag-and-drop/abstract-paginated-drag-and-drop-list.component.spec.ts
+++ b/src/app/shared/pagination-drag-and-drop/abstract-paginated-drag-and-drop-list.component.spec.ts
@@ -11,8 +11,6 @@ import { createSuccessfulRemoteDataObject } from '../remote-data.utils';
import { createPaginatedList } from '../testing/utils.test';
import { ObjectValuesPipe } from '../utils/object-values-pipe';
import { PaginationService } from '../../core/pagination/pagination.service';
-import { PaginationComponentOptions } from '../pagination/pagination-component-options.model';
-import { SortDirection, SortOptions } from '../../core/cache/models/sort-options.model';
import { PaginationServiceStub } from '../testing/pagination-service.stub';
import { FieldUpdates } from '../../core/data/object-updates/field-updates.model';
diff --git a/src/app/shared/pagination/pagination.component.spec.ts b/src/app/shared/pagination/pagination.component.spec.ts
index 2d913da8a3..30ace4b2b9 100644
--- a/src/app/shared/pagination/pagination.component.spec.ts
+++ b/src/app/shared/pagination/pagination.component.spec.ts
@@ -32,8 +32,7 @@ import { SortDirection, SortOptions } from '../../core/cache/models/sort-options
import { createTestComponent } from '../testing/utils.test';
import { storeModuleConfig } from '../../app.reducer';
import { PaginationService } from '../../core/pagination/pagination.service';
-import { BehaviorSubject, of as observableOf } from 'rxjs';
-import { PaginationServiceStub } from '../testing/pagination-service.stub';
+import { BehaviorSubject } from 'rxjs';
import { FindListOptions } from '../../core/data/find-list-options.model';
function expectPages(fixture: ComponentFixture, pagesDef: string[]): void {
diff --git a/src/app/shared/resource-policies/form/eperson-group-list/eperson-group-list.component.spec.ts b/src/app/shared/resource-policies/form/eperson-group-list/eperson-group-list.component.spec.ts
index 91d9200c2d..cec67e721c 100644
--- a/src/app/shared/resource-policies/form/eperson-group-list/eperson-group-list.component.spec.ts
+++ b/src/app/shared/resource-policies/form/eperson-group-list/eperson-group-list.component.spec.ts
@@ -4,7 +4,7 @@ import { ChangeDetectorRef, Component, Injector, NO_ERRORS_SCHEMA } from '@angul
import { of as observableOf } from 'rxjs';
import { TranslateModule } from '@ngx-translate/core';
import { cold } from 'jasmine-marbles';
-import { uniqueId } from 'lodash';
+import uniqueId from 'lodash/uniqueId';
import { createSuccessfulRemoteDataObject } from '../../../remote-data.utils';
import { createTestComponent } from '../../../testing/utils.test';
@@ -19,10 +19,8 @@ import { PaginationComponentOptions } from '../../../pagination/pagination-compo
import { buildPaginatedList } from '../../../../core/data/paginated-list.model';
import { PageInfo } from '../../../../core/shared/page-info.model';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
-import { SortDirection, SortOptions } from '../../../../core/cache/models/sort-options.model';
import { PaginationService } from '../../../../core/pagination/pagination.service';
import { PaginationServiceStub } from '../../../testing/pagination-service.stub';
-import { FindListOptions } from '../../../../core/data/find-list-options.model';
describe('EpersonGroupListComponent test suite', () => {
let comp: EpersonGroupListComponent;
diff --git a/src/app/shared/resource-policies/form/eperson-group-list/eperson-group-list.component.ts b/src/app/shared/resource-policies/form/eperson-group-list/eperson-group-list.component.ts
index b120c3e016..b859184845 100644
--- a/src/app/shared/resource-policies/form/eperson-group-list/eperson-group-list.component.ts
+++ b/src/app/shared/resource-policies/form/eperson-group-list/eperson-group-list.component.ts
@@ -2,7 +2,7 @@ import { Component, EventEmitter, Injector, Input, OnDestroy, OnInit, Output } f
import { BehaviorSubject, Observable, Subscription } from 'rxjs';
import { map } from 'rxjs/operators';
-import { uniqueId } from 'lodash';
+import uniqueId from 'lodash/uniqueId';
import { RemoteData } from '../../../../core/data/remote-data';
import { PaginatedList } from '../../../../core/data/paginated-list.model';
diff --git a/src/app/shared/rss-feed/rss.component.spec.ts b/src/app/shared/rss-feed/rss.component.spec.ts
index fd7f2c5321..61b54a1125 100644
--- a/src/app/shared/rss-feed/rss.component.spec.ts
+++ b/src/app/shared/rss-feed/rss.component.spec.ts
@@ -1,5 +1,4 @@
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
-import { SortDirection, SortOptions } from '../../core/cache/models/sort-options.model';
import { ConfigurationDataService } from '../../core/data/configuration-data.service';
import { RemoteData } from '../../core/data/remote-data';
import { GroupDataService } from '../../core/eperson/group-data.service';
@@ -23,7 +22,6 @@ import { RouterMock } from '../mocks/router.mock';
describe('RssComponent', () => {
let comp: RSSComponent;
- let options: SortOptions;
let fixture: ComponentFixture;
let uuid: string;
let query: string;
@@ -63,7 +61,6 @@ describe('RssComponent', () => {
pageSize: 10,
currentPage: 1
}),
- sort: new SortOptions('dc.title', SortDirection.ASC),
}));
groupDataService = jasmine.createSpyObj('groupsDataService', {
findListByHref: createSuccessfulRemoteDataObject$(createPaginatedList([])),
@@ -88,7 +85,6 @@ describe('RssComponent', () => {
}));
beforeEach(() => {
- options = new SortOptions('dc.title', SortDirection.DESC);
uuid = '2cfcf65e-0a51-4bcb-8592-b8db7b064790';
query = 'test';
fixture = TestBed.createComponent(RSSComponent);
@@ -96,18 +92,18 @@ describe('RssComponent', () => {
});
it('should formulate the correct url given params in url', () => {
- const route = comp.formulateRoute(uuid, 'opensearch', options, query);
- expect(route).toBe('/opensearch/search?format=atom&scope=2cfcf65e-0a51-4bcb-8592-b8db7b064790&sort=dc.title&sort_direction=DESC&query=test');
+ const route = comp.formulateRoute(uuid, 'opensearch/search', query);
+ expect(route).toBe('/opensearch/search?format=atom&scope=2cfcf65e-0a51-4bcb-8592-b8db7b064790&query=test');
});
it('should skip uuid if its null', () => {
- const route = comp.formulateRoute(null, 'opensearch', options, query);
- expect(route).toBe('/opensearch/search?format=atom&sort=dc.title&sort_direction=DESC&query=test');
+ const route = comp.formulateRoute(null, 'opensearch/search', query);
+ expect(route).toBe('/opensearch/search?format=atom&query=test');
});
it('should default to query * if none provided', () => {
- const route = comp.formulateRoute(null, 'opensearch', options, null);
- expect(route).toBe('/opensearch/search?format=atom&sort=dc.title&sort_direction=DESC&query=*');
+ const route = comp.formulateRoute(null, 'opensearch/search', null);
+ expect(route).toBe('/opensearch/search?format=atom&query=*');
});
});
diff --git a/src/app/shared/rss-feed/rss.component.ts b/src/app/shared/rss-feed/rss.component.ts
index 3fdb859bdc..8a33aeeb68 100644
--- a/src/app/shared/rss-feed/rss.component.ts
+++ b/src/app/shared/rss-feed/rss.component.ts
@@ -12,7 +12,6 @@ import { ConfigurationDataService } from '../../core/data/configuration-data.ser
import { getFirstCompletedRemoteData } from '../../core/shared/operators';
import { environment } from '../../../../src/environments/environment';
import { SearchConfigurationService } from '../../core/shared/search/search-configuration.service';
-import { SortOptions } from '../../core/cache/models/sort-options.model';
import { PaginationService } from '../../core/pagination/pagination.service';
import { Router } from '@angular/router';
import { map, switchMap } from 'rxjs/operators';
@@ -39,7 +38,6 @@ export class RSSComponent implements OnInit, OnDestroy {
uuid: string;
configuration$: Observable;
- sortOption$: Observable;
subs: Subscription[] = [];
@@ -93,7 +91,7 @@ export class RSSComponent implements OnInit, OnDestroy {
return null;
}
this.uuid = this.groupDataService.getUUIDFromString(this.router.url);
- const route = environment.rest.baseUrl + this.formulateRoute(this.uuid, openSearchUri, searchOptions.sort, searchOptions.query);
+ const route = environment.rest.baseUrl + this.formulateRoute(this.uuid, openSearchUri, searchOptions.query);
this.addLinks(route);
this.linkHeadService.addTag({
href: environment.rest.baseUrl + '/' + openSearchUri + '/service',
@@ -109,24 +107,20 @@ export class RSSComponent implements OnInit, OnDestroy {
* Function created a route given the different params available to opensearch
* @param uuid The uuid if a scope is present
* @param opensearch openSearch uri
- * @param sort The sort options for the opensearch request
* @param query The query string that was provided in the search
* @returns The combine URL to opensearch
*/
- formulateRoute(uuid: string, opensearch: string, sort: SortOptions, query: string): string {
- let route = 'search?format=atom';
+ formulateRoute(uuid: string, opensearch: string, query: string): string {
+ let route = '?format=atom';
if (uuid) {
route += `&scope=${uuid}`;
}
- if (sort && sort.direction && sort.field && sort.field !== 'id') {
- route += `&sort=${sort.field}&sort_direction=${sort.direction}`;
- }
if (query) {
route += `&query=${query}`;
} else {
route += `&query=*`;
}
- route = '/' + opensearch + '/' + route;
+ route = '/' + opensearch + route;
return route;
}
diff --git a/src/app/shared/sass-helper/sass-helper.actions.ts b/src/app/shared/sass-helper/css-variable.actions.ts
similarity index 51%
rename from src/app/shared/sass-helper/sass-helper.actions.ts
rename to src/app/shared/sass-helper/css-variable.actions.ts
index 144904646e..2d58a2978b 100644
--- a/src/app/shared/sass-helper/sass-helper.actions.ts
+++ b/src/app/shared/sass-helper/css-variable.actions.ts
@@ -1,5 +1,7 @@
+/* eslint-disable max-classes-per-file */
import { Action } from '@ngrx/store';
import { type } from '../ngrx/type';
+import { KeyValuePair } from '../key-value-pair.model';
/**
* For each action type in an action group, make a simple
@@ -11,6 +13,8 @@ import { type } from '../ngrx/type';
*/
export const CSSVariableActionTypes = {
ADD: type('dspace/css-variables/ADD'),
+ ADD_ALL: type('dspace/css-variables/ADD_ALL'),
+ CLEAR: type('dspace/css-variables/CLEAR'),
};
export class AddCSSVariableAction implements Action {
@@ -24,5 +28,17 @@ export class AddCSSVariableAction implements Action {
this.payload = {name, value};
}
}
+export class AddAllCSSVariablesAction implements Action {
+ type = CSSVariableActionTypes.ADD_ALL;
+ payload: KeyValuePair[];
-export type CSSVariableAction = AddCSSVariableAction;
+ constructor(variables: KeyValuePair[]) {
+ this.payload = variables;
+ }
+}
+
+export class ClearCSSVariablesAction implements Action {
+ type = CSSVariableActionTypes.CLEAR;
+}
+
+export type CSSVariableAction = AddCSSVariableAction | AddAllCSSVariablesAction | ClearCSSVariablesAction;
diff --git a/src/app/shared/sass-helper/css-variable.reducer.ts b/src/app/shared/sass-helper/css-variable.reducer.ts
new file mode 100644
index 0000000000..449a936b4e
--- /dev/null
+++ b/src/app/shared/sass-helper/css-variable.reducer.ts
@@ -0,0 +1,30 @@
+import { CSSVariableAction, CSSVariableActionTypes } from './css-variable.actions';
+import { KeyValuePair } from '../key-value-pair.model';
+
+export interface CSSVariablesState {
+ [name: string]: string;
+}
+
+const initialState: CSSVariablesState = Object.create({});
+
+/**
+ * Reducer that handles the state of CSS variables in the store
+ * @param state The current state of the store
+ * @param action The action to apply onto the current state of the store
+ */
+export function cssVariablesReducer(state = initialState, action: CSSVariableAction): CSSVariablesState {
+ switch (action.type) {
+ case CSSVariableActionTypes.ADD: {
+ const variable = action.payload;
+ return Object.assign({}, state, { [variable.name]: variable.value });
+ } case CSSVariableActionTypes.ADD_ALL: {
+ const variables = action.payload;
+ return Object.assign({}, state, ...variables.map(({ key, value }: KeyValuePair) => {return {[key]: value};}));
+ } case CSSVariableActionTypes.CLEAR: {
+ return initialState;
+ }
+ default: {
+ return state;
+ }
+ }
+}
diff --git a/src/app/shared/sass-helper/css-variable.service.spec.ts b/src/app/shared/sass-helper/css-variable.service.spec.ts
new file mode 100644
index 0000000000..559384a5d7
--- /dev/null
+++ b/src/app/shared/sass-helper/css-variable.service.spec.ts
@@ -0,0 +1,78 @@
+import { TestBed } from '@angular/core/testing';
+import { CSSVariableService } from './css-variable.service';
+import { MockStore, provideMockStore } from '@ngrx/store/testing';
+import { getTestScheduler } from 'jasmine-marbles';
+import { buildPaginatedList } from '../../core/data/paginated-list.model';
+import { PageInfo } from '../../core/shared/page-info.model';
+import { KeyValuePair } from '../key-value-pair.model';
+
+describe('CSSVariableService', () => {
+ let store: MockStore;
+
+ let service: CSSVariableService;
+ let initialState;
+ const varKey1 = '--test-1';
+ const varValue1 = 'test-value-1';
+ const varKey2 = '--test-2';
+ const varValue2 = 'test-value-2';
+ const varKey3 = '--test-3';
+ const varValue3 = 'test-value-3';
+ const queryInAll = 'test';
+ const queryFor3 = '3';
+
+ function init() {
+ initialState = {
+ ['cssVariables']: {
+ [varKey1]: varValue1,
+ [varKey2]: varValue2,
+ [varKey3]: varValue3,
+ }
+ };
+ }
+
+ beforeEach(() => {
+ init();
+ TestBed.configureTestingModule({
+ providers: [
+ CSSVariableService,
+ provideMockStore({ initialState }),
+ ],
+ });
+ service = TestBed.inject(CSSVariableService as any);
+ store = TestBed.inject(MockStore as any);
+ });
+
+ it('should create', () => {
+ expect(service).toBeTruthy();
+ });
+
+ describe('searchVariable', () => {
+ it('should return the right keys and variables in a paginated list for query that returns all 3 results', () => {
+ const currentPage = 1;
+ const pageSize = 5;
+ const pageInfo = new PageInfo({ currentPage, elementsPerPage: pageSize, totalPages: 1, totalElements: 3 });
+ const page: KeyValuePair[] = [{ key: varKey1, value: varValue1 }, { key: varKey2, value: varValue2 }, { key: varKey3, value: varValue3 }];
+ const result = buildPaginatedList(pageInfo, page);
+ getTestScheduler().expectObservable(service.searchVariable(queryInAll, { currentPage, pageSize } as any)).toBe('a', { a: result });
+ });
+
+ it('should return the right keys and variables in a paginated list for query that returns only the 3rd results', () => {
+ const currentPage = 1;
+ const pageSize = 5;
+ const pageInfo = new PageInfo({ currentPage, elementsPerPage: pageSize, totalPages: 1, totalElements: 1 });
+ const page: KeyValuePair[] = [{ key: varKey3, value: varValue3 }];
+ const result = buildPaginatedList(pageInfo, page);
+ getTestScheduler().expectObservable(service.searchVariable(queryFor3, { currentPage, pageSize } as any)).toBe('a', { a: result });
+ });
+
+ it('should return the right keys and variables in a paginated list that\'s not longer than the page size', () => {
+ const currentPage = 1;
+ const pageSize = 2;
+ const pageInfo = new PageInfo({ currentPage, elementsPerPage: pageSize, totalPages: 2, totalElements: 3 });
+ const page: KeyValuePair[] = [{ key: varKey1, value: varValue1 }, { key: varKey2, value: varValue2 }];
+ const result = buildPaginatedList(pageInfo, page);
+ getTestScheduler().expectObservable(service.searchVariable(queryInAll, { currentPage, pageSize } as any)).toBe('a', { a: result });
+ });
+ });
+
+});
diff --git a/src/app/shared/sass-helper/css-variable.service.ts b/src/app/shared/sass-helper/css-variable.service.ts
new file mode 100644
index 0000000000..0190a05036
--- /dev/null
+++ b/src/app/shared/sass-helper/css-variable.service.ts
@@ -0,0 +1,161 @@
+import { Injectable } from '@angular/core';
+import { AppState, keySelector } from '../../app.reducer';
+import { createSelector, MemoizedSelector, select, Store } from '@ngrx/store';
+import { AddAllCSSVariablesAction, AddCSSVariableAction, ClearCSSVariablesAction } from './css-variable.actions';
+import { PaginationComponentOptions } from '../pagination/pagination-component-options.model';
+import { buildPaginatedList, PaginatedList } from '../../core/data/paginated-list.model';
+import { Observable } from 'rxjs';
+import { hasValue, isNotEmpty } from '../empty.util';
+import { KeyValuePair } from '../key-value-pair.model';
+import { PageInfo } from '../../core/shared/page-info.model';
+import { CSSVariablesState } from './css-variable.reducer';
+
+/**
+ * This service deals with adding and retrieving CSS variables to and from the store
+ */
+@Injectable({
+ providedIn: 'root'
+})
+export class CSSVariableService {
+ isSameDomain = (styleSheet) => {
+ // Internal style blocks won't have an href value
+ if (!styleSheet.href) {
+ return true;
+ }
+
+ return styleSheet.href.indexOf(window.location.origin) === 0;
+ };
+
+ /*
+ Determine if the given rule is a CSSStyleRule
+ See: https://developer.mozilla.org/en-US/docs/Web/API/CSSRule#Type_constants
+ */
+ isStyleRule = (rule) => rule.type === 1;
+
+ constructor(
+ protected store: Store) {
+ }
+
+ /**
+ * Adds a CSS variable to the store
+ * @param name The name/key of the CSS variable
+ * @param value The value of the CSS variable
+ */
+ addCSSVariable(name: string, value: string) {
+ this.store.dispatch(new AddCSSVariableAction(name, value));
+ }
+
+ /**
+ * Adds multiples CSS variables to the store
+ * @param variables The key-value pairs with the CSS variables to be added
+ */
+ addCSSVariables(variables: KeyValuePair[]) {
+ this.store.dispatch(new AddAllCSSVariablesAction(variables));
+ }
+
+ /**
+ * Clears all CSS variables ƒrom the store
+ */
+ clearCSSVariables() {
+ this.store.dispatch(new ClearCSSVariablesAction());
+ }
+
+ /**
+ * Returns the value of a specific CSS key
+ * @param name The name/key of the CSS value
+ */
+ getVariable(name: string): Observable {
+ return this.store.pipe(select(themeVariableByNameSelector(name)));
+ }
+
+ /**
+ * Returns the CSSVariablesState of the store containing all variables
+ */
+ getAllVariables(): Observable {
+ return this.store.pipe(select(themeVariablesSelector));
+ }
+
+ /**
+ * Method to find CSS variables by their partially supplying their key. Case sensitive. Returns a paginated list of KeyValuePairs with CSS variables that match the query.
+ * @param query The query to look for in the keys
+ * @param paginationOptions The pagination options for the requested page
+ */
+ searchVariable(query: string, paginationOptions: PaginationComponentOptions): Observable>> {
+ return this.store.pipe(select(themePaginatedVariablesByQuery(query, paginationOptions)));
+ }
+
+ /**
+ * Get all custom properties on a page
+ * @return array>
+ * ex; [{key: "--color-accent", value: "#b9f500"}, {key: "--color-text", value: "#252525"}, ...]
+ */
+ getCSSVariablesFromStylesheets(document: Document): KeyValuePair[] {
+ if (isNotEmpty(document.styleSheets)) {
+ // styleSheets is array-like, so we convert it to an array.
+ // Filter out any stylesheets not on this domain
+ return [...document.styleSheets]
+ .filter(this.isSameDomain)
+ .reduce(
+ (finalArr, sheet) =>
+ finalArr.concat(
+ // cssRules is array-like, so we convert it to an array
+ [...sheet.cssRules].filter(this.isStyleRule).reduce((propValArr, rule: any) => {
+ const props = [...rule.style]
+ .map((propName) => {
+ return {
+ key: propName.trim(),
+ value: rule.style.getPropertyValue(propName).trim()
+ } as KeyValuePair;
+ }
+ )
+ // Discard any props that don't start with "--". Custom props are required to.
+ .filter(({ key }: KeyValuePair) => key.indexOf('--') === 0);
+
+ return [...propValArr, ...props];
+ }, [])
+ ),
+ []
+ );
+ } else {
+ return [];
+ }
+ }
+}
+
+const themeVariablesSelector = (state: AppState) => state.cssVariables;
+
+const themeVariableByNameSelector = (name: string): MemoizedSelector => {
+ return keySelector(name, themeVariablesSelector);
+};
+
+// Split this up into two memoized selectors so the query search gets cached separately from the pagination,
+// since the entire list has to be retrieved every time anyway
+const themePaginatedVariablesByQuery = (query: string, pagination: PaginationComponentOptions): MemoizedSelector>> => {
+ return createSelector(themeVariablesByQuery(query), (pairs) => {
+ if (hasValue(pairs)) {
+ const { currentPage, pageSize } = pagination;
+ const startIndex = (currentPage - 1) * pageSize;
+ const endIndex = startIndex + pageSize;
+ const pairsPage = pairs.slice(startIndex, endIndex);
+ const totalPages = Math.ceil(pairs.length / pageSize);
+ const pageInfo = new PageInfo({ currentPage, elementsPerPage: pageSize, totalElements: pairs.length, totalPages });
+ return buildPaginatedList(pageInfo, pairsPage);
+ } else {
+ return undefined;
+ }
+ });
+};
+
+const themeVariablesByQuery = (query: string): MemoizedSelector[]> => {
+ return createSelector(themeVariablesSelector, (state) => {
+ if (hasValue(state)) {
+ return Object.keys(state)
+ .filter((key: string) => key.includes(query))
+ .map((key: string) => {
+ return { key, value: state[key] };
+ });
+ } else {
+ return undefined;
+ }
+ });
+};
diff --git a/src/app/shared/sass-helper/sass-helper.reducer.ts b/src/app/shared/sass-helper/sass-helper.reducer.ts
deleted file mode 100644
index 6f080619fa..0000000000
--- a/src/app/shared/sass-helper/sass-helper.reducer.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { CSSVariableAction, CSSVariableActionTypes } from './sass-helper.actions';
-
-export interface CSSVariablesState {
- [name: string]: string;
-}
-
-const initialState: CSSVariablesState = Object.create({});
-
-export function cssVariablesReducer(state = initialState, action: CSSVariableAction): CSSVariablesState {
- switch (action.type) {
- case CSSVariableActionTypes.ADD: {
- const variable = action.payload;
- const t = Object.assign({}, state, { [variable.name]: variable.value });
- return t;
- }
- default: {
- return state;
- }
- }
-}
diff --git a/src/app/shared/sass-helper/sass-helper.service.ts b/src/app/shared/sass-helper/sass-helper.service.ts
deleted file mode 100644
index 7cc83dab2d..0000000000
--- a/src/app/shared/sass-helper/sass-helper.service.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-import { Injectable } from '@angular/core';
-import { AppState, keySelector } from '../../app.reducer';
-import { MemoizedSelector, select, Store } from '@ngrx/store';
-import { AddCSSVariableAction } from './sass-helper.actions';
-
-@Injectable()
-export class CSSVariableService {
- constructor(
- protected store: Store) {
- }
-
- addCSSVariable(name: string, value: string) {
- this.store.dispatch(new AddCSSVariableAction(name, value));
- }
-
- getVariable(name: string) {
- return this.store.pipe(select(themeVariableByNameSelector(name)));
- }
-
- getAllVariables() {
- return this.store.pipe(select(themeVariablesSelector));
- }
-
-}
-
-const themeVariablesSelector = (state: AppState) => state.cssVariables;
-
-const themeVariableByNameSelector = (name: string): MemoizedSelector => {
- return keySelector(name, themeVariablesSelector);
-};
diff --git a/src/app/shared/search-form/scope-selector-modal/scope-selector-modal.component.html b/src/app/shared/search-form/scope-selector-modal/scope-selector-modal.component.html
index bf5c15e963..e7165a9213 100644
--- a/src/app/shared/search-form/scope-selector-modal/scope-selector-modal.component.html
+++ b/src/app/shared/search-form/scope-selector-modal/scope-selector-modal.component.html
@@ -9,7 +9,7 @@
diff --git a/src/app/shared/search/search-filters/search-filter/search-filter.reducer.spec.ts b/src/app/shared/search/search-filters/search-filter/search-filter.reducer.spec.ts
index ae8108662d..aa64589d2e 100644
--- a/src/app/shared/search/search-filters/search-filter/search-filter.reducer.spec.ts
+++ b/src/app/shared/search/search-filters/search-filter/search-filter.reducer.spec.ts
@@ -1,3 +1,4 @@
+// eslint-disable-next-line import/no-namespace
import * as deepFreeze from 'deep-freeze';
import {
SearchFilterCollapseAction,
diff --git a/src/app/shared/search/search-filters/search-filter/search-range-filter/search-range-filter.component.spec.ts b/src/app/shared/search/search-filters/search-filter/search-range-filter/search-range-filter.component.spec.ts
index 44dda40d15..3a146f5059 100644
--- a/src/app/shared/search/search-filters/search-filter/search-range-filter/search-range-filter.component.spec.ts
+++ b/src/app/shared/search/search-filters/search-filter/search-range-filter/search-range-filter.component.spec.ts
@@ -31,7 +31,6 @@ describe('SearchRangeFilterComponent', () => {
let fixture: ComponentFixture;
const minSuffix = '.min';
const maxSuffix = '.max';
- const dateFormats = ['YYYY', 'YYYY-MM', 'YYYY-MM-DD'];
const filterName1 = 'test name';
const value1 = '2000 - 2012';
const value2 = '1992 - 2000';
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 fbd767284f..938f67412e 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
@@ -15,11 +15,11 @@ import {
} from '../../../../../core/shared/search/search-filter.service';
import { SearchService } from '../../../../../core/shared/search/search.service';
import { Router } from '@angular/router';
-import * as moment from 'moment';
import { SEARCH_CONFIG_SERVICE } from '../../../../../my-dspace-page/my-dspace-page.component';
import { SearchConfigurationService } from '../../../../../core/shared/search/search-configuration.service';
import { RouteService } from '../../../../../core/services/route.service';
import { hasValue } from '../../../../empty.util';
+import { yearFromString } from 'src/app/shared/date.util';
/**
* The suffix for a range filters' minimum in the frontend URL
@@ -31,11 +31,6 @@ export const RANGE_FILTER_MIN_SUFFIX = '.min';
*/
export const RANGE_FILTER_MAX_SUFFIX = '.max';
-/**
- * The date formats that are possible to appear in a date filter
- */
-const dateFormats = ['YYYY', 'YYYY-MM', 'YYYY-MM-DD'];
-
/**
* This component renders a simple item page.
* The route parameter 'id' is used to request the item it represents.
@@ -99,8 +94,8 @@ export class SearchRangeFilterComponent extends SearchFacetFilterComponent imple
*/
ngOnInit(): void {
super.ngOnInit();
- this.min = moment(this.filterConfig.minValue, dateFormats).year() || this.min;
- this.max = moment(this.filterConfig.maxValue, dateFormats).year() || this.max;
+ this.min = yearFromString(this.filterConfig.minValue) || this.min;
+ this.max = yearFromString(this.filterConfig.maxValue) || this.max;
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(
diff --git a/src/app/shared/search/search-labels/search-label/search-label.component.spec.ts b/src/app/shared/search/search-labels/search-label/search-label.component.spec.ts
index 50bcbc6938..b2be2ae53f 100644
--- a/src/app/shared/search/search-labels/search-label/search-label.component.spec.ts
+++ b/src/app/shared/search/search-labels/search-label/search-label.component.spec.ts
@@ -12,11 +12,9 @@ import { SearchServiceStub } from '../../../testing/search-service.stub';
import { SearchConfigurationServiceStub } from '../../../testing/search-configuration-service.stub';
import { SearchService } from '../../../../core/shared/search/search.service';
import { PaginationComponentOptions } from '../../../pagination/pagination-component-options.model';
-import { SortDirection, SortOptions } from '../../../../core/cache/models/sort-options.model';
import { PaginationService } from '../../../../core/pagination/pagination.service';
import { SearchConfigurationService } from '../../../../core/shared/search/search-configuration.service';
import { PaginationServiceStub } from '../../../testing/pagination-service.stub';
-import { FindListOptions } from '../../../../core/data/find-list-options.model';
describe('SearchLabelComponent', () => {
let comp: SearchLabelComponent;
diff --git a/src/app/shared/search/search-switch-configuration/search-switch-configuration.component.ts b/src/app/shared/search/search-switch-configuration/search-switch-configuration.component.ts
index 1852277673..0e1b4f221b 100644
--- a/src/app/shared/search/search-switch-configuration/search-switch-configuration.component.ts
+++ b/src/app/shared/search/search-switch-configuration/search-switch-configuration.component.ts
@@ -10,7 +10,7 @@ import { MyDSpaceConfigurationValueType } from '../../../my-dspace-page/my-dspac
import { SearchConfigurationOption } from './search-configuration-option.model';
import { SearchService } from '../../../core/shared/search/search.service';
import { currentPath } from '../../utils/route.utils';
-import { findIndex } from 'lodash';
+import findIndex from 'lodash/findIndex';
@Component({
selector: 'ds-search-switch-configuration',
diff --git a/src/app/shared/search/search.component.ts b/src/app/shared/search/search.component.ts
index 2abd5290cb..c094e37ef2 100644
--- a/src/app/shared/search/search.component.ts
+++ b/src/app/shared/search/search.component.ts
@@ -3,7 +3,7 @@ import { Router } from '@angular/router';
import { BehaviorSubject, combineLatest, Observable, Subscription } from 'rxjs';
import { debounceTime, distinctUntilChanged, filter, map, switchMap } from 'rxjs/operators';
-import { uniqueId } from 'lodash';
+import uniqueId from 'lodash/uniqueId';
import { PaginatedList } from '../../core/data/paginated-list.model';
import { RemoteData } from '../../core/data/remote-data';
diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts
index 5e3742e5b9..13fdd3e12c 100644
--- a/src/app/shared/shared.module.ts
+++ b/src/app/shared/shared.module.ts
@@ -18,7 +18,6 @@ import {
import { MissingTranslationHandler, TranslateModule } from '@ngx-translate/core';
import { NgxPaginationModule } from 'ngx-pagination';
import { InfiniteScrollModule } from 'ngx-infinite-scroll';
-import { MomentModule } from 'ngx-moment';
import { ConfirmationModalComponent } from './confirmation-modal/confirmation-modal.component';
import {
ExportMetadataSelectorComponent
@@ -313,6 +312,9 @@ import {
import { MarkdownPipe } from './utils/markdown.pipe';
import { GoogleRecaptchaModule } from '../core/google-recaptcha/google-recaptcha.module';
import { MenuModule } from './menu/menu.module';
+import {
+ ListableNotificationObjectComponent
+} from './object-list/listable-notification-object/listable-notification-object.component';
const MODULES = [
CommonModule,
@@ -329,7 +331,6 @@ const MODULES = [
ReactiveFormsModule,
RouterModule,
NouisliderModule,
- MomentModule,
DragDropModule,
CdkTreeModule,
GoogleRecaptchaModule,
@@ -434,6 +435,7 @@ const COMPONENTS = [
SearchNavbarComponent,
ItemPageTitleFieldComponent,
ThemedSearchNavbarComponent,
+ ListableNotificationObjectComponent,
];
const ENTRY_COMPONENTS = [
@@ -495,6 +497,7 @@ const ENTRY_COMPONENTS = [
CollectionSidebarSearchListElementComponent,
CommunitySidebarSearchListElementComponent,
ScopeSelectorModalComponent,
+ ListableNotificationObjectComponent,
];
const SHARED_ITEM_PAGE_COMPONENTS = [
diff --git a/src/app/shared/sidebar/sidebar-effects.service.ts b/src/app/shared/sidebar/sidebar-effects.service.ts
index ba53e2fec9..f6f99ca0fc 100644
--- a/src/app/shared/sidebar/sidebar-effects.service.ts
+++ b/src/app/shared/sidebar/sidebar-effects.service.ts
@@ -1,7 +1,7 @@
import { map, tap, filter } from 'rxjs/operators';
import { Injectable } from '@angular/core';
import { createEffect, Actions, ofType } from '@ngrx/effects';
-import * as fromRouter from '@ngrx/router-store';
+import { ROUTER_NAVIGATION } from '@ngrx/router-store';
import { SidebarCollapseAction } from './sidebar.actions';
import { URLBaser } from '../../core/url-baser/url-baser';
@@ -14,7 +14,7 @@ export class SidebarEffects {
private previousPath: string;
routeChange$ = createEffect(() => this.actions$
.pipe(
- ofType(fromRouter.ROUTER_NAVIGATION),
+ ofType(ROUTER_NAVIGATION),
filter((action) => this.previousPath !== this.getBaseUrl(action)),
tap((action) => {
this.previousPath = this.getBaseUrl(action);
diff --git a/src/app/shared/sidebar/sidebar.reducer.spec.ts b/src/app/shared/sidebar/sidebar.reducer.spec.ts
index 796c40537c..76962f60c1 100644
--- a/src/app/shared/sidebar/sidebar.reducer.spec.ts
+++ b/src/app/shared/sidebar/sidebar.reducer.spec.ts
@@ -1,3 +1,4 @@
+// eslint-disable-next-line import/no-namespace
import * as deepFreeze from 'deep-freeze';
import { sidebarReducer } from './sidebar.reducer';
diff --git a/src/app/shared/starts-with/date/starts-with-date.component.spec.ts b/src/app/shared/starts-with/date/starts-with-date.component.spec.ts
index 3cd22a625f..2407f21fdf 100644
--- a/src/app/shared/starts-with/date/starts-with-date.component.spec.ts
+++ b/src/app/shared/starts-with/date/starts-with-date.component.spec.ts
@@ -11,11 +11,8 @@ import { StartsWithDateComponent } from './starts-with-date.component';
import { ActivatedRouteStub } from '../../testing/active-router.stub';
import { EnumKeysPipe } from '../../utils/enum-keys-pipe';
import { RouterStub } from '../../testing/router.stub';
-import { PaginationComponentOptions } from '../../pagination/pagination-component-options.model';
-import { SortDirection, SortOptions } from '../../../core/cache/models/sort-options.model';
import { PaginationService } from '../../../core/pagination/pagination.service';
import { PaginationServiceStub } from '../../testing/pagination-service.stub';
-import { FindListOptions } from '../../../core/data/find-list-options.model';
describe('StartsWithDateComponent', () => {
let comp: StartsWithDateComponent;
diff --git a/src/app/shared/starts-with/text/starts-with-text.component.spec.ts b/src/app/shared/starts-with/text/starts-with-text.component.spec.ts
index c08ef5cfdc..b717c72d76 100644
--- a/src/app/shared/starts-with/text/starts-with-text.component.spec.ts
+++ b/src/app/shared/starts-with/text/starts-with-text.component.spec.ts
@@ -1,5 +1,5 @@
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
-import { ActivatedRoute, NavigationExtras, Router } from '@angular/router';
+import { ActivatedRoute, Router } from '@angular/router';
import { CommonModule } from '@angular/common';
import { RouterTestingModule } from '@angular/router/testing';
import { TranslateModule } from '@ngx-translate/core';
@@ -8,12 +8,8 @@ import { EnumKeysPipe } from '../../utils/enum-keys-pipe';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { By } from '@angular/platform-browser';
import { StartsWithTextComponent } from './starts-with-text.component';
-import { PaginationComponentOptions } from '../../pagination/pagination-component-options.model';
-import { SortDirection, SortOptions } from '../../../core/cache/models/sort-options.model';
-import { of as observableOf } from 'rxjs';
import { PaginationService } from '../../../core/pagination/pagination.service';
import { PaginationServiceStub } from '../../testing/pagination-service.stub';
-import { FindListOptions } from '../../../core/data/find-list-options.model';
describe('StartsWithTextComponent', () => {
let comp: StartsWithTextComponent;
diff --git a/src/app/shared/testing/css-variable-service.stub.ts b/src/app/shared/testing/css-variable-service.stub.ts
index 6159d89655..2f5c647945 100644
--- a/src/app/shared/testing/css-variable-service.stub.ts
+++ b/src/app/shared/testing/css-variable-service.stub.ts
@@ -1,10 +1,11 @@
import { Observable, of as observableOf } from 'rxjs';
+import { KeyValuePair } from '../key-value-pair.model';
const variables = {
- smMin: '576px,',
- mdMin: '768px,',
- lgMin: '992px',
- xlMin: '1200px',
+ '--bs-sm-min': '576px,',
+ '--bs-md-min': '768px,',
+ '--bs-lg-min': '992px',
+ '--bs-xl-min': '1200px',
} as any;
export class CSSVariableServiceStub {
@@ -19,4 +20,16 @@ export class CSSVariableServiceStub {
addCSSVariable(name: string, value: string): void {
/**/
}
+
+ addCSSVariables(variablesToAdd: KeyValuePair[]): void {
+ /**/
+ }
+
+ clearCSSVariables(): void {
+ /**/
+ }
+
+ getCSSVariablesFromStylesheets(document: Document): void {
+ /**/
+ }
}
diff --git a/src/app/shared/testing/group-mock.ts b/src/app/shared/testing/group-mock.ts
index a6db4c922e..0d6f924c01 100644
--- a/src/app/shared/testing/group-mock.ts
+++ b/src/app/shared/testing/group-mock.ts
@@ -1,6 +1,5 @@
import { Group } from '../../core/eperson/models/group.model';
import { EPersonMock } from './eperson.mock';
-import { of } from 'rxjs';
import { createSuccessfulRemoteDataObject$ } from '../remote-data.utils';
export const GroupMock2: Group = Object.assign(new Group(), {
diff --git a/src/app/shared/truncatable/truncatable.reducer.spec.ts b/src/app/shared/truncatable/truncatable.reducer.spec.ts
index 841ec5e367..9866f382f7 100644
--- a/src/app/shared/truncatable/truncatable.reducer.spec.ts
+++ b/src/app/shared/truncatable/truncatable.reducer.spec.ts
@@ -1,3 +1,4 @@
+// eslint-disable-next-line import/no-namespace
import * as deepFreeze from 'deep-freeze';
import { truncatableReducer } from './truncatable.reducer';
diff --git a/src/app/shared/upload/file-dropzone-no-uploader/file-dropzone-no-uploader.component.ts b/src/app/shared/upload/file-dropzone-no-uploader/file-dropzone-no-uploader.component.ts
index 58960af19e..06636f4256 100644
--- a/src/app/shared/upload/file-dropzone-no-uploader/file-dropzone-no-uploader.component.ts
+++ b/src/app/shared/upload/file-dropzone-no-uploader/file-dropzone-no-uploader.component.ts
@@ -1,5 +1,5 @@
import { Component, EventEmitter, HostListener, Input, OnInit, Output } from '@angular/core';
-import { uniqueId } from 'lodash';
+import uniqueId from 'lodash/uniqueId';
import { FileUploader } from 'ng2-file-upload';
import { Observable, of as observableOf } from 'rxjs';
import { UploaderOptions } from '../uploader/uploader-options.model';
diff --git a/src/app/shared/upload/uploader/uploader.component.ts b/src/app/shared/upload/uploader/uploader.component.ts
index 50e7478157..14b1ca9b94 100644
--- a/src/app/shared/upload/uploader/uploader.component.ts
+++ b/src/app/shared/upload/uploader/uploader.component.ts
@@ -2,7 +2,7 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Ho
import { of as observableOf } from 'rxjs';
import { FileUploader } from 'ng2-file-upload';
-import { uniqueId } from 'lodash';
+import uniqueId from 'lodash/uniqueId';
import { ScrollToService } from '@nicky-lenaers/ngx-scroll-to';
import { UploaderOptions } from './uploader-options.model';
diff --git a/src/app/shared/utils/file-size-pipe.ts b/src/app/shared/utils/file-size-pipe.ts
index 2d219cdaf4..934f3ee67a 100644
--- a/src/app/shared/utils/file-size-pipe.ts
+++ b/src/app/shared/utils/file-size-pipe.ts
@@ -1,4 +1,5 @@
import { Pipe, PipeTransform } from '@angular/core';
+// eslint-disable-next-line import/no-namespace
import * as fileSize from 'filesize';
/*
diff --git a/src/app/shared/utils/markdown.pipe.ts b/src/app/shared/utils/markdown.pipe.ts
index f7e1032cac..e494a82613 100644
--- a/src/app/shared/utils/markdown.pipe.ts
+++ b/src/app/shared/utils/markdown.pipe.ts
@@ -1,9 +1,14 @@
-import { Inject, InjectionToken, Pipe, PipeTransform } from '@angular/core';
-import MarkdownIt from 'markdown-it';
-import * as sanitizeHtml from 'sanitize-html';
+import { Inject, InjectionToken, Pipe, PipeTransform, SecurityContext } from '@angular/core';
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
import { environment } from '../../../environments/environment';
+const markdownItLoader = async () => (await import('markdown-it')).default;
+type LazyMarkdownIt = ReturnType;
+const MARKDOWN_IT = new InjectionToken(
+ 'Lazily loaded MarkdownIt',
+ { providedIn: 'root', factory: markdownItLoader }
+);
+
const mathjaxLoader = async () => (await import('markdown-it-mathjax3')).default;
type Mathjax = ReturnType;
const MATHJAX = new InjectionToken(
@@ -11,6 +16,13 @@ const MATHJAX = new InjectionToken(
{ providedIn: 'root', factory: mathjaxLoader }
);
+const sanitizeHtmlLoader = async () => (await import('sanitize-html') as any).default;
+type SanitizeHtml = ReturnType;
+const SANITIZE_HTML = new InjectionToken(
+ 'Lazily loaded sanitize-html',
+ { providedIn: 'root', factory: sanitizeHtmlLoader }
+);
+
/**
* Pipe for rendering markdown and mathjax.
* - markdown will only be rendered if {@link MarkdownConfig#enabled} is true
@@ -31,7 +43,9 @@ export class MarkdownPipe implements PipeTransform {
constructor(
protected sanitizer: DomSanitizer,
+ @Inject(MARKDOWN_IT) private markdownIt: LazyMarkdownIt,
@Inject(MATHJAX) private mathjax: Mathjax,
+ @Inject(SANITIZE_HTML) private sanitizeHtml: SanitizeHtml,
) {
}
@@ -39,15 +53,17 @@ export class MarkdownPipe implements PipeTransform {
if (!environment.markdown.enabled) {
return value;
}
+ const MarkdownIt = await this.markdownIt;
const md = new MarkdownIt({
html: true,
linkify: true,
});
+
+ let html: string;
if (environment.markdown.mathjax) {
md.use(await this.mathjax);
- }
- return this.sanitizer.bypassSecurityTrustHtml(
- sanitizeHtml(md.render(value), {
+ const sanitizeHtml = await this.sanitizeHtml;
+ html = sanitizeHtml(md.render(value), {
// sanitize-html doesn't let through SVG by default, so we extend its allowlists to cover MathJax SVG
allowedTags: [
...sanitizeHtml.defaults.allowedTags,
@@ -77,7 +93,11 @@ export class MarkdownPipe implements PipeTransform {
parser: {
lowerCaseAttributeNames: false,
},
- })
- );
+ });
+ } else {
+ html = this.sanitizer.sanitize(SecurityContext.HTML, md.render(value));
+ }
+
+ return this.sanitizer.bypassSecurityTrustHtml(html);
}
}
diff --git a/src/app/statistics/statistics.service.spec.ts b/src/app/statistics/statistics.service.spec.ts
index 76eadb2d31..b573daf476 100644
--- a/src/app/statistics/statistics.service.spec.ts
+++ b/src/app/statistics/statistics.service.spec.ts
@@ -2,7 +2,7 @@ import { StatisticsService } from './statistics.service';
import { RequestService } from '../core/data/request.service';
import { HALEndpointServiceStub } from '../shared/testing/hal-endpoint-service.stub';
import { getMockRequestService } from '../shared/mocks/request.service.mock';
-import { isEqual } from 'lodash';
+import isEqual from 'lodash/isEqual';
import { DSpaceObjectType } from '../core/shared/dspace-object-type.model';
import { SearchOptions } from '../shared/search/models/search-options.model';
import { RestRequest } from '../core/data/rest-request.model';
diff --git a/src/app/submission/import-external/import-external-collection/submission-import-external-collection.component.spec.ts b/src/app/submission/import-external/import-external-collection/submission-import-external-collection.component.spec.ts
index 4f3c54b642..0f0ee579a1 100644
--- a/src/app/submission/import-external/import-external-collection/submission-import-external-collection.component.spec.ts
+++ b/src/app/submission/import-external/import-external-collection/submission-import-external-collection.component.spec.ts
@@ -1,4 +1,4 @@
-import { Component, EventEmitter, NO_ERRORS_SCHEMA } from '@angular/core';
+import { Component, NO_ERRORS_SCHEMA } from '@angular/core';
import { ComponentFixture, fakeAsync, inject, TestBed, waitForAsync } from '@angular/core/testing';
import { TranslateModule } from '@ngx-translate/core';
import { createTestComponent } from '../../../shared/testing/utils.test';
diff --git a/src/app/submission/objects/submission-objects.effects.ts b/src/app/submission/objects/submission-objects.effects.ts
index 4a7907cab1..98646009d5 100644
--- a/src/app/submission/objects/submission-objects.effects.ts
+++ b/src/app/submission/objects/submission-objects.effects.ts
@@ -2,7 +2,9 @@ import { Injectable } from '@angular/core';
import { Actions, createEffect, ofType } from '@ngrx/effects';
import { Store } from '@ngrx/store';
import { TranslateService } from '@ngx-translate/core';
-import { findKey, isEqual, union } from 'lodash';
+import findKey from 'lodash/findKey';
+import isEqual from 'lodash/isEqual';
+import union from 'lodash/union';
import { from as observableFrom, Observable, of as observableOf } from 'rxjs';
import { catchError, filter, map, mergeMap, switchMap, take, tap, withLatestFrom } from 'rxjs/operators';
diff --git a/src/app/submission/objects/submission-objects.reducer.ts b/src/app/submission/objects/submission-objects.reducer.ts
index 564e5a701b..a05bf05f52 100644
--- a/src/app/submission/objects/submission-objects.reducer.ts
+++ b/src/app/submission/objects/submission-objects.reducer.ts
@@ -1,5 +1,8 @@
import { hasValue, isEmpty, isNotEmpty, isNotNull, isUndefined } from '../../shared/empty.util';
-import { differenceWith, findKey, isEqual, uniqWith } from 'lodash';
+import differenceWith from 'lodash/differenceWith';
+import findKey from 'lodash/findKey';
+import isEqual from 'lodash/isEqual';
+import uniqWith from 'lodash/uniqWith';
import {
ChangeSubmissionCollectionAction,
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 6b9d542abc..0796da5a64 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
@@ -81,7 +81,7 @@
- 5">
+ 5" [disabled]="field.id === 'jurisdiction' && defaultJurisdiction !== undefined && defaultJurisdiction !== 'none'">
{{ option.label }}
@@ -136,7 +136,7 @@
- {{ 'submission.sections.ccLicense.confirmation' | translate }}
+ {{ 'submission.sections.ccLicense.confirmation' | translate }}
diff --git a/src/app/submission/sections/cc-license/submission-section-cc-licenses.component.spec.ts b/src/app/submission/sections/cc-license/submission-section-cc-licenses.component.spec.ts
index 3757ca87b8..bb83e48d21 100644
--- a/src/app/submission/sections/cc-license/submission-section-cc-licenses.component.spec.ts
+++ b/src/app/submission/sections/cc-license/submission-section-cc-licenses.component.spec.ts
@@ -16,6 +16,8 @@ import { JsonPatchOperationsBuilder } from '../../../core/json-patch/builder/jso
import { SubmissionCcLicenseUrlDataService } from '../../../core/submission/submission-cc-license-url-data.service';
import { createSuccessfulRemoteDataObject$ } from '../../../shared/remote-data.utils';
import { createPaginatedList } from '../../../shared/testing/utils.test';
+import {ConfigurationDataService} from '../../../core/data/configuration-data.service';
+import {ConfigurationProperty} from '../../../core/shared/configuration-property.model';
describe('SubmissionSectionCcLicensesComponent', () => {
@@ -156,6 +158,14 @@ describe('SubmissionSectionCcLicensesComponent', () => {
remove: undefined,
});
+ const configurationDataService = jasmine.createSpyObj('configurationDataService', {
+ findByPropertyName: createSuccessfulRemoteDataObject$({
+ ... new ConfigurationProperty(),
+ name: 'cc.license.jurisdiction',
+ values: ['mock-jurisdiction-value'],
+ }),
+ });
+
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [
@@ -170,6 +180,7 @@ describe('SubmissionSectionCcLicensesComponent', () => {
{ provide: SubmissionCcLicenseUrlDataService, useValue: submissionCcLicenseUrlDataService },
{ provide: SectionsService, useValue: sectionService },
{ provide: JsonPatchOperationsBuilder, useValue: operationsBuilder },
+ { provide: ConfigurationDataService, useValue: configurationDataService },
{ provide: 'collectionIdProvider', useValue: 'test collection id' },
{ provide: 'sectionDataProvider', useValue: Object.assign({}, sectionObject) },
{ provide: 'submissionIdProvider', useValue: 'test submission id' },
diff --git a/src/app/submission/sections/cc-license/submission-section-cc-licenses.component.ts b/src/app/submission/sections/cc-license/submission-section-cc-licenses.component.ts
index 9e6a5ae07f..c8cd898f96 100644
--- a/src/app/submission/sections/cc-license/submission-section-cc-licenses.component.ts
+++ b/src/app/submission/sections/cc-license/submission-section-cc-licenses.component.ts
@@ -1,7 +1,11 @@
import { Component, Inject } from '@angular/core';
import { Observable, of as observableOf, Subscription } from 'rxjs';
import { Field, Option, SubmissionCcLicence } from '../../../core/submission/models/submission-cc-license.model';
-import { getFirstSucceededRemoteData, getRemoteDataPayload } from '../../../core/shared/operators';
+import {
+ getFirstCompletedRemoteData,
+ getFirstSucceededRemoteData,
+ getRemoteDataPayload
+} from '../../../core/shared/operators';
import { distinctUntilChanged, filter, map, take } from 'rxjs/operators';
import { SubmissionCcLicenseDataService } from '../../../core/submission/submission-cc-license-data.service';
import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';
@@ -15,6 +19,7 @@ import { JsonPatchOperationPathCombiner } from '../../../core/json-patch/builder
import { isNotEmpty } from '../../../shared/empty.util';
import { JsonPatchOperationsBuilder } from '../../../core/json-patch/builder/json-patch-operations-builder';
import { SubmissionCcLicenseUrlDataService } from '../../../core/submission/submission-cc-license-url-data.service';
+import {ConfigurationDataService} from '../../../core/data/configuration-data.service';
/**
* This component represents the submission section to select the Creative Commons license.
@@ -60,6 +65,11 @@ export class SubmissionSectionCcLicensesComponent extends SectionModelComponent
*/
protected modalRef: NgbModalRef;
+ /**
+ * Default jurisdiction configured
+ */
+ defaultJurisdiction: string;
+
/**
* The Creative Commons link saved in the workspace item.
*/
@@ -83,6 +93,7 @@ export class SubmissionSectionCcLicensesComponent extends SectionModelComponent
protected submissionCcLicensesDataService: SubmissionCcLicenseDataService,
protected submissionCcLicenseUrlDataService: SubmissionCcLicenseUrlDataService,
protected operationsBuilder: JsonPatchOperationsBuilder,
+ protected configService: ConfigurationDataService,
@Inject('collectionIdProvider') public injectedCollectionId: string,
@Inject('sectionDataProvider') public injectedSectionData: SectionDataObject,
@Inject('submissionIdProvider') public injectedSubmissionId: string
@@ -156,6 +167,9 @@ export class SubmissionSectionCcLicensesComponent extends SectionModelComponent
* @param field the field for which to get the selected option value.
*/
getSelectedOption(ccLicense: SubmissionCcLicence, field: Field): Option {
+ if (field.id === 'jurisdiction' && this.defaultJurisdiction !== undefined && this.defaultJurisdiction !== 'none') {
+ return field.enums.find(option => option.id === this.defaultJurisdiction);
+ }
return this.data.ccLicense.fields[field.id];
}
@@ -256,6 +270,17 @@ export class SubmissionSectionCcLicensesComponent extends SectionModelComponent
).subscribe(
(licenses) => this.submissionCcLicenses = licenses
),
+ this.configService.findByPropertyName('cc.license.jurisdiction').pipe(
+ getFirstCompletedRemoteData(),
+ getRemoteDataPayload()
+ ).subscribe((remoteData) => {
+ if (remoteData === undefined || remoteData.values.length === 0) {
+ // No value configured, use blank value (International jurisdiction)
+ this.defaultJurisdiction = '';
+ } else {
+ this.defaultJurisdiction = remoteData.values[0];
+ }
+ })
);
}
diff --git a/src/app/submission/sections/form/section-form-operations.service.ts b/src/app/submission/sections/form/section-form-operations.service.ts
index 7c6c242d42..778063dd31 100644
--- a/src/app/submission/sections/form/section-form-operations.service.ts
+++ b/src/app/submission/sections/form/section-form-operations.service.ts
@@ -1,6 +1,7 @@
import { Injectable } from '@angular/core';
-import { isEqual, isObject } from 'lodash';
+import isEqual from 'lodash/isEqual';
+import isObject from 'lodash/isObject';
import {
DYNAMIC_FORM_CONTROL_TYPE_ARRAY,
DYNAMIC_FORM_CONTROL_TYPE_GROUP,
diff --git a/src/app/submission/sections/form/section-form.component.ts b/src/app/submission/sections/form/section-form.component.ts
index 6299b0ccdc..326d277ffb 100644
--- a/src/app/submission/sections/form/section-form.component.ts
+++ b/src/app/submission/sections/form/section-form.component.ts
@@ -4,7 +4,8 @@ import { DynamicFormControlEvent, DynamicFormControlModel } from '@ng-dynamic-fo
import { combineLatest as observableCombineLatest, Observable, Subscription } from 'rxjs';
import { distinctUntilChanged, filter, find, map, mergeMap, take, tap } from 'rxjs/operators';
import { TranslateService } from '@ngx-translate/core';
-import { findIndex, isEqual } from 'lodash';
+import findIndex from 'lodash/findIndex';
+import isEqual from 'lodash/isEqual';
import { FormBuilderService } from '../../../shared/form/builder/form-builder.service';
import { FormComponent } from '../../../shared/form/form.component';
diff --git a/src/app/submission/sections/sections.directive.ts b/src/app/submission/sections/sections.directive.ts
index d82cff82d6..de6d43e1eb 100644
--- a/src/app/submission/sections/sections.directive.ts
+++ b/src/app/submission/sections/sections.directive.ts
@@ -2,7 +2,7 @@ import { ChangeDetectorRef, Directive, Input, OnDestroy, OnInit } from '@angular
import { Observable, Subscription } from 'rxjs';
import { map } from 'rxjs/operators';
-import { uniq } from 'lodash';
+import uniq from 'lodash/uniq';
import { SectionsService } from './sections.service';
import { hasValue, isNotEmpty, isNotNull } from '../../shared/empty.util';
diff --git a/src/app/submission/sections/sections.service.ts b/src/app/submission/sections/sections.service.ts
index 56b2356ed7..cc2802dba7 100644
--- a/src/app/submission/sections/sections.service.ts
+++ b/src/app/submission/sections/sections.service.ts
@@ -5,7 +5,9 @@ import { distinctUntilChanged, filter, map, mergeMap, take } from 'rxjs/operator
import { Store } from '@ngrx/store';
import { TranslateService } from '@ngx-translate/core';
import { ScrollToConfigOptions, ScrollToService } from '@nicky-lenaers/ngx-scroll-to';
-import { findIndex, findKey, isEqual } from 'lodash';
+import findIndex from 'lodash/findIndex';
+import findKey from 'lodash/findKey';
+import isEqual from 'lodash/isEqual';
import { SubmissionState } from '../submission.reducers';
import { hasValue, isEmpty, isNotEmpty, isNotUndefined } from '../../shared/empty.util';
diff --git a/src/app/submission/submit/submission-submit.component.spec.ts b/src/app/submission/submit/submission-submit.component.spec.ts
index 1b76082d1b..da569e4e5d 100644
--- a/src/app/submission/submit/submission-submit.component.spec.ts
+++ b/src/app/submission/submit/submission-submit.component.spec.ts
@@ -1,4 +1,4 @@
-import { waitForAsync, ComponentFixture, fakeAsync, TestBed } from '@angular/core/testing';
+import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { ActivatedRoute, Router } from '@angular/router';
import { NO_ERRORS_SCHEMA, ViewContainerRef } from '@angular/core';
diff --git a/src/assets/i18n/ar.json5 b/src/assets/i18n/ar.json5
index bfe0ae186d..58c8c61eb5 100644
--- a/src/assets/i18n/ar.json5
+++ b/src/assets/i18n/ar.json5
@@ -207,6 +207,8 @@
// "admin.registries.bitstream-formats.table.name": "Name",
// TODO New key - Add a translation
"admin.registries.bitstream-formats.table.name": "Name",
+ // TODO New key - Add a translation
+ "admin.registries.bitstream-formats.table.id" : "ID",
// "admin.registries.bitstream-formats.table.return": "Return",
// TODO New key - Add a translation
@@ -311,6 +313,8 @@
// "admin.registries.schema.fields.table.field": "Field",
// TODO New key - Add a translation
"admin.registries.schema.fields.table.field": "Field",
+ // TODO New key - Add a translation
+ "admin.registries.schema.fields.table.id" : "ID",
// "admin.registries.schema.fields.table.scopenote": "Scope Note",
// TODO New key - Add a translation
@@ -6745,4 +6749,4 @@
"workflow-item.send-back.button.confirm": "Send back"
-}
\ No newline at end of file
+}
diff --git a/src/assets/i18n/bn.json5 b/src/assets/i18n/bn.json5
index a29a9a9c40..8020ee7a96 100644
--- a/src/assets/i18n/bn.json5
+++ b/src/assets/i18n/bn.json5
@@ -165,6 +165,8 @@
// "admin.registries.bitstream-formats.table.name": "Name",
"admin.registries.bitstream-formats.table.name": "নাম",
+ // TODO New key - Add a translation
+ "admin.registries.bitstream-formats.table.id" : "ID",
// "admin.registries.bitstream-formats.table.return": "Back",
"admin.registries.bitstream-formats.table.return": "পেছনে",
@@ -244,6 +246,8 @@
// "admin.registries.schema.fields.table.field": "Field",
"admin.registries.schema.fields.table.field": "ক্ষেত্র",
+ // TODO New key - Add a translation
+ "admin.registries.schema.fields.table.id" : "ID",
// "admin.registries.schema.fields.table.scopenote": "Scope Note",
"admin.registries.schema.fields.table.scopenote": "স্কোপ নোট",
@@ -6127,4 +6131,4 @@
"idle-modal.extend-session": "সেশন প্রসারিত করুন"
-}
\ No newline at end of file
+}
diff --git a/src/assets/i18n/cs.json5 b/src/assets/i18n/cs.json5
index 718d715cbf..12b67e54e2 100644
--- a/src/assets/i18n/cs.json5
+++ b/src/assets/i18n/cs.json5
@@ -202,6 +202,8 @@
// "admin.registries.bitstream-formats.table.name": "Name",
// TODO New key - Add a translation
"admin.registries.bitstream-formats.table.name": "Name",
+ // TODO New key - Add a translation
+ "admin.registries.bitstream-formats.table.id" : "ID",
// "admin.registries.bitstream-formats.table.return": "Return",
// TODO New key - Add a translation
@@ -294,6 +296,8 @@
// "admin.registries.schema.fields.table.field": "Field",
"admin.registries.schema.fields.table.field": "Pole",
+ // TODO New key - Add a translation
+ "admin.registries.schema.fields.table.id" : "ID",
// "admin.registries.schema.fields.table.scopenote": "Scope Note",
"admin.registries.schema.fields.table.scopenote": "Poznámka o rozsahu",
@@ -6612,4 +6616,4 @@
"workflow-item.send-back.button.confirm": "Send back"
-}
\ No newline at end of file
+}
diff --git a/src/assets/i18n/de.json5 b/src/assets/i18n/de.json5
index cbd11e5c3d..80a6b5605a 100644
--- a/src/assets/i18n/de.json5
+++ b/src/assets/i18n/de.json5
@@ -177,6 +177,8 @@
// "admin.registries.bitstream-formats.table.name": "Name",
"admin.registries.bitstream-formats.table.name": "Name",
+ // TODO New key - Add a translation
+ "admin.registries.bitstream-formats.table.id" : "ID",
// "admin.registries.bitstream-formats.table.return": "Return",
"admin.registries.bitstream-formats.table.return": "Zurück",
@@ -256,6 +258,8 @@
// "admin.registries.schema.fields.table.field": "Field",
"admin.registries.schema.fields.table.field": "Feld",
+ // TODO New key - Add a translation
+ "admin.registries.schema.fields.table.id" : "ID",
// "admin.registries.schema.fields.table.scopenote": "Scope Note",
"admin.registries.schema.fields.table.scopenote": "Gültigkeitsbereich",
diff --git a/src/assets/i18n/el.json5 b/src/assets/i18n/el.json5
index d99856272f..35cad25fd2 100644
--- a/src/assets/i18n/el.json5
+++ b/src/assets/i18n/el.json5
@@ -76,7 +76,7 @@
"admin.access-control.groups.form.delete-group.modal.info": "Είστε βέβαιοι ότι θέλετε να διαγράψετε την ομάδα \"{{ dsoName }}\"",
"admin.access-control.groups.form.groupCommunity": "Κοινότητα ή Συλλογή",
"admin.access-control.groups.form.groupDescription": "Περιγραφή",
- "admin.access-control.groups.form.groupName": "Ονομα ομάδας",
+ "admin.access-control.groups.form.groupName": "Όνομα ομάδας",
"admin.access-control.groups.form.head.create": "Δημιουργία ομάδας",
"admin.access-control.groups.form.head.edit": "Επεξεργασία ομάδας",
"admin.access-control.groups.form.members-list.button.see-all": "Περιήγηση σε όλα",
@@ -202,6 +202,8 @@
"admin.registries.bitstream-formats.table.internal": "εσωτερικός",
"admin.registries.bitstream-formats.table.mimetype": "mimetype",
"admin.registries.bitstream-formats.table.name": "Ονομα",
+ // TODO New key - Add a translation
+ "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": "Υποστηρίζεται",
@@ -227,6 +229,8 @@
"admin.registries.schema.fields.no-items": "Δεν υπάρχουν πεδία μεταδεδομένων για εμφάνιση.",
"admin.registries.schema.fields.table.delete": "Διαγραφή επιλεγμένων",
"admin.registries.schema.fields.table.field": "Πεδίο",
+ // TODO New key - Add a translation
+ "admin.registries.schema.fields.table.id" : "ID",
"admin.registries.schema.fields.table.scopenote": "Πεδίο εφαρμογής",
"admin.registries.schema.form.create": "Δημιουργία πεδίου μεταδεδομένων",
"admin.registries.schema.form.edit": "Επεξεργασία πεδίου μεταδεδομένων",
diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5
index 597f226cc7..d043d61ae5 100644
--- a/src/assets/i18n/en.json5
+++ b/src/assets/i18n/en.json5
@@ -130,6 +130,7 @@
"admin.registries.bitstream-formats.table.mimetype": "MIME Type",
"admin.registries.bitstream-formats.table.name": "Name",
+ "admin.registries.bitstream-formats.table.id" : "ID",
"admin.registries.bitstream-formats.table.return": "Back",
@@ -184,6 +185,7 @@
"admin.registries.schema.fields.table.delete": "Delete selected",
"admin.registries.schema.fields.table.field": "Field",
+ "admin.registries.schema.fields.table.id" : "ID",
"admin.registries.schema.fields.table.scopenote": "Scope Note",
@@ -1234,12 +1236,22 @@
"cookies.consent.app.required.title": "(always required)",
+ "cookies.consent.app.disable-all.description": "Use this switch to enable or disable all services.",
+
+ "cookies.consent.app.disable-all.title": "Enable or disable all services",
+
"cookies.consent.update": "There were changes since your last visit, please update your consent.",
"cookies.consent.close": "Close",
"cookies.consent.decline": "Decline",
+ "cookies.consent.ok": "That's ok",
+
+ "cookies.consent.save": "Save",
+
+ "cookies.consent.content-notice.title": "Cookie Consent",
+
"cookies.consent.content-notice.description": "We collect and process your personal information for the following purposes:
Authentication, Preferences, Acknowledgement and Statistics .
To learn more, please read our {privacyPolicy}.",
"cookies.consent.content-notice.description.no-privacy": "We collect and process your personal information for the following purposes:
Authentication, Preferences, Acknowledgement and Statistics .",
@@ -1254,7 +1266,9 @@
"cookies.consent.content-modal.title": "Information that we collect",
+ "cookies.consent.content-modal.services": "services",
+ "cookies.consent.content-modal.service": "service",
"cookies.consent.app.title.authentication": "Authentication",
@@ -1284,7 +1298,6 @@
"cookies.consent.app.description.google-recaptcha": "We use google reCAPTCHA service during registration and password recovery",
-
"cookies.consent.purpose.functional": "Functional",
"cookies.consent.purpose.statistical": "Statistical",
@@ -1307,6 +1320,8 @@
"curation-task.task.vscan.label": "Virus Scan",
+ "curation-task.task.registerdoi.label": "Register DOI",
+
"curation.form.task-select.label": "Task:",
@@ -1353,6 +1368,8 @@
"dso-selector.create.community.head": "New community",
+ "dso-selector.create.community.or-divider": "or",
+
"dso-selector.create.community.sub-level": "Create a new community in",
"dso-selector.create.community.top-level": "Create a new top-level community",
@@ -1387,6 +1404,8 @@
"dso-selector.set-scope.community.button": "Search all of DSpace",
+ "dso-selector.set-scope.community.or-divider": "or",
+
"dso-selector.set-scope.community.input-header": "Search for a community or collection",
"dso-selector.claim.item.head": "Profile tips",
@@ -1397,6 +1416,8 @@
"dso-selector.claim.item.create-from-scratch": "Create a new one",
+ "dso-selector.results-could-not-be-retrieved": "Something went wrong, please refresh again ↻",
+
"confirmation-modal.export-metadata.header": "Export metadata for {{ dsoName }}",
"confirmation-modal.export-metadata.info": "Are you sure you want to export metadata for {{ dsoName }}",
@@ -1674,13 +1695,13 @@
"health-page.section.geoIp.title": "GeoIp",
- "health-page.section.solrAuthorityCore.title": "Sor: authority core",
+ "health-page.section.solrAuthorityCore.title": "Solr: authority core",
- "health-page.section.solrOaiCore.title": "Sor: oai core",
+ "health-page.section.solrOaiCore.title": "Solr: oai core",
- "health-page.section.solrSearchCore.title": "Sor: search core",
+ "health-page.section.solrSearchCore.title": "Solr: search core",
- "health-page.section.solrStatisticsCore.title": "Sor: statistics core",
+ "health-page.section.solrStatisticsCore.title": "Solr: statistics core",
"health-page.section-info.app.title": "Application Backend",
@@ -2862,7 +2883,9 @@
"nav.login": "Log In",
- "nav.logout": "User profile menu and Log Out",
+ "nav.user-profile-menu-and-logout": "User profile menu and Log Out",
+
+ "nav.logout": "Log Out",
"nav.main.description": "Main navigation bar",
@@ -4022,6 +4045,8 @@
"submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfProject": "Funder of the Project",
+ "submission.sections.describe.relationship-lookup.search-tab.tab-title.isPublicationOfAuthor": "Publication of the Author",
+
"submission.sections.describe.relationship-lookup.selection-tab.title.openAIREFunding": "Funding OpenAIRE API",
"submission.sections.describe.relationship-lookup.selection-tab.title.isProjectOfPublication": "Project",
@@ -4066,6 +4091,8 @@
"submission.sections.describe.relationship-lookup.title.isChildOrgUnitOf": "Parent Organizational Unit",
+ "submission.sections.describe.relationship-lookup.title.isPublicationOfAuthor": "Publication",
+
"submission.sections.describe.relationship-lookup.search-tab.toggle-dropdown": "Toggle dropdown",
"submission.sections.describe.relationship-lookup.selection-tab.settings": "Settings",
@@ -4811,4 +4838,5 @@
"person.orcid.registry.auth": "ORCID Authorizations",
"home.recent-submissions.head": "Recent Submissions",
+ "listable-notification-object.default-message": "This object couldn't be retrieved",
}
diff --git a/src/assets/i18n/es.json5 b/src/assets/i18n/es.json5
index c641d683c4..02169514c4 100644
--- a/src/assets/i18n/es.json5
+++ b/src/assets/i18n/es.json5
@@ -193,6 +193,8 @@
// "admin.registries.bitstream-formats.table.name": "Name",
"admin.registries.bitstream-formats.table.name": "Nombre",
+ // TODO New key - Add a translation
+ "admin.registries.bitstream-formats.table.id" : "ID",
// "admin.registries.bitstream-formats.table.return": "Back",
"admin.registries.bitstream-formats.table.return": "Atrás",
@@ -272,6 +274,8 @@
// "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.scopenote": "Scope Note",
"admin.registries.schema.fields.table.scopenote": "Nota de alcance",
@@ -2426,16 +2430,16 @@
// "health-page.section.geoIp.title": "GeoIp",
"health-page.section.geoIp.title": "GeoIp",
- // "health-page.section.solrAuthorityCore.title": "Sor: authority core",
+ // "health-page.section.solrAuthorityCore.title": "Solr: authority core",
"health-page.section.solrAuthorityCore.title": "Solr: authority core",
- // "health-page.section.solrOaiCore.title": "Sor: oai core",
+ // "health-page.section.solrOaiCore.title": "Solr: oai core",
"health-page.section.solrOaiCore.title": "Solr: oai core",
- // "health-page.section.solrSearchCore.title": "Sor: search core",
+ // "health-page.section.solrSearchCore.title": "Solr: search core",
"health-page.section.solrSearchCore.title": "Solr: search core",
- // "health-page.section.solrStatisticsCore.title": "Sor: statistics core",
+ // "health-page.section.solrStatisticsCore.title": "Solr: statistics core",
"health-page.section.solrStatisticsCore.title": "Solr: statistics core",
// "health-page.section-info.app.title": "Application Backend",
@@ -6989,4 +6993,4 @@
-}
\ No newline at end of file
+}
diff --git a/src/assets/i18n/fi.json5 b/src/assets/i18n/fi.json5
index 866cb34736..1ef67e2a48 100644
--- a/src/assets/i18n/fi.json5
+++ b/src/assets/i18n/fi.json5
@@ -156,6 +156,8 @@
// "admin.registries.bitstream-formats.table.name": "Name",
"admin.registries.bitstream-formats.table.name": "Nimi",
+ // TODO New key - Add a translation
+ "admin.registries.bitstream-formats.table.id" : "ID",
// "admin.registries.bitstream-formats.table.return": "Return",
"admin.registries.bitstream-formats.table.return": "Palaa",
@@ -235,6 +237,8 @@
// "admin.registries.schema.fields.table.field": "Field",
"admin.registries.schema.fields.table.field": "Kenttä",
+ // TODO New key - Add a translation
+ "admin.registries.schema.fields.table.id" : "ID",
// "admin.registries.schema.fields.table.scopenote": "Scope Note",
"admin.registries.schema.fields.table.scopenote": "Soveltamisala",
diff --git a/src/assets/i18n/fr.json5 b/src/assets/i18n/fr.json5
index ce258c1dda..fcfd70be70 100644
--- a/src/assets/i18n/fr.json5
+++ b/src/assets/i18n/fr.json5
@@ -176,6 +176,8 @@
// "admin.registries.bitstream-formats.table.name": "Name",
"admin.registries.bitstream-formats.table.name": "Nom",
+ // TODO New key - Add a translation
+ "admin.registries.bitstream-formats.table.id" : "ID",
// "admin.registries.bitstream-formats.table.return": "Back",
"admin.registries.bitstream-formats.table.return": "Retour",
@@ -251,6 +253,8 @@
// "admin.registries.schema.fields.table.field": "Field",
"admin.registries.schema.fields.table.field": "Champ",
+ // TODO New key - Add a translation
+ "admin.registries.schema.fields.table.id" : "ID",
// "admin.registries.schema.fields.table.scopenote": "Scope Note",
"admin.registries.schema.fields.table.scopenote": "Note d'application",
@@ -3509,6 +3513,9 @@
// "menu.section.export_metadata": "Metadata",
"menu.section.export_metadata": "Métadonnées",
+
+ // "menu.section.export_batch": "Batch Export (ZIP)",
+ "menu.section.export_batch": "Exporter en lot (ZIP)",
// "menu.section.icon.access_control": "Access Control menu section",
"menu.section.icon.access_control": "Section du menu relative au contrôle d'accès",
@@ -4016,6 +4023,32 @@
// "process.overview.new": "New",
"process.overview.new": "Nouveau",
+
+ // "process.overview.table.actions": "Actions",
+ "process.overview.table.actions": "Actions",
+
+ // "process.overview.delete": "Delete {{count}} processes",
+ "process.overview.delete": "Supprimer {{count}} processus",
+
+ // "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}} processus sont en train d'être supprimés. Patientez jusqu'à ce que la suppression soit terminée. Notez que cela peut prendre un certain temps.",
+
+ // "process.overview.delete.body": "Are you sure you want to delete {{count}} process(es)?",
+ "process.overview.delete.body": "Êtes-vous certain-e de vouloir supprimer {{count}} processus?",
+
+ // "process.overview.delete.header": "Delete processes",
+ "process.overview.delete.header": "Supprimer les processus",
+
+ // "process.bulk.delete.error.head": "Error on deleteing process",
+ "process.bulk.delete.error.head": "Erreur lors de la suppression de processus",
+
+ // "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": "Le processus numéro {{processId}} n'a pu être supprimé. Les processus restants continueront à être supprimés. ",
+
+ // "process.bulk.delete.success": "{{count}} process(es) have been succesfully deleted",
+ "process.bulk.delete.success": "{{count}} processus ont été supprimés.",
+
+
// "profile.breadcrumbs": "Update Profile",
"profile.breadcrumbs": "Mise à jour profil",
@@ -5018,6 +5051,30 @@
// "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 (DOI)",
+
+ // "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.loading": "Loading ...",
"submission.import-external.source.loading": "En cours de chargement ...",
@@ -5039,6 +5096,9 @@
// "submission.import-external.source.pubmed": "Pubmed",
"submission.import-external.source.pubmed": "Pubmed",
+
+ // "submission.import-external.source.pubmedeu": "Pubmed Europe",
+ "submission.import-external.source.pubmedeu": "Pubmed Europe",
// "submission.import-external.source.lcname": "Library of Congress Names",
"submission.import-external.source.lcname": "Autorités de noms de la Bibliothèque du Congrès",
@@ -5676,6 +5736,95 @@
// "submission.sections.accesses.form.until-placeholder": "Until",
"submission.sections.accesses.form.until-placeholder": "Jusqu'au",
+
+ // "submission.sections.license.granted-label": "I confirm the license above",
+ "submission.sections.license.granted-label": "J'approuve la licence ci-dessus",
+
+ // "submission.sections.license.required": "You must accept the license",
+ "submission.sections.license.required": "Vous devez accepter la licence",
+
+ // "submission.sections.license.notgranted": "You must accept the license",
+ "submission.sections.license.notgranted": "Vous devez accepter la licence",
+
+ // "submission.sections.sherpa.publication.information": "Publication information",
+ "submission.sections.sherpa.publication.information": "Information sur la publication",
+
+ // "submission.sections.sherpa.publication.information.title": "Title",
+ "submission.sections.sherpa.publication.information.title": "Titre",
+
+ // "submission.sections.sherpa.publication.information.issns": "ISSNs",
+ "submission.sections.sherpa.publication.information.issns": "ISSNs",
+
+ // "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": "Éditeur",
+
+ // "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": "Politique de l'éditeur",
+
+ // "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": "L'information ci-dessous provient de Sherpa Romeo. Elle vous permet de savoir quelle version vous êtes autorisé-e à déposer et si une restriction de diffusion (embargo) doit être appliquée. Si vous avez des questions, contactez votre administrateur-trice en utilisant le formulaire en pied de page.",
+
+ // "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": "Les voies de libre accès autorisées par la politique de cette revue sont listées ci-dessous par version d'article. Cliquez sur l'une des voies pour plus de détails.",
+
+ // "submission.sections.sherpa.publisher.policy.more.information": "For more information, please see the following links:",
+ "submission.sections.sherpa.publisher.policy.more.information": "Pour plus d'information, cliquez sur le lien suivant :",
+
+ // "submission.sections.sherpa.publisher.policy.version": "Version",
+ "submission.sections.sherpa.publisher.policy.version": "Version",
+
+ // "submission.sections.sherpa.publisher.policy.embargo": "Embargo",
+ "submission.sections.sherpa.publisher.policy.embargo": "Embargo",
+
+ // "submission.sections.sherpa.publisher.policy.noembargo": "No Embargo",
+ "submission.sections.sherpa.publisher.policy.noembargo": "Aucun embargo",
+
+ // "submission.sections.sherpa.publisher.policy.nolocation": "None",
+ "submission.sections.sherpa.publisher.policy.nolocation": "Aucun",
+
+ // "submission.sections.sherpa.publisher.policy.license": "License",
+ "submission.sections.sherpa.publisher.policy.license": "Licence",
+
+ // "submission.sections.sherpa.publisher.policy.prerequisites": "Prerequisites",
+ "submission.sections.sherpa.publisher.policy.prerequisites": "Prérequis",
+
+ // "submission.sections.sherpa.publisher.policy.location": "Location",
+ "submission.sections.sherpa.publisher.policy.location": "Lieu",
+
+ // "submission.sections.sherpa.publisher.policy.conditions": "Conditions",
+ "submission.sections.sherpa.publisher.policy.conditions": "Conditions",
+
+ // "submission.sections.sherpa.publisher.policy.refresh": "Refresh",
+ "submission.sections.sherpa.publisher.policy.refresh": "Rafraîchir",
+
+ // "submission.sections.sherpa.record.information": "Record Information",
+ "submission.sections.sherpa.record.information": "Information",
+
+ // "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": "Date de création",
+
+ // "submission.sections.sherpa.record.information.date.modified": "Last Modified",
+ "submission.sections.sherpa.record.information.date.modified": "Dernière modification",
+
+ // "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": "Une erreur s'est produite lors de la recherche d'infomation dans Sherpa.",
+
+
// "submission.submit.breadcrumbs": "New submission",
"submission.submit.breadcrumbs": "Nouvelle soumission",
@@ -5759,6 +5908,12 @@
// "submission.workflow.tasks.pool.show-detail": "Show detail",
"submission.workflow.tasks.pool.show-detail": "Afficher le détail",
+
+ // "submission.workspace.generic.view": "View",
+ "submission.workspace.generic.view": "Voir",
+
+ // "submission.workspace.generic.view-help": "Select this option to view the item's metadata.",
+ "submission.workspace.generic.view-help": "Sélectionner cette option pour voir les métadonnées de l'item.",
// "thumbnail.default.alt": "Thumbnail Image",
"thumbnail.default.alt": "Vignette d'image",
@@ -5899,9 +6054,15 @@
// "workflow-item.send-back.button.confirm": "Send back",
"workflow-item.send-back.button.confirm": "Renvoyer",
- // "workflow-item.view.breadcrumbs": "Workflow View",
+ // "workflow-item.view.breadcrumbs": "Workflow View",
"workflow-item.view.breadcrumbs": "Vue d'ensemble du Workflow",
+ // "workspace-item.view.breadcrumbs": "Workspace View",
+ "workspace-item.view.breadcrumbs": "Vue du tableau de suivi",
+
+ // "workspace-item.view.title": "Workspace View",
+ "workspace-item.view.title": "Vue du tableau de suivi",
+
// "idle-modal.header": "Session will expire soon",
"idle-modal.header": "La session expirera bientôt",
diff --git a/src/assets/i18n/gd.json5 b/src/assets/i18n/gd.json5
index 09938fcf5d..e42bb239f2 100644
--- a/src/assets/i18n/gd.json5
+++ b/src/assets/i18n/gd.json5
@@ -156,6 +156,8 @@
// "admin.registries.bitstream-formats.table.name": "Name",
"admin.registries.bitstream-formats.table.name": "Ainm",
+ // TODO New key - Add a translation
+ "admin.registries.bitstream-formats.table.id" : "ID",
// "admin.registries.bitstream-formats.table.return": "Back",
"admin.registries.bitstream-formats.table.return": "Air ais",
@@ -235,6 +237,8 @@
// "admin.registries.schema.fields.table.field": "Field",
"admin.registries.schema.fields.table.field": "Raon",
+ // TODO New key - Add a translation
+ "admin.registries.schema.fields.table.id" : "ID",
// "admin.registries.schema.fields.table.scopenote": "Scope Note",
"admin.registries.schema.fields.table.scopenote": "Nota Leudachd",
diff --git a/src/assets/i18n/hi.json5 b/src/assets/i18n/hi.json5
index 13d0b10cb2..4a59dc1b1b 100644
--- a/src/assets/i18n/hi.json5
+++ b/src/assets/i18n/hi.json5
@@ -1569,13 +1569,13 @@
"health-page.section.no-issues": "कोई समस्या नहीं मिली",
- "health-page.section.solrAuthorityCore.title": "Sor: प्राधिकरण कोर",
+ "health-page.section.solrAuthorityCore.title": "Solr: प्राधिकरण कोर",
- "health-page.section.solrOaiCore.title": "Sor: oai कोर",
+ "health-page.section.solrOaiCore.title": "Solr: oai कोर",
- "health-page.section.solrSearchCore.title": "Sor: मूल खोज",
+ "health-page.section.solrSearchCore.title": "Solr: मूल खोज",
- "health-page.section.solrStatisticsCore.title": "Sor: सांख्यिकी कोर",
+ "health-page.section.solrStatisticsCore.title": "Solr: सांख्यिकी कोर",
"health-page.status": "स्थिति",
diff --git a/src/assets/i18n/hu.json5 b/src/assets/i18n/hu.json5
index 62f7fa569a..8231f79652 100644
--- a/src/assets/i18n/hu.json5
+++ b/src/assets/i18n/hu.json5
@@ -157,6 +157,8 @@
// "admin.registries.bitstream-formats.table.name": "Name",
"admin.registries.bitstream-formats.table.name": "Név",
+ // TODO New key - Add a translation
+ "admin.registries.bitstream-formats.table.id" : "ID",
// "admin.registries.bitstream-formats.table.return": "Return",
"admin.registries.bitstream-formats.table.return": "Vissza",
@@ -236,6 +238,8 @@
// "admin.registries.schema.fields.table.field": "Field",
"admin.registries.schema.fields.table.field": "Mező",
+ // TODO New key - Add a translation
+ "admin.registries.schema.fields.table.id" : "ID",
// "admin.registries.schema.fields.table.scopenote": "Scope Note",
"admin.registries.schema.fields.table.scopenote": "Cél megjegyzés",
@@ -5146,4 +5150,4 @@
"workflow-item.send-back.button.confirm": "Visszaküld",
-}
\ No newline at end of file
+}
diff --git a/src/assets/i18n/ja.json5 b/src/assets/i18n/ja.json5
index bfe0ae186d..58c8c61eb5 100644
--- a/src/assets/i18n/ja.json5
+++ b/src/assets/i18n/ja.json5
@@ -207,6 +207,8 @@
// "admin.registries.bitstream-formats.table.name": "Name",
// TODO New key - Add a translation
"admin.registries.bitstream-formats.table.name": "Name",
+ // TODO New key - Add a translation
+ "admin.registries.bitstream-formats.table.id" : "ID",
// "admin.registries.bitstream-formats.table.return": "Return",
// TODO New key - Add a translation
@@ -311,6 +313,8 @@
// "admin.registries.schema.fields.table.field": "Field",
// TODO New key - Add a translation
"admin.registries.schema.fields.table.field": "Field",
+ // TODO New key - Add a translation
+ "admin.registries.schema.fields.table.id" : "ID",
// "admin.registries.schema.fields.table.scopenote": "Scope Note",
// TODO New key - Add a translation
@@ -6745,4 +6749,4 @@
"workflow-item.send-back.button.confirm": "Send back"
-}
\ No newline at end of file
+}
diff --git a/src/assets/i18n/kk.json5 b/src/assets/i18n/kk.json5
index 63e7374ed0..8e46ee73ce 100644
--- a/src/assets/i18n/kk.json5
+++ b/src/assets/i18n/kk.json5
@@ -194,6 +194,8 @@
// "admin.registries.bitstream-formats.table.name": "Name",
"admin.registries.bitstream-formats.table.name": "Аты",
+ // TODO New key - Add a translation
+ "admin.registries.bitstream-formats.table.id" : "ID",
// "admin.registries.bitstream-formats.table.return": "Back",
"admin.registries.bitstream-formats.table.return": "Қайтару",
@@ -211,8 +213,7 @@
"admin.registries.bitstream-formats.table.supportLevel.head": "Қолдау деңгейі",
// "admin.registries.bitstream-formats.title": "Bitstream Format Registry",
- // TODO Source message changed - Revise the translation
- "admin.registries.bitstream-formats.title": "DSpace Angular ::Бит ағыны форматтарының тізілімі",
+ "admin.registries.bitstream-formats.title": "Бит ағыны форматтарының тізілімі",
@@ -253,8 +254,7 @@
"admin.registries.metadata.schemas.table.namespace": "Аттар кеңістігі",
// "admin.registries.metadata.title": "Metadata Registry",
- // TODO Source message changed - Revise the translation
- "admin.registries.metadata.title": "DSpace Angular :: Метадеректер тізілімі",
+ "admin.registries.metadata.title": "Метадеректер тізілімі",
@@ -275,6 +275,8 @@
// "admin.registries.schema.fields.table.field": "Field",
"admin.registries.schema.fields.table.field": "Өріс",
+ // TODO New key - Add a translation
+ "admin.registries.schema.fields.table.id" : "ID",
// "admin.registries.schema.fields.table.scopenote": "Scope Note",
"admin.registries.schema.fields.table.scopenote": "Қолдану саласы бойынша ескертпе",
@@ -325,15 +327,13 @@
"admin.registries.schema.notification.field.edited": "Сәтті өңделген метадеректер өрісі\"{{field}}\"",
// "admin.registries.schema.notification.success": "Success",
- "admin.registries.schema.notification.success": "Успех",
+ "admin.registries.schema.notification.success": "Сәтті",
// "admin.registries.schema.return": "Back",
- // TODO Source message changed - Revise the translation
"admin.registries.schema.return": "Қайтару",
// "admin.registries.schema.title": "Metadata Schema Registry",
- // TODO Source message changed - Revise the translation
- "admin.registries.schema.title": "DSpace Angular:: метадеректер тізбегінің тізілімі",
+ "admin.registries.schema.title": "Метадеректер тізбегінің тізілімі",
@@ -350,12 +350,10 @@
"admin.access-control.epeople.actions.stop-impersonating": "Адам туралы ойлауды доғарыңыз",
// "admin.access-control.epeople.breadcrumbs": "EPeople",
- // TODO New key - Add a translation
- "admin.access-control.epeople.breadcrumbs": "EPeople",
+ "admin.access-control.epeople.breadcrumbs": "Адамдар",
// "admin.access-control.epeople.title": "EPeople",
- // TODO Source message changed - Revise the translation
- "admin.access-control.epeople.title": "DSpace Angular :: Адамдар",
+ "admin.access-control.epeople.title": "Адамдар",
// "admin.access-control.epeople.head": "EPeople",
"admin.access-control.epeople.head": "Адамдар",
@@ -376,8 +374,7 @@
"admin.access-control.epeople.search.button": "Іздеу",
// "admin.access-control.epeople.search.placeholder": "Search people...",
- // TODO New key - Add a translation
- "admin.access-control.epeople.search.placeholder": "Search people...",
+ "admin.access-control.epeople.search.placeholder": "Адамдарды іздеу...",
// "admin.access-control.epeople.button.add": "Add EPerson",
"admin.access-control.epeople.button.add": "Адамды қосу",
@@ -398,8 +395,7 @@
"admin.access-control.epeople.table.edit.buttons.edit": "Өңдеу \"{{name}}\"",
// "admin.access-control.epeople.table.edit.buttons.edit-disabled": "You are not authorized to edit this group",
- // TODO New key - Add a translation
- "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": "Сіз бұл топты өңдеуге құқығыңыз жоқ",
// "admin.access-control.epeople.table.edit.buttons.remove": "Delete \"{{name}}\"",
"admin.access-control.epeople.table.edit.buttons.remove": "Жою\"{{name}}\"",
@@ -432,8 +428,7 @@
"admin.access-control.epeople.form.requireCertificate": "Сертификат қажет",
// "admin.access-control.epeople.form.return": "Back",
- // TODO New key - Add a translation
- "admin.access-control.epeople.form.return": "Back",
+ "admin.access-control.epeople.form.return": "Артқа",
// "admin.access-control.epeople.form.notification.created.success": "Successfully created EPerson \"{{name}}\"",
"admin.access-control.epeople.form.notification.created.success": "Сәтті құрылған Эпперсон \"{{name}}\"",
@@ -469,8 +464,7 @@
"admin.access-control.epeople.form.table.name": "Аты",
// "admin.access-control.epeople.form.table.collectionOrCommunity": "Collection/Community",
- // TODO New key - Add a translation
- "admin.access-control.epeople.form.table.collectionOrCommunity": "Collection/Community",
+ "admin.access-control.epeople.form.table.collectionOrCommunity": "Жинақ/Қауымдастық",
// "admin.access-control.epeople.form.memberOfNoGroups": "This EPerson is not a member of any groups",
"admin.access-control.epeople.form.memberOfNoGroups": "Бұл адам ешқандай топтың мүшесі емес",
@@ -487,28 +481,22 @@
// "admin.access-control.groups.title": "Groups",
- // TODO Source message changed - Revise the translation
- "admin.access-control.groups.title": "DSpace Angular :: Топтар",
+ "admin.access-control.groups.title": "Топтар",
// "admin.access-control.groups.breadcrumbs": "Groups",
- // TODO New key - Add a translation
- "admin.access-control.groups.breadcrumbs": "Groups",
+ "admin.access-control.groups.breadcrumbs": "Топтар",
// "admin.access-control.groups.singleGroup.breadcrumbs": "Edit Group",
- // TODO New key - Add a translation
- "admin.access-control.groups.singleGroup.breadcrumbs": "Edit Group",
+ "admin.access-control.groups.singleGroup.breadcrumbs": "Топты өңдеу",
// "admin.access-control.groups.title.singleGroup": "Edit Group",
- // TODO Source message changed - Revise the translation
- "admin.access-control.groups.title.singleGroup": "DSpace Angular:: редакциялау тобы",
+ "admin.access-control.groups.title.singleGroup": "Топты редакциялау",
// "admin.access-control.groups.title.addGroup": "New Group",
- // TODO Source message changed - Revise the translation
- "admin.access-control.groups.title.addGroup": "DSpace Angular :: Жаңа топ",
+ "admin.access-control.groups.title.addGroup": "Жаңа топ қосу",
// "admin.access-control.groups.addGroup.breadcrumbs": "New Group",
- // TODO New key - Add a translation
- "admin.access-control.groups.addGroup.breadcrumbs": "New Group",
+ "admin.access-control.groups.addGroup.breadcrumbs": "Жаңы топ",
// "admin.access-control.groups.head": "Groups",
"admin.access-control.groups.head": "Топтар",
@@ -526,8 +514,7 @@
"admin.access-control.groups.search.button": "Іздеу",
// "admin.access-control.groups.search.placeholder": "Search groups...",
- // TODO New key - Add a translation
- "admin.access-control.groups.search.placeholder": "Search groups...",
+ "admin.access-control.groups.search.placeholder": "Топты іздеу...",
// "admin.access-control.groups.table.id": "ID",
"admin.access-control.groups.table.id": "Жеке куәлік",
@@ -536,8 +523,7 @@
"admin.access-control.groups.table.name": "Аты",
// "admin.access-control.groups.table.collectionOrCommunity": "Collection/Community",
- // TODO New key - Add a translation
- "admin.access-control.groups.table.collectionOrCommunity": "Collection/Community",
+ "admin.access-control.groups.table.collectionOrCommunity": "Жинақ/Қауымдастық",
// "admin.access-control.groups.table.members": "Members",
"admin.access-control.groups.table.members": "Қатысушылар",
@@ -581,8 +567,7 @@
"admin.access-control.groups.form.groupName": "Топтың атауы",
// "admin.access-control.groups.form.groupCommunity": "Community or Collection",
- // TODO New key - Add a translation
- "admin.access-control.groups.form.groupCommunity": "Community or Collection",
+ "admin.access-control.groups.form.groupCommunity": "Жинақ немесе Қауымдастық",
// "admin.access-control.groups.form.groupDescription": "Description",
"admin.access-control.groups.form.groupDescription":"Сипаттама",
@@ -657,19 +642,16 @@
"admin.access-control.groups.form.members-list.table.name": "Аты",
// "admin.access-control.groups.form.members-list.table.identity": "Identity",
- // TODO New key - Add a translation
- "admin.access-control.groups.form.members-list.table.identity": "Identity",
+ "admin.access-control.groups.form.members-list.table.identity": "Сәйкестілік",
// "admin.access-control.groups.form.members-list.table.email": "Email",
- // TODO New key - Add a translation
- "admin.access-control.groups.form.members-list.table.email": "Email",
+ "admin.access-control.groups.form.members-list.table.email": "Поштасы",
// "admin.access-control.groups.form.members-list.table.netid": "NetID",
- // TODO New key - Add a translation
"admin.access-control.groups.form.members-list.table.netid": "NetID",
// "admin.access-control.groups.form.members-list.table.edit": "Remove / Add",
- "admin.access-control.groups.form.members-list.table.edit": "Жою/ Add",
+ "admin.access-control.groups.form.members-list.table.edit": "Жою/Қосу",
// "admin.access-control.groups.form.members-list.table.edit.buttons.remove": "Remove member with name \"{{name}}\"",
"admin.access-control.groups.form.members-list.table.edit.buttons.remove": "Қатысушыны аты-жөнімен жою \"{{name}}\"",
@@ -723,8 +705,7 @@
"admin.access-control.groups.form.subgroups-list.table.name": "Аты",
// "admin.access-control.groups.form.subgroups-list.table.collectionOrCommunity": "Collection/Community",
- // TODO New key - Add a translation
- "admin.access-control.groups.form.subgroups-list.table.collectionOrCommunity": "Collection/Community",
+ "admin.access-control.groups.form.subgroups-list.table.collectionOrCommunity": "Жинақ/Қауымдастық",
// "admin.access-control.groups.form.subgroups-list.table.edit": "Remove / Add",
"admin.access-control.groups.form.subgroups-list.table.edit": "Жою / Қосу",
@@ -733,7 +714,6 @@
"admin.access-control.groups.form.subgroups-list.table.edit.buttons.remove": "Аты бар кіші топты жою \"{{name}}\"",
// "admin.access-control.groups.form.subgroups-list.table.edit.buttons.add": "Add subgroup with name \"{{name}}\"",
- // TODO Source message changed - Revise the translation
"admin.access-control.groups.form.subgroups-list.table.edit.buttons.add": "Атауы бар кіші топты қосыңыз \"{{name}}\"",
// "admin.access-control.groups.form.subgroups-list.table.edit.currentGroup": "Current group",
@@ -764,7 +744,6 @@
"admin.access-control.groups.form.subgroups-list.no-subgroups-yet": "Топта әлі кіші топтар жоқ.",
// "admin.access-control.groups.form.return": "Back",
- // TODO Source message changed - Revise the translation
"admin.access-control.groups.form.return": "Топтарға оралу",
@@ -856,50 +835,40 @@
"admin.metadata-import.page.error.addFile": "Алдымен файлды таңдаңыз!",
// "admin.metadata-import.page.validateOnly": "Validate Only",
- // TODO New key - Add a translation
- "admin.metadata-import.page.validateOnly": "Validate Only",
+ "admin.metadata-import.page.validateOnly": "Тек Тексеру",
// "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.",
- // TODO New key - Add a translation
- "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": "Бұл параметрді таңдаған кезде жүктелген CSV файлы тексеріледі. Сіз анықталған өзгерістер туралы есеп аласыз, бірақ ешқандай өзгеріс сақталмайды.",
// "auth.errors.invalid-user": "Invalid email address or password.",
- // TODO New key - Add a translation
- "auth.errors.invalid-user": "Invalid email address or password.",
+ "auth.errors.invalid-user": "Электрондық пошта мекенжайы немесе пароль дұрыс емес.",
// "auth.messages.expired": "Your session has expired. Please log in again.",
- // TODO New key - Add a translation
- "auth.messages.expired": "Your session has expired. Please log in again.",
+ "auth.messages.expired": "Сеанстың жарамдылық мерзімі аяқталды. Тағы бір рет кіріңіз.",
// "auth.messages.token-refresh-failed": "Refreshing your session token failed. Please log in again.",
- // TODO New key - Add a translation
- "auth.messages.token-refresh-failed": "Refreshing your session token failed. Please log in again.",
+ "auth.messages.token-refresh-failed": "Сеанс таңбалауышын жаңарту мүмкін емес. Тағы бір рет кіріңіз.",
// "bitstream.download.page": "Now downloading {{bitstream}}..." ,
- // TODO New key - Add a translation
- "bitstream.download.page": "Now downloading {{bitstream}}..." ,
+ "bitstream.download.page": "Қазір жүктеу {{bitstream}}..." ,
// "bitstream.download.page.back": "Back" ,
- // TODO New key - Add a translation
- "bitstream.download.page.back": "Back" ,
+ "bitstream.download.page.back": "Артқа" ,
// "bitstream.edit.authorizations.link": "Edit bitstream's Policies",
- // TODO New key - Add a translation
- "bitstream.edit.authorizations.link": "Edit bitstream's Policies",
+ "bitstream.edit.authorizations.link": "Бит ағынының саясатын өңдеу",
// "bitstream.edit.authorizations.title": "Edit bitstream's Policies",
- // TODO New key - Add a translation
- "bitstream.edit.authorizations.title": "Edit bitstream's Policies",
+ "bitstream.edit.authorizations.title": "Бит ағынының саясатын өңдеу",
// "bitstream.edit.return": "Back",
- // TODO New key - Add a translation
- "bitstream.edit.return": "Back",
+ "bitstream.edit.return": "Артқа",
// "bitstream.edit.bitstream": "Bitstream: ",
"bitstream.edit.bitstream": "Битстрим: ",
@@ -944,36 +913,28 @@
"bitstream.edit.notifications.error.format.title": "Бит ағынының форматын сақтау кезінде қате пайда болды",
// "bitstream.edit.form.iiifLabel.label": "IIIF Label",
- // TODO New key - Add a translation
- "bitstream.edit.form.iiifLabel.label": "IIIF Label",
+ "bitstream.edit.form.iiifLabel.label": "IIIF Жапсырма",
// "bitstream.edit.form.iiifLabel.hint": "Canvas label for this image. If not provided default label will be used.",
- // TODO New key - Add a translation
- "bitstream.edit.form.iiifLabel.hint": "Canvas label for this image. If not provided default label will be used.",
+ "bitstream.edit.form.iiifLabel.hint": "Бұл кескінге арналған кенеп жапсырмасы. Егер көрсетілмесе, әдепкі белгі қолданылады.",
// "bitstream.edit.form.iiifToc.label": "IIIF Table of Contents",
- // TODO New key - Add a translation
- "bitstream.edit.form.iiifToc.label": "IIIF Table of Contents",
+ "bitstream.edit.form.iiifToc.label": "IIIF Мазмұны",
// "bitstream.edit.form.iiifToc.hint": "Adding text here makes this the start of a new table of contents range.",
- // TODO New key - Add a translation
- "bitstream.edit.form.iiifToc.hint": "Adding text here makes this the start of a new table of contents range.",
+ "bitstream.edit.form.iiifToc.hint": "Мұнда мәтін қосу мұны жаңа мазмұн кестесінің басталуына әкеледі.",
// "bitstream.edit.form.iiifWidth.label": "IIIF Canvas Width",
- // TODO New key - Add a translation
- "bitstream.edit.form.iiifWidth.label": "IIIF Canvas Width",
+ "bitstream.edit.form.iiifWidth.label": "IIIF Кенептің ені",
// "bitstream.edit.form.iiifWidth.hint": "The canvas width should usually match the image width.",
- // TODO New key - Add a translation
- "bitstream.edit.form.iiifWidth.hint": "The canvas width should usually match the image width.",
+ "bitstream.edit.form.iiifWidth.hint": "Кенептің ені әдетте кескіннің еніне сәйкес келуі керек.",
// "bitstream.edit.form.iiifHeight.label": "IIIF Canvas Height",
- // TODO New key - Add a translation
- "bitstream.edit.form.iiifHeight.label": "IIIF Canvas Height",
+ "bitstream.edit.form.iiifHeight.label": "IIIF Кенептің биіктігі",
// "bitstream.edit.form.iiifHeight.hint": "The canvas height should usually match the image height.",
- // TODO New key - Add a translation
- "bitstream.edit.form.iiifHeight.hint": "The canvas height should usually match the image height.",
+ "bitstream.edit.form.iiifHeight.hint": "Кенептің биіктігі әдетте кескіннің биіктігіне сәйкес келуі керек.",
// "bitstream.edit.notifications.saved.content": "Your changes to this bitstream were saved.",
@@ -986,85 +947,66 @@
"bitstream.edit.title": "Бит ағынын өзгерту",
// "bitstream-request-a-copy.alert.canDownload1": "You already have access to this file. If you want to download the file, click ",
- // TODO New key - Add a translation
- "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": "Сіз бұл файлға қол жеткізе аласыз. Егер сіз файлды жүктегіңіз келсе, нұқыңыз ",
// "bitstream-request-a-copy.alert.canDownload2": "here",
- // TODO New key - Add a translation
- "bitstream-request-a-copy.alert.canDownload2": "here",
+ "bitstream-request-a-copy.alert.canDownload2": "мында",
// "bitstream-request-a-copy.header": "Request a copy of the file",
- // TODO New key - Add a translation
- "bitstream-request-a-copy.header": "Request a copy of the file",
+ "bitstream-request-a-copy.header": "Файлдың көшірмесін сұраңыз",
// "bitstream-request-a-copy.intro": "Enter the following information to request a copy for the following item: ",
- // TODO New key - Add a translation
- "bitstream-request-a-copy.intro": "Enter the following information to request a copy for the following item: ",
+ "bitstream-request-a-copy.intro": "Келесі элементтің көшірмесін сұрау үшін келесі ақпаратты енгізіңіз: ",
// "bitstream-request-a-copy.intro.bitstream.one": "Requesting the following file: ",
- // TODO New key - Add a translation
- "bitstream-request-a-copy.intro.bitstream.one": "Requesting the following file: ",
+ "bitstream-request-a-copy.intro.bitstream.one": "Келесі файлды сұрау: ",
+
// "bitstream-request-a-copy.intro.bitstream.all": "Requesting all files. ",
- // TODO New key - Add a translation
- "bitstream-request-a-copy.intro.bitstream.all": "Requesting all files. ",
+ "bitstream-request-a-copy.intro.bitstream.all": "Барлық файлдарды сұрау. ",
// "bitstream-request-a-copy.name.label": "Name *",
- // TODO New key - Add a translation
- "bitstream-request-a-copy.name.label": "Name *",
+ "bitstream-request-a-copy.name.label": "Аты *",
// "bitstream-request-a-copy.name.error": "The name is required",
- // TODO New key - Add a translation
- "bitstream-request-a-copy.name.error": "The name is required",
+ "bitstream-request-a-copy.name.error": "Аты міндетті",
// "bitstream-request-a-copy.email.label": "Your e-mail address *",
- // TODO New key - Add a translation
- "bitstream-request-a-copy.email.label": "Your e-mail address *",
+ "bitstream-request-a-copy.email.label": "Сіздің электрондық пошта мекенжайыңыз *",
// "bitstream-request-a-copy.email.hint": "This email address is used for sending the file.",
- // TODO New key - Add a translation
- "bitstream-request-a-copy.email.hint": "This email address is used for sending the file.",
+ "bitstream-request-a-copy.email.hint": "Бұл электрондық пошта мекенжайы файлды жіберу үшін қолданылады.",
// "bitstream-request-a-copy.email.error": "Please enter a valid email address.",
- // TODO New key - Add a translation
- "bitstream-request-a-copy.email.error": "Please enter a valid email address.",
+ "bitstream-request-a-copy.email.error": "Жарамды электрондық пошта мекенжайын енгізіңіз.",
// "bitstream-request-a-copy.allfiles.label": "Files",
- // TODO New key - Add a translation
- "bitstream-request-a-copy.allfiles.label": "Files",
+ "bitstream-request-a-copy.allfiles.label": "Файлдар",
// "bitstream-request-a-copy.files-all-false.label": "Only the requested file",
- // TODO New key - Add a translation
- "bitstream-request-a-copy.files-all-false.label": "Only the requested file",
+ "bitstream-request-a-copy.files-all-false.label": "Тек сұралған файл",
// "bitstream-request-a-copy.files-all-true.label": "All files (of this item) in restricted access",
- // TODO New key - Add a translation
- "bitstream-request-a-copy.files-all-true.label": "All files (of this item) in restricted access",
+ "bitstream-request-a-copy.files-all-true.label": "Барлық файлдар (осы элемент) шектеулі қол жетімді",
// "bitstream-request-a-copy.message.label": "Message",
- // TODO New key - Add a translation
- "bitstream-request-a-copy.message.label": "Message",
+ "bitstream-request-a-copy.message.label": "Хабарлар",
// "bitstream-request-a-copy.return": "Back",
- // TODO New key - Add a translation
- "bitstream-request-a-copy.return": "Back",
+ "bitstream-request-a-copy.return": "Артқа",
// "bitstream-request-a-copy.submit": "Request copy",
- // TODO New key - Add a translation
- "bitstream-request-a-copy.submit": "Request copy",
+ "bitstream-request-a-copy.submit": "Көшірмесін сұрау",
// "bitstream-request-a-copy.submit.success": "The item request was submitted successfully.",
- // TODO New key - Add a translation
- "bitstream-request-a-copy.submit.success": "The item request was submitted successfully.",
+ "bitstream-request-a-copy.submit.success": "Өнімге сұраныс сәтті жіберілді.",
// "bitstream-request-a-copy.submit.error": "Something went wrong with submitting the item request.",
- // TODO New key - Add a translation
- "bitstream-request-a-copy.submit.error": "Something went wrong with submitting the item request.",
+ "bitstream-request-a-copy.submit.error": "Өнімге сұраныс жіберумен бір нәрсе дұрыс болмады.",
// "browse.back.all-results": "All browse results",
- // TODO New key - Add a translation
- "browse.back.all-results": "All browse results",
+ "browse.back.all-results": "Барлық қарау нәтижелері",
// "browse.comcol.by.author": "By Author",
"browse.comcol.by.author": "Авторы",
@@ -1109,20 +1051,16 @@
"browse.metadata.title.breadcrumbs": "Тақырыбы бойынша қарау",
// "pagination.next.button": "Next",
- // TODO New key - Add a translation
- "pagination.next.button": "Next",
+ "pagination.next.button": "Келесі",
// "pagination.previous.button": "Previous",
- // TODO New key - Add a translation
- "pagination.previous.button": "Previous",
+ "pagination.previous.button": "Алдыңғысы",
// "pagination.next.button.disabled.tooltip": "No more pages of results",
- // TODO New key - Add a translation
- "pagination.next.button.disabled.tooltip": "No more pages of results",
+ "pagination.next.button.disabled.tooltip": "Нәтижелері бар беттер жоқ",
// "browse.startsWith": ", starting with {{ startsWith }}",
- // TODO New key - Add a translation
- "browse.startsWith": ", starting with {{ startsWith }}",
+ "browse.startsWith": ", {{ startsWith }} деп басталуымен",
// "browse.startsWith.choose_start": "(Choose start)",
"browse.startsWith.choose_start": "(басталуын таңдаңыз)",
@@ -1131,12 +1069,10 @@
"browse.startsWith.choose_year": "(Жылды таңдаңыз)",
// "browse.startsWith.choose_year.label": "Choose the issue year",
- // TODO New key - Add a translation
- "browse.startsWith.choose_year.label": "Choose the issue year",
+ "browse.startsWith.choose_year.label": "Шығарылған жылын таңдаңыз",
// "browse.startsWith.jump": "Filter results by year or month",
- // TODO Source message changed - Revise the translation
- "browse.startsWith.jump": "Индекстегі нүктеге өту:",
+ "browse.startsWith.jump": "Нәтижелерді жылдар немесе айлар бойынша сүзу",
// "browse.startsWith.months.april": "April",
"browse.startsWith.months.april": "Сәуір",
@@ -1169,8 +1105,7 @@
"browse.startsWith.months.none": "(Айды таңдаңыз)",
// "browse.startsWith.months.none.label": "Choose the issue month",
- // TODO New key - Add a translation
- "browse.startsWith.months.none.label": "Choose the issue month",
+ "browse.startsWith.months.none.label": "Шығарылған айды таңдаңыз",
// "browse.startsWith.months.november": "November",
"browse.startsWith.months.november": "Қараша",
@@ -1182,28 +1117,22 @@
"browse.startsWith.months.september": "Қыркүйек",
// "browse.startsWith.submit": "Browse",
- // TODO Source message changed - Revise the translation
- "browse.startsWith.submit": "Go",
+ "browse.startsWith.submit": "Алға",
// "browse.startsWith.type_date": "Filter results by date",
- // TODO Source message changed - Revise the translation
"browse.startsWith.type_date": "Немесе күнді енгізіңіз (жыл-ай):",
// "browse.startsWith.type_date.label": "Or type in a date (year-month) and click on the Browse button",
- // TODO New key - Add a translation
- "browse.startsWith.type_date.label": "Or type in a date (year-month) and click on the Browse button",
+ "browse.startsWith.type_date.label": "Немесе күнді (жыл-ай) енгізіп, Шолу батырманы басыңыз.",
// "browse.startsWith.type_text": "Filter results by typing the first few letters",
- // TODO Source message changed - Revise the translation
"browse.startsWith.type_text": "Немесе алғашқы бірнеше әріптерді енгізіңіз:",
// "browse.title": "Browsing {{ collection }} by {{ field }}{{ startsWith }} {{ value }}",
- // TODO Source message changed - Revise the translation
"browse.title": "{{collection}} {{field}} {{value}} бойынша қараңыз",
// "browse.title.page": "Browsing {{ collection }} by {{ field }} {{ value }}",
- // TODO New key - Add a translation
- "browse.title.page": "Browsing {{ collection }} by {{ field }} {{ value }}",
+ "browse.title.page": "{{ collection }} -ны {{ field }} {{ value }} бойынша қараңыз",
// "chips.remove": "Remove chip",
@@ -1230,8 +1159,7 @@
"collection.delete.confirm": "Растау",
// "collection.delete.processing": "Deleting",
- // TODO New key - Add a translation
- "collection.delete.processing": "Deleting",
+ "collection.delete.processing": "Өшірудемін",
// "collection.delete.head": "Delete Collection",
"collection.delete.head": "Топтаманы жою",
@@ -1310,8 +1238,7 @@
"collection.edit.item-mapper.remove": "Таңдалған элементтердің салыстыруларын жою",
// "collection.edit.item-mapper.search-form.placeholder": "Search items...",
- // TODO New key - Add a translation
- "collection.edit.item-mapper.search-form.placeholder": "Search items...",
+ "collection.edit.item-mapper.search-form.placeholder": "Элементі бойынша іздеу...",
// "collection.edit.item-mapper.tabs.browse": "Browse mapped items",
"collection.edit.item-mapper.tabs.browse": "Салыстырылған элементтерді қарау",
@@ -1321,12 +1248,10 @@
// "collection.edit.logo.delete.title": "Delete logo",
- // TODO New key - Add a translation
- "collection.edit.logo.delete.title": "Delete logo",
+ "collection.edit.logo.delete.title": "Логотипті өшіру",
// "collection.edit.logo.delete-undo.title": "Undo delete",
- // TODO New key - Add a translation
- "collection.edit.logo.delete-undo.title": "Undo delete",
+ "collection.edit.logo.delete-undo.title": "Өшірмеу",
// "collection.edit.logo.label": "Collection logo",
"collection.edit.logo.label": "Топтама логотипі",
@@ -1355,7 +1280,6 @@
"collection.edit.notifications.success": "Сәтті өзгертілген топтама",
// "collection.edit.return": "Back",
- // TODO Source message changed - Revise the translation
"collection.edit.return": "Қайтару",
@@ -1373,16 +1297,13 @@
"collection.edit.tabs.authorizations.title": "Топтаманы өзгерту - Авторизациялар",
// "collection.edit.item.authorizations.load-bundle-button": "Load more bundles",
- // TODO New key - Add a translation
- "collection.edit.item.authorizations.load-bundle-button": "Load more bundles",
+ "collection.edit.item.authorizations.load-bundle-button": "Қосымша пакеттерді жүктеңіз",
// "collection.edit.item.authorizations.load-more-button": "Load more",
- // TODO New key - Add a translation
- "collection.edit.item.authorizations.load-more-button": "Load more",
+ "collection.edit.item.authorizations.load-more-button": "Көбірек көрсет",
// "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": "Бума үшін бит ағынының саясатын көрсету",
// "collection.edit.tabs.metadata.head": "Edit Metadata",
"collection.edit.tabs.metadata.head": "Метадеректерді өңдеу",
@@ -1468,8 +1389,7 @@
"collection.edit.template.edit-button": "Өзгерту",
// "collection.edit.template.error": "An error occurred retrieving the template item",
- // TODO New key - Add a translation
- "collection.edit.template.error": "An error occurred retrieving the template item",
+ "collection.edit.template.error": "Үлгі элементін алу кезінде қате пайда болды",
// "collection.edit.template.head": "Edit Template Item for Collection \"{{ collection }}\"",
"collection.edit.template.head": "Топтамаға арналған үлгі элементін өзгерту \"{{ collection }}\"",
@@ -1478,8 +1398,7 @@
"collection.edit.template.label": "Үлгі элементі",
// "collection.edit.template.loading": "Loading template item...",
- // TODO New key - Add a translation
- "collection.edit.template.loading": "Loading template item...",
+ "collection.edit.template.loading": "Үлгі элементін жүктеу...",
// "collection.edit.template.notifications.delete.error": "Failed to delete the item template",
"collection.edit.template.notifications.delete.error": "Элемент үлгісін жою мүмкін емес",
@@ -1517,8 +1436,7 @@
"collection.form.title": "Атауы",
// "collection.form.entityType": "Entity Type",
- // TODO New key - Add a translation
- "collection.form.entityType": "Entity Type",
+ "collection.form.entityType": "Нысан түрі",
@@ -1537,8 +1455,7 @@
"collection.page.edit": "Жинақты өңдеңіз",
// "collection.page.handle": "Permanent URI for this collection",
- // TODO New key - Add a translation
- "collection.page.handle": "Permanent URI for this collection",
+ "collection.page.handle": "Бұл коллекция үшін тұрақты URI",
// "collection.page.license": "License",
"collection.page.license": "Лицензия",
@@ -1559,74 +1476,73 @@
// "collection.source.controls.head": "Harvest Controls",
- // TODO New key - Add a translation
- "collection.source.controls.head": "Harvest Controls",
+ "collection.source.controls.head": "Өнім жинауды бақылау құралдары",
+
// "collection.source.controls.test.submit.error": "Something went wrong with initiating the testing of the settings",
- // TODO New key - Add a translation
- "collection.source.controls.test.submit.error": "Something went wrong with initiating the testing of the settings",
+ "collection.source.controls.test.submit.error": "Параметрлерді тексерудің басталуымен бір нәрсе дұрыс болмады",
+
// "collection.source.controls.test.failed": "The script to test the settings has failed",
- // TODO New key - Add a translation
- "collection.source.controls.test.failed": "The script to test the settings has failed",
+ "collection.source.controls.test.failed": "Параметрлерді тексеру үшін сценарий сәтсіз аяқталды",
+
// "collection.source.controls.test.completed": "The script to test the settings has successfully finished",
- // TODO New key - Add a translation
- "collection.source.controls.test.completed": "The script to test the settings has successfully finished",
+ "collection.source.controls.test.completed": "Параметрлерді тексеру сценарийі сәтті аяқталды",
+
// "collection.source.controls.test.submit": "Test configuration",
- // TODO New key - Add a translation
- "collection.source.controls.test.submit": "Test configuration",
+ "collection.source.controls.test.submit": "Сынақ конфигурациясы",
+
// "collection.source.controls.test.running": "Testing configuration...",
- // TODO New key - Add a translation
- "collection.source.controls.test.running": "Testing configuration...",
+ "collection.source.controls.test.running": "Тестілеу конфигурациясы...",
+
// "collection.source.controls.import.submit.success": "The import has been successfully initiated",
- // TODO New key - Add a translation
- "collection.source.controls.import.submit.success": "The import has been successfully initiated",
+ "collection.source.controls.import.submit.success": "Импорт сәтті басталды",
+
// "collection.source.controls.import.submit.error": "Something went wrong with initiating the import",
- // TODO New key - Add a translation
- "collection.source.controls.import.submit.error": "Something went wrong with initiating the import",
+ "collection.source.controls.import.submit.error": "Импортты бастау кезінде бірдеңе дұрыс болмады",
+
// "collection.source.controls.import.submit": "Import now",
- // TODO New key - Add a translation
- "collection.source.controls.import.submit": "Import now",
+ "collection.source.controls.import.submit": "Қазір импорттаңыз",
+
// "collection.source.controls.import.running": "Importing...",
- // TODO New key - Add a translation
- "collection.source.controls.import.running": "Importing...",
+ "collection.source.controls.import.running": "Импорт...",
+
// "collection.source.controls.import.failed": "An error occurred during the import",
- // TODO New key - Add a translation
- "collection.source.controls.import.failed": "An error occurred during the import",
+ "collection.source.controls.import.failed": "Импорттау кезінде қате кетті",
+
// "collection.source.controls.import.completed": "The import completed",
- // TODO New key - Add a translation
- "collection.source.controls.import.completed": "The import completed",
+ "collection.source.controls.import.completed": "Импорт аяқталды",
+
// "collection.source.controls.reset.submit.success": "The reset and reimport has been successfully initiated",
- // TODO New key - Add a translation
- "collection.source.controls.reset.submit.success": "The reset and reimport has been successfully initiated",
+ "collection.source.controls.reset.submit.success": "Қалпына келтіру және қайта импорттау сәтті басталды",
+
// "collection.source.controls.reset.submit.error": "Something went wrong with initiating the reset and reimport",
- // TODO New key - Add a translation
- "collection.source.controls.reset.submit.error": "Something went wrong with initiating the reset and reimport",
+ "collection.source.controls.reset.submit.error": "Қалпына келтіру және қайта импорттау кезінде бір нәрсе дұрыс болмады",
+
// "collection.source.controls.reset.failed": "An error occurred during the reset and reimport",
- // TODO New key - Add a translation
- "collection.source.controls.reset.failed": "An error occurred during the reset and reimport",
+ "collection.source.controls.reset.failed": "Қалпына келтіру және қайта импорттау кезінде қате пайда болды",
+
// "collection.source.controls.reset.completed": "The reset and reimport completed",
- // TODO New key - Add a translation
- "collection.source.controls.reset.completed": "The reset and reimport completed",
+ "collection.source.controls.reset.completed": "Қалпына келтіру және қайта импорттау аяқталды",
+
// "collection.source.controls.reset.submit": "Reset and reimport",
- // TODO New key - Add a translation
- "collection.source.controls.reset.submit": "Reset and reimport",
+ "collection.source.controls.reset.submit": "Қалпына келтіру және қайта импорттау",
+
// "collection.source.controls.reset.running": "Resetting and reimporting...",
- // TODO New key - Add a translation
- "collection.source.controls.reset.running": "Resetting and reimporting...",
+ "collection.source.controls.reset.running": "Қалпына келтіру және қайта импорттау...",
+
// "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": "Өнім мәртебесі:",
+
// "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": "Өнім жинаудың басталу уақыты:",
+
// "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": "Соңғы рет өнім жиналды:",
+
// "collection.source.controls.harvest.message": "Harvest info:",
- // TODO New key - Add a translation
- "collection.source.controls.harvest.message": "Harvest info:",
+ "collection.source.controls.harvest.message": "Өнім хабары:",
+
// "collection.source.controls.harvest.no-information": "N/A",
- // TODO New key - Add a translation
- "collection.source.controls.harvest.no-information": "N/A",
+ "collection.source.controls.harvest.no-information": "Ақпарат жоқ",
// "collection.source.update.notifications.error.content": "The provided settings have been tested and didn't work.",
@@ -1638,15 +1554,14 @@
// "communityList.breadcrumbs": "Community List",
- // TODO New key - Add a translation
- "communityList.breadcrumbs": "Community List",
+ "communityList.breadcrumbs": "Қауымдастықтар тізімі",
// "communityList.tabTitle": "Community List",
// TODO Source message changed - Revise the translation
- "communityList.tabTitle": "DSpace - Қауымдастық Тізімі",
+ "communityList.tabTitle": " Қауымдастық Тізімі",
// "communityList.title": "List of Communities",
- "communityList.title": "Қауымдастықтар Тізімі",
+ "communityList.title": "Қауымдастықтар тізімі",
// "communityList.showMore": "Show More",
"communityList.showMore": "Көбірек Көрсету",
@@ -1672,8 +1587,7 @@
"community.delete.confirm": "Растау",
// "community.delete.processing": "Deleting...",
- // TODO New key - Add a translation
- "community.delete.processing": "Deleting...",
+ "community.delete.processing": "Жоюда...",
// "community.delete.head": "Delete Community",
"community.delete.head": "Қауымдастықты Жою",
@@ -1694,16 +1608,14 @@
"community.edit.head": "Қауымдастықты Өзгерту",
// "community.edit.breadcrumbs": "Edit Community",
- "community.edit.breadcrumbs": "Edit Community",
+ "community.edit.breadcrumbs": "Қауымдастықты өңдеу",
// "community.edit.logo.delete.title": "Delete logo",
- // TODO New key - Add a translation
- "community.edit.logo.delete.title": "Delete logo",
+ "community.edit.logo.delete.title": "Логотипті жою",
// "community.edit.logo.delete-undo.title": "Undo delete",
- // TODO New key - Add a translation
- "community.edit.logo.delete-undo.title": "Undo delete",
+ "community.edit.logo.delete-undo.title": "Өшірмеу",
// "community.edit.logo.label": "Community logo",
"community.edit.logo.label": "Қауымдастық логотипі",
@@ -1775,108 +1687,84 @@
// "comcol-role.edit.no-group": "None",
- // TODO New key - Add a translation
- "comcol-role.edit.no-group": "None",
+ "comcol-role.edit.no-group": "Ешкім",
// "comcol-role.edit.create": "Create",
- // TODO New key - Add a translation
- "comcol-role.edit.create": "Create",
+ "comcol-role.edit.create": "Құру",
// "comcol-role.edit.create.error.title": "Failed to create a group for the '{{ role }}' role",
- // TODO New key - Add a translation
- "comcol-role.edit.create.error.title": "Failed to create a group for the '{{ role }}' role",
+ "comcol-role.edit.create.error.title": "'{{ role }}' рөлі үшін топ құру мүмкін емес",
// "comcol-role.edit.restrict": "Restrict",
- // TODO New key - Add a translation
- "comcol-role.edit.restrict": "Restrict",
+ "comcol-role.edit.restrict": "Шектеу",
// "comcol-role.edit.delete": "Delete",
- // TODO New key - Add a translation
- "comcol-role.edit.delete": "Delete",
+ "comcol-role.edit.delete": "Жою",
// "comcol-role.edit.delete.error.title": "Failed to delete the '{{ role }}' role's group",
- // TODO New key - Add a translation
- "comcol-role.edit.delete.error.title": "Failed to delete the '{{ role }}' role's group",
+ "comcol-role.edit.delete.error.title": "'{{ role }}' рөл тобын жою мүмкін емес",
// "comcol-role.edit.community-admin.name": "Administrators",
- // TODO New key - Add a translation
- "comcol-role.edit.community-admin.name": "Administrators",
+ "comcol-role.edit.community-admin.name": "Әкімшілер",
// "comcol-role.edit.collection-admin.name": "Administrators",
- // TODO New key - Add a translation
- "comcol-role.edit.collection-admin.name": "Administrators",
+ "comcol-role.edit.collection-admin.name": "Әкімшілер",
// "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).",
- // TODO New key - Add a translation
- "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": "Қауымдастық әкімшілері ішкі қауымдастықтарды немесе коллекцияларды құра алады және оларды басқара алады немесе сол ішкі қауымдастықтарға немесе коллекцияларға басқару тағайындай алады. Сонымен қатар, олар кез-келген кірістірілген коллекцияларға элементтерді кім жібере алатындығын, элементтердің метадеректерін өңдеуді (жібергеннен кейін) және басқа коллекциялардан бар элементтерді қосуды (сәйкестендіруді) шешеді (авторизация жағдайында).",
// "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).",
- // TODO New key - Add a translation
- "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": "Коллекция әкімшілері элементтерді коллекцияға кім жібере алатындығын, элементтің метадеректерін өңдей алатындығын (жібергеннен кейін) және басқа коллекциялардан бар элементтерді осы коллекцияға қосуды (сәйкестендіруді) шешеді (осы коллекцияға авторизация берілген жағдайда).",
// "comcol-role.edit.submitters.name": "Submitters",
- // TODO New key - Add a translation
- "comcol-role.edit.submitters.name": "Submitters",
+ "comcol-role.edit.submitters.name": "Жіберушілер",
// "comcol-role.edit.submitters.description": "The E-People and Groups that have permission to submit new items to this collection.",
- // TODO New key - Add a translation
- "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": "Осы жинаққа жаңа элементтерді жіберуге рұқсаты бар электрондық пайдаланушылар мен топтар.",
// "comcol-role.edit.item_read.name": "Default item read access",
- // TODO New key - Add a translation
- "comcol-role.edit.item_read.name": "Default item read access",
+ "comcol-role.edit.item_read.name": "Оқуға арналған әдепкі элементке кіру",
// "comcol-role.edit.item_read.description": "E-People and Groups that can read new items submitted to this collection. Changes to this role are not retroactive. Existing items in the system will still be viewable by those who had read access at the time of their addition.",
- // TODO New key - Add a translation
- "comcol-role.edit.item_read.description": "E-People and Groups that can read new items submitted to this collection. Changes to this role are not retroactive. Existing items in the system will still be viewable by those who had read access at the time of their addition.",
+ "comcol-role.edit.item_read.description": "Осы жинақта ұсынылған жаңа материалдарды оқи алатын электрондық пайдаланушылар мен топтар. Бұл рөлдегі өзгерістердің кері күші жоқ. Жүйеде бар элементтер оларды қосу кезінде оқуға рұқсаты бар адамдар үшін әлі де қол жетімді болады.",
// "comcol-role.edit.item_read.anonymous-group": "Default read for incoming items is currently set to Anonymous.",
- // TODO New key - Add a translation
- "comcol-role.edit.item_read.anonymous-group": "Default read for incoming items is currently set to Anonymous.",
+ "comcol-role.edit.item_read.anonymous-group": "Қазіргі уақытта кіретін элементтер үшін әдепкі оқу анонимді болып табылады.",
// "comcol-role.edit.bitstream_read.name": "Default bitstream read access",
- // TODO New key - Add a translation
- "comcol-role.edit.bitstream_read.name": "Default bitstream read access",
+ "comcol-role.edit.bitstream_read.name": "Әдепкі бит ағынын оқуға қол жеткізу",
// "comcol-role.edit.bitstream_read.description": "Community administrators can create sub-communities or collections, and manage or assign management for those sub-communities or collections. In addition, they decide who can submit items to any sub-collections, edit item metadata (after submission), and add (map) existing items from other collections (subject to authorization).",
- // TODO New key - Add a translation
- "comcol-role.edit.bitstream_read.description": "Community administrators can create sub-communities or collections, and manage or assign management for those sub-communities or collections. In addition, they decide who can submit items to any sub-collections, edit item metadata (after submission), and add (map) existing items from other collections (subject to authorization).",
+ "comcol-role.edit.bitstream_read.description": "Қауымдастық әкімшілері ішкі қауымдастықтарды немесе коллекцияларды құра алады және оларды басқара алады немесе сол ішкі қауымдастықтарға немесе коллекцияларға басқару тағайындай алады. Сонымен қатар, олар кез-келген кірістірілген коллекцияларға элементтерді кім жібере алатындығын, элементтердің метадеректерін өңдеуді (жібергеннен кейін) және басқа коллекциялардан бар элементтерді қосуды (сәйкестендіруді) шешеді (авторизация жағдайында).",
// "comcol-role.edit.bitstream_read.anonymous-group": "Default read for incoming bitstreams is currently set to Anonymous.",
- // TODO New key - Add a translation
- "comcol-role.edit.bitstream_read.anonymous-group": "Default read for incoming bitstreams is currently set to Anonymous.",
+ "comcol-role.edit.bitstream_read.anonymous-group": "Қазіргі уақытта кіріс бит ағыны үшін әдепкі оқу анонимді болып табылады.",
// "comcol-role.edit.editor.name": "Editors",
- // TODO New key - Add a translation
- "comcol-role.edit.editor.name": "Editors",
+ "comcol-role.edit.editor.name": "Редакторлар",
// "comcol-role.edit.editor.description": "Editors are able to edit the metadata of incoming submissions, and then accept or reject them.",
- // TODO New key - Add a translation
- "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": "Редакторлар кіріс материалдардың метадеректерін өңдей алады, содан кейін оларды қабылдай немесе қабылдамай алады.",
// "comcol-role.edit.finaleditor.name": "Final editors",
- // TODO New key - Add a translation
- "comcol-role.edit.finaleditor.name": "Final editors",
+ "comcol-role.edit.finaleditor.name": "Соңғы редакторлар",
// "comcol-role.edit.finaleditor.description": "Final editors are able to edit the metadata of incoming submissions, but will not be able to reject them.",
- // TODO New key - Add a translation
- "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": "Соңғы редакторлар кіріс материалдардың метадеректерін өңдей алады, бірақ оларды қабылдамай алады.",
// "comcol-role.edit.reviewer.name": "Reviewers",
- // TODO New key - Add a translation
- "comcol-role.edit.reviewer.name": "Reviewers",
+ "comcol-role.edit.reviewer.name": "Рецензенттер",
// "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.",
- // TODO New key - Add a translation
- "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": "Рецензенттер келіп түскен материалдарды қабылдауы немесе қабылдамауы мүмкін. Алайда, олар жіберу метадеректерін өңдей алмайды.",
@@ -1922,16 +1810,13 @@
// "cookies.consent.accept-all": "Accept all",
- // TODO New key - Add a translation
- "cookies.consent.accept-all": "Accept all",
+ "cookies.consent.accept-all": "Мен бәрін қабылдаймын",
// "cookies.consent.accept-selected": "Accept selected",
- // TODO New key - Add a translation
- "cookies.consent.accept-selected": "Accept selected",
+ "cookies.consent.accept-selected": "Таңдалғанды қабылдау",
// "cookies.consent.app.opt-out.description": "This app is loaded by default (but you can opt out)",
- // TODO New key - Add a translation
- "cookies.consent.app.opt-out.description": "This app is loaded by default (but you can opt out)",
+ "cookies.consent.app.opt-out.description": "Бұл бағдарлама әдепкі бойынша жүктеледі (бірақ сіз одан бас тарта аласыз)",
// "cookies.consent.app.opt-out.title": "(opt-out)",
"cookies.consent.app.opt-out.title": "(opt-out)",
@@ -1958,8 +1843,7 @@
"cookies.consent.content-notice.description": "Біз сіздің жеке ақпаратыңызды келесі мақсаттарда жинаймыз және өңдейміз:
Аутентификация, Параметрлері, Растау және Статистикалар .
Көбірек білу үшін, біздің {privacyPolicy} оқуыңызды өтінеміз.",
// "cookies.consent.content-notice.description.no-privacy": "We collect and process your personal information for the following purposes:
Authentication, Preferences, Acknowledgement and Statistics .",
- // TODO New key - Add a translation
- "cookies.consent.content-notice.description.no-privacy": "We collect and process your personal information for the following purposes:
Authentication, Preferences, Acknowledgement and Statistics .",
+ "cookies.consent.content-notice.description.no-privacy": "Біз сіздің жеке мәліметтеріңізді келесі мақсаттар үшін жинаймыз және өңдейміз:
Аутентификация, Қалаулар, Растау және статистикасы .",
// "cookies.consent.content-notice.learnMore": "Customize",
"cookies.consent.content-notice.learnMore": "Баптау",
@@ -2055,8 +1939,7 @@
"curation.form.submit.error.content": "Тапсырманы іске қосу кезіндегі қателік.",
// "curation.form.submit.error.invalid-handle": "Couldn't determine the handle for this object",
- // TODO New key - Add a translation
- "curation.form.submit.error.invalid-handle": "Couldn't determine the handle for this object",
+ "curation.form.submit.error.invalid-handle": "Бұл нысан үшін дескрипторды анықтау мүмкін емес",
// "curation.form.handle.label": "Handle:",
"curation.form.handle.label": "Қалам:",
@@ -2067,34 +1950,27 @@
// "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 }}>",
- // TODO New key - Add a translation
- "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": "Құрметті {{ recipientName }}, \nСіздің сұрауыңызға жауап ретінде Мен сізге құжатқа қатысты сіз сұраған файлдардың көшірмесін жіберу мүмкін емес екенін өкінішпен айтамын: \"{{ itemUrl }}\" ({{ itemName }}), оның авторы мен.\n\nІзгі тілектермен,\N{{ authorName }} <{{ authorEmail }}>",
// "deny-request-copy.email.subject": "Request copy of document",
- // TODO New key - Add a translation
- "deny-request-copy.email.subject": "Request copy of document",
+ "deny-request-copy.email.subject": "Құжаттың көшірмесін сұрау",
// "deny-request-copy.error": "An error occurred",
- // TODO New key - Add a translation
- "deny-request-copy.error": "An error occurred",
+ "deny-request-copy.error": "Қате кетті",
// "deny-request-copy.header": "Deny document copy request",
- // TODO New key - Add a translation
- "deny-request-copy.header": "Deny document copy request",
+ "deny-request-copy.header": "Құжатты көшіру сұрауын қабылдамау",
// "deny-request-copy.intro": "This message will be sent to the applicant of the request",
- // TODO New key - Add a translation
- "deny-request-copy.intro": "This message will be sent to the applicant of the request",
+ "deny-request-copy.intro": "Бұл хабарлама өтініш берушіге жіберіледі",
// "deny-request-copy.success": "Successfully denied item request",
- // TODO New key - Add a translation
- "deny-request-copy.success": "Successfully denied item request",
+ "deny-request-copy.success": "Бөлікке сұраныс сәтті қабылданбады",
// "dso.name.untitled": "Untitled",
- // TODO New key - Add a translation
- "dso.name.untitled": "Untitled",
+ "dso.name.untitled": "Атауы жоқ",
@@ -2132,8 +2008,7 @@
"dso-selector.edit.item.head": "Элементті өзгерту",
// "dso-selector.error.title": "An error occurred searching for a {{ type }}",
- // TODO New key - Add a translation
- "dso-selector.error.title": "An error occurred searching for a {{ type }}",
+ "dso-selector.error.title": "{{ type }} іздеу кезінде қате пайда болды",
// "dso-selector.export-metadata.dspaceobject.head": "Export metadata from",
"dso-selector.export-metadata.dspaceobject.head": "Метадеректерді экспорттау",
@@ -2145,36 +2020,28 @@
"dso-selector.placeholder": "{{ type }} іздеу",
// "dso-selector.select.collection.head": "Select a collection",
- // TODO New key - Add a translation
- "dso-selector.select.collection.head": "Select a collection",
+ "dso-selector.select.collection.head": "Жинақты таңдаңыз",
// "dso-selector.set-scope.community.head": "Select a search scope",
- // TODO New key - Add a translation
- "dso-selector.set-scope.community.head": "Select a search scope",
+ "dso-selector.set-scope.community.head": "Іздеу аймағын таңдаңыз",
// "dso-selector.set-scope.community.button": "Search all of DSpace",
- // TODO New key - Add a translation
- "dso-selector.set-scope.community.button": "Search all of DSpace",
+ "dso-selector.set-scope.community.button": "DSpace арқылы іздеу",
// "dso-selector.set-scope.community.input-header": "Search for a community or collection",
- // TODO New key - Add a translation
- "dso-selector.set-scope.community.input-header": "Search for a community or collection",
+ "dso-selector.set-scope.community.input-header": "Қауымдастық немесе коллекция бойынша іздеу",
// "dso-selector.claim.item.head": "Profile tips",
- // TODO New key - Add a translation
- "dso-selector.claim.item.head": "Profile tips",
+ "dso-selector.claim.item.head": "Профиль бойынша кеңестер",
// "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.",
- // TODO New key - Add a translation
- "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": "Бұл сізге байланысты болуы мүмкін профильдер. Егер сіз осы профильдердің бірінде өзіңізді танитын болсаңыз, опциялар арасында оны және ақпарат бетінде таңдаңыз, оны жариялау үшін таңдаңыз. Әйтпесе, төмендегі батырманы пайдаланып нөлден жаңа профиль жасай аласыз.",
// "dso-selector.claim.item.not-mine-label": "None of these are mine",
- // TODO New key - Add a translation
- "dso-selector.claim.item.not-mine-label": "None of these are mine",
+ "dso-selector.claim.item.not-mine-label": "Олардың ешқайсысы маған тиесілі емес",
// "dso-selector.claim.item.create-from-scratch": "Create a new one",
- // TODO New key - Add a translation
- "dso-selector.claim.item.create-from-scratch": "Create a new one",
+ "dso-selector.claim.item.create-from-scratch": "Жаңасын жасаңыз",
// "confirmation-modal.export-metadata.header": "Export metadata for {{ dsoName }}",
"confirmation-modal.export-metadata.header": "{{ dsoName }} метадеректерін экспорттау",
@@ -2201,20 +2068,16 @@
"confirmation-modal.delete-eperson.confirm": "Жою",
// "confirmation-modal.delete-profile.header": "Delete Profile",
- // TODO New key - Add a translation
- "confirmation-modal.delete-profile.header": "Delete Profile",
+ "confirmation-modal.delete-profile.header": "Профильді өшіру",
// "confirmation-modal.delete-profile.info": "Are you sure you want to delete your profile",
- // TODO New key - Add a translation
- "confirmation-modal.delete-profile.info": "Are you sure you want to delete your profile",
+ "confirmation-modal.delete-profile.info": "Сіз өзіңіздің профиліңізді жойғыңыз келетініне сенімдісіз",
// "confirmation-modal.delete-profile.cancel": "Cancel",
- // TODO New key - Add a translation
- "confirmation-modal.delete-profile.cancel": "Cancel",
+ "confirmation-modal.delete-profile.cancel": "Алып тастау",
// "confirmation-modal.delete-profile.confirm": "Delete",
- // TODO New key - Add a translation
- "confirmation-modal.delete-profile.confirm": "Delete",
+ "confirmation-modal.delete-profile.confirm": "Жою",
// "error.bitstream": "Error fetching bitstream",
@@ -2254,8 +2117,7 @@
"error.search-results": "Іздеу нәтижелерін алу қатесі",
// "error.invalid-search-query": "Search query is not valid. Please check
Solr query syntax best practices for further information about this error.",
- // TODO New key - Add a translation
- "error.invalid-search-query": "Search query is not valid. Please check
Solr query syntax best practices for further information about this error.",
+ "error.invalid-search-query": "Іздеу сұранысы жарамсыз.
Solr query syntax осы қате туралы қосымша ақпарат алу үшін нұсқаулықпен танысыңыз.",
// "error.sub-collections": "Error fetching sub-collections",
"error.sub-collections":"Ішкі жинақтарды алу қатесі",
@@ -2279,25 +2141,20 @@
"error.validation.filerequired": "Файлды жүктеп салу міндетті",
// "error.validation.required": "This field is required",
- // TODO New key - Add a translation
- "error.validation.required": "This field is required",
+ "error.validation.required": "Бұл өріс міндетті болып табылады",
// "error.validation.NotValidEmail": "This E-mail is not a valid email",
- // TODO New key - Add a translation
- "error.validation.NotValidEmail": "This E-mail is not a valid email",
+ "error.validation.NotValidEmail": "Бұл электрондық пошта жарамды емес",
// "error.validation.emailTaken": "This E-mail is already taken",
- // TODO New key - Add a translation
- "error.validation.emailTaken": "This E-mail is already taken",
+ "error.validation.emailTaken": "Бұл электрондық пошта қазірдің өзінде жіберілді",
// "error.validation.groupExists": "This group already exists",
- // TODO New key - Add a translation
- "error.validation.groupExists": "This group already exists",
+ "error.validation.groupExists": "Бұл топ қазірдің өзінде бар",
// "feed.description": "Syndication feed",
- // TODO New key - Add a translation
- "feed.description": "Syndication feed",
+ "feed.description": "Синдикация арнасы",
// "file-section.error.header": "Error obtaining files for this item",
@@ -2324,8 +2181,7 @@
"footer.link.end-user-agreement":"Соңғы пайдаланушы келісімі",
// "footer.link.feedback":"Send Feedback",
- // TODO New key - Add a translation
- "footer.link.feedback":"Send Feedback",
+ "footer.link.feedback":"Пікір жіберу",
@@ -2333,8 +2189,7 @@
"forgot-email.form.header": "Парольді Ұмыттыңыз Ба",
// "forgot-email.form.info": "Enter the email address associated with the account.",
- // TODO Source message changed - Revise the translation
- "forgot-email.form.info": "Электрондық пошта жаңартуларына арналған жинақтарға жазылу және DSpace қызметіне жаңа элементтерді жіберу үшін тіркелгіні тіркеңіз.",
+ "forgot-email.form.info": "Тіркелгіге қатысты электрондық пошта мекенжайын енгізіңіз.",
// "forgot-email.form.email": "Email Address *",
"forgot-email.form.email": "Электрондық пошта *",
@@ -2346,27 +2201,22 @@
"forgot-email.form.email.error.pattern": "Жарамды электрондық пошта мекенжайын толтырыңыз",
// "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": "Бұл мекенжай тексеріледі және сіздің логин атыңыз ретінде пайдаланылады.",
// "forgot-email.form.submit": "Reset password",
- // TODO Source message changed - Revise the translation
"forgot-email.form.submit": "Жіберу",
// "forgot-email.form.success.head": "Password reset email sent",
- // TODO Source message changed - Revise the translation
"forgot-email.form.success.head": "Растау электрондық поштасы жіберілді",
// "forgot-email.form.success.content": "An email has been sent to {{ email }} containing a special URL and further instructions.",
"forgot-email.form.success.content": "Арнайы URL мекенжайы және қосымша нұсқаулары бар электрондық пошта {{ email }} мекенжайына жіберілді.",
// "forgot-email.form.error.head": "Error when trying to reset password",
- // TODO Source message changed - Revise the translation
"forgot-email.form.error.head": "Электрондық поштаны тіркеу кезіндегі қате",
// "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": "Келесі электрондық пошта мекенжайына байланысты есептік жазбаның құпия сөзін қалпына келтіру кезінде қате пайда болды: {{ email }}",
@@ -2434,12 +2284,10 @@
"form.clear-help": "Таңдалған мәнді жою үшін осы жерді басыңыз",
// "form.discard": "Discard",
- // TODO New key - Add a translation
- "form.discard": "Discard",
+ "form.discard": "Тастау",
// "form.drag": "Drag",
- // TODO New key - Add a translation
- "form.drag": "Drag",
+ "form.drag": "Сүйреп апарыңыз",
// "form.edit": "Edit",
"form.edit": "Өзгерту",
@@ -2503,177 +2351,135 @@
"form.submit": "Жіберу",
// "form.repeatable.sort.tip": "Drop the item in the new position",
- // TODO New key - Add a translation
- "form.repeatable.sort.tip": "Drop the item in the new position",
+ "form.repeatable.sort.tip": "Элементті жаңа орынға қойыңыз",
// "grant-deny-request-copy.deny": "Don't send copy",
- // TODO New key - Add a translation
- "grant-deny-request-copy.deny": "Don't send copy",
+ "grant-deny-request-copy.deny": "Көшірмесін жібермеңіз",
// "grant-deny-request-copy.email.back": "Back",
- // TODO New key - Add a translation
- "grant-deny-request-copy.email.back": "Back",
+ "grant-deny-request-copy.email.back": "Артқа",
// "grant-deny-request-copy.email.message": "Message",
- // TODO New key - Add a translation
- "grant-deny-request-copy.email.message": "Message",
+ "grant-deny-request-copy.email.message": "Хабарлар",
// "grant-deny-request-copy.email.message.empty": "Please enter a message",
- // TODO New key - Add a translation
- "grant-deny-request-copy.email.message.empty": "Please enter a message",
+ "grant-deny-request-copy.email.message.empty": "Хабарламаны енгізіңіз",
// "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.",
- // TODO New key - Add a translation
- "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": "Сіз бұл сұрауларға жауап бермеу үшін құжатқа кіру шектеулерін қайта қарау үшін осы мүмкіндікті пайдалана аласыз. Егер сіз репозиторий әкімшілерінен осы шектеулерді алып тастауды сұрағыңыз келсе, төмендегі құсбелгіні қойыңыз.",
// "grant-deny-request-copy.email.permissions.label": "Change to open access",
- // TODO New key - Add a translation
- "grant-deny-request-copy.email.permissions.label": "Change to open access",
+ "grant-deny-request-copy.email.permissions.label": "Ашық қол жетімділікке ауысу",
// "grant-deny-request-copy.email.send": "Send",
- // TODO New key - Add a translation
- "grant-deny-request-copy.email.send": "Send",
+ "grant-deny-request-copy.email.send": "Жіберу",
// "grant-deny-request-copy.email.subject": "Subject",
- // TODO New key - Add a translation
- "grant-deny-request-copy.email.subject": "Subject",
+ "grant-deny-request-copy.email.subject": "Тақырыбы",
// "grant-deny-request-copy.email.subject.empty": "Please enter a subject",
- // TODO New key - Add a translation
- "grant-deny-request-copy.email.subject.empty": "Please enter a subject",
+ "grant-deny-request-copy.email.subject.empty": "Тақырыпты енгізіңіз",
// "grant-deny-request-copy.grant": "Send copy",
- // TODO New key - Add a translation
- "grant-deny-request-copy.grant": "Send copy",
+ "grant-deny-request-copy.grant": "Көшірмесін жіберу",
// "grant-deny-request-copy.header": "Document copy request",
- // TODO New key - Add a translation
- "grant-deny-request-copy.header": "Document copy request",
+ "grant-deny-request-copy.header": "Құжатты көшіруге сұрау салу",
// "grant-deny-request-copy.home-page": "Take me to the home page",
- // TODO New key - Add a translation
- "grant-deny-request-copy.home-page": "Take me to the home page",
+ "grant-deny-request-copy.home-page": "Мені басты бетке апарыңыз",
// "grant-deny-request-copy.intro1": "If you are one of the authors of the document
{{ name }} , then please use one of the options below to respond to the user's request.",
- // TODO New key - Add a translation
- "grant-deny-request-copy.intro1": "If you are one of the authors of the document
{{ name }} , then please use one of the options below to respond to the user's request.",
+ "grant-deny-request-copy.intro1": "Егер Сіз
{{ name }} құжат авторларының бірі болсаңыз, пайдаланушының сұрауына жауап беру үшін төмендегі нұсқалардың бірін қолданыңыз.",
// "grant-deny-request-copy.intro2": "After choosing an option, you will be presented with a suggested email reply which you may edit.",
- // TODO New key - Add a translation
- "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": "Опцияны таңдағаннан кейін Сізге электрондық пошта арқылы ұсынылған жауап ұсынылады, оны өңдеуге болады.",
// "grant-deny-request-copy.processed": "This request has already been processed. You can use the button below to get back to the home page.",
- // TODO New key - Add a translation
- "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": "Бұл сұрау қазірдің өзінде өңделді. Басты бетке оралу үшін төмендегі батырманы пайдалануға болады.",
// "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 }}>",
- // TODO New key - Add a translation
- "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": "Құрметті {{ recipientName }},\nСіздің сұрауыңызға жауап ретінде Мен сізге құжатқа қатысты файлдың көшірмесін тіркемеде жібергеніме қуаныштымын: \"{{ itemUrl }}\" ({{ itemName }}), оның авторы мен.\n\nІзгі тілектермен,\N{{ authorName }} <{{ authorEmail }}>",
// "grant-request-copy.email.subject": "Request copy of document",
- // TODO New key - Add a translation
- "grant-request-copy.email.subject": "Request copy of document",
+ "grant-request-copy.email.subject": "Құжаттың көшірмесін сұрау",
// "grant-request-copy.error": "An error occurred",
- // TODO New key - Add a translation
- "grant-request-copy.error": "An error occurred",
+ "grant-request-copy.error": "Қате кетті",
// "grant-request-copy.header": "Grant document copy request",
- // TODO New key - Add a translation
- "grant-request-copy.header": "Grant document copy request",
+ "grant-request-copy.header": "Құжаттың көшірмесін ұсынуға сұрау салу",
// "grant-request-copy.intro": "This message will be sent to the applicant of the request. The requested document(s) will be attached.",
- // TODO New key - Add a translation
- "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": "Бұл хабарлама өтініш берушіге жіберіледі. Сұралған құжат(тар) қоса беріледі.",
// "grant-request-copy.success": "Successfully granted item request",
- // TODO New key - Add a translation
- "grant-request-copy.success": "Successfully granted item request",
+ "grant-request-copy.success": "Өнімге сәтті сұраныс",
// "health.breadcrumbs": "Health",
- // TODO New key - Add a translation
- "health.breadcrumbs": "Health",
+ "health.breadcrumbs": "Күйі",
// "health-page.heading" : "Health",
- // TODO New key - Add a translation
- "health-page.heading" : "Health",
+ "health-page.heading" : "Күйі",
// "health-page.info-tab" : "Info",
- // TODO New key - Add a translation
- "health-page.info-tab" : "Info",
+ "health-page.info-tab" : "Ақпарат",
// "health-page.status-tab" : "Status",
- // TODO New key - Add a translation
- "health-page.status-tab" : "Status",
+ "health-page.status-tab" : "Мәртебесі",
// "health-page.error.msg": "The health check service is temporarily unavailable",
- // TODO New key - Add a translation
- "health-page.error.msg": "The health check service is temporarily unavailable",
+ "health-page.error.msg": "Тексеру қызметі уақытша қол жетімді емес",
// "health-page.property.status": "Status code",
- // TODO New key - Add a translation
- "health-page.property.status": "Status code",
+ "health-page.property.status": "Күй коды",
// "health-page.section.db.title": "Database",
- // TODO New key - Add a translation
- "health-page.section.db.title": "Database",
+ "health-page.section.db.title": "Дереккөз",
// "health-page.section.geoIp.title": "GeoIp",
- // TODO New key - Add a translation
"health-page.section.geoIp.title": "GeoIp",
- // "health-page.section.solrAuthorityCore.title": "Sor: authority core",
- // TODO New key - Add a translation
- "health-page.section.solrAuthorityCore.title": "Sor: authority core",
+ // "health-page.section.solrAuthorityCore.title": "Solr: authority core",
+ "health-page.section.solrAuthorityCore.title": "Solr: биліктің өзегі",
- // "health-page.section.solrOaiCore.title": "Sor: oai core",
- // TODO New key - Add a translation
- "health-page.section.solrOaiCore.title": "Sor: oai core",
+ // "health-page.section.solrOaiCore.title": "Solr: oai core",
+ "health-page.section.solrOaiCore.title": "Solr: oai өзегі",
- // "health-page.section.solrSearchCore.title": "Sor: search core",
- // TODO New key - Add a translation
- "health-page.section.solrSearchCore.title": "Sor: search core",
+ // "health-page.section.solrSearchCore.title": "Solr: search core",
+ "health-page.section.solrSearchCore.title": "Solr: іздеу өзегі",
- // "health-page.section.solrStatisticsCore.title": "Sor: statistics core",
- // TODO New key - Add a translation
- "health-page.section.solrStatisticsCore.title": "Sor: statistics core",
+ // "health-page.section.solrStatisticsCore.title": "Solr: statistics core",
+ "health-page.section.solrStatisticsCore.title": "Solr: статистиканың өзегі",
// "health-page.section-info.app.title": "Application Backend",
- // TODO New key - Add a translation
- "health-page.section-info.app.title": "Application Backend",
+ "health-page.section-info.app.title": "Қосымшаның серверлік бөлігі",
// "health-page.section-info.java.title": "Java",
- // TODO New key - Add a translation
"health-page.section-info.java.title": "Java",
// "health-page.status": "Status",
- // TODO New key - Add a translation
- "health-page.status": "Status",
+ "health-page.status": "Күйі мәртебесі",
// "health-page.status.ok.info": "Operational",
- // TODO New key - Add a translation
- "health-page.status.ok.info": "Operational",
+ "health-page.status.ok.info": "Жақсы күйде",
// "health-page.status.error.info": "Problems detected",
- // TODO New key - Add a translation
- "health-page.status.error.info": "Problems detected",
+ "health-page.status.error.info": "Анықталған мәселелер",
// "health-page.status.warning.info": "Possible issues detected",
- // TODO New key - Add a translation
- "health-page.status.warning.info": "Possible issues detected",
+ "health-page.status.warning.info": "Анықталған мүмкін проблемалар",
// "health-page.title": "Health",
- // TODO New key - Add a translation
- "health-page.title": "Health",
+ "health-page.title": "Күйі",
// "health-page.section.no-issues": "No issues detected",
- // TODO New key - Add a translation
- "health-page.section.no-issues": "No issues detected",
+ "health-page.section.no-issues": "Ешқандай проблема табылған жоқ",
// "home.description": "",
@@ -2683,11 +2489,9 @@
"home.breadcrumbs": "Басты",
// "home.search-form.placeholder": "Search the repository ...",
- // TODO New key - Add a translation
- "home.search-form.placeholder": "Search the repository ...",
+ "home.search-form.placeholder": "Репозиторидең іздеу ...",
// "home.title": "Home",
- // TODO Source message changed - Revise the translation
"home.title": "Басты",
// "home.top-level-communities.head": "Communities in DSpace",
@@ -2732,61 +2536,47 @@
"info.privacy.title": "Құпиялылық туралы мәлімдеме",
// "info.feedback.breadcrumbs": "Feedback",
- // TODO New key - Add a translation
- "info.feedback.breadcrumbs": "Feedback",
+ "info.feedback.breadcrumbs": "Кері байланыс",
// "info.feedback.head": "Feedback",
- // TODO New key - Add a translation
- "info.feedback.head": "Feedback",
+ "info.feedback.head": "Кері байланыс",
// "info.feedback.title": "Feedback",
- // TODO New key - Add a translation
- "info.feedback.title": "Feedback",
+ "info.feedback.title": "Кері байланыс",
// "info.feedback.info": "Thanks for sharing your feedback about the DSpace system. Your comments are appreciated!",
- // TODO New key - Add a translation
- "info.feedback.info": "Thanks for sharing your feedback about the DSpace system. Your comments are appreciated!",
+ "info.feedback.info": "DSpace жүйесі туралы пікіріңізді бөліскеніңіз үшін рахмет. Біз сіздің пікірлеріңізді бағалаймыз!",
// "info.feedback.email_help": "This address will be used to follow up on your feedback.",
- // TODO New key - Add a translation
- "info.feedback.email_help": "This address will be used to follow up on your feedback.",
+ "info.feedback.email_help": "Бұл мекен-жай сіздің пікірлеріңізді бақылау үшін қолданылады.",
// "info.feedback.send": "Send Feedback",
- // TODO New key - Add a translation
- "info.feedback.send": "Send Feedback",
+ "info.feedback.send": "Пікір жіберу",
// "info.feedback.comments": "Comments",
- // TODO New key - Add a translation
- "info.feedback.comments": "Comments",
+ "info.feedback.comments": "Түсініктеме",
// "info.feedback.email-label": "Your Email",
- // TODO New key - Add a translation
- "info.feedback.email-label": "Your Email",
+ "info.feedback.email-label": "Сіздің пошта",
// "info.feedback.create.success" : "Feedback Sent Successfully!",
- // TODO New key - Add a translation
- "info.feedback.create.success" : "Feedback Sent Successfully!",
+ "info.feedback.create.success" : "Кері Байланыс Сәтті Жіберілді!",
// "info.feedback.error.email.required" : "A valid email address is required",
- // TODO New key - Add a translation
- "info.feedback.error.email.required" : "A valid email address is required",
+ "info.feedback.error.email.required" : "Жарамды электрондық пошта мекенжайы қажет",
// "info.feedback.error.message.required" : "A comment is required",
- // TODO New key - Add a translation
- "info.feedback.error.message.required" : "A comment is required",
+ "info.feedback.error.message.required" : "Түсініктеме қажет",
// "info.feedback.page-label" : "Page",
- // TODO New key - Add a translation
- "info.feedback.page-label" : "Page",
+ "info.feedback.page-label" : "Бет",
// "info.feedback.page_help" : "Tha page related to your feedback",
- // TODO New key - Add a translation
- "info.feedback.page_help" : "Tha page related to your feedback",
+ "info.feedback.page_help" : "Сіздің пікіріңізге байланысты бет",
// "item.alerts.private": "This item is non-discoverable",
- // TODO Source message changed - Revise the translation
"item.alerts.private": "Бұл элемент жеке",
// "item.alerts.withdrawn": "This item has been withdrawn",
@@ -2964,8 +2754,7 @@
"item.edit.breadcrumbs": "Элементті өңдеу",
// "item.edit.tabs.disabled.tooltip": "You're not authorized to access this tab",
- // TODO New key - Add a translation
- "item.edit.tabs.disabled.tooltip": "You're not authorized to access this tab",
+ "item.edit.tabs.disabled.tooltip": "Бұл қойындыға кіру үшін рұқсат етілмеген",
// "item.edit.tabs.mapper.head": "Collection Mapper",
@@ -3020,8 +2809,7 @@
"item.edit.item-mapper.notifications.remove.success.head": "Карталауды жою аяқталды",
// "item.edit.item-mapper.search-form.placeholder": "Search collections...",
- // TODO New key - Add a translation
- "item.edit.item-mapper.search-form.placeholder": "Search collections...",
+ "item.edit.item-mapper.search-form.placeholder": "Жинақтар бойынша іздеу...",
// "item.edit.item-mapper.tabs.browse": "Browse mapped collections",
"item.edit.item-mapper.tabs.browse": "Карталанған жинақтарды шолу",
@@ -3062,7 +2850,7 @@
"item.edit.metadata.headers.language": "Тіл",
// "item.edit.metadata.headers.value": "Value",
- "item.edit.metadata.headers.value": "құн",
+ "item.edit.metadata.headers.value": "Құны",
// "item.edit.metadata.metadatafield.invalid": "Please choose a valid metadata field",
"item.edit.metadata.metadatafield.invalid": "Жарамды метадеректер өрісін таңдаңыз",
@@ -3114,16 +2902,13 @@
// "item.edit.move.cancel": "Back",
- // TODO Source message changed - Revise the translation
- "item.edit.move.cancel": "Cancel",
+ "item.edit.move.cancel": "Артқа",
// "item.edit.move.save-button": "Save",
- // TODO New key - Add a translation
- "item.edit.move.save-button": "Save",
+ "item.edit.move.save-button": "Сақтау",
// "item.edit.move.discard-button": "Discard",
- // TODO New key - Add a translation
- "item.edit.move.discard-button": "Discard",
+ "item.edit.move.discard-button": "Тастау",
// "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": "Осы элементті жылжытқыңыз келетін коллекцияны таңдаңыз. Көрсетілген жинақтардың тізімін тарылту үшін өріске іздеу сұрауын енгізуге болады.",
@@ -3161,23 +2946,18 @@
"item.edit.private.cancel":"Болдырмау",
// "item.edit.private.confirm": "Make it non-discoverable",
- // TODO Source message changed - Revise the translation
"item.edit.private.confirm": "Мұны жеке жаса",
// "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": "Сіз бұл затты мұрағатта жабу керек екеніне сенімдісіз бе?",
// "item.edit.private.error": "An error occurred while making the item non-discoverable",
- // TODO Source message changed - Revise the translation
"item.edit.private.error": "Элементті жабу кезінде қате пайда болды",
// "item.edit.private.header": "Make item non-discoverable: {{ id }}",
- // TODO New key - Add a translation
- "item.edit.private.header": "Make item non-discoverable: {{ id }}",
+ "item.edit.private.header": "Элементті табу мүмкін емес: {{ id }}",
// "item.edit.private.success": "The item is now non-discoverable",
- // TODO Source message changed - Revise the translation
"item.edit.private.success": "Тауар қазір жеке",
@@ -3186,23 +2966,18 @@
"item.edit.public.cancel": "Болдырмау",
// "item.edit.public.confirm": "Make it discoverable",
- // TODO Source message changed - Revise the translation
"item.edit.public.confirm": "Мұны көпшілікке жария ету",
// "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": "Сіз бұл материалды мұрағатта жариялау керек екеніне сенімдісіз бе?",
// "item.edit.public.error": "An error occurred while making the item discoverable",
- // TODO Source message changed - Revise the translation
"item.edit.public.error": "Элементті жариялау кезінде қате пайда болды",
// "item.edit.public.header": "Make item discoverable: {{ id }}",
- // TODO New key - Add a translation
- "item.edit.public.header": "Make item discoverable: {{ id }}",
+ "item.edit.public.header": "Элементті анықтауға қол жетімді етіңіз: {{ id }}",
// "item.edit.public.success": "The item is now discoverable",
- // TODO Source message changed - Revise the translation
"item.edit.public.success": "Тауар қазір көпшілікке қол жетімді",
@@ -3214,7 +2989,6 @@
"item.edit.reinstate.confirm": "Қалпына келтіру",
// "item.edit.reinstate.description": "Are you sure this item should be reinstated to the archive?",
- // TODO Source message changed - Revise the translation
"item.edit.reinstate.description": "Сіз бұл элементті мұрағатта қалпына келтіру керек екеніне сенімдісіз бе?",
// "item.edit.reinstate.error": "An error occurred while reinstating the item",
@@ -3275,8 +3049,7 @@
// "item.edit.return": "Back",
- // TODO New key - Add a translation
- "item.edit.return": "Back",
+ "item.edit.return": "Артқа",
// "item.edit.tabs.bitstreams.head": "Bitstreams",
@@ -3328,19 +3101,15 @@
"item.edit.tabs.status.buttons.move.label": "Элементті басқа жинаққа жылжытыңыз",
// "item.edit.tabs.status.buttons.private.button": "Make it non-discoverable...",
- // TODO Source message changed - Revise the translation
"item.edit.tabs.status.buttons.private.button": "Мұны жеке етіңіз...",
// "item.edit.tabs.status.buttons.private.label": "Make item non-discoverable",
- // TODO Source message changed - Revise the translation
"item.edit.tabs.status.buttons.private.label": "Затты жеке ету",
// "item.edit.tabs.status.buttons.public.button": "Make it discoverable...",
- // TODO Source message changed - Revise the translation
"item.edit.tabs.status.buttons.public.button": "Мұны көпшілікке жария етіңіз...",
// "item.edit.tabs.status.buttons.public.label": "Make item discoverable",
- // TODO Source message changed - Revise the translation
"item.edit.tabs.status.buttons.public.label": "Өнімді жалпыға қол жетімді ету",
// "item.edit.tabs.status.buttons.reinstate.button": "Reinstate...",
@@ -3350,8 +3119,7 @@
"item.edit.tabs.status.buttons.reinstate.label": "Сақтау ішіндегі элементті қалпына келтіру",
// "item.edit.tabs.status.buttons.unauthorized": "You're not authorized to perform this action",
- // TODO New key - Add a translation
- "item.edit.tabs.status.buttons.unauthorized": "You're not authorized to perform this action",
+ "item.edit.tabs.status.buttons.unauthorized": "Сіз бұл әрекетті орындауға құқығыңыз жоқ",
// "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
"item.edit.tabs.status.buttons.withdraw.button": "Шегінуге...",
@@ -3416,8 +3184,7 @@
"item.edit.withdraw.success": "Тауар сәтті алынды",
// "item.orcid.return": "Back",
- // TODO New key - Add a translation
- "item.orcid.return": "Back",
+ "item.orcid.return": "Артқа",
// "item.listelement.badge": "Item",
@@ -3445,16 +3212,13 @@
"item.search.results.head": "Өнімді іздеу нәтижелері",
// "item.search.title": "Item Search",
- // TODO Source message changed - Revise the translation
- "item.search.title": "DSpace Angular :: элементтерді іздеу",
+ "item.search.title": "Элементтерді іздеу",
// "item.truncatable-part.show-more": "Show more",
- // TODO New key - Add a translation
- "item.truncatable-part.show-more": "Show more",
+ "item.truncatable-part.show-more": "Толығырақ көрсету",
// "item.truncatable-part.show-less": "Collapse",
- // TODO New key - Add a translation
- "item.truncatable-part.show-less": "Collapse",
+ "item.truncatable-part.show-less": "Жинақтау",
@@ -3471,12 +3235,10 @@
"item.page.collections": "Жинақтар",
// "item.page.collections.loading": "Loading...",
- // TODO New key - Add a translation
- "item.page.collections.loading": "Loading...",
+ "item.page.collections.loading": "Жүктелуде...",
// "item.page.collections.load-more": "Load more",
- // TODO New key - Add a translation
- "item.page.collections.load-more": "Load more",
+ "item.page.collections.load-more": "Толығырақ жүктеу",
// "item.page.date": "Date",
"item.page.date": "Кездесуге",
@@ -3512,12 +3274,10 @@
"item.page.link.simple": "Тауардың қарапайым беті",
// "item.page.orcid.title": "ORCID",
- // TODO New key - Add a translation
"item.page.orcid.title": "ORCID",
// "item.page.orcid.tooltip": "Open ORCID setting page",
- // TODO New key - Add a translation
- "item.page.orcid.tooltip": "Open ORCID setting page",
+ "item.page.orcid.tooltip": "ORCID параметрлері бетін ашыңыз",
// "item.page.person.search.title": "Articles by this author",
"item.page.person.search.title": "Осы автордың мақалалары",
@@ -3559,24 +3319,19 @@
"item.page.filesection.license.bundle" : "Лицензиялық пакет",
// "item.page.return": "Back",
- // TODO New key - Add a translation
- "item.page.return": "Back",
+ "item.page.return": "Артқа",
// "item.page.version.create": "Create new version",
- // TODO New key - Add a translation
- "item.page.version.create": "Create new version",
+ "item.page.version.create": "Жаңа нұсқасын жасау",
// "item.page.version.hasDraft": "A new version cannot be created because there is an inprogress submission in the version history",
- // TODO New key - Add a translation
- "item.page.version.hasDraft": "A new version cannot be created because there is an inprogress submission in the version history",
+ "item.page.version.hasDraft": "Жаңа нұсқаны жасау мүмкін емес, өйткені нұсқа тарихында аяқталмаған жіберу бар",
// "item.page.claim.button": "Claim",
- // TODO New key - Add a translation
- "item.page.claim.button": "Claim",
+ "item.page.claim.button": "Талабы",
// "item.page.claim.tooltip": "Claim this item as profile",
- // TODO New key - Add a translation
- "item.page.claim.tooltip": "Claim this item as profile",
+ "item.page.claim.tooltip": "Бұл элементті профиль ретінде көрсетіңіз",
// "item.preview.dc.identifier.uri": "Identifier:",
"item.preview.dc.identifier.uri": "Идентификатор:",
@@ -3603,35 +3358,27 @@
"item.preview.dc.title": "Атауы:",
// "item.preview.dc.type": "Type:",
- // TODO New key - Add a translation
- "item.preview.dc.type": "Type:",
+ "item.preview.dc.type": "Типі:",
// "item.preview.oaire.citation.issue" : "Issue",
- // TODO New key - Add a translation
- "item.preview.oaire.citation.issue" : "Issue",
+ "item.preview.oaire.citation.issue" : "Шығарылымы",
// "item.preview.oaire.citation.volume" : "Volume",
- // TODO New key - Add a translation
- "item.preview.oaire.citation.volume" : "Volume",
+ "item.preview.oaire.citation.volume" : "Көлемі",
// "item.preview.dc.relation.issn" : "ISSN",
- // TODO New key - Add a translation
"item.preview.dc.relation.issn" : "ISSN",
// "item.preview.dc.identifier.isbn" : "ISBN",
- // TODO New key - Add a translation
"item.preview.dc.identifier.isbn" : "ISBN",
// "item.preview.dc.identifier": "Identifier:",
- // TODO New key - Add a translation
- "item.preview.dc.identifier": "Identifier:",
+ "item.preview.dc.identifier": "Идентификатор:",
// "item.preview.dc.relation.ispartof" : "Journal or Serie",
- // TODO New key - Add a translation
- "item.preview.dc.relation.ispartof" : "Journal or Serie",
+ "item.preview.dc.relation.ispartof" : "Журнал немесе серия",
// "item.preview.dc.identifier.doi" : "DOI",
- // TODO New key - Add a translation
"item.preview.dc.identifier.doi" : "DOI",
// "item.preview.person.familyName": "Surname:",
@@ -3644,28 +3391,22 @@
"item.preview.person.identifier.orcid": "ORCID:",
// "item.preview.project.funder.name": "Funder:",
- // TODO New key - Add a translation
- "item.preview.project.funder.name": "Funder:",
+ "item.preview.project.funder.name": "Демеуші:",
// "item.preview.project.funder.identifier": "Funder Identifier:",
- // TODO New key - Add a translation
- "item.preview.project.funder.identifier": "Funder Identifier:",
+ "item.preview.project.funder.identifier": "Демеуші идентификаторы:",
// "item.preview.oaire.awardNumber": "Funding ID:",
- // TODO New key - Add a translation
- "item.preview.oaire.awardNumber": "Funding ID:",
+ "item.preview.oaire.awardNumber": "Қаржыландыру сәйкестендіргіші:",
// "item.preview.dc.title.alternative": "Acronym:",
- // TODO New key - Add a translation
- "item.preview.dc.title.alternative": "Acronym:",
+ "item.preview.dc.title.alternative": "Акроним:",
// "item.preview.dc.coverage.spatial": "Jurisdiction:",
- // TODO New key - Add a translation
- "item.preview.dc.coverage.spatial": "Jurisdiction:",
+ "item.preview.dc.coverage.spatial": "Юрисдикция:",
// "item.preview.oaire.fundingStream": "Funding Stream:",
- // TODO New key - Add a translation
- "item.preview.oaire.fundingStream": "Funding Stream:",
+ "item.preview.oaire.fundingStream": "Қаржыландыру ағыны:",
@@ -3699,8 +3440,7 @@
"item.version.history.selected": "Таңдалған нұсқа",
// "item.version.history.selected.alert": "You are currently viewing version {{version}} of the item.",
- // TODO New key - Add a translation
- "item.version.history.selected.alert": "You are currently viewing version {{version}} of the item.",
+ "item.version.history.selected.alert": "Осы кезде сіз элементтің {{version}} нұсқасын қарап шығасыз.",
// "item.version.history.table.version": "Version",
"item.version.history.table.version": "Нұсқа",
@@ -3718,44 +3458,34 @@
"item.version.history.table.summary": "Қысқаша мазмұны",
// "item.version.history.table.workspaceItem": "Workspace item",
- // TODO New key - Add a translation
- "item.version.history.table.workspaceItem": "Workspace item",
+ "item.version.history.table.workspaceItem": "Жұмыс аймағының элементі",
// "item.version.history.table.workflowItem": "Workflow item",
- // TODO New key - Add a translation
- "item.version.history.table.workflowItem": "Workflow item",
+ "item.version.history.table.workflowItem": "Жұмыс процесінің элементі",
// "item.version.history.table.actions": "Action",
- // TODO New key - Add a translation
- "item.version.history.table.actions": "Action",
+ "item.version.history.table.actions": "Әрекет",
// "item.version.history.table.action.editWorkspaceItem": "Edit workspace item",
- // TODO New key - Add a translation
- "item.version.history.table.action.editWorkspaceItem": "Edit workspace item",
+ "item.version.history.table.action.editWorkspaceItem": "Жұмыс аймағының элементін өңдеу",
// "item.version.history.table.action.editSummary": "Edit summary",
- // TODO New key - Add a translation
- "item.version.history.table.action.editSummary": "Edit summary",
+ "item.version.history.table.action.editSummary": "Қорытындыны өзгерту",
// "item.version.history.table.action.saveSummary": "Save summary edits",
- // TODO New key - Add a translation
- "item.version.history.table.action.saveSummary": "Save summary edits",
+ "item.version.history.table.action.saveSummary": "Қорытынды түзетулерді сақтау",
// "item.version.history.table.action.discardSummary": "Discard summary edits",
- // TODO New key - Add a translation
- "item.version.history.table.action.discardSummary": "Discard summary edits",
+ "item.version.history.table.action.discardSummary": "Қорытынды түзетулерді болдырмау",
// "item.version.history.table.action.newVersion": "Create new version from this one",
- // TODO New key - Add a translation
- "item.version.history.table.action.newVersion": "Create new version from this one",
+ "item.version.history.table.action.newVersion": "Осыдан жаңа нұсқа жасаңыз",
// "item.version.history.table.action.deleteVersion": "Delete version",
- // TODO New key - Add a translation
- "item.version.history.table.action.deleteVersion": "Delete version",
+ "item.version.history.table.action.deleteVersion": "Нұсқаны өшіру",
// "item.version.history.table.action.hasDraft": "A new version cannot be created because there is an inprogress submission in the version history",
- // TODO New key - Add a translation
- "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": "Жаңа нұсқаны жасау мүмкін емес, өйткені нұсқа тарихында аяқталмаған бағынымдар бар",
// "item.version.notice": "This is not the latest version of this item. The latest version can be found
here .",
@@ -3763,102 +3493,78 @@
// "item.version.create.modal.header": "New version",
- // TODO New key - Add a translation
- "item.version.create.modal.header": "New version",
+ "item.version.create.modal.header": "Жаңа нұсқа",
// "item.version.create.modal.text": "Create a new version for this item",
- // TODO New key - Add a translation
- "item.version.create.modal.text": "Create a new version for this item",
+ "item.version.create.modal.text": "Осы элементтің жаңа нұсқасын жасаңыз",
// "item.version.create.modal.text.startingFrom": "starting from version {{version}}",
- // TODO New key - Add a translation
- "item.version.create.modal.text.startingFrom": "starting from version {{version}}",
+ "item.version.create.modal.text.startingFrom": "{{version}} нұсқасынан бастап",
// "item.version.create.modal.button.confirm": "Create",
- // TODO New key - Add a translation
- "item.version.create.modal.button.confirm": "Create",
+ "item.version.create.modal.button.confirm": "Құру",
// "item.version.create.modal.button.confirm.tooltip": "Create new version",
- // TODO New key - Add a translation
- "item.version.create.modal.button.confirm.tooltip": "Create new version",
+ "item.version.create.modal.button.confirm.tooltip": "Жаңа нұсқаны жасау",
// "item.version.create.modal.button.cancel": "Cancel",
- // TODO New key - Add a translation
- "item.version.create.modal.button.cancel": "Cancel",
+ "item.version.create.modal.button.cancel": "Алып тастау",
// "item.version.create.modal.button.cancel.tooltip": "Do not create new version",
- // TODO New key - Add a translation
- "item.version.create.modal.button.cancel.tooltip": "Do not create new version",
+ "item.version.create.modal.button.cancel.tooltip": "Жаңа нұсқаны жасамаңыз",
// "item.version.create.modal.form.summary.label": "Summary",
- // TODO New key - Add a translation
- "item.version.create.modal.form.summary.label": "Summary",
+ "item.version.create.modal.form.summary.label": "Түйіндеме",
// "item.version.create.modal.form.summary.placeholder": "Insert the summary for the new version",
- // TODO New key - Add a translation
- "item.version.create.modal.form.summary.placeholder": "Insert the summary for the new version",
+ "item.version.create.modal.form.summary.placeholder": "Жаңа нұсқаның қысқаша мазмұнын салыңыз",
// "item.version.create.modal.submitted.header": "Creating new version...",
- // TODO New key - Add a translation
- "item.version.create.modal.submitted.header": "Creating new version...",
+ "item.version.create.modal.submitted.header": "Жаңа нұсқасын жасау...",
// "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.",
- // TODO New key - Add a translation
- "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": "Жаңа нұсқа жасалуда. Егер элемент көптеген байланыстарға ие болса, біраз уақыт кетуі мүмкін.",
// "item.version.create.notification.success" : "New version has been created with version number {{version}}",
- // TODO New key - Add a translation
- "item.version.create.notification.success" : "New version has been created with version number {{version}}",
+ "item.version.create.notification.success" : "Жаңа нұсқа {{version}} нұсқасының нөмірімен жасалды",
// "item.version.create.notification.failure" : "New version has not been created",
- // TODO New key - Add a translation
- "item.version.create.notification.failure" : "New version has not been created",
+ "item.version.create.notification.failure" : "Жаңа нұсқа жасалмады",
// "item.version.create.notification.inProgress" : "A new version cannot be created because there is an inprogress submission in the version history",
- // TODO New key - Add a translation
- "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" : "Жаңа нұсқаны жасау мүмкін емес, өйткені нұсқа тарихында аяқталмаған жіберу бар",
// "item.version.delete.modal.header": "Delete version",
- // TODO New key - Add a translation
- "item.version.delete.modal.header": "Delete version",
+ "item.version.delete.modal.header": "Нұсқаны өшіру",
// "item.version.delete.modal.text": "Do you want to delete version {{version}}?",
- // TODO New key - Add a translation
- "item.version.delete.modal.text": "Do you want to delete version {{version}}?",
+ "item.version.delete.modal.text": "Сіз {{version}} нұсқасын жойғыңыз келе ме?",
// "item.version.delete.modal.button.confirm": "Delete",
- // TODO New key - Add a translation
- "item.version.delete.modal.button.confirm": "Delete",
+ "item.version.delete.modal.button.confirm": "Жою",
// "item.version.delete.modal.button.confirm.tooltip": "Delete this version",
- // TODO New key - Add a translation
- "item.version.delete.modal.button.confirm.tooltip": "Delete this version",
+ "item.version.delete.modal.button.confirm.tooltip": "Бұл нұсқаны жою",
// "item.version.delete.modal.button.cancel": "Cancel",
- // TODO New key - Add a translation
- "item.version.delete.modal.button.cancel": "Cancel",
+ "item.version.delete.modal.button.cancel": "Алып тастау",
// "item.version.delete.modal.button.cancel.tooltip": "Do not delete this version",
- // TODO New key - Add a translation
- "item.version.delete.modal.button.cancel.tooltip": "Do not delete this version",
+ "item.version.delete.modal.button.cancel.tooltip": "Бұл нұсқаны жоймаңыз",
// "item.version.delete.notification.success" : "Version number {{version}} has been deleted",
- // TODO New key - Add a translation
- "item.version.delete.notification.success" : "Version number {{version}} has been deleted",
+ "item.version.delete.notification.success" : "Нұсқа нөмірі {{version}} жойылды",
// "item.version.delete.notification.failure" : "Version number {{version}} has not been deleted",
- // TODO New key - Add a translation
- "item.version.delete.notification.failure" : "Version number {{version}} has not been deleted",
+ "item.version.delete.notification.failure" : "Нұсқа нөмірі {{version}} жойылған жоқ",
// "item.version.edit.notification.success" : "The summary of version number {{version}} has been changed",
- // TODO New key - Add a translation
- "item.version.edit.notification.success" : "The summary of version number {{version}} has been changed",
+ "item.version.edit.notification.success" : "Нұсқа нөмірінің қысқаша сипаттамасы {{version}} өзгертілді",
// "item.version.edit.notification.failure" : "The summary of version number {{version}} has not been changed",
- // TODO New key - Add a translation
- "item.version.edit.notification.failure" : "The summary of version number {{version}} has not been changed",
+ "item.version.edit.notification.failure" : "Нұсқа нөмірінің қысқаша сипаттамасы {{version}} өзгертілген жоқ",
@@ -3881,18 +3587,16 @@
"journal.page.publisher": "Баспагер",
// "journal.page.titleprefix": "Journal: ",
- "journal.page.titleprefix": "Күнделік:",
+ "journal.page.titleprefix": "Журнал:",
// "journal.search.results.head": "Journal Search Results",
"journal.search.results.head":"Журналдағы іздеу нәтижелері",
// "journal-relationships.search.results.head": "Journal Search Results",
- // TODO New key - Add a translation
- "journal-relationships.search.results.head": "Journal Search Results",
+ "journal-relationships.search.results.head": "Журналдағы іздеу нәтижелері",
// "journal.search.title": "Journal Search",
- // TODO Source message changed - Revise the translation
- "journal.search.title": "DSpace Angular :: Журналдағы іздеу",
+ "journal.search.title": "Журналдағы іздеу",
@@ -3938,55 +3642,44 @@
"journalvolume.page.issuedate": "Шығарылған күні",
// "journalvolume.page.titleprefix": "Journal Volume: ",
- "journalvolume.page.titleprefix":"Журнал көлемі:",
+ "journalvolume.page.titleprefix": "Журнал көлемі:",
// "journalvolume.page.volume": "Volume",
"journalvolume.page.volume": "Көлемі",
// "iiifsearchable.listelement.badge": "Document Media",
- // TODO New key - Add a translation
- "iiifsearchable.listelement.badge": "Document Media",
+ "iiifsearchable.listelement.badge": "Құжаттың медиасы",
// "iiifsearchable.page.titleprefix": "Document: ",
- // TODO New key - Add a translation
- "iiifsearchable.page.titleprefix": "Document: ",
+ "iiifsearchable.page.titleprefix": "Құжат: ",
// "iiifsearchable.page.doi": "Permanent Link: ",
- // TODO New key - Add a translation
- "iiifsearchable.page.doi": "Permanent Link: ",
+ "iiifsearchable.page.doi": "Тұрақты сілтеме: ",
// "iiifsearchable.page.issue": "Issue: ",
- // TODO New key - Add a translation
- "iiifsearchable.page.issue": "Issue: ",
+ "iiifsearchable.page.issue": "Шығарылымы: ",
// "iiifsearchable.page.description": "Description: ",
- // TODO New key - Add a translation
- "iiifsearchable.page.description": "Description: ",
+ "iiifsearchable.page.description": "Сипаттамасы: ",
// "iiifviewer.fullscreen.notice": "Use full screen for better viewing.",
- // TODO New key - Add a translation
- "iiifviewer.fullscreen.notice": "Use full screen for better viewing.",
+ "iiifviewer.fullscreen.notice": "Анық көру үшін толық экранды пайдаланыңыз.",
// "iiif.listelement.badge": "Image Media",
- // TODO New key - Add a translation
- "iiif.listelement.badge": "Image Media",
+ "iiif.listelement.badge": "Белгіше",
// "iiif.page.titleprefix": "Image: ",
- // TODO New key - Add a translation
- "iiif.page.titleprefix": "Image: ",
+ "iiif.page.titleprefix": "Суреті: ",
// "iiif.page.doi": "Permanent Link: ",
- // TODO New key - Add a translation
- "iiif.page.doi": "Permanent Link: ",
+ "iiif.page.doi": "Тұрақты сілтеме: ",
// "iiif.page.issue": "Issue: ",
- // TODO New key - Add a translation
- "iiif.page.issue": "Issue: ",
+ "iiif.page.issue": "Шығарылымы: ",
// "iiif.page.description": "Description: ",
- // TODO New key - Add a translation
- "iiif.page.description": "Description: ",
+ "iiif.page.description": "Сипаттамасы: ",
// "loading.bitstream": "Loading bitstream...",
@@ -4061,15 +3754,13 @@
"login.form.or-divider": "немесе",
// "login.form.oidc": "Log in with OIDC",
- // TODO New key - Add a translation
- "login.form.oidc": "Log in with OIDC",
+ "login.form.oidc": "OIDC-пен кіру",
// "login.form.orcid": "Log in with ORCID",
- // TODO New key - Add a translation
- "login.form.orcid": "Log in with ORCID",
+ "login.form.orcid": "ORCID-пен кіру",
// "login.form.password": "Password",
- "login.form.password":"Пароль",
+ "login.form.password": "Пароль",
// "login.form.shibboleth": "Log in with Shibboleth",
"login.form.shibboleth": "Шибболетпен кіру",
@@ -4104,8 +3795,7 @@
"menu.header.image.logo": "Репозиторий логотипі",
// "menu.header.admin.description": "Management menu",
- // TODO New key - Add a translation
- "menu.header.admin.description": "Management menu",
+ "menu.header.admin.description": "Басқару мәзірі",
@@ -4209,8 +3899,7 @@
"menu.section.icon.control_panel": "Басқару тақтасының мәзір бөлімі",
// "menu.section.icon.curation_tasks": "Curation Task menu section",
- // TODO New key - Add a translation
- "menu.section.icon.curation_tasks": "Curation Task menu section",
+ "menu.section.icon.curation_tasks": "Кураторлық тапсырмалар мәзірінің бөлімі",
// "menu.section.icon.edit": "Edit menu section",
"menu.section.icon.edit": "Өңдеу мәзір бөлімі",
@@ -4222,8 +3911,7 @@
"menu.section.icon.find": "Мәзір бөлімін табу",
// "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": "Жағдайды тексеру мәзірінің бөлімі",
// "menu.section.icon.import": "Import menu section",
"menu.section.icon.import": "Импорттау мәзірі бөлімі",
@@ -4235,8 +3923,7 @@
"menu.section.icon.pin": "Бүйірлік тақтаны бекіту",
// "menu.section.icon.processes": "Processes Health",
- // TODO Source message changed - Revise the translation
- "menu.section.icon.processes": "Процесстер мәзірі бөлімі",
+ "menu.section.icon.processes": "Процесстердің жағдайы",
// "menu.section.icon.registries": "Registries menu section",
"menu.section.icon.registries": "Тіркеулер мәзірі бөлімі",
@@ -4245,8 +3932,7 @@
"menu.section.icon.statistics_task": "Статистика тапсырмалары мәзірі бөлімі",
// "menu.section.icon.workflow": "Administer workflow menu section",
- // TODO New key - Add a translation
- "menu.section.icon.workflow": "Administer workflow menu section",
+ "menu.section.icon.workflow": "Мәзір бөлімі жұмыс процесін басқару",
// "menu.section.icon.unpin": "Unpin sidebar",
"menu.section.icon.unpin": "Бүйірлік тақтаны босату",
@@ -4293,11 +3979,10 @@
// "menu.section.processes": "Processes",
- "menu.section.processes": "процестер",
+ "menu.section.processes": "Процестер",
// "menu.section.health": "Health",
- // TODO New key - Add a translation
- "menu.section.health": "Health",
+ "menu.section.health": "Жағдайы",
@@ -4350,25 +4035,22 @@
// "menu.section.toggle.statistics_task": "Toggle Statistics Task section",
"menu.section.toggle.statistics_task": "Статистика тапсырмасы бөлімін ауыстыру",
-
// "menu.section.workflow": "Administer Workflow",
"menu.section.workflow": "Жұмыс процесін басқару",
// "metadata-export-search.tooltip": "Export search results as CSV",
- // TODO New key - Add a translation
- "metadata-export-search.tooltip": "Export search results as CSV",
+ "metadata-export-search.tooltip": "Іздеу нәтижелерін CSV форматында экспорттау",
+
// "metadata-export-search.submit.success": "The export was started successfully",
- // TODO New key - Add a translation
- "metadata-export-search.submit.success": "The export was started successfully",
+ "metadata-export-search.submit.success": "Экспорт сәтті басталды",
+
// "metadata-export-search.submit.error": "Starting the export has failed",
- // TODO New key - Add a translation
- "metadata-export-search.submit.error": "Starting the export has failed",
+ "metadata-export-search.submit.error": "Экспортты іске қосу мүмкін емес",
// "mydspace.breadcrumbs": "MyDSpace",
- // TODO New key - Add a translation
- "mydspace.breadcrumbs": "MyDSpace",
+ "mydspace.breadcrumbs": "Ортам",
// "mydspace.description": "",
"mydspace.description": "",
@@ -4392,7 +4074,7 @@
"mydspace.messages.mark-as-unread": "Оқылмаған деп белгілеу",
// "mydspace.messages.no-content": "No content.",
- "mydspace.messages.no-content":"Мазмұн жоқ.",
+ "mydspace.messages.no-content":"Мазмұны жоқ.",
// "mydspace.messages.no-messages": "No messages yet.",
"mydspace.messages.no-messages": "Әлі хабарлар жоқ.",
@@ -4452,12 +4134,10 @@
"mydspace.results.no-uri": "Uri жоқ",
// "mydspace.search-form.placeholder": "Search in mydspace...",
- // TODO New key - Add a translation
- "mydspace.search-form.placeholder": "Search in mydspace...",
+ "mydspace.search-form.placeholder": "Өз ортадан іздеу...",
// "mydspace.show.workflow": "Workflow tasks",
- // TODO Source message changed - Revise the translation
- "mydspace.show.workflow": "Барлық тапсырмалар",
+ "mydspace.show.workflow": "Жұмыс процесінің міндеттері",
// "mydspace.show.workspace": "Your Submissions",
"mydspace.show.workspace":"Сіздің өтініштеріңіз",
@@ -4513,15 +4193,13 @@
"nav.login": "Кіру",
// "nav.logout": "User profile menu and Log Out",
- // TODO Source message changed - Revise the translation
- "nav.logout": "Шығу",
+ "nav.logout": "Пайдаланушы профилі мәзірі және шығу",
// "nav.main.description": "Main navigation bar",
- // TODO New key - Add a translation
- "nav.main.description": "Main navigation bar",
+ "nav.main.description": "Басты навигация жолағы",
// "nav.mydspace": "MyDSpace",
- "nav.mydspace": "MyDSpace",
+ "nav.mydspace": "Менім DSpace",
// "nav.profile": "Profile",
"nav.profile": "Профиль",
@@ -4536,16 +4214,13 @@
"nav.stop-impersonating": "Eperson атын шығаруды тоқтатыңыз",
// "nav.toggle" : "Toggle navigation",
- // TODO New key - Add a translation
- "nav.toggle" : "Toggle navigation",
+ "nav.toggle" : "Навигацияны ауыстыру",
// "nav.user.description" : "User profile bar",
- // TODO New key - Add a translation
- "nav.user.description" : "User profile bar",
+ "nav.user.description" : "Пайдаланушы профилі тақтасы",
// "none.listelement.badge": "Item",
- // TODO New key - Add a translation
- "none.listelement.badge": "Item",
+ "none.listelement.badge": "Элемент",
// "orgunit.listelement.badge": "Organizational Unit",
@@ -4575,8 +4250,7 @@
// "pagination.options.description": "Pagination options",
- // TODO New key - Add a translation
- "pagination.options.description": "Pagination options",
+ "pagination.options.description": "Бетті бөлу нұсқалары",
// "pagination.results-per-page": "Results Per Page",
"pagination.results-per-page": "Әр беттегі нәтижелер",
@@ -4608,7 +4282,7 @@
"person.page.email": "Электрондық мекенжайы",
// "person.page.firstname": "First Name",
- "person.page.firstname":"Имя",
+ "person.page.firstname":"Аты",
// "person.page.jobtitle": "Job Title",
"person.page.jobtitle": "Жұмыс атауы",
@@ -4617,8 +4291,7 @@
"person.page.lastname": "Фамилия",
// "person.page.name": "Name",
- // TODO New key - Add a translation
- "person.page.name": "Name",
+ "person.page.name": "Аты",
// "person.page.link.full": "Show all metadata",
"person.page.link.full": "Барлық метамәліметті көрсету",
@@ -4630,18 +4303,16 @@
"person.page.staffid": "Қызметкерлердің жеке куәлігі",
// "person.page.titleprefix": "Person: ",
- "person.page.titleprefix":"Адам: ",
+ "person.page.titleprefix": "Адам: ",
// "person.search.results.head": "Person Search Results",
"person.search.results.head": "Тұлға іздеу нәтижелері",
// "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": "Тұлға іздеу нәтижелері",
// "person.search.title": "Person Search",
- // TODO Source message changed - Revise the translation
- "person.search.title": "DSpace Angular :: Адамды іздеу",
+ "person.search.title": "Адамды іздеу",
@@ -4751,42 +4422,33 @@
"process.detail.create" : "Ұқсас процесті жасау",
// "process.detail.actions": "Actions",
- // TODO New key - Add a translation
- "process.detail.actions": "Actions",
+ "process.detail.actions": "Әрекеттер",
// "process.detail.delete.button": "Delete process",
- // TODO New key - Add a translation
- "process.detail.delete.button": "Delete process",
+ "process.detail.delete.button": "Процесс жою",
// "process.detail.delete.header": "Delete process",
- // TODO New key - Add a translation
- "process.detail.delete.header": "Delete process",
+ "process.detail.delete.header": "Процесс жою",
// "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": "Ағымдағы процесті жойғыңыз келетініне сенімдісіз бе?",
// "process.detail.delete.cancel": "Cancel",
- // TODO New key - Add a translation
- "process.detail.delete.cancel": "Cancel",
+ "process.detail.delete.cancel": "Алып тастау",
// "process.detail.delete.confirm": "Delete process",
- // TODO New key - Add a translation
- "process.detail.delete.confirm": "Delete process",
+ "process.detail.delete.confirm": "Процесс жою.",
// "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": "Процесс сәтті жойылды.",
// "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": "Процесс жойылған кезде бірдеңе дұрыс болмады",
// "process.overview.table.finish" : "Finish time (UTC)",
- // TODO Source message changed - Revise the translation
- "process.overview.table.finish" :"Аяқтау уақыты",
+ "process.overview.table.finish" : "Аяқтау уақыты (UTC)",
// "process.overview.table.id" : "Process ID",
"process.overview.table.id" :"Процесс идентификаторы",
@@ -4814,40 +4476,31 @@
"process.overview.new": "Жаңа",
// "process.overview.table.actions": "Actions",
- // TODO New key - Add a translation
- "process.overview.table.actions": "Actions",
+ "process.overview.table.actions": "Әрекеттер",
// "process.overview.delete": "Delete {{count}} processes",
- // TODO New key - Add a translation
- "process.overview.delete": "Delete {{count}} processes",
+ "process.overview.delete": "{{count}} процестерді жою",
// "process.overview.delete.clear": "Clear delete selection",
- // TODO New key - Add a translation
- "process.overview.delete.clear": "Clear delete selection",
+ "process.overview.delete.clear": "Өшіруді өшіру",
// "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}} процестер жойылады. Жоюдың толық аяқталғанын күтіңіз. Бұл біраз уақытты алуы мүмкін екенін ескеріңіз.",
// "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": "Сіз {{count}} процесс(тер) жойғыңыз келетініне сенімдісіз бе?",
// "process.overview.delete.header": "Delete processes",
- // TODO New key - Add a translation
- "process.overview.delete.header": "Delete processes",
+ "process.overview.delete.header": "Процесті жою",
// "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": "Процесті жою қатесі",
// "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": "{{processId}} идентификаторы бар Процесс жойылмады. Қалған процестер әлі де жойылады. ",
// "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}} процестер сәтті жойылды",
@@ -4855,21 +4508,19 @@
"profile.breadcrumbs": "Профильді жаңарту",
// "profile.card.identify": "Identify",
- "profile.card.identify":"Анықтау",
+ "profile.card.identify": "Анықтау",
// "profile.card.security": "Security",
"profile.card.security": "Қауіпсіздік",
// "profile.form.submit": "Save",
- // TODO Source message changed - Revise the translation
"profile.form.submit": "Профильді жаңарту",
// "profile.groups.head": "Authorization groups you belong to",
"profile.groups.head": "Сіз тиесілі авторизация топтары",
// "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": "Авторизация сіз тиесілі арнайы топтар",
// "profile.head": "Update Profile",
"profile.head": "Профильді жаңарту",
@@ -4941,11 +4592,10 @@
"profile.title":"Профильді жаңарту",
// "profile.card.researcher": "Researcher Profile",
- // TODO New key - Add a translation
- "profile.card.researcher": "Researcher Profile",
+ "profile.card.researcher": "Зерттеуші профилі",
// "project.listelement.badge": "Research Project",
- "project.listelement.badge":"Зерттеу жобасы",
+ "project.listelement.badge": "Зерттеу жобасы",
// "project.page.contributor": "Contributors",
"project.page.contributor": "Қалымдар",
@@ -4978,8 +4628,7 @@
"project.search.results.head": "Жобаны іздеу нәтижелері",
// "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": "Жобаны іздеу нәтижелері",
@@ -5011,25 +4660,20 @@
"publication.search.results.head": "Жарияланымдарды іздеу нәтижелері",
// "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": "Жарияланымды іздеу нәтижелері",
// "publication.search.title": "Publication Search",
- // TODO Source message changed - Revise the translation
- "publication.search.title": "DSpace Angular :: Жарияланымдарды іздеу",
+ "publication.search.title": "Жарияланымдарды іздеу",
// "media-viewer.next": "Next",
- // TODO New key - Add a translation
- "media-viewer.next": "Next",
+ "media-viewer.next": "Келесісі",
// "media-viewer.previous": "Previous",
- // TODO New key - Add a translation
- "media-viewer.previous": "Previous",
+ "media-viewer.previous": "Алдыңғы",
// "media-viewer.playlist": "Playlist",
- // TODO New key - Add a translation
- "media-viewer.playlist": "Playlist",
+ "media-viewer.playlist": "Ойнату тізімі",
// "register-email.title": "New user registration",
@@ -5199,14 +4843,12 @@
// "repository.image.logo": "Repository logo",
- "repository.image.logo": "Repository logo",
+ "repository.image.logo": "Репозиторий логотипі",
// "repository.title.prefix": "DSpace Angular :: ",
- // TODO New key - Add a translation
"repository.title.prefix": "DSpace Angular :: ",
// "repository.title.prefixDSpace": "DSpace Angular ::",
- // TODO New key - Add a translation
"repository.title.prefixDSpace": "DSpace Angular ::",
@@ -5262,12 +4904,10 @@
"resource-policies.edit.page.failure.content":"Ресурстар саясатын өңдеуде қате пайда болды.",
// "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": "Ресурстар саясатының мақсатты нысанын (тұлғаны немесе топты) өңдеу кезінде қате пайда болды.",
// "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": "Ресурстар саясатын өңдеу кезінде қате пайда болды. Мақсат (адам немесе топ) сәтті жаңартылды.",
// "resource-policies.edit.page.success.content": "Operation successful",
"resource-policies.edit.page.success.content": "Операция сәтті өтті",
@@ -5303,23 +4943,18 @@
"resource-policies.form.eperson-group-list.table.headers.name": "Аты",
// "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": "Түрін өзгерту мүмкін емес",
// "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": "Адамды топпен алмастыру мүмкін емес.",
// "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": "Топты 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": "Ағымдағы ресурстар саясатын жойып, дұрыс түрімен жаңасын жасаңыз.",
// "resource-policies.form.eperson-group-list.modal.close": "Ok",
- // TODO New key - Add a translation
"resource-policies.form.eperson-group-list.modal.close": "Ok",
// "resource-policies.form.date.end.label": "End Date",
@@ -5397,15 +5032,13 @@
"search.switch-configuration.title": "Көрсету",
// "search.title": "Search",
- // TODO Source message changed - Revise the translation
- "search.title": "DSpace Angular :: Іздеу",
+ "search.title": "Іздеу",
// "search.breadcrumbs": "Search",
"search.breadcrumbs": "Іздеу",
// "search.search-form.placeholder": "Search the repository ...",
- // TODO New key - Add a translation
- "search.search-form.placeholder": "Search the repository ...",
+ "search.search-form.placeholder": " Репозиторидең іздеу ...",
// "search.filters.applied.f.author": "Author",
@@ -5421,14 +5054,13 @@
"search.filters.applied.f.dateSubmitted": "Ұсыну күні",
// "search.filters.applied.f.discoverable": "Non-discoverable",
- // TODO Source message changed - Revise the translation
"search.filters.applied.f.discoverable": "Жеке",
// "search.filters.applied.f.entityType": "Item Type",
"search.filters.applied.f.entityType": "Өнім түрі",
// "search.filters.applied.f.has_content_in_original_bundle": "Has files",
- "search.filters.applied.f.has_content_in_original_bundle":"Файлдар бар",
+ "search.filters.applied.f.has_content_in_original_bundle": "Файлдар бар",
// "search.filters.applied.f.itemtype": "Type",
"search.filters.applied.f.itemtype": "Түрі",
@@ -5463,8 +5095,7 @@
"search.filters.filter.author.placeholder": "Автордың аты",
// "search.filters.filter.author.label": "Search author name",
- // TODO New key - Add a translation
- "search.filters.filter.author.label": "Search author name",
+ "search.filters.filter.author.label": "Іздеу авторының аты",
// "search.filters.filter.birthDate.head": "Birth Date",
"search.filters.filter.birthDate.head": "Туған күні",
@@ -5473,12 +5104,10 @@
"search.filters.filter.birthDate.placeholder":"Туған күні",
// "search.filters.filter.birthDate.label": "Search birth date",
- // TODO New key - Add a translation
- "search.filters.filter.birthDate.label": "Search birth date",
+ "search.filters.filter.birthDate.label": "Туған күнді іздеу",
// "search.filters.filter.collapse": "Collapse filter",
- // TODO New key - Add a translation
- "search.filters.filter.collapse": "Collapse filter",
+ "search.filters.filter.collapse": "Сүзгіні кішірейту",
// "search.filters.filter.creativeDatePublished.head": "Date Published",
"search.filters.filter.creativeDatePublished.head": "Жарияланған күні",
@@ -5487,8 +5116,7 @@
"search.filters.filter.creativeDatePublished.placeholder": "Жарияланған күні",
// "search.filters.filter.creativeDatePublished.label": "Search date published",
- // TODO New key - Add a translation
- "search.filters.filter.creativeDatePublished.label": "Search date published",
+ "search.filters.filter.creativeDatePublished.label": "Жарияланған күнімен іздеу",
// "search.filters.filter.creativeWorkEditor.head": "Editor",
"search.filters.filter.creativeWorkEditor.head": "Редактор",
@@ -5497,8 +5125,7 @@
"search.filters.filter.creativeWorkEditor.placeholder": "Редактор",
// "search.filters.filter.creativeWorkEditor.label": "Search editor",
- // TODO New key - Add a translation
- "search.filters.filter.creativeWorkEditor.label": "Search editor",
+ "search.filters.filter.creativeWorkEditor.label": "Редакторды іздеу",
// "search.filters.filter.creativeWorkKeywords.head": "Subject",
"search.filters.filter.creativeWorkKeywords.head": "Тақырып",
@@ -5507,8 +5134,7 @@
"search.filters.filter.creativeWorkKeywords.placeholder": "Тақырыбы",
// "search.filters.filter.creativeWorkKeywords.label": "Search subject",
- // TODO New key - Add a translation
- "search.filters.filter.creativeWorkKeywords.label": "Search subject",
+ "search.filters.filter.creativeWorkKeywords.label": "Іздеу тақырыбы",
// "search.filters.filter.creativeWorkPublisher.head": "Publisher",
"search.filters.filter.creativeWorkPublisher.head": "Баспагер",
@@ -5517,27 +5143,22 @@
"search.filters.filter.creativeWorkPublisher.placeholder":"Баспагер",
// "search.filters.filter.creativeWorkPublisher.label": "Search publisher",
- // TODO New key - Add a translation
- "search.filters.filter.creativeWorkPublisher.label": "Search publisher",
+ "search.filters.filter.creativeWorkPublisher.label": "Баспагерді іздеу",
// "search.filters.filter.dateIssued.head": "Date",
- "search.filters.filter.dateIssued.head": "Кездесуге",
+ "search.filters.filter.dateIssued.head": "Күн",
// "search.filters.filter.dateIssued.max.placeholder": "Maximum Date",
- // TODO Source message changed - Revise the translation
- "search.filters.filter.dateIssued.max.placeholder": "Ең төменгі күн",
+ "search.filters.filter.dateIssued.max.placeholder": "Ең жоғары күн",
// "search.filters.filter.dateIssued.max.label": "End",
- // TODO New key - Add a translation
- "search.filters.filter.dateIssued.max.label": "End",
+ "search.filters.filter.dateIssued.max.label": "Соңы",
// "search.filters.filter.dateIssued.min.placeholder": "Minimum Date",
- // TODO Source message changed - Revise the translation
- "search.filters.filter.dateIssued.min.placeholder":"Максималды күн",
+ "search.filters.filter.dateIssued.min.placeholder":"Минималды күн",
// "search.filters.filter.dateIssued.min.label": "Start",
- // TODO New key - Add a translation
- "search.filters.filter.dateIssued.min.label": "Start",
+ "search.filters.filter.dateIssued.min.label": "Бастау",
// "search.filters.filter.dateSubmitted.head": "Date submitted",
"search.filters.filter.dateSubmitted.head": "Жіберілген күні",
@@ -5546,15 +5167,13 @@
"search.filters.filter.dateSubmitted.placeholder": "Ұсыну күні",
// "search.filters.filter.dateSubmitted.label": "Search date submitted",
- // TODO New key - Add a translation
- "search.filters.filter.dateSubmitted.label": "Search date submitted",
+ "search.filters.filter.dateSubmitted.label": "Жіберілген күнімен сұрау салу",
// "search.filters.filter.discoverable.head": "Non-discoverable",
- // TODO Source message changed - Revise the translation
"search.filters.filter.discoverable.head": "Жеке",
// "search.filters.filter.withdrawn.head": "Withdrawn",
- "search.filters.filter.withdrawn.head": "Отозванный",
+ "search.filters.filter.withdrawn.head": "Алынған",
// "search.filters.filter.entityType.head": "Item Type",
"search.filters.filter.entityType.head": "Өнім түрі",
@@ -5563,12 +5182,10 @@
"search.filters.filter.entityType.placeholder": "Өнім түрі",
// "search.filters.filter.entityType.label": "Search item type",
- // TODO New key - Add a translation
- "search.filters.filter.entityType.label": "Search item type",
+ "search.filters.filter.entityType.label": "Іздеу элементінің түрі",
// "search.filters.filter.expand": "Expand filter",
- // TODO New key - Add a translation
- "search.filters.filter.expand": "Expand filter",
+ "search.filters.filter.expand": "Сүзгіні жаю",
// "search.filters.filter.has_content_in_original_bundle.head": "Has files",
"search.filters.filter.has_content_in_original_bundle.head": "Файлдар бар",
@@ -5580,8 +5197,7 @@
"search.filters.filter.itemtype.placeholder":"Түрі",
// "search.filters.filter.itemtype.label": "Search type",
- // TODO New key - Add a translation
- "search.filters.filter.itemtype.label": "Search type",
+ "search.filters.filter.itemtype.label": "Түрі бойынша іздеу",
// "search.filters.filter.jobTitle.head": "Job Title",
"search.filters.filter.jobTitle.head": "Лауазымы",
@@ -5590,8 +5206,7 @@
"search.filters.filter.jobTitle.placeholder":"Лауазымы",
// "search.filters.filter.jobTitle.label": "Search job title",
- // TODO New key - Add a translation
- "search.filters.filter.jobTitle.label": "Search job title",
+ "search.filters.filter.jobTitle.label": "Лауазым атауын іздеу",
// "search.filters.filter.knowsLanguage.head": "Known language",
"search.filters.filter.knowsLanguage.head": "Белгілі тіл",
@@ -5600,8 +5215,7 @@
"search.filters.filter.knowsLanguage.placeholder": "Белгілі тіл",
// "search.filters.filter.knowsLanguage.label": "Search known language",
- // TODO New key - Add a translation
- "search.filters.filter.knowsLanguage.label": "Search known language",
+ "search.filters.filter.knowsLanguage.label": "Белгілі тілде іздеу",
// "search.filters.filter.namedresourcetype.head": "Status",
"search.filters.filter.namedresourcetype.head": "Мәртебе",
@@ -5610,8 +5224,7 @@
"search.filters.filter.namedresourcetype.placeholder": "Мәртебе",
// "search.filters.filter.namedresourcetype.label": "Search status",
- // TODO New key - Add a translation
- "search.filters.filter.namedresourcetype.label": "Search status",
+ "search.filters.filter.namedresourcetype.label": "Іздеу мәртебесі",
// "search.filters.filter.objectpeople.head": "People",
"search.filters.filter.objectpeople.head": "Адамдар",
@@ -5620,8 +5233,7 @@
"search.filters.filter.objectpeople.placeholder": "Адамдар",
// "search.filters.filter.objectpeople.label": "Search people",
- // TODO New key - Add a translation
- "search.filters.filter.objectpeople.label": "Search people",
+ "search.filters.filter.objectpeople.label": "Тұлғаны іздеу",
// "search.filters.filter.organizationAddressCountry.head": "Country",
"search.filters.filter.organizationAddressCountry.head": "Ел",
@@ -5630,8 +5242,7 @@
"search.filters.filter.organizationAddressCountry.placeholder": "Ел",
// "search.filters.filter.organizationAddressCountry.label": "Search country",
- // TODO New key - Add a translation
- "search.filters.filter.organizationAddressCountry.label": "Search country",
+ "search.filters.filter.organizationAddressCountry.label": "Елді іздеу",
// "search.filters.filter.organizationAddressLocality.head": "City",
"search.filters.filter.organizationAddressLocality.head": "Қала",
@@ -5640,8 +5251,7 @@
"search.filters.filter.organizationAddressLocality.placeholder": "Қаласы",
// "search.filters.filter.organizationAddressLocality.label": "Search city",
- // TODO New key - Add a translation
- "search.filters.filter.organizationAddressLocality.label": "Search city",
+ "search.filters.filter.organizationAddressLocality.label": "Қаланы іздеу",
// "search.filters.filter.organizationFoundingDate.head": "Date Founded",
"search.filters.filter.organizationFoundingDate.head": "Құрылған күні",
@@ -5650,8 +5260,7 @@
"search.filters.filter.organizationFoundingDate.placeholder": "Құрылған күні",
// "search.filters.filter.organizationFoundingDate.label": "Search date founded",
- // TODO New key - Add a translation
- "search.filters.filter.organizationFoundingDate.label": "Search date founded",
+ "search.filters.filter.organizationFoundingDate.label": "Құрылған күні бойынша іздеу",
// "search.filters.filter.scope.head": "Scope",
"search.filters.filter.scope.head": "Қолдану саласы",
@@ -5660,8 +5269,7 @@
"search.filters.filter.scope.placeholder": "Ауқым сүзгісі",
// "search.filters.filter.scope.label": "Search scope filter",
- // TODO New key - Add a translation
- "search.filters.filter.scope.label": "Search scope filter",
+ "search.filters.filter.scope.label": "Іздеу аумағының сүзгісі",
// "search.filters.filter.show-less": "Collapse",
"search.filters.filter.show-less": "Коллапс",
@@ -5676,8 +5284,7 @@
"search.filters.filter.subject.placeholder": "Тақырып",
// "search.filters.filter.subject.label": "Search subject",
- // TODO New key - Add a translation
- "search.filters.filter.subject.label": "Search subject",
+ "search.filters.filter.subject.label": "Іздеу тақырыбы",
// "search.filters.filter.submitter.head": "Submitter",
"search.filters.filter.submitter.head": "Жіберуші",
@@ -5686,8 +5293,7 @@
"search.filters.filter.submitter.placeholder":"Жіберуші",
// "search.filters.filter.submitter.label": "Search submitter",
- // TODO New key - Add a translation
- "search.filters.filter.submitter.label": "Search submitter",
+ "search.filters.filter.submitter.label": "Іздеу жіберушіні",
@@ -5726,8 +5332,7 @@
"search.filters.reset": "Сүзгілерді қалпына келтіру",
// "search.filters.search.submit": "Submit",
- // TODO New key - Add a translation
- "search.filters.search.submit": "Submit",
+ "search.filters.search.submit": "Орындау",
@@ -5735,12 +5340,10 @@
"search.form.search":"Іздеу",
// "search.form.search_dspace": "All repository",
- // TODO Source message changed - Revise the translation
- "search.form.search_dspace": "Іздеу кеңістігі",
+ "search.form.search_dspace": "Бүкіл репозиторий",
// "search.form.scope.all": "All of DSpace",
- // TODO New key - Add a translation
- "search.form.scope.all": "All of DSpace",
+ "search.form.scope.all": "Бүкіл DSpace",
@@ -5757,20 +5360,16 @@
"search.results.empty": "Сіздің іздеуіңіз нәтиже бермеді.",
// "search.results.view-result": "View",
- // TODO New key - Add a translation
- "search.results.view-result": "View",
+ "search.results.view-result": "Көрінісі",
// "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": "Сұрауды орындау кезінде қате пайда болды, кейінірек қайталап көріңіз",
// "default.search.results.head": "Search Results",
- // TODO New key - Add a translation
- "default.search.results.head": "Search Results",
+ "default.search.results.head": "Іздеу нәтижелері",
// "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": "Іздеу нәтижелері",
// "search.sidebar.close": "Back to results",
@@ -5820,36 +5419,28 @@
"sorting.dc.title.DESC": "Кему тақырыбы",
// "sorting.score.ASC": "Least Relevant",
- // TODO New key - Add a translation
- "sorting.score.ASC": "Least Relevant",
+ "sorting.score.ASC": "Ең Аз Өзекті",
// "sorting.score.DESC": "Most Relevant",
- // TODO Source message changed - Revise the translation
- "sorting.score.DESC": "Өзектілігі",
+ "sorting.score.DESC": "Өзектілігі көбірек",
// "sorting.dc.date.issued.ASC": "Date Issued Ascending",
- // TODO New key - Add a translation
- "sorting.dc.date.issued.ASC": "Date Issued Ascending",
+ "sorting.dc.date.issued.ASC": "Өсу бойынша шығарылған күні",
// "sorting.dc.date.issued.DESC": "Date Issued Descending",
- // TODO New key - Add a translation
- "sorting.dc.date.issued.DESC": "Date Issued Descending",
+ "sorting.dc.date.issued.DESC": "Кему бойынша шығарылған күні",
// "sorting.dc.date.accessioned.ASC": "Accessioned Date Ascending",
- // TODO New key - Add a translation
- "sorting.dc.date.accessioned.ASC": "Accessioned Date Ascending",
+ "sorting.dc.date.accessioned.ASC": "Өсу бойынша қол жеткізу күні",
// "sorting.dc.date.accessioned.DESC": "Accessioned Date Descending",
- // TODO New key - Add a translation
- "sorting.dc.date.accessioned.DESC": "Accessioned Date Descending",
+ "sorting.dc.date.accessioned.DESC": "Кему бойынша қол жеткізу күні",
// "sorting.lastModified.ASC": "Last modified Ascending",
- // TODO New key - Add a translation
- "sorting.lastModified.ASC": "Last modified Ascending",
+ "sorting.lastModified.ASC": "Өсу бойынша соңғы өзгеріс",
// "sorting.lastModified.DESC": "Last modified Descending",
- // TODO New key - Add a translation
- "sorting.lastModified.DESC": "Last modified Descending",
+ "sorting.lastModified.DESC": "Кему бойынша соңғы өзгеріс",
// "statistics.title": "Statistics",
@@ -5888,15 +5479,13 @@
// "submission.edit.breadcrumbs": "Edit Submission",
- // TODO New key - Add a translation
- "submission.edit.breadcrumbs": "Edit Submission",
+ "submission.edit.breadcrumbs": "Жіберуді өңдеу",
// "submission.edit.title": "Edit Submission",
"submission.edit.title": "Жіберуді өңдеу",
// "submission.general.cancel": "Cancel",
- // TODO New key - Add a translation
- "submission.general.cancel": "Cancel",
+ "submission.general.cancel": "Алып тастау",
// "submission.general.cannot_submit": "You have not the privilege to make a new submission.",
"submission.general.cannot_submit": "Сізде жаңа қойылым жасау артықшылығы жоқ.",
@@ -5920,12 +5509,10 @@
"submission.general.discard.submit": "Тастау",
// "submission.general.info.saved": "Saved",
- // TODO New key - Add a translation
- "submission.general.info.saved": "Saved",
+ "submission.general.info.saved": "Сақталған",
// "submission.general.info.pending-changes": "Unsaved changes",
- // TODO New key - Add a translation
- "submission.general.info.pending-changes": "Unsaved changes",
+ "submission.general.info.pending-changes": "Сақталмаған өзгерістер",
// "submission.general.save": "Save",
"submission.general.save": "Сақтау",
@@ -5941,36 +5528,28 @@
"submission.import-external.title":"Метадеректерді сыртқы көзден импорттау",
// "submission.import-external.title.Journal": "Import a journal from an external source",
- // TODO New key - Add a translation
- "submission.import-external.title.Journal": "Import a journal from an external source",
+ "submission.import-external.title.Journal": "Журналды сыртқы көзден импорттау",
// "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": "Журнал шығарылымын сыртқы көзден импорттаңыз",
// "submission.import-external.title.JournalVolume": "Import a journal volume from an external source",
- // TODO New key - Add a translation
- "submission.import-external.title.JournalVolume": "Import a journal volume from an external source",
+ "submission.import-external.title.JournalVolume": "Журнал көлемін сыртқы көзден импорттаңыз",
// "submission.import-external.title.OrgUnit": "Import a publisher from an external source",
- // TODO New key - Add a translation
- "submission.import-external.title.OrgUnit": "Import a publisher from an external source",
+ "submission.import-external.title.OrgUnit": "Баспаны сыртқы көзден импорттаңыз",
// "submission.import-external.title.Person": "Import a person from an external source",
- // TODO New key - Add a translation
- "submission.import-external.title.Person": "Import a person from an external source",
+ "submission.import-external.title.Person": "Тұлғаны сыртқы көзден импорттаңыз",
// "submission.import-external.title.Project": "Import a project from an external source",
- // TODO New key - Add a translation
- "submission.import-external.title.Project": "Import a project from an external source",
+ "submission.import-external.title.Project": "Жобаны сыртқы көзден импорттаңыз",
// "submission.import-external.title.Publication": "Import a publication from an external source",
- // TODO New key - Add a translation
- "submission.import-external.title.Publication": "Import a publication from an external source",
+ "submission.import-external.title.Publication": "Жарияланымды сыртқы көзден импорттау",
// "submission.import-external.title.none": "Import metadata from an external source",
- // TODO New key - Add a translation
- "submission.import-external.title.none": "Import metadata from an external source",
+ "submission.import-external.title.none": "Метадеректерді сыртқы көзден импорттау",
// "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": "Ғарышқа импорттау үшін интернеттен элементтерді табу үшін жоғарыдағы сұрауды енгізіңіз.",
@@ -5994,67 +5573,55 @@
"submission.import-external.source.arxiv": "arXiv",
// "submission.import-external.source.ads": "NASA/ADS",
- // TODO New key - Add a translation
"submission.import-external.source.ads": "NASA/ADS",
// "submission.import-external.source.cinii": "CiNii",
- // TODO New key - Add a translation
"submission.import-external.source.cinii": "CiNii",
// "submission.import-external.source.crossref": "CrossRef",
- // TODO New key - Add a translation
"submission.import-external.source.crossref": "CrossRef",
// "submission.import-external.source.scielo": "SciELO",
- // TODO New key - Add a translation
"submission.import-external.source.scielo": "SciELO",
// "submission.import-external.source.scopus": "Scopus",
- // TODO New key - Add a translation
"submission.import-external.source.scopus": "Scopus",
// "submission.import-external.source.vufind": "VuFind",
- // TODO New key - Add a translation
"submission.import-external.source.vufind": "VuFind",
// "submission.import-external.source.wos": "Web Of Science",
- // TODO New key - Add a translation
- "submission.import-external.source.wos": "Web Of Science",
+ "submission.import-external.source.wos": "Ғылым Желісі",
// "submission.import-external.source.orcidWorks": "ORCID",
- // TODO New key - Add a translation
"submission.import-external.source.orcidWorks": "ORCID",
// "submission.import-external.source.epo": "European Patent Office (EPO)",
- // TODO New key - Add a translation
- "submission.import-external.source.epo": "European Patent Office (EPO)",
+ "submission.import-external.source.epo": "Еуропалық патенттік ведомство (ЕПВ)",
// "submission.import-external.source.loading": "Loading ...",
"submission.import-external.source.loading": "Жүктеу...",
// "submission.import-external.source.sherpaJournal": "SHERPA Journals",
- "submission.import-external.source.sherpaJournal": "ШЕРПА күнделіктері",
+ "submission.import-external.source.sherpaJournal": "ШЕРПА журналдары",
// "submission.import-external.source.sherpaJournalIssn": "SHERPA Journals by ISSN",
- // TODO New key - Add a translation
- "submission.import-external.source.sherpaJournalIssn": "SHERPA Journals by ISSN",
+ "submission.import-external.source.sherpaJournalIssn": "SHERPA журналдағы ISSN",
// "submission.import-external.source.sherpaPublisher": "SHERPA Publishers",
"submission.import-external.source.sherpaPublisher": "ШЕРПА баспасы",
// "submission.import-external.source.openAIREFunding": "Funding OpenAIRE API",
- // TODO New key - Add a translation
- "submission.import-external.source.openAIREFunding": "Funding OpenAIRE API",
+ "submission.import-external.source.openAIREFunding": "OpenAIRE API қаржыландыру",
// "submission.import-external.source.orcid": "ORCID",
"submission.import-external.source.orcid": "ОРКИД",
// "submission.import-external.source.pubmed": "Pubmed",
- "submission.import-external.source.pubmed": "Pubmed",
+ "submission.import-external.source.pubmed": "Жарияланған",
// "submission.import-external.source.pubmedeu": "Pubmed Europe",
- // TODO New key - Add a translation
- "submission.import-external.source.pubmedeu": "Pubmed Europe",
+ "submission.import-external.source.pubmedeu": "Жарияланған Еуропа",
// "submission.import-external.source.lcname": "Library of Congress Names",
"submission.import-external.source.lcname": "Конгресс Кітапханасының Атаулары",
@@ -6063,28 +5630,22 @@
"submission.import-external.preview.title": "Элементті алдын-ала қарау",
// "submission.import-external.preview.title.Publication": "Publication Preview",
- // TODO New key - Add a translation
- "submission.import-external.preview.title.Publication": "Publication Preview",
+ "submission.import-external.preview.title.Publication": "Жарияланымдарды алдын ала қарау",
// "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": "Элементті алдын ала қарау",
// "submission.import-external.preview.title.Journal": "Journal Preview",
- // TODO New key - Add a translation
- "submission.import-external.preview.title.Journal": "Journal Preview",
+ "submission.import-external.preview.title.Journal": "Журналды алдын ала қарау",
// "submission.import-external.preview.title.OrgUnit": "Organizational Unit Preview",
- // TODO New key - Add a translation
- "submission.import-external.preview.title.OrgUnit": "Organizational Unit Preview",
+ "submission.import-external.preview.title.OrgUnit": "Мекемені алдын ала қарау",
// "submission.import-external.preview.title.Person": "Person Preview",
- // TODO New key - Add a translation
- "submission.import-external.preview.title.Person": "Person Preview",
+ "submission.import-external.preview.title.Person": "Жобаны алдын ала қарау",
// "submission.import-external.preview.title.Project": "Project Preview",
- // TODO New key - Add a translation
- "submission.import-external.preview.title.Project": "Project Preview",
+ "submission.import-external.preview.title.Project": "Жобаны алдын ала қарау",
// "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": "Төмендегі метадеректер сыртқы көзден импортталды. Сіз жіберуді бастаған кезде ол алдын-ала толтырылады.",
@@ -6117,60 +5678,46 @@
"submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Volume": "Журналдың қашықтағы томын импорттау",
// "submission.sections.describe.relationship-lookup.external-source.import-button-title.isProjectOfPublication": "Project",
- // TODO New key - Add a translation
- "submission.sections.describe.relationship-lookup.external-source.import-button-title.isProjectOfPublication": "Project",
+ "submission.sections.describe.relationship-lookup.external-source.import-button-title.isProjectOfPublication": "Жоба",
// "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": "Қашықтағы элементті импорттау",
// "submission.sections.describe.relationship-lookup.external-source.import-button-title.Event": "Import remote event",
- // TODO New key - Add a translation
- "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": "Қашықтағы оқиғаны импорттау",
// "submission.sections.describe.relationship-lookup.external-source.import-button-title.Product": "Import remote product",
- // TODO New key - Add a translation
- "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": "Қашықтағы өнімді импорттау",
// "submission.sections.describe.relationship-lookup.external-source.import-button-title.Equipment": "Import remote equipment",
- // TODO New key - Add a translation
- "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": "Қашықтағы жабдықты импорттау",
// "submission.sections.describe.relationship-lookup.external-source.import-button-title.OrgUnit": "Import remote organizational unit",
- // TODO New key - Add a translation
- "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": "Қашықтағы ұйымдастыру бөлімшесінің импорты",
// "submission.sections.describe.relationship-lookup.external-source.import-button-title.Funding": "Import remote fund",
- // TODO New key - Add a translation
- "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": "Қашықтағы қорды импорттау",
// "submission.sections.describe.relationship-lookup.external-source.import-button-title.Person": "Import remote person",
- // TODO New key - Add a translation
- "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": "Қашықтағы пайдаланушыны импорттау",
// "submission.sections.describe.relationship-lookup.external-source.import-button-title.Patent": "Import remote patent",
- // TODO New key - Add a translation
- "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": "Патентті қашықтан импорттау",
// "submission.sections.describe.relationship-lookup.external-source.import-button-title.Project": "Import remote project",
- // TODO New key - Add a translation
- "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": "Қашықтағы жобаны импорттау",
// "submission.sections.describe.relationship-lookup.external-source.import-button-title.Publication": "Import remote publication",
- // TODO New key - Add a translation
- "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": "Қашықтағы жарияланымды импорттау",
// "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.added.new-entity": "New Entity Added!",
- // TODO New key - Add a translation
- "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": "Жаңа Нысан Қосылды!",
// "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.title": "Project",
- // TODO New key - Add a translation
- "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.title": "Project",
+ "submission.sections.describe.relationship-lookup.external-source.import-modal.isProjectOfPublication.title": "Жоба",
// "submission.sections.describe.relationship-lookup.external-source.import-modal.head.openAIREFunding": "Funding OpenAIRE API",
- // TODO New key - Add a translation
- "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": "Демеуші OpenAIRE API",
// "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": "Қашықтағы авторды импорттау",
@@ -6266,8 +5813,7 @@
"submission.sections.describe.relationship-lookup.search-tab.search": "Бару",
// "submission.sections.describe.relationship-lookup.search-tab.search-form.placeholder": "Search...",
- // TODO New key - Add a translation
- "submission.sections.describe.relationship-lookup.search-tab.search-form.placeholder": "Search...",
+ "submission.sections.describe.relationship-lookup.search-tab.search-form.placeholder": "Іздеу...",
// "submission.sections.describe.relationship-lookup.search-tab.select-all": "Select all",
"submission.sections.describe.relationship-lookup.search-tab.select-all": "Барлығын таңдау",
@@ -6283,6 +5829,7 @@
// "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalOfPublication": "Local Journals ({{ count }})",
"submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalOfPublication": "Жергілікті журналдар ({{ count }})",
+
// "submission.sections.describe.relationship-lookup.search-tab.tab-title.Project": "Local Projects ({{ count }})",
"submission.sections.describe.relationship-lookup.search-tab.tab-title.Project": "Жергілікті жобалар ({{ count }})",
@@ -6306,11 +5853,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": "Жергілікті журнал мәселелері ({{ 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": "Жергілікті журнал мәселелері ({{ 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": "Жергілікті журнал томдары ({{ 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": "Жергілікті журнал томдары ({{ count }})",
@@ -6318,7 +5867,7 @@
"submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaJournal":"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": "Sherpa Publishers ({{ 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.orcid": "ORCID ({{ count }})",
@@ -6342,50 +5891,44 @@
"submission.sections.describe.relationship-lookup.search-tab.tab-title.isChildOrgUnitOf": "Ұйымдастырушылық бірліктерді іздеу",
// "submission.sections.describe.relationship-lookup.search-tab.tab-title.openAIREFunding": "Funding OpenAIRE API",
- // TODO New key - Add a translation
- "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",
// "submission.sections.describe.relationship-lookup.search-tab.tab-title.isProjectOfPublication": "Projects",
- // TODO New key - Add a translation
- "submission.sections.describe.relationship-lookup.search-tab.tab-title.isProjectOfPublication": "Projects",
+ "submission.sections.describe.relationship-lookup.search-tab.tab-title.isProjectOfPublication": "Жобалар",
// "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfProject": "Funder of the Project",
- // TODO New key - Add a translation
- "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfProject": "Funder of the Project",
+ "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfProject": "Жоба демеушісі",
// "submission.sections.describe.relationship-lookup.selection-tab.title.openAIREFunding": "Funding OpenAIRE API",
- // TODO New key - Add a translation
- "submission.sections.describe.relationship-lookup.selection-tab.title.openAIREFunding": "Funding OpenAIRE API",
+ "submission.sections.describe.relationship-lookup.selection-tab.title.openAIREFunding": "Демеуші OpenAIRE API",
// "submission.sections.describe.relationship-lookup.selection-tab.title.isProjectOfPublication": "Project",
- // TODO New key - Add a translation
- "submission.sections.describe.relationship-lookup.selection-tab.title.isProjectOfPublication": "Project",
+ "submission.sections.describe.relationship-lookup.selection-tab.title.isProjectOfPublication": "Жоба",
// "submission.sections.describe.relationship-lookup.title.isProjectOfPublication": "Projects",
- // TODO New key - Add a translation
- "submission.sections.describe.relationship-lookup.title.isProjectOfPublication": "Projects",
+ "submission.sections.describe.relationship-lookup.title.isProjectOfPublication": "Жобалар",
// "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfProject": "Funder of the Project",
- // TODO New key - Add a translation
- "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfProject": "Funder of the Project",
+ "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfProject": "Жоба демеушісі",
// "submission.sections.describe.relationship-lookup.selection-tab.search-form.placeholder": "Search...",
- // TODO New key - Add a translation
- "submission.sections.describe.relationship-lookup.selection-tab.search-form.placeholder": "Search...",
+ "submission.sections.describe.relationship-lookup.selection-tab.search-form.placeholder": "Іздеу...",
// "submission.sections.describe.relationship-lookup.selection-tab.tab-title": "Current Selection ({{ count }})",
"submission.sections.describe.relationship-lookup.selection-tab.tab-title":"Ағымдағы таңдау ({{ count }})",
// "submission.sections.describe.relationship-lookup.title.isJournalIssueOfPublication": "Journal Issues",
"submission.sections.describe.relationship-lookup.title.isJournalIssueOfPublication": "Журналдың шығарылымдары",
+
// "submission.sections.describe.relationship-lookup.title.JournalIssue": "Journal Issues",
"submission.sections.describe.relationship-lookup.title.JournalIssue":"Журналдың шығарылымдары",
// "submission.sections.describe.relationship-lookup.title.isJournalVolumeOfPublication": "Journal Volumes",
"submission.sections.describe.relationship-lookup.title.isJournalVolumeOfPublication":"Журнал томдары",
+
// "submission.sections.describe.relationship-lookup.title.JournalVolume": "Journal Volumes",
"submission.sections.describe.relationship-lookup.title.JournalVolume": "Журнал томдары",
@@ -6397,6 +5940,7 @@
// "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfPublication": "Funding Agency",
"submission.sections.describe.relationship-lookup.title.isFundingAgencyOfPublication": "Қаржыландыру агенттігі",
+
// "submission.sections.describe.relationship-lookup.title.Project": "Projects",
"submission.sections.describe.relationship-lookup.title.Project": "Жобалар",
@@ -6441,6 +5985,7 @@
// "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalVolumeOfPublication": "Selected Journal Volume",
"submission.sections.describe.relationship-lookup.selection-tab.title.isJournalVolumeOfPublication": "Журналдың таңдалған көлемі",
+
// "submission.sections.describe.relationship-lookup.selection-tab.title.Project": "Selected Projects",
"submission.sections.describe.relationship-lookup.selection-tab.title.Project": "Таңдаулы жобалар",
@@ -6464,6 +6009,7 @@
// "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalIssueOfPublication": "Selected Issue",
"submission.sections.describe.relationship-lookup.selection-tab.title.isJournalIssueOfPublication": "Таңдалған сұрақ",
+
// "submission.sections.describe.relationship-lookup.selection-tab.title.JournalVolume": "Selected Journal Volume",
"submission.sections.describe.relationship-lookup.selection-tab.title.JournalVolume":"Журналдың таңдалған көлемі",
@@ -6472,6 +6018,7 @@
// "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingOfPublication": "Selected Funding",
"submission.sections.describe.relationship-lookup.selection-tab.title.isFundingOfPublication": "Таңдалған қаржыландыру",
+
// "submission.sections.describe.relationship-lookup.selection-tab.title.JournalIssue": "Selected Issue",
"submission.sections.describe.relationship-lookup.selection-tab.title.JournalIssue": "Таңдалған шығарылым",
@@ -6551,8 +6098,7 @@
"submission.sections.general.add-more": "Тағы қосу",
// "submission.sections.general.cannot_deposit": "Deposit cannot be completed due to errors in the form.
Please fill out all required fields to complete the deposit.",
- // TODO New key - Add a translation
- "submission.sections.general.cannot_deposit": "Deposit cannot be completed due to errors in the form.
Please fill out all required fields to complete the deposit.",
+ "submission.sections.general.cannot_deposit": "Пішіндегі қателіктерге байланысты Депозит аяқталуы мүмкін емес.
Депозитті аяқтау үшін барлық қажетті өрістерді толтырыңыз.",
// "submission.sections.general.collection": "Collection",
"submission.sections.general.collection": "Жинақ",
@@ -6620,67 +6166,53 @@
"submission.sections.submit.progressbar.license": "Депозиттік лицензия",
// "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": "Sherpa саясаттары",
// "submission.sections.submit.progressbar.upload": "Upload files",
"submission.sections.submit.progressbar.upload": "Файлдарды жүктеу",
// "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": "Баспагердің ашық қол жеткізу саясаты туралы ақпарат",
// "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": "Баспагердің саясаты туралы ақпарат жоқ. Егер сіздің жұмысыңыз ISSN-мен байланысты болса, баспагердің кез-келген тиісті ашық кіру саясатымен танысу үшін оны жоғарыда енгізіңіз.",
// "submission.sections.status.errors.title": "Errors",
"submission.sections.status.errors.title": "Қателер",
// "submission.sections.status.valid.title": "Valid",
- // TODO New key - Add a translation
- "submission.sections.status.valid.title": "Valid",
+ "submission.sections.status.valid.title": "Жарамды",
// "submission.sections.status.warnings.title": "Warnings",
- // TODO New key - Add a translation
- "submission.sections.status.warnings.title": "Warnings",
+ "submission.sections.status.warnings.title": "Ескертулер",
// "submission.sections.status.errors.aria": "has errors",
- // TODO New key - Add a translation
- "submission.sections.status.errors.aria": "has errors",
+ "submission.sections.status.errors.aria": "қателер бар",
// "submission.sections.status.valid.aria": "is valid",
- // TODO New key - Add a translation
- "submission.sections.status.valid.aria": "is valid",
+ "submission.sections.status.valid.aria": "жарамды болып табылады",
// "submission.sections.status.warnings.aria": "has warnings",
- // TODO New key - Add a translation
- "submission.sections.status.warnings.aria": "has warnings",
+ "submission.sections.status.warnings.aria": "ескертулер бар",
// "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": "Қосымша ақпарат",
// "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": "Қосымша ақпарат",
// "submission.sections.toggle.open": "Open section",
- // TODO New key - Add a translation
- "submission.sections.toggle.open": "Open section",
+ "submission.sections.toggle.open": "Бөлімді ашу",
// "submission.sections.toggle.close": "Close section",
- // TODO New key - Add a translation
- "submission.sections.toggle.close": "Close section",
+ "submission.sections.toggle.close": "Бөлімді жабу",
// "submission.sections.toggle.aria.open": "Expand {{sectionHeader}} section",
- // TODO New key - Add a translation
- "submission.sections.toggle.aria.open": "Expand {{sectionHeader}} section",
+ "submission.sections.toggle.aria.open": "Бөлімді ашу {{sectionHeader}}",
// "submission.sections.toggle.aria.close": "Collapse {{sectionHeader}} section",
- // TODO New key - Add a translation
- "submission.sections.toggle.aria.close": "Collapse {{sectionHeader}} section",
+ "submission.sections.toggle.aria.close": "Бөлімді кішірейту {{sectionHeader}}",
// "submission.sections.upload.delete.confirm.cancel": "Cancel",
"submission.sections.upload.delete.confirm.cancel": "Болдырмау",
@@ -6710,26 +6242,22 @@
"submission.sections.upload.form.access-condition-label": "Кіру шартының түрі",
// "submission.sections.upload.form.access-condition-hint": "Select an access condition to apply on the bitstream once the item is deposited",
- // TODO New key - Add a translation
- "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": "Элементті сақтағаннан кейін бит ағынына қолданылатын кіру шартын таңдаңыз",
// "submission.sections.upload.form.date-required": "Date is required.",
"submission.sections.upload.form.date-required": "Күні міндетті.",
// "submission.sections.upload.form.date-required-from": "Grant access from date is required.",
- // TODO New key - Add a translation
- "submission.sections.upload.form.date-required-from": "Grant access from date is required.",
+ "submission.sections.upload.form.date-required-from": "Күннен бастап қол жеткізуді қамтамасыз ету қажет.",
// "submission.sections.upload.form.date-required-until": "Grant access until date is required.",
- // TODO New key - Add a translation
- "submission.sections.upload.form.date-required-until": "Grant access until date is required.",
+ "submission.sections.upload.form.date-required-until": "Күн қажет болғанша қол жеткізіңіз.",
// "submission.sections.upload.form.from-label": "Grant access from",
"submission.sections.upload.form.from-label": "Қатынауды ұсыну бірі",
// "submission.sections.upload.form.from-hint": "Select the date from which the related access condition is applied",
- // TODO New key - Add a translation
- "submission.sections.upload.form.from-hint": "Select the date from which the related access condition is applied",
+ "submission.sections.upload.form.from-hint": "Тиісті кіру шарты қолданылатын күнді таңдаңыз",
// "submission.sections.upload.form.from-placeholder": "From",
"submission.sections.upload.form.from-placeholder": "Кімнен",
@@ -6744,11 +6272,10 @@
"submission.sections.upload.form.until-label": "Рұқсат беруге болғанша",
// "submission.sections.upload.form.until-hint": "Select the date until which the related access condition is applied",
- // TODO New key - Add a translation
- "submission.sections.upload.form.until-hint": "Select the date until which the related access condition is applied",
+ "submission.sections.upload.form.until-hint": "Тиісті кіру шарты қолданылатын күнді таңдаңыз",
// "submission.sections.upload.form.until-placeholder": "Until",
- "submission.sections.upload.form.until-placeholder":"Әзірге",
+ "submission.sections.upload.form.until-placeholder": "Әзірге",
// "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": "{{collectionName}} жинағына жүктелген файлдар келесі топқа (топтарға) сәйкес қол жетімді болады:",
@@ -6778,191 +6305,145 @@
"submission.sections.upload.upload-successful": "Жүктеу сәтті өтті",
// "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.",
- // TODO New key - Add a translation
- "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": "Егер бұл құсбелгі қойылса, бұл элемент іздеу/қарау үшін қол жетімді болады. Егер құсбелгі алынып тасталса, элемент тек тікелей сілтеме арқылы қол жетімді болады және іздеу/қарау кезінде ешқашан пайда болмайды.",
// "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": "Анықталатын",
// "submission.sections.accesses.form.access-condition-label": "Access condition type",
- // TODO New key - Add a translation
- "submission.sections.accesses.form.access-condition-label": "Access condition type",
+ "submission.sections.accesses.form.access-condition-label": "Кіру шартының түрі",
// "submission.sections.accesses.form.access-condition-hint": "Select an access condition to apply on the item once it is deposited",
- // TODO New key - Add a translation
- "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": "Депозитке салынғаннан кейін өнімге қолданылатын қол жеткізу шартын таңдаңыз",
// "submission.sections.accesses.form.date-required": "Date is required.",
- // TODO New key - Add a translation
- "submission.sections.accesses.form.date-required": "Date is required.",
+ "submission.sections.accesses.form.date-required": "Күні міндетті.",
// "submission.sections.accesses.form.date-required-from": "Grant access from date is required.",
- // TODO New key - Add a translation
- "submission.sections.accesses.form.date-required-from": "Grant access from date is required.",
+ "submission.sections.accesses.form.date-required-from": "Күннен бастап қол жеткізуді қамтамасыз ету қажет.",
// "submission.sections.accesses.form.date-required-until": "Grant access until date is required.",
- // TODO New key - Add a translation
- "submission.sections.accesses.form.date-required-until": "Grant access until date is required.",
+ "submission.sections.accesses.form.date-required-until": "Күн қажет болғанша қол жеткізіңіз.",
// "submission.sections.accesses.form.from-label": "Grant access from",
- // TODO New key - Add a translation
- "submission.sections.accesses.form.from-label": "Grant access from",
+ "submission.sections.accesses.form.from-label": "Қол жеткізуді қамтамасыз етіңіз",
// "submission.sections.accesses.form.from-hint": "Select the date from which the related access condition is applied",
- // TODO New key - Add a translation
- "submission.sections.accesses.form.from-hint": "Select the date from which the related access condition is applied",
+ "submission.sections.accesses.form.from-hint": "Тиісті кіру шарты қолданылатын күнді таңдаңыз",
// "submission.sections.accesses.form.from-placeholder": "From",
- // TODO New key - Add a translation
- "submission.sections.accesses.form.from-placeholder": "From",
+ "submission.sections.accesses.form.from-placeholder": "Бастап",
// "submission.sections.accesses.form.group-label": "Group",
- // TODO New key - Add a translation
- "submission.sections.accesses.form.group-label": "Group",
+ "submission.sections.accesses.form.group-label": "Топ",
// "submission.sections.accesses.form.group-required": "Group is required.",
- // TODO New key - Add a translation
- "submission.sections.accesses.form.group-required": "Group is required.",
+ "submission.sections.accesses.form.group-required": "Топ қажет.",
// "submission.sections.accesses.form.until-label": "Grant access until",
- // TODO New key - Add a translation
- "submission.sections.accesses.form.until-label": "Grant access until",
+ "submission.sections.accesses.form.until-label": "Дейін қол жеткізуді қамтамасыз ету",
// "submission.sections.accesses.form.until-hint": "Select the date until which the related access condition is applied",
- // TODO New key - Add a translation
- "submission.sections.accesses.form.until-hint": "Select the date until which the related access condition is applied",
+ "submission.sections.accesses.form.until-hint": "Тиісті кіру шарты қолданылатын күнді таңдаңыз",
// "submission.sections.accesses.form.until-placeholder": "Until",
- // TODO New key - Add a translation
- "submission.sections.accesses.form.until-placeholder": "Until",
+ "submission.sections.accesses.form.until-placeholder": "Осы уақытқа дейін",
// "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": "Мен жоғарыда аталған лицензияны растаймын",
// "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": "Лицензияны қабылдау керек",
// "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": "Лицензияны қабылдау керек",
// "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": "Жарияланым туралы ақпарат",
// "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": "Атауы",
// "submission.sections.sherpa.publication.information.issns": "ISSNs",
- // TODO New key - Add a translation
"submission.sections.sherpa.publication.information.issns": "ISSNs",
// "submission.sections.sherpa.publication.information.url": "URL",
- // TODO New key - Add a translation
"submission.sections.sherpa.publication.information.url": "URL",
// "submission.sections.sherpa.publication.information.publishers": "Publisher",
- // TODO New key - Add a translation
- "submission.sections.sherpa.publication.information.publishers": "Publisher",
+ "submission.sections.sherpa.publication.information.publishers": "Баспагер",
// "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.romeoPub": "Romeo Баспагер",
// "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.publication.information.zetoPub": "Zeto Баспагер",
// "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": "Баспагердің саясаты",
// "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": "Төмендегі ақпарат Шерпа Ромео арқылы табылды. Баспагердің саясатына сүйене отырып, ол сізге эмбарго қажет пе және / немесе қандай файлдарды жүктеуге рұқсат етілгені туралы ұсыныстар береді. Егер сізде сұрақтар туындаса, төменгі деректемедегі кері байланыс нысаны арқылы веб-сайтыңыздың әкімшісіне хабарласыңыз.",
// "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": "Осы журналдың саясатымен рұқсат етілген ашық қол жетімділік жолдары төменде мақалалардың нұсқалары бойынша бөлінген. Толығырақ көру үшін жолды нұқыңыз",
// "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": "Қосымша ақпарат алу үшін келесі сілтемелерге өтіңіз:",
// "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": "Нұсқа",
// "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.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": "Эмбарго Жоқ",
// "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": "Ешкім",
// "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": "Лицензия",
// "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": "Алғышарттар",
// "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": "Орналасқан жері",
// "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": "Шарттары",
// "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": "Жаңарту",
// "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": "Жазуға арналған ақпарат",
// "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": "Құрылған күні",
// "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": "Соңғы өзгеріс",
// "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": "Шерпе туралы ақпарат алу кезінде қате пайда болды",
// "submission.submit.breadcrumbs": "New submission",
- // TODO New key - Add a translation
- "submission.submit.breadcrumbs": "New submission",
+ "submission.submit.breadcrumbs": "Жаңа көрініс",
// "submission.submit.title": "New submission",
- // TODO Source message changed - Revise the translation
- "submission.submit.title":"Бағыну",
+ "submission.submit.title": "Жаңа көрініс",
@@ -7052,45 +6533,35 @@
// "submission.workspace.generic.view": "View",
- // TODO New key - Add a translation
- "submission.workspace.generic.view": "View",
+ "submission.workspace.generic.view": "Көрініс",
// "submission.workspace.generic.view-help": "Select this option to view the item's metadata.",
- // TODO New key - Add a translation
- "submission.workspace.generic.view-help": "Select this option to view the item's metadata.",
+ "submission.workspace.generic.view-help": "Элемент метадеректерін көру үшін осы параметрді таңдаңыз.",
// "thumbnail.default.alt": "Thumbnail Image",
- // TODO New key - Add a translation
- "thumbnail.default.alt": "Thumbnail Image",
+ "thumbnail.default.alt": "Кішірейтілген сурет",
// "thumbnail.default.placeholder": "No Thumbnail Available",
- // TODO New key - Add a translation
- "thumbnail.default.placeholder": "No Thumbnail Available",
+ "thumbnail.default.placeholder": "Нобайлар Жоқ",
// "thumbnail.project.alt": "Project Logo",
- // TODO New key - Add a translation
- "thumbnail.project.alt": "Project Logo",
+ "thumbnail.project.alt": "Жобаның логотипі",
// "thumbnail.project.placeholder": "Project Placeholder Image",
- // TODO New key - Add a translation
- "thumbnail.project.placeholder": "Project Placeholder Image",
+ "thumbnail.project.placeholder": "Жобаның толтырғыш суреті",
// "thumbnail.orgunit.alt": "OrgUnit Logo",
- // TODO New key - Add a translation
- "thumbnail.orgunit.alt": "OrgUnit Logo",
+ "thumbnail.orgunit.alt": "Ұйым бөлімшесінің логотипі",
// "thumbnail.orgunit.placeholder": "OrgUnit Placeholder Image",
- // TODO New key - Add a translation
- "thumbnail.orgunit.placeholder": "OrgUnit Placeholder Image",
+ "thumbnail.orgunit.placeholder": "Мекеме бірлігін толтырушы суреті",
// "thumbnail.person.alt": "Profile Picture",
- // TODO New key - Add a translation
- "thumbnail.person.alt": "Profile Picture",
+ "thumbnail.person.alt": "Профиль суреті",
// "thumbnail.person.placeholder": "No Profile Picture Available",
- // TODO New key - Add a translation
- "thumbnail.person.placeholder": "No Profile Picture Available",
+ "thumbnail.person.placeholder": "Профиль Суреті Қол Жетімді Емес",
@@ -7129,8 +6600,7 @@
"uploader.drag-message": "Файлдарды осында сүйреңіз",
// "uploader.delete.btn-title": "Delete",
- // TODO New key - Add a translation
- "uploader.delete.btn-title": "Delete",
+ "uploader.delete.btn-title": "Жою",
// "uploader.or": ", or ",
"uploader.or": ", немесе ",
@@ -7154,25 +6624,21 @@
// "workspace.search.results.head": "Your submissions",
- // TODO New key - Add a translation
- "workspace.search.results.head": "Your submissions",
+ "workspace.search.results.head": "Сіздің жазылымдарыңыз",
// "workflowAdmin.search.results.head": "Administer Workflow",
"workflowAdmin.search.results.head": "Жұмыс процесін басқару",
// "workflow.search.results.head": "Workflow tasks",
- // TODO New key - Add a translation
- "workflow.search.results.head": "Workflow tasks",
+ "workflow.search.results.head": "Жұмыс процесінің міндеттері",
// "workflow-item.edit.breadcrumbs": "Edit workflowitem",
- // TODO New key - Add a translation
- "workflow-item.edit.breadcrumbs": "Edit workflowitem",
+ "workflow-item.edit.breadcrumbs": "Жұмыс процесінің элементін өңдеу",
// "workflow-item.edit.title": "Edit workflowitem",
- // TODO New key - Add a translation
- "workflow-item.edit.title": "Edit workflowitem",
+ "workflow-item.edit.title": "Жұмыс процесінің элементін өңдеу",
// "workflow-item.delete.notification.success.title": "Deleted",
"workflow-item.delete.notification.success.title":"Жойылды",
@@ -7221,526 +6687,396 @@
"workflow-item.send-back.button.cancel": "Алып тастау",
// "workflow-item.send-back.button.confirm": "Send back",
- // TODO Source message changed - Revise the translation
"workflow-item.send-back.button.confirm": "Кері жіберу",
// "workflow-item.view.breadcrumbs": "Workflow View",
- // TODO New key - Add a translation
- "workflow-item.view.breadcrumbs": "Workflow View",
+ "workflow-item.view.breadcrumbs": "Жұмыс процесін көру",
// "workspace-item.view.breadcrumbs": "Workspace View",
- // TODO New key - Add a translation
- "workspace-item.view.breadcrumbs": "Workspace View",
+ "workspace-item.view.breadcrumbs": "Жұмыс аймағының түрі",
// "workspace-item.view.title": "Workspace View",
- // TODO New key - Add a translation
- "workspace-item.view.title": "Workspace View",
+ "workspace-item.view.title": "Жұмыс аймағының түрі",
// "idle-modal.header": "Session will expire soon",
- // TODO New key - Add a translation
- "idle-modal.header": "Session will expire soon",
+ "idle-modal.header": "Сессия жақында аяқталады",
// "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?",
- // TODO New key - Add a translation
- "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": "Қауіпсіздік мақсатында пайдаланушы сеанстары {{ timeToExpire }} әрекетсіздік минуттары арқылы аяқталады. Сіздің сессияңыз жақында аяқталады. Сіз оны ұзартқыңыз немесе жүйеден шыққыңыз келе ме?",
// "idle-modal.log-out": "Log out",
- // TODO New key - Add a translation
- "idle-modal.log-out": "Log out",
+ "idle-modal.log-out": "Шығу",
// "idle-modal.extend-session": "Extend session",
- // TODO New key - Add a translation
- "idle-modal.extend-session": "Extend session",
+ "idle-modal.extend-session": "Сеансты ұзарту",
// "researcher.profile.action.processing" : "Processing...",
- // TODO New key - Add a translation
- "researcher.profile.action.processing" : "Processing...",
+ "researcher.profile.action.processing" : "Процессте...",
// "researcher.profile.associated": "Researcher profile associated",
- // TODO New key - Add a translation
- "researcher.profile.associated": "Researcher profile associated",
+ "researcher.profile.associated": "Зерттеушінің байланысты профилі",
// "researcher.profile.change-visibility.fail": "An unexpected error occurs while changing the profile visibility",
- // TODO New key - Add a translation
- "researcher.profile.change-visibility.fail": "An unexpected error occurs while changing the profile visibility",
+ "researcher.profile.change-visibility.fail": "Профиль көрінісі өзгерген кезде күтпеген қате пайда болады",
// "researcher.profile.create.new": "Create new",
- // TODO New key - Add a translation
- "researcher.profile.create.new": "Create new",
+ "researcher.profile.create.new": "Жаңасың құру",
// "researcher.profile.create.success": "Researcher profile created successfully",
- // TODO New key - Add a translation
- "researcher.profile.create.success": "Researcher profile created successfully",
+ "researcher.profile.create.success": "Зерттеуші профилі сәтті жасалды",
// "researcher.profile.create.fail": "An error occurs during the researcher profile creation",
- // TODO New key - Add a translation
- "researcher.profile.create.fail": "An error occurs during the researcher profile creation",
+ "researcher.profile.create.fail": "Зерттеуші профилін құру кезінде қате пайда болады",
// "researcher.profile.delete": "Delete",
- // TODO New key - Add a translation
- "researcher.profile.delete": "Delete",
+ "researcher.profile.delete": "Жою",
// "researcher.profile.expose": "Expose",
- // TODO New key - Add a translation
- "researcher.profile.expose": "Expose",
+ "researcher.profile.expose": "Ашу",
// "researcher.profile.hide": "Hide",
- // TODO New key - Add a translation
- "researcher.profile.hide": "Hide",
+ "researcher.profile.hide": "Жасыру",
// "researcher.profile.not.associated": "Researcher profile not yet associated",
- // TODO New key - Add a translation
- "researcher.profile.not.associated": "Researcher profile not yet associated",
+ "researcher.profile.not.associated": "Зерттеуші профилі әлі байланысты емес",
// "researcher.profile.view": "View",
- // TODO New key - Add a translation
- "researcher.profile.view": "View",
+ "researcher.profile.view": "Қөрімдігі",
// "researcher.profile.private.visibility" : "PRIVATE",
- // TODO New key - Add a translation
- "researcher.profile.private.visibility" : "PRIVATE",
+ "researcher.profile.private.visibility" : "ЖАСЫРЫН",
// "researcher.profile.public.visibility" : "PUBLIC",
- // TODO New key - Add a translation
- "researcher.profile.public.visibility" : "PUBLIC",
+ "researcher.profile.public.visibility" : "АШЫҚ",
// "researcher.profile.status": "Status:",
- // TODO New key - Add a translation
- "researcher.profile.status": "Status:",
+ "researcher.profile.status": "Мәртебесі:",
// "researcherprofile.claim.not-authorized": "You are not authorized to claim this item. For more details contact the administrator(s).",
- // TODO New key - Add a translation
- "researcherprofile.claim.not-authorized": "You are not authorized to claim this item. For more details contact the administrator(s).",
+ "researcherprofile.claim.not-authorized": "Сіз бұл өнімді талап етуге құқығыңыз жоқ. Қосымша ақпарат алу үшін әкімшіге хабарласыңыз.",
// "researcherprofile.error.claim.body" : "An error occurred while claiming the profile, please try again later",
- // TODO New key - Add a translation
- "researcherprofile.error.claim.body" : "An error occurred while claiming the profile, please try again later",
+ "researcherprofile.error.claim.body" : "Профильді толтыру кезінде қате пайда болды, кейінірек қайталап көріңіз",
// "researcherprofile.error.claim.title" : "Error",
- // TODO New key - Add a translation
- "researcherprofile.error.claim.title" : "Error",
+ "researcherprofile.error.claim.title" : "Қате",
// "researcherprofile.success.claim.body" : "Profile claimed with success",
- // TODO New key - Add a translation
- "researcherprofile.success.claim.body" : "Profile claimed with success",
+ "researcherprofile.success.claim.body" : "Сәтті мәлімделген Профиль",
// "researcherprofile.success.claim.title" : "Success",
- // TODO New key - Add a translation
- "researcherprofile.success.claim.title" : "Success",
+ "researcherprofile.success.claim.title" : "Сәтті",
// "person.page.orcid.create": "Create an ORCID ID",
- // TODO New key - Add a translation
- "person.page.orcid.create": "Create an ORCID ID",
+ "person.page.orcid.create": "ORCID ID құру",
// "person.page.orcid.granted-authorizations": "Granted authorizations",
- // TODO New key - Add a translation
- "person.page.orcid.granted-authorizations": "Granted authorizations",
+ "person.page.orcid.granted-authorizations": "Рұқсат берілген",
// "person.page.orcid.grant-authorizations" : "Grant authorizations",
- // TODO New key - Add a translation
- "person.page.orcid.grant-authorizations" : "Grant authorizations",
+ "person.page.orcid.grant-authorizations" : "Рұқсат беру",
// "person.page.orcid.link": "Connect to ORCID ID",
- // TODO New key - Add a translation
- "person.page.orcid.link": "Connect to ORCID ID",
+ "person.page.orcid.link": "ORCID идентификаторына қосылу",
// "person.page.orcid.link.processing": "Linking profile to ORCID...",
- // TODO New key - Add a translation
- "person.page.orcid.link.processing": "Linking profile to ORCID...",
+ "person.page.orcid.link.processing": "Профильді ORCID-ке байланыстыру...",
// "person.page.orcid.link.error.message": "Something went wrong while connecting the profile with ORCID. If the problem persists, contact the administrator.",
- // TODO New key - Add a translation
- "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": "Профильді ORCID-ке қосқан кезде бірдеңе дұрыс болмады. Егер мәселе шешілмесе, әкімшіге хабарласыңыз.",
// "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.",
- // TODO New key - Add a translation
- "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": "Осы профильдің ORCID идентификаторы ({{ orcid }}) әлі ORCID тізіліміндегі есептік жазбаға қосылмаған немесе қосылу мерзімі аяқталған.",
// "person.page.orcid.unlink": "Disconnect from ORCID",
- // TODO New key - Add a translation
- "person.page.orcid.unlink": "Disconnect from ORCID",
+ "person.page.orcid.unlink": "ORCID өшіру",
// "person.page.orcid.unlink.processing": "Processing...",
"person.page.orcid.unlink.processing": "Процессте...",
// "person.page.orcid.missing-authorizations": "Missing authorizations",
- // TODO New key - Add a translation
- "person.page.orcid.missing-authorizations": "Missing authorizations",
+ "person.page.orcid.missing-authorizations": "Рұқсаттары жоқ",
// "person.page.orcid.missing-authorizations-message": "The following authorizations are missing:",
- // TODO New key - Add a translation
- "person.page.orcid.missing-authorizations-message": "The following authorizations are missing:",
+ "person.page.orcid.missing-authorizations-message": "Келесі рұқсаттар жоқ:",
// "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.",
- // TODO New key - Add a translation
- "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": "Тамаша! Бұл өріс бос, бұл сіздің мекемеңіздің барлық мүмкіндіктерін пайдалану үшін барлық қол жетімділік құқығын береді.",
// "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.",
- // TODO New key - Add a translation
- "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 идентификаторы әлі қосылмаған. Төмендегі батырманы басу арқылы сіз бұл Профильді ORCID тіркелгісімен байланыстыра аласыз.",
// "person.page.orcid.profile-preferences": "Profile preferences",
- // TODO New key - Add a translation
- "person.page.orcid.profile-preferences": "Profile preferences",
+ "person.page.orcid.profile-preferences": "Профиль параметрлері",
// "person.page.orcid.funding-preferences": "Funding preferences",
- // TODO New key - Add a translation
- "person.page.orcid.funding-preferences": "Funding preferences",
+ "person.page.orcid.funding-preferences": "Қаржыландырудағы артықшылықтар",
// "person.page.orcid.publications-preferences": "Publication preferences",
- // TODO New key - Add a translation
- "person.page.orcid.publications-preferences": "Publication preferences",
+ "person.page.orcid.publications-preferences": "Жарияланымдағы артықшылықтар",
// "person.page.orcid.remove-orcid-message": "If you need to remove your ORCID, please contact the repository administrator",
- // TODO New key - Add a translation
- "person.page.orcid.remove-orcid-message": "If you need to remove your ORCID, please contact the repository administrator",
+ "person.page.orcid.remove-orcid-message": "Егер сізге ORCID жою қажет болса, репозиторий әкімшісіне хабарласыңыз",
// "person.page.orcid.save.preference.changes": "Update settings",
- // TODO New key - Add a translation
- "person.page.orcid.save.preference.changes": "Update settings",
+ "person.page.orcid.save.preference.changes": "Параметрлерді жаңарту",
// "person.page.orcid.sync-profile.affiliation" : "Affiliation",
- // TODO New key - Add a translation
- "person.page.orcid.sync-profile.affiliation" : "Affiliation",
+ "person.page.orcid.sync-profile.affiliation" : "Филиалы",
// "person.page.orcid.sync-profile.biographical" : "Biographical data",
- // TODO New key - Add a translation
- "person.page.orcid.sync-profile.biographical" : "Biographical data",
+ "person.page.orcid.sync-profile.biographical" : "Өмірбаяндық мәліметтер",
// "person.page.orcid.sync-profile.education" : "Education",
- // TODO New key - Add a translation
- "person.page.orcid.sync-profile.education" : "Education",
+ "person.page.orcid.sync-profile.education" : "Білімі",
// "person.page.orcid.sync-profile.identifiers" : "Identifiers",
- // TODO New key - Add a translation
- "person.page.orcid.sync-profile.identifiers" : "Identifiers",
+ "person.page.orcid.sync-profile.identifiers" : "Идентификатор",
// "person.page.orcid.sync-fundings.all" : "All fundings",
- // TODO New key - Add a translation
- "person.page.orcid.sync-fundings.all" : "All fundings",
+ "person.page.orcid.sync-fundings.all" : "Барлық құралдар",
// "person.page.orcid.sync-fundings.mine" : "My fundings",
- // TODO New key - Add a translation
- "person.page.orcid.sync-fundings.mine" : "My fundings",
+ "person.page.orcid.sync-fundings.mine" : "Менің қаражатым",
// "person.page.orcid.sync-fundings.my_selected" : "Selected fundings",
- // TODO New key - Add a translation
- "person.page.orcid.sync-fundings.my_selected" : "Selected fundings",
+ "person.page.orcid.sync-fundings.my_selected" : "Таңдалған құралдар",
// "person.page.orcid.sync-fundings.disabled" : "Disabled",
- // TODO New key - Add a translation
- "person.page.orcid.sync-fundings.disabled" : "Disabled",
+ "person.page.orcid.sync-fundings.disabled" : "Қолжетімсіз",
// "person.page.orcid.sync-publications.all" : "All publications",
- // TODO New key - Add a translation
- "person.page.orcid.sync-publications.all" : "All publications",
+ "person.page.orcid.sync-publications.all" : "Барлық жарияланымдар",
// "person.page.orcid.sync-publications.mine" : "My publications",
- // TODO New key - Add a translation
- "person.page.orcid.sync-publications.mine" : "My publications",
+ "person.page.orcid.sync-publications.mine" : "Менің жарияланымдарым",
// "person.page.orcid.sync-publications.my_selected" : "Selected publications",
- // TODO New key - Add a translation
- "person.page.orcid.sync-publications.my_selected" : "Selected publications",
+ "person.page.orcid.sync-publications.my_selected" : "Таңдаулы басылымдар",
// "person.page.orcid.sync-publications.disabled" : "Disabled",
- // TODO New key - Add a translation
- "person.page.orcid.sync-publications.disabled" : "Disabled",
+ "person.page.orcid.sync-publications.disabled" : "Қолжетімсіз",
// "person.page.orcid.sync-queue.discard" : "Discard the change and do not synchronize with the ORCID registry",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.discard" : "Discard the change and do not synchronize with the ORCID registry",
+ "person.page.orcid.sync-queue.discard" : "Өзгерісті болдырмаңыз және ORCID тізілімімен синхрондамаңыз",
// "person.page.orcid.sync-queue.discard.error": "The discarding of the ORCID queue record failed",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.discard.error": "The discarding of the ORCID queue record failed",
+ "person.page.orcid.sync-queue.discard.error": "ORCID кезегінің жазбасын жою мүмкін емес",
// "person.page.orcid.sync-queue.discard.success": "The ORCID queue record have been discarded successfully",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.discard.success": "The ORCID queue record have been discarded successfully",
+ "person.page.orcid.sync-queue.discard.success": "ORCID кезегінің жазбасы сәтті жойылды",
// "person.page.orcid.sync-queue.empty-message": "The ORCID queue registry is empty",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.empty-message": "The ORCID queue registry is empty",
+ "person.page.orcid.sync-queue.empty-message": "ORCID кезегінің тізілімі бос",
// "person.page.orcid.sync-queue.table.header.type" : "Type",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.table.header.type" : "Type",
+ "person.page.orcid.sync-queue.table.header.type" : "Түрі",
// "person.page.orcid.sync-queue.table.header.description" : "Description",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.table.header.description" : "Description",
+ "person.page.orcid.sync-queue.table.header.description" : "Сипаттамасы",
// "person.page.orcid.sync-queue.table.header.action" : "Action",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.table.header.action" : "Action",
+ "person.page.orcid.sync-queue.table.header.action" : "Әрекет",
// "person.page.orcid.sync-queue.description.affiliation": "Affiliations",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.description.affiliation": "Affiliations",
+ "person.page.orcid.sync-queue.description.affiliation": "Филиалы",
// "person.page.orcid.sync-queue.description.country": "Country",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.description.country": "Country",
+ "person.page.orcid.sync-queue.description.country": "ЕЛ",
// "person.page.orcid.sync-queue.description.education": "Educations",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.description.education": "Educations",
+ "person.page.orcid.sync-queue.description.education": "Білімі",
// "person.page.orcid.sync-queue.description.external_ids": "External ids",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.description.external_ids": "External ids",
+ "person.page.orcid.sync-queue.description.external_ids": "Қосымша ids",
// "person.page.orcid.sync-queue.description.other_names": "Other names",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.description.other_names": "Other names",
+ "person.page.orcid.sync-queue.description.other_names": "Басқа атаулары",
// "person.page.orcid.sync-queue.description.qualification": "Qualifications",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.description.qualification": "Qualifications",
+ "person.page.orcid.sync-queue.description.qualification": "Квалификациясы",
// "person.page.orcid.sync-queue.description.researcher_urls": "Researcher urls",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.description.researcher_urls": "Researcher urls",
+ "person.page.orcid.sync-queue.description.researcher_urls": "Зерттеушінің URL мекенжайы",
// "person.page.orcid.sync-queue.description.keywords": "Keywords",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.description.keywords": "Keywords",
+ "person.page.orcid.sync-queue.description.keywords": "Кілт сөздер",
// "person.page.orcid.sync-queue.tooltip.insert": "Add a new entry in the ORCID registry",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.tooltip.insert": "Add a new entry in the ORCID registry",
+ "person.page.orcid.sync-queue.tooltip.insert": "ORCID тізіліміне жаңа жазба қосыңыз",
// "person.page.orcid.sync-queue.tooltip.update": "Update this entry on the ORCID registry",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.tooltip.update": "Update this entry on the ORCID registry",
+ "person.page.orcid.sync-queue.tooltip.update": "Бұл жазбаны ORCID тізіліміне жаңартыңыз",
// "person.page.orcid.sync-queue.tooltip.delete": "Remove this entry from the ORCID registry",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.tooltip.delete": "Remove this entry from the ORCID registry",
+ "person.page.orcid.sync-queue.tooltip.delete": "Бұл жазбаны ORCID тізілімінен жойыңыз",
// "person.page.orcid.sync-queue.tooltip.publication": "Publication",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.tooltip.publication": "Publication",
+ "person.page.orcid.sync-queue.tooltip.publication": "Жарияланымдар",
// "person.page.orcid.sync-queue.tooltip.project": "Project",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.tooltip.project": "Project",
+ "person.page.orcid.sync-queue.tooltip.project": "Проект",
// "person.page.orcid.sync-queue.tooltip.affiliation": "Affiliation",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.tooltip.affiliation": "Affiliation",
+ "person.page.orcid.sync-queue.tooltip.affiliation": "Филиалы",
// "person.page.orcid.sync-queue.tooltip.education": "Education",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.tooltip.education": "Education",
+ "person.page.orcid.sync-queue.tooltip.education": "Білімі",
// "person.page.orcid.sync-queue.tooltip.qualification": "Qualification",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.tooltip.qualification": "Qualification",
+ "person.page.orcid.sync-queue.tooltip.qualification": "Квалификациясы",
// "person.page.orcid.sync-queue.tooltip.other_names": "Other name",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.tooltip.other_names": "Other name",
+ "person.page.orcid.sync-queue.tooltip.other_names": "Басқа атауы",
// "person.page.orcid.sync-queue.tooltip.country": "Country",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.tooltip.country": "Country",
+ "person.page.orcid.sync-queue.tooltip.country": "Ел",
// "person.page.orcid.sync-queue.tooltip.keywords": "Keyword",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.tooltip.keywords": "Keyword",
+ "person.page.orcid.sync-queue.tooltip.keywords": "Кілт сөз",
// "person.page.orcid.sync-queue.tooltip.external_ids": "External identifier",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.tooltip.external_ids": "External identifier",
+ "person.page.orcid.sync-queue.tooltip.external_ids": "Сыртқы идентификатор",
// "person.page.orcid.sync-queue.tooltip.researcher_urls": "Researcher url",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.tooltip.researcher_urls": "Researcher url",
+ "person.page.orcid.sync-queue.tooltip.researcher_urls": "Зерттеушінің URL мекенжайы",
// "person.page.orcid.sync-queue.send" : "Synchronize with ORCID registry",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.send" : "Synchronize with ORCID registry",
+ "person.page.orcid.sync-queue.send" : "ORCID тізілімімен синхрондау",
// "person.page.orcid.sync-queue.send.unauthorized-error.title": "The submission to ORCID failed for missing authorizations.",
- // TODO New key - Add a translation
- "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-ке жіберу сәтсіз аяқталды.",
// "person.page.orcid.sync-queue.send.unauthorized-error.content": "Click
here to grant again the required permissions. If the problem persists, contact the administrator",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.send.unauthorized-error.content": "Click
here to grant again the required permissions. If the problem persists, contact the administrator",
+ "person.page.orcid.sync-queue.send.unauthorized-error.content": "Қажетті рұқсаттарды қайтадан беру үшін
>мұнда басыңыз. Егер мәселе шешілмесе, әкімшіге хабарласыңыз",
// "person.page.orcid.sync-queue.send.bad-request-error": "The submission to ORCID failed because the resource sent to ORCID registry is not valid",
- // TODO New key - Add a translation
- "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-ке жіберу сәтсіз аяқталды, өйткені ORCID тізіліміне жіберілген ресурс жарамсыз",
// "person.page.orcid.sync-queue.send.error": "The submission to ORCID failed",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.send.error": "The submission to ORCID failed",
+ "person.page.orcid.sync-queue.send.error": "ORCID-ке жіберу сәтсіз аяқталды",
// "person.page.orcid.sync-queue.send.conflict-error": "The submission to ORCID failed because the resource is already present on the ORCID registry",
- // TODO New key - Add a translation
- "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-ке жіберу сәтсіз аяқталды, өйткені ресурс ORCID тізілімінде бар",
// "person.page.orcid.sync-queue.send.not-found-warning": "The resource does not exists anymore on the ORCID registry.",
- // TODO New key - Add a translation
- "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": "Ресурс енді ORCID тізілімінде жоқ.",
// "person.page.orcid.sync-queue.send.success": "The submission to ORCID was completed successfully",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.send.success": "The submission to ORCID was completed successfully",
+ "person.page.orcid.sync-queue.send.success": "ORCID-ке жіберу сәтті аяқталды",
// "person.page.orcid.sync-queue.send.validation-error": "The data that you want to synchronize with ORCID is not valid",
- // TODO New key - Add a translation
- "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": "ORCID-пен синхрондағыңыз келетін деректер жарамсыз",
// "person.page.orcid.sync-queue.send.validation-error.amount-currency.required": "The amount's currency is required",
- // TODO New key - Add a translation
- "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": "Соманың валютасын көрсету талап етіледі",
// "person.page.orcid.sync-queue.send.validation-error.external-id.required": "The resource to be sent requires at least one identifier",
- // TODO New key - Add a translation
- "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": "Жіберілген ресурс үшін кем дегенде бір идентификатор қажет",
// "person.page.orcid.sync-queue.send.validation-error.title.required": "The title is required",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.send.validation-error.title.required": "The title is required",
+ "person.page.orcid.sync-queue.send.validation-error.title.required": "Аты міндетті",
// "person.page.orcid.sync-queue.send.validation-error.type.required": "The dc.type is required",
- // TODO New key - Add a translation
- "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 міндетті",
// "person.page.orcid.sync-queue.send.validation-error.start-date.required": "The start date is required",
- // TODO New key - Add a translation
- "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": "Басталу күні міндетті",
// "person.page.orcid.sync-queue.send.validation-error.funder.required": "The funder is required",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.send.validation-error.funder.required": "The funder is required",
+ "person.page.orcid.sync-queue.send.validation-error.funder.required": "Қаржыландыру қажет",
// "person.page.orcid.sync-queue.send.validation-error.country.invalid": "Invalid 2 digits ISO 3166 country",
- // TODO New key - Add a translation
- "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": "Жарамсыз 2 сандық ISO 3166 елі",
// "person.page.orcid.sync-queue.send.validation-error.organization.required": "The organization is required",
- // TODO New key - Add a translation
- "person.page.orcid.sync-queue.send.validation-error.organization.required": "The organization is required",
+ "person.page.orcid.sync-queue.send.validation-error.organization.required": "Ұйым міндетті",
// "person.page.orcid.sync-queue.send.validation-error.organization.name-required": "The organization's name is required",
- // TODO New key - Add a translation
- "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": "Ұйымның атауы міндетті",
// "person.page.orcid.sync-queue.send.validation-error.publication.date-invalid" : "The publication date must be one year after 1900",
- // TODO New key - Add a translation
- "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" : "Жариялау күні 1900 жылдан бір жыл артық болуы керек",
// "person.page.orcid.sync-queue.send.validation-error.organization.address-required": "The organization to be sent requires an address",
- // TODO New key - Add a translation
- "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": "Ұйымға жіберу үшін мекен-жай қажет",
// "person.page.orcid.sync-queue.send.validation-error.organization.city-required": "The address of the organization to be sent requires a city",
- // TODO New key - Add a translation
- "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": "Жөнелтілетін ұйымның мекенжайы үшін қаланы көрсету қажет",
// "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 New key - Add a translation
- "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": "Жіберілетін ұйымның мекен-жайы жарамды болуы керек 2 санық 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",
- // TODO New key - Add a translation
- "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": "Ұйымдардың түсініксіздігін жою үшін идентификатор қажет. Қолдау көрсетілетін идентификаторлар - GRID, Ringgold, заңды тұлға идентификаторлары (LEI) және Crossref демеушілер тізілімінің идентификаторлары",
// "person.page.orcid.sync-queue.send.validation-error.disambiguated-organization.value-required": "The organization's identifiers requires a value",
- // TODO New key - Add a translation
- "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": "Ұйым идентификаторлары мәндерді талап етеді",
// "person.page.orcid.sync-queue.send.validation-error.disambiguation-source.required": "The organization's identifiers requires a source",
- // TODO New key - Add a translation
- "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": "Ұйым идентификаторлары үшін ақпарат көзі қажет",
// "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",
- // TODO New key - Add a translation
- "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": "Ұйым идентификаторларының бірінің көзі жарамсыз. Қолдау көздері: RINGGOLD, GRID, LEI және FUNDREF",
- // "person.page.orcid.synchronization-mode": "Synchronization mode",
- // TODO New key - Add a translation
- "person.page.orcid.synchronization-mode": "Synchronization mode",
+ // "person.page.orcid.synchronization-mode": "Synchronization mode",һ
+ "person.page.orcid.synchronization-mode": "Синхрондау режимі",
// "person.page.orcid.synchronization-mode.batch": "Batch",
- // TODO New key - Add a translation
- "person.page.orcid.synchronization-mode.batch": "Batch",
+ "person.page.orcid.synchronization-mode.batch": "Партия",
// "person.page.orcid.synchronization-mode.label": "Synchronization mode",
- // TODO New key - Add a translation
- "person.page.orcid.synchronization-mode.label": "Synchronization mode",
+ "person.page.orcid.synchronization-mode.label": "Синхрондау режимі",
// "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 New key - Add a translation
- "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": "Orcid-пен синхрондау қалай жүретінін таңдаңыз. Опцияларға \"Қолмен\" (деректерді ORCID-ке қолмен жіберу керек) немесе \"пакеттік\" (жүйе жоспарланған сценарий арқылы деректерді ORCID-ке жібереді) кіреді.",
// "person.page.orcid.synchronization-mode-funding-message": "Select whether to send your linked Project entities to your ORCID record's list of funding information.",
- // TODO New key - Add a translation
- "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": "Сізге қатысты жоба нысандарын ORCID жазбаңызды қаржыландыру туралы ақпарат тізіміне жіберуді таңдаңыз.",
// "person.page.orcid.synchronization-mode-publication-message": "Select whether to send your linked Publication entities to your ORCID record's list of works.",
- // TODO New key - Add a translation
- "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": "Қатысты жариялау нысандарын ORCID жазбаңыздың жұмыс тізіміне жіберу керек пе, жоқ па, соны таңдаңыз.",
// "person.page.orcid.synchronization-mode-profile-message": "Select whether to send your biographical data or personal identifiers to your ORCID record.",
- // TODO New key - Add a translation
- "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": "Оқу жоспарын немесе жеке куәліктерді ORCID жазбаңызға жіберуді таңдаңыз.",
// "person.page.orcid.synchronization-settings-update.success": "The synchronization settings have been updated successfully",
- // TODO New key - Add a translation
- "person.page.orcid.synchronization-settings-update.success": "The synchronization settings have been updated successfully",
+ "person.page.orcid.synchronization-settings-update.success": "Синхрондау параметрлері сәтті жаңартылды",
// "person.page.orcid.synchronization-settings-update.error": "The update of the synchronization settings failed",
- // TODO New key - Add a translation
- "person.page.orcid.synchronization-settings-update.error": "The update of the synchronization settings failed",
+ "person.page.orcid.synchronization-settings-update.error": "Синхрондау баптауларын жаңарту мүмкін емес",
// "person.page.orcid.synchronization-mode.manual": "Manual",
"person.page.orcid.synchronization-mode.manual": "Қолмен",
// "person.page.orcid.scope.authenticate": "Get your ORCID iD",
- // TODO New key - Add a translation
- "person.page.orcid.scope.authenticate": "Get your ORCID iD",
+ "person.page.orcid.scope.authenticate": "ORCID iD алу",
// "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": "Сенімді тараптар үшін көріну параметрімен сіздің ақпаратты оқыңыз",
// "person.page.orcid.scope.activities-update": "Add/update your research activities",
- // TODO New key - Add a translation
- "person.page.orcid.scope.activities-update": "Add/update your research activities",
+ "person.page.orcid.scope.activities-update": "Зерттеу жұмыстарын қосыңыз/жаңартыңыз",
// "person.page.orcid.scope.person-update": "Add/update other information about you",
"person.page.orcid.scope.person-update": "Сіз туралы басқа ақпаратты қосу/жаңарту",
// "person.page.orcid.unlink.success": "The disconnection between the profile and the ORCID registry was successful",
- // TODO New key - Add a translation
- "person.page.orcid.unlink.success": "The disconnection between the profile and the ORCID registry was successful",
+ "person.page.orcid.unlink.success": "Профиль мен ORCID тізілімі арасындағы ажырату сәтті өтті",
// "person.page.orcid.unlink.error": "An error occurred while disconnecting between the profile and the ORCID registry. Try again",
- // TODO New key - Add a translation
- "person.page.orcid.unlink.error": "An error occurred while disconnecting between the profile and the ORCID registry. Try again",
+ "person.page.orcid.unlink.error": "Профиль мен ORCID тізілімі арасында өшіру кезінде қате пайда болды. Қайта көріңіз",
// "person.orcid.sync.setting": "ORCID Synchronization settings",
- // TODO New key - Add a translation
- "person.orcid.sync.setting": "ORCID Synchronization settings",
+ "person.orcid.sync.setting": "ORCID синхрондау параметрлері",
// "person.orcid.registry.queue": "ORCID Registry Queue",
- // TODO New key - Add a translation
- "person.orcid.registry.queue": "ORCID Registry Queue",
+ "person.orcid.registry.queue": "ORCID тіркеу кезегі",
// "person.orcid.registry.auth": "ORCID Authorizations",
- // TODO New key - Add a translation
- "person.orcid.registry.auth": "ORCID Authorizations",
+ "person.orcid.registry.auth": "ORCID Ауторизациясы",
// "home.recent-submissions.head": "Recent Submissions",
- // TODO New key - Add a translation
- "home.recent-submissions.head": "Recent Submissions",
-
-
-
+ "home.recent-submissions.head": "Соңғы материалдар",
+
}
diff --git a/src/assets/i18n/lv.json5 b/src/assets/i18n/lv.json5
index 8aea8da6e5..995d8175af 100644
--- a/src/assets/i18n/lv.json5
+++ b/src/assets/i18n/lv.json5
@@ -168,6 +168,8 @@
// "admin.registries.bitstream-formats.table.name": "Name",
"admin.registries.bitstream-formats.table.name": "Nosaukums",
+ // TODO New key - Add a translation
+ "admin.registries.bitstream-formats.table.id" : "ID",
// "admin.registries.bitstream-formats.table.return": "Return",
"admin.registries.bitstream-formats.table.return": "Atgriezties",
@@ -249,6 +251,8 @@
// "admin.registries.schema.fields.table.field": "Field",
"admin.registries.schema.fields.table.field": "Lauks",
+ // TODO New key - Add a translation
+ "admin.registries.schema.fields.table.id" : "ID",
// "admin.registries.schema.fields.table.scopenote": "Scope Note",
"admin.registries.schema.fields.table.scopenote": "Jomas Piezīme",
diff --git a/src/assets/i18n/nl.json5 b/src/assets/i18n/nl.json5
index 1c6d4c7e60..fb66f769ae 100644
--- a/src/assets/i18n/nl.json5
+++ b/src/assets/i18n/nl.json5
@@ -169,6 +169,8 @@
// "admin.registries.bitstream-formats.table.name": "Name",
"admin.registries.bitstream-formats.table.name": "Naam",
+ // TODO New key - Add a translation
+ "admin.registries.bitstream-formats.table.id" : "ID",
// "admin.registries.bitstream-formats.table.return": "Return",
"admin.registries.bitstream-formats.table.return": "Terug",
@@ -250,6 +252,8 @@
// "admin.registries.schema.fields.table.field": "Field",
"admin.registries.schema.fields.table.field": "Veld",
+ // TODO New key - Add a translation
+ "admin.registries.schema.fields.table.id" : "ID",
// "admin.registries.schema.fields.table.scopenote": "Scope Note",
"admin.registries.schema.fields.table.scopenote": "Opmerking over bereik",
@@ -6000,4 +6004,4 @@
"workflow-item.send-back.button.confirm": "Send back"
-}
\ No newline at end of file
+}
diff --git a/src/assets/i18n/pl.json5 b/src/assets/i18n/pl.json5
index bfe0ae186d..58c8c61eb5 100644
--- a/src/assets/i18n/pl.json5
+++ b/src/assets/i18n/pl.json5
@@ -207,6 +207,8 @@
// "admin.registries.bitstream-formats.table.name": "Name",
// TODO New key - Add a translation
"admin.registries.bitstream-formats.table.name": "Name",
+ // TODO New key - Add a translation
+ "admin.registries.bitstream-formats.table.id" : "ID",
// "admin.registries.bitstream-formats.table.return": "Return",
// TODO New key - Add a translation
@@ -311,6 +313,8 @@
// "admin.registries.schema.fields.table.field": "Field",
// TODO New key - Add a translation
"admin.registries.schema.fields.table.field": "Field",
+ // TODO New key - Add a translation
+ "admin.registries.schema.fields.table.id" : "ID",
// "admin.registries.schema.fields.table.scopenote": "Scope Note",
// TODO New key - Add a translation
@@ -6745,4 +6749,4 @@
"workflow-item.send-back.button.confirm": "Send back"
-}
\ No newline at end of file
+}
diff --git a/src/assets/i18n/pt-BR.json5 b/src/assets/i18n/pt-BR.json5
index dae60803f5..77b06a6566 100644
--- a/src/assets/i18n/pt-BR.json5
+++ b/src/assets/i18n/pt-BR.json5
@@ -205,6 +205,9 @@
// "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.return": "Back",
"admin.registries.bitstream-formats.table.return": "Voltar",
@@ -280,6 +283,9 @@
// "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.scopenote": "Scope Note",
"admin.registries.schema.fields.table.scopenote": "Nota de escopo",
@@ -745,6 +751,33 @@
// "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.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.batch-import.page.remove": "remove",
+ "admin.batch-import.page.remove": "remover",
+
// "admin.search.breadcrumbs": "Administrative Search",
"admin.search.breadcrumbs": "Pesquisa Administrativa",
@@ -820,6 +853,9 @@
// "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": "Selecione a Coleção",
+
// "admin.metadata-import.page.error.addFile": "Select file first!",
"admin.metadata-import.page.error.addFile": "Selecione o arquivo primeiro!",
@@ -1176,7 +1212,7 @@
"collection.edit.item-mapper.confirm": "Mapear itens selecionados",
// "collection.edit.item-mapper.description": "This is the item mapper tool that allows collection administrators to map items from other collections into this collection. You can search for items from other collections and map them, or browse the list of currently mapped items.",
- "collection.edit.item-mapper.description": "Esta é a ferramenta de mapeação de itens que permite administradores de coleções a mapear itens de outras coleções nesta. VoCẽ pode busca-los em outras coleções para mapeá-los, ou navegar na lista dos itens atualmente mapeados.",
+ "collection.edit.item-mapper.description": "Esta é a ferramenta de mapeação de itens que permite administradores de coleções a mapear itens de outras coleções nesta. Você pode buscar em outras coleções para mapear, ou navegar na lista dos itens atualmente mapeados.",
// "collection.edit.item-mapper.head": "Item Mapper - Map Items from Other Collections",
"collection.edit.item-mapper.head": "Mapeador de Itens - Mapear itens em Outras Coleções",
@@ -1230,7 +1266,7 @@
"collection.edit.logo.label": "Logotipo de Coleção",
// "collection.edit.logo.notifications.add.error": "Uploading Collection logo failed. Please verify the content before retrying.",
- "collection.edit.logo.notifications.add.error": "Falha ao carregar o logotipo da coleção. Verifique o ficheiro antes de tentar de novo.",
+ "collection.edit.logo.notifications.add.error": "Falha ao carregar o logotipo da coleção. Verifique o arquivo antes de tentar de novo.",
// "collection.edit.logo.notifications.add.success": "Upload Collection logo successful.",
"collection.edit.logo.notifications.add.success": "O logotipo da coleção foi carregado com sucesso.",
@@ -1912,6 +1948,12 @@
// "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": "Exportar Lote (ZIP) de",
+
+ //"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",
"dso-selector.no-results": "Nenhum(a) {{ type }} encontrado(a)",
@@ -1954,6 +1996,18 @@
// "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": "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": "Você tem certeza que deseja exportar o lote (ZIP) para {{ dsoName }}",
+
+ //"confirmation-modal.export-batch.cancel": "Cancel",
+ "confirmation-modal.export-batch.cancel": "Cancelar",
+
+ //"confirmation-modal.export-batch.confirm": "Export",
+ "confirmation-modal.export-batch.confirm": "Exportar",
+
// "confirmation-modal.delete-eperson.header": "Delete EPerson \"{{ dsoName }}\"",
"confirmation-modal.delete-eperson.header": "Apagar EPerson \"{{ dsoName }}\"",
@@ -2324,17 +2378,17 @@
// "health-page.section.geoIp.title": "GeoIp",
"health-page.section.geoIp.title": "GeoIp",
- // "health-page.section.solrAuthorityCore.title": "Sor: authority core",
+ // "health-page.section.solrAuthorityCore.title": "Solr: authority core",
"health-page.section.solrAuthorityCore.title": "Solr: authority core",
- // "health-page.section.solrOaiCore.title": "Sor: oai core",
+ // "health-page.section.solrOaiCore.title": "Solr: oai core",
"health-page.section.solrOaiCore.title": "Solr: oai core",
- // "health-page.section.solrSearchCore.title": "Sor: search core",
+ // "health-page.section.solrSearchCore.title": "Solr: search core",
"health-page.section.solrSearchCore.title": "Solr: core pesquisa",
- // "health-page.section.solrStatisticsCore.title": "Sor: statistics core",
- "health-page.section.solrStatisticsCore.title": "Soilr: estatisticas core",
+ // "health-page.section.solrStatisticsCore.title": "Solr: statistics core",
+ "health-page.section.solrStatisticsCore.title": "Solr: estatisticas core",
// "health-page.section-info.app.title": "Application Backend",
"health-page.section-info.app.title": "Aplicação de Backend",
@@ -2457,7 +2511,7 @@
"item.alerts.withdrawn": "Este item foi recebido",
// "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": "Com este editor pode ver e alterar as políticas de um item, assim como alterar políticas de componentes individuais do item: pacotes e ficheiros. Em resumo, um item contém pacotes, e os pacotes contêm de ficheiros. Os pacotes possuem usualmente políticas de ADICIONAR/REMOVER/LER/ESCREVER enquanto que os ficheiros apenas políticas de LER/ESCREVER.",
+ "item.edit.authorizations.heading": "Com este editor pode ver e alterar as políticas de um item, assim como alterar políticas de componentes individuais do item: pacotes e arquivos. Em resumo, um item contém pacotes, e os pacotes contêm de arquivos. Os pacotes possuem usualmente políticas de ADICIONAR/REMOVER/LER/ESCREVER enquanto que os arquivos apenas políticas de LER/ESCREVER.",
// "item.edit.authorizations.title": "Edit item's Policies",
"item.edit.authorizations.title": "Editar Política de item",
@@ -3748,6 +3802,9 @@
// "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",
diff --git a/src/assets/i18n/pt-PT.json5 b/src/assets/i18n/pt-PT.json5
index b96d1171e1..c0327c4b54 100644
--- a/src/assets/i18n/pt-PT.json5
+++ b/src/assets/i18n/pt-PT.json5
@@ -368,6 +368,8 @@
// "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.return": "Return",
"admin.registries.bitstream-formats.table.return": "Voltar",
@@ -443,6 +445,8 @@
// "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.scopenote": "Scope Note",
"admin.registries.schema.fields.table.scopenote": "Descrição",
diff --git a/src/assets/i18n/sv.json5 b/src/assets/i18n/sv.json5
index 96008b96a6..86a6b045cc 100644
--- a/src/assets/i18n/sv.json5
+++ b/src/assets/i18n/sv.json5
@@ -168,6 +168,8 @@
// "admin.registries.bitstream-formats.table.name": "Name",
"admin.registries.bitstream-formats.table.name": "Namn",
+ // TODO New key - Add a translation
+ "admin.registries.bitstream-formats.table.id" : "ID",
// "admin.registries.bitstream-formats.table.return": "Back",
"admin.registries.bitstream-formats.table.return": "Tillbaka",
@@ -245,6 +247,8 @@
// "admin.registries.schema.fields.table.field": "Field",
"admin.registries.schema.fields.table.field": "Fält",
+ // TODO New key - Add a translation
+ "admin.registries.schema.fields.table.id" : "ID",
// "admin.registries.schema.fields.table.scopenote": "Scope Note",
"admin.registries.schema.fields.table.scopenote": "Anmärkning (scope note)",
diff --git a/src/assets/i18n/sw.json5 b/src/assets/i18n/sw.json5
index bfe0ae186d..58c8c61eb5 100644
--- a/src/assets/i18n/sw.json5
+++ b/src/assets/i18n/sw.json5
@@ -207,6 +207,8 @@
// "admin.registries.bitstream-formats.table.name": "Name",
// TODO New key - Add a translation
"admin.registries.bitstream-formats.table.name": "Name",
+ // TODO New key - Add a translation
+ "admin.registries.bitstream-formats.table.id" : "ID",
// "admin.registries.bitstream-formats.table.return": "Return",
// TODO New key - Add a translation
@@ -311,6 +313,8 @@
// "admin.registries.schema.fields.table.field": "Field",
// TODO New key - Add a translation
"admin.registries.schema.fields.table.field": "Field",
+ // TODO New key - Add a translation
+ "admin.registries.schema.fields.table.id" : "ID",
// "admin.registries.schema.fields.table.scopenote": "Scope Note",
// TODO New key - Add a translation
@@ -6745,4 +6749,4 @@
"workflow-item.send-back.button.confirm": "Send back"
-}
\ No newline at end of file
+}
diff --git a/src/assets/i18n/tr.json5 b/src/assets/i18n/tr.json5
index 84e5e0f34b..8eb0ce7e19 100644
--- a/src/assets/i18n/tr.json5
+++ b/src/assets/i18n/tr.json5
@@ -156,6 +156,8 @@
// "admin.registries.bitstream-formats.table.name": "Name",
"admin.registries.bitstream-formats.table.name": "İsim",
+ // TODO New key - Add a translation
+ "admin.registries.bitstream-formats.table.id" : "ID",
// "admin.registries.bitstream-formats.table.return": "Return",
"admin.registries.bitstream-formats.table.return": "Geri Dön",
@@ -235,6 +237,8 @@
// "admin.registries.schema.fields.table.field": "Field",
"admin.registries.schema.fields.table.field": "Alan",
+ // TODO New key - Add a translation
+ "admin.registries.schema.fields.table.id" : "ID",
// "admin.registries.schema.fields.table.scopenote": "Scope Note",
"admin.registries.schema.fields.table.scopenote": "Kapsam Notu",
diff --git a/src/assets/i18n/uk.json5 b/src/assets/i18n/uk.json5
new file mode 100644
index 0000000000..b0413d9353
--- /dev/null
+++ b/src/assets/i18n/uk.json5
@@ -0,0 +1,5475 @@
+{
+
+ // "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": "Ви не авторизовані для доступу до цієї сторінки. Ви можете скористатися кнопкою нижче, щоб повернутися на головну сторінку.",
+
+ // "401.link.home-page": "Take me to the home page",
+
+ "401.link.home-page": "Перейти на головну сторінку",
+
+ // "401.unauthorized": "unauthorized",
+
+ "401.unauthorized": "Ви не авторизовані",
+
+
+
+ // "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": "Ви не маєте дозволу на доступ до цієї сторінки. Ви можете скористатися кнопкою нижче, щоб повернутися на головну сторінку.",
+
+ // "403.link.home-page": "Take me to the home page",
+
+ "403.link.home-page": "Перейти на головну сторінку",
+
+ // "403.forbidden": "forbidden",
+
+ "403.forbidden": "заборонено",
+
+
+
+ // "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": "Ми не можемо знайти сторінку, яку ви шукаєте. Можливо, сторінку було переміщено або видалено. Ви можете скористатися кнопкою нижче, щоб повернутися на головну сторінку. ",
+
+ // "404.link.home-page": "Take me to the home page",
+ "404.link.home-page": "Перейти на головну сторінку",
+
+ // "404.page-not-found": "page not found",
+ "404.page-not-found": "сторінка не знайдена",
+
+ // "admin.curation-tasks.breadcrumbs": "System curation tasks",
+
+ "admin.curation-tasks.breadcrumbs": "Управління системою",
+
+ // "admin.curation-tasks.title": "System curation tasks",
+
+ "admin.curation-tasks.title": "Управління системою",
+
+ // "admin.curation-tasks.header": "System curation tasks",
+
+ "admin.curation-tasks.header": "Управління системою",
+
+ // "admin.registries.bitstream-formats.breadcrumbs": "Format registry",
+
+ "admin.registries.bitstream-formats.breadcrumbs": "Реєстр форматів",
+
+ // "admin.registries.bitstream-formats.create.breadcrumbs": "Bitstream format",
+
+ "admin.registries.bitstream-formats.create.breadcrumbs": "Формат файлів",
+
+ // "admin.registries.bitstream-formats.create.failure.content": "An error occurred while creating the new bitstream format.",
+ "admin.registries.bitstream-formats.create.failure.content": "Під час створення нового файлу сталася помилка.",
+
+ // "admin.registries.bitstream-formats.create.failure.head": "Failure",
+ "admin.registries.bitstream-formats.create.failure.head": "Крах",
+
+ // "admin.registries.bitstream-formats.create.head": "Create Bitstream format",
+ "admin.registries.bitstream-formats.create.head": "Створити формат файлу",
+
+ // "admin.registries.bitstream-formats.create.new": "Add a new bitstream format",
+ "admin.registries.bitstream-formats.create.new": "Додати новий формат файлу",
+
+ // "admin.registries.bitstream-formats.create.success.content": "The new bitstream format was successfully created.",
+ "admin.registries.bitstream-formats.create.success.content": "Новий формат файлу був успішно створений.",
+
+ // "admin.registries.bitstream-formats.create.success.head": "Success",
+ "admin.registries.bitstream-formats.create.success.head": "Успішно",
+
+ // "admin.registries.bitstream-formats.delete.failure.amount": "Failed to remove {{ amount }} format(s)",
+ "admin.registries.bitstream-formats.delete.failure.amount": "Неможливо видалити {{ amount }} формат(и)",
+
+ // "admin.registries.bitstream-formats.delete.failure.head": "Failure",
+ "admin.registries.bitstream-formats.delete.failure.head": "Крах",
+
+ // "admin.registries.bitstream-formats.delete.success.amount": "Successfully removed {{ amount }} format(s)",
+ "admin.registries.bitstream-formats.delete.success.amount": "Успішно видалено {{ amount }} формат(и)",
+
+ // "admin.registries.bitstream-formats.delete.success.head": "Success",
+ "admin.registries.bitstream-formats.delete.success.head": "Успіх",
+
+ // "admin.registries.bitstream-formats.description": "This list of bitstream formats provides information about known formats and their support level.",
+ "admin.registries.bitstream-formats.description": "Цей список форматів файлів містить інформацію про відомі формати та рівень їх підтримки.",
+
+ // "admin.registries.bitstream-formats.edit.breadcrumbs": "Bitstream format",
+
+ "admin.registries.bitstream-formats.edit.breadcrumbs": "Формат файлу",
+
+ // "admin.registries.bitstream-formats.edit.description.hint": "",
+ "admin.registries.bitstream-formats.edit.description.hint": "",
+
+ // "admin.registries.bitstream-formats.edit.description.label": "Description",
+ "admin.registries.bitstream-formats.edit.description.label": "Опис",
+
+ // "admin.registries.bitstream-formats.edit.extensions.hint": "Extensions are file extensions that are used to automatically identify the format of uploaded files. You can enter several extensions for each format.",
+ "admin.registries.bitstream-formats.edit.extensions.hint": "Розширення — це розширення файлів, які використовуються для автоматичного визначення формату завантажених файлів. Ви можете ввести кілька розширень для кожного формату.",
+
+ // "admin.registries.bitstream-formats.edit.extensions.label": "File extensions",
+ "admin.registries.bitstream-formats.edit.extensions.label": "Розширення файлу",
+
+ // "admin.registries.bitstream-formats.edit.extensions.placeholder": "Enter a file extension without the dot",
+ "admin.registries.bitstream-formats.edit.extensions.placeholder": "Ввведіть розширення файлу без крапки",
+
+ // "admin.registries.bitstream-formats.edit.failure.content": "An error occurred while editing the bitstream format.",
+ "admin.registries.bitstream-formats.edit.failure.content": "Виникла помилка при редагуванні формату файлу.",
+
+ // "admin.registries.bitstream-formats.edit.failure.head": "Failure",
+ "admin.registries.bitstream-formats.edit.failure.head": "Крах",
+
+ // "admin.registries.bitstream-formats.edit.head": "Bitstream format: {{ format }}",
+ "admin.registries.bitstream-formats.edit.head": "Формат файлу: {{ format }}",
+
+ // "admin.registries.bitstream-formats.edit.internal.hint": "Formats marked as internal are hidden from the user, and used for administrative purposes.",
+ "admin.registries.bitstream-formats.edit.internal.hint": "Формати, позначені як внутрішні, приховані від користувача та використовуються в адміністративних цілях.",
+
+ // "admin.registries.bitstream-formats.edit.internal.label": "Internal",
+ "admin.registries.bitstream-formats.edit.internal.label": "Внутрішні",
+
+ // "admin.registries.bitstream-formats.edit.mimetype.hint": "The MIME type associated with this format, does not have to be unique.",
+ "admin.registries.bitstream-formats.edit.mimetype.hint": "Тип MIME, пов’язаний із цим форматом, не обов’язково має бути унікальним.",
+
+ // "admin.registries.bitstream-formats.edit.mimetype.label": "MIME Type",
+ "admin.registries.bitstream-formats.edit.mimetype.label": "Тип MIME ",
+
+ // "admin.registries.bitstream-formats.edit.shortDescription.hint": "A unique name for this format, (e.g. Microsoft Word XP or Microsoft Word 2000)",
+ "admin.registries.bitstream-formats.edit.shortDescription.hint": "Унікальна назва формату, (наприклад Microsoft Word XP or Microsoft Word 2000)",
+
+ // "admin.registries.bitstream-formats.edit.shortDescription.label": "Name",
+ "admin.registries.bitstream-formats.edit.shortDescription.label": "Ім'я",
+
+ // "admin.registries.bitstream-formats.edit.success.content": "The bitstream format was successfully edited.",
+ "admin.registries.bitstream-formats.edit.success.content": "Формат файлу успішно відредаговано.",
+
+ // "admin.registries.bitstream-formats.edit.success.head": "Success",
+ "admin.registries.bitstream-formats.edit.success.head": "Успішно",
+
+ // "admin.registries.bitstream-formats.edit.supportLevel.hint": "The level of support your institution pledges for this format.",
+ "admin.registries.bitstream-formats.edit.supportLevel.hint": "Рівень підтримки, який ваша установа обіцяє для цього формату.",
+
+ // "admin.registries.bitstream-formats.edit.supportLevel.label": "Support level",
+ "admin.registries.bitstream-formats.edit.supportLevel.label": "Рівень підтримки",
+
+ // "admin.registries.bitstream-formats.head": "Bitstream Format Registry",
+ "admin.registries.bitstream-formats.head": "Реєстр формату файлу",
+
+ // "admin.registries.bitstream-formats.no-items": "No bitstream formats to show.",
+ "admin.registries.bitstream-formats.no-items": "Немає форматів файлів.",
+
+ // "admin.registries.bitstream-formats.table.delete": "Delete selected",
+ "admin.registries.bitstream-formats.table.delete": "Видалити видалене",
+
+ // "admin.registries.bitstream-formats.table.deselect-all": "Deselect all",
+ "admin.registries.bitstream-formats.table.deselect-all": "Зняти вибір із усіх",
+
+ // "admin.registries.bitstream-formats.table.internal": "internal",
+ "admin.registries.bitstream-formats.table.internal": "внутрішні",
+
+ // "admin.registries.bitstream-formats.table.mimetype": "MIME Type",
+ "admin.registries.bitstream-formats.table.mimetype": "Тип MIME",
+
+ // "admin.registries.bitstream-formats.table.name": "Name",
+ "admin.registries.bitstream-formats.table.name": "Ім'я",
+
+ // "admin.registries.bitstream-formats.table.return": "Return",
+ "admin.registries.bitstream-formats.table.return": "Повернутись",
+
+ // "admin.registries.bitstream-formats.table.supportLevel.KNOWN": "Known",
+ "admin.registries.bitstream-formats.table.supportLevel.KNOWN": "Відомо",
+
+ // "admin.registries.bitstream-formats.table.supportLevel.SUPPORTED": "Supported",
+ "admin.registries.bitstream-formats.table.supportLevel.SUPPORTED": "Підтримується",
+
+ // "admin.registries.bitstream-formats.table.supportLevel.UNKNOWN": "Unknown",
+ "admin.registries.bitstream-formats.table.supportLevel.UNKNOWN": "Невідомо",
+
+ // "admin.registries.bitstream-formats.table.supportLevel.head": "Support Level",
+ "admin.registries.bitstream-formats.table.supportLevel.head": "Рівні підтримки",
+
+ // "admin.registries.bitstream-formats.title": "DSpace Angular :: Bitstream Format Registry",
+ "admin.registries.bitstream-formats.title": "Репозитарій :: реєстр формату файлу",
+
+
+
+ // "admin.registries.metadata.breadcrumbs": "Metadata registry",
+ // TODO New key - Add a translation
+ "admin.registries.metadata.breadcrumbs": "Реєстр метаданих",
+
+ // "admin.registries.metadata.description": "The metadata registry maintains a list of all metadata fields available in the repository. These fields may be divided amongst multiple schemas. However, DSpace requires the qualified Dublin Core schema.",
+ "admin.registries.metadata.description": "Реєстр метаданих підтримує список усіх полів метаданих, доступних у репозитарії. Ці поля можна розділити на кілька схем. Однак для ПЗ DSpace потрібна схема Dublin Core.",
+
+ // "admin.registries.metadata.form.create": "Create metadata schema",
+ "admin.registries.metadata.form.create": "Створити схему метаданих",
+
+ // "admin.registries.metadata.form.edit": "Edit metadata schema",
+ "admin.registries.metadata.form.edit": "Редагувати схему метаданих",
+
+ // "admin.registries.metadata.form.name": "Name",
+ "admin.registries.metadata.form.name": "Ім'я",
+
+ // "admin.registries.metadata.form.namespace": "Namespace",
+ "admin.registries.metadata.form.namespace": "Простір",
+
+ // "admin.registries.metadata.head": "Metadata Registry",
+ "admin.registries.metadata.head": "Реєстр метаданих",
+
+ // "admin.registries.metadata.schemas.no-items": "No metadata schemas to show.",
+ "admin.registries.metadata.schemas.no-items": "Немає схеми метаданих.",
+
+ // "admin.registries.metadata.schemas.table.delete": "Delete selected",
+ "admin.registries.metadata.schemas.table.delete": "Видалити виділене",
+
+ // "admin.registries.metadata.schemas.table.id": "ID",
+ "admin.registries.metadata.schemas.table.id": "Ідентифікатор",
+
+ // "admin.registries.metadata.schemas.table.name": "Name",
+ "admin.registries.metadata.schemas.table.name": "Ім'я",
+
+ // "admin.registries.metadata.schemas.table.namespace": "Namespace",
+ "admin.registries.metadata.schemas.table.namespace": "Простір",
+
+ // "admin.registries.metadata.title": "DSpace Angular :: Metadata Registry",
+ "admin.registries.metadata.title": "Репозитарій :: Реєстр метаданих",
+
+
+
+ // "admin.registries.schema.breadcrumbs": "Metadata schema",
+
+ "admin.registries.schema.breadcrumbs": "Схема метаданих",
+
+ // "admin.registries.schema.description": "This is the metadata schema for \"{{namespace}}\".",
+ "admin.registries.schema.description": "Це схема метаданих для \"{{namespace}}\".",
+
+ // "admin.registries.schema.fields.head": "Schema metadata fields",
+ "admin.registries.schema.fields.head": "Поля схеми метаданих",
+
+ // "admin.registries.schema.fields.no-items": "No metadata fields to show.",
+ "admin.registries.schema.fields.no-items": "Немає полів метаданих.",
+
+ // "admin.registries.schema.fields.table.delete": "Delete selected",
+ "admin.registries.schema.fields.table.delete": "Видалити виділене",
+
+ // "admin.registries.schema.fields.table.field": "Field",
+ "admin.registries.schema.fields.table.field": "Поле",
+
+ // "admin.registries.schema.fields.table.scopenote": "Scope Note",
+ "admin.registries.schema.fields.table.scopenote": "Примітка щодо сфери застосування",
+
+ // "admin.registries.schema.form.create": "Create metadata field",
+ "admin.registries.schema.form.create": "Створити поле метаданих",
+
+ // "admin.registries.schema.form.edit": "Edit metadata field",
+ "admin.registries.schema.form.edit": "Редагувати поле метаданих",
+
+ // "admin.registries.schema.form.element": "Element",
+ "admin.registries.schema.form.element": "Елементи",
+
+ // "admin.registries.schema.form.qualifier": "Qualifier",
+ "admin.registries.schema.form.qualifier": "Кваліфікатор",
+
+ // "admin.registries.schema.form.scopenote": "Scope Note",
+ "admin.registries.schema.form.scopenote": "Примітка щодо сфери застосування",
+
+ // "admin.registries.schema.head": "Metadata Schema",
+ "admin.registries.schema.head": "Схема метаданих",
+
+ // "admin.registries.schema.notification.created": "Successfully created metadata schema \"{{prefix}}\"",
+ "admin.registries.schema.notification.created": "Схема метаданих \"{{prefix}}\" успішно створена",
+
+ // "admin.registries.schema.notification.deleted.failure": "Failed to delete {{amount}} metadata schemas",
+ "admin.registries.schema.notification.deleted.failure": "Неможливо видалити {{amount}} схему метаданих",
+
+ // "admin.registries.schema.notification.deleted.success": "Successfully deleted {{amount}} metadata schemas",
+ "admin.registries.schema.notification.deleted.success": "{{amount}} схема метаданих успішно видалена",
+
+ // "admin.registries.schema.notification.edited": "Successfully edited metadata schema \"{{prefix}}\"",
+ "admin.registries.schema.notification.edited": "Схема метаданих \"{{prefix}}\" успішно відредагована",
+
+ // "admin.registries.schema.notification.failure": "Error",
+ "admin.registries.schema.notification.failure": "Помилка",
+
+ // "admin.registries.schema.notification.field.created": "Successfully created metadata field \"{{field}}\"",
+ "admin.registries.schema.notification.field.created": "Поле метаданих \"{{field}}\" успішно створено",
+
+ // "admin.registries.schema.notification.field.deleted.failure": "Failed to delete {{amount}} metadata fields",
+ "admin.registries.schema.notification.field.deleted.failure": "Неможливо видалити {{amount}} поле(я) метаданих",
+
+ // "admin.registries.schema.notification.field.deleted.success": "Successfully deleted {{amount}} metadata fields",
+ "admin.registries.schema.notification.field.deleted.success": "{{amount}} поля метаданих успішно видалено",
+
+ // "admin.registries.schema.notification.field.edited": "Successfully edited metadata field \"{{field}}\"",
+ "admin.registries.schema.notification.field.edited": "\"{{field}}\" поле метаданих успішно відредаговано",
+
+ // "admin.registries.schema.notification.success": "Success",
+ "admin.registries.schema.notification.success": "Успіх",
+
+ // "admin.registries.schema.return": "Return",
+ "admin.registries.schema.return": "Повернутись",
+
+ // "admin.registries.schema.title": "DSpace Angular :: Metadata Schema Registry",
+ "admin.registries.schema.title": "Репозитарій :: реєстр схеми метаданих",
+
+
+
+ // "admin.access-control.epeople.actions.delete": "Delete EPerson",
+
+ "admin.access-control.epeople.actions.delete": "Видалити користувача",
+
+ // "admin.access-control.epeople.actions.impersonate": "Impersonate EPerson",
+
+ "admin.access-control.epeople.actions.impersonate": "Видати себе за користувача",
+
+ // "admin.access-control.epeople.actions.reset": "Скинути пароль",
+
+ "admin.access-control.epeople.actions.reset": "Скинути пароль",
+
+ // "admin.access-control.epeople.actions.stop-impersonating": "Stop impersonating EPerson",
+ // TODO New key - Add a translation
+ "admin.access-control.epeople.actions.stop-impersonating": "Зупинити видавати себе за користувача",
+
+ // "admin.access-control.epeople.title": "Репозитарій :: EPeople",
+ "admin.access-control.epeople.title": "Репозитарій :: Користувачі",
+
+ // "admin.access-control.epeople.head": "EPeople",
+ "admin.access-control.epeople.head": "Користувачі",
+
+ // "admin.access-control.epeople.search.head": "Search",
+ "admin.access-control.epeople.search.head": "Шукати",
+
+ // "admin.access-control.epeople.button.see-all": "Browse All",
+ "admin.access-control.epeople.button.see-all": "Переглянути всі",
+
+ // "admin.access-control.epeople.search.scope.metadata": "Metadata",
+ "admin.access-control.epeople.search.scope.metadata": "Метадані",
+
+ // "admin.access-control.epeople.search.scope.email": "E-mail (exact)",
+ "admin.access-control.epeople.search.scope.email": "E-mail",
+
+ // "admin.access-control.epeople.search.button": "Шукати",
+ "admin.access-control.epeople.search.button": "Шукати",
+
+ // "admin.access-control.epeople.button.add": "Add EPerson",
+ "admin.access-control.epeople.button.add": "Додати користувача",
+
+ // "admin.access-control.epeople.table.id": "ID",
+ "admin.access-control.epeople.table.id": "ID",
+
+ // "admin.access-control.epeople.table.name": "Name",
+ "admin.access-control.epeople.table.name": "Ім'я",
+
+ // "admin.access-control.epeople.table.email": "E-mail (exact)",
+ "admin.access-control.epeople.table.email": "E-mail",
+
+ // "admin.access-control.epeople.table.edit": "Edit",
+ "admin.access-control.epeople.table.edit": "Редагувати",
+
+ // "admin.access-control.epeople.table.edit.buttons.edit": "Edit \"{{name}}\"",
+ "admin.access-control.epeople.table.edit.buttons.edit": "Редагувати \"{{name}}\"",
+
+ // "admin.access-control.epeople.table.edit.buttons.remove": "Delete \"{{name}}\"",
+ "admin.access-control.epeople.table.edit.buttons.remove": "Видалити \"{{name}}\"",
+
+ // "admin.access-control.epeople.no-items": "No EPeople to show.",
+ "admin.access-control.epeople.no-items": "Користувачі відсутні.",
+
+ // "admin.access-control.epeople.form.create": "Create EPerson",
+ "admin.access-control.epeople.form.create": "Створити користувача",
+
+ // "admin.access-control.epeople.form.edit": "Edit EPerson",
+ "admin.access-control.epeople.form.edit": "Редагувати користувача",
+
+ // "admin.access-control.epeople.form.firstName": "First name",
+ "admin.access-control.epeople.form.firstName": "Ім'я",
+
+ // "admin.access-control.epeople.form.lastName": "Last name",
+ "admin.access-control.epeople.form.lastName": "Прізвище",
+
+ // "admin.access-control.epeople.form.email": "E-mail",
+ "admin.access-control.epeople.form.email": "E-mail",
+
+ // "admin.access-control.epeople.form.emailHint": "Must be valid e-mail address",
+ "admin.access-control.epeople.form.emailHint": "E-mail повинен бути правильний",
+
+ // "admin.access-control.epeople.form.canLogIn": "Can log in",
+ "admin.access-control.epeople.form.canLogIn": "Може увійти",
+
+ // "admin.access-control.epeople.form.requireCertificate": "Requires certificate",
+ "admin.access-control.epeople.form.requireCertificate": "Вимагати сертифікат",
+
+ // "admin.access-control.epeople.form.notification.created.success": "Successfully created EPerson \"{{name}}\"",
+ "admin.access-control.epeople.form.notification.created.success": "Користувач \"{{name}}\" успішно створений",
+
+ // "admin.access-control.epeople.form.notification.created.failure": "Failed to create EPerson \"{{name}}\"",
+ "admin.access-control.epeople.form.notification.created.failure": "Неможливо створити користувача \"{{name}}\"",
+
+ // "admin.access-control.epeople.form.notification.created.failure.emailInUse": "Failed to create EPerson \"{{name}}\", email \"{{email}}\" already in use.",
+ "admin.access-control.epeople.form.notification.created.failure.emailInUse": "Неможливо створити користувача \"{{name}}\", e-pasts \"{{email}}\" вже використовується.",
+
+ // "admin.access-control.epeople.form.notification.edited.failure.emailInUse": "Failed to edit EPerson \"{{name}}\", email \"{{email}}\" already in use.",
+ "admin.access-control.epeople.form.notification.edited.failure.emailInUse": "Неможливо редагувати користувача \"{{name}}\", e-pasts \"{{email}}\" вже використовується.",
+
+ // "admin.access-control.epeople.form.notification.edited.success": "Successfully edited EPerson \"{{name}}\"",
+ "admin.access-control.epeople.form.notification.edited.success": "Користувач \"{{name}}\" успішно відредагований",
+
+ // "admin.access-control.epeople.form.notification.edited.failure": "Failed to edit EPerson \"{{name}}\"",
+ "admin.access-control.epeople.form.notification.edited.failure": "Неможливо відредагувати користувача \"{{name}}\"",
+
+ // "admin.access-control.epeople.form.notification.deleted.success": "Successfully deleted EPerson \"{{name}}\"",
+
+ "admin.access-control.epeople.form.notification.deleted.success": "Користувач \"{{name}}\" успішно видалений",
+
+ // "admin.access-control.epeople.form.notification.deleted.failure": "Failed to delete EPerson \"{{name}}\"",
+
+ "admin.access-control.epeople.form.notification.deleted.failure": "Неможливо видалити користувача \"{{name}}\"",
+
+ // "admin.access-control.epeople.form.groupsEPersonIsMemberOf": "Member of these groups:",
+ "admin.access-control.epeople.form.groupsEPersonIsMemberOf": "Член груп:",
+
+ // "admin.access-control.epeople.form.table.id": "ID",
+ "admin.access-control.epeople.form.table.id": "ID",
+
+ // "admin.access-control.epeople.form.table.name": "Name",
+ "admin.access-control.epeople.form.table.name": "Ім'я",
+
+ // "admin.access-control.epeople.form.memberOfNoGroups": "This EPerson is not a member of any groups",
+ "admin.access-control.epeople.form.memberOfNoGroups": "Користувач не є членом жодної групи",
+
+ // "admin.access-control.epeople.form.goToGroups": "Add to groups",
+ "admin.access-control.epeople.form.goToGroups": "Додати до груп",
+
+ // "admin.access-control.epeople.notification.deleted.failure": "Failed to delete EPerson: \"{{name}}\"",
+ "admin.access-control.epeople.notification.deleted.failure": "Неможливо видалити користувача: \"{{name}}\"",
+
+ // "admin.access-control.epeople.notification.deleted.success": "Successfully deleted EPerson: \"{{name}}\"",
+ "admin.access-control.epeople.notification.deleted.success": "Користувача \"{{name}}\" успішно видалено",
+
+
+
+ // "admin.access-control.groups.title": "Репозитарій :: Групи",
+ "admin.access-control.groups.title": "Репозитарій :: Групи",
+
+ // "admin.access-control.groups.title.singleGroup": "DSpace Angular :: Edit Group",
+
+ "admin.access-control.groups.title.singleGroup": "Репозитарій :: Редагувати групу",
+
+ // "admin.access-control.groups.title.addGroup": "DSpace Angular :: New Group",
+
+ "admin.access-control.groups.title.addGroup": "Репозитарій :: Створити нову групу",
+
+ // "admin.access-control.groups.head": "Groups",
+ "admin.access-control.groups.head": "Групи",
+
+ // "admin.access-control.groups.button.add": "Add group",
+ "admin.access-control.groups.button.add": "Створити нову групу",
+
+ // "admin.access-control.groups.search.head": "Search groups",
+ "admin.access-control.groups.search.head": "Шукати групу",
+
+ // "admin.access-control.groups.button.see-all": "Browse all",
+ "admin.access-control.groups.button.see-all": "Переглянути всі",
+
+ // "admin.access-control.groups.search.button": "Search",
+ "admin.access-control.groups.search.button": "Шукати",
+
+ // "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": "Ім'я",
+
+ // "admin.access-control.groups.table.members": "Members",
+ "admin.access-control.groups.table.members": "Члени",
+
+ // "admin.access-control.groups.table.edit": "Edit",
+ "admin.access-control.groups.table.edit": "Редагувати",
+
+ // "admin.access-control.groups.table.edit.buttons.edit": "Edit \"{{name}}\"",
+ "admin.access-control.groups.table.edit.buttons.edit": "Редагувати \"{{name}}\"",
+
+ // "admin.access-control.groups.table.edit.buttons.remove": "Delete \"{{name}}\"",
+ "admin.access-control.groups.table.edit.buttons.remove": "Видалити \"{{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": "Групи не знайдено за Вашими критеріями ",
+
+ // "admin.access-control.groups.notification.deleted.success": "Successfully deleted group \"{{name}}\"",
+ "admin.access-control.groups.notification.deleted.success": "Група \"{{name}}\" успішно видалена",
+
+ // "admin.access-control.groups.notification.deleted.failure.title": "Failed to delete group \"{{name}}\"",
+
+ "admin.access-control.groups.notification.deleted.failure.title": "Групу \"{{name}}\" видалити неможливо",
+
+ // "admin.access-control.groups.notification.deleted.failure.content": "Cause: \"{{cause}}\"",
+
+ "admin.access-control.groups.notification.deleted.failure.content": "Причина: \"{{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": "Ця група є постійна, тому її не можна редагувати чи видаляти. Ви все ще можете так це додавати та видаляти учасників групи за допомогою цієї сторінки.",
+
+ // "admin.access-control.groups.form.alert.workflowGroup": "This group can’t be modified or deleted because it corresponds to a role in the submission and workflow process in the \"{{name}}\" {{comcol}}. You can delete it from the
\"assign roles\" tab on the edit {{comcol}} page. You can still add and remove group members using this page.",
+
+ "admin.access-control.groups.form.alert.workflowGroup": "Цю групу не можна змінити або видалити, оскільки вона відповідає за ролі в процесі подання чи опрацювання документів в \"{{name}}\" {{comcol}}. Ви можете видалити її
\"assign roles\" на сторінці {{comcol}} вкладки Редагування. Ви все ще можете додавати та видаляти учасників групи за допомогою цієї сторінки.",
+
+ // "admin.access-control.groups.form.head.create": "Create group",
+ "admin.access-control.groups.form.head.create": "Створити групу",
+
+ // "admin.access-control.groups.form.head.edit": "Edit group",
+ "admin.access-control.groups.form.head.edit": "Редагувати групу",
+
+ // "admin.access-control.groups.form.groupName": "Group name",
+ "admin.access-control.groups.form.groupName": "Ім'я групи",
+
+ // "admin.access-control.groups.form.groupDescription": "Description",
+ "admin.access-control.groups.form.groupDescription": "Опис",
+
+ // "admin.access-control.groups.form.notification.created.success": "Successfully created Group \"{{name}}\"",
+ "admin.access-control.groups.form.notification.created.success": "Група \"{{name}}\" успішно створена",
+
+ // "admin.access-control.groups.form.notification.created.failure": "Failed to create Group \"{{name}}\"",
+ "admin.access-control.groups.form.notification.created.failure": "Неможливо створити групу \"{{name}}\"",
+
+ // "admin.access-control.groups.form.notification.created.failure.groupNameInUse": "Failed to create Group with name: \"{{name}}\", make sure the name is not already in use.",
+ "admin.access-control.groups.form.notification.created.failure.groupNameInUse": "Неможливо створити групу: \"{{name}}\". Це ім'я вже зайняте .",
+
+ // "admin.access-control.groups.form.notification.edited.failure": "Failed to edit Group \"{{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.failure.groupNameInUse": "Ім'я \"{{name}}\" вже використовується!",
+
+ // "admin.access-control.groups.form.notification.edited.success": "Група \"{{name}}\" успішно відредагована",
+
+ "admin.access-control.groups.form.notification.edited.success": "Група \"{{name}}\" успішно відредагована",
+
+ // "admin.access-control.groups.form.actions.delete": "Delete Group",
+
+ "admin.access-control.groups.form.actions.delete": "Видалити групу",
+
+ // "admin.access-control.groups.form.delete-group.modal.header": "Delete Group \"{{ dsoName }}\"",
+
+ "admin.access-control.groups.form.delete-group.modal.header": "Видалити групу \"{{ dsoName }}\"",
+
+ // "admin.access-control.groups.form.delete-group.modal.info": "Are you sure you want to delete Group \"{{ dsoName }}\"",
+
+ "admin.access-control.groups.form.delete-group.modal.info": "Ви впевнені, що хочете видалити групу \"{{ dsoName }}\"?",
+
+ // "admin.access-control.groups.form.delete-group.modal.cancel": "Cancel",
+
+ "admin.access-control.groups.form.delete-group.modal.cancel": "Відмінити",
+
+ // "admin.access-control.groups.form.delete-group.modal.confirm": "Delete",
+
+ "admin.access-control.groups.form.delete-group.modal.confirm": "Видалити",
+
+ // "admin.access-control.groups.form.notification.deleted.success": "Successfully deleted group \"{{ name }}\"",
+
+ "admin.access-control.groups.form.notification.deleted.success": "Група \"{{ name }}\" успішно видалена",
+
+ // "admin.access-control.groups.form.notification.deleted.failure.title": "Failed to delete group \"{{ name }}\"",
+
+ "admin.access-control.groups.form.notification.deleted.failure.title": "Неможливо видалити групу \"{{ name }}\"",
+
+ // "admin.access-control.groups.form.notification.deleted.failure.content": "Cause: \"{{ cause }}\"",
+
+ "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.head": "Користувачі",
+
+ // "admin.access-control.groups.form.members-list.search.head": "Add EPeople",
+ "admin.access-control.groups.form.members-list.search.head": "Додати користувача",
+
+ // "admin.access-control.groups.form.members-list.button.see-all": "Browse All",
+ "admin.access-control.groups.form.members-list.button.see-all": "Переглянути всіх",
+
+ // "admin.access-control.groups.form.members-list.headMembers": "Current Members",
+ "admin.access-control.groups.form.members-list.headMembers": "Поточні учасники групи",
+
+ // "admin.access-control.groups.form.members-list.search.scope.metadata": "Metadata",
+ "admin.access-control.groups.form.members-list.search.scope.metadata": "Метадані",
+
+ // "admin.access-control.groups.form.members-list.search.scope.email": "E-mail (exact)",
+ "admin.access-control.groups.form.members-list.search.scope.email": "E-mail",
+
+ // "admin.access-control.groups.form.members-list.search.button": "Search",
+ "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.id": "ID",
+
+ // "admin.access-control.groups.form.members-list.table.name": "Name",
+ "admin.access-control.groups.form.members-list.table.name": "Ім'я",
+
+ // "admin.access-control.groups.form.members-list.table.edit": "Remove / Add",
+ "admin.access-control.groups.form.members-list.table.edit": "Видалити / Додати",
+
+ // "admin.access-control.groups.form.members-list.table.edit.buttons.remove": "Remove member with name \"{{name}}\"",
+ "admin.access-control.groups.form.members-list.table.edit.buttons.remove": "Видалити учасника групи з ім'ям \"{{name}}\"",
+
+ // "admin.access-control.groups.form.members-list.notification.success.addMember": "Successfully added member: \"{{name}}\"",
+ "admin.access-control.groups.form.members-list.notification.success.addMember": "Учасника \"{{name}}\" успішно додано",
+
+ // "admin.access-control.groups.form.members-list.notification.failure.addMember": "Failed to add member: \"{{name}}\"",
+ "admin.access-control.groups.form.members-list.notification.failure.addMember": "Неможливо додати \"{{name}}\"",
+
+ // "admin.access-control.groups.form.members-list.notification.success.deleteMember": "Successfully deleted member: \"{{name}}\"",
+ "admin.access-control.groups.form.members-list.notification.success.deleteMember": "Учасника \"{{name}}\" успішно видалено",
+
+ // "admin.access-control.groups.form.members-list.notification.failure.deleteMember": "Failed to delete member: \"{{name}}\"",
+ "admin.access-control.groups.form.members-list.notification.failure.deleteMember": "Неможливо видалити учасника \"{{name}}\"",
+
+ // "admin.access-control.groups.form.members-list.table.edit.buttons.add": "Add member with name \"{{name}}\"",
+ "admin.access-control.groups.form.members-list.table.edit.buttons.add": "Додати учасника з ім'ям \"{{name}}\"",
+
+ // "admin.access-control.groups.form.members-list.notification.failure.noActiveGroup": "No current active group, submit a name first.",
+ "admin.access-control.groups.form.members-list.notification.failure.noActiveGroup": "Відсутня активна/поточна група. Виберіть спочатку її ім'я",
+
+ // "admin.access-control.groups.form.members-list.no-members-yet": "No members in group yet, search and add.",
+ "admin.access-control.groups.form.members-list.no-members-yet": "У групі відсутні учасники. Проведіть пошук та додайте",
+
+ // "admin.access-control.groups.form.members-list.no-items": "No EPeople found in that search",
+ "admin.access-control.groups.form.members-list.no-items": "Не знайдено жодного учасника групи",
+
+ // "admin.access-control.groups.form.subgroups-list.notification.failure": "Something went wrong: \"{{cause}}\"",
+
+ "admin.access-control.groups.form.subgroups-list.notification.failure": "Щось пішло не так: \"{{cause}}\"",
+
+ // "admin.access-control.groups.form.subgroups-list.head": "Groups",
+ "admin.access-control.groups.form.subgroups-list.head": "Групи",
+
+ // "admin.access-control.groups.form.subgroups-list.search.head": "Add Subgroup",
+ "admin.access-control.groups.form.subgroups-list.search.head": "Додати групу",
+
+ // "admin.access-control.groups.form.subgroups-list.button.see-all": "Browse All",
+ "admin.access-control.groups.form.subgroups-list.button.see-all": "Переглянути всі",
+
+ // "admin.access-control.groups.form.subgroups-list.headSubgroups": "Current Subgroups",
+ "admin.access-control.groups.form.subgroups-list.headSubgroups": "Поточні підгрупи",
+
+ // "admin.access-control.groups.form.subgroups-list.search.button": "Search",
+ "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.id": "ID",
+
+ // "admin.access-control.groups.form.subgroups-list.table.name": "Name",
+ "admin.access-control.groups.form.subgroups-list.table.name": "Ім'я",
+
+ // "admin.access-control.groups.form.subgroups-list.table.edit": "Remove / Add",
+ "admin.access-control.groups.form.subgroups-list.table.edit": "Видалити / Додати",
+
+ // "admin.access-control.groups.form.subgroups-list.table.edit.buttons.remove": "Remove subgroup with name \"{{name}}\"",
+ "admin.access-control.groups.form.subgroups-list.table.edit.buttons.remove": "Видалити підгрупу \"{{name}}\"",
+
+ // "admin.access-control.groups.form.subgroups-list.table.edit.buttons.add": "Add subgroup with name \"{{name}}\"",
+ "admin.access-control.groups.form.subgroups-list.table.edit.buttons.add": "Додати підгрупу \"{{name}}\"",
+
+ // "admin.access-control.groups.form.subgroups-list.table.edit.currentGroup": "Current group",
+ "admin.access-control.groups.form.subgroups-list.table.edit.currentGroup": "Поточна група",
+
+ // "admin.access-control.groups.form.subgroups-list.notification.success.addSubgroup": "Successfully added subgroup: \"{{name}}\"",
+ "admin.access-control.groups.form.subgroups-list.notification.success.addSubgroup": "Підгрупа \"{{name}}\" успішно додана",
+
+ // "admin.access-control.groups.form.subgroups-list.notification.failure.addSubgroup": "Failed to add subgroup: \"{{name}}\"",
+ "admin.access-control.groups.form.subgroups-list.notification.failure.addSubgroup": "Неможливо додати підгрупу \"{{name}}\"",
+
+ // "admin.access-control.groups.form.subgroups-list.notification.success.deleteSubgroup": "Successfully deleted subgroup: \"{{name}}\"",
+ "admin.access-control.groups.form.subgroups-list.notification.success.deleteSubgroup": "Підгрупа \"{{name}}\" успішно видалена",
+
+ // "admin.access-control.groups.form.subgroups-list.notification.failure.deleteSubgroup": "Failed to delete subgroup: \"{{name}}\"",
+ "admin.access-control.groups.form.subgroups-list.notification.failure.deleteSubgroup": "Неможливо видалити підгрупу \"{{name}}\"",
+
+ // "admin.access-control.groups.form.subgroups-list.notification.failure.noActiveGroup": "No current active group, submit a name first.",
+ "admin.access-control.groups.form.subgroups-list.notification.failure.noActiveGroup": "Відсутня активна група. Спочатку вкажіть ім'я",
+
+ // "admin.access-control.groups.form.subgroups-list.notification.failure.subgroupToAddIsActiveGroup": "This is the current group, can't be added.",
+ "admin.access-control.groups.form.subgroups-list.notification.failure.subgroupToAddIsActiveGroup": "Це поточна група. Вона не може бути додана",
+
+ // "admin.access-control.groups.form.subgroups-list.no-items": "No groups found with this in their name or this as UUID",
+ "admin.access-control.groups.form.subgroups-list.no-items": "Група не знайдена за критерієм імені чи UUID",
+
+ // "admin.access-control.groups.form.subgroups-list.no-subgroups-yet": "No subgroups in group yet.",
+ "admin.access-control.groups.form.subgroups-list.no-subgroups-yet": "Жодної підгрупи у групі немає.",
+
+ // "admin.access-control.groups.form.return": "Return to groups",
+ "admin.access-control.groups.form.return": "Повернутись до груп",
+
+
+
+ // "admin.search.breadcrumbs": "Administrative Search",
+ "admin.search.breadcrumbs": "Пошук адміністратора",
+
+ // "admin.search.collection.edit": "Edit",
+ "admin.search.collection.edit": "Редагувати",
+
+ // "admin.search.community.edit": "Edit",
+ "admin.search.community.edit": "Редагувати",
+
+ // "admin.search.item.delete": "Delete",
+ "admin.search.item.delete": "Видалити",
+
+ // "admin.search.item.edit": "Edit",
+ "admin.search.item.edit": "Редагувати",
+
+ // "admin.search.item.make-private": "Make Private",
+ "admin.search.item.make-private": "Зробити приватним",
+
+ // "admin.search.item.make-public": "Make Public",
+ "admin.search.item.make-public": "Зробити публічним",
+
+ // "admin.search.item.move": "Move",
+ "admin.search.item.move": "Перемістити",
+
+ // "admin.search.item.reinstate": "Reinstate",
+ "admin.search.item.reinstate": "Відновити",
+
+ // "admin.search.item.withdraw": "Withdraw",
+ "admin.search.item.withdraw": "Вилучити",
+
+ // "admin.search.title": "Administrative Search",
+ "admin.search.title": "Пошук адміністратора",
+
+ // "administrativeView.search.results.head": "Administrative Search",
+ "administrativeView.search.results.head": "Пошук адміністратора",
+
+
+
+
+ // "admin.workflow.breadcrumbs": "Administer Workflow",
+ "admin.workflow.breadcrumbs": "Адміністрування робочого процесу",
+
+ // "admin.workflow.title": "Administer Workflow",
+ "admin.workflow.title": "Адміністрування робочого процесу",
+
+ // "admin.workflow.item.workflow": "Workflow",
+ "admin.workflow.item.workflow": "Робочий процес",
+
+ // "admin.workflow.item.delete": "Delete",
+ "admin.workflow.item.delete": "Видалити",
+
+ // "admin.workflow.item.send-back": "Send back",
+ "admin.workflow.item.send-back": "Повернути назад",
+
+
+
+ // "admin.metadata-import.breadcrumbs": "Import Metadata",
+
+ "admin.metadata-import.breadcrumbs": "Імпортувати метадані",
+
+ // "admin.metadata-import.title": "Import Metadata",
+
+ "admin.metadata-import.title": "Імпортувати метадані",
+
+ // "admin.metadata-import.page.header": "Import Metadata",
+
+ "admin.metadata-import.page.header": "Імпортувати метадані",
+
+ // "admin.metadata-import.page.help": "You can drop or browse CSV files that contain batch metadata operations on files here",
+ // TODO New key - Add a translation
+ "admin.metadata-import.page.help": "Тут можна скинути або переглянути файли CSV, які містять пакетні операції з метаданими",
+
+ // "admin.metadata-import.page.dropMsg": "Drop a metadata CSV to import",
+
+ "admin.metadata-import.page.dropMsg": "Скинути метадані CSV для імпорту",
+
+ // "admin.metadata-import.page.dropMsgReplace": "Drop to replace the metadata CSV to import",
+
+ "admin.metadata-import.page.dropMsgReplace": "Скинути для заміни метаданих CSV для імпорту",
+
+ // "admin.metadata-import.page.button.return": "Return",
+
+ "admin.metadata-import.page.button.return": "Повернутись",
+
+ // "admin.metadata-import.page.button.proceed": "Proceed",
+
+ "admin.metadata-import.page.button.proceed": "Продовжити",
+
+ // "admin.metadata-import.page.error.addFile": "Select file first!",
+
+ "admin.metadata-import.page.error.addFile": "Спочатку виберіть файл",
+
+
+
+
+ // "auth.errors.invalid-user": "Invalid email address or password.",
+ "auth.errors.invalid-user": "Неправильний емейл чи пароль.",
+
+ // "auth.messages.expired": "Your session has expired. Please log in again.",
+ "auth.messages.expired": "Час сесії вичерпано. Увійдіть знову.",
+
+
+
+ // "bitstream.edit.bitstream": "Bitstream: ",
+ "bitstream.edit.bitstream": "Файл: ",
+
+ // "bitstream.edit.form.description.hint": "Optionally, provide a brief description of the file, for example \"
Main article \" or \"
Experiment data readings \".",
+ "bitstream.edit.form.description.hint": "За бажанням надайте, наприклад, короткий опис файлу, \"
Galvanais raksts \" або \"
експериментальні читання даних \".",
+
+ // "bitstream.edit.form.description.label": "Description",
+ "bitstream.edit.form.description.label": "Опис",
+
+ // "bitstream.edit.form.embargo.hint": "The first day from which access is allowed.
This date cannot be modified on this form. To set an embargo date for a bitstream, go to the
Item Status tab, click
Authorizations... , create or edit the bitstream's
READ policy, and set the
Start Date as desired.",
+ "bitstream.edit.form.embargo.hint": "Перший день, з якого доступ дозволено.
Ця дата може бути змінена у цій формі. Для ембарго на цей файл перейдіть у вкладку
Статус документа(item) , та клацніть
Авторизація... , створіть чи відредагуйте політику доступу
Читання (READ) та задайте
Дата старту .",
+
+ // "bitstream.edit.form.embargo.label": "Embargo until specific date",
+ "bitstream.edit.form.embargo.label": "Ембарго до дати",
+
+ // "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": "Змініть назву файла. Зверніть увагу, що це вплине на посилання. Проте мали б прцювати і старе посилання доки не зміниться ID документу.",
+
+ // "bitstream.edit.form.fileName.label": "Filename",
+ "bitstream.edit.form.fileName.label": "Ім'я файлу",
+
+ // "bitstream.edit.form.newFormat.label": "Describe new format",
+ "bitstream.edit.form.newFormat.label": "Опишіть новий формат",
+
+ // "bitstream.edit.form.newFormat.hint": "The application you used to create the file, and the version number (for example, \"
ACMESoft SuperApp version 1.5 \").",
+ "bitstream.edit.form.newFormat.hint": "Програмне забезпечення та його версія, яке Ви використали при створенні файлу (наприклад, \"
ACMESoft SuperApp versija 1.5 \").",
+
+ // "bitstream.edit.form.primaryBitstream.label": "Primary bitstream",
+ "bitstream.edit.form.primaryBitstream.label": "Головний файл",
+
+ // "bitstream.edit.form.selectedFormat.hint": "If the format is not in the above list,
select \"format not in list\" above and describe it under \"Describe new format\".",
+ "bitstream.edit.form.selectedFormat.hint": "Якщо формату немає у переліку, будь ласка опишіть його.",
+
+ // "bitstream.edit.form.selectedFormat.label": "Selected Format",
+ "bitstream.edit.form.selectedFormat.label": "Вибрані формати",
+
+ // "bitstream.edit.form.selectedFormat.unknown": "Format not in list",
+ "bitstream.edit.form.selectedFormat.unknown": "Формату немає у переліку",
+
+ // "bitstream.edit.notifications.error.format.title": "An error occurred saving the bitstream's format",
+ "bitstream.edit.notifications.error.format.title": "Сталась помилка при збереженні формату файла.",
+
+ // "bitstream.edit.notifications.saved.content": "Your changes to this bitstream were saved.",
+ "bitstream.edit.notifications.saved.content": "Зміни до цього файлу були збережені.",
+
+ // "bitstream.edit.notifications.saved.title": "Bitstream saved",
+ "bitstream.edit.notifications.saved.title": "Файл збережено",
+
+ // "bitstream.edit.title": "Edit bitstream",
+ "bitstream.edit.title": "Редагувати файл",
+
+
+
+ // "browse.comcol.by.author": "By Author",
+ "browse.comcol.by.author": "За автором",
+
+ // "browse.comcol.by.dateissued": "За датою",
+ "browse.comcol.by.dateissued": "За датою",
+
+ // "browse.comcol.by.subject": "By Subject",
+ "browse.comcol.by.subject": "За темою",
+
+ // "browse.comcol.by.title": "By Title",
+ "browse.comcol.by.title": "За назвою",
+
+ // "browse.comcol.head": "Browse",
+ "browse.comcol.head": "Переглянути",
+
+ // "browse.empty": "No items to show.",
+ "browse.empty": "Немає документів.",
+
+ // "browse.metadata.author": "Author",
+ "browse.metadata.author": "Автор",
+
+ // "browse.metadata.dateissued": "Issue Date",
+ "browse.metadata.dateissued": "Дата публікації",
+
+ // "browse.metadata.subject": "Subject",
+ "browse.metadata.subject": "Ключові слова",
+
+ // "browse.metadata.title": "Title",
+ "browse.metadata.title": "Назва",
+
+ // "browse.metadata.author.breadcrumbs": "Browse by Author",
+ "browse.metadata.author.breadcrumbs": "Переглянути за автором",
+
+ // "browse.metadata.dateissued.breadcrumbs": "Browse by Date",
+ "browse.metadata.dateissued.breadcrumbs": "Переглянути за датою",
+
+ // "browse.metadata.subject.breadcrumbs": "Browse by Subject",
+ "browse.metadata.subject.breadcrumbs": "Переглянути за ключовими словами",
+
+ // "browse.metadata.title.breadcrumbs": "Browse by Title",
+ "browse.metadata.title.breadcrumbs": "Переглянути за назвою",
+
+ // "browse.startsWith.choose_start": "(Choose start)",
+ "browse.startsWith.choose_start": "(виберіть початок)",
+
+ // "browse.startsWith.choose_year": "(Choose year)",
+ "browse.startsWith.choose_year": "(виберіть рік)",
+
+ // "browse.startsWith.jump": "Jump to a point in the index:",
+ "browse.startsWith.jump": "Перейти на індекс:",
+
+ // "browse.startsWith.months.april": "April",
+ "browse.startsWith.months.april": "Квітень",
+
+ // "browse.startsWith.months.august": "August",
+ "browse.startsWith.months.august": "Серпень",
+
+ // "browse.startsWith.months.december": "December",
+ "browse.startsWith.months.december": "Грудень",
+
+ // "browse.startsWith.months.february": "February",
+ "browse.startsWith.months.february": "Лютий",
+
+ // "browse.startsWith.months.january": "January",
+ "browse.startsWith.months.january": "Січень",
+
+ // "browse.startsWith.months.july": "July",
+ "browse.startsWith.months.july": "Липень",
+
+ // "browse.startsWith.months.june": "June",
+ "browse.startsWith.months.june": "Червень",
+
+ // "browse.startsWith.months.march": "March",
+ "browse.startsWith.months.march": "Березень",
+
+ // "browse.startsWith.months.may": "May",
+ "browse.startsWith.months.may": "Травень",
+
+ // "browse.startsWith.months.none": "(Choose month)",
+ "browse.startsWith.months.none": "(Виберіть місяць)",
+
+ // "browse.startsWith.months.november": "November",
+ "browse.startsWith.months.november": "Листопад",
+
+ // "browse.startsWith.months.october": "October",
+ "browse.startsWith.months.october": "Жовтень",
+
+ // "browse.startsWith.months.september": "September",
+ "browse.startsWith.months.september": "Вересень",
+
+ // "browse.startsWith.submit": "Go",
+ "browse.startsWith.submit": "Перейти",
+
+ // "browse.startsWith.type_date": "Or type in a date (year-month):",
+ "browse.startsWith.type_date": "Або введіть дату (рік-місяць):",
+
+ // "browse.startsWith.type_text": "Or enter first few letters:",
+ "browse.startsWith.type_text": "Або введіть перші символи:",
+
+ // "browse.title": "Browsing {{ collection }} by {{ field }} {{ value }}",
+ "browse.title": "Перегляд {{ collection }} за {{ field }} {{ value }}",
+
+
+ // "chips.remove": "Remove chip",
+ // TODO "chips.remove": "Remove chip",
+ "chips.remove": "Remove chip",
+
+
+
+ // "collection.create.head": "Create a Collection",
+ "collection.create.head": "Створити зібрання",
+
+ // "collection.create.notifications.success": "Successfully created the Collection",
+ "collection.create.notifications.success": "Зібрання успішно створено",
+
+ // "collection.create.sub-head": "Create a Collection for Community {{ parent }}",
+ "collection.create.sub-head": "Створити зібрання у колекції {{ parent }}",
+
+ // "collection.curate.header": "Curate Collection: {{collection}}",
+ // TODO New key - Add a translation
+ "collection.curate.header": "Curate Collection: {{collection}}",
+
+ // "collection.delete.cancel": "Cancel",
+ "collection.delete.cancel": "Відмінити",
+
+ // "collection.delete.confirm": "Confirm",
+ "collection.delete.confirm": "Підтвердити",
+
+ // "collection.delete.head": "Delete Collection",
+ "collection.delete.head": "Видалити зібрання",
+
+ // "collection.delete.notification.fail": "Collection could not be deleted",
+ "collection.delete.notification.fail": "Зібрання не може бути видалене",
+
+ // "collection.delete.notification.success": "Successfully deleted collection",
+ "collection.delete.notification.success": "Зібрання успішно видалено",
+
+ // "collection.delete.text": "Are you sure you want to delete collection \"{{ dso }}\"",
+ "collection.delete.text": "Ви впевнені, що хочете видалити зібрання \"{{ dso }}\"?",
+
+
+
+ // "collection.edit.delete": "Delete this collection",
+ "collection.edit.delete": "Видалити це зібрання",
+
+ // "collection.edit.head": "Edit Collection",
+ "collection.edit.head": "Редагувати зібрання",
+
+ // "collection.edit.breadcrumbs": "Edit Collection",
+ "collection.edit.breadcrumbs": "Редагувати зібрання",
+
+
+
+ // "collection.edit.tabs.mapper.head": "Item Mapper",
+
+ "collection.edit.tabs.mapper.head": "Карта документа",
+
+ // "collection.edit.tabs.item-mapper.title": "Collection Edit - Item Mapper",
+
+ "collection.edit.tabs.item-mapper.title": "Редагування зібрання - Карта документа",
+
+ // "collection.edit.item-mapper.cancel": "Cancel",
+ "collection.edit.item-mapper.cancel": "Відмінити",
+
+ // "collection.edit.item-mapper.collection": "Collection: \"
{{name}} \"",
+ "collection.edit.item-mapper.collection": "Зібрання: \"
{{name}} \"",
+
+ // "collection.edit.item-mapper.confirm": "Map selected items",
+ "collection.edit.item-mapper.confirm": "Карта вибраних документів",
+
+ // "collection.edit.item-mapper.description": "This is the item mapper tool that allows collection administrators to map items from other collections into this collection. You can search for items from other collections and map them, or browse the list of currently mapped items.",
+ "collection.edit.item-mapper.description": "Це інструмент відображення елементів документа, який дозволяє адміністраторам колекції відображати елементи з інших колекцій у цю колекцію. Ви можете шукати елементи з інших колекцій і відображати їх, або переглядати список відображених елементів.",
+
+ // "collection.edit.item-mapper.head": " - Map Items from Other Collections",
+ "collection.edit.item-mapper.head": "Карта документа - карта документів з іншого зібрання",
+
+ // "collection.edit.item-mapper.no-search": "Please enter a query to search",
+ "collection.edit.item-mapper.no-search": "Введіть запит для пошуку",
+
+ // "collection.edit.item-mapper.notifications.map.error.content": "Errors occurred for mapping of {{amount}} items.",
+ "collection.edit.item-mapper.notifications.map.error.content": "Виникла помилка {{amount}} при відображені елементів документа.",
+
+ // "collection.edit.item-mapper.notifications.map.error.head": "Mapping errors",
+ "collection.edit.item-mapper.notifications.map.error.head": "Помилка відображення елементів документа",
+
+ // "collection.edit.item-mapper.notifications.map.success.content": "Successfully mapped {{amount}} items.",
+ "collection.edit.item-mapper.notifications.map.success.content": "Документ {{amount}} успішно mapped.",
+
+ // "collection.edit.item-mapper.notifications.map.success.head": "Mapping completed",
+ // TODO "collection.edit.item-mapper.notifications.map.success.head": "Mapping completed"
+ "collection.edit.item-mapper.notifications.map.success.head": "Mapping completed",
+
+ // "collection.edit.item-mapper.notifications.unmap.error.content": "Errors occurred for removing the mappings of {{amount}} items.",
+ "collection.edit.item-mapper.notifications.unmap.error.content": "Виникла помилка mappings документа {{amount}}.",
+
+ // "collection.edit.item-mapper.notifications.unmap.error.head": "Remove mapping errors",
+ "collection.edit.item-mapper.notifications.unmap.error.head": "Видалити помилки mapping",
+
+ // "collection.edit.item-mapper.notifications.unmap.success.content": "Successfully removed the mappings of {{amount}} items.",
+ "collection.edit.item-mapper.notifications.unmap.success.content": "Успішно видалено mappings документа {{amount}}.",
+
+ // "collection.edit.item-mapper.notifications.unmap.success.head": "Remove mapping completed",
+ // TODO "collection.edit.item-mapper.notifications.unmap.success.head": "Remove mapping completed",
+ "collection.edit.item-mapper.notifications.unmap.success.head": "Remove mapping completed",
+
+ // "collection.edit.item-mapper.remove": "Remove selected item mappings",
+ "collection.edit.item-mapper.remove": "Видалити mapping документа",
+
+ // "collection.edit.item-mapper.tabs.browse": "Browse mapped items",
+ "collection.edit.item-mapper.tabs.browse": "Переглянути елементи документа",
+
+ // "collection.edit.item-mapper.tabs.map": "Map new items",
+ "collection.edit.item-mapper.tabs.map": "mapping нових документів",
+
+
+
+ // "collection.edit.logo.label": "Collection logo",
+ "collection.edit.logo.label": "Логотип зібрання",
+
+ // "collection.edit.logo.notifications.add.error": "Uploading Collection logo failed. Please verify the content before retrying.",
+ "collection.edit.logo.notifications.add.error": "Завантаження логотипу зібрання не вдалось.",
+
+ // "collection.edit.logo.notifications.add.success": "Upload Collection logo successful.",
+ "collection.edit.logo.notifications.add.success": "Логотип зібрання успішно завантажено.",
+
+ // "collection.edit.logo.notifications.delete.success.title": "Logo deleted",
+ "collection.edit.logo.notifications.delete.success.title": "Логотип видалено",
+
+ // "collection.edit.logo.notifications.delete.success.content": "Successfully deleted the collection's logo",
+ "collection.edit.logo.notifications.delete.success.content": "Логотип зібрання успішно видалено.",
+
+ // "collection.edit.logo.notifications.delete.error.title": "Error deleting logo",
+ "collection.edit.logo.notifications.delete.error.title": "Виникла помилка при видаленні логотипа",
+
+ // "collection.edit.logo.upload": "Drop a Collection Logo to upload",
+ "collection.edit.logo.upload": "Виберіть логотип зібрання для завантаження",
+
+
+
+ // "collection.edit.notifications.success": "Successfully edited the Collection",
+ "collection.edit.notifications.success": "Зібрання успішно відредаговано",
+
+ // "collection.edit.return": "Return",
+ "collection.edit.return": "Повернутись",
+
+
+
+ // "collection.edit.tabs.curate.head": "Curate",
+ // TODO "collection.edit.tabs.curate.head": "Curate",
+ "collection.edit.tabs.curate.head": "Curate",
+
+ // "collection.edit.tabs.curate.title": "Collection Edit - Curate",
+ // TODO "collection.edit.tabs.curate.title": "Collection Edit - Curate",
+ "collection.edit.tabs.curate.title": "Collection Edit - Curate",
+
+ // "collection.edit.tabs.authorizations.head": "Authorizations",
+
+ "collection.edit.tabs.authorizations.head": "Авторизація",
+
+ // "collection.edit.tabs.authorizations.title": "Collection Edit - Authorizations",
+
+ "collection.edit.tabs.authorizations.title": "Редагування зібрання - авторизація ",
+
+ // "collection.edit.tabs.metadata.head": "Edit Metadata",
+ "collection.edit.tabs.metadata.head": "Редагувати метадані",
+
+ // "collection.edit.tabs.metadata.title": "Collection Edit - Metadata",
+ "collection.edit.tabs.metadata.title": "Редагування зібрання - метадані",
+
+ // "collection.edit.tabs.roles.head": "Assign Roles",
+ "collection.edit.tabs.roles.head": "Призначити ролі",
+
+ // "collection.edit.tabs.roles.title": "Collection Edit - Roles",
+ "collection.edit.tabs.roles.title": "Редагування зібрання - ролі",
+
+ // "collection.edit.tabs.source.external": "This collection harvests its content from an external source",
+ "collection.edit.tabs.source.external": "Вміст зібрання взято із зовнішнього джерела інформації",
+
+ // "collection.edit.tabs.source.form.errors.oaiSource.required": "You must provide a set id of the target collection.",
+ "collection.edit.tabs.source.form.errors.oaiSource.required": "Ви повинні надати ідентифікатор цільового зібрання",
+
+ // "collection.edit.tabs.source.form.harvestType": "Content being harvested",
+ "collection.edit.tabs.source.form.harvestType": "Вміст отримано",
+
+ // "collection.edit.tabs.source.form.head": "Configure an external source",
+ "collection.edit.tabs.source.form.head": "Налаштувати зовнішні джерела інформації",
+
+ // "collection.edit.tabs.source.form.metadataConfigId": "Metadata Format",
+ "collection.edit.tabs.source.form.metadataConfigId": "Формат метаданих",
+
+ // "collection.edit.tabs.source.form.oaiSetId": "OAI specific set id",
+ // TODO "collection.edit.tabs.source.form.oaiSetId": "OAI specific set id"
+ "collection.edit.tabs.source.form.oaiSetId": "OAI specific set id",
+
+ // "collection.edit.tabs.source.form.oaiSource": "OAI Provider",
+ "collection.edit.tabs.source.form.oaiSource": "OAI Провайдер",
+
+ // "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_BITSTREAMS": "Harvest metadata and bitstreams (requires ORE support)",
+ "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_BITSTREAMS": "Завантажити метадані та файли (потрібна ORE підтримка)",
+
+ // "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_REF": "Harvest metadata and references to bitstreams (requires ORE support)",
+ "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_REF": "Завантажити метадані та посилання на файли (потрібна ORE підтримка)",
+
+ // "collection.edit.tabs.source.form.options.harvestType.METADATA_ONLY": "Harvest metadata only",
+ "collection.edit.tabs.source.form.options.harvestType.METADATA_ONLY": "Завантажити тільки метадані",
+
+ // "collection.edit.tabs.source.head": "Content Source",
+ "collection.edit.tabs.source.head": "Джерело вмісту",
+
+ // "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": "Ваші зміни скасовано. Щоб відновити зміни, натисніть кнопку -Скасувати-",
+
+ // "collection.edit.tabs.source.notifications.discarded.title": "Changed discarded",
+ "collection.edit.tabs.source.notifications.discarded.title": "Ваші зміни скасовано",
+
+ // "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": "Ваші зміни не збережено. Перед збереженням переконайтеся, що всі поля правильно заповнені.",
+
+ // "collection.edit.tabs.source.notifications.invalid.title": "Metadata invalid",
+ "collection.edit.tabs.source.notifications.invalid.title": "Помилки у метаданих",
+
+ // "collection.edit.tabs.source.notifications.saved.content": "Your changes to this collection's content source were saved.",
+ "collection.edit.tabs.source.notifications.saved.content": "Ваші зміни до вмісту зібрання збережено.",
+
+ // "collection.edit.tabs.source.notifications.saved.title": "Content Source saved",
+ "collection.edit.tabs.source.notifications.saved.title": "Вміст джерела даних збереено",
+
+ // "collection.edit.tabs.source.title": " - Content Source",
+ "collection.edit.tabs.source.title": "Редагування зібрання - джерела даних",
+
+
+
+ // "collection.edit.template.add-button": "Add",
+
+ "collection.edit.template.add-button": "Додати",
+
+ // "collection.edit.template.breadcrumbs": "Item template",
+
+ "collection.edit.template.breadcrumbs": "Шаблон документа",
+
+ // "collection.edit.template.cancel": "Cancel",
+
+ "collection.edit.template.cancel": "Відмінити",
+
+ // "collection.edit.template.delete-button": "Delete",
+
+ "collection.edit.template.delete-button": "Видалити",
+
+ // "collection.edit.template.edit-button": "Edit",
+
+ "collection.edit.template.edit-button": "Редагувати",
+
+ // "collection.edit.template.head": "Edit Template Item for Collection \"{{ collection }}\"",
+
+ "collection.edit.template.head": "Редагувати шаблон документа зібрання \"{{ collection }}\"",
+
+ // "collection.edit.template.label": "Template item",
+
+ "collection.edit.template.label": "Шаблон документа",
+
+ // "collection.edit.template.notifications.delete.error": "Failed to delete the item template",
+
+ "collection.edit.template.notifications.delete.error": "Не вдалося видалити шаблон елемента",
+
+ // "collection.edit.template.notifications.delete.success": "Шаблон документа успішно видалено",
+
+ "collection.edit.template.notifications.delete.success": "Шаблон документа успішно видалено",
+
+ // "collection.edit.template.title": "Edit Template Item",
+
+ "collection.edit.template.title": "Редагувати шаблон документа",
+
+
+
+ // "collection.form.abstract": "Short Description",
+ "collection.form.abstract": "Короткий опис",
+
+ // "collection.form.description": "Introductory text (HTML)",
+ "collection.form.description": "Вступний текст (HTML)",
+
+ // "collection.form.errors.title.required": "Please enter a collection name",
+ "collection.form.errors.title.required": "Введіть назву зібрання",
+
+ // "collection.form.license": "License",
+ "collection.form.license": "Ліцензійна угода",
+
+ // "collection.form.provenance": "Provenance",
+ "collection.form.provenance": "Походження",
+
+ // "collection.form.rights": "Copyright text (HTML)",
+ "collection.form.rights": "Копірайт (HTML)",
+
+ // "collection.form.tableofcontents": "News (HTML)",
+ "collection.form.tableofcontents": "Новини (HTML)",
+
+ // "collection.form.title": "Name",
+ "collection.form.title": "Ім'я",
+
+
+
+ // "collection.listelement.badge": "Collection",
+
+ "collection.listelement.badge": "Зібрання",
+
+
+//"home.recent-submissions.head": "Recent Submissions",
+"home.recent-submissions.head": "Нові надходження",
+
+
+//"thumbnail.default.alt": "Thumbnail Image",
+"thumbnail.default.alt": "Ескіз",
+
+// "thumbnail.default.placeholder": "No Thumbnail Available",
+"thumbnail.default.placeholder": "Ескіз недоступний",
+
+// "thumbnail.project.alt": "Project Logo",
+ "thumbnail.project.alt": "Логотип проекту",
+
+// TODO "thumbnail.project.placeholder": "Project Placeholder Image",
+ "thumbnail.project.placeholder": "Project Placeholder Image",
+
+// "thumbnail.orgunit.alt": "OrgUnit Logo",
+"thumbnail.orgunit.alt": "Логотип організації",
+
+ "thumbnail.orgunit.placeholder": "OrgUnit Placeholder Image",
+
+// "thumbnail.person.alt": "Profile Picture",
+"thumbnail.person.alt": "Зображення профілю",
+
+ // "thumbnail.person.placeholder": "No Profile Picture Available",
+"thumbnail.person.placeholder": "Зображення профілю відсутне",
+
+
+
+ // "collection.page.browse.recent.head": "Recent Submissions",
+ "collection.page.browse.recent.head": "Нові надходження",
+
+ // "collection.page.browse.recent.empty": "No items to show",
+ "collection.page.browse.recent.empty": "Немає документів",
+
+ // "collection.page.edit": "Edit this collection",
+
+ "collection.page.edit": "Редагувати зібрання",
+
+ // "collection.page.handle": "Permanent URI for this collection",
+ "collection.page.handle": "Постійне посилання зібрання",
+
+ // "collection.page.license": "License",
+ "collection.page.license": "Ліцензійна угода",
+
+ // "collection.page.news": "News",
+ "collection.page.news": "Новини",
+
+
+
+ // "collection.select.confirm": "Confirm selected",
+ "collection.select.confirm": "Підтвердити вибрані",
+
+ // "collection.select.empty": "No collections to show",
+ "collection.select.empty": "Зібрання відсутні",
+
+ // "collection.select.table.title": "Title",
+ "collection.select.table.title": "Назва",
+
+
+
+ // "collection.source.update.notifications.error.content": "The provided settings have been tested and didn't work.",
+ "collection.source.update.notifications.error.content": "Введені налаштування перевірені та не працюють.",
+
+ // "collection.source.update.notifications.error.title": "Server Error",
+ "collection.source.update.notifications.error.title": "Помилка роботи сервера, трясця його матері",
+
+
+
+ // "communityList.tabTitle": "DSpace - Community List",
+ "communityList.tabTitle": "Репозитарій - Фонди",
+
+ // "communityList.title": "List of Communities",
+ "communityList.title": "Перелік фондів",
+
+ // "communityList.showMore": "Show More",
+ "communityList.showMore": "Детальніше",
+
+
+
+ // "community.create.head": "Create a Community",
+ "community.create.head": "Створити фонд",
+
+ // "community.create.notifications.success": "Successfully created the Community",
+ "community.create.notifications.success": "Фонд успішно створено",
+
+ // "community.create.sub-head": "Create a Sub-Community for Community {{ parent }}",
+ "community.create.sub-head": "Створити підфонд фонду {{ parent }}",
+
+ // "community.curate.header": "Curate Community: {{community}}",
+
+ "community.curate.header": "Основний фонд: {{community}}",
+
+ // "community.delete.cancel": "Cancel",
+ "community.delete.cancel": "Відмінити",
+
+ // "community.delete.confirm": "Confirm",
+ "community.delete.confirm": "Підтвердити",
+
+ // "community.delete.head": "Delete Community",
+ "community.delete.head": "Видалити фонд",
+
+ // "community.delete.notification.fail": "Community could not be deleted",
+ "community.delete.notification.fail": "Фонд не може бути видалено",
+
+ // "community.delete.notification.success": "Successfully deleted community",
+ "community.delete.notification.success": "Фонд успішно видалено",
+
+ // "community.delete.text": "Are you sure you want to delete community \"{{ dso }}\"",
+ "community.delete.text": "Ви впевнені, що хочете видалити фонд \"{{ dso }}\"",
+
+ // "community.edit.delete": "Delete this community",
+ "community.edit.delete": "Видалити цей фонд",
+
+ // "community.edit.head": "Edit Community",
+ "community.edit.head": "Редагувати фонд",
+
+ // "community.edit.breadcrumbs": "Edit Community",
+ "community.edit.breadcrumbs": "Редагувати фонд",
+
+
+ // "community.edit.logo.label": "Community logo",
+ "community.edit.logo.label": "Логотип фонду",
+
+ // "community.edit.logo.notifications.add.error": "Uploading Community logo failed. Please verify the content before retrying.",
+ "community.edit.logo.notifications.add.error": "Помилка завантаження логотипу фонду. Перевірте все ще раз.",
+
+ // "community.edit.logo.notifications.add.success": "Upload Community logo successful.",
+ "community.edit.logo.notifications.add.success": "Успішне завантаження логотипу фонду",
+
+ // "community.edit.logo.notifications.delete.success.title": "Logo deleted",
+ "community.edit.logo.notifications.delete.success.title": "Логотип видалено",
+
+ // "community.edit.logo.notifications.delete.success.content": "Successfully deleted the community's logo",
+ "community.edit.logo.notifications.delete.success.content": "Логотип фонду успішно видалено",
+
+ // "community.edit.logo.notifications.delete.error.title": "Error deleting logo",
+ "community.edit.logo.notifications.delete.error.title": "Помилка видалення логотипу",
+
+ // "community.edit.logo.upload": "Drop a Community Logo to upload",
+ "community.edit.logo.upload": "Виберіть логотип фонду для завантаження",
+
+
+
+ // "community.edit.notifications.success": "Successfully edited the Community",
+ "community.edit.notifications.success": "Фонд успішно відредаговано",
+
+ // "community.edit.notifications.unauthorized": "You do not have privileges to make this change",
+
+ "community.edit.notifications.unauthorized": "У Вас немає повноважень для змін",
+
+ // "community.edit.notifications.error": "An error occured while editing the Community",
+
+ "community.edit.notifications.error": "Виникла помилка при редагуванні фонду",
+
+ // "community.edit.return": "Return",
+ "community.edit.return": "Повернутись",
+
+
+
+ // "community.edit.tabs.curate.head": "Curate",
+ "community.edit.tabs.curate.head": "Основне/Curate",
+
+ // "community.edit.tabs.curate.title": "Community Edit - Curate",
+ "community.edit.tabs.curate.title": "Редагування фонду - основне",
+
+ // "community.edit.tabs.metadata.head": "Edit Metadata",
+ "community.edit.tabs.metadata.head": "Реадгувати метадані",
+
+ // "community.edit.tabs.metadata.title": "Community Edit - Metadata",
+ "community.edit.tabs.metadata.title": "Редагування фонду - метадані",
+
+ // "community.edit.tabs.roles.head": "Assign Roles",
+ "community.edit.tabs.roles.head": "Призначити ролі",
+
+ // "community.edit.tabs.roles.title": "Community Edit - Roles",
+ "community.edit.tabs.roles.title": "Редаувати фонд - ролі",
+
+ // "community.edit.tabs.authorizations.head": "Authorizations",
+
+ "community.edit.tabs.authorizations.head": "Авторизація",
+
+ // "community.edit.tabs.authorizations.title": "Community Edit - Authorizations",
+
+ "community.edit.tabs.authorizations.title": "Редагування фонду - авторизація",
+
+
+
+ // "community.listelement.badge": "Community",
+
+ "community.listelement.badge": "Фонд",
+
+
+
+ // "comcol-role.edit.no-group": "None",
+
+ "comcol-role.edit.no-group": "Жодної",
+
+ // "comcol-role.edit.create": "Create",
+
+ "comcol-role.edit.create": "Створити",
+
+ // "comcol-role.edit.restrict": "Restrict",
+
+ "comcol-role.edit.restrict": "Обмежити",
+
+ // "comcol-role.edit.delete": "Delete",
+
+ "comcol-role.edit.delete": "Видалити",
+
+
+ // "comcol-role.edit.community-admin.name": "Administrators",
+
+ "comcol-role.edit.community-admin.name": "Адміністратори",
+
+ // "comcol-role.edit.collection-admin.name": "Administrators",
+
+ "comcol-role.edit.collection-admin.name": "Адміністратори",
+
+
+ // "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).",
+ // TODO New key - Add a translation
+ "comcol-role.edit.community-admin.description": "Адміністратори фонду можуть створювати підфонди або зібрання, а також керувати цими. Крім того, вони вирішують, хто може надсилати документи до будь-якого зібрання, редагувати метадані документа (після надсилання) і додавати (відображати) існуючі елементи з інших зібрань(за умови наданих повноважень).",
+
+ // "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": "Адміністратори зібрання вирішують, хто може надсилати документи до зібрання, редагувати метадані документів (після надсилання) і додавати документи з інших зібрань (за умови наданих повноважень).",
+
+
+ // "comcol-role.edit.submitters.name": "Submitters",
+
+ "comcol-role.edit.submitters.name": "Подавачі/Submitters",
+
+ // "comcol-role.edit.submitters.description": "The E-People and Groups that have permission to submit new items to this collection.",
+
+ "comcol-role.edit.submitters.description": "Користувачі та групи у яких є повноваження вносити документи до цього зібрання.",
+
+
+ // "comcol-role.edit.item_read.name": "Default item read access",
+
+ "comcol-role.edit.item_read.name": "Доступ на читання документа",
+
+ // "comcol-role.edit.item_read.description": "E-People and Groups that can read new items submitted to this collection. Changes to this role are not retroactive. Existing items in the system will still be viewable by those who had read access at the time of their addition.",
+
+ "comcol-role.edit.item_read.description": "Користувачі та групи, які можуть читати нові документи, що надіслані до цього зібрання. Зміни цієї ролі не мають зворотної сили. Існуючі документи в системі все ще будуть доступні для перегляду тим, хто мав доступ для читання на момент їх додавання.",
+
+ // "comcol-role.edit.item_read.anonymous-group": "Default read for incoming items is currently set to Anonymous.",
+
+ "comcol-role.edit.item_read.anonymous-group": "Для групи Anonymous встановлено права документа на читання.",
+
+
+ // "comcol-role.edit.bitstream_read.name": "Доступ на читання для файла",
+
+ "comcol-role.edit.bitstream_read.name": "Доступ на читання для файла",
+
+ // "comcol-role.edit.bitstream_read.description": "Community administrators can create sub-communities or collections, and manage or assign management for those sub-communities or collections. In addition, they decide who can submit items to any sub-collections, edit item metadata (after submission), and add (map) existing items from other collections (subject to authorization).",
+
+ "comcol-role.edit.bitstream_read.description": "Адміністратори фонду можуть створювати підфонди або зібрання, а також керувати ними. Крім того, вони вирішують, хто може надсилати документи до будь-якого зібрання, редагувати метадані документа (після надсилання) і додавати документи з інших колекцій (за умови наявності прав доступу)..",
+
+ // "comcol-role.edit.bitstream_read.anonymous-group": "Default read for incoming bitstreams is currently set to Anonymous.",
+
+ "comcol-role.edit.bitstream_read.anonymous-group": "Для групи Anonymous встановлено права файла на читання",
+
+
+ // "comcol-role.edit.editor.name": "Редактори",
+
+ "comcol-role.edit.editor.name": "Редактори",
+
+ // "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": "Редактори мають повноваження редагувати метадані, приймати та відхиляти їх, зокрема, для документів, що заносяться у репозитарій.",
+
+
+ // "comcol-role.edit.finaleditor.name": "Final editors",
+
+ "comcol-role.edit.finaleditor.name": "Остаточні редактори",
+
+ // "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": "Остаточні редактори мають повноваження редагувати метадані, але не мають права відхилити документ.",
+
+
+ // "comcol-role.edit.reviewer.name": "Reviewers",
+
+ "comcol-role.edit.reviewer.name": "Рецензенти",
+
+ // "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": "Рецензенти можуть приймати або відхиляти вхідні документи. Однак вони не можуть редагувати метадані.",
+
+
+
+ // "community.form.abstract": "Short Description",
+ "community.form.abstract": "Короткий опис",
+
+ // "community.form.description": "Introductory text (HTML)",
+ "community.form.description": "Вхідний текст (HTML)",
+
+ // "community.form.errors.title.required": "Please enter a community name",
+ "community.form.errors.title.required": "Будь ласка, введіть назву фонду",
+
+ // "community.form.rights": "Copyright text (HTML)",
+ "community.form.rights": "Копірайт (HTML)",
+
+ // "community.form.tableofcontents": "News (HTML)",
+ "community.form.tableofcontents": "Новини (HTML)",
+
+ // "community.form.title": "Name",
+ "community.form.title": "Ім'я",
+
+ // "community.page.edit": "Edit this community",
+
+ "community.page.edit": "Редагувати фонд",
+
+ // "community.page.handle": "Permanent URI for this community",
+ "community.page.handle": "Постійне посилання на фонд",
+
+ // "community.page.license": "License",
+ "community.page.license": "Ліцензійна угода",
+
+ // "community.page.news": "News",
+ "community.page.news": "Новини",
+
+ // "community.all-lists.head": "Subcommunities and Collections",
+ "community.all-lists.head": "Підфонди та зібрання",
+
+ // "community.sub-collection-list.head": "Collections of this Community",
+ "community.sub-collection-list.head": "Зібрання у цьому фонді",
+
+ // "community.sub-community-list.head": "Communities of this Community",
+ "community.sub-community-list.head": "Фонди, що знаходяться у цьому фонді",
+
+
+ // "cookies.consent.accept-all": "Accept all",
+ "cookies.consent.accept-all": "Прийняти все",
+
+ // "cookies.consent.accept-selected": "Accept selected",
+ "cookies.consent.accept-selected": "Прийняти вибране",
+
+ // "cookies.consent.app.opt-out.description": "This app is loaded by default (but you can opt out)",
+ "cookies.consent.app.opt-out.description": "Цей додаток був завантажений по замовчуванню. Але Ви можете відмовитись від нього",
+
+ // "cookies.consent.app.opt-out.title": "(opt-out)",
+ "cookies.consent.app.opt-out.title": "(відмовитись)",
+
+ // "cookies.consent.app.purpose": "purpose",
+ "cookies.consent.app.purpose": "ціль",
+
+ // "cookies.consent.app.required.description": "This application is always required",
+ "cookies.consent.app.required.description": "Цей додаток завжди потрібний",
+
+ // "cookies.consent.app.required.title": "(always required)",
+ "cookies.consent.app.required.title": "(завжди потрібний)",
+
+ // "cookies.consent.update": "There were changes since your last visit, please update your consent.",
+ "cookies.consent.update": "З часу вашого останнього відвідування відбулися зміни, підтвердьте це.",
+
+ // "cookies.consent.close": "Close",
+ "cookies.consent.close": "Закрити",
+
+ // "cookies.consent.decline": "Decline",
+ "cookies.consent.decline": "Відхилити",
+
+ // "cookies.consent.content-notice.description": "We collect and process your personal information for the following purposes:
Authentication, Preferences, Acknowledgement and Statistics .
To learn more, please read our {privacyPolicy}.",
+ "cookies.consent.content-notice.description": "Ми збираємо та обробляємо вашу особисту інформацію для таких цілей:
автентифікація, налаштування та статистика .
Щоб дізнатися більше, прочитайте нашу політику {privacyPolicy}.",
+
+ // "cookies.consent.content-notice.learnMore": "Customize",
+ "cookies.consent.content-notice.learnMore": "Налаштувати",
+
+ // "cookies.consent.content-modal.description": "Here you can see and customize the information that we collect about you.",
+ "cookies.consent.content-modal.description": "Тут ви можете переглянути та налаштувати збір інформаціїпро Вас.",
+
+ // "cookies.consent.content-modal.privacy-policy.name": "privacy policy",
+ "cookies.consent.content-modal.privacy-policy.name": "політика приватності",
+
+ // "cookies.consent.content-modal.privacy-policy.text": " {privacyPolicy}.",
+ "cookies.consent.content-modal.privacy-policy.text": "Детальніше - {privacyPolicy}.",
+
+ // "cookies.consent.content-modal.title": "Information that we collect",
+ "cookies.consent.content-modal.title": "Інформація, яку ми збираємо",
+
+ // "cookies.consent.app.title.authentication": "Authentication",
+ "cookies.consent.app.title.authentication": "Увійти",
+
+ // "cookies.consent.app.description.authentication": "Required for signing you in",
+ "cookies.consent.app.description.authentication": "Необхідно для входу",
+
+ // "cookies.consent.app.title.preferences": "Preferences",
+ "cookies.consent.app.title.preferences": "Налаштування",
+
+ // "cookies.consent.app.description.preferences": "Required for saving your preferences",
+ "cookies.consent.app.description.preferences": "Необхідно для збереження ваших налаштувань",
+
+ // "cookies.consent.app.title.acknowledgement": "Acknowledgement",
+ "cookies.consent.app.title.acknowledgement": "Підтвердження",
+
+ // "cookies.consent.app.description.acknowledgement": "Required for saving your acknowledgements and consents",
+ "cookies.consent.app.description.acknowledgement": "Необхідний для збереження Ваших підтверджень і згод",
+
+ // "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": "Дозволяє нам відстежувати статистичні дані",
+
+ // "cookies.consent.purpose.functional": "Functional",
+ "cookies.consent.purpose.functional": "Функціональний",
+
+ // "cookies.consent.purpose.statistical": "Statistical",
+ "cookies.consent.purpose.statistical": "Статичний",
+
+
+ // "curation-task.task.checklinks.label": "Check Links in Metadata",
+ "curation-task.task.checklinks.label": "Перевірте посилання у метаданих",
+
+ // "curation-task.task.noop.label": "NOOP",
+ // TODO New key - Add a translation
+ "curation-task.task.noop.label": "NOOP",
+
+ // "curation-task.task.profileformats.label": "Profile Bitstream Formats",
+ "curation-task.task.profileformats.label": "Профіль форматів файлів",
+
+ // "curation-task.task.requiredmetadata.label": "Check for Required Metadata",
+ "curation-task.task.requiredmetadata.label": "Перевірте наявність необхідних метаданих",
+
+ // "curation-task.task.translate.label": "Microsoft Translator",
+ "curation-task.task.translate.label": "Microsoft Translator",
+
+ // "curation-task.task.vscan.label": "Virus Scan",
+ "curation-task.task.vscan.label": "Перевірка на віруси",
+
+
+
+ // "curation.form.task-select.label": "Task:",
+ "curation.form.task-select.label": "Завдання:",
+
+ // "curation.form.submit": "Start",
+ "curation.form.submit": "Почати",
+
+ // "curation.form.submit.success.head": "The curation task has been started successfully",
+ "curation.form.submit.success.head": "Завдання успішно розпочате",
+
+ // "curation.form.submit.success.content": "You will be redirected to the corresponding process page.",
+ "curation.form.submit.success.content": "Ви будете перенаправлені на сторінку відповідного процесу.",
+
+ // "curation.form.submit.error.head": "Running the curation task failed",
+ "curation.form.submit.error.head": "Не вдалося виконати завдання",
+
+ // "curation.form.submit.error.content": "An error occured when trying to start the curation task.",
+ "curation.form.submit.error.content": "Виникла помилка при спробі розпочати завдання.",
+
+ // "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": "Підказка: Введіть [your-handle-prefix]/0 для запуску завдання на весь сайт (не всі види завдань це підтримують)",
+
+
+
+ // "dso-selector.create.collection.head": "New collection",
+ "dso-selector.create.collection.head": "Нове зібрання",
+
+ // "dso-selector.create.collection.sub-level": "Create a new collection in",
+ "dso-selector.create.collection.sub-level": "Створити нове зібрання в",
+
+ // "dso-selector.create.community.head": "New community",
+ "dso-selector.create.community.head": "Новий фонд",
+
+ // "dso-selector.create.community.sub-level": "Create a new community in",
+ "dso-selector.create.community.sub-level": "Створити новий фонд в",
+
+ // "dso-selector.create.community.top-level": "Create a new top-level community",
+ "dso-selector.create.community.top-level": "Створити фонд верхнього рівня",
+
+ // "dso-selector.create.item.head": "New item",
+ "dso-selector.create.item.head": "Новий документ",
+
+ // "dso-selector.create.item.sub-level": "Create a new item in",
+ "dso-selector.create.item.sub-level": "Створити новий документ в",
+
+ // "dso-selector.create.submission.head": "New submission",
+ // TODO New key - Add a translation
+ "dso-selector.create.submission.head": "New submission",
+
+ // "dso-selector.edit.collection.head": "Edit collection",
+ "dso-selector.edit.collection.head": "Редагувати зібрання",
+
+ // "dso-selector.edit.community.head": "Edit community",
+ "dso-selector.edit.community.head": "Редагувати фонд",
+
+ // "dso-selector.edit.item.head": "Edit item",
+ "dso-selector.edit.item.head": "Редагувати документ",
+
+ // "dso-selector.export-metadata.dspaceobject.head": "Export metadata from",
+ "dso-selector.export-metadata.dspaceobject.head": "Експорт метаданих з",
+
+ // "dso-selector.no-results": "No {{ type }} found",
+ "dso-selector.no-results": "{{ type }} не знайдено",
+
+ // "dso-selector.placeholder": "Search for a {{ type }}",
+ "dso-selector.placeholder": "Шукати {{ type }}",
+
+
+
+ // "confirmation-modal.export-metadata.header": "Export metadata for {{ dsoName }}",
+ "confirmation-modal.export-metadata.header": "Експорт метаданих для {{ dsoName }}",
+
+ // "confirmation-modal.export-metadata.info": "Are you sure you want to export metadata for {{ dsoName }}",
+ "confirmation-modal.export-metadata.info": "Ви впевнені, що хочете експортувати метадані для {{ dsoName }}?",
+
+ // "confirmation-modal.export-metadata.cancel": "Cancel",
+ "confirmation-modal.export-metadata.cancel": "Скасувати",
+
+ // "confirmation-modal.export-metadata.confirm": "Export",
+ "confirmation-modal.export-metadata.confirm": "Скасувати",
+
+ // "confirmation-modal.delete-eperson.header": "Delete EPerson \"{{ dsoName }}\"",
+ "confirmation-modal.delete-eperson.header": "Видалити користувача \"{{ dsoName }}\"",
+
+ // "confirmation-modal.delete-eperson.info": "Are you sure you want to delete EPerson \"{{ dsoName }}\"",
+ "confirmation-modal.delete-eperson.info": "Ви впевнені, що хочете видалити користувача \"{{ dsoName }}\"?",
+
+ // "confirmation-modal.delete-eperson.cancel": "Cancel",
+ "confirmation-modal.delete-eperson.cancel": "Скасувати",
+
+ // "confirmation-modal.delete-eperson.confirm": "Delete",
+ "confirmation-modal.delete-eperson.confirm": "Видалити",
+
+
+ // "error.bitstream": "Error fetching bitstream",
+ "error.bitstream": "Виникла помилка при отриманні файлу",
+
+ // "error.browse-by": "Error fetching items",
+ "error.browse-by": "Виникла помилка при отриманні документа",
+
+ // "error.collection": "Error fetching collection",
+ "error.collection": "Виникла помилка при отриманні зібрання",
+
+ // "error.collections": "Error fetching collections",
+ "error.collections": "Виникла помилка при отриманні зібрань",
+
+ // "error.community": "Error fetching community",
+ "error.community": "Виникла помилка при отриманні фонду",
+
+ // "error.identifier": "No item found for the identifier",
+ "error.identifier": "Жодного документу не знайдено за вказаним ідентифікатором",
+
+ // "error.default": "Error",
+ "error.default": "Виникла якась помилка, шляк трафить",
+
+ // "error.item": "Error fetching item",
+ "error.item": "Виникла помилка при отриманні документа",
+
+ // "error.items": "Error fetching items",
+ "error.items": "Виникла помилка при отриманні документів",
+
+ // "error.objects": "Error fetching objects",
+ "error.objects": "Виникла помилка при отриманні об'єктів",
+
+ // "error.recent-submissions": "Error fetching recent submissions",
+ "error.recent-submissions": "Виникла помилка при отриманні останніх submissions ",
+
+ // "error.search-results": "Error fetching search results",
+ "error.search-results": "Виникла помилка при отриманні пошукових результатів",
+
+ // "error.sub-collections": "Error fetching sub-collections",
+ "error.sub-collections": "Виникла помилка при отриманні підзібрання",
+
+ // "error.sub-communities": "Error fetching sub-communities",
+ "error.sub-communities": "Виникла помилка при отриманні підфонду",
+
+ // "error.submission.sections.init-form-error": "An error occurred during section initialize, please check your input-form configuration. Details are below :
",
+ "error.submission.sections.init-form-error": "Сталася помилка. Перевірте конфігурацію форми введення. Подробиці нижче:
",
+
+ // "error.top-level-communities": "Error fetching top-level communities",
+ "error.top-level-communities": "Виникла помилка при отриманні фонду верхнього рівня",
+
+ // "error.validation.license.notgranted": "You must grant this license to complete your submission. If you are unable to grant this license at this time you may save your work and return later or remove the submission.",
+ "error.validation.license.notgranted": "Ви повинні дати згоду на умови ліцензії, щоб завершити submission. Якщо ви не можете погодитись на умови ліцензії на даний момент, ви можете зберегти свою роботу та повернутися пізніше або видалити submission.",
+
+ // "error.validation.pattern": "This input is restricted by the current pattern: {{ pattern }}.",
+ "error.validation.pattern": "Вхідна інформація обмежена поточним шаблоном: {{ pattern }}.",
+
+ // "error.validation.filerequired": "The file upload is mandatory",
+ "error.validation.filerequired": "Завантаження файлу є обов'язковим",
+
+
+
+ // "file-section.error.header": "Error obtaining files for this item",
+ "file-section.error.header": "Помилка отримання файлів для цього документа",
+
+
+
+ // "footer.copyright": "copyright © 2002-{{ year }}",
+ "footer.copyright": "copyright © 2002-{{ year }}",
+
+ // "footer.link.dspace": "DSpace software",
+ //TODO Change your univer
+ "footer.link.dspace": "DSpace software and Lviv Polytechnic National University",
+
+ // "footer.link.lyrasis": "LYRASIS",
+ "footer.link.lyrasis": "LYRASIS",
+
+ // "footer.link.cookies": "Cookie settings",
+ "footer.link.cookies": "Налаштування куків",
+
+ // "footer.link.privacy-policy": "Privacy policy",
+ "footer.link.privacy-policy": "Політика приватності",
+
+ // "footer.link.end-user-agreement":"End User Agreement",
+ "footer.link.end-user-agreement":"Угода користувача",
+
+
+
+ // "forgot-email.form.header": "Forgot Password",
+ "forgot-email.form.header": "Забули пароль?",
+
+ // "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": "Зареєструйтесь для отримання повідомлень про нові надходження та отримайте можливість вносити документи.",
+
+ // "forgot-email.form.email": "Email Address *",
+ "forgot-email.form.email": "Email *",
+
+ // "forgot-email.form.email.error.required": "Please fill in an email address",
+ "forgot-email.form.email.error.required": "Введіть email",
+
+ // "forgot-email.form.email.error.pattern": "Please fill in a valid email address",
+ "forgot-email.form.email.error.pattern": "Ви повинні ввести правильний email",
+
+ // "forgot-email.form.email.hint": "This address will be verified and used as your login name.",
+ "forgot-email.form.email.hint": "Ми провіримо цей email. Використовуйте його для входу у репозитарій",
+
+ // "forgot-email.form.submit": "Submit",
+ "forgot-email.form.submit": "Надіслати",
+
+ // "forgot-email.form.success.head": "Verification email sent",
+ "forgot-email.form.success.head": "На Ваш email було надіслане повідомлення",
+
+ // "forgot-email.form.success.content": "An email has been sent to {{ email }} containing a special URL and further instructions.",
+ "forgot-email.form.success.content": "На {{ email }} було надіслане повідомлення, що містить спеціальне посилання та подальші інструкції.",
+
+ // "forgot-email.form.error.head": "Error when trying to register email",
+ "forgot-email.form.error.head": "Виникла помилка при реєстрації email",
+
+ // "forgot-email.form.error.content": "An error occured when registering the following email address: {{ email }}",
+ "forgot-email.form.error.content": "Виникла помилка при реєстрації email: {{ email }}",
+
+
+
+ // "forgot-password.title": "Forgot Password",
+ "forgot-password.title": "Забули пароль?",
+
+ // "forgot-password.form.head": "Forgot Password",
+ "forgot-password.form.head": "Забули пароль?",
+
+ // "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": "Введіть новий пароль у поле нижче та підтвердьте його, ввівши його ще раз у друге поле. Він має містити щонайменше 6 символів.",
+
+ // "forgot-password.form.card.security": "Security",
+ "forgot-password.form.card.security": "Безпека",
+
+ // "forgot-password.form.identification.header": "Identify",
+ "forgot-password.form.identification.header": "Ідентифікація",
+
+ // "forgot-password.form.identification.email": "Email address: ",
+ "forgot-password.form.identification.email": "Email: ",
+
+ // "forgot-password.form.label.password": "Password",
+ "forgot-password.form.label.password": "Пароль",
+
+ // "forgot-password.form.label.passwordrepeat": "Retype to confirm",
+ "forgot-password.form.label.passwordrepeat": "Введіть ще раз для підтвердження",
+
+ // "forgot-password.form.error.empty-password": "Please enter a password in the box below.",
+ "forgot-password.form.error.empty-password": "Введіть пароль у поле нижче.",
+
+ // "forgot-password.form.error.matching-passwords": "The passwords do not match.",
+ "forgot-password.form.error.matching-passwords": "Паролі не співпадають.",
+
+ // "forgot-password.form.error.password-length": "The password should be at least 6 characters long.",
+ "forgot-password.form.error.password-length": "Довжина пароля повинна становити не менше 6 символів.",
+
+ // "forgot-password.form.notification.error.title": "Error when trying to submit new password",
+ "forgot-password.form.notification.error.title": "Виникла помилка при реєстрації нового пароля",
+
+ // "forgot-password.form.notification.success.content": "The password reset was successful. You have been logged in as the created user.",
+ "forgot-password.form.notification.success.content": "Пароль успішно скинуто. Ви увійшли під щойно створеним користувачем.",
+
+ // "forgot-password.form.notification.success.title": "Password reset completed",
+ "forgot-password.form.notification.success.title": "Пароль скинуто успішно",
+
+ // "forgot-password.form.submit": "Submit password",
+ "forgot-password.form.submit": "Надіслати пароль",
+
+
+
+ // "form.add": "Add",
+ "form.add": "Додати",
+
+ // "form.add-help": "Click here to add the current entry and to add another one",
+ "form.add-help": "Натисніть тут, щоб додати поточний запис і додати інший",
+
+ // "form.cancel": "Cancel",
+ "form.cancel": "Скасувати",
+
+ // "form.clear": "Clear",
+ "form.clear": "Очистити",
+
+ // "form.clear-help": "Click here to remove the selected value",
+ "form.clear-help": "Натисніть тут, щоб видалити вибране значення",
+
+ // "form.edit": "Edit",
+ "form.edit": "Редагувати",
+
+ // "form.edit-help": "Click here to edit the selected value",
+ "form.edit-help": "Натисніть тут, щоб змінити вибране значення",
+
+ // "form.first-name": "First name",
+ "form.first-name": "Ім'я",
+
+ // "form.group-collapse": "Collapse",
+ "form.group-collapse": "Згорнути",
+
+ // "form.group-collapse-help": "Click here to collapse",
+ "form.group-collapse-help": "Натисніть тут щоб згорнути",
+
+ // "form.group-expand": "Expand",
+ "form.group-expand": "Розгорнути",
+
+ // "form.group-expand-help": "Click here to expand and add more elements",
+ "form.group-expand-help": "Натисніть тут, щоб розгорнути та додати більше елементів",
+
+ // "form.last-name": "Last name",
+ "form.last-name": "Прізвище",
+
+ // "form.loading": "Loading...",
+ "form.loading": "Вантажиться...",
+
+ // "form.lookup": "Lookup",
+ "form.lookup": "Пошук",
+
+ // "form.lookup-help": "Click here to look up an existing relation",
+ "form.lookup-help": "Клацніть тут, щоб знайти існуючий зв’язок",
+
+ // "form.no-results": "No results found",
+ "form.no-results": "Нічого не знайдено",
+
+ // "form.no-value": "No value entered",
+ "form.no-value": "Значення не введено",
+
+ // "form.other-information": {},
+ "form.other-information": {},
+
+ // "form.remove": "Remove",
+ "form.remove": "Видалити",
+
+ // "form.save": "Save",
+ "form.save": "Зберегти",
+
+ // "form.save-help": "Save changes",
+ "form.save-help": "Зберегти зміни",
+
+ // "form.search": "Search",
+ "form.search": "Пошук",
+
+ // "form.search-help": "Click here to look for an existing correspondence",
+ "form.search-help": "Клацніть тут, щоб знайти наявне листування",
+
+ // "form.submit": "Submit",
+ "form.submit": "Надіслати",
+
+
+
+ // "home.description": "",
+ "home.description": "",
+
+ // "home.breadcrumbs": "Home",
+ "home.breadcrumbs": "Головна",
+
+ // "home.title": "DSpace Angular :: Home",
+ // TODO Change univer name
+ "home.title": "Репозитарій Львівської політехніки :: Головна",
+
+ // "home.top-level-communities.head": "Communities in DSpace",
+ "home.top-level-communities.head": "Фонди",
+
+ // "home.top-level-communities.help": "Select a community to browse its collections.",
+ "home.top-level-communities.help": "Виберіть фонд, щоб переглянути його зібрання.",
+
+
+
+ // "info.end-user-agreement.accept": "I have read and I agree to the End User Agreement",
+ "info.end-user-agreement.accept": "Я прочитав та погоджуюсь із користувацькою угодою",
+
+ // "info.end-user-agreement.accept.error": "An error occurred accepting the End User Agreement",
+ "info.end-user-agreement.accept.error": "Виникла помилки при при фіксуванні Вашої згоди на користувацьку угоду",
+
+ // "info.end-user-agreement.accept.success": "Successfully updated the End User Agreement",
+ "info.end-user-agreement.accept.success": "Користувацьку угоду успішно оновлено",
+
+ // "info.end-user-agreement.breadcrumbs": "End User Agreement",
+ "info.end-user-agreement.breadcrumbs": "Користувацька угода",
+
+ // "info.end-user-agreement.buttons.cancel": "Cancel",
+ "info.end-user-agreement.buttons.cancel": "Відмінити",
+
+ // "info.end-user-agreement.buttons.save": "Save",
+ "info.end-user-agreement.buttons.save": "Зберегти",
+
+ // "info.end-user-agreement.head": "End User Agreement",
+ "info.end-user-agreement.head": "Користувацька угода",
+
+ // "info.end-user-agreement.title": "End User Agreement",
+ "info.end-user-agreement.title": "Користувацька угода",
+
+ // "info.privacy.breadcrumbs": "Privacy Statement",
+ "info.privacy.breadcrumbs": "Заява про конфіденційність",
+
+ // "info.privacy.head": "Privacy Statement",
+ "info.privacy.head": "Заява про конфіденційність",
+
+ // "info.privacy.title": "Privacy Statement",
+ "info.privacy.title": "Заява про конфіденційність",
+
+
+
+ // "item.alerts.private": "This item is private",
+ "item.alerts.private": "Доступ до документа закритий",
+
+ // "item.alerts.withdrawn": "This item has been withdrawn",
+ "item.alerts.withdrawn": "Цей документ було вилучено",
+
+
+
+ // "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": "За допомогою цього редактора ви можете переглядати та змінювати політики документа, а також змінювати політики окремих компонентів документа. Документ — це множина пакетів, а пакети — це множина файлів. Контейнери зазвичай мають політики ADD/REMOVE/READ/WRITE, тоді як файли мають лише політики READ/WRITE.",
+
+ // "item.edit.authorizations.title": "Edit item's Policies",
+ "item.edit.authorizations.title": "Редагувати політики документа",
+
+
+
+ // "item.badge.private": "Private",
+ "item.badge.private": "Приватне",
+
+ // "item.badge.withdrawn": "Withdrawn",
+ "item.badge.withdrawn": "Вилучено",
+
+
+
+ // "item.bitstreams.upload.bundle": "Bundle",
+ "item.bitstreams.upload.bundle": "контейнер файлів",
+
+ // "item.bitstreams.upload.bundle.placeholder": "Select a bundle",
+ "item.bitstreams.upload.bundle.placeholder": "Виберіть контейнер файлів",
+
+ // "item.bitstreams.upload.bundle.new": "Create bundle",
+ "item.bitstreams.upload.bundle.new": "Створити контейнер файлів",
+
+ // "item.bitstreams.upload.bundles.empty": "This item doesn\'t contain any bundles to upload a bitstream to.",
+ "item.bitstreams.upload.bundles.empty": "Цей документ не містить контейнеру файлів, щоб завантажити файл.",
+
+ // "item.bitstreams.upload.cancel": "Cancel",
+ "item.bitstreams.upload.cancel": "Відмінити",
+
+ // "item.bitstreams.upload.drop-message": "Drop a file to upload",
+ "item.bitstreams.upload.drop-message": "Виберіть файл для завантаження",
+
+ // "item.bitstreams.upload.item": "Item: ",
+ "item.bitstreams.upload.item": "Документ: ",
+
+ // "item.bitstreams.upload.notifications.bundle.created.content": "Successfully created new bundle.",
+ "item.bitstreams.upload.notifications.bundle.created.content": "Контейнер файлів створено.",
+
+ // "item.bitstreams.upload.notifications.bundle.created.title": "Created bundle",
+ "item.bitstreams.upload.notifications.bundle.created.title": "Контейнер файлів створено.",
+
+ // "item.bitstreams.upload.notifications.upload.failed": "Upload failed. Please verify the content before retrying.",
+ "item.bitstreams.upload.notifications.upload.failed": "Не вдалось завантажити. Перевірте вміст даних",
+
+ // "item.bitstreams.upload.title": "Upload bitstream",
+ "item.bitstreams.upload.title": "Завантажити файл",
+
+
+
+ // "item.edit.bitstreams.bundle.edit.buttons.upload": "Upload",
+ "item.edit.bitstreams.bundle.edit.buttons.upload": "Завантажити",
+
+ // "item.edit.bitstreams.bundle.displaying": "Currently displaying {{ amount }} bitstreams of {{ total }}.",
+ "item.edit.bitstreams.bundle.displaying": "Зараз відображаються {{ amount }}файли {{ total }}.",
+
+ // "item.edit.bitstreams.bundle.load.all": "Load all ({{ total }})",
+ "item.edit.bitstreams.bundle.load.all": "Завантажити все ({{ total }})",
+
+ // "item.edit.bitstreams.bundle.load.more": "Load more",
+ "item.edit.bitstreams.bundle.load.more": "Завантажити ще",
+
+ // "item.edit.bitstreams.bundle.name": "BUNDLE: {{ name }}",
+ "item.edit.bitstreams.bundle.name": "Контейнер файлів: {{ name }}",
+
+ // "item.edit.bitstreams.discard-button": "Discard",
+ "item.edit.bitstreams.discard-button": "Відхилити",
+
+ // "item.edit.bitstreams.edit.buttons.download": "Download",
+ "item.edit.bitstreams.edit.buttons.download": "Завантажити",
+
+ // "item.edit.bitstreams.edit.buttons.drag": "Drag",
+ "item.edit.bitstreams.edit.buttons.drag": "Перетягнути",
+
+ // "item.edit.bitstreams.edit.buttons.edit": "Edit",
+ "item.edit.bitstreams.edit.buttons.edit": "Редагувати",
+
+ // "item.edit.bitstreams.edit.buttons.remove": "Remove",
+ "item.edit.bitstreams.edit.buttons.remove": "Видалити",
+
+ // "item.edit.bitstreams.edit.buttons.undo": "Undo changes",
+ "item.edit.bitstreams.edit.buttons.undo": "Відмінити зміни",
+
+ // "item.edit.bitstreams.empty": "This item doesn't contain any bitstreams. Click the upload button to create one.",
+ "item.edit.bitstreams.empty": "Цей документ не містить жодного файлу. Клацніть для завантаження",
+
+ // "item.edit.bitstreams.headers.actions": "Actions",
+ "item.edit.bitstreams.headers.actions": "Дії",
+
+ // "item.edit.bitstreams.headers.bundle": "Bundle",
+ "item.edit.bitstreams.headers.bundle": "Контецнер файлів",
+
+ // "item.edit.bitstreams.headers.description": "Description",
+ "item.edit.bitstreams.headers.description": "Опис",
+
+ // "item.edit.bitstreams.headers.format": "Format",
+ "item.edit.bitstreams.headers.format": "Формат",
+
+ // "item.edit.bitstreams.headers.name": "Name",
+ "item.edit.bitstreams.headers.name": "Назва",
+
+ // "item.edit.bitstreams.notifications.discarded.content": "Your changes were discarded. To reinstate your changes click the 'Undo' button",
+ "item.edit.bitstreams.notifications.discarded.content": "Ваші зміни скасовано. Щоб відновити зміни, натисніть кнопку -Назад-.",
+
+ // "item.edit.bitstreams.notifications.discarded.title": "Changes discarded",
+ "item.edit.bitstreams.notifications.discarded.title": "Зміни скасовано",
+
+ // "item.edit.bitstreams.notifications.move.failed.title": "Error moving bitstreams",
+ "item.edit.bitstreams.notifications.move.failed.title": "Помилка переміщення файлу",
+
+ // "item.edit.bitstreams.notifications.move.saved.content": "Your move changes to this item's bitstreams and bundles have been saved.",
+ "item.edit.bitstreams.notifications.move.saved.content": "Зміни до документа збережені.",
+
+ // "item.edit.bitstreams.notifications.move.saved.title": "Move changes saved",
+ "item.edit.bitstreams.notifications.move.saved.title": "Зміни до документа збережені",
+
+ // "item.edit.bitstreams.notifications.outdated.content": "The item you're currently working on has been changed by another user. Your current changes are discarded to prevent conflicts",
+ "item.edit.bitstreams.notifications.outdated.content": "Документ, над яким ви зараз працюєте, був змінений іншим користувачем. Ваші поточні зміни відхилено, щоб запобігти конфліктам",
+
+ // "item.edit.bitstreams.notifications.outdated.title": "Changes outdated",
+ "item.edit.bitstreams.notifications.outdated.title": "Зміни застаріли",
+
+ // "item.edit.bitstreams.notifications.remove.failed.title": "Error deleting bitstream",
+ "item.edit.bitstreams.notifications.remove.failed.title": "Помилка видалення файла",
+
+ // "item.edit.bitstreams.notifications.remove.saved.content": "Your removal changes to this item's bitstreams have been saved.",
+ "item.edit.bitstreams.notifications.remove.saved.content": "Ваші зміни до документа збережено.",
+
+ // "item.edit.bitstreams.notifications.remove.saved.title": "Removal changes saved",
+ "item.edit.bitstreams.notifications.remove.saved.title": "Ваші зміни до документа збережено",
+
+ // "item.edit.bitstreams.reinstate-button": "Undo",
+ "item.edit.bitstreams.reinstate-button": "Назад",
+
+ // "item.edit.bitstreams.save-button": "Save",
+ "item.edit.bitstreams.save-button": "Зберегти",
+
+ // "item.edit.bitstreams.upload-button": "Upload",
+ "item.edit.bitstreams.upload-button": "Завантажити",
+
+
+
+ // "item.edit.delete.cancel": "Cancel",
+ "item.edit.delete.cancel": "Відмінити",
+
+ // "item.edit.delete.confirm": "Delete",
+ "item.edit.delete.confirm": "Видалити",
+
+ // "item.edit.delete.description": "Are you sure this item should be completely deleted? Caution: At present, no tombstone would be left.",
+ "item.edit.delete.description": "Ви впевнені, що цей документ потрібно повністю видалити? Застереження: можливості відновити не буде.",
+
+ // "item.edit.delete.error": "An error occurred while deleting the item",
+ "item.edit.delete.error": "Виникла помилка при видаленні документа",
+
+ // "item.edit.delete.header": "Delete item: {{ id }}",
+ "item.edit.delete.header": "Видалити документ: {{ id }}",
+
+ // "item.edit.delete.success": "The item has been deleted",
+ "item.edit.delete.success": "Документ видалено",
+
+ // "item.edit.head": "Edit Item",
+ "item.edit.head": "Редагувати документ",
+
+ // "item.edit.breadcrumbs": "Edit Item",
+ "item.edit.breadcrumbs": "Редагувати документ",
+
+
+ // "item.edit.tabs.mapper.head": "Collection Mapper",
+ "item.edit.tabs.mapper.head": "Карта зібрання",
+
+ // "item.edit.tabs.item-mapper.title": "Item Edit - Collection Mapper",
+ "item.edit.tabs.item-mapper.title": "Редагування документа - карта зібрання",
+
+ // "item.edit.item-mapper.buttons.add": "Map item to selected collections",
+ "item.edit.item-mapper.buttons.add": "Карта документа до вибраного зібрання",
+
+ // "item.edit.item-mapper.buttons.remove": "Remove item's mapping for selected collections",
+ "item.edit.item-mapper.buttons.remove": "Видалити карту документа для вибраного зібрання",
+
+ // "item.edit.item-mapper.cancel": "Cancel",
+ "item.edit.item-mapper.cancel": "Відмінити",
+
+ // "item.edit.item-mapper.description": "This is the item mapper tool that allows administrators to map this item to other collections. You can search for collections and map them, or browse the list of collections the item is currently mapped to.",
+ "item.edit.item-mapper.description": "Це інструмент карти документа, який дозволяє адміністраторам прив'язувати цей документ до інших зібрань. Ви можете шукати зібрання та прив'язувати їх, або переглядати список зібрань на які посилається документ.",
+
+ // "item.edit.item-mapper.head": "Item Mapper - Map Item to Collections",
+ "item.edit.item-mapper.head": "Карта документа - прив'язка документа до зібрання",
+
+ // "item.edit.item-mapper.item": "Item: \"
{{name}} \"",
+ "item.edit.item-mapper.item": "Документ: \"
{{name}} \"",
+
+ // "item.edit.item-mapper.no-search": "Please enter a query to search",
+ "item.edit.item-mapper.no-search": "Введіть запит для пошуку",
+
+ // "item.edit.item-mapper.notifications.add.error.content": "Errors occurred for mapping of item to {{amount}} collections.",
+ "item.edit.item-mapper.notifications.add.error.content": "Виникла помилка прив'язування документа до{{amount}} зібрання.",
+
+ // "item.edit.item-mapper.notifications.add.error.head": "Mapping errors",
+ "item.edit.item-mapper.notifications.add.error.head": "Помилка прив'язування",
+
+ // "item.edit.item-mapper.notifications.add.success.content": "Successfully mapped item to {{amount}} collections.",
+ "item.edit.item-mapper.notifications.add.success.content": "Документ успішно прив'язано до {{amount}} зібрання.",
+
+ // "item.edit.item-mapper.notifications.add.success.head": "Mapping completed",
+ "item.edit.item-mapper.notifications.add.success.head": "Прив'язування завершене",
+
+ // "item.edit.item-mapper.notifications.remove.error.content": "Errors occurred for the removal of the mapping to {{amount}} collections.",
+ "item.edit.item-mapper.notifications.remove.error.content": "Виникла помилка прив'язування документа до {{amount}} зібрання.",
+
+ // "item.edit.item-mapper.notifications.remove.error.head": "Removal of mapping errors",
+ "item.edit.item-mapper.notifications.remove.error.head": "Виникла помилка прив'язування",
+
+ // "item.edit.item-mapper.notifications.remove.success.content": "Successfully removed mapping of item to {{amount}} collections.",
+ "item.edit.item-mapper.notifications.remove.success.content": "Прив'язування документа до {{amount}} зібрання успішно видалено.",
+
+ // "item.edit.item-mapper.notifications.remove.success.head": "Removal of mapping completed",
+ "item.edit.item-mapper.notifications.remove.success.head": "Прив'язування видалено",
+
+ // "item.edit.item-mapper.tabs.browse": "Browse mapped collections",
+ "item.edit.item-mapper.tabs.browse": "Переглянути прив'язки зібрання",
+
+ // "item.edit.item-mapper.tabs.map": "Map new collections",
+ "item.edit.item-mapper.tabs.map": "Прив'язати нове зібрання",
+
+
+
+ // "item.edit.metadata.add-button": "Add",
+ "item.edit.metadata.add-button": "Додати",
+
+ // "item.edit.metadata.discard-button": "Discard",
+ "item.edit.metadata.discard-button": "Відмінити",
+
+ // "item.edit.metadata.edit.buttons.edit": "Edit",
+ "item.edit.metadata.edit.buttons.edit": "Редагувати",
+
+ // "item.edit.metadata.edit.buttons.remove": "Remove",
+ "item.edit.metadata.edit.buttons.remove": "Видалити",
+
+ // "item.edit.metadata.edit.buttons.undo": "Undo changes",
+ "item.edit.metadata.edit.buttons.undo": "Відмінити зміни",
+
+ // "item.edit.metadata.edit.buttons.unedit": "Stop editing",
+ "item.edit.metadata.edit.buttons.unedit": "Зупинити редагування",
+
+ // "item.edit.metadata.empty": "The item currently doesn't contain any metadata. Click Add to start adding a metadata value.",
+ "item.edit.metadata.empty": "Документ не містить жодних метаданих. Клікніть Додати щоб почати додавати метадані.",
+
+ // "item.edit.metadata.headers.edit": "Edit",
+ "item.edit.metadata.headers.edit": "Редагувати",
+
+ // "item.edit.metadata.headers.field": "Field",
+ "item.edit.metadata.headers.field": "Поле",
+
+ // "item.edit.metadata.headers.language": "Lang",
+ "item.edit.metadata.headers.language": "Мова",
+
+ // "item.edit.metadata.headers.value": "Value",
+ "item.edit.metadata.headers.value": "Значення",
+
+ // "item.edit.metadata.metadatafield.invalid": "Please choose a valid metadata field",
+ "item.edit.metadata.metadatafield.invalid": "Виберіть відповідне поле метаданих",
+
+ // "item.edit.metadata.notifications.discarded.content": "Your changes were discarded. To reinstate your changes click the 'Undo' button",
+ "item.edit.metadata.notifications.discarded.content": "Ваші зміни скасовано. Щоб відновити зміни, натисніть кнопку -Повернутись-.",
+
+ // "item.edit.metadata.notifications.discarded.title": "Changed discarded",
+ "item.edit.metadata.notifications.discarded.title": "Ваші зміни скасовано",
+
+ // "item.edit.metadata.notifications.error.title": "An error occurred",
+ "item.edit.metadata.notifications.error.title": "Ваші зміни скасовано",
+
+ // "item.edit.metadata.notifications.invalid.content": "Your changes were not saved. Please make sure all fields are valid before you save.",
+ "item.edit.metadata.notifications.invalid.content": "Ваші зміни не збережено. Перед збереженням переконайтеся, що всі поля вірно заповнені.",
+
+ // "item.edit.metadata.notifications.invalid.title": "Metadata invalid",
+ "item.edit.metadata.notifications.invalid.title": "Помилкові метадані",
+
+ // "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": "Документ, над яким ви зараз працюєте, був змінений іншим користувачем. Ваші поточні зміни відхилено, щоб запобігти конфліктам",
+
+ // "item.edit.metadata.notifications.outdated.title": "Changed outdated",
+ "item.edit.metadata.notifications.outdated.title": "Зміни застаріли",
+
+ // "item.edit.metadata.notifications.saved.content": "Your changes to this item's metadata were saved.",
+ "item.edit.metadata.notifications.saved.content": "Ваші зміни метаданих документа збережено.",
+
+ // "item.edit.metadata.notifications.saved.title": "Metadata saved",
+ "item.edit.metadata.notifications.saved.title": "Метадані збережено",
+
+ // "item.edit.metadata.reinstate-button": "Undo",
+ "item.edit.metadata.reinstate-button": "Повернутись",
+
+ // "item.edit.metadata.save-button": "Save",
+ "item.edit.metadata.save-button": "Зберегти",
+
+
+
+ // "item.edit.modify.overview.field": "Field",
+ "item.edit.modify.overview.field": "Поле",
+
+ // "item.edit.modify.overview.language": "Language",
+ "item.edit.modify.overview.language": "Мова",
+
+ // "item.edit.modify.overview.value": "Value",
+ "item.edit.modify.overview.value": "Значення",
+
+
+
+ // "item.edit.move.cancel": "Cancel",
+ "item.edit.move.cancel": "Відмінити",
+
+ // "item.edit.move.description": "Select the collection you wish to move this item to. To narrow down the list of displayed collections, you can enter a search query in the box.",
+ "item.edit.move.description": "Виберіть зібрання, до якої потрібно перемістити цей документ. Щоб звузити список відображених зібрань, ви можете ввести пошуковий запит у поле.",
+
+ // "item.edit.move.error": "An error occurred when attempting to move the item",
+ "item.edit.move.error": "Під час спроби перемістити документ - сталася помилка",
+
+ // "item.edit.move.head": "Move item: {{id}}",
+ "item.edit.move.head": "Перемістити документ: {{id}}",
+
+ // "item.edit.move.inheritpolicies.checkbox": "Inherit policies",
+ "item.edit.move.inheritpolicies.checkbox": "Наслідувати політики",
+
+ // "item.edit.move.inheritpolicies.description": "Inherit the default policies of the destination collection",
+ "item.edit.move.inheritpolicies.description": "Наслідувати політики за замовчуванням цільового зібрання",
+
+ // "item.edit.move.move": "Move",
+ "item.edit.move.move": "Перенести",
+
+ // "item.edit.move.processing": "Moving...",
+ "item.edit.move.processing": "Переносимо...",
+
+ // "item.edit.move.search.placeholder": "Enter a search query to look for collections",
+ "item.edit.move.search.placeholder": "Введіть пошуковий запит для пошуку зібрання",
+
+ // "item.edit.move.success": "The item has been moved successfully",
+ "item.edit.move.success": "Документ успішно перенесено",
+
+ // "item.edit.move.title": "Move item",
+ "item.edit.move.title": "Перенести документ",
+
+
+
+ // "item.edit.private.cancel": "Cancel",
+ "item.edit.private.cancel": "Відмінити",
+
+ // "item.edit.private.confirm": "Make it Private",
+ "item.edit.private.confirm": "Закрити доступ",
+
+ // "item.edit.private.description": "Are you sure this item should be made private in the archive?",
+ "item.edit.private.description": "Ви впевнені, що хочете закрити доступ до документа?",
+
+ // "item.edit.private.error": "An error occurred while making the item private",
+ "item.edit.private.error": "Виникла помилка при закритті доступу до документа",
+
+ // "item.edit.private.header": "Make item private: {{ id }}",
+ "item.edit.private.header": "Закрити доступ документу: {{ id }}",
+
+ // "item.edit.private.success": "The item is now private",
+ "item.edit.private.success": "Доступ до документа закритий",
+
+
+
+ // "item.edit.public.cancel": "Cancel",
+ "item.edit.public.cancel": "ВІдмінити",
+
+ // "item.edit.public.confirm": "Make it Public",
+ "item.edit.public.confirm": "Зробити загальнодоступним",
+
+ // "item.edit.public.description": "Are you sure this item should be made public in the archive?",
+ "item.edit.public.description": "Ви впевнені, що хочете зробити вільним доступ до документа?",
+
+ // "item.edit.public.error": "An error occurred while making the item public",
+ "item.edit.public.error": "Виникла помилка при відкритті доступу до документа",
+
+ // "item.edit.public.header": "Make item public: {{ id }}",
+ "item.edit.public.header": "Зробити документ загальнодоступним: {{ id }}",
+
+ // "item.edit.public.success": "The item is now public",
+ "item.edit.public.success": "Документ тепер загальнодоступний",
+
+
+
+ // "item.edit.reinstate.cancel": "Cancel",
+ "item.edit.reinstate.cancel": "Відмінити",
+
+ // "item.edit.reinstate.confirm": "Reinstate",
+ "item.edit.reinstate.confirm": "Відновити",
+
+ // "item.edit.reinstate.description": "Are you sure this item should be reinstated to the archive?",
+ "item.edit.reinstate.description": "Ви дійсно хочете відновити документ?",
+
+ // "item.edit.reinstate.error": "An error occurred while reinstating the item",
+ "item.edit.reinstate.error": "Виникла помилка при відновленні документа",
+
+ // "item.edit.reinstate.header": "Reinstate item: {{ id }}",
+ "item.edit.reinstate.header": "Відновлення документа: {{ id }}",
+
+ // "item.edit.reinstate.success": "The item was reinstated successfully",
+ "item.edit.reinstate.success": "Документ був успішно відновлений",
+
+
+
+ // "item.edit.relationships.discard-button": "Discard",
+ "item.edit.relationships.discard-button": "Відмінити",
+
+ // "item.edit.relationships.edit.buttons.add": "Add",
+ "item.edit.relationships.edit.buttons.add": "Додати",
+
+ // "item.edit.relationships.edit.buttons.remove": "Remove",
+ "item.edit.relationships.edit.buttons.remove": "Видалити",
+
+ // "item.edit.relationships.edit.buttons.undo": "Undo changes",
+ "item.edit.relationships.edit.buttons.undo": "Повернути зміни",
+
+ // "item.edit.relationships.no-relationships": "No relationships",
+ "item.edit.relationships.no-relationships": "Відсутні зв'язки",
+
+ // "item.edit.relationships.notifications.discarded.content": "Your changes were discarded. To reinstate your changes click the 'Undo' button",
+ "item.edit.relationships.notifications.discarded.content": "Ваші зміни скасовано. Щоб відновити зміни, натисніть кнопку -Повернутись-",
+
+ // "item.edit.relationships.notifications.discarded.title": "Changes discarded",
+ "item.edit.relationships.notifications.discarded.title": "Зміни скасовано",
+
+ // "item.edit.relationships.notifications.failed.title": "Error editing relationships",
+ "item.edit.relationships.notifications.failed.title": "Помилка редагування зв'яків",
+
+ // "item.edit.relationships.notifications.outdated.content": "The item you're currently working on has been changed by another user. Your current changes are discarded to prevent conflicts",
+ "item.edit.relationships.notifications.outdated.content": "Документ, над яким ви зараз працюєте, був змінений іншим користувачем. Ваші поточні зміни відхилено, щоб запобігти конфліктам",
+
+ // "item.edit.relationships.notifications.outdated.title": "Changes outdated",
+ "item.edit.relationships.notifications.outdated.title": "Зміни застаріли",
+
+ // "item.edit.relationships.notifications.saved.content": "Your changes to this item's relationships were saved.",
+ "item.edit.relationships.notifications.saved.content": "Зміни до зв'язків документа успішно збережено.",
+
+ // "item.edit.relationships.notifications.saved.title": "Relationships saved",
+ "item.edit.relationships.notifications.saved.title": "Зв'язки збережено",
+
+ // "item.edit.relationships.reinstate-button": "Undo",
+ "item.edit.relationships.reinstate-button": "Повернутись",
+
+ // "item.edit.relationships.save-button": "Save",
+ "item.edit.relationships.save-button": "Зберегти",
+
+ // "item.edit.relationships.no-entity-type": "Add 'dspace.entity.type' metadata to enable relationships for this item",
+ "item.edit.relationships.no-entity-type": "Додайте 'dspace.entity.type' для створення зв'язків для документа",
+
+
+
+ // "item.edit.tabs.bitstreams.head": "Bitstreams",
+ "item.edit.tabs.bitstreams.head": "Файли",
+
+ // "item.edit.tabs.bitstreams.title": "Редагування докумена - Файли",
+ "item.edit.tabs.bitstreams.title": "Редагування докумена - Файли",
+
+ // "item.edit.tabs.curate.head": "Curate",
+ // TODO translate
+ "item.edit.tabs.curate.head": "Curate",
+
+ // "item.edit.tabs.curate.title": "Item Edit - Curate",
+ // TODO translate
+ "item.edit.tabs.curate.title": "Редагування документа - Curate",
+
+ // "item.edit.tabs.metadata.head": "Metadata",
+ "item.edit.tabs.metadata.head": "Метадані",
+
+ // "item.edit.tabs.metadata.title": "Item Edit - Metadata",
+ "item.edit.tabs.metadata.title": "Редагування документа - метадані",
+
+ // "item.edit.tabs.relationships.head": "Relationships",
+ "item.edit.tabs.relationships.head": "Зв'язки",
+
+ // "item.edit.tabs.relationships.title": "Редагування документа - зв'язки",
+ "item.edit.tabs.relationships.title": "Редагування документа - зв'язки",
+
+ // "item.edit.tabs.status.buttons.authorizations.button": "Authorizations...",
+ "item.edit.tabs.status.buttons.authorizations.button": "Авторизація...",
+
+ // "item.edit.tabs.status.buttons.authorizations.label": "Edit item's authorization policies",
+ "item.edit.tabs.status.buttons.authorizations.label": "Редагувати політики доступу документа",
+
+ // "item.edit.tabs.status.buttons.delete.button": "Permanently delete",
+ "item.edit.tabs.status.buttons.delete.button": "Видалити назавжди",
+
+ // "item.edit.tabs.status.buttons.delete.label": "Completely expunge item",
+ "item.edit.tabs.status.buttons.delete.label": "Повністю видалити документ",
+
+ // "item.edit.tabs.status.buttons.mappedCollections.button": "Mapped collections",
+ "item.edit.tabs.status.buttons.mappedCollections.button": "Прив'язані зібрання",
+
+ // "item.edit.tabs.status.buttons.mappedCollections.label": "Manage mapped collections",
+ "item.edit.tabs.status.buttons.mappedCollections.label": "Керувати прив'язаними зібраннями",
+
+ // "item.edit.tabs.status.buttons.move.button": "Move...",
+ "item.edit.tabs.status.buttons.move.button": "Перемістити...",
+
+ // "item.edit.tabs.status.buttons.move.label": "Move item to another collection",
+ "item.edit.tabs.status.buttons.move.label": "Перемістити документ до іншого зібрання",
+
+ // "item.edit.tabs.status.buttons.private.button": "Make it private...",
+ "item.edit.tabs.status.buttons.private.button": "Закрити доступ...",
+
+ // "item.edit.tabs.status.buttons.private.label": "Make item private",
+ "item.edit.tabs.status.buttons.private.label": "Закрити доступ до документа",
+
+ // "item.edit.tabs.status.buttons.public.button": "Make it public...",
+ "item.edit.tabs.status.buttons.public.button": "Зробити загальнодоступним...",
+
+ // "item.edit.tabs.status.buttons.public.label": "Make item public",
+ "item.edit.tabs.status.buttons.public.label": "Зробити документ загальнодоступним",
+
+ // "item.edit.tabs.status.buttons.reinstate.button": "Reinstate...",
+ "item.edit.tabs.status.buttons.reinstate.button": "Відновити...",
+
+ // "item.edit.tabs.status.buttons.reinstate.label": "Reinstate item into the repository",
+ "item.edit.tabs.status.buttons.reinstate.label": "Відновити документ в репозиторій",
+
+ // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
+ "item.edit.tabs.status.buttons.withdraw.button": "Вилучити...",
+
+ // "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository",
+ "item.edit.tabs.status.buttons.withdraw.label": "Вилучити документ з репозиторію",
+
+ // "item.edit.tabs.status.description": "Welcome to the item management page. From here you can withdraw, reinstate, move or delete the item. You may also update or add new metadata / bitstreams on the other tabs.",
+ "item.edit.tabs.status.description": "Вітаємо на сторінці керування документами. Тут ви можете вилучити, відновити, перемістити або видалити елемент. Ви також можете оновити або додати нові метадані чи файли на інших вкладках.",
+
+ // "item.edit.tabs.status.head": "Status",
+ "item.edit.tabs.status.head": "Статус",
+
+ // "item.edit.tabs.status.labels.handle": "Handle",
+ "item.edit.tabs.status.labels.handle": "Handle",
+
+ // "item.edit.tabs.status.labels.id": "Item Internal ID",
+ "item.edit.tabs.status.labels.id": "Внутрішнє ID",
+
+ // "item.edit.tabs.status.labels.itemPage": "Item Page",
+ "item.edit.tabs.status.labels.itemPage": "Сторінка документа",
+
+ // "item.edit.tabs.status.labels.lastModified": "Last Modified",
+ "item.edit.tabs.status.labels.lastModified": "Останні редагування",
+
+ // "item.edit.tabs.status.title": "Item Edit - Status",
+ "item.edit.tabs.status.title": "Редагування документа - статус",
+
+ // "item.edit.tabs.versionhistory.head": "Version History",
+ "item.edit.tabs.versionhistory.head": "Історія версій",
+
+ // "item.edit.tabs.versionhistory.title": "Item Edit - Version History",
+ "item.edit.tabs.versionhistory.title": "Редагування документа - історія версій",
+
+ // "item.edit.tabs.versionhistory.under-construction": "Editing or adding new versions is not yet possible in this user interface.",
+ "item.edit.tabs.versionhistory.under-construction": "Редагування або додавання нових версій ще неможливе в цьому інтерфейсі користувача.",
+
+ // "item.edit.tabs.view.head": "View Item",
+ "item.edit.tabs.view.head": "Перегляд документа",
+
+ // "item.edit.tabs.view.title": "Item Edit - View",
+ "item.edit.tabs.view.title": "Редагування документа - перегляд",
+
+
+
+ // "item.edit.withdraw.cancel": "Cancel",
+ "item.edit.withdraw.cancel": "Відмінити",
+
+ // "item.edit.withdraw.confirm": "Withdraw",
+ "item.edit.withdraw.confirm": "Вилучити",
+
+ // "item.edit.withdraw.description": "Are you sure this item should be withdrawn from the archive?",
+ "item.edit.withdraw.description": "Ви впевнені, що бажаєте вилучити документ?",
+
+ // "item.edit.withdraw.error": "An error occurred while withdrawing the item",
+ "item.edit.withdraw.error": "Виникла помилка при вилученні документа",
+
+ // "item.edit.withdraw.header": "Withdraw item: {{ id }}",
+ "item.edit.withdraw.header": "Вилучити документ: {{ id }}",
+
+ // "item.edit.withdraw.success": "The item was withdrawn successfully",
+ "item.edit.withdraw.success": "Документ був успішно вилучений",
+
+
+
+ // "item.listelement.badge": "Item",
+ "item.listelement.badge": "Документ",
+
+ // "item.page.description": "Description",
+ "item.page.description": "Опис",
+
+ // "item.page.edit": "Edit this item",
+ "item.page.edit": "Редагувати цей документ",
+
+ // "item.page.journal-issn": "Journal ISSN",
+ "item.page.journal-issn": "Номер ISSN",
+
+ // "item.page.journal-title": "Journal Title",
+ "item.page.journal-title": "Назва журналу",
+
+ // "item.page.publisher": "Publisher",
+ "item.page.publisher": "Видавець",
+
+ // "item.page.titleprefix": "Item: ",
+ "item.page.titleprefix": "Документ: ",
+
+ // "item.page.volume-title": "Volume Title",
+ "item.page.volume-title": "Назва тому",
+
+ // "item.search.results.head": "Результат пошуку за документами",
+ "item.search.results.head": "Результат пошуку за документами",
+
+ // "item.search.title": "DSpace Angular :: Item Search",
+ "item.search.title": "Репозитарій :: Пошук документів",
+
+
+
+ // "item.page.abstract": "Abstract",
+ "item.page.abstract": "Анотація",
+
+ // "item.page.author": "Authors",
+ "item.page.author": "Автори",
+
+ // "item.page.citation": "Citation",
+ "item.page.citation": "Бібліографічний опис",
+
+ // "item.page.collections": "Collections",
+ "item.page.collections": "Зібрання",
+
+ // "item.page.date": "Date",
+ "item.page.date": "Дата",
+
+ // "item.page.edit": "Edit this item",
+ "item.page.edit": "Редагувати цей документ",
+
+ // "item.page.files": "Files",
+ "item.page.files": "Файли",
+
+ // "item.page.filesection.description": "Description:",
+ "item.page.filesection.description": "Опис:",
+
+ // "item.page.filesection.download": "Download",
+ "item.page.filesection.download": "Завантажити",
+
+ // "item.page.filesection.format": "Format:",
+ "item.page.filesection.format": "Формат:",
+
+ // "item.page.filesection.name": "Name:",
+ "item.page.filesection.name": "Назва:",
+
+ // "item.page.filesection.size": "Size:",
+ "item.page.filesection.size": "Розмір:",
+
+ // "item.page.journal.search.title": "Articles in this journal",
+ "item.page.journal.search.title": "Публікації у цьому виданні",
+
+ // "item.page.link.full": "Full item page",
+ "item.page.link.full": "Повна інформація про документ",
+
+ // "item.page.link.simple": "Simple item page",
+ "item.page.link.simple": "Скорочена інформація про документ",
+
+ // "item.page.person.search.title": "Articles by this author",
+ "item.page.person.search.title": "Публікації за автором",
+
+ // "item.page.related-items.view-more": "Show {{ amount }} more",
+ "item.page.related-items.view-more": "Показати {{ amount }} більше",
+
+ // "item.page.related-items.view-less": "Hide last {{ amount }}",
+ "item.page.related-items.view-less": "Приховати останні {{ amount }}",
+
+ // "item.page.relationships.isAuthorOfPublication": "Publications",
+ "item.page.relationships.isAuthorOfPublication": "Публікації",
+
+ // "item.page.relationships.isJournalOfPublication": "Publications",
+ "item.page.relationships.isJournalOfPublication": "Публікації",
+
+ // "item.page.relationships.isOrgUnitOfPerson": "Authors",
+ "item.page.relationships.isOrgUnitOfPerson": "Автори",
+
+ // "item.page.relationships.isOrgUnitOfProject": "Research Projects",
+ "item.page.relationships.isOrgUnitOfProject": "Дослідницькі проекти",
+
+ // "item.page.subject": "Keywords",
+ "item.page.subject": "Ключові слова",
+
+ // "item.page.uri": "URI",
+ "item.page.uri": "URI",
+
+ // "item.page.bitstreams.view-more": "Show more",
+ "item.page.bitstreams.view-more": "Показати більше",
+
+ // "item.page.bitstreams.collapse": "Collapse",
+ "item.page.bitstreams.collapse": "Згорнути",
+
+ // "item.page.filesection.original.bundle" : "Original bundle",
+ "item.page.filesection.original.bundle" : "Контейнер файлів",
+
+ // "item.page.filesection.license.bundle" : "License bundle",
+ "item.page.filesection.license.bundle" : "Ліцензійна угода",
+
+ // "item.preview.dc.identifier.uri": "Identifier:",
+ "item.preview.dc.identifier.uri": "Ідентифікатор:",
+
+ // "item.preview.dc.contributor.author": "Authors:",
+ "item.preview.dc.contributor.author": "Автори:",
+
+ // "item.preview.dc.date.issued": "Published date:",
+ "item.preview.dc.date.issued": "Дата публікації:",
+
+ // "item.preview.dc.description.abstract": "Abstract:",
+ "item.preview.dc.description.abstract": "Анотація:",
+
+ // "item.preview.dc.identifier.other": "Other identifier:",
+ "item.preview.dc.identifier.other": "Інший ідентифікатор:",
+
+ // "item.preview.dc.language.iso": "Language:",
+ "item.preview.dc.language.iso": "Мова:",
+
+ // "item.preview.dc.subject": "Subjects:",
+ "item.preview.dc.subject": "Ключові слова:",
+
+ // "item.preview.dc.title": "Title:",
+ "item.preview.dc.title": "Назва:",
+
+ // "item.preview.person.familyName": "Surname:",
+ "item.preview.person.familyName": "Прізвище:",
+
+ // "item.preview.person.givenName": "Name:",
+ "item.preview.person.givenName": "Ім'я:",
+
+ // "item.preview.person.identifier.orcid": "ORCID:",
+ "item.preview.person.identifier.orcid": "ORCID:",
+
+
+ // "item.select.confirm": "Confirm selected",
+ "item.select.confirm": "Підтвердити вибрані",
+
+ // "item.select.empty": "No items to show",
+ "item.select.empty": "Таких документів немає",
+
+ // "item.select.table.author": "Author",
+ "item.select.table.author": "Автор",
+
+ // "item.select.table.collection": "Collection",
+ "item.select.table.collection": "Зібрання",
+
+ // "item.select.table.title": "Title",
+ "item.select.table.title": "Назва",
+
+
+ // "item.version.history.empty": "There are no other versions for this item yet.",
+ "item.version.history.empty": "Іншої версії цього документу немає.",
+
+ // "item.version.history.head": "Version History",
+ "item.version.history.head": "Історія версій",
+
+ // "item.version.history.return": "Return",
+ "item.version.history.return": "Повернутись",
+
+ // "item.version.history.selected": "Selected version",
+ "item.version.history.selected": "Вибрана версія",
+
+ // "item.version.history.table.version": "Version",
+ "item.version.history.table.version": "Версія",
+
+ // "item.version.history.table.item": "Item",
+ "item.version.history.table.item": "Документ",
+
+ // "item.version.history.table.editor": "Editor",
+ "item.version.history.table.editor": "Редактор",
+
+ // "item.version.history.table.date": "Date",
+ "item.version.history.table.date": "Дата",
+
+ // "item.version.history.table.summary": "Summary",
+ "item.version.history.table.summary": "Анотація/Summary",
+
+
+
+ // "item.version.notice": "This is not the latest version of this item. The latest version can be found
here .",
+ "item.version.notice": "Це не остання версія документа. Останню версію можна знайти за покликанням
ТУТ .",
+
+
+
+ // "journal.listelement.badge": "Journal",
+ "journal.listelement.badge": "Видання",
+
+ // "journal.page.description": "Description",
+ "journal.page.description": "Опис",
+
+ // "journal.page.edit": "Edit this item",
+ "journal.page.edit": "Редагувати цей документ",
+
+ // "journal.page.editor": "Editor-in-Chief",
+ "journal.page.editor": "Головний редактор",
+
+ // "journal.page.issn": "ISSN",
+ "journal.page.issn": "ISSN",
+
+ // "journal.page.publisher": "Publisher",
+ "journal.page.publisher": "Видавець",
+
+ // "journal.page.titleprefix": "Journal: ",
+ "journal.page.titleprefix": "Видання: ",
+
+ // "journal.search.results.head": "Journal Search Results",
+ "journal.search.results.head": "Пошук у виданні",
+
+ // "journal.search.title": "DSpace Angular :: Journal Search",
+ "journal.search.title": "Репозитарій :: пошук видання",
+
+
+
+ // "journalissue.listelement.badge": "Journal Issue",
+ "journalissue.listelement.badge": "Випуск видання",
+
+ // "journalissue.page.description": "Description",
+ "journalissue.page.description": "Опис",
+
+ // "journalissue.page.edit": "Edit this item",
+ "journalissue.page.edit": "Редагувати цей документ",
+
+ // "journalissue.page.issuedate": "Issue Date",
+ "journalissue.page.issuedate": "Дата випуску",
+
+ // "journalissue.page.journal-issn": "Journal ISSN",
+ "journalissue.page.journal-issn": "ISSN",
+
+ // "journalissue.page.journal-title": "Journal Title",
+ "journalissue.page.journal-title": "Назва видання",
+
+ // "journalissue.page.keyword": "Keywords",
+ "journalissue.page.keyword": "Ключові слова",
+
+ // "journalissue.page.number": "Number",
+ "journalissue.page.number": "Номер",
+
+ // "journalissue.page.titleprefix": "Journal Issue: ",
+ "journalissue.page.titleprefix": "Випуск видання: ",
+
+
+
+ // "journalvolume.listelement.badge": "Journal Volume",
+ "journalvolume.listelement.badge": "Том видання",
+
+ // "journalvolume.page.description": "Description",
+ "journalvolume.page.description": "Опис",
+
+ // "journalvolume.page.edit": "Edit this item",
+
+ "journalvolume.page.edit": "Редагувати цей документ",
+
+ // "journalvolume.page.issuedate": "Issue Date",
+ "journalvolume.page.issuedate": "Дата випуску",
+
+ // "journalvolume.page.titleprefix": "Journal Volume: ",
+ "journalvolume.page.titleprefix": "Том видання: ",
+
+ // "journalvolume.page.volume": "Volume",
+ "journalvolume.page.volume": "Том",
+
+
+
+ // "loading.bitstream": "Loading bitstream...",
+ "loading.bitstream": "Файл вантажится...",
+
+ // "loading.bitstreams": "Loading bitstreams...",
+ "loading.bitstreams": "Файли вантажаться...",
+
+ // "loading.browse-by": "Loading items...",
+ "loading.browse-by": "Документи вантажаться...",
+
+ // "loading.browse-by-page": "Loading page...",
+ "loading.browse-by-page": "Сторінка вантажится...",
+
+ // "loading.collection": "Loading collection...",
+ "loading.collection": "Зібрання вантажиться...",
+
+ // "loading.collections": "Loading collections...",
+ "loading.collections": "Зібрання вантажаться...",
+
+ // "loading.content-source": "Loading content source...",
+ "loading.content-source": "Джерело даних вантажиться...",
+
+ // "loading.community": "Loading community...",
+ "loading.community": "Фонд вантажиться...",
+
+ // "loading.default": "Loading...",
+ "loading.default": "Вантажиться...",
+
+ // "loading.item": "Loading item...",
+ "loading.item": "Документ вантажиться...",
+
+ // "loading.items": "Loading items...",
+ "loading.items": "Документи вантажаться...",
+
+ // "loading.mydspace-results": "Loading items...",
+ "loading.mydspace-results": "Документи вантажаться..",
+
+ // "loading.objects": "Loading...",
+ "loading.objects": "Вантажиться...",
+
+ // "loading.recent-submissions": "Loading recent submissions...",
+ "loading.recent-submissions": "Вантажаться останні підписки...",
+
+ // "loading.search-results": "Loading search results...",
+ "loading.search-results": "Результати вантажаться...",
+
+ // "loading.sub-collections": "Loading sub-collections...",
+ "loading.sub-collections": "Підзібрання вантажаться...",
+
+ // "loading.sub-communities": "Loading sub-communities...",
+ "loading.sub-communities": "Підфонди вантажаться...",
+
+ // "loading.top-level-communities": "Loading top-level communities...",
+ "loading.top-level-communities": "Фонди верхнього рівня вантажаться...",
+
+
+
+ // "login.form.email": "Email address",
+ "login.form.email": "Email",
+
+ // "login.form.forgot-password": "Have you forgotten your password?",
+ "login.form.forgot-password": "Забули пароль?",
+
+ // "login.form.header": "Please log in to DSpace",
+ "login.form.header": "Увійдіть у репозитарій",
+
+ // "login.form.new-user": "New user? Click here to register.",
+ "login.form.new-user": "Новий користувач? Зареєструйтесь.",
+
+ // "login.form.or-divider": "or",
+ "login.form.or-divider": "або",
+
+ // "login.form.password": "Password",
+ "login.form.password": "Пароль",
+
+ // "login.form.shibboleth": "Log in with Shibboleth",
+ "login.form.shibboleth": "Увійти через Shibboleth/наразі не підримується/",
+
+ // "login.form.submit": "Log in",
+ "login.form.submit": "Увійти",
+
+ // "login.title": "Login",
+ "login.title": "Користувач",
+
+ // "login.breadcrumbs": "Login",
+ "login.breadcrumbs": "Користувач",
+
+
+
+ // "logout.form.header": "Log out from DSpace",
+ "logout.form.header": "Вийти з репозиторію",
+
+ // "logout.form.submit": "Log out",
+ "logout.form.submit": "Вийти",
+
+ // "logout.title": "Logout",
+ "logout.title": "Вийти",
+
+
+
+ // "menu.header.admin": "Admin",
+ "menu.header.admin": "Адмін",
+
+ // "menu.header.image.logo": "Repository logo",
+ "menu.header.image.logo": "Логотип репозиторію",
+
+
+
+ // "menu.section.access_control": "Access Control",
+ "menu.section.access_control": "Контроль доступу",
+
+ // "menu.section.access_control_authorizations": "Authorizations",
+ "menu.section.access_control_authorizations": "Авторизація",
+
+ // "menu.section.access_control_groups": "Groups",
+ "menu.section.access_control_groups": "Групи",
+
+ // "menu.section.access_control_people": "People",
+ "menu.section.access_control_people": "Користувачі",
+
+
+
+ // "menu.section.admin_search": "Admin Search",
+ "menu.section.admin_search": "Пошук адміністратора",
+
+
+
+ // "menu.section.browse_community": "This Community",
+ "menu.section.browse_community": "Цей фонд",
+
+ // "menu.section.browse_community_by_author": "By Author",
+ "menu.section.browse_community_by_author": "За автором",
+
+ // "menu.section.browse_community_by_issue_date": "By Issue Date",
+ "menu.section.browse_community_by_issue_date": "За датою видання",
+
+ // "menu.section.browse_community_by_title": "By Title",
+ "menu.section.browse_community_by_title": "За назвою",
+
+ // "menu.section.browse_global": "All of DSpace",
+ "menu.section.browse_global": "Пошук за критеріями",
+
+ // "menu.section.browse_global_by_author": "By Author",
+ "menu.section.browse_global_by_author": "За автором",
+
+ // "menu.section.browse_global_by_dateissued": "By Issue Date",
+ "menu.section.browse_global_by_dateissued": "За датою видання",
+
+ // "menu.section.browse_global_by_subject": "By Subject",
+ "menu.section.browse_global_by_subject": "За ключовими словами",
+
+ // "menu.section.browse_global_by_title": "By Title",
+ "menu.section.browse_global_by_title": "За назвою",
+
+ // "menu.section.browse_global_communities_and_collections": "Communities & Collections",
+ "menu.section.browse_global_communities_and_collections": "Фонди та зібрання",
+
+
+
+ // "menu.section.control_panel": "Control Panel",
+ "menu.section.control_panel": "Панель управління",
+
+ // "menu.section.curation_task": "Curation Task",
+ "menu.section.curation_task": "Поточні завдання",
+
+
+
+ // "menu.section.edit": "Edit",
+ "menu.section.edit": "Редагувати",
+
+ // "menu.section.edit_collection": "Collection",
+ "menu.section.edit_collection": "Зібрання",
+
+ // "menu.section.edit_community": "Community",
+ "menu.section.edit_community": "Фонд",
+
+ // "menu.section.edit_item": "Item",
+ "menu.section.edit_item": "Документ",
+
+
+
+ // "menu.section.export": "Export",
+ "menu.section.export": "Експорт",
+
+ // "menu.section.export_collection": "Collection",
+ "menu.section.export_collection": "Зібрання",
+
+ // "menu.section.export_community": "Community",
+ "menu.section.export_community": "Фонд",
+
+ // "menu.section.export_item": "Item",
+ "menu.section.export_item": "Документ",
+
+ // "menu.section.export_metadata": "Metadata",
+ "menu.section.export_metadata": "Метадані",
+
+
+
+ // "menu.section.icon.access_control": "Access Control menu section",
+ "menu.section.icon.access_control": "Меню контролю доступу",
+
+ // "menu.section.icon.admin_search": "Admin search menu section",
+ "menu.section.icon.admin_search": "Меню пошуку адміна",
+
+ // "menu.section.icon.control_panel": "Control Panel menu section",
+ "menu.section.icon.control_panel": "Меню панелі управління",
+
+ // "menu.section.icon.curation_task": "Curation Task menu section",
+ "menu.section.icon.curation_task": "Меню поточних завдань",
+
+ // "menu.section.icon.edit": "Edit menu section",
+ "menu.section.icon.edit": "Редагувати розділ меню",
+
+ // "menu.section.icon.export": "Export menu section",
+ "menu.section.icon.export": "Експорт розділу меню",
+
+ // "menu.section.icon.find": "Find menu section",
+ "menu.section.icon.find": "Знайти розділ меню",
+
+ // "menu.section.icon.import": "Import menu section",
+ "menu.section.icon.import": "Імпорт розділу меню",
+
+ // "menu.section.icon.new": "New menu section",
+ "menu.section.icon.new": "Новий розділ меню",
+
+ // "menu.section.icon.pin": "Pin sidebar",
+ "menu.section.icon.pin": "Закріпити бічну панель",
+
+ // "menu.section.icon.processes": "Processes menu section",
+
+ "menu.section.icon.processes": "Процеси розділу меню",
+
+ // "menu.section.icon.registries": "Registries menu section",
+ "menu.section.icon.registries": "Реєстр розділів меню",
+
+ // "menu.section.icon.statistics_task": "Statistics Task menu section",
+ "menu.section.icon.statistics_task": "Статистика розділу меню",
+
+ // "menu.section.icon.unpin": "Unpin sidebar",
+ "menu.section.icon.unpin": "Відкріпити бічну панель",
+
+
+
+ // "menu.section.import": "Import",
+ "menu.section.import": "Імпорт",
+
+ // "menu.section.import_batch": "Batch Import (ZIP)",
+ "menu.section.import_batch": "Імпорт контейнера файлів (ZIP)",
+
+ // "menu.section.import_metadata": "Metadata",
+ "menu.section.import_metadata": "Метадані",
+
+
+
+ // "menu.section.new": "New",
+ "menu.section.new": "Новий",
+
+ // "menu.section.new_collection": "Collection",
+ "menu.section.new_collection": "Зібрання",
+
+ // "menu.section.new_community": "Community",
+ "menu.section.new_community": "Фонд",
+
+ // "menu.section.new_item": "Item",
+ "menu.section.new_item": "Документ",
+
+ // "menu.section.new_item_version": "Item Version",
+ "menu.section.new_item_version": "Версія документа",
+
+ // "menu.section.new_process": "Process",
+
+ "menu.section.new_process": "Процес",
+
+
+
+ // "menu.section.pin": "Pin sidebar",
+ "menu.section.pin": "Закріпити бічне меню",
+
+ // "menu.section.unpin": "Unpin sidebar",
+ "menu.section.unpin": "Відкріпити бічне меню",
+
+
+
+ // "menu.section.processes": "Processes",
+ "menu.section.processes": "Процеси",
+
+
+
+ // "menu.section.registries": "Registries",
+ "menu.section.registries": "Реєстри",
+
+ // "menu.section.registries_format": "Format",
+ "menu.section.registries_format": "Формати",
+
+ // "menu.section.registries_metadata": "Metadata",
+ "menu.section.registries_metadata": "Метадані",
+
+
+
+ // "menu.section.statistics": "Statistics",
+ "menu.section.statistics": "Статистика",
+
+ // "menu.section.statistics_task": "Statistics Task",
+ "menu.section.statistics_task": "Завдання статистики",
+
+
+
+ // "menu.section.toggle.access_control": "Toggle Access Control section",
+ "menu.section.toggle.access_control": "Переключити розділ контролю доступу",
+
+ // "menu.section.toggle.control_panel": "Toggle Control Panel section",
+ "menu.section.toggle.control_panel": "Переключити панель контролю доступу",
+
+ // "menu.section.toggle.curation_task": "Toggle Curation Task section",
+ "menu.section.toggle.curation_task": "Переключити розділ завдань",
+
+ // "menu.section.toggle.edit": "Toggle Edit section",
+ "menu.section.toggle.edit": "Переключити розділ редагування",
+
+ // "menu.section.toggle.export": "Toggle Export section",
+ "menu.section.toggle.export": "Переключити розділ експорту",
+
+ // "menu.section.toggle.find": "Toggle Find section",
+ "menu.section.toggle.find": "Переключити розділ пошуку",
+
+ // "menu.section.toggle.import": "Toggle Import section",
+ "menu.section.toggle.import": "Переключити розділ імпорту",
+
+ // "menu.section.toggle.new": "Toggle New section",
+ "menu.section.toggle.new": "Переключити новий розділ",
+
+ // "menu.section.toggle.registries": "Toggle Registries section",
+ "menu.section.toggle.registries": "Переключити розділ реєстрів",
+
+ // "menu.section.toggle.statistics_task": "Toggle Statistics Task section",
+ "menu.section.toggle.statistics_task": "Переключити розділ статистики",
+
+
+ // "menu.section.workflow": "Administer Workflow",
+
+ "menu.section.workflow": "Керування процесу подачі документа",
+
+
+ // "mydspace.description": "",
+ "mydspace.description": "",
+
+ // "mydspace.general.text-here": "here",
+
+ "mydspace.general.text-here": "тут",
+
+ // "mydspace.messages.controller-help": "Select this option to send a message to item's submitter.",
+ "mydspace.messages.controller-help": "Виберіть цей параметр, щоб надіслати повідомлення відправнику елемента.",
+
+ // "mydspace.messages.description-placeholder": "Insert your message here...",
+ "mydspace.messages.description-placeholder": "Введіть своє повідомлення ...",
+
+ // "mydspace.messages.hide-msg": "Hide message",
+ "mydspace.messages.hide-msg": "Приховати повідомлення",
+
+ // "mydspace.messages.mark-as-read": "Mark as read",
+ "mydspace.messages.mark-as-read": "Позначити як прочитане",
+
+ // "mydspace.messages.mark-as-unread": "Mark as unread",
+ "mydspace.messages.mark-as-unread": "Позначти як непрочитане",
+
+ // "mydspace.messages.no-content": "No content.",
+ "mydspace.messages.no-content": "Нема змісту.",
+
+ // "mydspace.messages.no-messages": "No messages yet.",
+ "mydspace.messages.no-messages": "Повідомлень немає.",
+
+ // "mydspace.messages.send-btn": "Send",
+ "mydspace.messages.send-btn": "Надіслати",
+
+ // "mydspace.messages.show-msg": "Show message",
+ "mydspace.messages.show-msg": "Показати повідомлення",
+
+ // "mydspace.messages.subject-placeholder": "Subject...",
+ "mydspace.messages.subject-placeholder": "Тема...",
+
+ // "mydspace.messages.submitter-help": "Select this option to send a message to controller.",
+ "mydspace.messages.submitter-help": "Виберіть цю опцію, щоб надіслати повідомлення на перевірку.",
+
+ // "mydspace.messages.title": "Messages",
+ "mydspace.messages.title": "Повідомлення",
+
+ // "mydspace.messages.to": "To",
+ "mydspace.messages.to": "До",
+
+ // "mydspace.new-submission": "New submission",
+ "mydspace.new-submission": "Надійшли нові документи",
+
+ // "mydspace.new-submission-external": "Import metadata from external source",
+
+ "mydspace.new-submission-external": "Імпортувати метадані зі зовнішнього джерела",
+
+ // "mydspace.new-submission-external-short": "Import metadata",
+
+ "mydspace.new-submission-external-short": "Імпортувати метадані",
+
+ // "mydspace.results.head": "Your submissions",
+ "mydspace.results.head": "Ваші відправлені документи",
+
+ // "mydspace.results.no-abstract": "No Abstract",
+ "mydspace.results.no-abstract": "Анотація відсутня",
+
+ // "mydspace.results.no-authors": "No Authors",
+ "mydspace.results.no-authors": "Автори відсутні",
+
+ // "mydspace.results.no-collections": "No Collections",
+ "mydspace.results.no-collections": "Відсутні зібрання",
+
+ // "mydspace.results.no-date": "No Date",
+ "mydspace.results.no-date": "Відсутня дата",
+
+ // "mydspace.results.no-files": "No Files",
+ "mydspace.results.no-files": "Відсутні файли",
+
+ // "mydspace.results.no-results": "There were no items to show",
+ "mydspace.results.no-results": "Документів не знайдено",
+
+ // "mydspace.results.no-title": "No title",
+ "mydspace.results.no-title": "Назва відсутня",
+
+ // "mydspace.results.no-uri": "No Uri",
+ "mydspace.results.no-uri": "Відсутнє покликання",
+
+ // "mydspace.show.workflow": "All tasks",
+ "mydspace.show.workflow": "Всі завдання",
+
+ // "mydspace.show.workspace": "Your Submissions",
+ "mydspace.show.workspace": "Ваші надіслані документи ",
+
+ // "mydspace.status.archived": "Archived",
+ "mydspace.status.archived": "Заархівовані",
+
+ // "mydspace.status.validation": "Validation",
+ "mydspace.status.validation": "Перевірка",
+
+ // "mydspace.status.waiting-for-controller": "Waiting for controller",
+ "mydspace.status.waiting-for-controller": "Чекаємо контролера",
+
+ // "mydspace.status.workflow": "Workflow",
+ "mydspace.status.workflow": "Робочий процес",
+
+ // "mydspace.status.workspace": "Workspace",
+ "mydspace.status.workspace": "Робоче середовище",
+
+ // "mydspace.title": "MyDSpace",
+ "mydspace.title": "Моє середовище",
+
+ // "mydspace.upload.upload-failed": "Error creating new workspace. Please verify the content uploaded before retry.",
+ "mydspace.upload.upload-failed": "Помилка створення нового робочого середовища. Перш ніж повторити спробу, перевірте завантажений вміст.",
+
+ // "mydspace.upload.upload-failed-manyentries": "Unprocessable file. Detected too many entries but allowed only one for file.",
+
+ "mydspace.upload.upload-failed-manyentries": "Файл неможливо опрацювати. Виявлено забагато звернень, але дозволено лише одне для файлу..",
+
+ // "mydspace.upload.upload-failed-moreonefile": "Unprocessable request. Only one file is allowed.",
+
+ "mydspace.upload.upload-failed-moreonefile": "Запит неможливо працювати. Дозволений тільки один файл",
+
+ // "mydspace.upload.upload-multiple-successful": "{{qty}} new workspace items created.",
+ "mydspace.upload.upload-multiple-successful": "{{qty}} нових робочих середовищ створено.",
+
+ // "mydspace.upload.upload-successful": "New workspace item created. Click {{here}} for edit it.",
+ "mydspace.upload.upload-successful": "Створено нове робоче середовище. Клацніть {{here}} для редагування.",
+
+ // "mydspace.view-btn": "View",
+ "mydspace.view-btn": "Перегляд",
+
+
+
+ // "nav.browse.header": "All of DSpace",
+ "nav.browse.header": "Пошук за критеріями",
+
+ // "nav.community-browse.header": "By Community",
+ "nav.community-browse.header": "У фонді",
+
+ // "nav.language": "Language switch",
+ "nav.language": "Змінити мову",
+
+ // "nav.login": "Log In",
+ "nav.login": "Увійти",
+
+ // "nav.logout": "Log Out",
+ "nav.logout": "Вийти",
+
+ // "nav.mydspace": "MyDSpace",
+ "nav.mydspace": "Моє середовище",
+
+ // "nav.profile": "Profile",
+ "nav.profile": "Профіль",
+
+ // "nav.search": "Search",
+ "nav.search": "Пошук",
+
+ // "nav.statistics.header": "Statistics",
+ "nav.statistics.header": "Статистика",
+
+ // "nav.stop-impersonating": "Stop impersonating EPerson",
+
+ "nav.stop-impersonating": "Припиніть видавати себе за користувача",
+
+
+
+ // "orgunit.listelement.badge": "Organizational Unit",
+ "orgunit.listelement.badge": "Організаціна одиниця",
+
+ // "orgunit.page.city": "City",
+ "orgunit.page.city": "Місто",
+
+ // "orgunit.page.country": "Country",
+ "orgunit.page.country": "Країна",
+
+ // "orgunit.page.dateestablished": "Date established",
+ "orgunit.page.dateestablished": "Дата встановлення",
+
+ // "orgunit.page.description": "Description",
+ "orgunit.page.description": "Опис",
+
+ // "orgunit.page.edit": "Edit this item",
+
+ "orgunit.page.edit": "Редагувати цей документ",
+
+ // "orgunit.page.id": "ID",
+ "orgunit.page.id": "ID",
+
+ // "orgunit.page.titleprefix": "Organizational Unit: ",
+ "orgunit.page.titleprefix": "Організаціна одиниця: ",
+
+
+
+ // "pagination.results-per-page": "Results Per Page",
+ "pagination.results-per-page": "Результатів на сторінці",
+
+ // "pagination.showing.detail": "{{ range }} of {{ total }}",
+ "pagination.showing.detail": "{{ range }} з {{ total }}",
+
+ // "pagination.showing.label": "Now showing ",
+ "pagination.showing.label": "Зараз показуємо ",
+
+ // "pagination.sort-direction": "Sort Options",
+ "pagination.sort-direction": "Налаштування сортування",
+
+
+
+ // "person.listelement.badge": "Person",
+ "person.listelement.badge": "Користувач",
+
+ // "person.listelement.no-title": "No name found",
+
+ "person.listelement.no-title": "Ім'я не знайдено",
+
+ // "person.page.birthdate": "Birth Date",
+ "person.page.birthdate": "Дата народження",
+
+ // "person.page.edit": "Edit this item",
+
+ "person.page.edit": "Редагувати документ",
+
+ // "person.page.email": "Email Address",
+ "person.page.email": "Email",
+
+ // "person.page.firstname": "First Name",
+ "person.page.firstname": "Ім'я",
+
+ // "person.page.jobtitle": "Job Title",
+ "person.page.jobtitle": "Посада",
+
+ // "person.page.lastname": "Last Name",
+ "person.page.lastname": "Прізвище",
+
+ // "person.page.link.full": "Show all metadata",
+ "person.page.link.full": "Показати всі метадані",
+
+ // "person.page.orcid": "ORCID",
+ "person.page.orcid": "ORCID",
+
+ // "person.page.staffid": "Staff ID",
+ "person.page.staffid": "Персональний ID",
+
+ // "person.page.titleprefix": "Person: ",
+ "person.page.titleprefix": "Користувач: ",
+
+ // "person.search.results.head": "Person Search Results",
+ "person.search.results.head": "Результати пошуку користувача",
+
+ // "person.search.title": "DSpace Angular :: Person Search",
+ "person.search.title": "Репозиторій :: Користувацький пошук",
+
+
+
+ // "process.new.select-parameters": "Parameters",
+ "process.new.select-parameters": "Параметри",
+
+ // "process.new.cancel": "Cancel",
+ "process.new.cancel": "Відмінити",
+
+ // "process.new.submit": "Submit",
+ "process.new.submit": "Надіслати",
+
+ // "process.new.select-script": "Script",
+ "process.new.select-script": "Скрипт",
+
+ // "process.new.select-script.placeholder": "Choose a script...",
+ "process.new.select-script.placeholder": "Виберіть скрипт...",
+
+ // "process.new.select-script.required": "Script is required",
+ "process.new.select-script.required": "Потрібно вибрати скрипт",
+
+ // "process.new.parameter.file.upload-button": "Select file...",
+ "process.new.parameter.file.upload-button": "Виберіть файл...",
+
+ // "process.new.parameter.file.required": "Please select a file",
+ "process.new.parameter.file.required": "Виберіть файл",
+
+ // "process.new.parameter.string.required": "Parameter value is required",
+ "process.new.parameter.string.required": "Цей параметр є обв'язковим",
+
+ // "process.new.parameter.type.value": "value",
+ "process.new.parameter.type.value": "значення",
+
+ // "process.new.parameter.type.file": "file",
+ "process.new.parameter.type.file": "файл",
+
+ // "process.new.parameter.required.missing": "The following parameters are required but still missing:",
+ "process.new.parameter.required.missing": "Наступні параметри є обов’язковими, але все ще відсутні:",
+
+ // "process.new.notification.success.title": "Success",
+ "process.new.notification.success.title": "Успіх",
+
+ // "process.new.notification.success.content": "The process was successfully created",
+ "process.new.notification.success.content": "Процес успішно запущено",
+
+ // "process.new.notification.error.title": "Error",
+ "process.new.notification.error.title": "Виникла якась помилка, бодай би вона скисла",
+
+ // "process.new.notification.error.content": "An error occurred while creating this process",
+ "process.new.notification.error.content": "Виникла помилка при створенні процесу",
+
+ // "process.new.header": "Create a new process",
+ "process.new.header": "Створити новий процес",
+
+ // "process.new.title": "Create a new process",
+ "process.new.title": "Створити новий процес",
+
+ // "process.new.breadcrumbs": "Create a new process",
+ "process.new.breadcrumbs": "Створити новий процес",
+
+
+
+ // "process.detail.arguments" : "Arguments",
+ "process.detail.arguments" : "Аргументи",
+
+ // "process.detail.arguments.empty" : "This process doesn't contain any arguments",
+ "process.detail.arguments.empty" : "Процес не містить жодних аргументів",
+
+ // "process.detail.back" : "Back",
+ "process.detail.back" : "Повернутись",
+
+ // "process.detail.output" : "Process Output",
+ "process.detail.output" : "Прооцес завершено",
+
+ // "process.detail.logs.button": "Retrieve process output",
+ "process.detail.logs.button": "Отримати вихідні дані процесу",
+
+ // "process.detail.logs.loading": "Retrieving",
+ "process.detail.logs.loading": "Отримання",
+
+ // "process.detail.logs.none": "This process has no output",
+ "process.detail.logs.none": "Процес не генерує вихідних даних",
+
+ // "process.detail.output-files" : "Output Files",
+ "process.detail.output-files" : "Вихідні файли",
+
+ // "process.detail.output-files.empty" : "This process doesn't contain any output files",
+ "process.detail.output-files.empty" : "Процес не містить жодних вихдних файлів",
+
+ // "process.detail.script" : "Script",
+ "process.detail.script" : "Скрипт",
+
+ // "process.detail.title" : "Process: {{ id }} - {{ name }}",
+ "process.detail.title" : "Процеси: {{ id }} - {{ name }}",
+
+ // "process.detail.start-time" : "Start time",
+ "process.detail.start-time" : "Дата старту",
+
+ // "process.detail.end-time" : "Finish time",
+ "process.detail.end-time" : "Дата завершення",
+
+ // "process.detail.status" : "Status",
+ "process.detail.status" : "Статус",
+
+ // "process.detail.create" : "Create similar process",
+ "process.detail.create" : "Створіть аналогічний процес",
+
+
+
+ // "process.overview.table.finish" : "Finish time",
+ "process.overview.table.finish" : "Дата завершення",
+
+ // "process.overview.table.id" : "Process ID",
+ "process.overview.table.id" : "ID процесу",
+
+ // "process.overview.table.name" : "Name",
+ "process.overview.table.name" : "Назва",
+
+ // "process.overview.table.start" : "Start time",
+ "process.overview.table.start" : "Дата старту",
+
+ // "process.overview.table.status" : "Status",
+ "process.overview.table.status" : "Статус",
+
+ // "process.overview.table.user" : "User",
+ "process.overview.table.user" : "Користувач",
+
+ // "process.overview.title": "Processes Overview",
+ "process.overview.title": "Огляд процесів",
+
+ // "process.overview.breadcrumbs": "Processes Overview",
+ "process.overview.breadcrumbs": "Огляд процесів",
+
+ // "process.overview.new": "New",
+ "process.overview.new": "Новий",
+
+
+ // "profile.breadcrumbs": "Update Profile",
+ "profile.breadcrumbs": "Оновити профіль",
+
+ // "profile.card.identify": "Identify",
+ "profile.card.identify": "Ідентифікувати",
+
+ // "profile.card.security": "Security",
+ "profile.card.security": "Безпека",
+
+ // "profile.form.submit": "Update Profile",
+ "profile.form.submit": "Оновити профіль",
+
+ // "profile.groups.head": "Authorization groups you belong to",
+ "profile.groups.head": "Групи до яких Ви належите",
+
+ // "profile.head": "Update Profile",
+ "profile.head": "Оновити профіль",
+
+ // "profile.metadata.form.error.firstname.required": "First Name is required",
+ "profile.metadata.form.error.firstname.required": "Ім'я є обов'язковим полем",
+
+ // "profile.metadata.form.error.lastname.required": "Last Name is required",
+ "profile.metadata.form.error.lastname.required": "Прізвище є обов'язковим полем",
+
+ // "profile.metadata.form.label.email": "Email Address",
+ "profile.metadata.form.label.email": "Email",
+
+ // "profile.metadata.form.label.firstname": "First Name",
+ "profile.metadata.form.label.firstname": "Ім'я",
+
+ // "profile.metadata.form.label.language": "Language",
+ "profile.metadata.form.label.language": "Мова",
+
+ // "profile.metadata.form.label.lastname": "Last Name",
+ "profile.metadata.form.label.lastname": "Прізвище",
+
+ // "profile.metadata.form.label.phone": "Contact Telephone",
+ "profile.metadata.form.label.phone": "Номер телефону",
+
+ // "profile.metadata.form.notifications.success.content": "Your changes to the profile were saved.",
+ "profile.metadata.form.notifications.success.content": "Зміни до профілю збережені.",
+
+ // "profile.metadata.form.notifications.success.title": "Profile saved",
+ "profile.metadata.form.notifications.success.title": "Профіль збережено",
+
+ // "profile.notifications.warning.no-changes.content": "No changes were made to the Profile.",
+ "profile.notifications.warning.no-changes.content": "Не було змін до профілю.",
+
+ // "profile.notifications.warning.no-changes.title": "No changes",
+ "profile.notifications.warning.no-changes.title": "Без змін",
+
+ // "profile.security.form.error.matching-passwords": "The passwords do not match.",
+ "profile.security.form.error.matching-passwords": "Паролі не співпадають.",
+
+ // "profile.security.form.error.password-length": "The password should be at least 6 characters long.",
+ "profile.security.form.error.password-length": "Довжина пароля повинна становити не менше 6 символів.",
+
+ // "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": "За бажанням ви можете ввести новий пароль у поле нижче та підтвердити його, ввівши його ще раз у друге поле. Він має містити щонайменше шість символів.",
+
+ // "profile.security.form.label.password": "Password",
+ "profile.security.form.label.password": "Пароль",
+
+ // "profile.security.form.label.passwordrepeat": "Retype to confirm",
+ "profile.security.form.label.passwordrepeat": "Повторіть",
+
+ // "profile.security.form.notifications.success.content": "Your changes to the password were saved.",
+ "profile.security.form.notifications.success.content": "Зміни до паролю збережені.",
+
+ // "profile.security.form.notifications.success.title": "Password saved",
+ "profile.security.form.notifications.success.title": "Пароль збережено",
+
+ // "profile.security.form.notifications.error.title": "Error changing passwords",
+ "profile.security.form.notifications.error.title": "Помилка зміни пароля",
+
+ // "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": "Пароль повинен містити щонайменше 6 символів.",
+
+ // "profile.security.form.notifications.error.not-same": "The provided passwords are not the same.",
+ "profile.security.form.notifications.error.not-same": "Паролі не співпадають.",
+
+ // "profile.title": "Update Profile",
+ "profile.title": "Оновити профіль",
+
+
+
+ // "project.listelement.badge": "Research Project",
+ "project.listelement.badge": "Дослідницький проект",
+
+ // "project.page.contributor": "Contributors",
+ "project.page.contributor": "Дописувачі",
+
+ // "project.page.description": "Description",
+ "project.page.description": "Опис",
+
+ // "project.page.edit": "Edit this item",
+
+ "project.page.edit": "Редагувати документ",
+
+ // "project.page.expectedcompletion": "Expected Completion",
+ "project.page.expectedcompletion": "Очікуване завершеня",
+
+ // "project.page.funder": "Funders",
+ "project.page.funder": "Фундатори",
+
+ // "project.page.id": "ID",
+ "project.page.id": "ID",
+
+ // "project.page.keyword": "Keywords",
+ "project.page.keyword": "Ключові слова",
+
+ // "project.page.status": "Status",
+ "project.page.status": "Статус",
+
+ // "project.page.titleprefix": "Research Project: ",
+ "project.page.titleprefix": "Досліницький проект: ",
+
+ // "project.search.results.head": "Project Search Results",
+ "project.search.results.head": "Результати пошуку за проектом",
+
+
+
+ // "publication.listelement.badge": "Publication",
+ "publication.listelement.badge": "Публікація",
+
+ // "publication.page.description": "Description",
+ "publication.page.description": "Опис",
+
+ // "publication.page.edit": "Edit this item",
+ "publication.page.edit": "Редагувати документ",
+
+ // "publication.page.journal-issn": "Journal ISSN",
+ "publication.page.journal-issn": "ISSN",
+
+ // "publication.page.journal-title": "Journal Title",
+ "publication.page.journal-title": "Назва видання",
+
+ // "publication.page.publisher": "Publisher",
+ "publication.page.publisher": "Видання",
+
+ // "publication.page.titleprefix": "Publication: ",
+ "publication.page.titleprefix": "Публікація: ",
+
+ // "publication.page.volume-title": "Volume Title",
+ "publication.page.volume-title": "Назва тому",
+
+ // "publication.search.results.head": "Publication Search Results",
+ "publication.search.results.head": "Результати пошуку",
+
+ // "publication.search.title": "DSpace Angular :: Publication Search",
+ "publication.search.title": "Репозиторій :: пощук публікацій",
+
+
+ // "register-email.title": "New user registration",
+ "register-email.title": "Реєстрація нового користувача",
+
+ // "register-page.create-profile.header": "Create Profile",
+ "register-page.create-profile.header": "Створити профіль",
+
+ // "register-page.create-profile.identification.header": "Identify",
+ "register-page.create-profile.identification.header": "Ідентифікувати",
+
+ // "register-page.create-profile.identification.email": "Email Address",
+ "register-page.create-profile.identification.email": "Email",
+
+ // "register-page.create-profile.identification.first-name": "First Name *",
+ "register-page.create-profile.identification.first-name": "Ім'я *",
+
+ // "register-page.create-profile.identification.first-name.error": "Please fill in a First Name",
+ "register-page.create-profile.identification.first-name.error": "Заповніть поле імені",
+
+ // "register-page.create-profile.identification.last-name": "Last Name *",
+
+ "register-page.create-profile.identification.last-name": "Прізвище *",
+
+ // "register-page.create-profile.identification.last-name.error": "Please fill in a Last Name",
+
+ "register-page.create-profile.identification.last-name.error": "Заповніть поле прізвища",
+
+ // "register-page.create-profile.identification.contact": "Contact Telephone",
+
+ "register-page.create-profile.identification.contact": "Номер телефону",
+
+ // "register-page.create-profile.identification.language": "Language",
+
+ "register-page.create-profile.identification.language": "Мова",
+
+ // "register-page.create-profile.security.header": "Security",
+
+ "register-page.create-profile.security.header": "Безпека",
+
+ // "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": "Будь ласка, введіть пароль у поле нижче та підтвердьте його, ввівши його ще раз у друге поле. Він має містити щонайменше шість символів.",
+
+ // "register-page.create-profile.security.label.password": "Password *",
+
+ "register-page.create-profile.security.label.password": "Пароль *",
+
+ // "register-page.create-profile.security.label.passwordrepeat": "Retype to confirm *",
+
+ "register-page.create-profile.security.label.passwordrepeat": "Повторіть для ідтвердження *",
+
+ // "register-page.create-profile.security.error.empty-password": "Please enter a password in the box below.",
+
+ "register-page.create-profile.security.error.empty-password": "Введіть пароль у поле нижче.",
+
+ // "register-page.create-profile.security.error.matching-passwords": "The passwords do not match.",
+
+ "register-page.create-profile.security.error.matching-passwords": "Паролі не співпадають.",
+
+ // "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": "Довжина пароля повинна бути не менше 6 символів.",
+
+ // "register-page.create-profile.submit": "Complete Registration",
+
+ "register-page.create-profile.submit": "Повна реєстрація",
+
+ // "register-page.create-profile.submit.error.content": "Something went wrong while registering a new user.",
+
+ "register-page.create-profile.submit.error.content": "Щось пішло не так при реєстрації нового користувача.",
+
+ // "register-page.create-profile.submit.error.head": "Registration failed",
+
+ "register-page.create-profile.submit.error.head": "Реєстрація не вдалась",
+
+ // "register-page.create-profile.submit.success.content": "The registration was successful. You have been logged in as the created user.",
+
+ "register-page.create-profile.submit.success.content": "Реєстрація пройшла успішно. Ви увійшли як новий користувач.",
+
+ // "register-page.create-profile.submit.success.head": "Registration completed",
+
+ "register-page.create-profile.submit.success.head": "Реєстрацію завершено",
+
+
+ // "register-page.registration.header": "New user registration",
+
+ "register-page.registration.header": "Реєстрація нового користувача",
+
+ // "register-page.registration.info": "Register an account to subscribe to collections for email updates, and submit new items to DSpace.",
+
+ "register-page.registration.info": "Зареєструйтесь для отримання сповіщень про нові надходження та отримайте можливіть надсилати нові документи у репозиторій.",
+
+ // "register-page.registration.email": "Email Address *",
+
+ "register-page.registration.email": "Email *",
+
+ // "register-page.registration.email.error.required": "Please fill in an email address",
+
+ "register-page.registration.email.error.required": "Заповніть поле email",
+
+ // "register-page.registration.email.error.pattern": "Please fill in a valid email address",
+
+ "register-page.registration.email.error.pattern": "Введіть правильну емейл адресу",
+
+ // "register-page.registration.email.hint": "This address will be verified and used as your login name.",
+
+ "register-page.registration.email.hint": "Використовуйие цю адресу щоб увійти у репозиторій. Але перед тим вона буде перевірена",
+
+ // "register-page.registration.submit": "Register",
+
+ "register-page.registration.submit": "Реєстрація",
+
+ // "register-page.registration.success.head": "Verification email sent",
+
+ "register-page.registration.success.head": "email для підтвердження Вам надіслано",
+
+ // "register-page.registration.success.content": "An email has been sent to {{ email }} containing a special URL and further instructions.",
+
+ "register-page.registration.success.content": "email для підтвердження Вам надіслано на вказану скриньку {{ email }}. Там Ви знайдете покликання для підтвердження адреми та подальші кроки.",
+
+ // "register-page.registration.error.head": "Error when trying to register email",
+
+ "register-page.registration.error.head": "Виникла помилка при реєстрації email",
+
+ // "register-page.registration.error.content": "An error occured when registering the following email address: {{ email }}",
+
+ "register-page.registration.error.content": "Виникла помилка при реєстрації email: {{ email }}",
+
+
+
+ // "relationships.add.error.relationship-type.content": "No suitable match could be found for relationship type {{ type }} between the two items",
+ // TODO New key - Add a translation
+ "relationships.add.error.relationship-type.content": "Не вдалося знайти відповідний тип відносин {{ type }} між двома документами",
+
+ // "relationships.add.error.server.content": "The server returned an error",
+
+ "relationships.add.error.server.content": "Сервер повідомив про помилку",
+
+ // "relationships.add.error.title": "Unable to add relationship",
+
+ "relationships.add.error.title": "Неможливо додати зв'язок",
+
+ // "relationships.isAuthorOf": "Authors",
+ "relationships.isAuthorOf": "Автори",
+
+ // "relationships.isAuthorOf.Person": "Authors (persons)",
+
+ "relationships.isAuthorOf.Person": "Автори",
+
+ // "relationships.isAuthorOf.OrgUnit": "Authors (organizational units)",
+
+ "relationships.isAuthorOf.OrgUnit": "Автори (структурна одиниця, наприклад університет)",
+
+ // "relationships.isIssueOf": "Journal Issues",
+ "relationships.isIssueOf": "Випуски видання",
+
+ // "relationships.isJournalIssueOf": "Journal Issue",
+ "relationships.isJournalIssueOf": "Випуск видання",
+
+ // "relationships.isJournalOf": "Journals",
+ "relationships.isJournalOf": "Видання",
+
+ // "relationships.isOrgUnitOf": "Organizational Units",
+ "relationships.isOrgUnitOf": "Структурні одиниці",
+
+ // "relationships.isPersonOf": "Authors",
+ "relationships.isPersonOf": "Автори",
+
+ // "relationships.isProjectOf": "Research Projects",
+ "relationships.isProjectOf": "Дослідницькі проекти",
+
+ // "relationships.isPublicationOf": "Publications",
+ "relationships.isPublicationOf": "Публікації",
+
+ // "relationships.isPublicationOfJournalIssue": "Articles",
+ "relationships.isPublicationOfJournalIssue": "Публікації",
+
+ // "relationships.isSingleJournalOf": "Journal",
+ "relationships.isSingleJournalOf": "Видання",
+
+ // "relationships.isSingleVolumeOf": "Journal Volume",
+ "relationships.isSingleVolumeOf": "Том видання",
+
+ // "relationships.isVolumeOf": "Journal Volumes",
+ "relationships.isVolumeOf": "Томи видання",
+
+ // "relationships.isContributorOf": "Contributors",
+ "relationships.isContributorOf": "Дописувачі",
+
+
+
+ // "resource-policies.add.button": "Add",
+
+ "resource-policies.add.button": "Додати",
+
+ // "resource-policies.add.for.": "Add a new policy",
+
+ "resource-policies.add.for.": "Додати нову політику",
+
+ // "resource-policies.add.for.bitstream": "Add a new Bitstream policy",
+
+ "resource-policies.add.for.bitstream": "Додати нову політику для файлу",
+
+ // "resource-policies.add.for.bundle": "Add a new Bundle policy",
+
+ "resource-policies.add.for.bundle": "AДодати нову політику для контейнеру файлів",
+
+ // "resource-policies.add.for.item": "Add a new Item policy",
+
+ "resource-policies.add.for.item": "Додати нову політику для документа",
+
+ // "resource-policies.add.for.community": "Add a new Community policy",
+
+ "resource-policies.add.for.community": "Додати нову політику для фонду",
+
+ // "resource-policies.add.for.collection": "Add a new Collection policy",
+
+ "resource-policies.add.for.collection": "Додати нову політику для зібрання",
+
+ // "resource-policies.create.page.heading": "Create new resource policy for ",
+
+ "resource-policies.create.page.heading": "Створити нову ресурсну політику для ",
+
+ // "resource-policies.create.page.failure.content": "An error occurred while creating the resource policy.",
+
+ "resource-policies.create.page.failure.content": "Виникла помилка при створенні ресурсної політики.",
+
+ // "resource-policies.create.page.success.content": "Operation successful",
+
+ "resource-policies.create.page.success.content": "Операція пройшла успішно",
+
+ // "resource-policies.create.page.title": "Create new resource policy",
+
+ "resource-policies.create.page.title": "Створити нову ресурсну політику",
+
+ // "resource-policies.delete.btn": "Delete selected",
+
+ "resource-policies.delete.btn": "Видалити вибране",
+
+ // "resource-policies.delete.btn.title": "Delete selected resource policies",
+
+ "resource-policies.delete.btn.title": "Видалити вибрані ресурсні політики",
+
+ // "resource-policies.delete.failure.content": "An error occurred while deleting selected resource policies.",
+
+ "resource-policies.delete.failure.content": "Виникла помилка при видаленні вибраних ресурсних політик.",
+
+ // "resource-policies.delete.success.content": "Операція пройшла успішно",
+
+ "resource-policies.delete.success.content": "Операція пройшла успішно",
+
+ // "resource-policies.edit.page.heading": "Edit resource policy ",
+
+ "resource-policies.edit.page.heading": "Редагувати ресурсну політику ",
+
+ // "resource-policies.edit.page.failure.content": "An error occurred while editing the resource policy.",
+
+ "resource-policies.edit.page.failure.content": "Виникла помилка при редагуванні ресурсної політики.",
+
+ // "resource-policies.edit.page.success.content": "Operation successful",
+
+ "resource-policies.edit.page.success.content": "Операція пройшла успішно",
+
+ // "resource-policies.edit.page.title": "Edit resource policy",
+
+ "resource-policies.edit.page.title": "Редагувати ресурсну політику",
+
+ // "resource-policies.form.action-type.label": "Select the action type",
+
+ "resource-policies.form.action-type.label": "Виберіть тип дії",
+
+ // "resource-policies.form.action-type.required": "You must select the resource policy action.",
+
+ "resource-policies.form.action-type.required": "Ви повинні вибрати дію політики ресурсів.",
+
+ // "resource-policies.form.eperson-group-list.label": "The eperson or group that will be granted the permission",
+
+ "resource-policies.form.eperson-group-list.label": "Особа чи група, якій буде надано дозвіл",
+
+ // "resource-policies.form.eperson-group-list.select.btn": "Select",
+
+ "resource-policies.form.eperson-group-list.select.btn": "Вибрати",
+
+ // "resource-policies.form.eperson-group-list.tab.eperson": "Search for a ePerson",
+
+ "resource-policies.form.eperson-group-list.tab.eperson": "Вибрати користувача",
+
+ // "resource-policies.form.eperson-group-list.tab.group": "Search for a group",
+
+ "resource-policies.form.eperson-group-list.tab.group": "Шукати групу",
+
+ // "resource-policies.form.eperson-group-list.table.headers.action": "Action",
+
+ "resource-policies.form.eperson-group-list.table.headers.action": "Дія",
+
+ // "resource-policies.form.eperson-group-list.table.headers.id": "ID",
+ // TODO New key - Add a translation
+ "resource-policies.form.eperson-group-list.table.headers.id": "ID",
+
+ // "resource-policies.form.eperson-group-list.table.headers.name": "Name",
+
+ "resource-policies.form.eperson-group-list.table.headers.name": "Назва",
+
+ // "resource-policies.form.date.end.label": "End Date",
+
+ "resource-policies.form.date.end.label": "Кінцева дата",
+
+ // "resource-policies.form.date.start.label": "Start Date",
+
+ "resource-policies.form.date.start.label": "Дата початку",
+
+ // "resource-policies.form.description.label": "Description",
+
+ "resource-policies.form.description.label": "Опис",
+
+ // "resource-policies.form.name.label": "Name",
+
+ "resource-policies.form.name.label": "Назва",
+
+ // "resource-policies.form.policy-type.label": "Select the policy type",
+
+ "resource-policies.form.policy-type.label": "Виберіть тип політики",
+
+ // "resource-policies.form.policy-type.required": "You must select the resource policy type.",
+
+ "resource-policies.form.policy-type.required": "Спочатку ви повинні вибрати тип політики ресурсів.",
+
+ // "resource-policies.table.headers.action": "Action",
+
+ "resource-policies.table.headers.action": "Дія",
+
+ // "resource-policies.table.headers.date.end": "End Date",
+
+ "resource-policies.table.headers.date.end": "Кінцева дата",
+
+ // "resource-policies.table.headers.date.start": "Start Date",
+
+ "resource-policies.table.headers.date.start": "Дата початку",
+
+ // "resource-policies.table.headers.edit": "Edit",
+
+ "resource-policies.table.headers.edit": "Редагувати",
+
+ // "resource-policies.table.headers.edit.group": "Edit group",
+
+ "resource-policies.table.headers.edit.group": "Редагувати групу",
+
+ // "resource-policies.table.headers.edit.policy": "Edit policy",
+
+ "resource-policies.table.headers.edit.policy": "Редагувати політику",
+
+ // "resource-policies.table.headers.eperson": "EPerson",
+
+ "resource-policies.table.headers.eperson": "Користувач",
+
+ // "resource-policies.table.headers.group": "Group",
+
+ "resource-policies.table.headers.group": "Група",
+
+ // "resource-policies.table.headers.id": "ID",
+
+ "resource-policies.table.headers.id": "ID",
+
+ // "resource-policies.table.headers.name": "Name",
+
+ "resource-policies.table.headers.name": "Назва",
+
+ // "resource-policies.table.headers.policyType": "type",
+
+ "resource-policies.table.headers.policyType": "Тип",
+
+ // "resource-policies.table.headers.title.for.bitstream": "Policies for Bitstream",
+
+ "resource-policies.table.headers.title.for.bitstream": "Політики для файла",
+
+ // "resource-policies.table.headers.title.for.bundle": "Policies for Bundle",
+
+ "resource-policies.table.headers.title.for.bundle": "Політики для контейнера файлів",
+
+ // "resource-policies.table.headers.title.for.item": "Policies for Item",
+
+ "resource-policies.table.headers.title.for.item": "Політики для документа",
+
+ // "resource-policies.table.headers.title.for.community": "Policies for Community",
+
+ "resource-policies.table.headers.title.for.community": "Політики для фонду",
+
+ // "resource-policies.table.headers.title.for.collection": "Policies for Collection",
+
+ "resource-policies.table.headers.title.for.collection": "Політики для зібрання",
+
+
+
+ // "search.description": "",
+ "search.description": "",
+
+ // "search.switch-configuration.title": "Show",
+ "search.switch-configuration.title": "Показати",
+
+ // "search.title": "DSpace Angular :: Search",
+ "search.title": "Репозиторій :: Пошук",
+
+ // "search.breadcrumbs": "Search",
+ "search.breadcrumbs": "Шукати",
+
+
+ // "search.filters.applied.f.author": "Author",
+ "search.filters.applied.f.author": "Автор",
+
+ // "search.filters.applied.f.dateIssued.max": "End date",
+ "search.filters.applied.f.dateIssued.max": "Кінцева дата",
+
+ // "search.filters.applied.f.dateIssued.min": "Start date",
+ "search.filters.applied.f.dateIssued.min": "Дата початку",
+
+ // "search.filters.applied.f.dateSubmitted": "Date submitted",
+ "search.filters.applied.f.dateSubmitted": "Дата надсилання",
+
+ // "search.filters.applied.f.discoverable": "Private",
+ "search.filters.applied.f.discoverable": "Закритий",
+
+ // "search.filters.applied.f.entityType": "Item Type",
+ "search.filters.applied.f.entityType": "Тип документа",
+
+ // "search.filters.applied.f.has_content_in_original_bundle": "Has files",
+ "search.filters.applied.f.has_content_in_original_bundle": "Містить файли",
+
+ // "search.filters.applied.f.itemtype": "Type",
+ "search.filters.applied.f.itemtype": "Тип",
+
+ // "search.filters.applied.f.namedresourcetype": "Status",
+ "search.filters.applied.f.namedresourcetype": "Статус",
+
+ // "search.filters.applied.f.subject": "Subject",
+ "search.filters.applied.f.subject": "Ключові слова",
+
+ // "search.filters.applied.f.submitter": "Submitter",
+ "search.filters.applied.f.submitter": "Надсилач",
+
+ // "search.filters.applied.f.jobTitle": "Job Title",
+ "search.filters.applied.f.jobTitle": "Посада",
+
+ // "search.filters.applied.f.birthDate.max": "End birth date",
+ "search.filters.applied.f.birthDate.max": "End birth date",
+
+ // "search.filters.applied.f.birthDate.min": "Start birth date",
+ "search.filters.applied.f.birthDate.min": "Start birth date",
+
+ // "search.filters.applied.f.withdrawn": "Withdrawn",
+ "search.filters.applied.f.withdrawn": "Вилучено",
+
+
+
+ // "search.filters.filter.author.head": "Author",
+ "search.filters.filter.author.head": "Автор",
+
+ // "search.filters.filter.author.placeholder": "Author name",
+ "search.filters.filter.author.placeholder": "Ім'я автора",
+
+ // "search.filters.filter.birthDate.head": "Birth Date",
+ "search.filters.filter.birthDate.head": "Дата народження",
+
+ // "search.filters.filter.birthDate.placeholder": "Birth Date",
+ "search.filters.filter.birthDate.placeholder": "Дата народження",
+
+ // "search.filters.filter.creativeDatePublished.head": "Date Published",
+ "search.filters.filter.creativeDatePublished.head": "Дата публікації",
+
+ // "search.filters.filter.creativeDatePublished.placeholder": "Date Published",
+ "search.filters.filter.creativeDatePublished.placeholder": "Дата публікації",
+
+ // "search.filters.filter.creativeWorkEditor.head": "Editor",
+ "search.filters.filter.creativeWorkEditor.head": "Редактор",
+
+ // "search.filters.filter.creativeWorkEditor.placeholder": "Editor",
+ "search.filters.filter.creativeWorkEditor.placeholder": "Редактор",
+
+ // "search.filters.filter.creativeWorkKeywords.head": "Subject",
+ "search.filters.filter.creativeWorkKeywords.head": "Ключові слова",
+
+ // "search.filters.filter.creativeWorkKeywords.placeholder": "Subject",
+ "search.filters.filter.creativeWorkKeywords.placeholder": "Ключові слова",
+
+ // "search.filters.filter.creativeWorkPublisher.head": "Publisher",
+ "search.filters.filter.creativeWorkPublisher.head": "Видавець",
+
+ // "search.filters.filter.creativeWorkPublisher.placeholder": "Publisher",
+ "search.filters.filter.creativeWorkPublisher.placeholder": "Видавець",
+
+ // "search.filters.filter.dateIssued.head": "Date",
+ "search.filters.filter.dateIssued.head": "Дата",
+
+ // "search.filters.filter.dateIssued.max.placeholder": "Minimum Date",
+ "search.filters.filter.dateIssued.max.placeholder": "Мінімальна дата",
+
+ // "search.filters.filter.dateIssued.min.placeholder": "Maximum Date",
+ "search.filters.filter.dateIssued.min.placeholder": "Максимальна дата",
+
+ // "search.filters.filter.dateSubmitted.head": "Date submitted",
+ "search.filters.filter.dateSubmitted.head": "Дата надсилання",
+
+ // "search.filters.filter.dateSubmitted.placeholder": "Date submitted",
+ "search.filters.filter.dateSubmitted.placeholder": "Дата надсилання",
+
+ // "search.filters.filter.discoverable.head": "Private",
+ "search.filters.filter.discoverable.head": "Закритий",
+
+ // "search.filters.filter.withdrawn.head": "Withdrawn",
+ "search.filters.filter.withdrawn.head": "Вилучено",
+
+ // "search.filters.filter.entityType.head": "Item Type",
+ "search.filters.filter.entityType.head": "Тип документа",
+
+ // "search.filters.filter.entityType.placeholder": "Item Type",
+ "search.filters.filter.entityType.placeholder": "Тип документа",
+
+ // "search.filters.filter.has_content_in_original_bundle.head": "Has files",
+ "search.filters.filter.has_content_in_original_bundle.head": "Містить файли",
+
+ // "search.filters.filter.itemtype.head": "Type",
+ "search.filters.filter.itemtype.head": "Тип",
+
+ // "search.filters.filter.itemtype.placeholder": "Type",
+ "search.filters.filter.itemtype.placeholder": "Тип",
+
+ // "search.filters.filter.jobTitle.head": "Job Title",
+ "search.filters.filter.jobTitle.head": "Посада",
+
+ // "search.filters.filter.jobTitle.placeholder": "Job Title",
+ "search.filters.filter.jobTitle.placeholder": "Посада",
+
+ // "search.filters.filter.knowsLanguage.head": "Known language",
+ "search.filters.filter.knowsLanguage.head": "Known language",
+
+ // "search.filters.filter.knowsLanguage.placeholder": "Known language",
+ "search.filters.filter.knowsLanguage.placeholder": "Known language",
+
+ // "search.filters.filter.namedresourcetype.head": "Status",
+ "search.filters.filter.namedresourcetype.head": "Статус",
+
+ // "search.filters.filter.namedresourcetype.placeholder": "Status",
+ "search.filters.filter.namedresourcetype.placeholder": "Статус",
+
+ // "search.filters.filter.objectpeople.head": "People",
+ "search.filters.filter.objectpeople.head": "Користувачі",
+
+ // "search.filters.filter.objectpeople.placeholder": "People",
+ "search.filters.filter.objectpeople.placeholder": "Користувачі",
+
+ // "search.filters.filter.organizationAddressCountry.head": "Country",
+ "search.filters.filter.organizationAddressCountry.head": "Країна",
+
+ // "search.filters.filter.organizationAddressCountry.placeholder": "Country",
+ "search.filters.filter.organizationAddressCountry.placeholder": "Країна",
+
+ // "search.filters.filter.organizationAddressLocality.head": "City",
+ "search.filters.filter.organizationAddressLocality.head": "Місто",
+
+ // "search.filters.filter.organizationAddressLocality.placeholder": "City",
+ "search.filters.filter.organizationAddressLocality.placeholder": "Місто",
+
+ // "search.filters.filter.organizationFoundingDate.head": "Date Founded",
+ "search.filters.filter.organizationFoundingDate.head": "Дата заснування",
+
+ // "search.filters.filter.organizationFoundingDate.placeholder": "Date Founded",
+ "search.filters.filter.organizationFoundingDate.placeholder": "Дата заснування",
+
+ // "search.filters.filter.scope.head": "Scope",
+ "search.filters.filter.scope.head": "Область застосування",
+
+ // "search.filters.filter.scope.placeholder": "Scope filter",
+ "search.filters.filter.scope.placeholder": "Фільтр області застосування",
+
+ // "search.filters.filter.show-less": "Collapse",
+ "search.filters.filter.show-less": "Згорнути",
+
+ // "search.filters.filter.show-more": "Show more",
+ "search.filters.filter.show-more": "Детальніше",
+
+ // "search.filters.filter.subject.head": "Subject",
+ "search.filters.filter.subject.head": "Ключові слова",
+
+ // "search.filters.filter.subject.placeholder": "Subject",
+ "search.filters.filter.subject.placeholder": "Ключові слова",
+
+ // "search.filters.filter.submitter.head": "Submitter",
+ "search.filters.filter.submitter.head": "Користувач, який надсилає",
+
+ // "search.filters.filter.submitter.placeholder": "Submitter",
+ "search.filters.filter.submitter.placeholder": "Користувач, який надсилає",
+
+
+
+ // "search.filters.entityType.JournalIssue": "Journal Issue",
+ "search.filters.entityType.JournalIssue": "Випуск видання",
+
+ // "search.filters.entityType.JournalVolume": "Journal Volume",
+ "search.filters.entityType.JournalVolume": "Том видання",
+
+ // "search.filters.entityType.OrgUnit": "Organizational Unit",
+ "search.filters.entityType.OrgUnit": "Структурна одиниця",
+
+ // "search.filters.has_content_in_original_bundle.true": "Yes",
+ "search.filters.has_content_in_original_bundle.true": "Так",
+
+ // "search.filters.has_content_in_original_bundle.false": "No",
+ "search.filters.has_content_in_original_bundle.false": "Ні",
+
+ // "search.filters.discoverable.true": "No",
+ "search.filters.discoverable.true": "Ні",
+
+ // "search.filters.discoverable.false": "Yes",
+ "search.filters.discoverable.false": "Так",
+
+ // "search.filters.withdrawn.true": "Yes",
+ "search.filters.withdrawn.true": "Так",
+
+ // "search.filters.withdrawn.false": "No",
+ "search.filters.withdrawn.false": "Ні",
+
+
+ // "search.filters.head": "Filters",
+ "search.filters.head": "Фільтри",
+
+ // "search.filters.reset": "Reset filters",
+ "search.filters.reset": "Скинути фільтри",
+
+
+
+ // "search.form.search": "Search",
+ "search.form.search": "Пошук",
+
+ // "search.form.search_dspace": "Search DSpace",
+ "search.form.search_dspace": "Пошук у репозиторії",
+
+ // "search.form.search_mydspace": "Search MyDSpace",
+ "search.form.search_mydspace": "Шукати у своїх документах",
+
+
+
+ // "search.results.head": "Search Results",
+ "search.results.head": "Результати пошуку",
+
+ // "search.results.no-results": "Your search returned no results. Having trouble finding what you're looking for? Try putting",
+ "search.results.no-results": "Ваш пошук не дав результатів. Вам важко знайти те, що ви шукаєте? Спробуйте поставити",
+
+ // "search.results.no-results-link": "quotes around it",
+ "search.results.no-results-link": "лапки навколо запиту",
+
+ // "search.results.empty": "Your search returned no results.",
+ "search.results.empty": "Ваш пошук не дав результатів.",
+
+
+
+ // "search.sidebar.close": "Back to results",
+ "search.sidebar.close": "Повернутись до результатів",
+
+ // "search.sidebar.filters.title": "Filters",
+ "search.sidebar.filters.title": "Фільтри",
+
+ // "search.sidebar.open": "Search Tools",
+ "search.sidebar.open": "Засоби пошуку",
+
+ // "search.sidebar.results": "results",
+ "search.sidebar.results": "результатів",
+
+ // "search.sidebar.settings.rpp": "Results per page",
+ "search.sidebar.settings.rpp": "Результатів на сторінку",
+
+ // "search.sidebar.settings.sort-by": "Sort By",
+ "search.sidebar.settings.sort-by": "Сортувати за",
+
+ // "search.sidebar.settings.title": "Settings",
+ "search.sidebar.settings.title": "Налаштування",
+
+
+
+ // "search.view-switch.show-detail": "Show detail",
+ "search.view-switch.show-detail": "Показати деталі",
+
+ // "search.view-switch.show-grid": "Show as grid",
+ "search.view-switch.show-grid": "Показати у вигляді матриці",
+
+ // "search.view-switch.show-list": "Show as list",
+ "search.view-switch.show-list": "Показати як список",
+
+
+
+ // "sorting.ASC": "Ascending",
+
+ "sorting.ASC": "У порядку збільшення",
+
+ // "sorting.DESC": "Descending",
+
+ "sorting.DESC": "У порядку зменшення",
+
+ // "sorting.dc.title.ASC": "Title Ascending",
+ "sorting.dc.title.ASC": "У порядку збільшення за назвою",
+
+ // "sorting.dc.title.DESC": "Title Descending",
+ "sorting.dc.title.DESC": "У порядку зменшення за назвою",
+
+ // "sorting.score.DESC": "Relevance",
+ "sorting.score.DESC": "Актуальність",
+
+
+
+ // "statistics.title": "Statistics",
+
+ "statistics.title": "Статистика",
+
+ // "statistics.header": "Statistics for {{ scope }}",
+
+ "statistics.header": "Статистика для {{ scope }}",
+
+ // "statistics.breadcrumbs": "Statistics",
+
+ "statistics.breadcrumbs": "Статистика",
+
+ // "statistics.page.no-data": "No data available",
+
+ "statistics.page.no-data": "Дані відсутні",
+
+ // "statistics.table.no-data": "No data available",
+
+ "statistics.table.no-data": "Дані відсутні",
+
+ // "statistics.table.title.TotalVisits": "Total visits",
+
+ "statistics.table.title.TotalVisits": "Всього відвідувань",
+
+ // "statistics.table.title.TotalVisitsPerMonth": "Total visits per month",
+
+ "statistics.table.title.TotalVisitsPerMonth": "Всього відвідувань за місяць",
+
+ // "statistics.table.title.TotalDownloads": "File Visits",
+
+ "statistics.table.title.TotalDownloads": "Скачувань файлів",
+
+ // "statistics.table.title.TopCountries": "Top country views",
+
+ "statistics.table.title.TopCountries": "Топ за країнами",
+
+ // "statistics.table.title.TopCities": "Top city views",
+
+ "statistics.table.title.TopCities": "Топ за містами",
+
+ // "statistics.table.header.views": "Views",
+
+ "statistics.table.header.views": "Перегляди",
+
+
+
+ // "submission.edit.title": "Edit Submission",
+ "submission.edit.title": "Редагувати внесення нового документа",
+
+ // "submission.general.cannot_submit": "You have not the privilege to make a new submission.",
+ "submission.general.cannot_submit": "У Вас немає повноважень щоб внести новий документ.",
+
+ // "submission.general.deposit": "Deposit",
+ "submission.general.deposit": "Депозит",
+
+ // "submission.general.discard.confirm.cancel": "Cancel",
+ "submission.general.discard.confirm.cancel": "Відмінити",
+
+ // "submission.general.discard.confirm.info": "This operation can't be undone. Are you sure?",
+ "submission.general.discard.confirm.info": "Цю операцію неможливо відмінити. Ви впевнені?",
+
+ // "submission.general.discard.confirm.submit": "Yes, I'm sure",
+ "submission.general.discard.confirm.submit": "Так, я впевнений",
+
+ // "submission.general.discard.confirm.title": "Discard submission",
+ "submission.general.discard.confirm.title": "Скасувати надсилання документа",
+
+ // "submission.general.discard.submit": "Discard",
+ "submission.general.discard.submit": "Скасувати",
+
+ // "submission.general.save": "Save",
+ "submission.general.save": "Зберегти",
+
+ // "submission.general.save-later": "Save for later",
+ "submission.general.save-later": "Зберегти на потім",
+
+
+ // "submission.import-external.page.title": "Import metadata from an external source",
+
+ "submission.import-external.page.title": "Імпортувати метадані із зовнішніх джерел",
+
+ // "submission.import-external.title": "Import metadata from an external source",
+
+ "submission.import-external.title": "Імпортувати метадані із зовнішніх джерел",
+
+ // "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": "Введіть запит вище, щоб знайти елементи з Інтернету для імпорту в репозиторій",
+
+ // "submission.import-external.back-to-my-dspace": "Back to MyDSpace",
+
+ "submission.import-external.back-to-my-dspace": "Повернутись до репозиторію",
+
+ // "submission.import-external.search.placeholder": "Search the external source",
+
+ "submission.import-external.search.placeholder": "Шукати зовнішнє джерело даних",
+
+ // "submission.import-external.search.button": "Search",
+
+ "submission.import-external.search.button": "Пошук",
+
+ // "submission.import-external.search.button.hint": "Write some words to search",
+
+ "submission.import-external.search.button.hint": "Напишіть ключові слова для пошуку",
+
+ // "submission.import-external.search.source.hint": "Pick an external source",
+
+ "submission.import-external.search.source.hint": "Виберіть зовнішнє джерело даних",
+
+ // "submission.import-external.source.arxiv": "arXiv",
+
+ "submission.import-external.source.arxiv": "arXiv",
+
+ // "submission.import-external.source.loading": "Loading ...",
+
+ "submission.import-external.source.loading": "Завантажуюсь ...",
+
+ // "submission.import-external.source.sherpaJournal": "SHERPA Journals",
+
+ "submission.import-external.source.sherpaJournal": "SHERPA видання",
+
+ // "submission.import-external.source.sherpaPublisher": "SHERPA Publishers",
+
+ "submission.import-external.source.sherpaPublisher": "SHERPA видавці",
+
+ // "submission.import-external.source.orcid": "ORCID",
+
+ "submission.import-external.source.orcid": "ORCID",
+
+ // "submission.import-external.source.pubmed": "Pubmed",
+
+ "submission.import-external.source.pubmed": "Pubmed",
+
+ // "submission.import-external.source.lcname": "Library of Congress Names",
+
+ "submission.import-external.source.lcname": "Бібліотека Congress Names",
+
+ // "submission.import-external.preview.title": "Item Preview",
+
+ "submission.import-external.preview.title": "Перегляд документа",
+
+ // "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": "Наведені нижче метадані імпортовано із зовнішнього джерела. Їх буде попередньо заповнено, коли ви почнете надсилати документ у репозиторій.",
+
+ // "submission.import-external.preview.button.import": "Start submission",
+
+ "submission.import-external.preview.button.import": "Почати вносити документ",
+
+ // "submission.import-external.preview.error.import.title": "Submission error",
+
+ "submission.import-external.preview.error.import.title": "Виникла помилка при внесенні документа",
+
+ // "submission.import-external.preview.error.import.body": "An error occurs during the external source entry import process.",
+
+ "submission.import-external.preview.error.import.body": "Виникла помилка при імпорті даних.",
+
+ // "submission.sections.describe.relationship-lookup.close": "Close",
+ "submission.sections.describe.relationship-lookup.close": "Закрити",
+
+ // "submission.sections.describe.relationship-lookup.external-source.added": "Successfully added local entry to the selection",
+ "submission.sections.describe.relationship-lookup.external-source.added": "Локальний запис успішно додано",
+
+ // "submission.sections.describe.relationship-lookup.external-source.import-button-title.isAuthorOfPublication": "Import remote author",
+
+ "submission.sections.describe.relationship-lookup.external-source.import-button-title.isAuthorOfPublication": "Імпорт віддаленого автора",
+
+ // "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal": "Import remote journal",
+ "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal": "Імпорт віддаленого видання",
+
+ // "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": "Імпорт віддаленого випуску видання",
+
+ // "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": "Імпорт віддаленого тому видання",
+
+ // "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": "Імпорт віддаленого автора",
+
+ // "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.added.local-entity": "Successfully added local author to the selection",
+
+ "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.added.local-entity": "Локального автора успішно додано до вибраних",
+
+ // "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.added.new-entity": "Successfully imported and added external author to the selection",
+
+ "submission.sections.describe.relationship-lookup.external-source.import-modal.isAuthorOfPublication.added.new-entity": "Локального автора успішно імпортовано та додано до вибраних",
+
+ // "submission.sections.describe.relationship-lookup.external-source.import-modal.authority": "Authority",
+ "submission.sections.describe.relationship-lookup.external-source.import-modal.authority": "Authority",
+
+ // "submission.sections.describe.relationship-lookup.external-source.import-modal.authority.new": "Import as a new local authority entry",
+ "submission.sections.describe.relationship-lookup.external-source.import-modal.authority.new": "Import as a new local authority entry",
+
+ // "submission.sections.describe.relationship-lookup.external-source.import-modal.cancel": "Cancel",
+ "submission.sections.describe.relationship-lookup.external-source.import-modal.cancel": "Відмінити",
+
+ // "submission.sections.describe.relationship-lookup.external-source.import-modal.collection": "Select a collection to import new entries to",
+ "submission.sections.describe.relationship-lookup.external-source.import-modal.collection": "Виберіть зібрання, до якого потрібно імпортувати нові записи",
+
+ // "submission.sections.describe.relationship-lookup.external-source.import-modal.entities": "Entities",
+ "submission.sections.describe.relationship-lookup.external-source.import-modal.entities": "Сутності",
+
+ // "submission.sections.describe.relationship-lookup.external-source.import-modal.entities.new": "Import as a new local entity",
+ "submission.sections.describe.relationship-lookup.external-source.import-modal.entities.new": "Імпотрувати як нову локальну сутність",
+
+ // "submission.sections.describe.relationship-lookup.external-source.import-modal.head.lcname": "Importing from LC Name",
+ "submission.sections.describe.relationship-lookup.external-source.import-modal.head.lcname": "Імпортувати з LC назвою",
+
+ // "submission.sections.describe.relationship-lookup.external-source.import-modal.head.orcid": "Importing from ORCID",
+ "submission.sections.describe.relationship-lookup.external-source.import-modal.head.orcid": "Імпортувати з ORCID",
+
+ // "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaJournal": "Importing from Sherpa Journal",
+ "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaJournal": "Імпортувати з Sherpa видання",
+
+ // "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaPublisher": "Importing from Sherpa Publisher",
+ "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaPublisher": "Імпортувати з Sherpa видання",
+
+ // "submission.sections.describe.relationship-lookup.external-source.import-modal.head.pubmed": "Importing from PubMed",
+
+ "submission.sections.describe.relationship-lookup.external-source.import-modal.head.pubmed": "Імпортувати з PubMed",
+
+ // "submission.sections.describe.relationship-lookup.external-source.import-modal.head.arxiv": "Importing from arXiv",
+
+ "submission.sections.describe.relationship-lookup.external-source.import-modal.head.arxiv": "Імпортувати з arXiv",
+
+ // "submission.sections.describe.relationship-lookup.external-source.import-modal.import": "Import",
+ "submission.sections.describe.relationship-lookup.external-source.import-modal.import": "Імпорт",
+
+ // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.title": "Import Remote Journal",
+ "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.title": "Імпорт віддаленого видання",
+
+ // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.added.local-entity": "Successfully added local journal to the selection",
+ "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.added.local-entity": "Нове видання успішно додане до вибраних",
+
+ // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.added.new-entity": "Successfully imported and added external journal to the selection",
+ "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.added.new-entity": "Нове видання успішно імпортовано та додане до вибраних",
+
+ // "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": "Імпорт віддаленого випуску видання",
+
+ // "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": "Випуск видання успішно додане до вибраних",
+
+ // "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": "Випуск видання успішно імпортовано та додане до вибраних",
+
+ // "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": "Імпорт віддаленого тому видання",
+
+ // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.local-entity": "Successfully added local journal volume to the selection",
+ "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.local-entity": "Том видання успішно додано до вибраних",
+
+ // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.new-entity": "Successfully imported and added external journal volume to the selection",
+ "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.new-entity": "Том видання успішно імпортовано та додано до вибраних",
+
+ // "submission.sections.describe.relationship-lookup.external-source.import-modal.select": "Select a local match:",
+ "submission.sections.describe.relationship-lookup.external-source.import-modal.select": "Виберіть локальний збіг",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.deselect-all": "Deselect all",
+ "submission.sections.describe.relationship-lookup.search-tab.deselect-all": "Видалити позначення для всіх",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.deselect-page": "Deselect page",
+ "submission.sections.describe.relationship-lookup.search-tab.deselect-page": "Видалити позначення сторінки",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.loading": "Loading...",
+ "submission.sections.describe.relationship-lookup.search-tab.loading": "Вантажиться...",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.placeholder": "Search query",
+ "submission.sections.describe.relationship-lookup.search-tab.placeholder": "Пошуковий запит",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.search": "Go",
+ "submission.sections.describe.relationship-lookup.search-tab.search": "Вперед",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.select-all": "Select all",
+ "submission.sections.describe.relationship-lookup.search-tab.select-all": "Виділити все",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.select-page": "Select page",
+ "submission.sections.describe.relationship-lookup.search-tab.select-page": "Виділити сторінку",
+
+ // "submission.sections.describe.relationship-lookup.selected": "Selected {{ size }} items",
+ "submission.sections.describe.relationship-lookup.selected": "Позначені {{ size }} документи",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isAuthorOfPublication": "Local Authors ({{ count }})",
+
+ "submission.sections.describe.relationship-lookup.search-tab.tab-title.isAuthorOfPublication": "Локальні автори ({{ count }})",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalOfPublication": "Local Journals ({{ count }})",
+
+ "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalOfPublication": "Локальні видання ({{ count }})",
+ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.Project": "Local Projects ({{ count }})",
+
+ "submission.sections.describe.relationship-lookup.search-tab.tab-title.Project": "Локальні проекти ({{ count }})",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.Publication": "Local Publications ({{ count }})",
+
+ "submission.sections.describe.relationship-lookup.search-tab.tab-title.Publication": "Локальні публікації ({{ count }})",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.Person": "Local Authors ({{ count }})",
+
+ "submission.sections.describe.relationship-lookup.search-tab.tab-title.Person": "Локальні автори ({{ count }})",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.OrgUnit": "Local Organizational Units ({{ count }})",
+
+ "submission.sections.describe.relationship-lookup.search-tab.tab-title.OrgUnit": "Локальні структурні одиниці({{ count }})",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.DataPackage": "Local Data Packages ({{ count }})",
+
+ "submission.sections.describe.relationship-lookup.search-tab.tab-title.DataPackage": "Локальні пакети даних ({{ count }})",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.DataFile": "Local Data Files ({{ count }})",
+
+ "submission.sections.describe.relationship-lookup.search-tab.tab-title.DataFile": "Локальні файли даних ({{ count }})",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.Journal": "Local Journals ({{ count }})",
+ "submission.sections.describe.relationship-lookup.search-tab.tab-title.Journal": "Локальні видання ({{ count }})",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalIssueOfPublication": "Local Journal Issues ({{ count }})",
+
+ "submission.sections.describe.relationship-lookup.search-tab.tab-title.isJournalIssueOfPublication": "Локальні випуски видань ({{ 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": "Локальні випуски видань ({{ 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": "Локальні томи видань ({{ 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": "Локальні томи видань({{ count }})",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaJournal": "Sherpa Journals ({{ count }})",
+ "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaJournal": "Sherpa видання ({{ count }})",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaPublisher": "Sherpa Publishers ({{ count }})",
+ "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaPublisher": "Sherpa видавці ({{ count }})",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.orcid": "ORCID ({{ count }})",
+ "submission.sections.describe.relationship-lookup.search-tab.tab-title.orcid": "ORCID ({{ count }})",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.lcname": "LC Names ({{ count }})",
+ "submission.sections.describe.relationship-lookup.search-tab.tab-title.lcname": "LC назви ({{ count }})",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.pubmed": "PubMed ({{ count }})",
+ // TODO New key - Add a translation
+ "submission.sections.describe.relationship-lookup.search-tab.tab-title.pubmed": "PubMed ({{ count }})",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.arxiv": "arXiv ({{ count }})",
+ // TODO New key - Add a translation
+ "submission.sections.describe.relationship-lookup.search-tab.tab-title.arxiv": "arXiv ({{ count }})",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfPublication": "Search for Funding Agencies",
+
+ "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingAgencyOfPublication": "Пошук фінансових агентств",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingOfPublication": "Search for Funding",
+
+ "submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingOfPublication": "Пошук фінансування",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.tab-title.isChildOrgUnitOf": "Search for Organizational Units",
+
+ "submission.sections.describe.relationship-lookup.search-tab.tab-title.isChildOrgUnitOf": "Пошук структурних одиниць",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.tab-title": "Current Selection ({{ count }})",
+ "submission.sections.describe.relationship-lookup.selection-tab.tab-title": "Вибрані позиції ({{ count }})",
+
+ // "submission.sections.describe.relationship-lookup.title.isJournalIssueOfPublication": "Journal Issues",
+
+ "submission.sections.describe.relationship-lookup.title.isJournalIssueOfPublication": "Випуски видання",
+
+ // "submission.sections.describe.relationship-lookup.title.JournalIssue": "Journal Issues",
+
+ "submission.sections.describe.relationship-lookup.title.JournalIssue": "Випуски видання",
+
+ // "submission.sections.describe.relationship-lookup.title.isJournalVolumeOfPublication": "Journal Volumes",
+
+ "submission.sections.describe.relationship-lookup.title.isJournalVolumeOfPublication": "Томи видання",
+
+ // "submission.sections.describe.relationship-lookup.title.JournalVolume": "Journal Volumes",
+
+ "submission.sections.describe.relationship-lookup.title.JournalVolume": "Томи видання",
+
+ // "submission.sections.describe.relationship-lookup.title.isJournalOfPublication": "Journals",
+
+ "submission.sections.describe.relationship-lookup.title.isJournalOfPublication": "Видання",
+
+ // "submission.sections.describe.relationship-lookup.title.isAuthorOfPublication": "Authors",
+
+ "submission.sections.describe.relationship-lookup.title.isAuthorOfPublication": "Автори",
+
+ // "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfPublication": "Funding Agency",
+
+ "submission.sections.describe.relationship-lookup.title.isFundingAgencyOfPublication": "Фінансова агенція",
+
+ // "submission.sections.describe.relationship-lookup.title.Project": "Projects",
+
+ "submission.sections.describe.relationship-lookup.title.Project": "Проекти",
+
+ // "submission.sections.describe.relationship-lookup.title.Publication": "Publications",
+
+ "submission.sections.describe.relationship-lookup.title.Publication": "Публікації",
+
+ // "submission.sections.describe.relationship-lookup.title.Person": "Authors",
+
+ "submission.sections.describe.relationship-lookup.title.Person": "Автори",
+
+ // "submission.sections.describe.relationship-lookup.title.OrgUnit": "Organizational Units",
+
+ "submission.sections.describe.relationship-lookup.title.OrgUnit": "Структурні одиниці",
+
+ // "submission.sections.describe.relationship-lookup.title.DataPackage": "Data Packages",
+
+ "submission.sections.describe.relationship-lookup.title.DataPackage": "Пакети даних",
+
+ // "submission.sections.describe.relationship-lookup.title.DataFile": "Data Files",
+
+ "submission.sections.describe.relationship-lookup.title.DataFile": "Файли даних",
+
+ // "submission.sections.describe.relationship-lookup.title.Funding Agency": "Funding Agency",
+ "submission.sections.describe.relationship-lookup.title.Funding Agency": "Фінансова агенція",
+
+ // "submission.sections.describe.relationship-lookup.title.isFundingOfPublication": "Funding",
+
+ "submission.sections.describe.relationship-lookup.title.isFundingOfPublication": "Фінансування",
+
+ // "submission.sections.describe.relationship-lookup.title.isChildOrgUnitOf": "Parent Organizational Unit",
+
+ "submission.sections.describe.relationship-lookup.title.isChildOrgUnitOf": "Головна структурна одиниця",
+
+ // "submission.sections.describe.relationship-lookup.search-tab.toggle-dropdown": "Toggle dropdown",
+ "submission.sections.describe.relationship-lookup.search-tab.toggle-dropdown": "Перемкнути спадне меню",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.settings": "Settings",
+ "submission.sections.describe.relationship-lookup.selection-tab.settings": "Налаштування",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.no-selection": "Your selection is currently empty.",
+ "submission.sections.describe.relationship-lookup.selection-tab.no-selection": "Ви нічого не вибрали",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.title.isAuthorOfPublication": "Selected Authors",
+
+ "submission.sections.describe.relationship-lookup.selection-tab.title.isAuthorOfPublication": "Вибрані автори",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalOfPublication": "Selected Journals",
+
+ "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalOfPublication": "Вибрані видання",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalVolumeOfPublication": "Selected Journal Volume",
+
+ "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalVolumeOfPublication": "Вибрані томи видання",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.title.Project": "Selected Projects",
+
+ "submission.sections.describe.relationship-lookup.selection-tab.title.Project": "Вибрані проекти",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.title.Publication": "Selected Publications",
+
+ "submission.sections.describe.relationship-lookup.selection-tab.title.Publication": "Вибрані публікації",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.title.Person": "Selected Authors",
+
+ "submission.sections.describe.relationship-lookup.selection-tab.title.Person": "Вибрані автори",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.title.OrgUnit": "Selected Organizational Units",
+
+ "submission.sections.describe.relationship-lookup.selection-tab.title.OrgUnit": "Вибрані структурні одиниці",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.title.DataPackage": "Selected Data Packages",
+
+ "submission.sections.describe.relationship-lookup.selection-tab.title.DataPackage": "Вибрані пакети даних",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.title.DataFile": "Selected Data Files",
+
+ "submission.sections.describe.relationship-lookup.selection-tab.title.DataFile": "ВИбрані файли даних",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.title.Journal": "Selected Journals",
+ "submission.sections.describe.relationship-lookup.selection-tab.title.Journal": "Вибрані видання",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalIssueOfPublication": "Selected Issue",
+
+ "submission.sections.describe.relationship-lookup.selection-tab.title.isJournalIssueOfPublication": "Вибрані випуски",
+ // "submission.sections.describe.relationship-lookup.selection-tab.title.JournalVolume": "Selected Journal Volume",
+
+ "submission.sections.describe.relationship-lookup.selection-tab.title.JournalVolume": "Вибрані томи видання",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingAgencyOfPublication": "Selected Funding Agency",
+
+ "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingAgencyOfPublication": "Вибрана фінансова агенція",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingOfPublication": "Selected Funding",
+
+ "submission.sections.describe.relationship-lookup.selection-tab.title.isFundingOfPublication": "Вибране фінансування",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.title.JournalIssue": "Selected Issue",
+
+ "submission.sections.describe.relationship-lookup.selection-tab.title.JournalIssue": "Вибрані випуски",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.title.isChildOrgUnitOf": "Selected Organizational Unit",
+
+ "submission.sections.describe.relationship-lookup.selection-tab.title.isChildOrgUnitOf": "Вибрані структурні одиниці",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaJournal": "Search Results",
+ "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaJournal": "Результати пошуку",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaPublisher": "Search Results",
+ "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaPublisher": "Результати пошуку",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.title.orcid": "Search Results",
+ "submission.sections.describe.relationship-lookup.selection-tab.title.orcid": "Результати пошуку",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.title.orcidv2": "Search Results",
+
+ "submission.sections.describe.relationship-lookup.selection-tab.title.orcidv2": "Результати пошуку",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.title.lcname": "Search Results",
+ "submission.sections.describe.relationship-lookup.selection-tab.title.lcname": "Результати пошуку",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.title.pubmed": "Search Results",
+
+ "submission.sections.describe.relationship-lookup.selection-tab.title.pubmed": "Результати пошуку",
+
+ // "submission.sections.describe.relationship-lookup.selection-tab.title.arxiv": "Search Results",
+
+ "submission.sections.describe.relationship-lookup.selection-tab.title.arxiv": "Результати пошуку",
+
+ // "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": "Чи бажаєте ви зберегти \"{{ value }}\" як варіант імені для цього користувача, щоб ви та інші могли повторно використовувати його для майбутніх надсилань? Якщо ви цього не зробите, ви можете використовувати його для цього надсилання.",
+
+ // "submission.sections.describe.relationship-lookup.name-variant.notification.confirm": "Save a new name variant",
+ "submission.sections.describe.relationship-lookup.name-variant.notification.confirm": "Збережіть новий варіант імені",
+
+ // "submission.sections.describe.relationship-lookup.name-variant.notification.decline": "Use only for this submission",
+ "submission.sections.describe.relationship-lookup.name-variant.notification.decline": "Використовуйте тільки для даного надсилання документів",
+
+ // "submission.sections.ccLicense.type": "License Type",
+
+ "submission.sections.ccLicense.type": "Тип ліцензії",
+
+ // "submission.sections.ccLicense.select": "Select a license type…",
+
+ "submission.sections.ccLicense.select": "Биберіть тип ліцензії…",
+
+ // "submission.sections.ccLicense.change": "Change your license type…",
+
+ "submission.sections.ccLicense.change": "Змініть тип ліцензії…",
+
+ // "submission.sections.ccLicense.none": "No licenses available",
+
+ "submission.sections.ccLicense.none": "Нема ліцензії",
+
+ // "submission.sections.ccLicense.option.select": "Select an option…",
+
+ "submission.sections.ccLicense.option.select": "Виберіть опцію…",
+
+ // "submission.sections.ccLicense.link": "You’ve selected the following license:",
+
+ "submission.sections.ccLicense.link": "Ви вибрали ліцензію:",
+
+ // "submission.sections.ccLicense.confirmation": "I grant the license above",
+
+ "submission.sections.ccLicense.confirmation": "Я даю згоду на цю ліцензію",
+
+ // "submission.sections.general.add-more": "Add more",
+ "submission.sections.general.add-more": "Додати більше",
+
+ // "submission.sections.general.collection": "Collection",
+ "submission.sections.general.collection": "Зібрання",
+
+ // "submission.sections.general.deposit_error_notice": "There was an issue when submitting the item, please try again later.",
+ "submission.sections.general.deposit_error_notice": "Під час надсилання елемента виникла проблема. Повторіть спробу пізніше.",
+
+ // "submission.sections.general.deposit_success_notice": "Submission deposited successfully.",
+ "submission.sections.general.deposit_success_notice": "Подання документа успшно збережено.",
+
+ // "submission.sections.general.discard_error_notice": "There was an issue when discarding the item, please try again later.",
+ "submission.sections.general.discard_error_notice": "Під час внесення документа виникла проблема. Повторіть спробу пізніше",
+
+ // "submission.sections.general.discard_success_notice": "Submission discarded successfully.",
+ "submission.sections.general.discard_success_notice": "Подання успішно відхилено.",
+
+ // "submission.sections.general.metadata-extracted": "New metadata have been extracted and added to the
{{sectionId}} section.",
+ "submission.sections.general.metadata-extracted": "Нові метадані видобуто та додано до
{{sectionId}} секції.",
+
+ // "submission.sections.general.metadata-extracted-new-section": "New
{{sectionId}} section has been added to submission.",
+ "submission.sections.general.metadata-extracted-new-section": "Нова
{{sectionId}} секція додана до подання документа.",
+
+ // "submission.sections.general.no-collection": "No collection found",
+ "submission.sections.general.no-collection": "Зібрання не знайдено",
+
+ // "submission.sections.general.no-sections": "No options available",
+ "submission.sections.general.no-sections": "Опції відсутні",
+
+ // "submission.sections.general.save_error_notice": "There was an issue when saving the item, please try again later.",
+ "submission.sections.general.save_error_notice": "Під час збереження документа виникла проблема. Повторіть спробу пізніше.",
+
+ // "submission.sections.general.save_success_notice": "Submission saved successfully.",
+ "submission.sections.general.save_success_notice": "Подання успішно збережено.",
+
+ // "submission.sections.general.search-collection": "Search for a collection",
+ "submission.sections.general.search-collection": "Пошук зібрання",
+
+ // "submission.sections.general.sections_not_valid": "There are incomplete sections.",
+ "submission.sections.general.sections_not_valid": "Неповні розділи.",
+
+
+
+ // "submission.sections.submit.progressbar.CClicense": "Creative commons license",
+
+ "submission.sections.submit.progressbar.CClicense": "СС ліцензії",
+
+ // "submission.sections.submit.progressbar.describe.recycle": "Recycle",
+ "submission.sections.submit.progressbar.describe.recycle": "Переробити",
+
+ // "submission.sections.submit.progressbar.describe.stepcustom": "Describe",
+ "submission.sections.submit.progressbar.describe.stepcustom": "Описати",
+
+ // "submission.sections.submit.progressbar.describe.stepone": "Describe",
+ "submission.sections.submit.progressbar.describe.stepone": "Описати",
+
+ // "submission.sections.submit.progressbar.describe.steptwo": "Describe",
+ "submission.sections.submit.progressbar.describe.steptwo": "Описати",
+
+ // "submission.sections.submit.progressbar.detect-duplicate": "Potential duplicates",
+ "submission.sections.submit.progressbar.detect-duplicate": "Можливі дублікати",
+
+ // "submission.sections.submit.progressbar.license": "Deposit license",
+ "submission.sections.submit.progressbar.license": "Ліцензія",
+
+ // "submission.sections.submit.progressbar.upload": "Upload files",
+ "submission.sections.submit.progressbar.upload": "Завантажені файли",
+
+
+
+ // "submission.sections.upload.delete.confirm.cancel": "Cancel",
+ "submission.sections.upload.delete.confirm.cancel": "Відмінити",
+
+ // "submission.sections.upload.delete.confirm.info": "This operation can't be undone. Are you sure?",
+ "submission.sections.upload.delete.confirm.info": "Ця операція не може бути відмінена. Ви впевнені?",
+
+ // "submission.sections.upload.delete.confirm.submit": "Yes, I'm sure",
+ "submission.sections.upload.delete.confirm.submit": "Так, я впевнений",
+
+ // "submission.sections.upload.delete.confirm.title": "Delete bitstream",
+ "submission.sections.upload.delete.confirm.title": "Видалити файл",
+
+ // "submission.sections.upload.delete.submit": "Delete",
+ "submission.sections.upload.delete.submit": "Видалити",
+
+ // "submission.sections.upload.drop-message": "Drop files to attach them to the item",
+ "submission.sections.upload.drop-message": "Перетягніть файли, щоб приєднати їх до документа",
+
+ // "submission.sections.upload.form.access-condition-label": "Access condition type",
+ "submission.sections.upload.form.access-condition-label": "Умови доступу",
+
+ // "submission.sections.upload.form.date-required": "Date is required.",
+ "submission.sections.upload.form.date-required": "Поле дати є обов\'язковим для заповнення.",
+
+ // "submission.sections.upload.form.from-label": "Grant access from",
+
+ "submission.sections.upload.form.from-label": "Надати доступ з",
+
+ // "submission.sections.upload.form.from-placeholder": "From",
+ "submission.sections.upload.form.from-placeholder": "З",
+
+ // "submission.sections.upload.form.group-label": "Group",
+ "submission.sections.upload.form.group-label": "Група",
+
+ // "submission.sections.upload.form.group-required": "Group is required.",
+ "submission.sections.upload.form.group-required": "Група є обов\'язковою.",
+
+ // "submission.sections.upload.form.until-label": "Grant access until",
+
+ "submission.sections.upload.form.until-label": "Надати доступ до",
+
+ // "submission.sections.upload.form.until-placeholder": "Until",
+ "submission.sections.upload.form.until-placeholder": "До",
+
+ // "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": "Завантажені файли зібрань {{collectionName}} будуть доступні групам:",
+
+ // "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": "Зверніть увагу, що завантажені файли в {{collectionName}} зібрання будуть доступні, для користувачів, що входять у групу(и):",
+
+ // "submission.sections.upload.info": "Here you will find all the files currently in the item. You can update the file metadata and access conditions or
upload additional files just dragging & dropping them everywhere in the page ",
+ "submission.sections.upload.info": "Тут ви знайдете всі файли, які зараз містяться в документі. Ви можете оновити метадані файлу та умови доступу або
завантажити додаткові файли, просто перетягнувши їх сюди на сторінці ",
+
+ // "submission.sections.upload.no-entry": "No",
+ "submission.sections.upload.no-entry": "Ні",
+
+ // "submission.sections.upload.no-file-uploaded": "No file uploaded yet.",
+ "submission.sections.upload.no-file-uploaded": "Наразі файл не завантажено.",
+
+ // "submission.sections.upload.save-metadata": "Save metadata",
+ "submission.sections.upload.save-metadata": "Зберегти метадані",
+
+ // "submission.sections.upload.undo": "Cancel",
+ "submission.sections.upload.undo": "Відмінити",
+
+ // "submission.sections.upload.upload-failed": "Upload failed",
+ "submission.sections.upload.upload-failed": "Помилка завантаження",
+
+ // "submission.sections.upload.upload-successful": "Upload successful",
+ "submission.sections.upload.upload-successful": "Успішно завантажено",
+
+
+
+ // "submission.submit.title": "Submission",
+ "submission.submit.title": "Надсилання документів",
+
+
+
+ // "submission.workflow.generic.delete": "Delete",
+ "submission.workflow.generic.delete": "Видалити",
+
+ // "submission.workflow.generic.delete-help": "If you would to discard this item, select \"Delete\". You will then be asked to confirm it.",
+ "submission.workflow.generic.delete-help": "Якщо ви хочете видалити цей елемент, виберіть \"Видалити\". Потім вас попросять підтвердити це.",
+
+ // "submission.workflow.generic.edit": "Edit",
+ "submission.workflow.generic.edit": "Редагувати",
+
+ // "submission.workflow.generic.edit-help": "Select this option to change the item's metadata.",
+ "submission.workflow.generic.edit-help": "Виберіть цю опцію для зміни метаданих документа.",
+
+ // "submission.workflow.generic.view": "View",
+ "submission.workflow.generic.view": "Перегляд",
+
+ // "submission.workflow.generic.view-help": "Select this option to view the item's metadata.",
+ "submission.workflow.generic.view-help": "Виберіть цю опцію для перегляду метаданих документа.",
+
+
+
+ // "submission.workflow.tasks.claimed.approve": "Approve",
+ "submission.workflow.tasks.claimed.approve": "Затвердити",
+
+ // "submission.workflow.tasks.claimed.approve_help": "If you have reviewed the item and it is suitable for inclusion in the collection, select \"Approve\".",
+ "submission.workflow.tasks.claimed.approve_help": "Якщо ви переглянули документ і він підходить для включення в зібрання, виберіть \"Затвердити\".",
+
+ // "submission.workflow.tasks.claimed.edit": "Edit",
+ "submission.workflow.tasks.claimed.edit": "Редагувати",
+
+ // "submission.workflow.tasks.claimed.edit_help": "Select this option to change the item's metadata.",
+ "submission.workflow.tasks.claimed.edit_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": "Будь ласка, введіть причину відхилення надсилання документа в полі нижче, вказавши, чи може заявник вирішити проблему та повторно подати.",
+
+ // "submission.workflow.tasks.claimed.reject.reason.placeholder": "Describe the reason of reject",
+ "submission.workflow.tasks.claimed.reject.reason.placeholder": "Опишіть причину відхилення",
+
+ // "submission.workflow.tasks.claimed.reject.reason.submit": "Reject item",
+ "submission.workflow.tasks.claimed.reject.reason.submit": "Вдхилити документ",
+
+ // "submission.workflow.tasks.claimed.reject.reason.title": "Reason",
+ "submission.workflow.tasks.claimed.reject.reason.title": "Причина",
+
+ // "submission.workflow.tasks.claimed.reject.submit": "Reject",
+ "submission.workflow.tasks.claimed.reject.submit": "Відхилити",
+
+ // "submission.workflow.tasks.claimed.reject_help": "If you have reviewed the item and found it is
not suitable for inclusion in the collection, select \"Reject\". You will then be asked to enter a message indicating why the item is unsuitable, and whether the submitter should change something and resubmit.",
+ "submission.workflow.tasks.claimed.reject_help": "Якщо ви переглянули документ і виявили, що він
не підходить для включення в зібрання, виберіть \"Відхилити\". Після цього вас попросять ввести інформацію про причину відхилення і чи повинен автор щось змінити та повторно подати.",
+
+ // "submission.workflow.tasks.claimed.return": "Return to pool",
+ "submission.workflow.tasks.claimed.return": "Повернути до черги",
+
+ // "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": "Поверніть завдання до черги, щоб інший користувач міг виконати завдання.",
+
+
+
+ // "submission.workflow.tasks.generic.error": "Error occurred during operation...",
+ "submission.workflow.tasks.generic.error": "Виникла помилка...",
+
+ // "submission.workflow.tasks.generic.processing": "Processing...",
+ "submission.workflow.tasks.generic.processing": "Опрацювання...",
+
+ // "submission.workflow.tasks.generic.submitter": "Submitter",
+ "submission.workflow.tasks.generic.submitter": "Користувач, котрий надсилає",
+
+ // "submission.workflow.tasks.generic.success": "Operation successful",
+ "submission.workflow.tasks.generic.success": "Операція пройшла успішно",
+
+
+
+ // "submission.workflow.tasks.pool.claim": "Claim",
+ "submission.workflow.tasks.pool.claim": "Претензія",
+
+ // "submission.workflow.tasks.pool.claim_help": "Assign this task to yourself.",
+ "submission.workflow.tasks.pool.claim_help": "Доручіть собі це завдання.",
+
+ // "submission.workflow.tasks.pool.hide-detail": "Hide detail",
+ "submission.workflow.tasks.pool.hide-detail": "Приховати деталі",
+
+ // "submission.workflow.tasks.pool.show-detail": "Show detail",
+ "submission.workflow.tasks.pool.show-detail": "Показати деталі",
+
+
+
+ // "title": "DSpace",
+ "title": "Репозиторій",
+
+
+
+ // "vocabulary-treeview.header": "Hierarchical tree view",
+
+ "vocabulary-treeview.header": "Перегляд деревовидної структури",
+
+ // "vocabulary-treeview.load-more": "Load more",
+
+ "vocabulary-treeview.load-more": "Детальніше",
+
+ // "vocabulary-treeview.search.form.reset": "Reset",
+
+ "vocabulary-treeview.search.form.reset": "Скинути",
+
+ // "vocabulary-treeview.search.form.search": "Search",
+
+ "vocabulary-treeview.search.form.search": "Шукати",
+
+ // "vocabulary-treeview.search.no-result": "There were no items to show",
+
+ "vocabulary-treeview.search.no-result": "Не знайдено жодних документів",
+
+ // "vocabulary-treeview.tree.description.nsi": "The Norwegian Science Index",
+
+ "vocabulary-treeview.tree.description.nsi": "Norwegian Science індекс",
+
+ // "vocabulary-treeview.tree.description.srsc": "Research Subject Categories",
+
+ "vocabulary-treeview.tree.description.srsc": "Категорії дослідницьких напрямків",
+
+
+
+ // "uploader.browse": "browse",
+ "uploader.browse": "перегляд",
+
+ // "uploader.drag-message": "Drag & Drop your files here",
+ "uploader.drag-message": "Перетягніть файли сюди",
+
+ // "uploader.or": ", or ",
+ // TODO Source message changed - Revise the translation
+ "uploader.or": ", або",
+
+ // "uploader.processing": "Processing",
+ "uploader.processing": "Опрацювання",
+
+ // "uploader.queue-length": "Queue length",
+ "uploader.queue-length": "Довжина черги",
+
+ // "virtual-metadata.delete-item.info": "Select the types for which you want to save the virtual metadata as real metadata",
+ "virtual-metadata.delete-item.info": "Виберіть типи, для яких ви хочете зберегти віртуальні метадані як справжні метадані",
+
+ // "virtual-metadata.delete-item.modal-head": "The virtual metadata of this relation",
+ "virtual-metadata.delete-item.modal-head": "Віртуальні метадані цього відношення",
+
+ // "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": "Виберіть документи, для яких ви хочете зберегти віртуальні метадані як справжні метадані",
+
+
+
+ // "workflowAdmin.search.results.head": "Administer Workflow",
+ "workflowAdmin.search.results.head": "Робочий процес адміністратора",
+
+
+
+ // "workflow-item.delete.notification.success.title": "Deleted",
+
+ "workflow-item.delete.notification.success.title": "Видалено",
+
+ // "workflow-item.delete.notification.success.content": "This workflow item was successfully deleted",
+
+ "workflow-item.delete.notification.success.content": "Робочий процес внесення документа був успішно видалений",
+
+ // "workflow-item.delete.notification.error.title": "Something went wrong",
+
+ "workflow-item.delete.notification.error.title": "Щось пішло не так",
+
+ // "workflow-item.delete.notification.error.content": "The workflow item could not be deleted",
+
+ "workflow-item.delete.notification.error.content": "Документ з робочого процесу не може бути видалений",
+
+ // "workflow-item.delete.title": "Delete workflow item",
+
+ "workflow-item.delete.title": "Видалити документ з робочого процесу",
+
+ // "workflow-item.delete.header": "Delete workflow item",
+
+ "workflow-item.delete.header": "Видалити документ з робочого процесу",
+
+ // "workflow-item.delete.button.cancel": "Cancel",
+
+ "workflow-item.delete.button.cancel": "Відмінити",
+
+ // "workflow-item.delete.button.confirm": "Delete",
+
+ "workflow-item.delete.button.confirm": "Видалити",
+
+
+ // "workflow-item.send-back.notification.success.title": "Sent back to submitter",
+
+ "workflow-item.send-back.notification.success.title": "Відіслати назад до користувача, котрий надіслав цей документ",
+
+ // "workflow-item.send-back.notification.success.content": "This workflow item was successfully sent back to the submitter",
+
+ "workflow-item.send-back.notification.success.content": "Цей документ був відісланий назад до користувача, котрий надіслав цей документ",
+
+ // "workflow-item.send-back.notification.error.title": "Something went wrong",
+
+ "workflow-item.send-back.notification.error.title": "Щось пішло не так",
+
+ // "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": "Цей документ НЕ може біти відісланий назад до користувача, котрий надіслав цей документ",
+
+ // "workflow-item.send-back.title": "Send workflow item back to submitter",
+
+ "workflow-item.send-back.title": "Надіслати документ назад до користувача, котрий його надіслав",
+
+ // "workflow-item.send-back.header": "Send workflow item back to submitter",
+
+ "workflow-item.send-back.header": "Надіслати документ назад до користувача, котрий його надіслав",
+
+ // "workflow-item.send-back.button.cancel": "Cancel",
+
+ "workflow-item.send-back.button.cancel": "Відмінити",
+
+ // "workflow-item.send-back.button.confirm": "Send back"
+
+ "workflow-item.send-back.button.confirm": "Надіслати назад"
+
+
+}
diff --git a/src/config/config.server.ts b/src/config/config.server.ts
index 278cf4f1d5..65daede0a8 100644
--- a/src/config/config.server.ts
+++ b/src/config/config.server.ts
@@ -1,6 +1,6 @@
-import * as colors from 'colors';
-import * as fs from 'fs';
-import * as yaml from 'js-yaml';
+import { red, blue, green, bold } from 'colors';
+import { existsSync, readFileSync, writeFileSync } from 'fs';
+import { load } from 'js-yaml';
import { join } from 'path';
import { AppConfig } from './app-config.interface';
@@ -62,7 +62,7 @@ const getDefaultConfigPath = () => {
// default to config/config.yml
let defaultConfigPath = join(CONFIG_PATH, 'config.yml');
- if (!fs.existsSync(defaultConfigPath)) {
+ if (!existsSync(defaultConfigPath)) {
defaultConfigPath = join(CONFIG_PATH, 'config.yaml');
}
@@ -95,11 +95,11 @@ const getEnvConfigFilePath = (env: Environment) => {
// check if any environment variations of app config exist
for (const envVariation of envVariations) {
envLocalConfigPath = join(CONFIG_PATH, `config.${envVariation}.yml`);
- if (fs.existsSync(envLocalConfigPath)) {
+ if (existsSync(envLocalConfigPath)) {
break;
}
envLocalConfigPath = join(CONFIG_PATH, `config.${envVariation}.yaml`);
- if (fs.existsSync(envLocalConfigPath)) {
+ if (existsSync(envLocalConfigPath)) {
break;
}
}
@@ -110,8 +110,8 @@ const getEnvConfigFilePath = (env: Environment) => {
const overrideWithConfig = (config: Config, pathToConfig: string) => {
try {
console.log(`Overriding app config with ${pathToConfig}`);
- const externalConfig = fs.readFileSync(pathToConfig, 'utf8');
- mergeConfig(config, yaml.load(externalConfig));
+ const externalConfig = readFileSync(pathToConfig, 'utf8');
+ mergeConfig(config, load(externalConfig));
} catch (err) {
console.error(err);
}
@@ -178,18 +178,18 @@ export const buildAppConfig = (destConfigPath?: string): AppConfig => {
switch (env) {
case 'production':
- console.log(`Building ${colors.red.bold(`production`)} app config`);
+ console.log(`Building ${red.bold(`production`)} app config`);
break;
case 'test':
- console.log(`Building ${colors.blue.bold(`test`)} app config`);
+ console.log(`Building ${blue.bold(`test`)} app config`);
break;
default:
- console.log(`Building ${colors.green.bold(`development`)} app config`);
+ console.log(`Building ${green.bold(`development`)} app config`);
}
// override with default config
const defaultConfigPath = getDefaultConfigPath();
- if (fs.existsSync(defaultConfigPath)) {
+ if (existsSync(defaultConfigPath)) {
overrideWithConfig(appConfig, defaultConfigPath);
} else {
console.warn(`Unable to find default config file at ${defaultConfigPath}`);
@@ -197,7 +197,7 @@ export const buildAppConfig = (destConfigPath?: string): AppConfig => {
// override with env config
const localConfigPath = getEnvConfigFilePath(env);
- if (fs.existsSync(localConfigPath)) {
+ if (existsSync(localConfigPath)) {
overrideWithConfig(appConfig, localConfigPath);
} else {
console.warn(`Unable to find env config file at ${localConfigPath}`);
@@ -206,7 +206,7 @@ export const buildAppConfig = (destConfigPath?: string): AppConfig => {
// override with external config if specified by environment variable `DSPACE_APP_CONFIG_PATH`
const externalConfigPath = ENV('APP_CONFIG_PATH', true);
if (isNotEmpty(externalConfigPath)) {
- if (fs.existsSync(externalConfigPath)) {
+ if (existsSync(externalConfigPath)) {
overrideWithConfig(appConfig, externalConfigPath);
} else {
console.warn(`Unable to find external config file at ${externalConfigPath}`);
@@ -236,9 +236,9 @@ export const buildAppConfig = (destConfigPath?: string): AppConfig => {
buildBaseUrl(appConfig.rest);
if (isNotEmpty(destConfigPath)) {
- fs.writeFileSync(destConfigPath, JSON.stringify(appConfig, null, 2));
+ writeFileSync(destConfigPath, JSON.stringify(appConfig, null, 2));
- console.log(`Angular ${colors.bold('config.json')} file generated correctly at ${colors.bold(destConfigPath)} \n`);
+ console.log(`Angular ${bold('config.json')} file generated correctly at ${bold(destConfigPath)} \n`);
}
return appConfig;
diff --git a/src/config/config.util.ts b/src/config/config.util.ts
index c45282269c..3d152d4563 100644
--- a/src/config/config.util.ts
+++ b/src/config/config.util.ts
@@ -1,4 +1,4 @@
-import * as merge from 'deepmerge';
+import { all } from 'deepmerge';
import { environment } from '../environments/environment';
@@ -28,7 +28,7 @@ const mergeConfig = (destinationConfig: any, sourceConfig: AppConfig): void => {
const mergeOptions = {
arrayMerge: (destinationArray, sourceArray, options) => sourceArray
};
- Object.assign(destinationConfig, merge.all([
+ Object.assign(destinationConfig, all([
destinationConfig,
sourceConfig
], mergeOptions));
diff --git a/src/config/default-app-config.ts b/src/config/default-app-config.ts
index f489abc53b..a6949fabe2 100644
--- a/src/config/default-app-config.ts
+++ b/src/config/default-app-config.ts
@@ -204,7 +204,8 @@ export class DefaultAppConfig implements AppConfig {
{ code: 'kk', label: 'Қазақ', active: true },
{ code: 'bn', label: 'বাংলা', active: true },
{ code: 'hi', label: 'हिंदी', active: true},
- { code: 'el', label: 'Ελληνικά', active: true }
+ { code: 'el', label: 'Ελληνικά', active: true },
+ { code: 'uk', label: 'Yкраї́нська', active: true}
];
// Browse-By Pages
@@ -245,7 +246,13 @@ export class DefaultAppConfig implements AppConfig {
undoTimeout: 10000 // 10 seconds
},
// Show the item access status label in items lists
- showAccessStatuses: false
+ showAccessStatuses: false,
+ bitstream: {
+ // Number of entries in the bitstream list in the item view page.
+ // Rounded to the nearest size in the list of selectable sizes on the
+ // settings menu. See pageSizeOptions in 'pagination-component-options.model.ts'.
+ pageSize: 5
+ }
};
// Collection Page Config
diff --git a/src/config/item-config.interface.ts b/src/config/item-config.interface.ts
index f842c37c05..35cb5260ae 100644
--- a/src/config/item-config.interface.ts
+++ b/src/config/item-config.interface.ts
@@ -6,4 +6,11 @@ export interface ItemConfig extends Config {
};
// This is used to show the access status label of items in results lists
showAccessStatuses: boolean;
+
+ bitstream: {
+ // Number of entries in the bitstream list in the item view page.
+ // Rounded to the nearest size in the list of selectable sizes on the
+ // settings menu. See pageSizeOptions in 'pagination-component-options.model.ts'.
+ pageSize: number;
+ }
}
diff --git a/src/environments/environment.test.ts b/src/environments/environment.test.ts
index edd1cb9109..ec49ff6009 100644
--- a/src/environments/environment.test.ts
+++ b/src/environments/environment.test.ts
@@ -229,7 +229,13 @@ export const environment: BuildConfig = {
undoTimeout: 10000 // 10 seconds
},
// Show the item access status label in items lists
- showAccessStatuses: false
+ showAccessStatuses: false,
+ bitstream: {
+ // Number of entries in the bitstream list in the item view page.
+ // Rounded to the nearest size in the list of selectable sizes on the
+ // settings menu. See pageSizeOptions in 'pagination-component-options.model.ts'.
+ pageSize: 5
+ }
},
collection: {
edit: {
diff --git a/src/modules/app/browser-app.module.ts b/src/modules/app/browser-app.module.ts
index 6e3ebf5d37..6baf339003 100644
--- a/src/modules/app/browser-app.module.ts
+++ b/src/modules/app/browser-app.module.ts
@@ -35,7 +35,7 @@ import { BrowserInitService } from './browser-init.service';
export const REQ_KEY = makeStateKey
('req');
export function createTranslateLoader(transferState: TransferState, http: HttpClient) {
- return new TranslateBrowserLoader(transferState, http, 'assets/i18n/', '.json5');
+ return new TranslateBrowserLoader(transferState, http, 'assets/i18n/', '.json');
}
export function getRequest(transferState: TransferState): any {
diff --git a/src/modules/app/server-app.module.ts b/src/modules/app/server-app.module.ts
index fa529c4ad9..17e394ede8 100644
--- a/src/modules/app/server-app.module.ts
+++ b/src/modules/app/server-app.module.ts
@@ -31,7 +31,7 @@ import { ServerAuthRequestService } from '../../app/core/auth/server-auth-reques
import { ServerInitService } from './server-init.service';
export function createTranslateLoader(transferState: TransferState) {
- return new TranslateServerLoader(transferState, 'dist/server/assets/i18n/', '.json5');
+ return new TranslateServerLoader(transferState, 'dist/server/assets/i18n/', '.json');
}
@NgModule({
diff --git a/src/modules/app/server-init.service.ts b/src/modules/app/server-init.service.ts
index e93c692cd7..903bd91b7c 100644
--- a/src/modules/app/server-init.service.ts
+++ b/src/modules/app/server-init.service.ts
@@ -18,7 +18,6 @@ import { LocaleService } from '../../app/core/locale/locale.service';
import { Angulartics2DSpace } from '../../app/statistics/angulartics/dspace-provider';
import { MetadataService } from '../../app/core/metadata/metadata.service';
import { BreadcrumbsService } from '../../app/breadcrumbs/breadcrumbs.service';
-import { CSSVariableService } from '../../app/shared/sass-helper/sass-helper.service';
import { ThemeService } from '../../app/shared/theme-support/theme.service';
import { take } from 'rxjs/operators';
@@ -37,7 +36,6 @@ export class ServerInitService extends InitService {
protected angulartics2DSpace: Angulartics2DSpace,
protected metadata: MetadataService,
protected breadcrumbsService: BreadcrumbsService,
- protected cssService: CSSVariableService,
protected themeService: ThemeService,
) {
super(
diff --git a/src/ngx-translate-loaders/translate-browser.loader.ts b/src/ngx-translate-loaders/translate-browser.loader.ts
index 217f301bd5..a6188c9f15 100644
--- a/src/ngx-translate-loaders/translate-browser.loader.ts
+++ b/src/ngx-translate-loaders/translate-browser.loader.ts
@@ -5,7 +5,6 @@ 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 * as JSON5 from 'json5';
/**
* A TranslateLoader for ngx-translate to retrieve i18n messages from the TransferState, or download
@@ -37,7 +36,7 @@ export class TranslateBrowserLoader implements TranslateLoader {
// 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(
- map((json: any) => JSON5.parse(json))
+ 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 4ba6ccd5e9..c09c71f049 100644
--- a/src/ngx-translate-loaders/translate-server.loader.ts
+++ b/src/ngx-translate-loaders/translate-server.loader.ts
@@ -1,11 +1,9 @@
import { TranslateLoader } from '@ngx-translate/core';
import { Observable, of as observableOf } from 'rxjs';
-import * as fs from 'fs';
+import { readFileSync } from 'fs';
import { TransferState } from '@angular/platform-browser';
import { NGX_TRANSLATE_STATE, NgxTranslateState } from './ngx-translate-state';
-const JSON5 = require('json5').default;
-
/**
* A TranslateLoader for ngx-translate to parse json5 files server-side, and store them in the
* TransferState
@@ -26,7 +24,7 @@ export class TranslateServerLoader implements TranslateLoader {
*/
public getTranslation(lang: string): Observable {
// Retrieve the file for the given language, and parse it
- const messages = JSON5.parse(fs.readFileSync(`${this.prefix}${lang}${this.suffix}`, 'utf8'));
+ const messages = JSON.parse(readFileSync(`${this.prefix}${lang}${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/src/themes/custom/app/shared/dso-selector/modal-wrappers/create-community-parent-selector/create-community-parent-selector.component.html b/src/themes/custom/app/shared/dso-selector/modal-wrappers/create-community-parent-selector/create-community-parent-selector.component.html
index 84fdd34c01..4a22672988 100644
--- a/src/themes/custom/app/shared/dso-selector/modal-wrappers/create-community-parent-selector/create-community-parent-selector.component.html
+++ b/src/themes/custom/app/shared/dso-selector/modal-wrappers/create-community-parent-selector/create-community-parent-selector.component.html
@@ -9,7 +9,7 @@
diff --git a/src/themes/dspace/app/navbar/navbar.component.html b/src/themes/dspace/app/navbar/navbar.component.html
index 512ef45265..1a58edb8f2 100644
--- a/src/themes/dspace/app/navbar/navbar.component.html
+++ b/src/themes/dspace/app/navbar/navbar.component.html
@@ -1,12 +1,15 @@
-
+
-
+
+
+
+
diff --git a/src/themes/dspace/app/navbar/navbar.component.scss b/src/themes/dspace/app/navbar/navbar.component.scss
index 1ad95cb8aa..2859ec6d6c 100644
--- a/src/themes/dspace/app/navbar/navbar.component.scss
+++ b/src/themes/dspace/app/navbar/navbar.component.scss
@@ -29,7 +29,7 @@ nav.navbar {
/* TODO remove when https://github.com/twbs/bootstrap/issues/24726 is fixed */
.navbar-expand-md.navbar-container {
@media screen and (max-width: map-get($grid-breakpoints, md)-0.02) {
- > .container {
+ > .navbar-inner-container {
padding: 0 var(--bs-spacer);
a.navbar-brand {
display: none;
diff --git a/src/themes/dspace/styles/_global-styles.scss b/src/themes/dspace/styles/_global-styles.scss
index 3271f15bf2..e41dae0e3f 100644
--- a/src/themes/dspace/styles/_global-styles.scss
+++ b/src/themes/dspace/styles/_global-styles.scss
@@ -21,12 +21,3 @@
font-size: 1.1rem
}
}
-
-header {
- .navbar-navigation > li {
- display: flex;
- flex-direction: column;
- justify-content: center;
- height: 100%;
- }
-}
diff --git a/tsconfig.json b/tsconfig.json
index 4eb577de0f..7d2e9a69af 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -20,6 +20,7 @@
"strictNullChecks": false,
"skipDefaultLibCheck": true,
"pretty": true,
+ "allowSyntheticDefaultImports": true,
"target": "es2015",
"typeRoots": [
"node_modules/@types",
diff --git a/webpack/webpack.browser.ts b/webpack/webpack.browser.ts
index 2c33d91afd..5a3b4910ae 100644
--- a/webpack/webpack.browser.ts
+++ b/webpack/webpack.browser.ts
@@ -13,14 +13,14 @@ module.exports = Object.assign({}, commonExports, {
new CompressionPlugin({
filename: '[path][base].gz',
algorithm: 'gzip',
- test: /\.(js|css|html|svg|json5)$/,
+ test: /\.(js|css|html|svg|json)$/,
threshold: 10240,
minRatio: 0.8,
}),
new CompressionPlugin({
filename: '[path][base].br',
algorithm: 'brotliCompress',
- test: /\.(js|css|html|svg|json5)$/,
+ test: /\.(js|css|html|svg|json)$/,
compressionOptions: {
params: {
[zlib.constants.BROTLI_PARAM_QUALITY]: 11,
diff --git a/webpack/webpack.common.ts b/webpack/webpack.common.ts
index 9228d41141..05db3b7abf 100644
--- a/webpack/webpack.common.ts
+++ b/webpack/webpack.common.ts
@@ -3,6 +3,7 @@ import { globalCSSImports, projectRoot } from './helpers';
const CopyWebpackPlugin = require('copy-webpack-plugin');
const path = require('path');
const sass = require('sass');
+const JSON5 = require('json5');
export const copyWebpackOptions = {
patterns: [
@@ -11,6 +12,20 @@ export const copyWebpackOptions = {
to: path.join('assets', 'fonts'),
force: undefined
},
+ {
+ from: path.join(__dirname, '..', 'src', 'assets', '**', '*.json5').replace(/\\/g, '/'),
+ to({ absoluteFilename }) {
+ // use [\/|\\] to match both POSIX and Windows separators
+ const matches = absoluteFilename.match(/.*[\/|\\]assets[\/|\\](.+)\.json5$/);
+ if (matches) {
+ // matches[1] is the relative path from src/assets to the JSON5 file, without the extension
+ return path.join('assets', matches[1] + '.json');
+ }
+ },
+ transform(content) {
+ return JSON.stringify(JSON5.parse(content.toString()))
+ }
+ },
{
from: path.join(__dirname, '..', 'src', 'assets'),
to: 'assets',
diff --git a/yarn.lock b/yarn.lock
index 9542bfdbe1..3dbe595e03 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3221,10 +3221,10 @@ aws4@^1.8.0:
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
-axe-core@^4.3.3:
- version "4.4.1"
- resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.1.tgz#7dbdc25989298f9ad006645cd396782443757413"
- integrity sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==
+axe-core@^4.4.3:
+ version "4.4.3"
+ resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.3.tgz#11c74d23d5013c0fa5d183796729bc3482bd2f6f"
+ integrity sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==
axios@0.21.4:
version "0.21.4"
@@ -4686,10 +4686,10 @@ cypress-axe@^0.14.0:
resolved "https://registry.yarnpkg.com/cypress-axe/-/cypress-axe-0.14.0.tgz#5f5e70fb36b8cb3ba73a8ba01e9262ff1268d5e2"
integrity sha512-7Rdjnko0MjggCmndc1wECAkvQBIhuy+DRtjF7bd5YPZRFvubfMNvrxfqD8PWQmxm7MZE0ffS4Xr43V6ZmvLopg==
-cypress@9.5.1:
- version "9.5.1"
- resolved "https://registry.yarnpkg.com/cypress/-/cypress-9.5.1.tgz#51162f3688cedf5ffce311b914ef49a7c1ece076"
- integrity sha512-H7lUWB3Svr44gz1rNnj941xmdsCljXoJa2cDneAltjI9leKLMQLm30x6jLlpQ730tiVtIbW5HdUmBzPzwzfUQg==
+cypress@9.7.0:
+ version "9.7.0"
+ resolved "https://registry.yarnpkg.com/cypress/-/cypress-9.7.0.tgz#bf55b2afd481f7a113ef5604aa8b693564b5e744"
+ integrity sha512-+1EE1nuuuwIt/N1KXRR2iWHU+OiIt7H28jJDyyI4tiUftId/DrXYEwoDa5+kH2pki1zxnA0r6HrUGHV5eLbF5Q==
dependencies:
"@cypress/request" "^2.88.10"
"@cypress/xvfb" "^1.2.4"
@@ -4723,7 +4723,7 @@ cypress@9.5.1:
listr2 "^3.8.3"
lodash "^4.17.21"
log-symbols "^4.0.0"
- minimist "^1.2.5"
+ minimist "^1.2.6"
ospath "^1.2.2"
pretty-bytes "^5.6.0"
proxy-from-env "1.0.0"
@@ -4759,6 +4759,16 @@ data-urls@^3.0.1:
whatwg-mimetype "^3.0.0"
whatwg-url "^10.0.0"
+date-fns-tz@^1.3.7:
+ version "1.3.7"
+ resolved "https://registry.yarnpkg.com/date-fns-tz/-/date-fns-tz-1.3.7.tgz#e8e9d2aaceba5f1cc0e677631563081fdcb0e69a"
+ integrity sha512-1t1b8zyJo+UI8aR+g3iqr5fkUHWpd58VBx8J/ZSQ+w7YrGlw80Ag4sA86qkfCXRBLmMc4I2US+aPMd4uKvwj5g==
+
+date-fns@^2.29.3:
+ version "2.29.3"
+ resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8"
+ integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==
+
date-format@^4.0.4:
version "4.0.4"
resolved "https://registry.yarnpkg.com/date-format/-/date-format-4.0.4.tgz#b58036e29e74121fca3e1b3e0dc4a62c65faa233"
@@ -4783,10 +4793,10 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
dependencies:
ms "2.0.0"
-debug@4, debug@4.3.3, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@~4.3.1, debug@~4.3.2:
- version "4.3.3"
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
- integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
+debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2:
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
+ integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
dependencies:
ms "2.1.2"
@@ -4797,6 +4807,13 @@ debug@4.3.2:
dependencies:
ms "2.1.2"
+debug@4.3.3:
+ version "4.3.3"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
+ integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
+ dependencies:
+ ms "2.1.2"
+
debug@^3.1.0, debug@^3.1.1, debug@^3.2.6, debug@^3.2.7:
version "3.2.7"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
@@ -4804,13 +4821,6 @@ debug@^3.1.0, debug@^3.1.1, debug@^3.2.6, debug@^3.2.7:
dependencies:
ms "^2.1.1"
-debug@^4.3.4:
- version "4.3.4"
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
- integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
- dependencies:
- ms "2.1.2"
-
debug@~3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
@@ -4836,9 +4846,9 @@ decimal.js@^10.2.1, decimal.js@^10.3.1:
integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==
decode-uri-component@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
- integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
+ integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
decompress-response@^3.3.0:
version "3.3.0"
@@ -5704,6 +5714,13 @@ eslint-plugin-jsdoc@^38.0.6:
semver "^7.3.5"
spdx-expression-parse "^3.0.1"
+eslint-plugin-lodash@^7.4.0:
+ version "7.4.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-lodash/-/eslint-plugin-lodash-7.4.0.tgz#14a761547f126c92ff56789662a20a44f8bb6290"
+ integrity sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==
+ dependencies:
+ lodash "^4.17.21"
+
eslint-plugin-unused-imports@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-2.0.0.tgz#d8db8c4d0cfa0637a8b51ce3fd7d1b6bc3f08520"
@@ -7566,7 +7583,7 @@ isarray@1.0.0, isarray@~1.0.0:
isarray@2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e"
- integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=
+ integrity sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==
isbinaryfile@^4.0.8:
version "4.0.8"
@@ -8155,7 +8172,7 @@ kind-of@^6.0.0, kind-of@^6.0.2:
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
-klaro@^0.7.10:
+klaro@^0.7.18:
version "0.7.18"
resolved "https://registry.yarnpkg.com/klaro/-/klaro-0.7.18.tgz#fef3a05fcd656451b941e11459f37d6c336e84c0"
integrity sha512-Q5nehkGeZuFerisW4oeeB1ax6dHDszWckR70EcxKvhFiJQ61CM0WBSo20yLbdvz8N9MFsOFu4RNCO9JsbkCxgQ==
@@ -8926,11 +8943,6 @@ mkdirp@^1.0.3, mkdirp@^1.0.4:
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
-moment@^2.29.4:
- version "2.29.4"
- resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108"
- integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
-
morgan@^1.10.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7"
@@ -8962,7 +8974,7 @@ mrmime@^1.0.0:
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
- integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
+ integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
ms@2.1.2:
version "2.1.2"
@@ -9075,13 +9087,6 @@ ngx-mask@^13.1.7:
dependencies:
tslib "^2.3.0"
-ngx-moment@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/ngx-moment/-/ngx-moment-5.0.0.tgz#6500432a2fcda75fb236a632850e599db23c8177"
- integrity sha512-LPpGPo4ccdh8RWnDbJdLTLGGGcwbRYMbn/j4PXM24754J7MZ0tgnBM+ncaVbwefUSSEMme8yMkNIxFiVxgOOvQ==
- dependencies:
- tslib "^2.0.0"
-
ngx-pagination@5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/ngx-pagination/-/ngx-pagination-5.0.0.tgz#a4b4c150a70aef17ccd825e4543e174a974bbd14"
@@ -11908,9 +11913,9 @@ socket.io-client@2.4.0, socket.io-client@^2.4.0:
to-array "0.1.4"
socket.io-parser@~3.3.0:
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.2.tgz#ef872009d0adcf704f2fbe830191a14752ad50b6"
- integrity sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.3.tgz#3a8b84823eba87f3f7624e64a8aaab6d6318a72f"
+ integrity sha512-qOg87q1PMWWTeO01768Yh9ogn7chB9zkKtQnya41Y355S0UmpXgpcrFwAgjYJxu9BdKug5r5e9YtVSeWhKBUZg==
dependencies:
component-emitter "~1.3.0"
debug "~3.1.0"