diff --git a/apps/red-ui/src/app/modules/account/screens/user-profile/user-profile-screen/user-profile-screen.component.ts b/apps/red-ui/src/app/modules/account/screens/user-profile/user-profile-screen/user-profile-screen.component.ts
index c8f055e13..08ee3e01f 100644
--- a/apps/red-ui/src/app/modules/account/screens/user-profile/user-profile-screen/user-profile-screen.component.ts
+++ b/apps/red-ui/src/app/modules/account/screens/user-profile/user-profile-screen/user-profile-screen.component.ts
@@ -21,6 +21,7 @@ import { NgForOf, NgIf } from '@angular/common';
import { MatFormField } from '@angular/material/form-field';
import { MatOption, MatSelect } from '@angular/material/select';
import { MatSlideToggle } from '@angular/material/slide-toggle';
+import { PdfViewer } from '../../../../pdf-viewer/services/pdf-viewer.service';
@Component({
templateUrl: './user-profile-screen.component.html',
@@ -45,6 +46,7 @@ export class UserProfileScreenComponent extends BaseFormComponent implements OnI
protected readonly _userPreferenceService: UserPreferenceService,
private readonly _changeRef: ChangeDetectorRef,
private readonly _toaster: Toaster,
+ private readonly _pdfViewer: PdfViewer,
) {
super();
this._loadingService.start();
@@ -107,6 +109,7 @@ export class UserProfileScreenComponent extends BaseFormComponent implements OnI
if (this.languageChanged) {
await this._languageService.change(this.form.get('language').value);
+ await this._pdfViewer.instance?.UI.setLanguage(this._languageService.currentLanguage);
}
if (this.themeChanged) {
diff --git a/apps/red-ui/src/app/modules/admin/screens/watermark/paginator/paginator.component.html b/apps/red-ui/src/app/modules/admin/screens/watermark/paginator/paginator.component.html
index 53985874c..22dcb04c5 100644
--- a/apps/red-ui/src/app/modules/admin/screens/watermark/paginator/paginator.component.html
+++ b/apps/red-ui/src/app/modules/admin/screens/watermark/paginator/paginator.component.html
@@ -1,13 +1,13 @@
diff --git a/apps/red-ui/src/app/modules/admin/screens/watermark/paginator/paginator.component.ts b/apps/red-ui/src/app/modules/admin/screens/watermark/paginator/paginator.component.ts
index a215d04b7..781f48911 100644
--- a/apps/red-ui/src/app/modules/admin/screens/watermark/paginator/paginator.component.ts
+++ b/apps/red-ui/src/app/modules/admin/screens/watermark/paginator/paginator.component.ts
@@ -1,12 +1,13 @@
import { Component, EventEmitter, Output } from '@angular/core';
import { MatIcon } from '@angular/material/icon';
+import { TranslateModule } from '@ngx-translate/core';
@Component({
selector: 'redaction-paginator',
templateUrl: './paginator.component.html',
styleUrls: ['./paginator.component.scss'],
standalone: true,
- imports: [MatIcon],
+ imports: [MatIcon, TranslateModule],
})
export class PaginatorComponent {
@Output() readonly changePage = new EventEmitter();
diff --git a/apps/red-ui/src/app/modules/pdf-viewer/services/layers.service.ts b/apps/red-ui/src/app/modules/pdf-viewer/services/layers.service.ts
index 74df931e8..958ea6054 100644
--- a/apps/red-ui/src/app/modules/pdf-viewer/services/layers.service.ts
+++ b/apps/red-ui/src/app/modules/pdf-viewer/services/layers.service.ts
@@ -1,4 +1,4 @@
-import { effect, inject, Injectable, signal } from '@angular/core';
+import { computed, effect, inject, Injectable, signal } from '@angular/core';
import { HeaderElements } from '../../file-preview/utils/constants';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { TranslateService } from '@ngx-translate/core';
@@ -16,18 +16,7 @@ export class LayersService {
private readonly _pdf: PdfViewer,
private readonly _documentViewer: REDDocumentViewer,
private readonly _translateService: TranslateService,
- ) {
- effect(() => {
- this.active();
- this.#updateButton();
- });
- }
-
- get toggleLayersBtnTitle(): string {
- return this._translateService.instant(_('pdf-viewer.toggle-layers'), {
- active: this.active(),
- });
- }
+ ) {}
get toggleLayersBtnIcon(): string {
return this.#icon;
@@ -45,13 +34,16 @@ export class LayersService {
}
});
- this.updateIconState();
-
this._documentViewer.document.setLayersArray(layers);
this._documentViewer.refreshAndUpdateView();
}
- updateIconState() {
+ updateState() {
+ this.#updateIconState();
+ this.#updateButton();
+ }
+
+ #updateIconState() {
const element = this._pdf.instance.UI.iframeWindow.document.querySelector(`[data-element=${HeaderElements.TOGGLE_LAYERS}]`);
if (!element) return;
if (this.active()) {
@@ -63,7 +55,9 @@ export class LayersService {
#updateButton() {
this._pdf.instance?.UI.updateElement(HeaderElements.TOGGLE_LAYERS, {
- title: this.toggleLayersBtnTitle,
+ title: this._translateService.instant(_('pdf-viewer.header.toggle-layers'), {
+ active: this.active(),
+ }),
});
}
}
diff --git a/apps/red-ui/src/app/modules/pdf-viewer/services/pdf-viewer.service.ts b/apps/red-ui/src/app/modules/pdf-viewer/services/pdf-viewer.service.ts
index a897f2d20..f4e80c3b5 100644
--- a/apps/red-ui/src/app/modules/pdf-viewer/services/pdf-viewer.service.ts
+++ b/apps/red-ui/src/app/modules/pdf-viewer/services/pdf-viewer.service.ts
@@ -3,7 +3,7 @@ import { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-i
import { ActivatedRoute } from '@angular/router';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { environment } from '@environments/environment';
-import { ErrorService, getConfig } from '@iqser/common-ui';
+import { ErrorService, getConfig, LanguageService } from '@iqser/common-ui';
import { shareDistinctLast, UI_ROOT_PATH_FN } from '@iqser/common-ui/lib/utils';
import { TranslateService } from '@ngx-translate/core';
import WebViewer, { Core, WebViewerInstance, WebViewerOptions } from '@pdftron/webviewer';
@@ -70,6 +70,7 @@ export class PdfViewer {
private readonly _errorService: ErrorService,
private readonly _userPreferenceService: UserPreferenceService,
private readonly _annotationManager: REDAnnotationManager,
+ private readonly _languageService: LanguageService,
) {
this.totalPages = this.#totalPages.asReadonly();
this.isCompareMode = this.#isCompareMode.asReadonly();
@@ -152,6 +153,7 @@ export class PdfViewer {
await this.runWithCleanup(async () => {
this.#instance.UI.setTheme(this._userPreferenceService.getTheme());
+ await this.#instance.UI.setLanguage(this._languageService.currentLanguage);
this._logger.info('[PDF] Initialized');
this.documentViewer = this.#instance.Core.documentViewer;
diff --git a/apps/red-ui/src/app/modules/pdf-viewer/services/readable-redactions.service.ts b/apps/red-ui/src/app/modules/pdf-viewer/services/readable-redactions.service.ts
index f512b3c52..5fa0bcd4f 100644
--- a/apps/red-ui/src/app/modules/pdf-viewer/services/readable-redactions.service.ts
+++ b/apps/red-ui/src/app/modules/pdf-viewer/services/readable-redactions.service.ts
@@ -29,24 +29,13 @@ export class ReadableRedactionsService {
return this.#active$.getValue();
}
- get toggleReadableRedactionsBtnTitle(): string {
- return this._translateService.instant(_('pdf-viewer.toggle-readable-redactions'), {
- active: this.active,
- });
- }
-
get toggleReadableRedactionsBtnIcon(): string {
return this.active ? this.#enableIcon : this.#disableIcon;
}
toggleReadableRedactions(): void {
this.#active$.next(!this.active);
-
- this._pdf.instance.UI.updateElement(HeaderElements.TOGGLE_READABLE_REDACTIONS, {
- title: this.toggleReadableRedactionsBtnTitle,
- img: this.toggleReadableRedactionsBtnIcon,
- });
-
+ this.updateState();
if (!this.active) {
this.setCustomDrawHandler();
} else {
@@ -88,4 +77,13 @@ export class ReadableRedactionsService {
annotation['FillColor'] = color;
});
}
+
+ updateState() {
+ this._pdf.instance.UI.updateElement(HeaderElements.TOGGLE_READABLE_REDACTIONS, {
+ title: this._translateService.instant(_('pdf-viewer.header.toggle-readable-redactions'), {
+ active: this.active,
+ }),
+ img: this.toggleReadableRedactionsBtnIcon,
+ });
+ }
}
diff --git a/apps/red-ui/src/app/modules/pdf-viewer/services/tooltips.service.ts b/apps/red-ui/src/app/modules/pdf-viewer/services/tooltips.service.ts
index 0282bbf72..e3a17eeb9 100644
--- a/apps/red-ui/src/app/modules/pdf-viewer/services/tooltips.service.ts
+++ b/apps/red-ui/src/app/modules/pdf-viewer/services/tooltips.service.ts
@@ -15,21 +15,11 @@ export class TooltipsService {
private readonly _translateService: TranslateService,
) {}
- get toggleTooltipsBtnTitle(): string {
- return this._translateService.instant(_('pdf-viewer.toggle-tooltips'), {
- active: this._userPreferenceService.getFilePreviewTooltipsPreference(),
- });
- }
-
async toggleTooltips(): Promise {
await this._userPreferenceService.toggleFilePreviewTooltipsPreference();
this._documentViewer.updateTooltipsVisibility();
- this.updateIconState();
-
- this._pdf.instance.UI.updateElement(HeaderElements.TOGGLE_TOOLTIPS, {
- title: this.toggleTooltipsBtnTitle,
- });
+ this.updateState();
}
updateIconState() {
@@ -40,4 +30,13 @@ export class TooltipsService {
element.classList.remove('active');
}
}
+
+ updateState() {
+ this.updateIconState();
+ this._pdf.instance.UI.updateElement(HeaderElements.TOGGLE_TOOLTIPS, {
+ title: this._translateService.instant(_('pdf-viewer.header.toggle-tooltips'), {
+ active: this._userPreferenceService.getFilePreviewTooltipsPreference(),
+ }),
+ });
+ }
}
diff --git a/apps/red-ui/src/app/modules/pdf-viewer/services/viewer-header.service.ts b/apps/red-ui/src/app/modules/pdf-viewer/services/viewer-header.service.ts
index e50423b4c..7c7a57eb9 100644
--- a/apps/red-ui/src/app/modules/pdf-viewer/services/viewer-header.service.ts
+++ b/apps/red-ui/src/app/modules/pdf-viewer/services/viewer-header.service.ts
@@ -16,6 +16,8 @@ import { PdfViewer } from './pdf-viewer.service';
import { ReadableRedactionsService } from './readable-redactions.service';
import { TooltipsService } from './tooltips.service';
import { UI_ROOT_PATH_FN } from '@common-ui/utils';
+import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
+import { viewerHeaderButtonsTranslations } from '@translations/pdf-viewer-translations';
const divider: IHeaderElement = {
type: 'divider',
@@ -90,7 +92,7 @@ export class ViewerHeaderService {
toolGroup: 'rectangleTools',
dataElement: HeaderElements.SHAPE_TOOL_GROUP_BUTTON,
img: this.#convertPath('/assets/icons/general/pdftron-rectangle.svg'),
- title: 'annotation.rectangle',
+ title: viewerHeaderButtonsTranslations[HeaderElements.SHAPE_TOOL_GROUP_BUTTON],
};
}
@@ -99,7 +101,6 @@ export class ViewerHeaderService {
type: 'actionButton',
element: HeaderElements.TOGGLE_TOOLTIPS,
dataElement: HeaderElements.TOGGLE_TOOLTIPS,
- title: this._tooltipsService.toggleTooltipsBtnTitle,
img: this.#convertPath('/assets/icons/general/pdftron-action-enable-tooltips.svg'),
onClick: () => this._ngZone.run(() => this._tooltipsService.toggleTooltips()),
};
@@ -110,7 +111,6 @@ export class ViewerHeaderService {
type: 'actionButton',
element: HeaderElements.TOGGLE_LAYERS,
dataElement: HeaderElements.TOGGLE_LAYERS,
- title: this._layersService.toggleLayersBtnTitle,
img: this._layersService.toggleLayersBtnIcon,
onClick: () => this._ngZone.run(() => this._layersService.toggleLayers()),
};
@@ -121,7 +121,6 @@ export class ViewerHeaderService {
type: 'actionButton',
element: HeaderElements.TOGGLE_READABLE_REDACTIONS,
dataElement: HeaderElements.TOGGLE_READABLE_REDACTIONS,
- title: this._readableRedactionsService.toggleReadableRedactionsBtnTitle,
img: this._readableRedactionsService.toggleReadableRedactionsBtnIcon,
onClick: () => this._ngZone.run(() => this._readableRedactionsService.toggleReadableRedactions()),
};
@@ -130,7 +129,7 @@ export class ViewerHeaderService {
get #loadAllAnnotations(): IHeaderElement {
return {
type: 'actionButton',
- title: this._translateService.instant('viewer-header.load-all-annotations'),
+ title: viewerHeaderButtonsTranslations[HeaderElements.LOAD_ALL_ANNOTATIONS],
img: this.#convertPath('/assets/icons/general/pdftron-action-load-all-annotations.svg'),
onClick: () => this._ngZone.run(() => this.#events$.next({ type: ViewerEvents.LOAD_ALL_ANNOTATIONS })),
dataElement: HeaderElements.LOAD_ALL_ANNOTATIONS,
@@ -143,7 +142,7 @@ export class ViewerHeaderService {
element: HeaderElements.ROTATE_LEFT_BUTTON,
dataElement: HeaderElements.ROTATE_LEFT_BUTTON,
img: this.#convertPath('/assets/icons/general/rotate-left.svg'),
- title: 'Rotate page left',
+ title: viewerHeaderButtonsTranslations[HeaderElements.ROTATE_LEFT_BUTTON],
onClick: () =>
this._ngZone.run(() => {
this._rotationService.addRotation(RotationTypes.LEFT);
@@ -203,7 +202,7 @@ export class ViewerHeaderService {
element: HeaderElements.ROTATE_RIGHT_BUTTON,
dataElement: HeaderElements.ROTATE_RIGHT_BUTTON,
img: this.#convertPath('/assets/icons/general/rotate-right.svg'),
- title: 'Rotate page right',
+ title: viewerHeaderButtonsTranslations[HeaderElements.ROTATE_RIGHT_BUTTON],
onClick: () =>
this._ngZone.run(() => {
this._rotationService.addRotation(RotationTypes.RIGHT);
@@ -218,7 +217,7 @@ export class ViewerHeaderService {
element: HeaderElements.COMPARE_BUTTON,
dataElement: HeaderElements.COMPARE_BUTTON,
img: this.#convertPath('/assets/icons/general/pdftron-action-compare.svg'),
- title: 'Compare',
+ title: viewerHeaderButtonsTranslations[HeaderElements.COMPARE_BUTTON],
onClick: () =>
this._ngZone.run(async () => {
document.getElementById('compareFileInput').click();
@@ -310,24 +309,27 @@ export class ViewerHeaderService {
header.getItems().splice(startButtons, header.getItems().length - deleteCount, ...enabledItems);
});
- this._pdf.instance?.UI.updateElement('selectToolButton', {
- img: this.#convertPath('/assets/icons/general/pdftron-cursor.svg'),
- });
-
if (this._pdf.instance) {
- this._tooltipsService.updateIconState();
- this._layersService.updateIconState();
+ this._pdf.instance.UI.updateElement('selectToolButton', {
+ img: this.#convertPath('/assets/icons/general/pdftron-cursor.svg'),
+ title: this._translateService.instant(viewerHeaderButtonsTranslations['selectToolButton']),
+ });
+
+ this._tooltipsService.updateState();
+ this._layersService.updateState();
+ this._readableRedactionsService.updateState();
const closeCompareButton = this._pdf.instance.UI.iframeWindow.document.querySelector(
`[data-element=${HeaderElements.CLOSE_COMPARE_BUTTON}]`,
);
closeCompareButton?.classList.add('active');
+ this.#configTooltips();
}
}
disableLoadAllAnnotations(): void {
this._pdf.instance.UI.updateElement(HeaderElements.LOAD_ALL_ANNOTATIONS, {
img: this.#convertPath('/assets/icons/general/pdftron-action-load-all-annotations-disabled.svg'),
- title: this._translateService.instant('viewer-header.all-annotations-loaded'),
+ title: this._translateService.instant(_('pdf-viewer.header.all-annotations-loaded')),
onClick: undefined,
});
}
@@ -370,6 +372,37 @@ export class ViewerHeaderService {
this._pdf.navigateTo(1);
}
+ #configTooltips() {
+ const elements: (string | HeaderElementType)[] = [
+ 'leftPanelButton',
+ 'thumbnailsPanelButton',
+ 'outlinesPanelButton',
+ 'outlineMultiSelect',
+ 'layersPanelButton',
+ 'signaturePanelButton',
+ 'zoomInButton',
+ 'zoomOutButton',
+ 'panToolButton',
+ HeaderElements.COMPARE_BUTTON,
+ HeaderElements.ROTATE_LEFT_BUTTON,
+ HeaderElements.ROTATE_RIGHT_BUTTON,
+ HeaderElements.LOAD_ALL_ANNOTATIONS,
+ HeaderElements.SHAPE_TOOL_GROUP_BUTTON,
+ ];
+
+ elements.forEach(element => {
+ if (this.#buttons.has(element as HeaderElementType)) {
+ this._pdf.instance.UI.updateElement(element, {
+ title: this._translateService.instant(this.#buttons.get(element as HeaderElementType).title),
+ });
+ } else {
+ this._pdf.instance.UI.updateElement(element, {
+ title: this._translateService.instant(viewerHeaderButtonsTranslations[element]),
+ });
+ }
+ });
+ }
+
#pushGroup(items: IHeaderElement[], group: HeaderElementType[]) {
const enabledItems = group.filter(item => this.#isEnabled(item));
if (enabledItems.length) {
diff --git a/apps/red-ui/src/app/translations/pdf-viewer-translations.ts b/apps/red-ui/src/app/translations/pdf-viewer-translations.ts
new file mode 100644
index 000000000..b352e3b79
--- /dev/null
+++ b/apps/red-ui/src/app/translations/pdf-viewer-translations.ts
@@ -0,0 +1,22 @@
+import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
+import { HeaderElements, HeaderElementType } from '../modules/file-preview/utils/constants';
+
+export const viewerHeaderButtonsTranslations: Record = {
+ leftPanelButton: _('pdf-viewer.header.left-panel-button'),
+ thumbnailsPanelButton: _('pdf-viewer.header.thumbnails-panel-button'),
+ outlinesPanelButton: _('pdf-viewer.header.outlines-panel-button'),
+ outlineMultiSelect: _('pdf-viewer.header.outline-multi-select'),
+ noOutlinesText: _('pdf-viewer.header.no-outlines-text'),
+ layersPanelButton: _('pdf-viewer.header.layers-panel-button'),
+ signaturePanelButton: _('pdf-viewer.header.signature-panel-button'),
+ noSignaturesText: _('pdf-viewer.header.no-signatures-text'),
+ zoomInButton: _('pdf-viewer.header.zoom-in-button'),
+ zoomOutButton: _('pdf-viewer.header.zoom-out-button'),
+ panToolButton: _('pdf-viewer.header.pan-tool-button'),
+ selectToolButton: _('pdf-viewer.header.select-tool-button'),
+ [HeaderElements.COMPARE_BUTTON]: _('pdf-viewer.header.compare-button'),
+ [HeaderElements.ROTATE_LEFT_BUTTON]: _('pdf-viewer.header.rotate-left-button'),
+ [HeaderElements.ROTATE_RIGHT_BUTTON]: _('pdf-viewer.header.rotate-right-button'),
+ [HeaderElements.SHAPE_TOOL_GROUP_BUTTON]: _('pdf-viewer.header.rectangle-tool-button'),
+ [HeaderElements.LOAD_ALL_ANNOTATIONS]: _('pdf-viewer.header.load-all-annotations'),
+};
diff --git a/apps/red-ui/src/assets/i18n/redact/de.json b/apps/red-ui/src/assets/i18n/redact/de.json
index 764732cc2..3c1fa2b69 100644
--- a/apps/red-ui/src/assets/i18n/redact/de.json
+++ b/apps/red-ui/src/assets/i18n/redact/de.json
@@ -2003,14 +2003,34 @@
"previous": "Vorherige"
},
"pdf-viewer": {
+ "header": {
+ "all-annotations-loaded": "Alle Annotationen geladen",
+ "compare-button": "Vergleichen",
+ "layers-panel-button": "Ebenen",
+ "left-panel-button": "Panel",
+ "load-all-annotations": "Alle Annotationen laden",
+ "no-outlines-text": "Keine Gliederung verfügbar",
+ "no-signatures-text": "In diesem Dokument gibt es keine Unterschriftenfelder",
+ "outline-multi-select": "Bearbeiten",
+ "outlines-panel-button": "Gliederung",
+ "pan-tool-button": "Verschieben",
+ "rectangle-tool-button": "Bereichsschwärzung",
+ "rotate-left-button": "Seite nach links drehen",
+ "rotate-right-button": "Seite nach rechts drehen",
+ "select-tool-button": "Auswählen",
+ "signature-panel-button": "Unterschriften",
+ "thumbnails-panel-button": "Miniaturansicht",
+ "toggle-layers": "Layout-Raster {active, select, true{deaktivieren} false{aktivieren} other{}}",
+ "toggle-readable-redactions": "Schwärzungen {active, select, true{wie im finalen Dokument} false{in Vorschau-Farbe} other{}} anzeigen",
+ "toggle-tooltips": "Tooltips zu Annotationen {active, select, true{deaktivieren} false{aktivieren} other{}}",
+ "zoom-in-button": "Vergrößern",
+ "zoom-out-button": "Verkleinern"
+ },
"text-popup": {
"actions": {
"search": "Ausgewählten Text suchen"
}
- },
- "toggle-layers": "Layout-Raster {active, select, true{deaktivieren} false{aktivieren} other{}}",
- "toggle-readable-redactions": "Schwärzungen {active, select, true{wie im finalen Dokument} false{in Vorschau-Farbe} other{}} anzeigen",
- "toggle-tooltips": "Tooltips zu Annotationen {active, select, true{deaktivieren} false{aktivieren} other{}}"
+ }
},
"permissions-screen": {
"dossier": {
@@ -2525,10 +2545,6 @@
"view-as": "Ansicht:",
"workflow": "Workflow-Spalten"
},
- "viewer-header": {
- "all-annotations-loaded": "Alle Annotationen geladen",
- "load-all-annotations": "Alle Annotationen laden"
- },
"watermark-screen": {
"action": {
"change-success": "Wasserzeichen wurde aktualisiert.",
@@ -2557,6 +2573,10 @@
"orientation": "Textrichtung",
"text-label": "Text für Wasserzeichen",
"text-placeholder": "Text eingeben"
+ },
+ "pagination": {
+ "landscape": "Querformat",
+ "portrait": "Hoch-"
}
},
"watermarks-listing": {
diff --git a/apps/red-ui/src/assets/i18n/redact/en.json b/apps/red-ui/src/assets/i18n/redact/en.json
index a703911d6..b85ba952e 100644
--- a/apps/red-ui/src/assets/i18n/redact/en.json
+++ b/apps/red-ui/src/assets/i18n/redact/en.json
@@ -2003,14 +2003,34 @@
"previous": "Prev"
},
"pdf-viewer": {
+ "header": {
+ "all-annotations-loaded": "All annotations loaded",
+ "compare-button": "Compare",
+ "layers-panel-button": "Layers",
+ "left-panel-button": "Panel",
+ "load-all-annotations": "Load all annotations",
+ "no-outlines-text": "No outlines available",
+ "no-signatures-text": "This document has NO signature fields",
+ "outline-multi-select": "Edit",
+ "outlines-panel-button": "Outlines",
+ "pan-tool-button": "Pan",
+ "rectangle-tool-button": "Rectangle",
+ "rotate-left-button": "Rotate page left",
+ "rotate-right-button": "Rotate page right",
+ "select-tool-button": "Select",
+ "signature-panel-button": "Signatures",
+ "thumbnails-panel-button": "Thumbnails",
+ "toggle-layers": "{active, select, true{Disable} false{Enable} other{}} layout grid",
+ "toggle-readable-redactions": "Show redactions {active, select, true{as in final document} false{in preview color} other{}}",
+ "toggle-tooltips": "{active, select, true{Disable} false{Enable} other{}} annotation tooltips",
+ "zoom-in-button": "Zoom In",
+ "zoom-out-button": "Zoom Out"
+ },
"text-popup": {
"actions": {
"search": "Search for selected text"
}
- },
- "toggle-layers": "{active, select, true{Disable} false{Enable} other{}} layout grid",
- "toggle-readable-redactions": "Show redactions {active, select, true{as in final document} false{in preview color} other{}}",
- "toggle-tooltips": "{active, select, true{Disable} false{Enable} other{}} annotation tooltips"
+ }
},
"permissions-screen": {
"dossier": {
@@ -2525,10 +2545,6 @@
"view-as": "View as:",
"workflow": "Workflow"
},
- "viewer-header": {
- "all-annotations-loaded": "All annotations loaded",
- "load-all-annotations": "Load all annotations"
- },
"watermark-screen": {
"action": {
"change-success": "Watermark has been updated.",
@@ -2557,6 +2573,10 @@
"orientation": "Orientation",
"text-label": "Watermark text",
"text-placeholder": "Enter text"
+ },
+ "pagination": {
+ "landscape": "Landscape",
+ "portrait": "Portrait"
}
},
"watermarks-listing": {
diff --git a/apps/red-ui/src/assets/i18n/scm/de.json b/apps/red-ui/src/assets/i18n/scm/de.json
index 91caf05d7..99184d67d 100644
--- a/apps/red-ui/src/assets/i18n/scm/de.json
+++ b/apps/red-ui/src/assets/i18n/scm/de.json
@@ -2003,14 +2003,34 @@
"previous": "Vorherige"
},
"pdf-viewer": {
+ "header": {
+ "all-annotations-loaded": "Alle Annotationen geladen",
+ "compare-button": "Vergleichen",
+ "layers-panel-button": "Ebenen",
+ "left-panel-button": "Panel",
+ "load-all-annotations": "Alle Annotationen laden",
+ "no-outlines-text": "Keine Gliederung verfügbar",
+ "no-signatures-text": "In diesem Dokument gibt es keine Unterschriftenfelder",
+ "outline-multi-select": "Bearbeiten",
+ "outlines-panel-button": "Gliederung",
+ "pan-tool-button": "Verschieben",
+ "rectangle-tool-button": "Bereichsschwärzung",
+ "rotate-left-button": "Seite nach links drehen",
+ "rotate-right-button": "Seite nach rechts drehen",
+ "select-tool-button": "Auswählen",
+ "signature-panel-button": "Unterschriften",
+ "thumbnails-panel-button": "Miniaturansicht",
+ "toggle-layers": "Layout-Raster {active, select, true{deaktivieren} false{aktivieren} other{}}",
+ "toggle-readable-redactions": "Schwärzungen {active, select, true{wie im finalen Dokument} false{in Vorschau-Farbe} other{}} anzeigen",
+ "toggle-tooltips": "Tooltips zu Annotationen {active, select, true{deaktivieren} false{aktivieren} other{}}",
+ "zoom-in-button": "Vergrößern",
+ "zoom-out-button": "Verkleinern"
+ },
"text-popup": {
"actions": {
"search": "Search for selected text"
}
- },
- "toggle-layers": "{active, select, true{Disable} false{Enable} other{}} layout grid",
- "toggle-readable-redactions": "Show components {active, select, true{as in final document} false{in preview color} other{}}",
- "toggle-tooltips": "{active, select, true{Disable} false{Enable} other{}} Kurzinfos für Anmerkungen"
+ }
},
"permissions-screen": {
"dossier": {
@@ -2525,10 +2545,6 @@
"view-as": "Ansicht als:",
"workflow": "Arbeitsablauf"
},
- "viewer-header": {
- "all-annotations-loaded": "All annotations loaded",
- "load-all-annotations": "Load all annotations"
- },
"watermark-screen": {
"action": {
"change-success": "Das Wasserzeichen wurde aktualisiert!",
@@ -2557,6 +2573,10 @@
"orientation": "Ausrichtung",
"text-label": "Watermark text",
"text-placeholder": "Text eingeben"
+ },
+ "pagination": {
+ "landscape": "",
+ "portrait": ""
}
},
"watermarks-listing": {
diff --git a/apps/red-ui/src/assets/i18n/scm/en.json b/apps/red-ui/src/assets/i18n/scm/en.json
index ccb133a4a..e9e92e2fe 100644
--- a/apps/red-ui/src/assets/i18n/scm/en.json
+++ b/apps/red-ui/src/assets/i18n/scm/en.json
@@ -2003,14 +2003,34 @@
"previous": "Prev"
},
"pdf-viewer": {
+ "header": {
+ "all-annotations-loaded": "All annotations loaded",
+ "compare-button": "Compare",
+ "layers-panel-button": "Layers",
+ "left-panel-button": "Panel",
+ "load-all-annotations": "Load all annotations",
+ "no-outlines-text": "No outlines available",
+ "no-signatures-text": "This document has NO signature fields",
+ "outline-multi-select": "Edit",
+ "outlines-panel-button": "Outlines",
+ "pan-tool-button": "Pan",
+ "rectangle-tool-button": "Rectangle",
+ "rotate-left-button": "Rotate page left",
+ "rotate-right-button": "Rotate page right",
+ "select-tool-button": "Select",
+ "signature-panel-button": "Signatures",
+ "thumbnails-panel-button": "Thumbnails",
+ "toggle-layers": "{active, select, true{Disable} false{Enable} other{}} layout grid",
+ "toggle-readable-redactions": "Show redactions {active, select, true{as in final document} false{in preview color} other{}}",
+ "toggle-tooltips": "{active, select, true{Disable} false{Enable} other{}} annotation tooltips",
+ "zoom-in-button": "Zoom In",
+ "zoom-out-button": "Zoom Out"
+ },
"text-popup": {
"actions": {
"search": "Search for selected text"
}
- },
- "toggle-layers": "{active, select, true{Disable} false{Enable} other{}} layout grid",
- "toggle-readable-redactions": "Show components {active, select, true{as in final document} false{in preview color} other{}}",
- "toggle-tooltips": "{active, select, true{Disable} false{Enable} other{}} annotation tooltips"
+ }
},
"permissions-screen": {
"dossier": {
@@ -2525,10 +2545,6 @@
"view-as": "View as:",
"workflow": "Workflow"
},
- "viewer-header": {
- "all-annotations-loaded": "All annotations loaded",
- "load-all-annotations": "Load all annotations"
- },
"watermark-screen": {
"action": {
"change-success": "Watermark has been updated!",
@@ -2557,6 +2573,10 @@
"orientation": "Orientation",
"text-label": "Watermark text",
"text-placeholder": "Enter text"
+ },
+ "pagination": {
+ "landscape": "",
+ "portrait": ""
}
},
"watermarks-listing": {