RED-9381: translations for pdf-viewer elements and watermarks editor.

This commit is contained in:
Nicoleta Panaghiu 2024-09-26 14:42:29 +03:00
parent d457f9a46f
commit fb8e66e32d
13 changed files with 223 additions and 91 deletions

View File

@ -21,6 +21,7 @@ import { NgForOf, NgIf } from '@angular/common';
import { MatFormField } from '@angular/material/form-field'; import { MatFormField } from '@angular/material/form-field';
import { MatOption, MatSelect } from '@angular/material/select'; import { MatOption, MatSelect } from '@angular/material/select';
import { MatSlideToggle } from '@angular/material/slide-toggle'; import { MatSlideToggle } from '@angular/material/slide-toggle';
import { PdfViewer } from '../../../../pdf-viewer/services/pdf-viewer.service';
@Component({ @Component({
templateUrl: './user-profile-screen.component.html', templateUrl: './user-profile-screen.component.html',
@ -45,6 +46,7 @@ export class UserProfileScreenComponent extends BaseFormComponent implements OnI
protected readonly _userPreferenceService: UserPreferenceService, protected readonly _userPreferenceService: UserPreferenceService,
private readonly _changeRef: ChangeDetectorRef, private readonly _changeRef: ChangeDetectorRef,
private readonly _toaster: Toaster, private readonly _toaster: Toaster,
private readonly _pdfViewer: PdfViewer,
) { ) {
super(); super();
this._loadingService.start(); this._loadingService.start();
@ -107,6 +109,7 @@ export class UserProfileScreenComponent extends BaseFormComponent implements OnI
if (this.languageChanged) { if (this.languageChanged) {
await this._languageService.change(this.form.get('language').value); await this._languageService.change(this.form.get('language').value);
await this._pdfViewer.instance?.UI.setLanguage(this._languageService.currentLanguage);
} }
if (this.themeChanged) { if (this.themeChanged) {

View File

@ -1,13 +1,13 @@
<div class="pagination noselect"> <div class="pagination noselect">
<div (click)="changePage.emit(1)" class="page-button" id="portraitPage"> <div (click)="changePage.emit(1)" class="page-button" id="portraitPage">
<mat-icon class="chevron-icon" svgIcon="iqser:nav-prev"></mat-icon> <mat-icon class="chevron-icon" svgIcon="iqser:nav-prev"></mat-icon>
Portrait {{ 'watermark-screen.pagination.portrait' | translate }}
</div> </div>
<div class="separator">/</div> <div class="separator">/</div>
<div (click)="changePage.emit(2)" class="page-button" id="landscapePage"> <div (click)="changePage.emit(2)" class="page-button" id="landscapePage">
Landscape {{ 'watermark-screen.pagination.landscape' | translate }}
<mat-icon class="chevron-icon" svgIcon="iqser:nav-next"></mat-icon> <mat-icon class="chevron-icon" svgIcon="iqser:nav-next"></mat-icon>
</div> </div>
</div> </div>

View File

@ -1,12 +1,13 @@
import { Component, EventEmitter, Output } from '@angular/core'; import { Component, EventEmitter, Output } from '@angular/core';
import { MatIcon } from '@angular/material/icon'; import { MatIcon } from '@angular/material/icon';
import { TranslateModule } from '@ngx-translate/core';
@Component({ @Component({
selector: 'redaction-paginator', selector: 'redaction-paginator',
templateUrl: './paginator.component.html', templateUrl: './paginator.component.html',
styleUrls: ['./paginator.component.scss'], styleUrls: ['./paginator.component.scss'],
standalone: true, standalone: true,
imports: [MatIcon], imports: [MatIcon, TranslateModule],
}) })
export class PaginatorComponent { export class PaginatorComponent {
@Output() readonly changePage = new EventEmitter<number>(); @Output() readonly changePage = new EventEmitter<number>();

View File

@ -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 { HeaderElements } from '../../file-preview/utils/constants';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { TranslateService } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core';
@ -16,18 +16,7 @@ export class LayersService {
private readonly _pdf: PdfViewer, private readonly _pdf: PdfViewer,
private readonly _documentViewer: REDDocumentViewer, private readonly _documentViewer: REDDocumentViewer,
private readonly _translateService: TranslateService, 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 { get toggleLayersBtnIcon(): string {
return this.#icon; return this.#icon;
@ -45,13 +34,16 @@ export class LayersService {
} }
}); });
this.updateIconState();
this._documentViewer.document.setLayersArray(layers); this._documentViewer.document.setLayersArray(layers);
this._documentViewer.refreshAndUpdateView(); this._documentViewer.refreshAndUpdateView();
} }
updateIconState() { updateState() {
this.#updateIconState();
this.#updateButton();
}
#updateIconState() {
const element = this._pdf.instance.UI.iframeWindow.document.querySelector(`[data-element=${HeaderElements.TOGGLE_LAYERS}]`); const element = this._pdf.instance.UI.iframeWindow.document.querySelector(`[data-element=${HeaderElements.TOGGLE_LAYERS}]`);
if (!element) return; if (!element) return;
if (this.active()) { if (this.active()) {
@ -63,7 +55,9 @@ export class LayersService {
#updateButton() { #updateButton() {
this._pdf.instance?.UI.updateElement(HeaderElements.TOGGLE_LAYERS, { this._pdf.instance?.UI.updateElement(HeaderElements.TOGGLE_LAYERS, {
title: this.toggleLayersBtnTitle, title: this._translateService.instant(_('pdf-viewer.header.toggle-layers'), {
active: this.active(),
}),
}); });
} }
} }

View File

@ -3,7 +3,7 @@ import { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-i
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { environment } from '@environments/environment'; 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 { shareDistinctLast, UI_ROOT_PATH_FN } from '@iqser/common-ui/lib/utils';
import { TranslateService } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core';
import WebViewer, { Core, WebViewerInstance, WebViewerOptions } from '@pdftron/webviewer'; import WebViewer, { Core, WebViewerInstance, WebViewerOptions } from '@pdftron/webviewer';
@ -70,6 +70,7 @@ export class PdfViewer {
private readonly _errorService: ErrorService, private readonly _errorService: ErrorService,
private readonly _userPreferenceService: UserPreferenceService, private readonly _userPreferenceService: UserPreferenceService,
private readonly _annotationManager: REDAnnotationManager, private readonly _annotationManager: REDAnnotationManager,
private readonly _languageService: LanguageService,
) { ) {
this.totalPages = this.#totalPages.asReadonly(); this.totalPages = this.#totalPages.asReadonly();
this.isCompareMode = this.#isCompareMode.asReadonly(); this.isCompareMode = this.#isCompareMode.asReadonly();
@ -152,6 +153,7 @@ export class PdfViewer {
await this.runWithCleanup(async () => { await this.runWithCleanup(async () => {
this.#instance.UI.setTheme(this._userPreferenceService.getTheme()); this.#instance.UI.setTheme(this._userPreferenceService.getTheme());
await this.#instance.UI.setLanguage(this._languageService.currentLanguage);
this._logger.info('[PDF] Initialized'); this._logger.info('[PDF] Initialized');
this.documentViewer = this.#instance.Core.documentViewer; this.documentViewer = this.#instance.Core.documentViewer;

View File

@ -29,24 +29,13 @@ export class ReadableRedactionsService {
return this.#active$.getValue(); return this.#active$.getValue();
} }
get toggleReadableRedactionsBtnTitle(): string {
return this._translateService.instant(_('pdf-viewer.toggle-readable-redactions'), {
active: this.active,
});
}
get toggleReadableRedactionsBtnIcon(): string { get toggleReadableRedactionsBtnIcon(): string {
return this.active ? this.#enableIcon : this.#disableIcon; return this.active ? this.#enableIcon : this.#disableIcon;
} }
toggleReadableRedactions(): void { toggleReadableRedactions(): void {
this.#active$.next(!this.active); this.#active$.next(!this.active);
this.updateState();
this._pdf.instance.UI.updateElement(HeaderElements.TOGGLE_READABLE_REDACTIONS, {
title: this.toggleReadableRedactionsBtnTitle,
img: this.toggleReadableRedactionsBtnIcon,
});
if (!this.active) { if (!this.active) {
this.setCustomDrawHandler(); this.setCustomDrawHandler();
} else { } else {
@ -88,4 +77,13 @@ export class ReadableRedactionsService {
annotation['FillColor'] = color; 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,
});
}
} }

View File

@ -15,21 +15,11 @@ export class TooltipsService {
private readonly _translateService: TranslateService, private readonly _translateService: TranslateService,
) {} ) {}
get toggleTooltipsBtnTitle(): string {
return this._translateService.instant(_('pdf-viewer.toggle-tooltips'), {
active: this._userPreferenceService.getFilePreviewTooltipsPreference(),
});
}
async toggleTooltips(): Promise<void> { async toggleTooltips(): Promise<void> {
await this._userPreferenceService.toggleFilePreviewTooltipsPreference(); await this._userPreferenceService.toggleFilePreviewTooltipsPreference();
this._documentViewer.updateTooltipsVisibility(); this._documentViewer.updateTooltipsVisibility();
this.updateIconState(); this.updateState();
this._pdf.instance.UI.updateElement(HeaderElements.TOGGLE_TOOLTIPS, {
title: this.toggleTooltipsBtnTitle,
});
} }
updateIconState() { updateIconState() {
@ -40,4 +30,13 @@ export class TooltipsService {
element.classList.remove('active'); 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(),
}),
});
}
} }

View File

@ -16,6 +16,8 @@ import { PdfViewer } from './pdf-viewer.service';
import { ReadableRedactionsService } from './readable-redactions.service'; import { ReadableRedactionsService } from './readable-redactions.service';
import { TooltipsService } from './tooltips.service'; import { TooltipsService } from './tooltips.service';
import { UI_ROOT_PATH_FN } from '@common-ui/utils'; 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 = { const divider: IHeaderElement = {
type: 'divider', type: 'divider',
@ -90,7 +92,7 @@ export class ViewerHeaderService {
toolGroup: 'rectangleTools', toolGroup: 'rectangleTools',
dataElement: HeaderElements.SHAPE_TOOL_GROUP_BUTTON, dataElement: HeaderElements.SHAPE_TOOL_GROUP_BUTTON,
img: this.#convertPath('/assets/icons/general/pdftron-rectangle.svg'), 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', type: 'actionButton',
element: HeaderElements.TOGGLE_TOOLTIPS, element: HeaderElements.TOGGLE_TOOLTIPS,
dataElement: HeaderElements.TOGGLE_TOOLTIPS, dataElement: HeaderElements.TOGGLE_TOOLTIPS,
title: this._tooltipsService.toggleTooltipsBtnTitle,
img: this.#convertPath('/assets/icons/general/pdftron-action-enable-tooltips.svg'), img: this.#convertPath('/assets/icons/general/pdftron-action-enable-tooltips.svg'),
onClick: () => this._ngZone.run(() => this._tooltipsService.toggleTooltips()), onClick: () => this._ngZone.run(() => this._tooltipsService.toggleTooltips()),
}; };
@ -110,7 +111,6 @@ export class ViewerHeaderService {
type: 'actionButton', type: 'actionButton',
element: HeaderElements.TOGGLE_LAYERS, element: HeaderElements.TOGGLE_LAYERS,
dataElement: HeaderElements.TOGGLE_LAYERS, dataElement: HeaderElements.TOGGLE_LAYERS,
title: this._layersService.toggleLayersBtnTitle,
img: this._layersService.toggleLayersBtnIcon, img: this._layersService.toggleLayersBtnIcon,
onClick: () => this._ngZone.run(() => this._layersService.toggleLayers()), onClick: () => this._ngZone.run(() => this._layersService.toggleLayers()),
}; };
@ -121,7 +121,6 @@ export class ViewerHeaderService {
type: 'actionButton', type: 'actionButton',
element: HeaderElements.TOGGLE_READABLE_REDACTIONS, element: HeaderElements.TOGGLE_READABLE_REDACTIONS,
dataElement: HeaderElements.TOGGLE_READABLE_REDACTIONS, dataElement: HeaderElements.TOGGLE_READABLE_REDACTIONS,
title: this._readableRedactionsService.toggleReadableRedactionsBtnTitle,
img: this._readableRedactionsService.toggleReadableRedactionsBtnIcon, img: this._readableRedactionsService.toggleReadableRedactionsBtnIcon,
onClick: () => this._ngZone.run(() => this._readableRedactionsService.toggleReadableRedactions()), onClick: () => this._ngZone.run(() => this._readableRedactionsService.toggleReadableRedactions()),
}; };
@ -130,7 +129,7 @@ export class ViewerHeaderService {
get #loadAllAnnotations(): IHeaderElement { get #loadAllAnnotations(): IHeaderElement {
return { return {
type: 'actionButton', 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'), img: this.#convertPath('/assets/icons/general/pdftron-action-load-all-annotations.svg'),
onClick: () => this._ngZone.run(() => this.#events$.next({ type: ViewerEvents.LOAD_ALL_ANNOTATIONS })), onClick: () => this._ngZone.run(() => this.#events$.next({ type: ViewerEvents.LOAD_ALL_ANNOTATIONS })),
dataElement: HeaderElements.LOAD_ALL_ANNOTATIONS, dataElement: HeaderElements.LOAD_ALL_ANNOTATIONS,
@ -143,7 +142,7 @@ export class ViewerHeaderService {
element: HeaderElements.ROTATE_LEFT_BUTTON, element: HeaderElements.ROTATE_LEFT_BUTTON,
dataElement: HeaderElements.ROTATE_LEFT_BUTTON, dataElement: HeaderElements.ROTATE_LEFT_BUTTON,
img: this.#convertPath('/assets/icons/general/rotate-left.svg'), img: this.#convertPath('/assets/icons/general/rotate-left.svg'),
title: 'Rotate page left', title: viewerHeaderButtonsTranslations[HeaderElements.ROTATE_LEFT_BUTTON],
onClick: () => onClick: () =>
this._ngZone.run(() => { this._ngZone.run(() => {
this._rotationService.addRotation(RotationTypes.LEFT); this._rotationService.addRotation(RotationTypes.LEFT);
@ -203,7 +202,7 @@ export class ViewerHeaderService {
element: HeaderElements.ROTATE_RIGHT_BUTTON, element: HeaderElements.ROTATE_RIGHT_BUTTON,
dataElement: HeaderElements.ROTATE_RIGHT_BUTTON, dataElement: HeaderElements.ROTATE_RIGHT_BUTTON,
img: this.#convertPath('/assets/icons/general/rotate-right.svg'), img: this.#convertPath('/assets/icons/general/rotate-right.svg'),
title: 'Rotate page right', title: viewerHeaderButtonsTranslations[HeaderElements.ROTATE_RIGHT_BUTTON],
onClick: () => onClick: () =>
this._ngZone.run(() => { this._ngZone.run(() => {
this._rotationService.addRotation(RotationTypes.RIGHT); this._rotationService.addRotation(RotationTypes.RIGHT);
@ -218,7 +217,7 @@ export class ViewerHeaderService {
element: HeaderElements.COMPARE_BUTTON, element: HeaderElements.COMPARE_BUTTON,
dataElement: HeaderElements.COMPARE_BUTTON, dataElement: HeaderElements.COMPARE_BUTTON,
img: this.#convertPath('/assets/icons/general/pdftron-action-compare.svg'), img: this.#convertPath('/assets/icons/general/pdftron-action-compare.svg'),
title: 'Compare', title: viewerHeaderButtonsTranslations[HeaderElements.COMPARE_BUTTON],
onClick: () => onClick: () =>
this._ngZone.run(async () => { this._ngZone.run(async () => {
document.getElementById('compareFileInput').click(); document.getElementById('compareFileInput').click();
@ -310,24 +309,27 @@ export class ViewerHeaderService {
header.getItems().splice(startButtons, header.getItems().length - deleteCount, ...enabledItems); 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) { if (this._pdf.instance) {
this._tooltipsService.updateIconState(); this._pdf.instance.UI.updateElement('selectToolButton', {
this._layersService.updateIconState(); 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( const closeCompareButton = this._pdf.instance.UI.iframeWindow.document.querySelector(
`[data-element=${HeaderElements.CLOSE_COMPARE_BUTTON}]`, `[data-element=${HeaderElements.CLOSE_COMPARE_BUTTON}]`,
); );
closeCompareButton?.classList.add('active'); closeCompareButton?.classList.add('active');
this.#configTooltips();
} }
} }
disableLoadAllAnnotations(): void { disableLoadAllAnnotations(): void {
this._pdf.instance.UI.updateElement(HeaderElements.LOAD_ALL_ANNOTATIONS, { this._pdf.instance.UI.updateElement(HeaderElements.LOAD_ALL_ANNOTATIONS, {
img: this.#convertPath('/assets/icons/general/pdftron-action-load-all-annotations-disabled.svg'), 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, onClick: undefined,
}); });
} }
@ -370,6 +372,37 @@ export class ViewerHeaderService {
this._pdf.navigateTo(1); 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[]) { #pushGroup(items: IHeaderElement[], group: HeaderElementType[]) {
const enabledItems = group.filter(item => this.#isEnabled(item)); const enabledItems = group.filter(item => this.#isEnabled(item));
if (enabledItems.length) { if (enabledItems.length) {

View File

@ -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<string | HeaderElementType, string> = {
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'),
};

View File

@ -2003,14 +2003,34 @@
"previous": "Vorherige" "previous": "Vorherige"
}, },
"pdf-viewer": { "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": { "text-popup": {
"actions": { "actions": {
"search": "Ausgewählten Text suchen" "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": { "permissions-screen": {
"dossier": { "dossier": {
@ -2525,10 +2545,6 @@
"view-as": "Ansicht:", "view-as": "Ansicht:",
"workflow": "Workflow-Spalten" "workflow": "Workflow-Spalten"
}, },
"viewer-header": {
"all-annotations-loaded": "Alle Annotationen geladen",
"load-all-annotations": "Alle Annotationen laden"
},
"watermark-screen": { "watermark-screen": {
"action": { "action": {
"change-success": "Wasserzeichen wurde aktualisiert.", "change-success": "Wasserzeichen wurde aktualisiert.",
@ -2557,6 +2573,10 @@
"orientation": "Textrichtung", "orientation": "Textrichtung",
"text-label": "Text für Wasserzeichen", "text-label": "Text für Wasserzeichen",
"text-placeholder": "Text eingeben" "text-placeholder": "Text eingeben"
},
"pagination": {
"landscape": "Querformat",
"portrait": "Hoch-"
} }
}, },
"watermarks-listing": { "watermarks-listing": {

View File

@ -2003,14 +2003,34 @@
"previous": "Prev" "previous": "Prev"
}, },
"pdf-viewer": { "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": { "text-popup": {
"actions": { "actions": {
"search": "Search for selected text" "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": { "permissions-screen": {
"dossier": { "dossier": {
@ -2525,10 +2545,6 @@
"view-as": "View as:", "view-as": "View as:",
"workflow": "Workflow" "workflow": "Workflow"
}, },
"viewer-header": {
"all-annotations-loaded": "All annotations loaded",
"load-all-annotations": "Load all annotations"
},
"watermark-screen": { "watermark-screen": {
"action": { "action": {
"change-success": "Watermark has been updated.", "change-success": "Watermark has been updated.",
@ -2557,6 +2573,10 @@
"orientation": "Orientation", "orientation": "Orientation",
"text-label": "Watermark text", "text-label": "Watermark text",
"text-placeholder": "Enter text" "text-placeholder": "Enter text"
},
"pagination": {
"landscape": "Landscape",
"portrait": "Portrait"
} }
}, },
"watermarks-listing": { "watermarks-listing": {

View File

@ -2003,14 +2003,34 @@
"previous": "Vorherige" "previous": "Vorherige"
}, },
"pdf-viewer": { "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": { "text-popup": {
"actions": { "actions": {
"search": "Search for selected text" "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": { "permissions-screen": {
"dossier": { "dossier": {
@ -2525,10 +2545,6 @@
"view-as": "Ansicht als:", "view-as": "Ansicht als:",
"workflow": "Arbeitsablauf" "workflow": "Arbeitsablauf"
}, },
"viewer-header": {
"all-annotations-loaded": "All annotations loaded",
"load-all-annotations": "Load all annotations"
},
"watermark-screen": { "watermark-screen": {
"action": { "action": {
"change-success": "Das Wasserzeichen wurde aktualisiert!", "change-success": "Das Wasserzeichen wurde aktualisiert!",
@ -2557,6 +2573,10 @@
"orientation": "Ausrichtung", "orientation": "Ausrichtung",
"text-label": "Watermark text", "text-label": "Watermark text",
"text-placeholder": "Text eingeben" "text-placeholder": "Text eingeben"
},
"pagination": {
"landscape": "",
"portrait": ""
} }
}, },
"watermarks-listing": { "watermarks-listing": {

View File

@ -2003,14 +2003,34 @@
"previous": "Prev" "previous": "Prev"
}, },
"pdf-viewer": { "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": { "text-popup": {
"actions": { "actions": {
"search": "Search for selected text" "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": { "permissions-screen": {
"dossier": { "dossier": {
@ -2525,10 +2545,6 @@
"view-as": "View as:", "view-as": "View as:",
"workflow": "Workflow" "workflow": "Workflow"
}, },
"viewer-header": {
"all-annotations-loaded": "All annotations loaded",
"load-all-annotations": "Load all annotations"
},
"watermark-screen": { "watermark-screen": {
"action": { "action": {
"change-success": "Watermark has been updated!", "change-success": "Watermark has been updated!",
@ -2557,6 +2573,10 @@
"orientation": "Orientation", "orientation": "Orientation",
"text-label": "Watermark text", "text-label": "Watermark text",
"text-placeholder": "Enter text" "text-placeholder": "Enter text"
},
"pagination": {
"landscape": "",
"portrait": ""
} }
}, },
"watermarks-listing": { "watermarks-listing": {