From d5c55b33e2a1780d16d3c2bc693b2a573255439e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Fri, 23 Jul 2021 00:21:14 +0300 Subject: [PATCH] Translation rework: extract strings done --- .../admin-side-nav.component.html | 2 +- .../admin-side-nav.component.ts | 10 +- .../edit-color-dialog.component.ts | 7 +- ...ttributes-csv-import-dialog.component.html | 4 +- ...-attributes-csv-import-dialog.component.ts | 5 +- .../screens/audit/audit-screen.component.ts | 3 +- .../default-colors-screen.component.html | 2 +- .../dictionary-listing-screen.component.html | 2 +- .../dictionary-overview-screen.component.html | 2 +- .../digital-signature-screen.component.ts | 11 +- ...r-attributes-listing-screen.component.html | 4 +- ...e-attributes-listing-screen.component.html | 2 +- .../reports/reports-screen.component.html | 2 +- .../screens/rules/rules-screen.component.html | 2 +- .../user-listing-screen.component.ts | 3 +- .../watermark/watermark-screen.component.html | 2 +- .../admin-side-nav-translations.ts | 6 + .../dossier-details.component.html | 6 +- .../dossier-details.component.ts | 3 + .../file-actions/file-actions.component.ts | 4 +- .../page-exclusion.component.ts | 3 +- .../edit-dossier-attributes.component.html | 4 +- .../edit-dossier-dialog.component.html | 2 +- .../edit-dossier-dialog.component.ts | 5 +- .../edit-dossier-general-info.component.ts | 3 +- .../recategorize-image-dialog.component.html | 2 +- .../recategorize-image-dialog.component.ts | 5 +- .../dossier/models/image-category.model.ts | 1 + .../dossier-listing-screen.component.html | 5 +- .../dossier-listing-screen.component.ts | 2 +- .../dossier-overview-screen.component.ts | 5 +- .../file-preview-screen.component.html | 2 +- .../services/annotation-processing.service.ts | 5 +- .../services/manual-annotation.service.ts | 13 +- .../image-categories-translations.ts | 9 + .../shared/base/base-listing.component.ts | 9 + .../file-download-btn.component.ts | 3 +- .../dictionary-manager.component.ts | 3 +- .../side-nav/side-nav.component.html | 2 +- .../confirmation-dialog.component.ts | 3 +- .../services/dictionary-save.service.ts | 7 +- .../red-ui/src/app/state/app-state.service.ts | 2 +- .../app/utils/missing-translations-handler.ts | 2 +- apps/red-ui/src/assets/i18n/en.json | 86 +- apps/red-ui/src/assets/i18n/te.json | 1279 ----------------- package.json | 2 +- 46 files changed, 139 insertions(+), 1407 deletions(-) create mode 100644 apps/red-ui/src/app/modules/admin/translations/admin-side-nav-translations.ts create mode 100644 apps/red-ui/src/app/modules/dossier/models/image-category.model.ts create mode 100644 apps/red-ui/src/app/modules/dossier/translations/image-categories-translations.ts delete mode 100644 apps/red-ui/src/assets/i18n/te.json diff --git a/apps/red-ui/src/app/modules/admin/admin-side-nav/admin-side-nav.component.html b/apps/red-ui/src/app/modules/admin/admin-side-nav/admin-side-nav.component.html index 65bbc2a89..c7f2cb60a 100644 --- a/apps/red-ui/src/app/modules/admin/admin-side-nav/admin-side-nav.component.html +++ b/apps/red-ui/src/app/modules/admin/admin-side-nav/admin-side-nav.component.html @@ -1,4 +1,4 @@ - +
-
- {{ 'file-attributes-csv-import.csv-column' + (previewExpanded ? '' : '-preview') | translate }} -
+
- +
diff --git a/apps/red-ui/src/app/modules/admin/screens/dictionary-listing/dictionary-listing-screen.component.html b/apps/red-ui/src/app/modules/admin/screens/dictionary-listing/dictionary-listing-screen.component.html index b921d38b3..b6cac2fd1 100644 --- a/apps/red-ui/src/app/modules/admin/screens/dictionary-listing/dictionary-listing-screen.component.html +++ b/apps/red-ui/src/app/modules/admin/screens/dictionary-listing/dictionary-listing-screen.component.html @@ -17,7 +17,7 @@
- +
diff --git a/apps/red-ui/src/app/modules/admin/screens/dictionary-overview/dictionary-overview-screen.component.html b/apps/red-ui/src/app/modules/admin/screens/dictionary-overview/dictionary-overview-screen.component.html index 52eb89937..40e1787dd 100644 --- a/apps/red-ui/src/app/modules/admin/screens/dictionary-overview/dictionary-overview-screen.component.html +++ b/apps/red-ui/src/app/modules/admin/screens/dictionary-overview/dictionary-overview-screen.component.html @@ -51,7 +51,7 @@
- + { this.loadDigitalSignatureAndInitializeForm(); - this._toaster.success('digital-signature-screen.action.save-success'); + this._toaster.success(_('digital-signature-screen.action.save-success')); }, error => { if (error.status === 400) { - this._toaster.error('digital-signature-screen.action.certificate-not-valid-error'); + this._toaster.error(_('digital-signature-screen.action.certificate-not-valid-error')); } else { - this._toaster.error('digital-signature-screen.action.save-error'); + this._toaster.error(_('digital-signature-screen.action.save-error')); } } ); @@ -63,9 +64,9 @@ export class DigitalSignatureScreenComponent extends AutoUnsubscribeComponent im this.addSubscription = this._digitalSignatureControllerService.deleteDigitalSignature().subscribe( () => { this.loadDigitalSignatureAndInitializeForm(); - this._toaster.success('digital-signature-screen.action.delete-success'); + this._toaster.success(_('digital-signature-screen.action.delete-success')); }, - () => this._toaster.error('digital-signature-screen.action.delete-error') + () => this._toaster.error(_('digital-signature-screen.action.delete-error')) ); } diff --git a/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing-screen.component.html b/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing-screen.component.html index c9bd4a764..fd8b8381d 100644 --- a/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing-screen.component.html +++ b/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing-screen.component.html @@ -17,7 +17,7 @@
- +
@@ -129,7 +129,7 @@ diff --git a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.html b/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.html index 1edc6b311..6b4280c2d 100644 --- a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.html +++ b/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.html @@ -17,7 +17,7 @@
- +
diff --git a/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen.component.html b/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen.component.html index 118929ae0..c80a5168a 100644 --- a/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen.component.html +++ b/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen.component.html @@ -17,7 +17,7 @@
- +
diff --git a/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen.component.html b/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen.component.html index 66b8b7847..95c117176 100644 --- a/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen.component.html +++ b/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen.component.html @@ -17,7 +17,7 @@
- +
diff --git a/apps/red-ui/src/app/modules/admin/screens/user-listing/user-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/user-listing/user-listing-screen.component.ts index f22bf6f97..cb88b3ddd 100644 --- a/apps/red-ui/src/app/modules/admin/screens/user-listing/user-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/user-listing/user-listing-screen.component.ts @@ -66,8 +66,9 @@ export class UserListingScreenComponent extends BaseListingComponent imple } getDisplayRoles(user: User) { + const separator = ', '; return ( - user.roles.map(role => this._translateService.instant(this.translations[role])).join(', ') || + user.roles.map(role => this._translateService.instant(this.translations[role])).join(separator) || this._translateService.instant(this.translations['NO_ROLE']) ); } diff --git a/apps/red-ui/src/app/modules/admin/screens/watermark/watermark-screen.component.html b/apps/red-ui/src/app/modules/admin/screens/watermark/watermark-screen.component.html index 40f32fa43..5c96350ac 100644 --- a/apps/red-ui/src/app/modules/admin/screens/watermark/watermark-screen.component.html +++ b/apps/red-ui/src/app/modules/admin/screens/watermark/watermark-screen.component.html @@ -17,7 +17,7 @@
- +
diff --git a/apps/red-ui/src/app/modules/admin/translations/admin-side-nav-translations.ts b/apps/red-ui/src/app/modules/admin/translations/admin-side-nav-translations.ts new file mode 100644 index 000000000..b3c5972b5 --- /dev/null +++ b/apps/red-ui/src/app/modules/admin/translations/admin-side-nav-translations.ts @@ -0,0 +1,6 @@ +import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; + +export const adminSideNavTranslations = { + settings: _('admin-side-nav.settings'), + dossierTemplates: _('admin-side-nav.dossier-templates') +}; diff --git a/apps/red-ui/src/app/modules/dossier/components/dossier-details/dossier-details.component.html b/apps/red-ui/src/app/modules/dossier/components/dossier-details/dossier-details.component.html index c5a606aa3..dbd094540 100644 --- a/apps/red-ui/src/app/modules/dossier/components/dossier-details/dossier-details.component.html +++ b/apps/red-ui/src/app/modules/dossier/components/dossier-details/dossier-details.component.html @@ -1,15 +1,13 @@
- +
{{ appStateService.activeDossier.dossier.dossierName }}
diff --git a/apps/red-ui/src/app/modules/dossier/components/dossier-details/dossier-details.component.ts b/apps/red-ui/src/app/modules/dossier/components/dossier-details/dossier-details.component.ts index c0499b196..f26e9927c 100644 --- a/apps/red-ui/src/app/modules/dossier/components/dossier-details/dossier-details.component.ts +++ b/apps/red-ui/src/app/modules/dossier/components/dossier-details/dossier-details.component.ts @@ -11,6 +11,7 @@ import { Toaster } from '@services/toaster.service'; import { FilterService } from '@shared/services/filter.service'; import { DossierAttributeWithValue } from '@models/dossier-attributes.model'; import { fileStatusTranslations } from '../../translations/file-status-translations'; +import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; @Component({ selector: 'redaction-dossier-details', @@ -25,6 +26,8 @@ export class DossierDetailsComponent implements OnInit { @Output() openAssignDossierMembersDialog = new EventEmitter(); @Output() openDossierDictionaryDialog = new EventEmitter(); @Output() toggleCollapse = new EventEmitter(); + collapseTooltip = _('dossier-details.collapse'); + expandTooltip = _('dossier-details.expand'); readonly needsWorkFilters$ = this.filterService.getFilterModels$('needsWorkFilters'); diff --git a/apps/red-ui/src/app/modules/dossier/components/file-actions/file-actions.component.ts b/apps/red-ui/src/app/modules/dossier/components/file-actions/file-actions.component.ts index d57fcb2d5..134e5c222 100644 --- a/apps/red-ui/src/app/modules/dossier/components/file-actions/file-actions.component.ts +++ b/apps/red-ui/src/app/modules/dossier/components/file-actions/file-actions.component.ts @@ -48,10 +48,10 @@ export class FileActionsComponent implements OnInit { get toggleTooltip(): string { if (!this.permissionsService.isManager()) { - return 'file-preview.toggle-analysis.only-managers'; + return _('file-preview.toggle-analysis.only-managers'); } - return this.fileStatus?.isExcluded ? 'file-preview.toggle-analysis.enable' : 'file-preview.toggle-analysis.disable'; + return this.fileStatus?.isExcluded ? _('file-preview.toggle-analysis.enable') : _('file-preview.toggle-analysis.disable'); } get canAssignToSelf() { diff --git a/apps/red-ui/src/app/modules/dossier/components/page-exclusion/page-exclusion.component.ts b/apps/red-ui/src/app/modules/dossier/components/page-exclusion/page-exclusion.component.ts index 8a03fed66..991fd9b77 100644 --- a/apps/red-ui/src/app/modules/dossier/components/page-exclusion/page-exclusion.component.ts +++ b/apps/red-ui/src/app/modules/dossier/components/page-exclusion/page-exclusion.component.ts @@ -5,6 +5,7 @@ import { PageRange, ReanalysisControllerService } from '@redaction/red-ui-http'; import { FileDataModel } from '../../../../models/file/file-data.model'; import { Toaster } from '@services/toaster.service'; import { LoadingService } from '@services/loading.service'; +import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; @Component({ selector: 'redaction-page-exclusion', @@ -78,7 +79,7 @@ export class PageExclusionComponent implements OnChanges { this.excludePagesForm.reset(); this.actionPerformed.emit('exclude-pages'); } catch (e) { - this._toaster.error('file-preview.tabs.exclude-pages.error'); + this._toaster.error(_('file-preview.tabs.exclude-pages.error')); this._loadingService.stop(); } } diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/attributes/edit-dossier-attributes.component.html b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/attributes/edit-dossier-attributes.component.html index ded16d096..5037d8497 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/attributes/edit-dossier-attributes.component.html +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/attributes/edit-dossier-attributes.component.html @@ -6,8 +6,8 @@
@@ -36,8 +36,8 @@
- +
- {{ 'recategorize-image-dialog.options.' + option | translate }} + {{ translations[option] | translate }}
diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/recategorize-image-dialog/recategorize-image-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/recategorize-image-dialog/recategorize-image-dialog.component.ts index 5372c1a07..f6ba498c7 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/recategorize-image-dialog/recategorize-image-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/recategorize-image-dialog/recategorize-image-dialog.component.ts @@ -3,6 +3,8 @@ import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { PermissionsService } from '@services/permissions.service'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { AnnotationWrapper } from '@models/file/annotation.wrapper'; +import { imageCategoriesTranslations } from '../../translations/image-categories-translations'; +import { ImageCategory } from '../../models/image-category.model'; @Component({ selector: 'redaction-recategorize-image-dialog', @@ -12,7 +14,8 @@ import { AnnotationWrapper } from '@models/file/annotation.wrapper'; export class RecategorizeImageDialogComponent implements OnInit { recategorizeImageForm: FormGroup; isDocumentAdmin: boolean; - typeOptions: string[] = ['signature', 'logo', 'formula', 'image']; + typeOptions: ImageCategory[] = ['signature', 'logo', 'formula', 'image']; + translations = imageCategoriesTranslations; constructor( private readonly _permissionsService: PermissionsService, diff --git a/apps/red-ui/src/app/modules/dossier/models/image-category.model.ts b/apps/red-ui/src/app/modules/dossier/models/image-category.model.ts new file mode 100644 index 000000000..cbfc5355f --- /dev/null +++ b/apps/red-ui/src/app/modules/dossier/models/image-category.model.ts @@ -0,0 +1 @@ +export type ImageCategory = 'signature' | 'logo' | 'formula' | 'image'; diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-listing-screen/dossier-listing-screen.component.html b/apps/red-ui/src/app/modules/dossier/screens/dossier-listing-screen/dossier-listing-screen.component.html index 0a2b67ad8..8f4cbdf44 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-listing-screen/dossier-listing-screen.component.html +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-listing-screen/dossier-listing-screen.component.html @@ -8,10 +8,7 @@
- + ; diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview-screen/dossier-overview-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview-screen/dossier-overview-screen.component.ts index 2d808006d..586ea0844 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview-screen/dossier-overview-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview-screen/dossier-overview-screen.component.ts @@ -34,6 +34,7 @@ import { DossierAttributeWithValue } from '@models/dossier-attributes.model'; import { UserPreferenceService } from '@services/user-preference.service'; import { workloadTranslations } from '../../translations/workload-translations'; import { fileStatusTranslations } from '../../translations/file-status-translations'; +import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; @Component({ templateUrl: './dossier-overview-screen.component.html', @@ -148,9 +149,9 @@ export class DossierOverviewScreenComponent .reanalyzeDossier() .then(() => { this.reloadDossiers(); - this._toaster.success('dossier-overview.reanalyse-dossier.success'); + this._toaster.success(_('dossier-overview.reanalyse-dossier.success')); }) - .catch(() => this._toaster.error('dossier-overview.reanalyse-dossier.error')); + .catch(() => this._toaster.error(_('dossier-overview.reanalyse-dossier.error'))); } reloadDossiers() { diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.html b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.html index 0e11c468e..c5f7a327e 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.html +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.html @@ -151,8 +151,8 @@ extends AutoUnsubscribeComponent i readonly sortedDisplayedEntities$: Observable; readonly noMatch$: Observable; + protected readonly _tableHeaderLabel: string; /** * Key used in the *trackBy* function with **ngFor* or **cdkVirtualFor* * and in the default sorting and as the search field @@ -44,6 +45,14 @@ export abstract class BaseListingComponent extends AutoUnsubscribeComponent i this.noMatch$ = this._noMatch$; } + get tableHeaderLabel(): string { + if (!this._tableHeaderLabel) { + throw new Error('Not implemented'); + } + + return this._tableHeaderLabel; + } + get allEntities(): T[] { return this.screenStateService.allEntities; } diff --git a/apps/red-ui/src/app/modules/shared/components/buttons/file-download-btn/file-download-btn.component.ts b/apps/red-ui/src/app/modules/shared/components/buttons/file-download-btn/file-download-btn.component.ts index 081ec4fbd..25fdf22ef 100644 --- a/apps/red-ui/src/app/modules/shared/components/buttons/file-download-btn/file-download-btn.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/buttons/file-download-btn/file-download-btn.component.ts @@ -7,6 +7,7 @@ import { Toaster } from '@services/toaster.service'; import { BASE_HREF } from '../../../../../tokens'; import { AutoUnsubscribeComponent } from '@shared/base/auto-unsubscribe.component'; import { TranslateService } from '@ngx-translate/core'; +import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; export type MenuState = 'OPEN' | 'CLOSED'; @@ -53,7 +54,7 @@ export class FileDownloadBtnComponent extends AutoUnsubscribeComponent implement this.addSubscription = this._fileDownloadService .downloadFiles(Array.isArray(this.file) ? this.file : [this.file], this.dossier) .subscribe(() => { - this._toaster.info('download-status.queued', { params: { baseUrl: this._baseHref } }); + this._toaster.info(_('download-status.queued'), { params: { baseUrl: this._baseHref } }); }); } } diff --git a/apps/red-ui/src/app/modules/shared/components/dictionary-manager/dictionary-manager.component.ts b/apps/red-ui/src/app/modules/shared/components/dictionary-manager/dictionary-manager.component.ts index 6d1b55de0..3bdaac889 100644 --- a/apps/red-ui/src/app/modules/shared/components/dictionary-manager/dictionary-manager.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/dictionary-manager/dictionary-manager.component.ts @@ -5,6 +5,7 @@ import { debounce } from '@utils/debounce'; import { Observable } from 'rxjs'; import { map, take } from 'rxjs/operators'; import { DossierWrapper } from '@state/model/dossier.wrapper'; +import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import ICodeEditor = monaco.editor.ICodeEditor; import IDiffEditor = monaco.editor.IDiffEditor; import IModelDeltaDecoration = monaco.editor.IModelDeltaDecoration; @@ -37,7 +38,7 @@ export class DictionaryManagerComponent implements OnChanges, OnInit { showDiffEditor = false; searchText = ''; - selectDossier = { name: 'dictionary-overview.compare.select-dossier' }; + selectDossier = { name: _('dictionary-overview.compare.select-dossier') }; compare: false; private _codeEditor: ICodeEditor; diff --git a/apps/red-ui/src/app/modules/shared/components/side-nav/side-nav.component.html b/apps/red-ui/src/app/modules/shared/components/side-nav/side-nav.component.html index c2695417b..fd93d24b0 100644 --- a/apps/red-ui/src/app/modules/shared/components/side-nav/side-nav.component.html +++ b/apps/red-ui/src/app/modules/shared/components/side-nav/side-nav.component.html @@ -1,3 +1,3 @@ -
+
{{ title }}
diff --git a/apps/red-ui/src/app/modules/shared/dialogs/confirmation-dialog/confirmation-dialog.component.ts b/apps/red-ui/src/app/modules/shared/dialogs/confirmation-dialog/confirmation-dialog.component.ts index eb5f2ed92..47f4e943b 100644 --- a/apps/red-ui/src/app/modules/shared/dialogs/confirmation-dialog/confirmation-dialog.component.ts +++ b/apps/red-ui/src/app/modules/shared/dialogs/confirmation-dialog/confirmation-dialog.component.ts @@ -48,7 +48,8 @@ export class ConfirmationDialogComponent { ) { this.config = _confirmationDialogInput ?? new ConfirmationDialogInput(); this.config = this.translate(this.config); - this.inputLabel = this.translate('confirmation-dialog.delete-dossier.input-label') + ` '${this.config.confirmationText}'`; + this.inputLabel = + this._translateService.instant('confirmation-dialog.delete-dossier.input-label') + ` '${this.config.confirmationText}'`; } get isDeleteAction() { diff --git a/apps/red-ui/src/app/modules/shared/services/dictionary-save.service.ts b/apps/red-ui/src/app/modules/shared/services/dictionary-save.service.ts index 1f74a33d5..87523196d 100644 --- a/apps/red-ui/src/app/modules/shared/services/dictionary-save.service.ts +++ b/apps/red-ui/src/app/modules/shared/services/dictionary-save.service.ts @@ -3,6 +3,7 @@ import { Observable, throwError } from 'rxjs'; import { Toaster } from '@services/toaster.service'; import { DictionaryControllerService } from '@redaction/red-ui-http'; import { tap } from 'rxjs/operators'; +import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; const MIN_WORD_LENGTH = 2; @@ -39,13 +40,13 @@ export class DictionarySaveService { return obs.pipe( tap( () => { - if (showToast) this._toaster.success('dictionary-overview.success.generic'); + if (showToast) this._toaster.success(_('dictionary-overview.success.generic')); }, - () => this._toaster.error('dictionary-overview.error.generic') + () => this._toaster.error(_('dictionary-overview.error.generic')) ) ); } else { - this._toaster.error('dictionary-overview.error.entries-too-short'); + this._toaster.error(_('dictionary-overview.error.entries-too-short')); return throwError('Entries too short'); } diff --git a/apps/red-ui/src/app/state/app-state.service.ts b/apps/red-ui/src/app/state/app-state.service.ts index fa2139c6b..c1b8914c4 100644 --- a/apps/red-ui/src/app/state/app-state.service.ts +++ b/apps/red-ui/src/app/state/app-state.service.ts @@ -331,7 +331,7 @@ export class AppStateService { const index = this.allDossiers.findIndex(p => p.dossierId === dossier.dossierId); this._appState.dossiers.splice(index, 1); }, - () => this._toaster.error('dossiers.delete.delete-failed', { params: dossier }) + () => this._toaster.error(_('dossier-listing.delete.delete-failed'), { params: dossier }) ); } diff --git a/apps/red-ui/src/app/utils/missing-translations-handler.ts b/apps/red-ui/src/app/utils/missing-translations-handler.ts index 436d0ba02..b6b871c45 100644 --- a/apps/red-ui/src/app/utils/missing-translations-handler.ts +++ b/apps/red-ui/src/app/utils/missing-translations-handler.ts @@ -4,6 +4,6 @@ export class REDMissingTranslationHandler implements MissingTranslationHandler { handle(params: MissingTranslationHandlerParams): any { const missingKey = params.key; console.error('Missing translation: ' + missingKey); - return `?${missingKey}?`; + return missingKey; } } diff --git a/apps/red-ui/src/assets/i18n/en.json b/apps/red-ui/src/assets/i18n/en.json index aabcd5d98..069d2a8ce 100644 --- a/apps/red-ui/src/assets/i18n/en.json +++ b/apps/red-ui/src/assets/i18n/en.json @@ -106,6 +106,10 @@ }, "title": "{type, select, edit{Edit} create{Add New} other{}} User" }, + "admin-side-nav": { + "dossier-templates": "Dossier Templates", + "settings": "Settings" + }, "annotation": "Annotation", "annotation-actions": { "accept-recommendation": { @@ -189,7 +193,6 @@ "error": "Failed to request image recategorization: {error}", "success": "Image recategorization requested." }, - "search": "Document name...", "suggest": { "error": "Failed to save redaction suggestion: {error}", "success": "Redaction suggestion saved" @@ -201,9 +204,7 @@ } }, "recategorize-image": "Recategorize", - "reject": "Reject", "reject-suggestion": "Reject Suggestion", - "remove": "Remove", "remove-annotation": { "false-positive": "False Positive", "only-here": "Remove only here", @@ -237,15 +238,12 @@ "assign-dossier-owner": { "dialog": { "approvers": "Approvers", - "cancel": "Cancel", "make-approver": "Make Approver", "no-approvers": "No approvers yet.\nSelect from the list below.", "no-reviewers": "No reviewers yet.\nSelect from the list below.", "reviewers": "Reviewers", - "save": "Save Changes", "search": "Search...", - "single-user": "Owner", - "title": "Manage Dossier Team" + "single-user": "Owner" } }, "assign-owner": { @@ -299,7 +297,6 @@ "logout": "Logout" }, "by": "by", - "change-legal-basis": "Pending Change of Legal Basis", "change-legal-basis-dialog": { "actions": { "cancel": "Cancel", @@ -313,7 +310,6 @@ }, "header": "Edit Redaction Reason" }, - "comment": "Comment", "comments": { "add-comment": "Enter comment", "comments": "{count} {count, plural, one{comment} other{comments}}", @@ -394,7 +390,6 @@ "updatedColor": "Updated" } }, - "delete-files-error": "Failed to delete files.", "dev-mode": "DEV", "dictionaries": "Dictionaries", "dictionary": "Dictionary", @@ -552,13 +547,9 @@ "action": "Delete Dossier", "delete-failed": "Failed to delete dossier: {dossierName}" }, - "download-files": { - "action": "Download Redacted Files" - }, "edit": { "action": "Edit Dossier" }, - "header": "Dossiers", "no-data": { "action": "New Dossier", "title": "You currently have no dossiers." @@ -591,13 +582,9 @@ "status": "Status" }, "table-header": { - "recent": "Recent", - "title": "{length} active dossiers" + "title": "{length} active {length, plural, one{Dossier} other{Dossiers}}" } }, - "dossier-member-guard": { - "access-denied": "You are not allowed to access that page." - }, "dossier-overview": { "approve": "Approve", "approve-disabled": "File can only be approved once it has been analysed with the latest dictionaries and all suggestions have been processed.", @@ -639,7 +626,6 @@ "file-processing": "Processing" } }, - "header": "Dossier Overview", "header-actions": { "edit": "Edit Dossier", "upload-document": "Upload Document" @@ -666,13 +652,13 @@ "recent": "Recent ({hours} h)", "unassigned": "Unassigned" }, - "reanalyse": { - "action": "Analyze File" - }, "reanalyse-dossier": { "error": "Failed to schedule files for reanalysis. Please try again.", "success": "Files scheduled for reanalysis." }, + "reanalyse": { + "action": "Analyze File" + }, "search": "Document name...", "table-col-names": { "added-on": "Added", @@ -741,8 +727,7 @@ "date": "Date", "name": "Name", "size": "Size", - "status": "Status", - "type": "Type" + "status": "Status" }, "table-header": { "title": "{length} downloads" @@ -800,12 +785,11 @@ "download-package": "Download Package", "general-info": "General Information", "members": "Members", - "report-attributes": "Report Attributes", "team-members": "Team Members" }, + "side-nav-title": "Configurations", "unsaved-changes": "You have unsaved changes. Save or revert before changing the tab." }, - "efsa": "EFSA Approval", "file-attribute-types": { "date": "Date", "number": "Number", @@ -909,9 +893,7 @@ "exclude-pages": "Exclude pages from redaction", "excluded-from-redaction": "excluded from redaction", "fullscreen": "Full Screen (F)", - "html-debug": "Open Document HTML Debug", "last-reviewer": "Last Reviewed by:", - "new-tab-ssr": "Open Document in Server Side Rendering Mode", "no-data": { "title": "There are no annotations on this page." }, @@ -919,11 +901,9 @@ "jump-first": "Jump to first page", "jump-last": "Jump to last page" }, - "reanalyse-file": "File reanalysis in progress", "reanalyse-notification": "This document was not processed with the latest rule/dictionary set. Analyze now to get updated annotations.", "redacted": "Preview", "redacted-tooltip": "Redaction preview shows only redactions. Consider this a preview for the final redacted version. This view is only available if the file has no pending changes & doesn't require a reanalysis", - "reviewer": "Assigned to", "standard": "Standard", "standard-tooltip": "Standard Workload view shows all hints, redactions, recommendations & suggestions. This view allows editing.", "tabs": { @@ -963,8 +943,7 @@ "disable": "Disable redaction", "enable": "Enable for redaction", "only-managers": "Enabling / disabling is permitted only for managers" - }, - "unassigned": "Unassigned" + } }, "file-status": { "approved": "Approved", @@ -979,6 +958,13 @@ "under-review": "Under Review", "unprocessed": "Unprocessed" }, + "filter-menu": { + "filter-options": "Filter options", + "filter-types": "Filter types", + "label": "Filter", + "with-comments": "Only annotations with comments", + "with-reason-changes": "Only redactions with reason changes" + }, "filter": { "analysis": "Analysis required", "hint": "Hints only", @@ -988,30 +974,26 @@ "suggestion": "Suggested Redaction", "updated": "Updated" }, - "filter-menu": { - "filter-options": "Filter options", - "filter-types": "Filter types", - "label": "Filter", - "with-comments": "Only annotations with comments", - "with-reason-changes": "Only redactions with reason changes" - }, "filters": { "assigned-people": "Assignee(s)", - "dossier": "Dossier", "dossier-templates": "Rule Sets", "filter-by": "Filter:", "needs-work": "Workload", "people": "Dossier Member(s)", "status": "Status" }, - "finished": "Finished", "hint": "Hint", + "image-category": { + "formula": "Formula", + "image": "Image", + "logo": "Logo", + "signature": "Signature" + }, "initials-avatar": { "unassigned": "Unassigned", "you": "You" }, "license-info-screen": { - "3rd-party-title": "Reference to 3rd Party Licenses", "analyzed-pages": "Analyzed Pages", "backend-version": "Backend Application Version", "chart": { @@ -1025,6 +1007,7 @@ "copyright-claim-title": "Copyright Claim", "current-analyzed": "Analyzed Pages in Current Licensing Period", "custom-app-title": "Custom Application Title", + "email-report": "Email Report", "email": { "body": { "analyzed": "Total Analyzed Pages in current license period: {pages}.", @@ -1032,7 +1015,6 @@ }, "title": "License Report {licenseCustomer}" }, - "email-report": "Email Report", "end-user-license-text": "The use of this product is subject to the terms of the Redaction End User Agreement, unless other specified therein.", "end-user-license-title": "End User License Agreement", "frontend-version": "Frontend Application Version", @@ -1068,10 +1050,6 @@ "request-false-positive": "Request false positive", "request-redaction": "Request Redaction" } - }, - "undo": { - "error": "Failed to undo action.", - "success": "Action undone." } }, "notifications": { @@ -1103,7 +1081,6 @@ } } }, - "pending-analysis": "Pending Re-Analysis", "pending-changes-guard": "WARNING: You have unsaved changes. Press Cancel to go back and save these changes, or OK to lose these changes.", "readonly": "Read only", "recategorize-image-dialog": { @@ -1116,13 +1093,7 @@ "type": "Select image type", "type-placeholder": "Select a type..." }, - "header": "Edit Image Type", - "options": { - "formula": "Formula", - "image": "Image", - "logo": "Logo", - "signature": "Signature" - } + "header": "Edit Image Type" }, "redaction": "Redaction", "remove-annotations-dialog": { @@ -1188,8 +1159,6 @@ "generic": "Rules updated!" } }, - "settings": "Settings", - "skipped": "Skipped", "smtp-auth-config": { "actions": { "cancel": "Cancel", @@ -1242,7 +1211,6 @@ }, "title": "Configure SMTP Account" }, - "suggestion": "Suggestion for redaction", "time": { "days": "{days} {days, plural, one{day} other{days}}", "hours": "{hours} {hours, plural, one{hour} other{hours}}", diff --git a/apps/red-ui/src/assets/i18n/te.json b/apps/red-ui/src/assets/i18n/te.json deleted file mode 100644 index b0692e54b..000000000 --- a/apps/red-ui/src/assets/i18n/te.json +++ /dev/null @@ -1,1279 +0,0 @@ -{ - ", ": "", - "actions": { - "all": "", - "none": "" - }, - "active": "", - "add-dossier-dialog": { - "actions": { - "save": "", - "save-and-add-members": "" - }, - "errors": { - "dossier-already-exists": "", - "generic": "" - }, - "form": { - "description": { - "label": "", - "placeholder": "" - }, - "due-date": "", - "name": { - "label": "", - "placeholder": "" - }, - "template": "", - "watermark": "" - }, - "header-new": "" - }, - "add-edit-dictionary": { - "error": { - "dictionary-already-exists": "", - "generic": "", - "invalid-color-or-rank": "" - }, - "form": { - "add-to-dictionary-action": "", - "case-sensitive": "", - "color": "", - "color-placeholder": "", - "description": "", - "description-placeholder": "", - "hint": "", - "name": "", - "name-hint": "", - "name-placeholder": "", - "rank": "", - "rank-placeholder": "", - "redaction": "" - }, - "save": "", - "title": "" - }, - "add-edit-dossier-attribute": { - "error": { - "generic": "" - }, - "form": { - "label": "", - "label-placeholder": "", - "placeholder": "", - "type": "" - }, - "save": "", - "title": "" - }, - "add-edit-dossier-template": { - "form": { - "description": "", - "description-placeholder": "", - "name": "", - "name-placeholder": "", - "valid-from": "", - "valid-to": "" - }, - "save": "", - "title": "" - }, - "add-edit-file-attribute": { - "form": { - "column-header": "", - "column-header-placeholder": "", - "name": "", - "name-placeholder": "", - "primary": "", - "read-only": "", - "type": "" - }, - "save": "", - "title": "" - }, - "add-edit-user": { - "actions": { - "cancel": "", - "delete": "", - "save": "", - "save-changes": "" - }, - "form": { - "email": "", - "first-name": "", - "last-name": "", - "reset-password": "", - "role": "" - }, - "title": "" - }, - "annotation": "", - "annotation-actions": { - "accept-recommendation": { - "label": "" - }, - "accept-suggestion": { - "label": "" - }, - "edit-reason": { - "label": "" - }, - "force-redaction": { - "label": "" - }, - "hide": "", - "message": { - "dictionary": { - "add": { - "error": "", - "success": "" - }, - "approve": { - "error": "", - "success": "" - }, - "decline": { - "error": "", - "success": "" - }, - "remove": { - "error": "", - "success": "" - }, - "request-remove": { - "error": "", - "success": "" - }, - "suggest": { - "error": "", - "success": "" - }, - "undo": { - "error": "", - "success": "" - } - }, - "manual-redaction": { - "add": { - "error": "", - "success": "" - }, - "approve": { - "error": "", - "success": "" - }, - "change-legal-basis": { - "error": "", - "success": "" - }, - "decline": { - "error": "", - "success": "" - }, - "force-redaction": { - "error": "", - "success": "" - }, - "recategorize-image": { - "error": "", - "success": "" - }, - "request-change-legal-basis": { - "error": "", - "success": "" - }, - "request-force-redaction": { - "error": "", - "success": "" - }, - "request-image-recategorization": { - "error": "", - "success": "" - }, - "suggest": { - "error": "", - "success": "" - }, - "undo": { - "error": "", - "success": "" - } - } - }, - "recategorize-image": "", - "reject-suggestion": "", - "remove-annotation": { - "false-positive": "", - "only-here": "", - "remove-from-dict": "" - }, - "show": "", - "undo": "" - }, - "annotation-type": { - "add-dictionary": "", - "change-legal-basis": "", - "declined-suggestion": "", - "hint": "", - "manual-redaction": "", - "pending-analysis": "", - "recommendation": "", - "redaction": "", - "remove-dictionary": "", - "remove-only-here": "", - "skipped": "", - "suggestion-add": "", - "suggestion-add-dictionary": "", - "suggestion-change-legal-basis": "", - "suggestion-force-redaction": "", - "suggestion-recategorize-image": "", - "suggestion-remove": "", - "suggestion-remove-dictionary": "" - }, - "annotations": "", - "archived": "", - "assign-dossier-owner": { - "dialog": { - "approvers": "", - "make-approver": "", - "no-approvers": "", - "no-reviewers": "", - "reviewers": "", - "search": "", - "single-user": "" - } - }, - "assign-owner": { - "dialog": { - "cancel": "", - "label": "", - "save": "", - "title": "" - } - }, - "assign-user": { - "cancel": "", - "save": "" - }, - "audit": "", - "audit-screen": { - "categories": { - "all-categories": "", - "audit": "", - "audit-log": "", - "dictionary": "", - "document": "", - "dossier": "", - "dossier-template": "", - "download": "", - "license": "", - "project": "", - "project-template": "", - "user": "" - }, - "no-data": { - "title": "" - }, - "table-col-names": { - "category": "", - "date": "", - "message": "", - "user": "" - }, - "table-header": { - "title": "" - }, - "to": "" - }, - "auth-error": { - "heading": "", - "heading-with-link": "", - "heading-with-name": "", - "heading-with-name-and-link": "", - "logout": "" - }, - "by": "", - "change-legal-basis-dialog": { - "actions": { - "cancel": "", - "save": "" - }, - "content": { - "comment": "", - "legalBasis": "", - "reason": "", - "reason-placeholder": "" - }, - "header": "" - }, - "comments": { - "add-comment": "", - "comments": "", - "hide-comments": "" - }, - "common": { - "close": "", - "confirmation-dialog": { - "confirm": "", - "deny": "", - "description": "", - "title": "" - } - }, - "configurations": "", - "confirm-delete-file-attribute": { - "cancel": "", - "delete": "", - "impacted-documents": "", - "lost-details": "", - "title": "", - "toast-error": "", - "warning": "" - }, - "confirm-delete-users": { - "cancel": "", - "delete": "", - "impacted-documents": "", - "impacted-dossiers": "", - "title": "", - "toast-error": "", - "warning": "" - }, - "confirmation-dialog": { - "assign-file-to-me": { - "question": "", - "title": "" - }, - "compare-file": { - "question": "", - "title": "" - }, - "delete-dossier": { - "confirmation-text": "", - "deny-text": "", - "details": "", - "question": "", - "title": "" - }, - "delete-file": { - "question": "", - "title": "" - } - }, - "content": "", - "default-colors": "", - "default-colors-screen": { - "action": { - "edit": "" - }, - "table-col-names": { - "color": "", - "key": "" - }, - "table-header": { - "title": "" - }, - "types": { - "analysisColor": "", - "defaultColor": "", - "dictionaryRequestColor": "", - "manualRedactionColor": "", - "notRedacted": "", - "previewColor": "", - "requestAdd": "", - "requestRemove": "", - "updatedColor": "" - } - }, - "dev-mode": "", - "dictionaries": "", - "dictionary": "", - "dictionary-listing": { - "action": { - "delete": "", - "edit": "" - }, - "add-new": "", - "bulk": { - "delete": "" - }, - "case-sensitive": "", - "no-data": { - "action": "", - "title": "" - }, - "no-match": { - "title": "" - }, - "search": "", - "stats": { - "charts": { - "entries": "", - "types": "" - } - }, - "table-col-names": { - "hint-redaction": "", - "order-of-importance": "", - "type": "" - }, - "table-header": { - "title": "" - } - }, - "dictionary-overview": { - "action": { - "delete": "", - "download": "", - "edit": "", - "upload": "" - }, - "compare": { - "compare": "" - }, - "dictionary-details": { - "description": "" - }, - "revert-changes": "", - "save-changes": "", - "search": "", - "select-dictionary": "" - }, - "digital-signature": "", - "digital-signature-screen": { - "action": { - "delete": "", - "reset": "", - "save": "" - }, - "certificate-name": { - "label": "", - "placeholder": "" - }, - "contact-info": { - "label": "", - "placeholder": "" - }, - "location": { - "label": "", - "placeholder": "" - }, - "no-data": { - "action": "", - "title": "" - }, - "password": { - "label": "", - "placeholder": "" - }, - "reason": { - "label": "", - "placeholder": "" - } - }, - "document-info": { - "save": "", - "title": "" - }, - "dossier-attribute-types": { - "date": "", - "image": "", - "number": "", - "text": "" - }, - "dossier-attributes": "", - "dossier-attributes-listing": { - "action": { - "edit": "" - }, - "add-new": "", - "bulk": { - "delete": "" - }, - "no-data": { - "action": "", - "title": "" - }, - "no-match": { - "title": "" - }, - "search": "", - "table-col-names": { - "label": "", - "placeholder": "", - "type": "" - }, - "table-header": { - "title": "" - } - }, - "dossier-details": { - "assign-members": "", - "edit-owner": "", - "members": "", - "owner": "", - "see-less": "", - "title": "" - }, - "dossier-dictionary-dialog": { - "cancel": "", - "save-changes": "", - "title": "" - }, - "dossier-listing": { - "add-new": "", - "delete": { - "action": "" - }, - "edit": { - "action": "" - }, - "no-data": { - "action": "", - "title": "" - }, - "no-match": { - "title": "" - }, - "quick-filters": { - "my-dossiers": "", - "other": "", - "to-approve": "", - "to-review": "" - }, - "reanalyse": { - "action": "" - }, - "search": "", - "stats": { - "analyzed-pages": "", - "charts": { - "dossiers": "", - "total-documents": "" - }, - "total-people": "" - }, - "table-col-names": { - "name": "", - "needs-work": "", - "owner": "", - "status": "" - } - }, - "dossier-overview": { - "approve": "", - "approve-disabled": "", - "assign-approver": "", - "assign-me": "", - "assign-reviewer": "", - "bulk": { - "delete": "", - "reanalyse": "" - }, - "delete": { - "action": "" - }, - "dossier-details": { - "attributes": { - "expand": "", - "image-uploaded": "", - "show-less": "" - }, - "charts": { - "documents-in-dossier": "" - }, - "description": "", - "dictionary": "", - "stats": { - "analysed-pages": "", - "created-on": "", - "documents": "", - "due-date": "", - "people": "" - } - }, - "download-file": "", - "download-file-disabled": "", - "file-listing": { - "file-entry": { - "file-error": "", - "file-pending": "", - "file-processing": "" - } - }, - "header-actions": { - "edit": "", - "upload-document": "" - }, - "new-rule": { - "toast": { - "actions": { - "reanalyse-all": "" - } - } - }, - "no-data": { - "action": "", - "title": "" - }, - "no-match": { - "title": "" - }, - "ocr-file": "", - "ocr-performed": "", - "quick-filters": { - "assigned-to-me": "", - "assigned-to-others": "", - "recent": "", - "unassigned": "" - }, - "reanalyse": { - "action": "" - }, - "search": "", - "table-col-names": { - "added-on": "", - "assigned-to": "", - "name": "", - "needs-work": "", - "pages": "", - "status": "" - }, - "table-header": { - "title": "" - }, - "under-approval": "", - "under-review": "", - "upload-files": "" - }, - "dossier-templates": "", - "dossier-templates-listing": { - "action": { - "delete": "", - "edit": "" - }, - "add-new": "", - "bulk": { - "delete": "" - }, - "dictionaries": "", - "no-data": { - "title": "" - }, - "no-match": { - "title": "" - }, - "search": "", - "table-col-names": { - "created-by": "", - "created-on": "", - "modified-on": "", - "name": "" - }, - "table-header": { - "title": "" - } - }, - "download-includes": "", - "download-type": { - "annotated": "", - "flatten": "", - "label": "", - "original": "", - "preview": "", - "redacted": "" - }, - "downloads-list": { - "actions": { - "delete": "", - "download": "" - }, - "no-data": { - "title": "" - }, - "table-col-names": { - "date": "", - "name": "", - "size": "", - "status": "" - }, - "table-header": { - "title": "" - } - }, - "edit-color-dialog": { - "form": { - "color": "", - "color-placeholder": "" - }, - "save": "" - }, - "edit-dossier-dialog": { - "actions": { - "revert": "", - "save": "" - }, - "attributes": { - "custom-attributes": "", - "delete-image": "", - "image-attributes": "", - "upload-image": "" - }, - "dictionary": { - "entries": "" - }, - "general-info": { - "form": { - "description": { - "label": "", - "placeholder": "" - }, - "due-date": "", - "name": { - "label": "", - "placeholder": "" - }, - "template": "", - "watermark": "" - } - }, - "header": "", - "nav-items": { - "choose-download": "", - "dossier-attributes": "", - "dossier-dictionary": "", - "dossier-info": "", - "download-package": "", - "general-info": "", - "members": "", - "team-members": "" - } - }, - "file-attribute-types": { - "date": "", - "number": "", - "text": "" - }, - "file-attributes": "", - "file-attributes-csv-import": { - "action": { - "cancel-edit-name": "", - "edit-name": "", - "remove": "", - "save-name": "" - }, - "available": "", - "cancel": "", - "delimiter": "", - "delimiter-placeholder": "", - "encoding": "", - "encoding-placeholder": "", - "file": "", - "key-column": "", - "key-column-placeholder": "", - "no-data": { - "title": "" - }, - "no-hovered-column": "", - "no-sample-data-for": "", - "parse-csv": "", - "quick-activation": { - "all": "", - "none": "" - }, - "save": { - "label": "" - }, - "search": { - "placeholder": "" - }, - "selected": "", - "table-col-names": { - "name": "", - "primary": "", - "primary-info-tooltip": "", - "read-only": "", - "type": "" - }, - "table-header": { - "actions": { - "disable-read-only": "", - "enable-read-only": "", - "read-only": "", - "remove-selected": "", - "type": "" - }, - "title": "" - }, - "title": "", - "total-rows": "" - }, - "file-attributes-listing": { - "action": { - "delete": "", - "edit": "" - }, - "add-new": "", - "bulk-actions": { - "delete": "" - }, - "no-data": { - "title": "" - }, - "no-match": { - "title": "" - }, - "read-only": "", - "search": "", - "table-col-names": { - "csv-column": "", - "name": "", - "primary": "", - "primary-info-tooltip": "", - "read-only": "", - "type": "" - }, - "table-header": { - "title": "" - }, - "upload-csv": "" - }, - "file-preview": { - "assign-me": "", - "assign-reviewer": "", - "change-reviewer": "", - "delta": "", - "delta-tooltip": "", - "document-info": "", - "download-original-file": "", - "exclude-pages": "", - "excluded-from-redaction": "", - "fullscreen": "", - "last-reviewer": "", - "no-data": { - "title": "" - }, - "quick-nav": { - "jump-first": "", - "jump-last": "" - }, - "reanalyse-notification": "", - "redacted": "", - "redacted-tooltip": "", - "standard": "", - "standard-tooltip": "", - "tabs": { - "annotations": { - "jump-to-next": "", - "jump-to-previous": "", - "label": "", - "page-is": "", - "select": "", - "select-all": "", - "select-none": "" - }, - "document-info": { - "close": "", - "details": { - "created-on": "", - "dossier": "", - "due": "", - "pages": "" - }, - "edit": "", - "label": "" - }, - "exclude-pages": { - "close": "", - "hint": "", - "input-placeholder": "", - "label": "", - "no-excluded": "", - "put-back": "", - "removed-from-redaction": "" - } - } - }, - "file-status": { - "approved": "", - "error": "", - "excluded": "", - "full-reprocess": "", - "ocr-processing": "", - "processing": "", - "reprocess": "", - "unassigned": "", - "under-approval": "", - "under-review": "", - "unprocessed": "" - }, - "filter-menu": { - "filter-options": "", - "filter-types": "", - "label": "" - }, - "filter": { - "analysis": "", - "hint": "", - "image": "", - "none": "", - "redaction": "", - "suggestion": "", - "updated": "" - }, - "filters": { - "assigned-people": "", - "dossier-templates": "", - "filter-by": "", - "needs-work": "", - "people": "", - "status": "" - }, - "hint": "", - "initials-avatar": { - "unassigned": "", - "you": "" - }, - "license-info-screen": { - "analyzed-pages": "", - "backend-version": "", - "chart": { - "cumulative": "", - "legend": "", - "licensed-total": "", - "pages-per-month": "", - "total-pages": "" - }, - "copyright-claim-text": "", - "copyright-claim-title": "", - "current-analyzed": "", - "custom-app-title": "", - "email-report": "", - "email": { - "body": { - "analyzed": "", - "licensed": "" - }, - "title": "" - }, - "end-user-license-text": "", - "end-user-license-title": "", - "frontend-version": "", - "licensed-page-count": "", - "licensed-to": "", - "licensing-details": "", - "licensing-period": "", - "total-analyzed": "", - "unlicensed-analyzed": "", - "usage-details": "" - }, - "license-information": "", - "manual-annotation": { - "dialog": { - "actions": { - "save": "" - }, - "content": { - "comment": "", - "dictionary": "", - "legalBasis": "", - "reason": "", - "reason-placeholder": "", - "rectangle": "", - "text": "" - }, - "header": { - "force": "" - } - } - }, - "notifications": { - "mark-read": "", - "mark-unread": "", - "today": "", - "tomorrow": "", - "yesterday": "" - }, - "overwrite-files-dialog": { - "options": { - "cancel": "", - "overwrite": "", - "remember": "", - "skip": "" - }, - "question": "", - "title": "" - }, - "page": "", - "pagination": { - "next": "", - "previous": "" - }, - "pdf-viewer": { - "text-popup": { - "actions": { - "search": "" - } - } - }, - "pending-changes-guard": "", - "readonly": "", - "recategorize-image-dialog": { - "actions": { - "cancel": "", - "save": "" - }, - "content": { - "comment": "", - "type": "", - "type-placeholder": "" - }, - "header": "" - }, - "redaction": "", - "remove-annotations-dialog": { - "confirm": "", - "deny": "", - "dictionary": "", - "image-type": "", - "remove-from-dictionary": { - "question": "", - "title": "" - }, - "remove-only-here": { - "question": "", - "title": "" - }, - "value": "" - }, - "report-type": { - "excel-multi-file": "", - "excel-single-file": "", - "label": "", - "word-single-file-appendix-a1": "", - "word-single-file-appendix-a2": "" - }, - "reports": "", - "reports-screen": { - "description": "", - "document-setup-description": "", - "document-setup-heading": "", - "report-documents": "", - "title": "", - "upload-document": "" - }, - "reset-filters": "", - "reset-password-dialog": { - "actions": { - "cancel": "", - "save": "" - }, - "form": { - "password": "" - }, - "header": "" - }, - "roles": { - "inactive": "", - "manager-admin": "", - "no-role": "", - "red-admin": "", - "red-manager": "", - "red-user": "", - "red-user-admin": "", - "regular": "" - }, - "rule-editor": "", - "rules-screen": { - "error": { - "generic": "" - }, - "revert-changes": "", - "save-changes": "", - "success": { - "generic": "" - } - }, - "smtp-auth-config": { - "actions": { - "cancel": "", - "save": "" - }, - "form": { - "password": "", - "username": "", - "username-placeholder": "" - }, - "title": "" - }, - "smtp-config-screen": { - "actions": { - "save": "", - "test-connection": "" - }, - "form": { - "auth": "", - "change-credentials": "", - "envelope-from": "", - "envelope-from-hint": "", - "envelope-from-placeholder": "", - "from": "", - "from-display-name": "", - "from-display-name-hint": "", - "from-display-name-placeholder": "", - "from-placeholder": "", - "host": "", - "host-placeholder": "", - "port": "", - "reply-to": "", - "reply-to-display-name": "", - "reply-to-display-name-placeholder": "", - "reply-to-placeholder": "", - "ssl": "", - "starttls": "" - }, - "general": { - "form": { - "forgot-password": "" - }, - "subtitle": "", - "title": "" - }, - "subtitle": "", - "test": { - "error": "", - "success": "" - }, - "title": "" - }, - "time": { - "days": "", - "hours": "", - "less-than-an-hour": "", - "no-time-left": "" - }, - "top-bar": { - "navigation-items": { - "back": "", - "dossiers": "", - "my-account": { - "children": { - "admin": "", - "downloads": "", - "language": { - "de": "", - "en": "", - "label": "" - }, - "logout": "", - "my-profile": "", - "trash": "" - } - } - } - }, - "trash": { - "action": { - "delete": "", - "restore": "" - }, - "bulk": { - "delete": "", - "restore": "" - }, - "label": "", - "no-data": { - "title": "" - }, - "no-match": { - "title": "" - }, - "table-col-names": { - "deleted-on": "", - "name": "", - "owner": "", - "time-to-restore": "" - }, - "table-header": { - "title": "" - } - }, - "type": "", - "upload-status": { - "dialog": { - "actions": { - "cancel": "", - "re-upload": "" - }, - "title": "" - }, - "error": { - "file-size": "", - "generic": "" - } - }, - "user-listing": { - "action": { - "delete": "", - "edit": "" - }, - "add-new": "", - "bulk": { - "delete": "", - "delete-disabled": "" - }, - "no-match": { - "title": "" - }, - "search": "", - "table-col-names": { - "active": "", - "email": "", - "name": "", - "roles": "" - }, - "table-header": { - "title": "" - } - }, - "user-management": "", - "user-profile": { - "actions": { - "change-password": "", - "save": "" - }, - "form": { - "email": "", - "first-name": "", - "last-name": "" - }, - "title": "" - }, - "user-stats": { - "chart": { - "users": "" - }, - "collapse": "", - "expand": "", - "title": "" - }, - "watermark": "", - "watermark-screen": { - "action": { - "change-success": "", - "delete-success": "", - "error": "", - "revert": "", - "save": "" - }, - "form": { - "color": "", - "font-size": "", - "font-type": "", - "opacity": "", - "orientation": "", - "text-placeholder": "" - }, - "title": "" - } -} diff --git a/package.json b/package.json index 878b9d817..c4b8684a2 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "format:check": "nx format:check", "format:write": "nx format:write", "help": "nx help", - "i18n:extract": "ngx-translate-extract --input ./apps/red-ui/src --output apps/red-ui/src/assets/i18n/te.json --clean --sort --format namespaced-json", + "i18n:extract": "ngx-translate-extract --input ./apps/red-ui/src --output apps/red-ui/src/assets/i18n/en.json --clean --sort --format namespaced-json --format-indentation ' '", "postinstall": "ngcc --properties es2015 browser module main", "lint": "nx workspace-lint && nx lint", "lint-fix": "nx workspace-lint --fix && nx lint --fix",