+
+
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/authority-confidence/authority-confidence-state.directive.ts b/src/app/shared/authority-confidence/authority-confidence-state.directive.ts
index 8999a643e8..bf6f949575 100644
--- a/src/app/shared/authority-confidence/authority-confidence-state.directive.ts
+++ b/src/app/shared/authority-confidence/authority-confidence-state.directive.ts
@@ -11,7 +11,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 '../form/builder/models/form-field-metadata-value.model';
diff --git a/src/app/shared/chips/chips.component.ts b/src/app/shared/chips/chips.component.ts
index 17a6b034ee..94dfa00791 100644
--- a/src/app/shared/chips/chips.component.ts
+++ b/src/app/shared/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/chips/models/chips-item.model.ts b/src/app/shared/chips/models/chips-item.model.ts
index 5d0ff20e2f..9afeafd479 100644
--- a/src/app/shared/chips/models/chips-item.model.ts
+++ b/src/app/shared/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 '../../form/builder/models/form-field-metadata-value.model';
import { ConfidenceType } from '../../../core/shared/confidence-type';
diff --git a/src/app/shared/chips/models/chips.model.ts b/src/app/shared/chips/models/chips.model.ts
index c15badb976..2979c3dc09 100644
--- a/src/app/shared/chips/models/chips.model.ts
+++ b/src/app/shared/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/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 c6819012d9..56e371242b 100644
--- a/src/app/shared/cookies/browser-klaro.service.ts
+++ b/src/app/shared/cookies/browser-klaro.service.ts
@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
-import * as Klaro from 'klaro';
+import { setup, show } from 'klaro/dist/klaro-no-translations';
import { combineLatest as observableCombineLatest, Observable, of as observableOf } from 'rxjs';
import { AuthService } from '../../core/auth/auth.service';
import { TranslateService } from '@ngx-translate/core';
@@ -10,7 +10,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';
@@ -78,7 +79,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(
@@ -135,7 +136,7 @@ export class BrowserKlaroService extends KlaroService {
this.klaroConfig.services = this.filterConfigServices(servicesToHide);
- Klaro.setup(this.klaroConfig);
+ setup(this.klaroConfig);
});
}
@@ -219,7 +220,7 @@ export class BrowserKlaroService extends KlaroService {
* Show the cookie consent form
*/
showSettings() {
- Klaro.show(this.klaroConfig);
+ show(this.klaroConfig);
}
/**
@@ -227,12 +228,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);
});
});
}
@@ -246,7 +247,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/file-dropzone-no-uploader/file-dropzone-no-uploader.component.ts b/src/app/shared/file-dropzone-no-uploader/file-dropzone-no-uploader.component.ts
index 58960af19e..06636f4256 100644
--- a/src/app/shared/file-dropzone-no-uploader/file-dropzone-no-uploader.component.ts
+++ b/src/app/shared/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/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 cd10b9a4a3..fe495419f0 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 ef5e84e501..4978af970b 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/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/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/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/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/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/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 45e9764151..f723f081d3 100644
--- a/src/app/shared/shared.module.ts
+++ b/src/app/shared/shared.module.ts
@@ -19,7 +19,6 @@ import { MissingTranslationHandler, TranslateModule } from '@ngx-translate/core'
import { NgxPaginationModule } from 'ngx-pagination';
import { FileUploadModule } from 'ng2-file-upload';
import { InfiniteScrollModule } from 'ngx-infinite-scroll';
-import { MomentModule } from 'ngx-moment';
import { ConfirmationModalComponent } from './confirmation-modal/confirmation-modal.component';
import {
ExportMetadataSelectorComponent
@@ -342,7 +341,6 @@ const MODULES = [
ReactiveFormsModule,
RouterModule,
NouisliderModule,
- MomentModule,
DragDropModule,
CdkTreeModule,
GoogleRecaptchaModule,
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/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/uploader/uploader.component.ts b/src/app/shared/uploader/uploader.component.ts
index a0dd0e5bba..3cbf033b17 100644
--- a/src/app/shared/uploader/uploader.component.ts
+++ b/src/app/shared/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/shared/vocabulary-treeview/vocabulary-treeview.service.ts b/src/app/shared/vocabulary-treeview/vocabulary-treeview.service.ts
index ad2525bb7f..f04cd1bc28 100644
--- a/src/app/shared/vocabulary-treeview/vocabulary-treeview.service.ts
+++ b/src/app/shared/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/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..e8ae4ab2e9 100644
--- a/src/assets/i18n/el.json5
+++ b/src/assets/i18n/el.json5
@@ -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..a806588701 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",
@@ -1674,13 +1687,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 +2875,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",
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..c8e992182a 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",
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 7d4c49fa2d..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",
@@ -1260,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.",
@@ -2372,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",
@@ -2505,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",
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/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/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/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/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 @@