Add translation support and German texts.
This commit is contained in:
parent
25584ad2ff
commit
dfae068786
10 changed files with 500 additions and 39 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -4,3 +4,7 @@ build/
|
||||||
js/
|
js/
|
||||||
server/config.js
|
server/config.js
|
||||||
server/docker-compose.yml
|
server/docker-compose.yml
|
||||||
|
translationtool.phar
|
||||||
|
|
||||||
|
*.mo
|
||||||
|
*.po~
|
||||||
|
|
|
||||||
2
.l10nignore
Normal file
2
.l10nignore
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
js/loader.js
|
||||||
|
js/pdfdraw.js
|
||||||
21
Makefile
21
Makefile
|
|
@ -8,8 +8,29 @@ sign_dir=$(build_dir)/sign
|
||||||
package_name=$(app_name)
|
package_name=$(app_name)
|
||||||
cert_dir=$(HOME)/.nextcloud/certificates
|
cert_dir=$(HOME)/.nextcloud/certificates
|
||||||
|
|
||||||
|
POT_FILES=$(wildcard translationfiles/*/pdfdraw.po)
|
||||||
|
|
||||||
all: npm build
|
all: npm build
|
||||||
|
|
||||||
|
translationtool.phar:
|
||||||
|
curl -L -o translationtool.phar https://github.com/nextcloud/docker-ci/raw/master/translations/translationtool/translationtool.phar
|
||||||
|
chmod a+x translationtool.phar
|
||||||
|
|
||||||
|
.PHONY: pot
|
||||||
|
pot: translationtool.phar
|
||||||
|
./translationtool.phar create-pot-files
|
||||||
|
sed -i "s|$(CURDIR)/||" translationfiles/templates/pdfdraw.pot
|
||||||
|
|
||||||
|
.PHONY: po
|
||||||
|
po: $(POT_FILES)
|
||||||
|
|
||||||
|
translationfiles/%/pdfdraw.po: translationtool.phar pot
|
||||||
|
msgmerge --update $@ translationfiles/templates/pdfdraw.pot
|
||||||
|
|
||||||
|
.PHONY: l10n
|
||||||
|
l10n: translationtool.phar
|
||||||
|
./translationtool.phar convert-po-files
|
||||||
|
|
||||||
npm: package.json package-lock.json
|
npm: package.json package-lock.json
|
||||||
npm install
|
npm install
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<info>
|
<info>
|
||||||
<id>pdfdraw</id>
|
<id>pdfdraw</id>
|
||||||
<name>PDF annotations</name>
|
<name>PDF Annotations</name>
|
||||||
<summary><![CDATA[Annotate PDF documents]]></summary>
|
<summary><![CDATA[Annotate PDF documents]]></summary>
|
||||||
<description><![CDATA[PDF annotations for Nextcloud
|
<description><![CDATA[PDF annotations for Nextcloud
|
||||||
|
|
||||||
|
|
|
||||||
35
l10n/de.js
Normal file
35
l10n/de.js
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
OC.L10N.register(
|
||||||
|
"pdfdraw",
|
||||||
|
{
|
||||||
|
"FileId is empty." : "Keine FileId übergeben.",
|
||||||
|
"File not found." : "Datei wurde nicht gefunden.",
|
||||||
|
"You do not have enough permissions to view the file." : "Sie haben keine ausreichenden Berechtigungen, um die Datei zu öffnen.",
|
||||||
|
"Token is empty." : "Kein Token übergeben.",
|
||||||
|
"File %s is not a PDF file (%s)." : "Datei %s ist kein PDF Dokument (%s).",
|
||||||
|
"No backend configured." : "Kein Backend konfiguriert.",
|
||||||
|
"Invalid token." : "Ungültiger Token.",
|
||||||
|
"Access denied." : "Zugriff verweigert.",
|
||||||
|
"PDF Annotations" : "PDF Annotationen",
|
||||||
|
"Annotate PDF documents" : "PDF Dokumente annotieren",
|
||||||
|
"Annotate" : "Annotieren",
|
||||||
|
"Open" : "Öffnen",
|
||||||
|
"Backend server" : "Backend-Server",
|
||||||
|
"Saved" : "Gespeichert",
|
||||||
|
"Shared secret" : "Geteiltes Geheimnis",
|
||||||
|
"Establishing connection, please wait..." : "Verbindung wird hergestellt, bitte warten...",
|
||||||
|
"The connection is interrupted, reconnecting..." : "Die Verbindung ist unterbrochen, verbinde neu...",
|
||||||
|
"Generating combined PDF, please wait..." : "Zusammengefügtes PDF wird erstellt, bitte warten...",
|
||||||
|
"PDF generation failed, please try again later." : "PDF Erzeugung fehlgeschlagen, bitte versuchen Sie es später nochmal.",
|
||||||
|
"Freehand" : "Freihand",
|
||||||
|
"Rectangle" : "Rechteck",
|
||||||
|
"Ellipse" : "Ellipse",
|
||||||
|
"Line" : "Linie",
|
||||||
|
"No tool" : "Nichts wählen",
|
||||||
|
"Select" : "Auswählen",
|
||||||
|
"Pointer" : "Zeiger",
|
||||||
|
"Draw mode" : "Zeichenmodus",
|
||||||
|
"Select color" : "Farbe wählen",
|
||||||
|
"Download" : "Herunterladen",
|
||||||
|
"Close" : "Schließen"
|
||||||
|
},
|
||||||
|
"nplurals=2; plural=(n != 1);");
|
||||||
33
l10n/de.json
Normal file
33
l10n/de.json
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
{ "translations": {
|
||||||
|
"FileId is empty." : "Keine FileId übergeben.",
|
||||||
|
"File not found." : "Datei wurde nicht gefunden.",
|
||||||
|
"You do not have enough permissions to view the file." : "Sie haben keine ausreichenden Berechtigungen, um die Datei zu öffnen.",
|
||||||
|
"Token is empty." : "Kein Token übergeben.",
|
||||||
|
"File %s is not a PDF file (%s)." : "Datei %s ist kein PDF Dokument (%s).",
|
||||||
|
"No backend configured." : "Kein Backend konfiguriert.",
|
||||||
|
"Invalid token." : "Ungültiger Token.",
|
||||||
|
"Access denied." : "Zugriff verweigert.",
|
||||||
|
"PDF Annotations" : "PDF Annotationen",
|
||||||
|
"Annotate PDF documents" : "PDF Dokumente annotieren",
|
||||||
|
"Annotate" : "Annotieren",
|
||||||
|
"Open" : "Öffnen",
|
||||||
|
"Backend server" : "Backend-Server",
|
||||||
|
"Saved" : "Gespeichert",
|
||||||
|
"Shared secret" : "Geteiltes Geheimnis",
|
||||||
|
"Establishing connection, please wait..." : "Verbindung wird hergestellt, bitte warten...",
|
||||||
|
"The connection is interrupted, reconnecting..." : "Die Verbindung ist unterbrochen, verbinde neu...",
|
||||||
|
"Generating combined PDF, please wait..." : "Zusammengefügtes PDF wird erstellt, bitte warten...",
|
||||||
|
"PDF generation failed, please try again later." : "PDF Erzeugung fehlgeschlagen, bitte versuchen Sie es später nochmal.",
|
||||||
|
"Freehand" : "Freihand",
|
||||||
|
"Rectangle" : "Rechteck",
|
||||||
|
"Ellipse" : "Ellipse",
|
||||||
|
"Line" : "Linie",
|
||||||
|
"No tool" : "Nichts wählen",
|
||||||
|
"Select" : "Auswählen",
|
||||||
|
"Pointer" : "Zeiger",
|
||||||
|
"Draw mode" : "Zeichenmodus",
|
||||||
|
"Select color" : "Farbe wählen",
|
||||||
|
"Download" : "Herunterladen",
|
||||||
|
"Close" : "Schließen"
|
||||||
|
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||||
|
}
|
||||||
|
|
@ -148,7 +148,7 @@ class ViewerController extends Controller {
|
||||||
*/
|
*/
|
||||||
private function getFile($userId, $fileId) {
|
private function getFile($userId, $fileId) {
|
||||||
if (empty($fileId)) {
|
if (empty($fileId)) {
|
||||||
return [NULL, $this->l10n->t("FileId is empty")];
|
return [NULL, $this->l10n->t("FileId is empty.")];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($userId !== NULL) {
|
if ($userId !== NULL) {
|
||||||
|
|
@ -159,19 +159,19 @@ class ViewerController extends Controller {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($files)) {
|
if (empty($files)) {
|
||||||
return [NULL, $this->l10n->t("File not found")];
|
return [NULL, $this->l10n->t("File not found.")];
|
||||||
}
|
}
|
||||||
$file = $files[0];
|
$file = $files[0];
|
||||||
|
|
||||||
if (!$file->isReadable()) {
|
if (!$file->isReadable()) {
|
||||||
return [NULL, $this->l10n->t("You do not have enough permissions to view the file")];
|
return [NULL, $this->l10n->t("You do not have enough permissions to view the file.")];
|
||||||
}
|
}
|
||||||
return [$file, NULL];
|
return [$file, NULL];
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getShare($token) {
|
private function getShare($token) {
|
||||||
if (empty($token)) {
|
if (empty($token)) {
|
||||||
return [NULL, $this->l10n->t("Token is empty")];
|
return [NULL, $this->l10n->t("Token is empty.")];
|
||||||
}
|
}
|
||||||
|
|
||||||
$share;
|
$share;
|
||||||
|
|
@ -183,13 +183,13 @@ class ViewerController extends Controller {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($share === NULL || $share === false) {
|
if ($share === NULL || $share === false) {
|
||||||
return [NULL, $this->l10n->t("You do not have enough permissions to view the file")];
|
return [NULL, $this->l10n->t("You do not have enough permissions to view the file.")];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($share->getPassword()
|
if ($share->getPassword()
|
||||||
&& (!$this->session->exists("public_link_authenticated")
|
&& (!$this->session->exists("public_link_authenticated")
|
||||||
|| $this->session->get("public_link_authenticated") !== (string) $share->getId())) {
|
|| $this->session->get("public_link_authenticated") !== (string) $share->getId())) {
|
||||||
return [NULL, $this->l10n->t("You do not have enough permissions to view the file")];
|
return [NULL, $this->l10n->t("You do not have enough permissions to view the file.")];
|
||||||
}
|
}
|
||||||
|
|
||||||
return [$share, NULL];
|
return [$share, NULL];
|
||||||
|
|
@ -203,20 +203,20 @@ class ViewerController extends Controller {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($share->getPermissions() & Constants::PERMISSION_READ) === 0) {
|
if (($share->getPermissions() & Constants::PERMISSION_READ) === 0) {
|
||||||
return [NULL, $this->l10n->t("You do not have enough permissions to view the file")];
|
return [NULL, $this->l10n->t("You do not have enough permissions to view the file.")];
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$node = $share->getNode();
|
$node = $share->getNode();
|
||||||
} catch (NotFoundException $e) {
|
} catch (NotFoundException $e) {
|
||||||
$this->logger->error("getFileByToken error: " . $e->getMessage(), array("app" => $this->appName));
|
$this->logger->error("getFileByToken error: " . $e->getMessage(), array("app" => $this->appName));
|
||||||
return [NULL, $this->l10n->t("File not found")];
|
return [NULL, $this->l10n->t("File not found.")];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($node instanceof Folder) {
|
if ($node instanceof Folder) {
|
||||||
$files = $node->getById($fileId);
|
$files = $node->getById($fileId);
|
||||||
if (empty($files)) {
|
if (empty($files)) {
|
||||||
return [NULL, $this->l10n->t("File not found")];
|
return [NULL, $this->l10n->t("File not found.")];
|
||||||
}
|
}
|
||||||
$file = $files[0];
|
$file = $files[0];
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -272,7 +272,7 @@ class ViewerController extends Controller {
|
||||||
$mime = strtolower($mime);
|
$mime = strtolower($mime);
|
||||||
}
|
}
|
||||||
if (!in_array($mime, self::PDF_MIME_TYPES)) {
|
if (!in_array($mime, self::PDF_MIME_TYPES)) {
|
||||||
return $this->l10n->t('File %s is not a PDF file (%s)', [$file->getName(), $mime]);
|
return $this->l10n->t('File %s is not a PDF file (%s).', [$file->getName(), $mime]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|
@ -453,7 +453,7 @@ class ViewerController extends Controller {
|
||||||
'message' => 'download: ' . $token,
|
'message' => 'download: ' . $token,
|
||||||
'app' => $this->appName,
|
'app' => $this->appName,
|
||||||
]);
|
]);
|
||||||
return new JSONResponse(["message" => $this->l10n->t("Invalid token")], Http::STATUS_FORBIDDEN);
|
return new JSONResponse(["message" => $this->l10n->t("Invalid token.")], Http::STATUS_FORBIDDEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->userSession->isLoggedIn()) {
|
if ($this->userSession->isLoggedIn()) {
|
||||||
|
|
@ -470,7 +470,7 @@ class ViewerController extends Controller {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->userSession->isLoggedIn() && !$file->isReadable()) {
|
if ($this->userSession->isLoggedIn() && !$file->isReadable()) {
|
||||||
return new JSONResponse(["message" => $this->l10n->t("Access denied")], Http::STATUS_FORBIDDEN);
|
return new JSONResponse(["message" => $this->l10n->t("Access denied.")], Http::STATUS_FORBIDDEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new DataDisplayResponse($file->getContent(), Http::STATUS_OK, [
|
return new DataDisplayResponse($file->getContent(), Http::STATUS_OK, [
|
||||||
|
|
|
||||||
|
|
@ -50,16 +50,16 @@ See https://github.com/adobe-type-tools/cmap-resources
|
||||||
<div id="colorPicker">
|
<div id="colorPicker">
|
||||||
</div>
|
</div>
|
||||||
<div id="connectingMessage">
|
<div id="connectingMessage">
|
||||||
Establishing connection, please wait...
|
<?php p($l->t('Establishing connection, please wait...')) ?>
|
||||||
</div>
|
</div>
|
||||||
<div id="connectionError">
|
<div id="connectionError">
|
||||||
The connection is interrupted, reconnecting...
|
<?php p($l->t('The connection is interrupted, reconnecting...')) ?>
|
||||||
</div>
|
</div>
|
||||||
<div id="downloadInProgress">
|
<div id="downloadInProgress">
|
||||||
Generating combined PDF, please wait...
|
<?php p($l->t('Generating combined PDF, please wait...')) ?>
|
||||||
</div>
|
</div>
|
||||||
<div id="downloadFailed">
|
<div id="downloadFailed">
|
||||||
PDF generation failed, please try again later.
|
<?php p($l->t('PDF generation failed, please try again later.')) ?>
|
||||||
</div>
|
</div>
|
||||||
<div id="outerContainer">
|
<div id="outerContainer">
|
||||||
|
|
||||||
|
|
@ -219,17 +219,25 @@ See https://github.com/adobe-type-tools/cmap-resources
|
||||||
|
|
||||||
<div id="drawMenuToolbar" class="secondaryToolbar drawMenuToolbar hidden doorHangerRight hiddenReadonly">
|
<div id="drawMenuToolbar" class="secondaryToolbar drawMenuToolbar hidden doorHangerRight hiddenReadonly">
|
||||||
<div id="drawModeToolbarButtonContainer">
|
<div id="drawModeToolbarButtonContainer">
|
||||||
<button id="freehandMode" class="modeButton toolbarButton freehandMode hiddenMediumView" title="Freehand" tabindex="34" data-l10n-id="freehand" data-mode="freehand">
|
<button id="freehandMode" class="modeButton toolbarButton freehandMode hiddenMediumView" title="<?php p($l->t('Freehand')) ?>" tabindex="34" data-l10n-id="freehand" data-mode="freehand">
|
||||||
<span data-l10n-id="freehand_label">Freehand</span>
|
<span data-l10n-id="freehand_label">
|
||||||
|
<?php p($l->t('Freehand')) ?>
|
||||||
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button id="rectangleMode" class="modeButton toolbarButton rectangleMode hiddenMediumView" title="Rectangle" tabindex="34" data-l10n-id="rectangle" data-mode="rectangle">
|
<button id="rectangleMode" class="modeButton toolbarButton rectangleMode hiddenMediumView" title="<?php p($l->t('Rectangle')) ?>" tabindex="34" data-l10n-id="rectangle" data-mode="rectangle">
|
||||||
<span data-l10n-id="rectangle_label">Rectangle</span>
|
<span data-l10n-id="rectangle_label">
|
||||||
|
<?php p($l->t('Rectangle')) ?>
|
||||||
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button id="ellipseMode" class="modeButton toolbarButton ellipseMode hiddenMediumView" title="Ellipse" tabindex="34" data-l10n-id="ellipse" data-mode="ellipse">
|
<button id="ellipseMode" class="modeButton toolbarButton ellipseMode hiddenMediumView" title="<?php p($l->t('Ellipse')) ?>" tabindex="34" data-l10n-id="ellipse" data-mode="ellipse">
|
||||||
<span data-l10n-id="ellipse_label">Ellipse</span>
|
<span data-l10n-id="ellipse_label">
|
||||||
|
<?php p($l->t('Ellipse')) ?>
|
||||||
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button id="lineMode" class="modeButton toolbarButton lineMode hiddenMediumView" title="Line" tabindex="34" data-l10n-id="line" data-mode="line">
|
<button id="lineMode" class="modeButton toolbarButton lineMode hiddenMediumView" title="<?php p($l->t('Line')) ?>" tabindex="34" data-l10n-id="line" data-mode="line">
|
||||||
<span data-l10n-id="line_label">Line</span>
|
<span data-l10n-id="line_label">
|
||||||
|
<?php p($l->t('Line')) ?>
|
||||||
|
</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -278,29 +286,43 @@ See https://github.com/adobe-type-tools/cmap-resources
|
||||||
<span data-l10n-id="bookmark_label">Current View</span>
|
<span data-l10n-id="bookmark_label">Current View</span>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<button id="noneMode" class="modeButton toolbarButton noneMode hiddenMediumView hiddenReadonly" title="No tool" tabindex="32" data-l10n-id="noneMode" data-mode="">
|
<button id="noneMode" class="modeButton toolbarButton noneMode hiddenMediumView hiddenReadonly" title="<?php p($l->t('No tool')) ?>" tabindex="32" data-l10n-id="noneMode" data-mode="">
|
||||||
<span data-l10n-id="noneMode_label">No tool</span>
|
<span data-l10n-id="noneMode_label">
|
||||||
|
<?php p($l->t('No tool')); ?>
|
||||||
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button id="selectMode" class="modeButton toolbarButton selectMode hiddenMediumView hiddenReadonly" title="Select" tabindex="32" data-l10n-id="selectMode" data-mode="select">
|
<button id="selectMode" class="modeButton toolbarButton selectMode hiddenMediumView hiddenReadonly" title="<?php p($l->t('Select')) ?>" tabindex="32" data-l10n-id="selectMode" data-mode="select">
|
||||||
<span data-l10n-id="selectMode_label">Select</span>
|
<span data-l10n-id="selectMode_label">
|
||||||
|
<?php p($l->t('Select')); ?>
|
||||||
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button id="pointerMode" class="modeButton toolbarButton pointerMode hiddenMediumView hiddenReadonly" title="Pointer" tabindex="33" data-l10n-id="pointer" data-mode="pointer">
|
<button id="pointerMode" class="modeButton toolbarButton pointerMode hiddenMediumView hiddenReadonly" title="<?php p($l->t('Pointer')); ?>" tabindex="33" data-l10n-id="pointer" data-mode="pointer">
|
||||||
<span data-l10n-id="pointer_label">Pointer</span>
|
<span data-l10n-id="pointer_label">
|
||||||
|
<?php p($l->t('Pointer')) ?>
|
||||||
|
</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<button id="drawModeToolbar" class="toolbarButton drawMode freehandMode toggle hiddenReadonly" title="Draw mode" tabindex="36" data-l10n-id="draw_mode">
|
<button id="drawModeToolbar" class="toolbarButton drawMode freehandMode toggle hiddenReadonly" title="<?php p($l->t('Draw mode')) ?>" tabindex="36" data-l10n-id="draw_mode">
|
||||||
<span data-l10n-id="tools_label">Draw mode</span>
|
<span data-l10n-id="tools_label">
|
||||||
|
<?php p($l->t('Draw mode')); ?>
|
||||||
|
</span>
|
||||||
<span class="dropdown"></span>
|
<span class="dropdown"></span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<button id="colorMode" class="modeButton toolbarButton colorMode hiddenMediumView hiddenReadonly" title="Select color" tabindex="35" data-l10n-id="color" data-mode="color">
|
<button id="colorMode" class="modeButton toolbarButton colorMode hiddenMediumView hiddenReadonly" title="<?php p($l->t('Select color')) ?>" tabindex="35" data-l10n-id="color" data-mode="color">
|
||||||
<span data-l10n-id="color_label">Select color</span>
|
<span data-l10n-id="color_label">
|
||||||
|
<?php p($l->t('Select color')) ?>
|
||||||
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button id="downloadPdf" class="toolbarButton download hiddenMediumView" title="Download" tabindex="36" data-l10n-id="download">
|
<button id="downloadPdf" class="toolbarButton download hiddenMediumView" title="<?php p($l->t('Download')) ?>" tabindex="36">
|
||||||
<span data-l10n-id="download_label">Download</span>
|
<span>
|
||||||
|
<?php p($l->t('Download')) ?>
|
||||||
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button id="secondaryToolbarClose" class="toolbarButton close" title="Close" tabindex="37" data-l10n-id="Close">
|
<button id="secondaryToolbarClose" class="toolbarButton close" title="<?php p($l->t('Close')) ?>" tabindex="37" data-l10n-id="Close">
|
||||||
<span data-l10n-id="close_label">Close</span>
|
<span data-l10n-id="close_label">
|
||||||
|
<?php p($l->t('Close')) ?>
|
||||||
|
</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<div class="verticalToolbarSeparator hiddenSmallView"></div>
|
<div class="verticalToolbarSeparator hiddenSmallView"></div>
|
||||||
|
|
|
||||||
166
translationfiles/de/pdfdraw.po
Normal file
166
translationfiles/de/pdfdraw.po
Normal file
|
|
@ -0,0 +1,166 @@
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the Nextcloud package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Nextcloud 3.14159\n"
|
||||||
|
"Report-Msgid-Bugs-To: translations\\@example.com\n"
|
||||||
|
"POT-Creation-Date: 2021-12-07 16:40+0100\n"
|
||||||
|
"PO-Revision-Date: 2021-12-07 16:43+0100\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"Language: de\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: Poedit 2.3\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#: lib/Controller/ViewerController.php:151
|
||||||
|
msgid "FileId is empty."
|
||||||
|
msgstr "Keine FileId übergeben."
|
||||||
|
|
||||||
|
#: lib/Controller/ViewerController.php:162
|
||||||
|
#: lib/Controller/ViewerController.php:213
|
||||||
|
#: lib/Controller/ViewerController.php:219
|
||||||
|
msgid "File not found."
|
||||||
|
msgstr "Datei wurde nicht gefunden."
|
||||||
|
|
||||||
|
#: lib/Controller/ViewerController.php:167
|
||||||
|
#: lib/Controller/ViewerController.php:186
|
||||||
|
#: lib/Controller/ViewerController.php:192
|
||||||
|
#: lib/Controller/ViewerController.php:206
|
||||||
|
msgid "You do not have enough permissions to view the file."
|
||||||
|
msgstr "Sie haben keine ausreichenden Berechtigungen, um die Datei zu öffnen."
|
||||||
|
|
||||||
|
#: lib/Controller/ViewerController.php:174
|
||||||
|
msgid "Token is empty."
|
||||||
|
msgstr "Kein Token übergeben."
|
||||||
|
|
||||||
|
#: lib/Controller/ViewerController.php:275
|
||||||
|
#, php-format
|
||||||
|
msgid "File %s is not a PDF file (%s)."
|
||||||
|
msgstr "Datei %s ist kein PDF Dokument (%s)."
|
||||||
|
|
||||||
|
#: lib/Controller/ViewerController.php:312
|
||||||
|
msgid "No backend configured."
|
||||||
|
msgstr "Kein Backend konfiguriert."
|
||||||
|
|
||||||
|
#: lib/Controller/ViewerController.php:456
|
||||||
|
msgid "Invalid token."
|
||||||
|
msgstr "Ungültiger Token."
|
||||||
|
|
||||||
|
#: lib/Controller/ViewerController.php:473
|
||||||
|
msgid "Access denied."
|
||||||
|
msgstr "Zugriff verweigert."
|
||||||
|
|
||||||
|
#: lib/Settings/Admin/Section.php:77 specialAppInfoFakeDummyForL10nScript.php:2
|
||||||
|
#: templates/settings/admin/backend.php:9
|
||||||
|
msgid "PDF Annotations"
|
||||||
|
msgstr "PDF Annotationen"
|
||||||
|
|
||||||
|
#: specialAppInfoFakeDummyForL10nScript.php:3
|
||||||
|
msgid "Annotate PDF documents"
|
||||||
|
msgstr "PDF Dokumente annotieren"
|
||||||
|
|
||||||
|
#: specialAppInfoFakeDummyForL10nScript.php:4
|
||||||
|
msgid ""
|
||||||
|
"PDF annotations for Nextcloud\n"
|
||||||
|
"\n"
|
||||||
|
"Annotate any PDF document collaboratively inside Nextcloud. Select \"Annotate"
|
||||||
|
"\" from the context menu of PDF files to open the annotation mode.\n"
|
||||||
|
"\n"
|
||||||
|
"Requires a separate nodejs server running on the backend to distribute the "
|
||||||
|
"signaling messages between clients.\n"
|
||||||
|
"The server is available on [GitHub](https://github.com/strukturag/pdfdraw/"
|
||||||
|
"tree/master/server)."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/loader.js:42 src/loader.js:96
|
||||||
|
msgid "Annotate"
|
||||||
|
msgstr "Annotieren"
|
||||||
|
|
||||||
|
#: src/loader.js:105
|
||||||
|
msgid "Open"
|
||||||
|
msgstr "Öffnen"
|
||||||
|
|
||||||
|
#: templates/settings/admin/backend.php:11
|
||||||
|
#: templates/settings/admin/backend.php:13
|
||||||
|
msgid "Backend server"
|
||||||
|
msgstr "Backend-Server"
|
||||||
|
|
||||||
|
#: templates/settings/admin/backend.php:13
|
||||||
|
msgid "https://server.domain.invalid/path/"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/settings/admin/backend.php:14
|
||||||
|
#: templates/settings/admin/backend.php:20
|
||||||
|
msgid "Saved"
|
||||||
|
msgstr "Gespeichert"
|
||||||
|
|
||||||
|
#: templates/settings/admin/backend.php:17
|
||||||
|
#: templates/settings/admin/backend.php:19
|
||||||
|
msgid "Shared secret"
|
||||||
|
msgstr "Geteiltes Geheimnis"
|
||||||
|
|
||||||
|
#: templates/viewer.php:53
|
||||||
|
msgid "Establishing connection, please wait..."
|
||||||
|
msgstr "Verbindung wird hergestellt, bitte warten..."
|
||||||
|
|
||||||
|
#: templates/viewer.php:56
|
||||||
|
msgid "The connection is interrupted, reconnecting..."
|
||||||
|
msgstr "Die Verbindung ist unterbrochen, verbinde neu..."
|
||||||
|
|
||||||
|
#: templates/viewer.php:59
|
||||||
|
msgid "Generating combined PDF, please wait..."
|
||||||
|
msgstr "Zusammengefügtes PDF wird erstellt, bitte warten..."
|
||||||
|
|
||||||
|
#: templates/viewer.php:62
|
||||||
|
msgid "PDF generation failed, please try again later."
|
||||||
|
msgstr "PDF Erzeugung fehlgeschlagen, bitte versuchen Sie es später nochmal."
|
||||||
|
|
||||||
|
#: templates/viewer.php:222 templates/viewer.php:224
|
||||||
|
msgid "Freehand"
|
||||||
|
msgstr "Freihand"
|
||||||
|
|
||||||
|
#: templates/viewer.php:227 templates/viewer.php:229
|
||||||
|
msgid "Rectangle"
|
||||||
|
msgstr "Rechteck"
|
||||||
|
|
||||||
|
#: templates/viewer.php:232 templates/viewer.php:234
|
||||||
|
msgid "Ellipse"
|
||||||
|
msgstr "Ellipse"
|
||||||
|
|
||||||
|
#: templates/viewer.php:237 templates/viewer.php:239
|
||||||
|
msgid "Line"
|
||||||
|
msgstr "Linie"
|
||||||
|
|
||||||
|
#: templates/viewer.php:289 templates/viewer.php:291
|
||||||
|
msgid "No tool"
|
||||||
|
msgstr "Nichts wählen"
|
||||||
|
|
||||||
|
#: templates/viewer.php:294 templates/viewer.php:296
|
||||||
|
msgid "Select"
|
||||||
|
msgstr "Auswählen"
|
||||||
|
|
||||||
|
#: templates/viewer.php:299 templates/viewer.php:301
|
||||||
|
msgid "Pointer"
|
||||||
|
msgstr "Zeiger"
|
||||||
|
|
||||||
|
#: templates/viewer.php:305 templates/viewer.php:307
|
||||||
|
msgid "Draw mode"
|
||||||
|
msgstr "Zeichenmodus"
|
||||||
|
|
||||||
|
#: templates/viewer.php:312 templates/viewer.php:314
|
||||||
|
msgid "Select color"
|
||||||
|
msgstr "Farbe wählen"
|
||||||
|
|
||||||
|
#: templates/viewer.php:317 templates/viewer.php:319
|
||||||
|
msgid "Download"
|
||||||
|
msgstr "Herunterladen"
|
||||||
|
|
||||||
|
#: templates/viewer.php:322 templates/viewer.php:324
|
||||||
|
msgid "Close"
|
||||||
|
msgstr "Schließen"
|
||||||
178
translationfiles/templates/pdfdraw.pot
Normal file
178
translationfiles/templates/pdfdraw.pot
Normal file
|
|
@ -0,0 +1,178 @@
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the Nextcloud package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Nextcloud 3.14159\n"
|
||||||
|
"Report-Msgid-Bugs-To: translations\\@example.com\n"
|
||||||
|
"POT-Creation-Date: 2021-12-07 16:43+0100\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"Language: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=CHARSET\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: lib/Controller/ViewerController.php:151
|
||||||
|
msgid "FileId is empty."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/Controller/ViewerController.php:162
|
||||||
|
#: lib/Controller/ViewerController.php:213
|
||||||
|
#: lib/Controller/ViewerController.php:219
|
||||||
|
msgid "File not found."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/Controller/ViewerController.php:167
|
||||||
|
#: lib/Controller/ViewerController.php:186
|
||||||
|
#: lib/Controller/ViewerController.php:192
|
||||||
|
#: lib/Controller/ViewerController.php:206
|
||||||
|
msgid "You do not have enough permissions to view the file."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/Controller/ViewerController.php:174
|
||||||
|
msgid "Token is empty."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/Controller/ViewerController.php:275
|
||||||
|
#, php-format
|
||||||
|
msgid "File %s is not a PDF file (%s)."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/Controller/ViewerController.php:312
|
||||||
|
msgid "No backend configured."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/Controller/ViewerController.php:456
|
||||||
|
msgid "Invalid token."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/Controller/ViewerController.php:473
|
||||||
|
msgid "Access denied."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/Settings/Admin/Section.php:77
|
||||||
|
#: specialAppInfoFakeDummyForL10nScript.php:2
|
||||||
|
#: templates/settings/admin/backend.php:9
|
||||||
|
msgid "PDF Annotations"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: specialAppInfoFakeDummyForL10nScript.php:3
|
||||||
|
msgid "Annotate PDF documents"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: specialAppInfoFakeDummyForL10nScript.php:4
|
||||||
|
msgid ""
|
||||||
|
"PDF annotations for Nextcloud\n"
|
||||||
|
"\n"
|
||||||
|
"Annotate any PDF document collaboratively inside Nextcloud. Select \"Annotate"
|
||||||
|
"\" from the context menu of PDF files to open the annotation mode.\n"
|
||||||
|
"\n"
|
||||||
|
"Requires a separate nodejs server running on the backend to distribute the "
|
||||||
|
"signaling messages between clients.\n"
|
||||||
|
"The server is available on [GitHub](https://github.com/strukturag/pdfdraw/"
|
||||||
|
"tree/master/server)."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/loader.js:42
|
||||||
|
#: src/loader.js:96
|
||||||
|
msgid "Annotate"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/loader.js:105
|
||||||
|
msgid "Open"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/settings/admin/backend.php:11
|
||||||
|
#: templates/settings/admin/backend.php:13
|
||||||
|
msgid "Backend server"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/settings/admin/backend.php:13
|
||||||
|
msgid "https://server.domain.invalid/path/"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/settings/admin/backend.php:14
|
||||||
|
#: templates/settings/admin/backend.php:20
|
||||||
|
msgid "Saved"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/settings/admin/backend.php:17
|
||||||
|
#: templates/settings/admin/backend.php:19
|
||||||
|
msgid "Shared secret"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/viewer.php:53
|
||||||
|
msgid "Establishing connection, please wait..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/viewer.php:56
|
||||||
|
msgid "The connection is interrupted, reconnecting..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/viewer.php:59
|
||||||
|
msgid "Generating combined PDF, please wait..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/viewer.php:62
|
||||||
|
msgid "PDF generation failed, please try again later."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/viewer.php:222
|
||||||
|
#: templates/viewer.php:224
|
||||||
|
msgid "Freehand"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/viewer.php:227
|
||||||
|
#: templates/viewer.php:229
|
||||||
|
msgid "Rectangle"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/viewer.php:232
|
||||||
|
#: templates/viewer.php:234
|
||||||
|
msgid "Ellipse"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/viewer.php:237
|
||||||
|
#: templates/viewer.php:239
|
||||||
|
msgid "Line"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/viewer.php:289
|
||||||
|
#: templates/viewer.php:291
|
||||||
|
msgid "No tool"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/viewer.php:294
|
||||||
|
#: templates/viewer.php:296
|
||||||
|
msgid "Select"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/viewer.php:299
|
||||||
|
#: templates/viewer.php:301
|
||||||
|
msgid "Pointer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/viewer.php:305
|
||||||
|
#: templates/viewer.php:307
|
||||||
|
msgid "Draw mode"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/viewer.php:312
|
||||||
|
#: templates/viewer.php:314
|
||||||
|
msgid "Select color"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/viewer.php:317
|
||||||
|
#: templates/viewer.php:319
|
||||||
|
msgid "Download"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/viewer.php:322
|
||||||
|
#: templates/viewer.php:324
|
||||||
|
msgid "Close"
|
||||||
|
msgstr ""
|
||||||
Loading…
Reference in a new issue