Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ONLYOFFICE/onlyoffice-nextcloud.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Linnik <sergey.linnik@onlyoffice.com>2022-10-03 17:10:28 +0300
committerSergey Linnik <sergey.linnik@onlyoffice.com>2022-10-03 17:10:28 +0300
commit35cf1af69972e8bbd0b2a3de9959abb9b93fe04c (patch)
treed401d8af57bc2020dcdb27cfe741bf98feddbfa8
parent25d5a01765d8b595c9182e11a1853f241ace239b (diff)
parente2714c268dd5d153724c6ad33195db9bf2a1c8b0 (diff)
Merge remote-tracking branch 'remotes/origin/develop' into feature/federated-lock
# Conflicts: # appinfo/routes.php
-rw-r--r--CHANGELOG.md25
-rw-r--r--appinfo/application.php32
-rw-r--r--appinfo/info.xml5
-rw-r--r--appinfo/routes.php6
m---------assets0
-rw-r--r--controller/callbackcontroller.php35
-rw-r--r--controller/editorapicontroller.php110
-rw-r--r--controller/editorcontroller.php20
-rw-r--r--controller/settingscontroller.php33
-rw-r--r--controller/sharingapicontroller.php228
-rw-r--r--css/main.css3
-rw-r--r--css/settings.css2
-rw-r--r--css/share.css48
-rw-r--r--js/editor.js16
-rw-r--r--js/main.js20
-rw-r--r--js/settings.js15
-rw-r--r--js/share.js418
-rw-r--r--js/viewer.js2
-rw-r--r--l10n/bg.js15
-rw-r--r--l10n/bg.json15
-rw-r--r--l10n/ca.js132
-rw-r--r--l10n/ca.json130
-rw-r--r--l10n/de.js18
-rw-r--r--l10n/de.json18
-rw-r--r--l10n/de_DE.js18
-rw-r--r--l10n/de_DE.json18
-rw-r--r--l10n/es.js18
-rw-r--r--l10n/es.json18
-rw-r--r--l10n/fr.js18
-rw-r--r--l10n/fr.json20
-rw-r--r--l10n/it.js18
-rw-r--r--l10n/it.json18
-rw-r--r--l10n/ja.js64
-rw-r--r--l10n/ja.json64
-rw-r--r--l10n/nl.js134
-rw-r--r--l10n/nl.json132
-rw-r--r--l10n/pl.js17
-rw-r--r--l10n/pl.json17
-rw-r--r--l10n/pt_BR.js23
-rw-r--r--l10n/pt_BR.json25
-rw-r--r--l10n/ru.js18
-rw-r--r--l10n/ru.json18
-rw-r--r--l10n/sv.js17
-rw-r--r--l10n/sv.json19
-rw-r--r--l10n/zh_CN.js17
-rw-r--r--l10n/zh_CN.json17
-rw-r--r--lib/Migration/Version070400Date20220607111111.php89
-rw-r--r--lib/Migration/Version070400Date20220929111111.php89
-rw-r--r--lib/appconfig.php99
-rw-r--r--lib/directeditor.php1
-rw-r--r--lib/extrapermissions.php432
-rw-r--r--lib/hooks.php27
-rw-r--r--lib/listeners/fileslistener.php6
-rw-r--r--screenshots/icon.pngbin587 -> 845 bytes
-rw-r--r--screenshots/main.pngbin76008 -> 199426 bytes
-rw-r--r--screenshots/main_small.pngbin27774 -> 108916 bytes
-rw-r--r--screenshots/new.pngbin43861 -> 152242 bytes
-rw-r--r--screenshots/open.pngbin51054 -> 170870 bytes
-rw-r--r--screenshots/open_form.pngbin0 -> 186991 bytes
-rw-r--r--screenshots/settings.pngbin101008 -> 108475 bytes
-rw-r--r--templates/editor.php3
-rw-r--r--templates/settings.php44
-rw-r--r--templates/share.html9
63 files changed, 2694 insertions, 179 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c180987..083877c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,29 @@
# Change Log
-##
+## Added
+- Dutch translation
+- Chinese (Traditional, Taiwan), Basque (Spain) empty file templates
+
+## Changed
+- generate preview by default
+
+## 7.4.4
+## Changed
+- fix opening editor in new tab
+- fix download as on MacOS
+
+## 7.4.2
+## Changed
+- fix translation
+
+## 7.4.0
+## Added
+- advanced access rights
+- macro launch setting
+- opening file location from viewer
+- Catalan translation
+- theme setting
+
## Changed
- fix editor lang
diff --git a/appinfo/application.php b/appinfo/application.php
index c5c1ec8..378972d 100644
--- a/appinfo/application.php
+++ b/appinfo/application.php
@@ -44,6 +44,7 @@ use OCA\Onlyoffice\AppConfig;
use OCA\Onlyoffice\Controller\CallbackController;
use OCA\Onlyoffice\Controller\EditorController;
use OCA\Onlyoffice\Controller\EditorApiController;
+use OCA\Onlyoffice\Controller\SharingApiController;
use OCA\Onlyoffice\Controller\SettingsController;
use OCA\Onlyoffice\Controller\TemplateController;
use OCA\Onlyoffice\Listeners\FilesListener;
@@ -87,10 +88,18 @@ class Application extends App implements IBootstrap {
}
public function register(IRegistrationContext $context): void {
- require_once __DIR__ . "/../3rdparty/jwt/BeforeValidException.php";
- require_once __DIR__ . "/../3rdparty/jwt/ExpiredException.php";
- require_once __DIR__ . "/../3rdparty/jwt/SignatureInvalidException.php";
- require_once __DIR__ . "/../3rdparty/jwt/JWT.php";
+ if (!class_exists('\\Firebase\\JWT\\BeforeValidException')) {
+ require_once __DIR__ . "/../3rdparty/jwt/BeforeValidException.php";
+ }
+ if (!class_exists('\\Firebase\\JWT\\ExpiredException')) {
+ require_once __DIR__ . "/../3rdparty/jwt/ExpiredException.php";
+ }
+ if (!class_exists('\\Firebase\\JWT\\SignatureInvalidException')) {
+ require_once __DIR__ . "/../3rdparty/jwt/SignatureInvalidException.php";
+ }
+ if (!class_exists('\\Firebase\\JWT\\JWT')) {
+ require_once __DIR__ . "/../3rdparty/jwt/JWT.php";
+ }
$context->registerService("L10N", function (ContainerInterface $c) {
return $c->get("ServerContainer")->getL10N($c->get("AppName"));
@@ -158,6 +167,19 @@ class Application extends App implements IBootstrap {
);
});
+ $context->registerService("SharingApiController", function (ContainerInterface $c) {
+ return new SharingApiController(
+ $c->get("AppName"),
+ $c->get("Request"),
+ $c->get("RootStorage"),
+ $c->get("Logger"),
+ $c->get("UserSession"),
+ $c->get("UserManager"),
+ $c->get("IManager"),
+ $this->appConfig
+ );
+ });
+
$context->registerService("EditorApiController", function (ContainerInterface $c) {
return new EditorApiController(
$c->get("AppName"),
@@ -282,4 +304,4 @@ class Application extends App implements IBootstrap {
});
}
}
-} \ No newline at end of file
+}
diff --git a/appinfo/info.xml b/appinfo/info.xml
index 26a4479..a1afb3c 100644
--- a/appinfo/info.xml
+++ b/appinfo/info.xml
@@ -6,7 +6,7 @@
<description>ONLYOFFICE connector allows you to view, edit and collaborate on text documents, spreadsheets and presentations within Nextcloud using ONLYOFFICE Docs. This will create a new Edit in ONLYOFFICE action within the document library for Office documents. This allows multiple users to co-author documents in real time from the familiar web interface and save the changes back to your file storage.</description>
<licence>apache</licence>
<author mail="dev@onlyoffice.com" homepage="https://www.onlyoffice.com/">Ascensio System SIA</author>
- <version>7.3.4</version>
+ <version>7.4.4</version>
<namespace>Onlyoffice</namespace>
<types>
<prevent_group_restriction/>
@@ -28,8 +28,9 @@
<screenshot>https://raw.githubusercontent.com/ONLYOFFICE/onlyoffice-nextcloud/master/screenshots/settings.png</screenshot>
<screenshot>https://raw.githubusercontent.com/ONLYOFFICE/onlyoffice-nextcloud/master/screenshots/new.png</screenshot>
<screenshot>https://raw.githubusercontent.com/ONLYOFFICE/onlyoffice-nextcloud/master/screenshots/open.png</screenshot>
+ <screenshot>https://raw.githubusercontent.com/ONLYOFFICE/onlyoffice-nextcloud/master/screenshots/open_form.png</screenshot>
<dependencies>
- <nextcloud min-version="22" max-version="24"/>
+ <nextcloud min-version="22" max-version="23"/>
</dependencies>
<settings>
<admin>OCA\Onlyoffice\AdminSettings</admin>
diff --git a/appinfo/routes.php b/appinfo/routes.php
index 5ba2c52..df5ac70 100644
--- a/appinfo/routes.php
+++ b/appinfo/routes.php
@@ -38,7 +38,7 @@ return [
["name" => "editor#restore", "url" => "/ajax/restore", "verb" => "PUT"],
["name" => "settings#save_address", "url" => "/ajax/settings/address", "verb" => "PUT"],
["name" => "settings#save_common", "url" => "/ajax/settings/common", "verb" => "PUT"],
- ["name" => "settings#save_watermark", "url" => "/ajax/settings/watermark", "verb" => "PUT"],
+ ["name" => "settings#save_security", "url" => "/ajax/settings/security", "verb" => "PUT"],
["name" => "settings#get_settings", "url" => "/ajax/settings", "verb" => "GET"],
["name" => "settings#clear_history", "url" => "/ajax/settings/history", "verb" => "DELETE"],
["name" => "template#add_template", "url" => "/ajax/template", "verb" => "POST"],
@@ -49,6 +49,8 @@ return [
["name" => "federation#key", "url" => "/api/v1/key", "verb" => "POST"],
["name" => "federation#keylock", "url" => "/api/v1/keylock", "verb" => "POST"],
["name" => "federation#healthcheck", "url" => "/api/v1/healthcheck", "verb" => "GET"],
- ["name" => "editorapi#config", "url" => "/api/v1/config/{fileId}", "verb" => "GET"]
+ ["name" => "editorapi#config", "url" => "/api/v1/config/{fileId}", "verb" => "GET"],
+ ["name" => "sharingapi#get_shares", "url" => "/api/v1/shares/{fileId}", "verb" => "GET"],
+ ["name" => "sharingapi#set_shares", "url" => "/api/v1/shares", "verb" => "PUT"]
]
]; \ No newline at end of file
diff --git a/assets b/assets
-Subproject 01a35499a3cfb4013d990100e119a7f47f02616
+Subproject 4b96e283924e0481299b6400520829649634c23
diff --git a/controller/callbackcontroller.php b/controller/callbackcontroller.php
index eb46386..9270794 100644
--- a/controller/callbackcontroller.php
+++ b/controller/callbackcontroller.php
@@ -466,11 +466,6 @@ class CallbackController extends Controller {
$user = $this->userManager->get($userId);
if (!empty($user)) {
\OC_User::setUserId($userId);
- \OC_Util::setupFS($userId);
-
- if ($userId === $hashData->userId) {
- $filePath = $hashData->filePath;
- }
} else {
if (empty($shareToken)) {
$this->logger->error("Track without token: $fileId status $status", ["app" => $this->appName]);
@@ -480,6 +475,29 @@ class CallbackController extends Controller {
$this->logger->debug("Track $fileId by token for $userId", ["app" => $this->appName]);
}
+ // owner of file from the callback link
+ $ownerId = $hashData->ownerId;
+ $owner = $this->userManager->get($ownerId);
+
+ if (!empty($owner)) {
+ $userId = $ownerId;
+ } else {
+ $callbackUserId = $hashData->userId;
+ $callbackUser = $this->userManager->get($callbackUserId);
+
+ if (!empty($callbackUser)) {
+ // author of the callback link
+ $userId = $callbackUserId;
+
+ // path for author of the callback link
+ $filePath = $hashData->filePath;
+ }
+ }
+
+ if (!empty($userId)) {
+ \OC_Util::setupFS($userId);
+ }
+
list ($file, $error) = empty($shareToken) ? $this->getFile($userId, $fileId, $filePath) : $this->getFileByToken($fileId, $shareToken);
if (isset($error)) {
@@ -487,13 +505,6 @@ class CallbackController extends Controller {
return $error;
}
- if (empty($user)) {
- $owner = $file->getFileInfo()->getOwner();
- if ($owner !== null) {
- \OC_Util::setupFS($owner->getUID());
- }
- }
-
$url = $this->config->ReplaceDocumentServerUrlToInternal($url);
$prevVersion = $file->getFileInfo()->getMtime();
diff --git a/controller/editorapicontroller.php b/controller/editorapicontroller.php
index 016c196..b8c2c7f 100644
--- a/controller/editorapicontroller.php
+++ b/controller/editorapicontroller.php
@@ -37,6 +37,7 @@ use OCP\IUser;
use OCP\IUserManager;
use OCP\IUserSession;
use OCP\Share\IManager;
+use OCP\Share\IShare;
use OCA\Files_Versions\Versions\IVersionManager;
use OCA\FilesLock\Service\LockService;
@@ -47,6 +48,7 @@ use OCA\Onlyoffice\Crypt;
use OCA\Onlyoffice\DocumentService;
use OCA\Onlyoffice\FileUtility;
use OCA\Onlyoffice\TemplateManager;
+use OCA\Onlyoffice\ExtraPermissions;
/**
* Controller with the main functions
@@ -131,6 +133,13 @@ class EditorApiController extends OCSController {
private $tagManager;
/**
+ * Extra permissions
+ *
+ * @var ExtraPermissions
+ */
+ private $extraPermissions;
+
+ /**
* Mobile regex from https://github.com/ONLYOFFICE/CommunityServer/blob/v9.1.1/web/studio/ASC.Web.Studio/web.appsettings.config#L35
*/
const USER_AGENT_MOBILE = "/android|avantgo|playbook|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i";
@@ -184,6 +193,11 @@ class EditorApiController extends OCSController {
}
}
+ if ($this->config->GetAdvanced()
+ && \OC::$server->getAppManager()->isInstalled("files_sharing")) {
+ $this->extraPermissions = new ExtraPermissions($AppName, $logger, $shareManager, $config);
+ }
+
$this->fileUtility = new FileUtility($AppName, $trans, $logger, $config, $shareManager, $session);
}
@@ -196,6 +210,7 @@ class EditorApiController extends OCSController {
* @param string $directToken - direct token
* @param integer $version - file version
* @param bool $inframe - open in frame
+ * @param bool $inviewer - open in viewer
* @param bool $desktop - desktop label
* @param string $guestName - nickname not logged user
* @param bool $template - file is template
@@ -206,7 +221,7 @@ class EditorApiController extends OCSController {
* @NoAdminRequired
* @PublicPage
*/
- public function config($fileId, $filePath = null, $shareToken = null, $directToken = null, $version = 0, $inframe = false, $desktop = false, $guestName = null, $template = false, $anchor = null) {
+ public function config($fileId, $filePath = null, $shareToken = null, $directToken = null, $version = 0, $inframe = false, $inviewer = false, $desktop = false, $guestName = null, $template = false, $anchor = null) {
if (!empty($directToken)) {
list ($directData, $error) = $this->crypt->ReadHash($directToken);
@@ -257,7 +272,7 @@ class EditorApiController extends OCSController {
$fileName = $file->getName();
$ext = strtolower(pathinfo($fileName, PATHINFO_EXTENSION));
- $format = !empty($ext) ? $this->config->FormatsSetting()[$ext] : null;
+ $format = !empty($ext) && array_key_exists($ext, $this->config->FormatsSetting()) ? $this->config->FormatsSetting()[$ext] : null;
if (!isset($format)) {
$this->logger->info("Format is not supported for editing: $fileName", ["app" => $this->appName]);
return new JSONResponse(["error" => $this->trans->t("Format is not supported")]);
@@ -304,6 +319,57 @@ class EditorApiController extends OCSController {
$params["document"]["permissions"]["modifyFilter"] = $permissions_modifyFilter;
}
+ $canDownload = true;
+ $restrictedEditing = false;
+ $fileStorage = $file->getStorage();
+ if (empty($shareToken) && $fileStorage->instanceOfStorage("\OCA\Files_Sharing\SharedStorage")) {
+ $shareId = $fileStorage->getShareId();
+
+ $extraPermissions = null;
+ if ($this->extraPermissions !== null) {
+ $extraPermissions = $this->extraPermissions->getExtra($shareId);
+ }
+
+ if (!empty($extraPermissions)) {
+ if (isset($format["review"]) && $format["review"]) {
+ $reviewPermission = ($extraPermissions["permissions"] & ExtraPermissions::Review) === ExtraPermissions::Review;
+ if ($reviewPermission) {
+ $restrictedEditing = true;
+ $params["document"]["permissions"]["review"] = true;
+ }
+ }
+
+ if (isset($format["comment"]) && $format["comment"]) {
+ $commentPermission = ($extraPermissions["permissions"] & ExtraPermissions::Comment) === ExtraPermissions::Comment;
+ if ($commentPermission) {
+ $restrictedEditing = true;
+ $params["document"]["permissions"]["comment"] = true;
+ }
+ }
+
+ if (isset($format["fillForms"]) && $format["fillForms"]) {
+ $fillFormsPermission = ($extraPermissions["permissions"] & ExtraPermissions::FillForms) === ExtraPermissions::FillForms;
+ if ($fillFormsPermission) {
+ $restrictedEditing = true;
+ $params["document"]["permissions"]["fillForms"] = true;
+ }
+ }
+
+ if (isset($format["modifyFilter"]) && $format["modifyFilter"]) {
+ $modifyFilter = ($extraPermissions["permissions"] & ExtraPermissions::ModifyFilter) === ExtraPermissions::ModifyFilter;
+ $params["document"]["permissions"]["modifyFilter"] = $modifyFilter;
+ }
+ }
+
+ if (method_exists(IShare::class, "getAttributes")) {
+ $share = empty($share) ? $fileStorage->getShare() : $share;
+ $attributes = $share->getAttributes();
+ if ($attributes !== null && !$attributes->getAttribute("permissions", "download")) {
+ $canDownload = false;
+ }
+ }
+ }
+
$isTempLock = false;
if ($version < 1
&& \OC::$server->getAppManager()->isInstalled("files_lock")) {
@@ -334,8 +400,14 @@ class EditorApiController extends OCSController {
&& !$isTempLock
&& (empty($shareToken) || ($share->getPermissions() & Constants::PERMISSION_UPDATE) === Constants::PERMISSION_UPDATE);
$params["document"]["permissions"]["edit"] = $editable;
- if ($editable && ($canEdit || $canFillForms)) {
- $hashCallback = $this->crypt->GetHash(["userId" => $userId, "fileId" => $file->getId(), "filePath" => $filePath, "shareToken" => $shareToken, "action" => "track"]);
+ if (($editable || $restrictedEditing) && ($canEdit || $canFillForms)) {
+ $ownerId = null;
+ $owner = $file->getOwner();
+ if (!empty($owner)) {
+ $ownerId = $owner->getUID();
+ }
+
+ $hashCallback = $this->crypt->GetHash(["userId" => $userId, "ownerId" => $ownerId, "fileId" => $file->getId(), "filePath" => $filePath, "shareToken" => $shareToken, "action" => "track"]);
$callback = $this->urlGenerator->linkToRouteAbsolute($this->appName . ".callback.track", ["doc" => $hashCallback]);
if (!empty($this->config->GetStorageUrl())) {
@@ -373,9 +445,7 @@ class EditorApiController extends OCSController {
if (!empty($shareToken)) {
if (method_exists($share, "getHideDownload") && $share->getHideDownload()) {
- $params["document"]["permissions"]["download"] = false;
- $params["document"]["permissions"]["print"] = false;
- $params["document"]["permissions"]["copy"] = false;
+ $canDownload = false;
}
$node = $share->getNode();
@@ -458,7 +528,7 @@ class EditorApiController extends OCSController {
"url" => $folderLink
];
- if (!$desktop) {
+ if (!$desktop && !$inviewer) {
if ($this->config->GetSameTab()) {
$params["editorConfig"]["customization"]["goback"]["blank"] = false;
}
@@ -469,6 +539,12 @@ class EditorApiController extends OCSController {
}
}
+ if (!$canDownload) {
+ $params["document"]["permissions"]["download"] = false;
+ $params["document"]["permissions"]["print"] = false;
+ $params["document"]["permissions"]["copy"] = false;
+ }
+
if ($inframe === true) {
$params["_files_sharing"] = \OC::$server->getAppManager()->isInstalled("files_sharing");
}
@@ -589,8 +665,7 @@ class EditorApiController extends OCSController {
$fileUrl = $this->urlGenerator->linkToRouteAbsolute($this->appName . ".callback.download", ["doc" => $hashUrl]);
- if (!empty($this->config->GetStorageUrl())
- && !$changes) {
+ if (!empty($this->config->GetStorageUrl())) {
$fileUrl = str_replace($this->urlGenerator->getAbsoluteURL("/"), $this->config->GetStorageUrl(), $fileUrl);
}
@@ -649,11 +724,21 @@ class EditorApiController extends OCSController {
$params["editorConfig"]["customization"]["reviewDisplay"] = $reviewDisplay;
}
+ $theme = $this->config->GetCustomizationTheme();
+ if (isset($theme)) {
+ $params["editorConfig"]["customization"]["uiTheme"] = $theme;
+ }
+
//default is false
if ($this->config->GetCustomizationToolbarNoTabs() === true) {
$params["editorConfig"]["customization"]["toolbarNoTabs"] = true;
}
+ //default is true
+ if($this->config->GetCustomizationMacros() === false) {
+ $params["editorConfig"]["customization"]["macros"] = false;
+ }
+
/* from system config */
@@ -707,7 +792,7 @@ class EditorApiController extends OCSController {
if ($watermarkTemplate !== false) {
$replacements = [
- "userId" => $userId,
+ "userId" => isset($userId) ? $userId : $this->trans->t('Anonymous'),
"date" => (new \DateTime())->format("Y-m-d H:i:s"),
"themingName" => \OC::$server->getThemingDefaults()->getName()
];
@@ -785,7 +870,8 @@ class EditorApiController extends OCSController {
return $watermarkText;
}
}
- if ($watermarkSettings["allGroups"]) {
+ if ($watermarkSettings["allGroups"]
+ && $userId !== null) {
$groups = $watermarkSettings["allGroupsList"];
foreach ($groups as $group) {
if (\OC::$server->getGroupManager()->isInGroup($userId, $group)) {
diff --git a/controller/editorcontroller.php b/controller/editorcontroller.php
index f3703e1..92e7b60 100644
--- a/controller/editorcontroller.php
+++ b/controller/editorcontroller.php
@@ -264,7 +264,7 @@ class EditorController extends Controller {
$targetName = $targetFile->getName();
$targetExt = strtolower(pathinfo($targetName, PATHINFO_EXTENSION));
$targetKey = $this->fileUtility->getKey($targetFile);
-
+
$fileUrl = $this->getUrl($targetFile, $user, $shareToken);
$ext = strtolower(pathinfo($name, PATHINFO_EXTENSION));
@@ -1048,6 +1048,17 @@ class EditorController extends Controller {
}
}
+ $fileStorage = $file->getStorage();
+ if ($fileStorage->instanceOfStorage("\OCA\Files_Sharing\SharedStorage")) {
+ if (method_exists(IShare::class, "getAttributes")) {
+ $share = empty($share) ? $fileStorage->getShare() : $share;
+ $attributes = $share->getAttributes();
+ if ($attributes !== null && !$attributes->getAttribute("permissions", "download")) {
+ return $this->renderError($this->trans->t("Not permitted"));
+ }
+ }
+ }
+
$fileName = $file->getName();
$ext = strtolower(pathinfo($fileName, PATHINFO_EXTENSION));
$toExtension = strtolower($toExtension);
@@ -1092,6 +1103,7 @@ class EditorController extends Controller {
* @param string $shareToken - access token
* @param integer $version - file version
* @param bool $inframe - open in frame
+ * @param bool $inviewer - open in viewer
* @param bool $template - file is template
* @param string $anchor - anchor for file content
*
@@ -1100,7 +1112,7 @@ class EditorController extends Controller {
* @NoAdminRequired
* @NoCSRFRequired
*/
- public function index($fileId, $filePath = null, $shareToken = null, $version = 0, $inframe = false, $template = false, $anchor = null) {
+ public function index($fileId, $filePath = null, $shareToken = null, $version = 0, $inframe = false, $inviewer = false, $template = false, $anchor = null) {
$this->logger->debug("Open: $fileId ($version) $filePath ", ["app" => $this->appName]);
$isLoggedIn = $this->userSession->isLoggedIn();
@@ -1139,6 +1151,7 @@ class EditorController extends Controller {
"version" => $version,
"isTemplate" => $template,
"inframe" => false,
+ "inviewer" => $inviewer === true,
"anchor" => $anchor
];
@@ -1279,8 +1292,7 @@ class EditorController extends Controller {
$fileUrl = $this->urlGenerator->linkToRouteAbsolute($this->appName . ".callback.download", ["doc" => $hashUrl]);
- if (!empty($this->config->GetStorageUrl())
- && !$changes) {
+ if (!empty($this->config->GetStorageUrl())) {
$fileUrl = str_replace($this->urlGenerator->getAbsoluteURL("/"), $this->config->GetStorageUrl(), $fileUrl);
}
diff --git a/controller/settingscontroller.php b/controller/settingscontroller.php
index 6f82553..60d4fe0 100644
--- a/controller/settingscontroller.php
+++ b/controller/settingscontroller.php
@@ -19,7 +19,6 @@
namespace OCA\Onlyoffice\Controller;
-use OCP\App;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\IL10N;
@@ -116,6 +115,7 @@ class SettingsController extends Controller {
"formats" => $this->config->FormatsSetting(),
"sameTab" => $this->config->GetSameTab(),
"preview" => $this->config->GetPreview(),
+ "advanced" => $this->config->GetAdvanced(),
"versionHistory" => $this->config->GetVersionHistory(),
"limitGroups" => $this->config->GetLimitGroups(),
"chat" => $this->config->GetCustomizationChat(),
@@ -126,8 +126,10 @@ class SettingsController extends Controller {
"toolbarNoTabs" => $this->config->GetCustomizationToolbarNoTabs(),
"successful" => $this->config->SettingsAreSuccessful(),
"watermark" => $this->config->GetWatermarkSettings(),
- "tagsEnabled" => App::isEnabled("systemtags"),
+ "macros" => $this->config->GetCustomizationMacros(),
+ "tagsEnabled" => \OC::$server->getAppManager()->isEnabledForUser("systemtags"),
"reviewDisplay" => $this->config->GetCustomizationReviewDisplay(),
+ "theme" => $this->config->GetCustomizationTheme(),
"templates" => $this->GetGlobalTemplates()
];
return new TemplateResponse($this->appName, "settings", $data, "blank");
@@ -192,6 +194,7 @@ class SettingsController extends Controller {
* @param array $editFormats - editable formats array
* @param bool $sameTab - open in the same tab
* @param bool $preview - generate preview files
+ * @param bool $advanced - use advanced tab
* @param bool $versionHistory - keep version history
* @param array $limitGroups - list of groups
* @param bool $chat - display chat
@@ -208,6 +211,7 @@ class SettingsController extends Controller {
$editFormats,
$sameTab,
$preview,
+ $advanced,
$versionHistory,
$limitGroups,
$chat,
@@ -216,13 +220,15 @@ class SettingsController extends Controller {
$forcesave,
$help,
$toolbarNoTabs,
- $reviewDisplay
+ $reviewDisplay,
+ $theme
) {
$this->config->SetDefaultFormats($defFormats);
$this->config->SetEditableFormats($editFormats);
$this->config->SetSameTab($sameTab);
$this->config->SetPreview($preview);
+ $this->config->SetAdvanced($advanced);
$this->config->SetVersionHistory($versionHistory);
$this->config->SetLimitGroups($limitGroups);
$this->config->SetCustomizationChat($chat);
@@ -232,28 +238,33 @@ class SettingsController extends Controller {
$this->config->SetCustomizationHelp($help);
$this->config->SetCustomizationToolbarNoTabs($toolbarNoTabs);
$this->config->SetCustomizationReviewDisplay($reviewDisplay);
+ $this->config->SetCustomizationTheme($theme);
return [
];
}
/**
- * Save watermark settings
+ * Save security settings
*
- * @param array $settings - watermark settings
+ * @param array $watermarks - watermark settings
+ * @param bool $macros - run document macros
*
* @return array
*/
- public function SaveWatermark($settings) {
+ public function SaveSecurity($watermarks,
+ $macros
+ ) {
- if ($settings["enabled"] === "true") {
- $settings["text"] = trim($settings["text"]);
- if (empty($settings["text"])) {
- $settings["text"] = $this->trans->t("DO NOT SHARE THIS") . " {userId} {date}";
+ if ($watermarks["enabled"] === "true") {
+ $watermarks["text"] = trim($watermarks["text"]);
+ if (empty($watermarks["text"])) {
+ $watermarks["text"] = $this->trans->t("DO NOT SHARE THIS") . " {userId} {date}";
}
}
- $this->config->SetWatermarkSettings($settings);
+ $this->config->SetWatermarkSettings($watermarks);
+ $this->config->SetCustomizationMacros($macros);
return [
];
diff --git a/controller/sharingapicontroller.php b/controller/sharingapicontroller.php
new file mode 100644
index 0000000..1e5e633
--- /dev/null
+++ b/controller/sharingapicontroller.php
@@ -0,0 +1,228 @@
+<?php
+/**
+ *
+ * (c) Copyright Ascensio System SIA 2022
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+namespace OCA\Onlyoffice\Controller;
+
+use OCP\AppFramework\Http;
+use OCP\AppFramework\Http\DataResponse;
+use OCP\AppFramework\OCSController;
+use OCP\IL10N;
+use OCP\ILogger;
+use OCP\IRequest;
+use OCP\ISession;
+use OCP\Constants;
+use OCP\Share\IManager;
+use OCP\Files\IRootFolder;
+use OCP\IUserManager;
+use OCP\IUserSession;
+use OCP\Files\File;
+use OCP\Share\IShare;
+use OCP\Share\Exceptions\ShareNotFound;
+
+
+use OCA\Onlyoffice\AppConfig;
+use OCA\Onlyoffice\DocumentService;
+use OCA\Onlyoffice\FileUtility;
+use OCA\Onlyoffice\KeyManager;
+use OCA\Onlyoffice\ExtraPermissions;
+
+/**
+ * OCS handler
+ */
+class SharingApiController extends OCSController {
+
+ /**
+ * Current user session
+ *
+ * @var IUserSession
+ */
+ private $userSession;
+
+ /**
+ * User manager
+ *
+ * @var IUserManager
+ */
+ private $userManager;
+
+ /**
+ * Root folder
+ *
+ * @var IRootFolder
+ */
+ private $root;
+
+ /**
+ * Logger
+ *
+ * @var ILogger
+ */
+ private $logger;
+
+ /**
+ * Application configuration
+ *
+ * @var AppConfig
+ */
+ private $config;
+
+ /**
+ * Share manager
+ *
+ * @var IManager
+ */
+ private $shareManager;
+
+ /**
+ * Extra permissions
+ *
+ * @var ExtraPermissions
+ */
+ private $extraPermissions;
+
+ /**
+ * @param string $AppName - application name
+ * @param IRequest $request - request object
+ * @param IRootFolder $root - root folder
+ * @param ILogger $logger - logger
+ * @param IUserSession $userSession - current user session
+ * @param IUserManager $userManager - user manager
+ * @param IManager $shareManager - Share manager
+ * @param AppConfig $config - application configuration
+ */
+ public function __construct($AppName,
+ IRequest $request,
+ IRootFolder $root,
+ ILogger $logger,
+ IUserSession $userSession,
+ IUserManager $userManager,
+ IManager $shareManager,
+ AppConfig $appConfig
+ ) {
+ parent::__construct($AppName, $request);
+
+ $this->root = $root;
+ $this->logger = $logger;
+ $this->userSession = $userSession;
+ $this->userManager = $userManager;
+ $this->shareManager = $shareManager;
+ $this->appConfig = $appConfig;
+
+ if ($this->appConfig->GetAdvanced()
+ && \OC::$server->getAppManager()->isInstalled("files_sharing")) {
+ $this->extraPermissions = new ExtraPermissions($AppName, $logger, $shareManager, $appConfig);
+ }
+ }
+
+ /**
+ * Get shares for file
+ *
+ * @param integer $fileId - file identifier
+ *
+ * @return DataResponse
+ *
+ * @NoAdminRequired
+ * @NoCSRFRequired
+ */
+ public function getShares($fileId) {
+ if ($this->extraPermissions === null) {
+ $this->logger->debug("extraPermissions isn't init", ["app" => $this->appName]);
+ return new DataResponse([], Http::STATUS_BAD_REQUEST);
+ }
+
+ $user = $this->userSession->getUser();
+ $userId = $user->getUID();
+
+ $sourceFile = $this->getFile($fileId, $userId);
+ $fileStorage = $sourceFile->getStorage();
+ if ($fileStorage->instanceOfStorage("\OCA\Files_Sharing\SharedStorage")) {
+ return new DataResponse([]);
+ }
+
+ $sharesUser = $this->shareManager->getSharesBy($userId, IShare::TYPE_USER, $sourceFile, null, true);
+ $sharesGroup = $this->shareManager->getSharesBy($userId, IShare::TYPE_GROUP, $sourceFile, null, true);
+ $shares = array_merge($sharesUser, $sharesGroup);
+ $extras = $this->extraPermissions->getExtras($shares, $sourceFile);
+
+ return new DataResponse($extras);
+ }
+
+ /**
+ * Set shares for file
+ *
+ * @param integer $extraId - extra permission identifier
+ * @param integer $shareId - share identifier
+ * @param integer $fileId - file identifier
+ * @param integer $permissions - permissions value
+ *
+ * @return DataResponse
+ *
+ * @NoAdminRequired
+ * @NoCSRFRequired
+ */
+ public function setShares($extraId, $shareId, $fileId, $permissions) {
+ if ($this->extraPermissions === null) {
+ $this->logger->debug("extraPermissions isn't init", ["app" => $this->appName]);
+ return new DataResponse([], Http::STATUS_BAD_REQUEST);
+ }
+
+ $user = $this->userSession->getUser();
+ $userId = $user->getUID();
+
+ $sourceFile = $this->getFile($fileId, $userId);
+ $fileStorage = $sourceFile->getStorage();
+ if ($fileStorage->instanceOfStorage("\OCA\Files_Sharing\SharedStorage")) {
+ return new DataResponse([], Http::STATUS_BAD_REQUEST);
+ }
+
+ if (!$this->extraPermissions->setExtra($shareId, $permissions, $extraId)) {
+ $this->logger->error("setShares: couldn't set extra permissions for: " . $shareId, ["app" => $this->appName]);
+ return new DataResponse([], Http::STATUS_BAD_REQUEST);
+ }
+
+ $extra = $this->extraPermissions->getExtra($shareId);
+
+ return new DataResponse($extra);
+ }
+
+ /**
+ * Get source file
+ *
+ * @param integer $fileId - file identifier
+ * @param string $userId - user identifier
+ *
+ * @return File
+ */
+ private function getFile($fileId, $userId) {
+ try {
+ $folder = $this->root->getUserFolder($userId);
+ $files = $folder->getById($fileId);
+ } catch (\Exception $e) {
+ $this->logger->logException($e, ["message" => "getFile: $fileId", "app" => $this->appName]);
+ return null;
+ }
+
+ if (empty($files)) {
+ $this->logger->error("getFile: file not found: " . $fileId, ["app" => $this->appName]);
+ return null;
+ }
+
+ return $files[0];
+ }
+}
diff --git a/css/main.css b/css/main.css
index a1d6b14..935794e 100644
--- a/css/main.css
+++ b/css/main.css
@@ -43,7 +43,8 @@ body.onlyoffice-inline {
}
body.onlyoffice-inline #app-navigation,
body.onlyoffice-inline .searchbox,
-body.onlyoffice-inline #app-content #controls {
+body.onlyoffice-inline #app-content #controls,
+body.onlyoffice-inline #filestable {
display: none;
}
body.onlyoffice-inline #app-navigation-toggle {
diff --git a/css/settings.css b/css/settings.css
index db93c62..82c50bf 100644
--- a/css/settings.css
+++ b/css/settings.css
@@ -60,6 +60,8 @@
-webkit-column-width: 100px;
}
.onlyoffice-tables {
+ margin-top: 4px;
+ line-height: initial;
column-width: 140px;
-moz-column-width: 140px;
-webkit-column-width: 140px;
diff --git a/css/share.css b/css/share.css
new file mode 100644
index 0000000..b7818b8
--- /dev/null
+++ b/css/share.css
@@ -0,0 +1,48 @@
+/**
+ *
+ * (c) Copyright Ascensio System SIA 2022
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+.icon-onlyoffice-sharing {
+ background-image: url("../img/app-dark.svg");
+}
+.onlyoffice-share-item {
+ display: flex;
+ list-style-type: none;
+}
+.onlyoffice-share-item img {
+ width: 32px;
+ height: 32px;
+}
+.onlyoffice-share-popup {
+ margin-right: 14px;
+ margin-top: 44px;
+}
+.onlyoffice-share-item span {
+ margin-left: 10px;
+ margin-top: 5px;
+}
+#onlyoffice-share-menu {
+ margin-left: auto;
+}
+.onlyoffice-share-action {
+ line-height: 44px;
+}
+.onlyoffice-share-label {
+ padding-right: 14px !important;
+ padding-left: 14px !important;
+ opacity: .7;
+} \ No newline at end of file
diff --git a/js/editor.js b/js/editor.js
index 00d05cb..fdb5a2d 100644
--- a/js/editor.js
+++ b/js/editor.js
@@ -21,6 +21,7 @@
OCA.Onlyoffice = _.extend({
AppName: "onlyoffice",
inframe: false,
+ inviewer: false,
fileId: null,
shareToken: null,
insertImageType: null
@@ -34,6 +35,7 @@
var directToken = $("#iframeEditor").data("directtoken");
OCA.Onlyoffice.template = $("#iframeEditor").data("template");
OCA.Onlyoffice.inframe = !!$("#iframeEditor").data("inframe");
+ OCA.Onlyoffice.inviewer = !!$("#iframeEditor").data("inviewer");
OCA.Onlyoffice.filePath = $("#iframeEditor").data("path");
OCA.Onlyoffice.anchor = $("#iframeEditor").attr("data-anchor");
var guestName = localStorage.getItem("nick");
@@ -90,6 +92,10 @@
params.push("inframe=true");
}
+ if (OCA.Onlyoffice.inviewer) {
+ params.push("inviewer=true");
+ }
+
if (OCA.Onlyoffice.Desktop) {
params.push("desktop=true");
}
@@ -101,6 +107,11 @@
url: configUrl,
success: function onSuccess(config) {
if (config) {
+ if (config.redirectUrl) {
+ location.href = config.redirectUrl;
+ return;
+ }
+
if (config.error != null) {
OCA.Onlyoffice.showMessage(config.error, "error", {timeout: -1});
return;
@@ -112,11 +123,6 @@
return;
}
- if (config.redirectUrl) {
- location.href = config.redirectUrl;
- return;
- }
-
var docIsChanged = null;
var docIsChangedTimeout = null;
diff --git a/js/main.js b/js/main.js
index 797a767..6d9d7be 100644
--- a/js/main.js
+++ b/js/main.js
@@ -119,9 +119,6 @@
OCA.Files.Sidebar.close();
}
- var scrollTop = $(window).scrollTop();
- $(OCA.Onlyoffice.frameSelector).css("top", scrollTop);
-
OCA.Onlyoffice.folderUrl = location.href;
window.history.pushState(null, null, url);
}
@@ -166,7 +163,10 @@
OCA.Onlyoffice.FileClick = function (fileName, context) {
var fileInfoModel = context.fileInfoModel || context.fileList.getModelForFile(fileName);
- OCA.Onlyoffice.OpenEditor(fileInfoModel.id, context.dir, fileName);
+ var fileId = context.fileId || fileInfoModel.id;
+ var winEditor = !fileInfoModel && !OCA.Onlyoffice.setting.sameTab ? document : null;
+
+ OCA.Onlyoffice.OpenEditor(fileId, context.dir, fileName, 0, winEditor);
OCA.Onlyoffice.context = context;
OCA.Onlyoffice.context.fileName = fileName;
@@ -218,7 +218,7 @@
$(optionNodeOrigin).text(t(OCA.Onlyoffice.AppName, "Origin format"));
dialog[0].dataset.format = extension;
- selectNode.onclick = function() {
+ selectNode.onchange = function() {
dialog[0].dataset.format = $("#onlyoffice-download-select option:selected").attr("data-value");
}
@@ -472,6 +472,14 @@
}
};
+ OCA.Onlyoffice.TabView = {
+ attach(fileList) {
+ if (OCA.Onlyoffice.SharingTabView) {
+ fileList.registerTabView(new OCA.Onlyoffice.SharingTabView())
+ }
+ }
+ }
+
var getFileExtension = function (fileName) {
var extension = fileName.substr(fileName.lastIndexOf(".") + 1).toLowerCase();
return extension;
@@ -561,6 +569,8 @@
} else {
OC.Plugins.register("OCA.Files.NewFileMenu", OCA.Onlyoffice.NewFileMenu);
+ OC.Plugins.register("OCA.Files.FileList", OCA.Onlyoffice.TabView);
+
OCA.Onlyoffice.registerAction();
OCA.Onlyoffice.bindVersionClick();
diff --git a/js/settings.js b/js/settings.js
index f8d3d42..87adadc 100644
--- a/js/settings.js
+++ b/js/settings.js
@@ -191,6 +191,7 @@
var sameTab = $("#onlyofficeSameTab").is(":checked");
var preview = $("#onlyofficePreview").is(":checked");
+ var advanced = $("#onlyofficeAdvanced").is(":checked");
var versionHistory = $("#onlyofficeVersionHistory").is(":checked");
var limitGroupsString = $("#onlyofficeGroups").prop("checked") ? $("#onlyofficeLimitGroups").val() : "";
@@ -203,6 +204,7 @@
var help = $("#onlyofficeHelp").is(":checked");
var toolbarNoTabs = $("#onlyofficeToolbarNoTabs").is(":checked");
var reviewDisplay = $("input[type='radio'][name='reviewDisplay']:checked").attr("id").replace("onlyofficeReviewDisplay_", "");
+ var theme = $("input[type='radio'][name='theme']:checked").attr("id").replace("onlyofficeTheme_", "");
$.ajax({
method: "PUT",
@@ -212,6 +214,7 @@
editFormats: editFormats,
sameTab: sameTab,
preview: preview,
+ advanced: advanced,
versionHistory: versionHistory,
limitGroups: limitGroups,
chat: chat,
@@ -220,7 +223,8 @@
forcesave: forcesave,
help: help,
toolbarNoTabs: toolbarNoTabs,
- reviewDisplay: reviewDisplay
+ reviewDisplay: reviewDisplay,
+ theme: theme
},
success: function onSuccess(response) {
$(".section-onlyoffice").removeClass("icon-loading");
@@ -231,9 +235,11 @@
});
});
- $("#onlyofficeWatermarkSave").click(function () {
+ $("#onlyofficeSecuritySave").click(function () {
$(".section-onlyoffice").addClass("icon-loading");
+ var macros = $("#onlyofficeMacros").is(":checked");
+
var watermarkSettings = {
enabled: $("#onlyofficeWatermark_enabled").is(":checked")
};
@@ -263,9 +269,10 @@
$.ajax({
method: "PUT",
- url: OC.generateUrl("apps/" + OCA.Onlyoffice.AppName + "/ajax/settings/watermark"),
+ url: OC.generateUrl("apps/" + OCA.Onlyoffice.AppName + "/ajax/settings/security"),
data: {
- settings: watermarkSettings
+ watermarks: watermarkSettings,
+ macros: macros
},
success: function onSuccess(response) {
$(".section-onlyoffice").removeClass("icon-loading");
diff --git a/js/share.js b/js/share.js
new file mode 100644
index 0000000..e1f6ab7
--- /dev/null
+++ b/js/share.js
@@ -0,0 +1,418 @@
+/**
+ *
+ * (c) Copyright Ascensio System SIA 2022
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+ (function ($, OC) {
+
+ OCA.Onlyoffice = _.extend({
+ AppName: "onlyoffice",
+ }, OCA.Onlyoffice);
+
+ OCA.Onlyoffice.Permissions = {
+ None: 0,
+ Review: 1,
+ Comment: 2,
+ FillForms: 4,
+ ModifyFilter: 8
+ };
+
+ var tabcontext = null;
+
+ OCA.Onlyoffice.SharingTabView = OCA.Files.DetailTabView.extend({
+ id: "onlyofficeSharingTabView",
+ className: "tab onlyofficeSharingTabView",
+
+ customEvents: null,
+ fileInfo: null,
+ templateItem: null,
+ permissionsMenu: null,
+ colectionLoading: null,
+ collection: null,
+ format: null,
+
+ events: {
+ "click #onlyoffice-share-action": "_onClickPermissionMenu",
+ "change .onlyoffice-share-action input": "_onClickSetPermissions"
+ },
+
+ initialize() {
+ OCA.Files.DetailTabView.prototype.initialize.apply(this, arguments);
+ tabcontext = this;
+
+ this.colectionLoading = false;
+ },
+
+ getLabel() {
+ return t(OCA.Onlyoffice.AppName, "Advanced")
+ },
+
+ getIcon() {
+ return "icon-onlyoffice-sharing"
+ },
+
+ render() {
+ var self = this;
+
+ if (this.customEvents === null) {
+ this.customEvents = this._customEvents();
+ this.customEvents.on();
+ }
+
+ this._getTemplate(() => {
+ this.collection.forEach(extra => {
+ var itemNode = self.templateItem.clone();
+ var descNode = itemNode.find("span");
+ var avatar = itemNode.find("img");
+
+ var avatarSrc = "/index.php/avatar/" + extra.shareWith + "/32?v=0";
+ var label = extra.shareWithName;
+ if (extra.type == OC.Share.SHARE_TYPE_GROUP) {
+ avatarSrc = "/index.php/avatar/guest/" + extra.shareWith + "/32?v=0";
+ label = extra.shareWith + " (" + t(OCA.Onlyoffice.AppName, "group") + ")";
+ }
+
+ avatar[0].src = avatarSrc;
+ descNode[0].innerText = label;
+
+ itemNode[0].id = extra.share_id;
+
+ self._getContainer().append(itemNode);
+ });
+ });
+ },
+
+ setFileInfo(fileInfo) {
+ if(fileInfo) {
+ this.fileInfo = fileInfo;
+
+ if (this.colectionLoading) {
+ return;
+ }
+
+ this._getContainer().children().remove();
+
+ this.colectionLoading = true;
+ OCA.Onlyoffice.GetShares(this.fileInfo.id, (shares) => {
+ this.collection = shares;
+
+ this.colectionLoading = false;
+ this.render();
+ });
+ }
+ },
+
+ canDisplay: function (fileInfo) {
+ var canDisplay = false;
+
+ if (!fileInfo.isDirectory()) {
+ var ext = fileInfo.name.split(".").pop();
+ var format = OCA.Onlyoffice.setting.formats[ext];
+ if (format && (format["review"]
+ || format["comment"]
+ || format["fillForms"]
+ || format["modifyFilter"])) {
+ canDisplay = true;
+ tabcontext.format = format;
+
+ if ($("#sharing").hasClass("active")
+ && tabcontext.fileInfo
+ && tabcontext.fileInfo.id == fileInfo.id) {
+ this.update(fileInfo);
+ }
+ }
+ };
+
+ return canDisplay;
+ },
+
+ _getContainer: function () {
+ return this.$el.find(".onlyoffice-share-container");
+ },
+
+ _getTemplate: function (callback) {
+ if (this.templateItem) {
+ callback();
+ return;
+ }
+
+ var self = this;
+ $.get(OC.filePath(OCA.Onlyoffice.AppName, "templates", "share.html"),
+ function (tmpl) {
+ self.templateItem = $(tmpl);
+
+ $("<ul>", {class: "onlyoffice-share-container"}).appendTo(self.$el)
+ $("<div>").html(t(OCA.Onlyoffice.AppName, "Provide advanced document permissions using ONLYOFFICE Docs")).prependTo(self.$el);
+
+ callback();
+ });
+ },
+
+ _onClickSetPermissions: function (e) {
+ var permissionValues = this.permissionsMenu.getValues();
+ var shareId = this.permissionsMenu.getTargetId();
+ var fileId = this.fileInfo.id;
+ var extra = this.collection.find(item => item.share_id == shareId);
+
+ var permissions = OCA.Onlyoffice.Permissions.None;
+ if (permissionValues[OCA.Onlyoffice.Permissions.Review]) {
+ permissions |= OCA.Onlyoffice.Permissions.Review;
+ }
+ if (permissionValues[OCA.Onlyoffice.Permissions.Comment]
+ && (permissions & OCA.Onlyoffice.Permissions.Review) != OCA.Onlyoffice.Permissions.Review) {
+ permissions |= OCA.Onlyoffice.Permissions.Comment;
+ }
+ if (permissionValues[OCA.Onlyoffice.Permissions.FillForms]
+ && (permissions & OCA.Onlyoffice.Permissions.Review) != OCA.Onlyoffice.Permissions.Review) {
+ permissions |= OCA.Onlyoffice.Permissions.FillForms;
+ }
+ if (permissionValues[OCA.Onlyoffice.Permissions.ModifyFilter]) {
+ permissions |= OCA.Onlyoffice.Permissions.ModifyFilter;
+ }
+
+ this.permissionsMenu.block(true);
+ OCA.Onlyoffice.SetShares(extra.id, shareId, fileId, permissions, (extra) => {
+ this.collection.forEach(item => {
+ if (item.share_id == extra.share_id) {
+ item.id = extra.id;
+ item.permissions = extra.permissions;
+ item.available = extra.available
+ }
+ });
+
+ var attributes = this._getPermissionAttributes(extra);
+
+ this.permissionsMenu.refresh(attributes);
+ this.permissionsMenu.block(false);
+ });
+ },
+
+ _onClickPermissionMenu: function (e) {
+ if (!this.permissionsMenu) {
+ this.permissionsMenu = this._permissionMenu();
+ }
+
+ var shareNode = $(e.target).closest(".onlyoffice-share-item")[0];
+ var shareId = shareNode.id;
+
+
+ if (this.permissionsMenu.isOpen()) {
+ var previousId = this.permissionsMenu.getTargetId();
+ this.permissionsMenu.close();
+
+ if (previousId == shareId) return;
+ }
+
+ var extra = this.collection.find(item => item.share_id == shareId);
+
+ var attributes = this._getPermissionAttributes(extra);
+
+ this.permissionsMenu.open(extra.share_id, attributes, $(e.target).position());
+ },
+
+ _getPermissionAttributes: function (extra) {
+ var attributes = [];
+
+ if (this.format["review"]
+ && (OCA.Onlyoffice.Permissions.Review & extra["available"]) === OCA.Onlyoffice.Permissions.Review) {
+ var review = (OCA.Onlyoffice.Permissions.Review & extra["permissions"]) === OCA.Onlyoffice.Permissions.Review;
+ attributes.push({
+ checked: review,
+ extra: OCA.Onlyoffice.Permissions.Review,
+ label: t(OCA.Onlyoffice.AppName, "Review")
+ });
+ }
+ if (this.format["comment"]
+ && (OCA.Onlyoffice.Permissions.Comment & extra["available"]) === OCA.Onlyoffice.Permissions.Comment) {
+ var comment = (OCA.Onlyoffice.Permissions.Comment & extra["permissions"]) === OCA.Onlyoffice.Permissions.Comment;
+ attributes.push({
+ checked: comment,
+ extra: OCA.Onlyoffice.Permissions.Comment,
+ label: t(OCA.Onlyoffice.AppName, "Comment")
+ });
+ }
+ if (this.format["fillForms"]
+ && (OCA.Onlyoffice.Permissions.FillForms & extra["available"]) === OCA.Onlyoffice.Permissions.FillForms) {
+ var fillForms = (OCA.Onlyoffice.Permissions.FillForms & extra["permissions"]) === OCA.Onlyoffice.Permissions.FillForms;
+ attributes.push({
+ checked: fillForms,
+ extra: OCA.Onlyoffice.Permissions.FillForms,
+ label: t(OCA.Onlyoffice.AppName, "Form filling")
+ });
+ }
+
+ if (this.format["modifyFilter"]
+ && (OCA.Onlyoffice.Permissions.ModifyFilter & extra["available"]) === OCA.Onlyoffice.Permissions.ModifyFilter) {
+ var modifyFilter = (OCA.Onlyoffice.Permissions.ModifyFilter & extra["permissions"]) === OCA.Onlyoffice.Permissions.ModifyFilter;
+ attributes.push({
+ checked: modifyFilter,
+ extra: OCA.Onlyoffice.Permissions.ModifyFilter,
+ label: t(OCA.Onlyoffice.AppName, "Custom filter")
+ });
+ }
+
+ return attributes;
+ },
+
+ _customEvents: function () {
+ var init = false;
+ var self = this;
+
+ return {
+ on: function () {
+ if (!init) {
+ $("#content").on("click", function (e) {
+ var target = $(e.target)[0];
+ if (!self.permissionsMenu
+ || !self.permissionsMenu.isOpen()
+ || target.id == "onlyoffice-share-action"
+ || target.className == "onlyoffice-share-label"
+ || target.closest(".onlyoffice-share-action")) {
+ return;
+ }
+
+ self.permissionsMenu.close();
+ });
+
+ init = true;
+ }
+ }
+ }
+ },
+
+ _permissionMenu: function () {
+ var popup = $("<div>", {
+ class: "popovermenu onlyoffice-share-popup"
+ }).append($("<ul>"), {
+ id: -1
+ });
+
+ var appendItem = function (checked, extra, name) {
+ var item = $("<li>").append($("<span>", {
+ class: "onlyoffice-share-action"
+ }).append($("<input>", {
+ id: "extra-" + extra,
+ type: "checkbox",
+ class: "checkbox action-checkbox__checkbox focusable",
+ checked: checked
+ })).append($("<label>", {
+ for: "extra-" + extra,
+ text: name,
+ class: "onlyoffice-share-label"
+ })));
+
+ popup.find("ul").append(item);
+ };
+
+ var removeItems = function () {
+ var items = popup.find("li");
+ if (items) {
+ items.remove();
+ }
+ }
+
+ var setTargetId = function (id) {
+ popup.find("ul").attr("id", id);
+ };
+
+ this.$el.append(popup);
+
+ return {
+ isOpen: function () {
+ return popup.is(":visible");
+ },
+
+ open: function (id, attributes, position) {
+ removeItems();
+
+ if (position) {
+ popup.css({top: position.top});
+ }
+
+ attributes.forEach(attr => {
+ appendItem(attr.checked, attr.extra, attr.label);
+ });
+
+ setTargetId(id);
+ popup.show();
+ },
+
+ close: function () {
+ removeItems();
+
+ setTargetId(-1);
+ popup.hide();
+ },
+
+ refresh: function (attributes) {
+ removeItems();
+
+ attributes.forEach(attr => {
+ appendItem(attr.checked, attr.extra, attr.label);
+ });
+ },
+
+ block: function (value) {
+ popup.find("input").prop("disabled", value);
+ },
+
+ getValues: function () {
+ var values = [];
+
+ var items = popup.find("input");
+ for (var i = 0; i < items.length; i++) {
+ var extra = items[i].id.split("extra-")[1];
+ values[extra] = items[i].checked;
+ }
+
+ return values;
+ },
+
+ getTargetId: function () {
+ return popup.find("ul").attr("id");
+ },
+ }
+ }
+ });
+
+ OCA.Onlyoffice.GetShares = function(fileId, callback) {
+ $.ajax({
+ url: OC.linkToOCS("apps/" + OCA.Onlyoffice.AppName + "/api/v1/shares", 2) + fileId + "?format=json",
+ success: function onSuccess(response) {
+ callback(response.ocs.data);
+ }
+ })
+ }
+
+ OCA.Onlyoffice.SetShares = function(id, shareId, fileId, permissions, callback) {
+ var data = {
+ extraId: id,
+ shareId: shareId,
+ fileId: fileId,
+ permissions: permissions
+ }
+
+ $.ajax({
+ method: "PUT",
+ url: OC.linkToOCS("apps/" + OCA.Onlyoffice.AppName + "/api/v1", 2) + "shares?format=json",
+ data: data,
+ success: function onSuccess(response) {
+ callback(response.ocs.data);
+ }
+ })
+ }
+
+})(jQuery, OC); \ No newline at end of file
diff --git a/js/viewer.js b/js/viewer.js
index cbd3f4a..b95f72a 100644
--- a/js/viewer.js
+++ b/js/viewer.js
@@ -54,7 +54,7 @@
attrs: {
id: "onlyofficeViewerFrame",
scrolling: "no",
- src: self.url + "&inframe=true",
+ src: self.url + "&inframe=true&inviewer=true",
},
on: {
load: function () {
diff --git a/l10n/bg.js b/l10n/bg.js
index 74f131e..0dabef3 100644
--- a/l10n/bg.js
+++ b/l10n/bg.js
@@ -62,7 +62,6 @@ OC.L10N.register(
"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period." : "Това е обществен тестов сървър, моля, не използвайте за чувствителни частни данни. Сървърът ще е на разположение по време на 30-дневния период.",
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server." : "30-дневният тестов период приключи, вече не можете да се свържете с демо ONLYOFFICE Docs сървър.",
"You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data." : "Използвате обществения демо ONLYOFFICE Docs сървър. Моля, не съхранявайте чувствителни частни данни на него.",
- "Secure view settings" : "Настройки за защитен изглед",
"Secure view enables you to secure documents by embedding a watermark" : "Защитеният изглед активира вашите защитени документи, като вгражда в тях воден знак",
"Enable watermarking" : "Активиране на воден знак",
"Watermark text" : "Текст на водния знак",
@@ -88,6 +87,7 @@ OC.L10N.register(
"Keep intermediate versions when editing (forcesave)": "Съхранявайте междинни версии при редактиране (force save)",
"Use ONLYOFFICE to generate a document preview (it will take up disk space)": "Използвайте ONLYOFFICE, за да генерирате преглед на документа (ще заеме дисково пространство)",
"Keep metadata for each version once the document is edited (it will take up disk space)": "Запазете метаданните за всяка версия, щом документът бъде редактиран (ще заеме дисково пространство)",
+ "Clear": "Изчисти",
"All history successfully deleted": "Цялата история е успешно изтрита",
"Create": "Създай",
"Select template" : "Избор на шаблон",
@@ -116,6 +116,17 @@ OC.L10N.register(
"Create new Form template": "Създайте нов шаблон на формуляр",
"Create form": "Създайте формуляр",
"Fill in form in ONLYOFFICE": "Попълнете формуляр в ONLYOFFICE",
- "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Молим да актуализирате ONLYOFFICE Docs към версия 7.0, за да работи с онлайн формуляри за попълване"
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Молим да актуализирате ONLYOFFICE Docs към версия 7.0, за да работи с онлайн формуляри за попълване",
+ "Security": "Сигурност",
+ "Anonymous": "Анонимен",
+ "Light": "Светла",
+ "Classic Light": "Класически светла",
+ "Dark": "Тъмна",
+ "Review": "Преглед",
+ "Comment": "Коментар",
+ "Form filling": "Попълване на формуляр",
+ "Custom filter": "Персонализиран филтър",
+ "group": "група",
+ "Advanced": "Допълнително"
},
"nplurals=2; plural=(n != 1);");
diff --git a/l10n/bg.json b/l10n/bg.json
index d3c038a..9da3f7d 100644
--- a/l10n/bg.json
+++ b/l10n/bg.json
@@ -60,7 +60,6 @@
"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period.": "Това е обществен тестов сървър, моля, не използвайте за чувствителни частни данни. Сървърът ще е на разположение по време на 30-дневния период.",
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server.": "30-дневният тестов период приключи, вече не можете да се свържете с демо ONLYOFFICE Docs сървър.",
"You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data.": "Използвате обществения демо ONLYOFFICE Docs сървър. Моля, не съхранявайте чувствителни частни данни на него.",
- "Secure view settings": "Настройки за защитен изглед",
"Secure view enables you to secure documents by embedding a watermark": "Защитеният изглед активира вашите защитени документи, като вгражда в тях воден знак",
"Enable watermarking": "Активиране на воден знак",
"Watermark text": "Текст на водния знак",
@@ -86,6 +85,7 @@
"Keep intermediate versions when editing (forcesave)": "Съхранявайте междинни версии при редактиране (force save)",
"Use ONLYOFFICE to generate a document preview (it will take up disk space)": "Използвайте ONLYOFFICE, за да генерирате преглед на документа (ще заеме дисково пространство)",
"Keep metadata for each version once the document is edited (it will take up disk space)": "Запазете метаданните за всяка версия, щом документът бъде редактиран (ще заеме дисково пространство)",
+ "Clear": "Изчисти",
"All history successfully deleted": "Цялата история е успешно изтрита",
"Create": "Създай",
"Select template": "Избор на шаблон",
@@ -114,6 +114,17 @@
"Create new Form template": "Създайте нов шаблон на формуляр",
"Create form": "Създайте формуляр",
"Fill in form in ONLYOFFICE": "Попълнете формуляр в ONLYOFFICE",
- "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Молим да актуализирате ONLYOFFICE Docs към версия 7.0, за да работи с онлайн формуляри за попълване"
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Молим да актуализирате ONLYOFFICE Docs към версия 7.0, за да работи с онлайн формуляри за попълване",
+ "Security": "Сигурност",
+ "Anonymous": "Анонимен",
+ "Light": "Светла",
+ "Classic Light": "Класически светла",
+ "Dark": "Тъмна",
+ "Review": "Преглед",
+ "Comment": "Коментар",
+ "Form filling": "Попълване на формуляр",
+ "Custom filter": "Персонализиран филтър",
+ "group": "група",
+ "Advanced": "Допълнително"
},"pluralForm": "nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/l10n/ca.js b/l10n/ca.js
new file mode 100644
index 0000000..fdc6ac9
--- /dev/null
+++ b/l10n/ca.js
@@ -0,0 +1,132 @@
+OC.L10N.register(
+ "onlyoffice",
+ {
+ "Access denied": "Accés denegat",
+ "Invalid request": "Sol·licitud invàlida",
+ "Files not found": "Arxius no trobats",
+ "File not found": "Arxiu no trobat",
+ "Not permitted": "No permès",
+ "Download failed": "Error en la descàrrega",
+ "The required folder was not found": "No s'ha trobat la carpeta necessària",
+ "You don't have enough permission to create": "No té suficient permís per a crear",
+ "Template not found": "Plantilla no trobada",
+ "Can't create file": "No es pot crear l'arxiu",
+ "Format is not supported": "Format no suportat",
+ "Conversion is not required": "No es requereix conversió",
+ "Failed to download converted file": "Fallada en la descàrrega de l'arxiu convertit",
+ "ONLYOFFICE app is not configured. Please contact admin": "Aplicació ONLYOFFICE no està configurada. Si us plau, contacti amb l'administrador",
+ "FileId is empty": "Id de l'arxiu és buit",
+ "You do not have enough permissions to view the file": "No té suficients permisos per a veure l'arxiu",
+ "Error occurred in the document service": "S'ha produït un error en el servei de documents",
+ "Not supported version": "Versió no compatible",
+ "ONLYOFFICE cannot be reached. Please contact admin": "No es pot accedir a l'ONLYOFFICE. Si us plau, contacti amb l'administrador",
+ "Loading, please wait.": "Carregant, esperi, si us plau.",
+ "File created": "Arxiu creat",
+ "Open in ONLYOFFICE": "Obrir en ONLYOFFICE",
+ "Convert with ONLYOFFICE": "Convertir amb ONLYOFFICE",
+ "New document": "Nou document",
+ "New spreadsheet": "Nou full de càlcul",
+ "New presentation": "Nova presentació",
+ "Error when trying to connect": "Error en intentar establir la connexió",
+ "Settings have been successfully updated": "Ajustos han estat actualitzats amb èxit",
+ "Server can't read xml": "Servidor no pot llegir xml",
+ "Bad Response. Errors: ": "Resposta Dolenta. Errors:",
+ "Documentation": "Documentació",
+ "ONLYOFFICE Docs Location specifies the address of the server with the document services installed. Please change the '<documentserver>' for the server address in the below line.": "Ubicació de l'ONLYOFFICE Docs especifica la direcció del servidor amb els serveis de documents instal·lats. Si us plau, canviï '<documentserver>' per a la direcció de servidor en la línia inferior.",
+ "ONLYOFFICE Docs address": "Direcció d'ONLYOFFICE Docs",
+ "Advanced server settings": "Ajustos de servidor avançats",
+ "ONLYOFFICE Docs address for internal requests from the server": "Direcció d'ONLYOFFICE Docs per a sol·licituds internes del servidor",
+ "Server address for internal requests from ONLYOFFICE Docs": "Direcció de servidor per a sol·licituds internes de l'ONLYOFFICE Docs",
+ "Secret key (leave blank to disable)": "Clau secreta (deixi en blanc o desactivi)",
+ "Open file in the same tab": "Obrir arxiu en la mateixa pestanya",
+ "The default application for opening the format": "L'aplicació predeterminada per a obrir el format",
+ "Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)": "Obrir arxiu per a editar (a causa de les restriccions de format les dades podrien perdre's en guardar en els formats de la següent llista)",
+ "View details": "Veure detalls",
+ "Save": "Guardar",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required.": "Contingut Mixt Actiu no està permès. Es requereix la direcció HTTPS per a ONLYOFFICE Docs.",
+ "Restrict access to editors to following groups": "Restringir l'accés a editors a següents grups",
+ "Server settings": "Ajustos de servidor",
+ "Common settings": "Ajustos comuns",
+ "Editor customization settings": "Ajustos de l'editor",
+ "The customization section allows personalizing the editor interface": "La secció de personalització permet personalitzar la interfície de l'editor",
+ "Display Chat menu button": "Mostrar el botó de Xat",
+ "Display the header more compact": "Mostrar l'encapçalat més compacte",
+ "Display Feedback & Support menu button": "Mostrar el botó de Feedback i Suport",
+ "Display Help menu button": "Mostrar el botó d'Ajuda",
+ "Display monochrome toolbar header": "Mostrar l'encapçalat monocromàtic de la barra d'eines",
+ "Save as": "Guardar com",
+ "File saved": "L'arxiu ha estat desat",
+ "Insert image": "Inserir imatge",
+ "Select recipients": "Seleccionar destinataris",
+ "Connect to demo ONLYOFFICE Docs server": "Connectar-se al servidor de ONLYOFFICE Docs de demostració",
+ "This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period.": "Aquest és un servidor de proves públic, si us plau no l'usis per a les teves dades confidencials. El servidor estarà disponible durant un període de 30 dies.",
+ "The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server.": "El període de prova de 30 dies ha acabat, ja no pots connectar-te al servidor d'ONLYOFFICE Docs de demostració",
+ "You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data.": "Estàs fent servir el servidor d'ONLYOFFICE Docs de demostració. Si us plau, no emmagatzemis les teves dades confidencials aquí.",
+ "Secure view enables you to secure documents by embedding a watermark": "La vista segura permet assegurar documents mitjançant la inserció d'una marca d'aigua en ells",
+ "Enable watermarking": "Habilitar marques d'aigua",
+ "Watermark text": "Text de marca d'aigua",
+ "DO NOT SHARE THIS": "NO COMPARTIR AIXÒ",
+ "Show watermark on tagged files": "Mostrar marca d'aigua en arxius etiquetats",
+ "Show watermark for users of groups": "Mostrar marca d'aigua per a usuaris del grup",
+ "Supported placeholders": "Marcadors suportats",
+ "Show watermark for all shares": "Mostrar marca d'aigua per a tots els usos compartits",
+ "Show watermark for read only shares": "Mostrar marca d'aigua per a usos compartits de només lectura",
+ "Link shares": "Ús compartit d'enllaços",
+ "Show watermark for all link shares": "Mostrar marca d'aigua per a tots els usos compartits d'enllaços",
+ "Show watermark for download hidden shares": "Mostrar marca d'aigua per a usos compartits sense descarregar",
+ "Show watermark for read only link shares": "Mostrar marca d'aigua per a usos compartits de només lectura",
+ "Show watermark on link shares with specific system tags": "Mostrar marca d'aigua per a usos compartits d'enllaços amb etiquetes de sistema específics",
+ "Select tag": "Seleccionar etiqueta",
+ "Select file to compare": "Seleccioni un arxiu per comparar",
+ "Review mode for viewing": "Mode de revisió per visualització",
+ "Markup": "Canvis",
+ "Final": "Final",
+ "Original": "Original",
+ "version": "versió",
+ "Disable certificate verification (insecure)": "Desactivar la verificació de certificats (insegur)",
+ "Keep intermediate versions when editing (forcesave)": "Mantenir les versions intermèdies durant l'edició (forçar guardar)",
+ "Use ONLYOFFICE to generate a document preview (it will take up disk space)": "Usar ONLYOFFICE per a generar una vista prèvia del document (ocuparà espai en el disc)",
+ "Keep metadata for each version once the document is edited (it will take up disk space)": "Guardar les metadades de cada versió en editar el document (ocuparà espai en el disc)",
+ "Clear": "Suprimeix",
+ "All history successfully deleted": "Tot l'historial s'ha eliminat correctament",
+ "Create": "Crear",
+ "Select template": "Seleccionar plantilla",
+ "Invalid file provided": "Arxiu proporcionat no vàlid",
+ "Empty": "Buit",
+ "Error": "Error",
+ "Add a new template": "Afegir una plantilla nova",
+ "Template already exists": "La plantilla ja existeix",
+ "Template must be in OOXML format": "La plantilla ha de tenir el format OOXML",
+ "Template successfully added": "La plantilla es va agregar correctament",
+ "Template successfully deleted": "La plantilla es va eliminar correctament",
+ "Common templates": "Plantilles comunes",
+ "Failed to delete template": "No es va poder eliminar la plantilla",
+ "File has been converted. Its content might look different.": "L'arxiu s'ha convertit. El seu contingut pot ser diferent.",
+ "Download as": "Descarregar com",
+ "Download": "Descarregar",
+ "Origin format": "Format original",
+ "Failed to send notification": "Error en enviar la notificació",
+ "Notification sent successfully": "Notificació enviada correctament",
+ "%1\$s mentioned in the %2\$s: \"%3\$s\".": "%1\$s ha esmentat en %2\$s: \"%3\$s\".",
+ "{notifier} mentioned in the {file}: \"%1\$s\".": "{notifier} li ha esmentat en {file}: \"%1\$s\".",
+ "Choose a format to convert {fileName}": "Triï un format per a convertir {fileName}",
+ "New form template": "Nova plantilla de formulari",
+ "Blank": "En blanc",
+ "From text document": "Des de document de text",
+ "Create new Form template": "Crear nova plantilla de formulari",
+ "Create form": "Crear formulari",
+ "Fill in form in ONLYOFFICE": "Omplir el formulari en ONLYOFFICE",
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Si us plau, actualitzi ONLYOFFICE Docs a la versió 7.0 per a poder treballar amb formularis emplenables en línia",
+ "Security": "Seguretat",
+ "Anonymous": "Anònim",
+ "Light": "Llum",
+ "Classic Light": "Llum clàssica",
+ "Dark": "Fosc",
+ "Review": "Visualització prèvia",
+ "Comment": "Comentari",
+ "Form filling": "Emplenament de formularis",
+ "Custom filter": "Filtre personalitzat",
+ "group": "agrupa",
+ "Advanced": "Avançat"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/l10n/ca.json b/l10n/ca.json
new file mode 100644
index 0000000..879357c
--- /dev/null
+++ b/l10n/ca.json
@@ -0,0 +1,130 @@
+{ "translations": {
+ "Access denied": "Accés denegat",
+ "Invalid request": "Sol·licitud invàlida",
+ "Files not found": "Arxius no trobats",
+ "File not found": "Arxiu no trobat",
+ "Not permitted": "No permès",
+ "Download failed": "Error en la descàrrega",
+ "The required folder was not found": "No s'ha trobat la carpeta necessària",
+ "You don't have enough permission to create": "No té suficient permís per a crear",
+ "Template not found": "Plantilla no trobada",
+ "Can't create file": "No es pot crear l'arxiu",
+ "Format is not supported": "Format no suportat",
+ "Conversion is not required": "No es requereix conversió",
+ "Failed to download converted file": "Fallada en la descàrrega de l'arxiu convertit",
+ "ONLYOFFICE app is not configured. Please contact admin": "Aplicació ONLYOFFICE no està configurada. Si us plau, contacti amb l'administrador",
+ "FileId is empty": "Id de l'arxiu és buit",
+ "You do not have enough permissions to view the file": "No té suficients permisos per a veure l'arxiu",
+ "Error occurred in the document service": "S'ha produït un error en el servei de documents",
+ "Not supported version": "Versió no compatible",
+ "ONLYOFFICE cannot be reached. Please contact admin": "No es pot accedir a l'ONLYOFFICE. Si us plau, contacti amb l'administrador",
+ "Loading, please wait.": "Carregant, esperi, si us plau.",
+ "File created": "Arxiu creat",
+ "Open in ONLYOFFICE": "Obrir en ONLYOFFICE",
+ "Convert with ONLYOFFICE": "Convertir amb ONLYOFFICE",
+ "New document": "Nou document",
+ "New spreadsheet": "Nou full de càlcul",
+ "New presentation": "Nova presentació",
+ "Error when trying to connect": "Error en intentar establir la connexió",
+ "Settings have been successfully updated": "Ajustos han estat actualitzats amb èxit",
+ "Server can't read xml": "Servidor no pot llegir xml",
+ "Bad Response. Errors: ": "Resposta Dolenta. Errors:",
+ "Documentation": "Documentació",
+ "ONLYOFFICE Docs Location specifies the address of the server with the document services installed. Please change the '<documentserver>' for the server address in the below line.": "Ubicació de l'ONLYOFFICE Docs especifica la direcció del servidor amb els serveis de documents instal·lats. Si us plau, canviï '<documentserver>' per a la direcció de servidor en la línia inferior.",
+ "ONLYOFFICE Docs address": "Direcció d'ONLYOFFICE Docs",
+ "Advanced server settings": "Ajustos de servidor avançats",
+ "ONLYOFFICE Docs address for internal requests from the server": "Direcció d'ONLYOFFICE Docs per a sol·licituds internes del servidor",
+ "Server address for internal requests from ONLYOFFICE Docs": "Direcció de servidor per a sol·licituds internes de l'ONLYOFFICE Docs",
+ "Secret key (leave blank to disable)": "Clau secreta (deixi en blanc o desactivi)",
+ "Open file in the same tab": "Obrir arxiu en la mateixa pestanya",
+ "The default application for opening the format": "L'aplicació predeterminada per a obrir el format",
+ "Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)": "Obrir arxiu per a editar (a causa de les restriccions de format les dades podrien perdre's en guardar en els formats de la següent llista)",
+ "View details": "Veure detalls",
+ "Save": "Guardar",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required.": "Contingut Mixt Actiu no està permès. Es requereix la direcció HTTPS per a ONLYOFFICE Docs.",
+ "Restrict access to editors to following groups": "Restringir l'accés a editors a següents grups",
+ "Server settings": "Ajustos de servidor",
+ "Common settings": "Ajustos comuns",
+ "Editor customization settings": "Ajustos de l'editor",
+ "The customization section allows personalizing the editor interface": "La secció de personalització permet personalitzar la interfície de l'editor",
+ "Display Chat menu button": "Mostrar el botó de Xat",
+ "Display the header more compact": "Mostrar l'encapçalat més compacte",
+ "Display Feedback & Support menu button": "Mostrar el botó de Feedback i Suport",
+ "Display Help menu button": "Mostrar el botó d'Ajuda",
+ "Display monochrome toolbar header": "Mostrar l'encapçalat monocromàtic de la barra d'eines",
+ "Save as": "Guardar com",
+ "File saved": "L'arxiu ha estat desat",
+ "Insert image": "Inserir imatge",
+ "Select recipients": "Seleccionar destinataris",
+ "Connect to demo ONLYOFFICE Docs server": "Connectar-se al servidor de ONLYOFFICE Docs de demostració",
+ "This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period.": "Aquest és un servidor de proves públic, si us plau no l'usis per a les teves dades confidencials. El servidor estarà disponible durant un període de 30 dies.",
+ "The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server.": "El període de prova de 30 dies ha acabat, ja no pots connectar-te al servidor d'ONLYOFFICE Docs de demostració",
+ "You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data.": "Estàs fent servir el servidor d'ONLYOFFICE Docs de demostració. Si us plau, no emmagatzemis les teves dades confidencials aquí.",
+ "Secure view enables you to secure documents by embedding a watermark": "La vista segura permet assegurar documents mitjançant la inserció d'una marca d'aigua en ells",
+ "Enable watermarking": "Habilitar marques d'aigua",
+ "Watermark text": "Text de marca d'aigua",
+ "DO NOT SHARE THIS": "NO COMPARTIR AIXÒ",
+ "Show watermark on tagged files": "Mostrar marca d'aigua en arxius etiquetats",
+ "Show watermark for users of groups": "Mostrar marca d'aigua per a usuaris del grup",
+ "Supported placeholders": "Marcadors suportats",
+ "Show watermark for all shares": "Mostrar marca d'aigua per a tots els usos compartits",
+ "Show watermark for read only shares": "Mostrar marca d'aigua per a usos compartits de només lectura",
+ "Link shares": "Ús compartit d'enllaços",
+ "Show watermark for all link shares": "Mostrar marca d'aigua per a tots els usos compartits d'enllaços",
+ "Show watermark for download hidden shares": "Mostrar marca d'aigua per a usos compartits sense descarregar",
+ "Show watermark for read only link shares": "Mostrar marca d'aigua per a usos compartits de només lectura",
+ "Show watermark on link shares with specific system tags": "Mostrar marca d'aigua per a usos compartits d'enllaços amb etiquetes de sistema específics",
+ "Select tag": "Seleccionar etiqueta",
+ "Select file to compare": "Seleccioni un arxiu per comparar",
+ "Review mode for viewing": "Mode de revisió per visualització",
+ "Markup": "Canvis",
+ "Final": "Final",
+ "Original": "Original",
+ "version": "versió",
+ "Disable certificate verification (insecure)": "Desactivar la verificació de certificats (insegur)",
+ "Keep intermediate versions when editing (forcesave)": "Mantenir les versions intermèdies durant l'edició (forçar guardar)",
+ "Use ONLYOFFICE to generate a document preview (it will take up disk space)": "Usar ONLYOFFICE per a generar una vista prèvia del document (ocuparà espai en el disc)",
+ "Keep metadata for each version once the document is edited (it will take up disk space)": "Guardar les metadades de cada versió en editar el document (ocuparà espai en el disc)",
+ "Clear": "Suprimeix",
+ "All history successfully deleted": "Tot l'historial s'ha eliminat correctament",
+ "Create": "Crear",
+ "Select template": "Seleccionar plantilla",
+ "Invalid file provided": "Arxiu proporcionat no vàlid",
+ "Empty": "Buit",
+ "Error": "Error",
+ "Add a new template": "Afegir una plantilla nova",
+ "Template already exists": "La plantilla ja existeix",
+ "Template must be in OOXML format": "La plantilla ha de tenir el format OOXML",
+ "Template successfully added": "La plantilla es va agregar correctament",
+ "Template successfully deleted": "La plantilla es va eliminar correctament",
+ "Common templates": "Plantilles comunes",
+ "Failed to delete template": "No es va poder eliminar la plantilla",
+ "File has been converted. Its content might look different.": "L'arxiu s'ha convertit. El seu contingut pot ser diferent.",
+ "Download as": "Descarregar com",
+ "Download": "Descarregar",
+ "Origin format": "Format original",
+ "Failed to send notification": "Error en enviar la notificació",
+ "Notification sent successfully": "Notificació enviada correctament",
+ "%1$s mentioned in the %2$s: \"%3$s\".": "%1$s ha esmentat en %2$s: \"%3$s\".",
+ "{notifier} mentioned in the {file}: \"%1$s\".": "{notifier} li ha esmentat en {file}: \"%1$s\".",
+ "Choose a format to convert {fileName}": "Triï un format per a convertir {fileName}",
+ "New form template": "Nova plantilla de formulari",
+ "Blank": "En blanc",
+ "From text document": "Des de document de text",
+ "Create new Form template": "Crear nova plantilla de formulari",
+ "Create form": "Crear formulari",
+ "Fill in form in ONLYOFFICE": "Omplir el formulari en ONLYOFFICE",
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Si us plau, actualitzi ONLYOFFICE Docs a la versió 7.0 per a poder treballar amb formularis emplenables en línia",
+ "Security": "Seguretat",
+ "Anonymous": "Anònim",
+ "Light": "Llum",
+ "Classic Light": "Llum clàssica",
+ "Dark": "Fosc",
+ "Review": "Visualització prèvia",
+ "Comment": "Comentari",
+ "Form filling": "Emplenament de formularis",
+ "Custom filter": "Filtre personalitzat",
+ "group": "agrupa",
+ "Advanced": "Avançat"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
diff --git a/l10n/de.js b/l10n/de.js
index 07ce0bb..c62145e 100644
--- a/l10n/de.js
+++ b/l10n/de.js
@@ -62,7 +62,6 @@ OC.L10N.register(
"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period." : "Dies ist ein öffentlicher Testserver. Bitte verwende beim Testen keine privaten sensiblen Daten. Der Server ist 30 Tage lang verfügbar.",
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server." : "Der 30-tägige Testzeitraum ist abgelaufen. Du kannst keine Verbindung mehr zu Demo ONLYOFFICE Docs Server herstellen.",
"You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data." : "Du verwendest den öffentlichen Demo ONLYOFFICE Docs Server. Bitte benutze ihn nicht zum Speichern von Deinen privaten sensiblen Daten.",
- "Secure view settings" : "Einstellungen für Sichere Ansicht",
"Secure view enables you to secure documents by embedding a watermark" : "Sichere Ansicht ermöglicht Dir Dokumente durch Einbettung eines Wasserzeichens abzusichern",
"Enable watermarking" : "Wasserzeichenmarkierung aktivieren",
"Watermark text" : "Wasserzeichen-Text",
@@ -88,6 +87,7 @@ OC.L10N.register(
"Keep intermediate versions when editing (forcesave)": "Zwischenversionen bei der Bearbeitung aufbewahren (force save)",
"Use ONLYOFFICE to generate a document preview (it will take up disk space)": "ONLYOFFICE verwenden, um eine Dokumentvorschau zu erstellen (Speicherplatz erforderlich)",
"Keep metadata for each version once the document is edited (it will take up disk space)": "Metadaten für jede Version beim Bearbeiten des Dokuments aufbewahren (Speicherplatz erforderlich)",
+ "Clear": "Leeren",
"All history successfully deleted": "Gesamtverlauf wurde erfolgreich gelöscht",
"Create": "Erstellen",
"Select template" : "Vorlage auswählen",
@@ -116,6 +116,20 @@ OC.L10N.register(
"Create new Form template": "Neue Formularvorlage erstellen",
"Create form": "Formular erstellen",
"Fill in form in ONLYOFFICE": "Formular in ONLYOFFICE ausfüllen",
- "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Für Online-Arbeit mit Formularen ist Version 7.0 von ONLYOFFICE Docs erforderlich"
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Für Online-Arbeit mit Formularen ist Version 7.0 von ONLYOFFICE Docs erforderlich",
+ "Security": "Sicherheit",
+ "Run document macros": "Makros im Dokument ausführen",
+ "Anonymous": "Anonym",
+ "Default editor theme": "Standardmäßiges Thema des Editors",
+ "Light": "Hell",
+ "Classic Light": "Klassisch Hell",
+ "Dark": "Dunkel",
+ "Review": "Review",
+ "Comment": "Kommentar",
+ "Form filling": "Ausfüllen von formularen",
+ "Custom filter": "Benutzerdefinierter filter",
+ "group": "gruppe",
+ "Advanced": "Erweitert",
+ "Provide advanced document permissions using ONLYOFFICE Docs": "Erweiterte Zugriffsrechte in ONLYOFFICE Docs vergeben"
},
"nplurals=2; plural=(n != 1);");
diff --git a/l10n/de.json b/l10n/de.json
index 6b01cac..a279c6d 100644
--- a/l10n/de.json
+++ b/l10n/de.json
@@ -60,7 +60,6 @@
"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period." : "Dies ist ein öffentlicher Testserver. Bitte verwende beim Testen keine privaten sensiblen Daten. Der Server ist 30 Tage lang verfügbar.",
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server." : "Der 30-tägige Testzeitraum ist abgelaufen. Du kannst keine Verbindung mehr zu Demo ONLYOFFICE Docs Server herstellen.",
"You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data." : "Du verwendest den öffentlichen Demo ONLYOFFICE Docs Server. Bitte benutze ihn nicht zum Speichern von Deinen privaten sensiblen Daten.",
- "Secure view settings" : "Einstellungen für Sichere Ansicht",
"Secure view enables you to secure documents by embedding a watermark" : "Sichere Ansicht ermöglicht Dir Dokumente durch Einbettung eines Wasserzeichens abzusichern",
"Enable watermarking" : "Wasserzeichenmarkierung aktivieren",
"Watermark text" : "Wasserzeichen-Text",
@@ -86,6 +85,7 @@
"Keep intermediate versions when editing (forcesave)": "Zwischenversionen bei der Bearbeitung aufbewahren (force save)",
"Use ONLYOFFICE to generate a document preview (it will take up disk space)": "ONLYOFFICE verwenden, um eine Dokumentvorschau zu erstellen (Speicherplatz erforderlich)",
"Keep metadata for each version once the document is edited (it will take up disk space)": "Metadaten für jede Version beim Bearbeiten des Dokuments aufbewahren (Speicherplatz erforderlich)",
+ "Clear": "Leeren",
"All history successfully deleted": "Gesamtverlauf wurde erfolgreich gelöscht",
"Create": "Erstellen",
"Select template" : "Vorlage auswählen",
@@ -114,6 +114,20 @@
"Create new Form template": "Neue Formularvorlage erstellen",
"Create form": "Formular erstellen",
"Fill in form in ONLYOFFICE": "Formular in ONLYOFFICE ausfüllen",
- "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Für Online-Arbeit mit Formularen ist Version 7.0 von ONLYOFFICE Docs erforderlich"
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Für Online-Arbeit mit Formularen ist Version 7.0 von ONLYOFFICE Docs erforderlich",
+ "Security": "Sicherheit",
+ "Run document macros": "Makros im Dokument ausführen",
+ "Anonymous": "Anonym",
+ "Default editor theme": "Standardmäßiges Thema des Editors",
+ "Light": "Hell",
+ "Classic Light": "Klassisch Hell",
+ "Dark": "Dunkel",
+ "Review": "Review",
+ "Comment": "Kommentarе",
+ "Form filling": "Ausfüllen von formularen",
+ "Custom filter": "Benutzerdefinierter filter",
+ "group": "gruppe",
+ "Advanced": "Erweitert",
+ "Provide advanced document permissions using ONLYOFFICE Docs": "Erweiterte Zugriffsrechte in ONLYOFFICE Docs vergeben"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/l10n/de_DE.js b/l10n/de_DE.js
index 03354fb..ef659bd 100644
--- a/l10n/de_DE.js
+++ b/l10n/de_DE.js
@@ -62,7 +62,6 @@ OC.L10N.register(
"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period." : "Dies ist ein öffentlicher Testserver. Bitte verwenden Sie beim Testen keine privaten sensiblen Daten. Der Server ist 30 Tage lang verfügbar.",
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server.": "Der 30-tägige Testzeitraum ist abgelaufen. Sie können keine Verbindung mehr zu Demo ONLYOFFICE Docs Server herstellen.",
"You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data.": "Sie verwenden den öffentlichen Demo ONLYOFFICE Docs Server. Bitte benutzen Sie ihn nicht zum Speichern von Ihren privaten sensiblen Daten.",
- "Secure view settings" : "Einstellungen für Sichere Ansicht",
"Secure view enables you to secure documents by embedding a watermark" : "Sichere Ansicht ermöglicht Ihnen Dokumente durch Einbettung eines Wasserzeichens abzusichern",
"Enable watermarking" : "Wasserzeichenmarkierung aktivieren",
"Watermark text" : "Wasserzeichen-Text",
@@ -88,6 +87,7 @@ OC.L10N.register(
"Keep intermediate versions when editing (forcesave)": "Zwischenversionen bei der Bearbeitung aufbewahren (force save)",
"Use ONLYOFFICE to generate a document preview (it will take up disk space)": "ONLYOFFICE verwenden, um eine Dokumentvorschau zu erstellen (Speicherplatz erforderlich)",
"Keep metadata for each version once the document is edited (it will take up disk space)": "Metadaten für jede Version beim Bearbeiten des Dokuments aufbewahren (Speicherplatz erforderlich)",
+ "Clear": "Leeren",
"All history successfully deleted": "Gesamtverlauf wurde erfolgreich gelöscht",
"Create": "Erstellen",
"Select template" : "Vorlage auswählen",
@@ -116,6 +116,20 @@ OC.L10N.register(
"Create new Form template": "Neue Formularvorlage erstellen",
"Create form": "Formular erstellen",
"Fill in form in ONLYOFFICE": "Formular in ONLYOFFICE ausfüllen",
- "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Für Online-Arbeit mit Formularen ist Version 7.0 von ONLYOFFICE Docs erforderlich"
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Für Online-Arbeit mit Formularen ist Version 7.0 von ONLYOFFICE Docs erforderlich",
+ "Security": "Sicherheit",
+ "Run document macros": "Makros im Dokument ausführen",
+ "Anonymous": "Anonym",
+ "Default editor theme": "Standardmäßiges Thema des Editors",
+ "Light": "Hell",
+ "Classic Light": "Klassisch Hell",
+ "Dark": "Dunkel",
+ "Review": "Review",
+ "Comment": "Kommentar",
+ "Form filling": "Ausfüllen von formularen",
+ "Custom filter": "Benutzerdefinierter filter",
+ "group": "gruppe",
+ "Advanced": "Erweitert",
+ "Provide advanced document permissions using ONLYOFFICE Docs": "Erweiterte Zugriffsrechte in ONLYOFFICE Docs vergeben"
},
"nplurals=2; plural=(n != 1);");
diff --git a/l10n/de_DE.json b/l10n/de_DE.json
index 41f8cf5..d15a66a 100644
--- a/l10n/de_DE.json
+++ b/l10n/de_DE.json
@@ -60,7 +60,6 @@
"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period." : "Dies ist ein öffentlicher Testserver. Bitte verwenden Sie beim Testen keine privaten sensiblen Daten. Der Server ist 30 Tage lang verfügbar.",
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server.": "Der 30-tägige Testzeitraum ist abgelaufen. Sie können keine Verbindung mehr zu Demo ONLYOFFICE Docs Server herstellen.",
"You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data.": "Sie verwenden den öffentlichen Demo ONLYOFFICE Docs Server. Bitte benutzen Sie ihn nicht zum Speichern von Ihren privaten sensiblen Daten.",
- "Secure view settings" : "Einstellungen für Sichere Ansicht",
"Secure view enables you to secure documents by embedding a watermark" : "Sichere Ansicht ermöglicht Ihnen Dokumente durch Einbettung eines Wasserzeichens abzusichern",
"Enable watermarking" : "Wasserzeichenmarkierung aktivieren",
"Watermark text" : "Wasserzeichen-Text",
@@ -86,6 +85,7 @@
"Keep intermediate versions when editing (forcesave)": "Zwischenversionen bei der Bearbeitung aufbewahren (force save)",
"Use ONLYOFFICE to generate a document preview (it will take up disk space)": "ONLYOFFICE verwenden, um eine Dokumentvorschau zu erstellen (Speicherplatz erforderlich)",
"Keep metadata for each version once the document is edited (it will take up disk space)": "Metadaten für jede Version beim Bearbeiten des Dokuments aufbewahren (Speicherplatz erforderlich)",
+ "Clear": "Leeren",
"All history successfully deleted": "Gesamtverlauf wurde erfolgreich gelöscht",
"Create": "Erstellen",
"Select template" : "Vorlage auswählen",
@@ -114,6 +114,20 @@
"Create new Form template": "Neue Formularvorlage erstellen",
"Create form": "Formular erstellen",
"Fill in form in ONLYOFFICE": "Formular in ONLYOFFICE ausfüllen",
- "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Für Online-Arbeit mit Formularen ist Version 7.0 von ONLYOFFICE Docs erforderlich"
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Für Online-Arbeit mit Formularen ist Version 7.0 von ONLYOFFICE Docs erforderlich",
+ "Security": "Sicherheit",
+ "Run document macros": "Makros im Dokument ausführen",
+ "Anonymous": "Anonym",
+ "Default editor theme": "Standardmäßiges Thema des Editors",
+ "Light": "Hell",
+ "Classic Light": "Klassisch Hell",
+ "Dark": "Dunkel",
+ "Review": "Review",
+ "Comment": "Kommentarе",
+ "Form filling": "Ausfüllen von formularen",
+ "Custom filter": "Benutzerdefinierter filter",
+ "group": "gruppe",
+ "Advanced": "Erweitert",
+ "Provide advanced document permissions using ONLYOFFICE Docs": "Erweiterte Zugriffsrechte in ONLYOFFICE Docs vergeben"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/l10n/es.js b/l10n/es.js
index 5b09ce6..332edbd 100644
--- a/l10n/es.js
+++ b/l10n/es.js
@@ -62,7 +62,6 @@ OC.L10N.register(
"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period." : "Este es un servidor de pruebas público, por favor no lo uses para tus datos confidenciales. El servidor estará disponible durante un período de 30 días.",
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server." : "El período de prueba de 30 días ha terminado, ya no puedes conectarte al servidor de ONLYOFFICE Docs de demostración",
"You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data." : "Estás usando el servidor de ONLYOFFICE Docs de demostración. Por favor, no almacenes tus datos confidenciales aquí.",
- "Secure view settings" : "Configuración de visualización segura",
"Secure view enables you to secure documents by embedding a watermark" : "La vista segura permite asegurar documentos mediante la inserción de una marca de agua en ellos",
"Enable watermarking" : "Habilitar marcas de agua",
"Watermark text" : "Texto de marca de agua",
@@ -88,6 +87,7 @@ OC.L10N.register(
"Keep intermediate versions when editing (forcesave)": "Mantener las versiones intermedias durante la edición (forzar guardar)",
"Use ONLYOFFICE to generate a document preview (it will take up disk space)": "Usar ONLYOFFICE para generar una vista previa del documento (ocupará espacio en el disco)",
"Keep metadata for each version once the document is edited (it will take up disk space)": "Guardar los metadatos de cada versión al editar el documento (ocupará espacio en el disco)",
+ "Clear": "Limpiar",
"All history successfully deleted": "Todo el historial se ha eliminado correctamente",
"Create": "Crear",
"Select template" : "Seleccionar plantilla",
@@ -116,6 +116,20 @@ OC.L10N.register(
"Create new Form template": "Crear nueva plantilla de formulario",
"Create form": "Crear formulario",
"Fill in form in ONLYOFFICE": "Rellenar el formulario en ONLYOFFICE",
- "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Por favor, actualice ONLYOFFICE Docs a la versión 7.0 para poder trabajar con formularios rellenables en línea"
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Por favor, actualice ONLYOFFICE Docs a la versión 7.0 para poder trabajar con formularios rellenables en línea",
+ "Security": "Seguridad",
+ "Run document macros": "Ejecutar macros de documentos",
+ "Anonymous": "Anónimo",
+ "Default editor theme": "Tema del editor predeterminado",
+ "Light": "Claro",
+ "Classic Light": "Clásico claro",
+ "Dark": "Oscuro",
+ "Review": "Revista",
+ "Comment": "Comentarios",
+ "Form filling": "Relleno de formulario",
+ "Custom filter": "Filtro personalizado",
+ "group": "grupo",
+ "Advanced": "Avanzado",
+ "Provide advanced document permissions using ONLYOFFICE Docs": "Proporcione permisos avanzados para los documentos utilizando ONLYOFFICE Docs"
},
"nplurals=2; plural=(n != 1);");
diff --git a/l10n/es.json b/l10n/es.json
index c032fce..74907e0 100644
--- a/l10n/es.json
+++ b/l10n/es.json
@@ -60,7 +60,6 @@
"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period." : "Este es un servidor de pruebas público, por favor no lo uses para tus datos confidenciales. El servidor estará disponible durante un período de 30 días.",
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server." : "El período de prueba de 30 días ha terminado, ya no puedes conectarte al servidor de ONLYOFFICE Docs de demostración",
"You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data." : "Estás usando el servidor de ONLYOFFICE Docs de demostración. Por favor, no almacenes tus datos confidenciales aquí.",
- "Secure view settings" : "Configuración de visualización segura",
"Secure view enables you to secure documents by embedding a watermark" : "La vista segura permite asegurar documentos mediante la inserción de una marca de agua en ellos",
"Enable watermarking" : "Habilitar marcas de agua",
"Watermark text" : "Texto de marca de agua",
@@ -86,6 +85,7 @@
"Keep intermediate versions when editing (forcesave)": "Mantener las versiones intermedias durante la edición (forzar guardar)",
"Use ONLYOFFICE to generate a document preview (it will take up disk space)": "Usar ONLYOFFICE para generar una vista previa del documento (ocupará espacio en el disco)",
"Keep metadata for each version once the document is edited (it will take up disk space)": "Guardar los metadatos de cada versión al editar el documento (ocupará espacio en el disco)",
+ "Clear": "Limpiar",
"All history successfully deleted": "Todo el historial se ha eliminado correctamente",
"Create": "Crear",
"Select template" : "Seleccionar plantilla",
@@ -114,6 +114,20 @@
"Create new Form template": "Crear nueva plantilla de formulario",
"Create form": "Crear formulario",
"Fill in form in ONLYOFFICE": "Rellenar el formulario en ONLYOFFICE",
- "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Por favor, actualice ONLYOFFICE Docs a la versión 7.0 para poder trabajar con formularios rellenables en línea"
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Por favor, actualice ONLYOFFICE Docs a la versión 7.0 para poder trabajar con formularios rellenables en línea",
+ "Security": "Seguridad",
+ "Run document macros": "Ejecutar macros de documentos",
+ "Anonymous": "Anónimo",
+ "Default editor theme": "Tema del editor predeterminado",
+ "Light": "Claro",
+ "Classic Light": "Clásico claro",
+ "Dark": "Oscuro",
+ "Review": "Revista",
+ "Comment": "Comentarios",
+ "Form filling": "Relleno de formulario",
+ "Custom filter": "Filtro personalizado",
+ "group": "grupo",
+ "Advanced": "Avanzado",
+ "Provide advanced document permissions using ONLYOFFICE Docs": "Proporcione permisos avanzados para los documentos utilizando ONLYOFFICE Docs"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/l10n/fr.js b/l10n/fr.js
index 362daa9..0c41ac8 100644
--- a/l10n/fr.js
+++ b/l10n/fr.js
@@ -62,7 +62,6 @@ OC.L10N.register(
"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period." : "C’est un serveur public proposé à des fins de tests, veuillez ne pas l’utiliser pour vos données personnelles sensibles. Le serveur est disponible pendant 30 jours.",
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server." : "La période d’essai de 30 jours est expirée, vous n’êtes plus en mesure de vous connecter à la version démo de ONLYOFFICE Docs.",
"You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data." : "Vous utilisez la version démo de ONLYOFFICE Docs, proposée à des fins de tests. Veuillez ne pas stocker vos données confidentielles.",
- "Secure view settings" : "Paramètres d’affichage sécurisé",
"Secure view enables you to secure documents by embedding a watermark" : "L’affichage sécurisé permet de protéger vos documents à l’aide d’un filigrane.",
"Enable watermarking" : "Activer un filigrane",
"Watermark text" : "Texte du filigrane",
@@ -88,6 +87,7 @@ OC.L10N.register(
"Keep intermediate versions when editing (forcesave)": "Sauvegarder les versions intermédiaires lors de l'édition (enregistrement obligatoire)",
"Use ONLYOFFICE to generate a document preview (it will take up disk space)": "Utilisez ONLYOFFICE pour générer l'aperçu du document (occupe de l'espace disque)",
"Keep metadata for each version once the document is edited (it will take up disk space)": "Gardez les métadonnées pour chaque version dès que le document est modifié (occupe de l'espace disque)",
+ "Clear": "Effacer",
"All history successfully deleted": "L'historique a été supprimé avec succès",
"Create": "Créer",
"Select template" : "Sélectionnez un modèle",
@@ -116,6 +116,20 @@ OC.L10N.register(
"Create new Form template": "Créer un nouveau modèle de formulaire",
"Create form": "Créer un formulaire",
"Fill in form in ONLYOFFICE": "Remplir le formulaire dans ONLYOFFICE",
- "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Veuillez mettre à jour ONLYOFFICE Docs vers la version 7.0 pour travailler sur les formulaires à remplir en ligne"
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Veuillez mettre à jour ONLYOFFICE Docs vers la version 7.0 pour travailler sur les formulaires à remplir en ligne",
+ "Security": "Sécurité",
+ "Run document macros": "Exécuter des macros de documents",
+ "Anonymous": "Anonyme",
+ "Default editor theme": "Thème d'éditeur par défaut",
+ "Light": "Clair",
+ "Classic Light": "Classique clair",
+ "Dark": "Sombre",
+ "Review": "Révision",
+ "Comment": "Commentaire",
+ "Form filling": "Remplissage de formulaire",
+ "Custom filter": "Filtre personnalisé",
+ "group": "groupe",
+ "Advanced": "Avancé",
+ "Provide advanced document permissions using ONLYOFFICE Docs": "Fournir des autorisations avancées pour les documents en utilisant ONLYOFFICE Docs"
},
"nplurals=2; plural=(n > 1);");
diff --git a/l10n/fr.json b/l10n/fr.json
index 41ef6b3..7b05833 100644
--- a/l10n/fr.json
+++ b/l10n/fr.json
@@ -60,7 +60,6 @@
"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period." : "C’est un serveur public proposé à des fins de tests, veuillez ne pas l’utiliser pour vos données personnelles sensibles. Le serveur est disponible pendant 30 jours.",
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server." : "La période d’essai de 30 jours est expirée, vous n’êtes plus en mesure de vous connecter à la version démo de ONLYOFFICE Docs.",
"You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data." : "Vous utilisez la version démo de ONLYOFFICE Docs, proposée à des fins de tests. Veuillez ne pas stocker vos données confidentielles.",
- "Secure view settings" : "Paramètres d’affichage sécurisé",
"Secure view enables you to secure documents by embedding a watermark" : "L’affichage sécurisé permet de protéger vos documents à l’aide d’un filigrane.",
"Enable watermarking" : "Activer un filigrane",
"Watermark text" : "Texte du filigrane",
@@ -86,6 +85,7 @@
"Keep intermediate versions when editing (forcesave)": "Sauvegarder les versions intermédiaires lors de l'édition (enregistrement obligatoire)",
"Use ONLYOFFICE to generate a document preview (it will take up disk space)": "Utilisez ONLYOFFICE pour générer l'aperçu du document (occupe de l'espace disque)",
"Keep metadata for each version once the document is edited (it will take up disk space)": "Gardez les métadonnées pour chaque version dès que le document est modifié (occupe de l'espace disque)",
+ "Clear": "Effacer",
"All history successfully deleted": "L'historique a été supprimé avec succès",
"Create": "Créer",
"Select template" : "Sélectionnez un modèle",
@@ -114,6 +114,20 @@
"Create new Form template": "Créer un nouveau modèle de formulaire",
"Create form": "Créer un formulaire",
"Fill in form in ONLYOFFICE": "Remplir le formulaire dans ONLYOFFICE",
- "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Veuillez mettre à jour ONLYOFFICE Docs vers la version 7.0 pour travailler sur les formulaires à remplir en ligne"
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Veuillez mettre à jour ONLYOFFICE Docs vers la version 7.0 pour travailler sur les formulaires à remplir en ligne",
+ "Security": "Sécurité",
+ "Run document macros": "Exécuter des macros de documents",
+ "Anonymous": "Anonyme",
+ "Default editor theme": "Thème d'éditeur par défaut",
+ "Light": "Clair",
+ "Classic Light": "Classique clair",
+ "Dark": "Sombre",
+ "Review": "Révision",
+ "Comment": "Commentaire",
+ "Form filling": "Remplissage de formulaire",
+ "Custom filter": "Filtre personnalisé",
+ "group": "groupe",
+ "Advanced": "Avancé",
+ "Provide advanced document permissions using ONLYOFFICE Docs": "Fournir des autorisations avancées pour les documents en utilisant ONLYOFFICE Docs"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
-}
+} \ No newline at end of file
diff --git a/l10n/it.js b/l10n/it.js
index 29789ec..396d4a5 100644
--- a/l10n/it.js
+++ b/l10n/it.js
@@ -62,7 +62,6 @@ OC.L10N.register(
"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period.": "Questo è un server di prova pubblico, non utilizzarlo per dati sensibili privati. Il server sarà disponibile per un periodo di 30 giorni.",
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server." : "Il periodo di prova di 30 giorni è terminato; non è più possibile connettersi alla versione demo di ONLYOFFICE Docs.",
"You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data." : "Stai utilizzando la versione demo pubblica di ONLYOFFICE Docs. Non memorizzare dati sensibili privati.",
- "Secure view settings" : "Impostazioni di visualizzazione sicura",
"Secure view enables you to secure documents by embedding a watermark" : "La visualizzazione sicura consente di proteggere i documenti inserendo una filigrana",
"Enable watermarking" : "Abilita la filigrana",
"Watermark text" : "Testo della filigrana",
@@ -88,6 +87,7 @@ OC.L10N.register(
"Keep intermediate versions when editing (forcesave)": "Mantieni le versioni intermedie durante la modifica (forzare salvataggio)",
"Use ONLYOFFICE to generate a document preview (it will take up disk space)": "Usare ONLYOFFICE per generare anteprima documenti (occuperà spazio su disco)",
"Keep metadata for each version once the document is edited (it will take up disk space)": "Salvare metadati per ogni versione una volta modificato il documento (occuperà spazio su disco)",
+ "Clear": "Svuota",
"All history successfully deleted": "Cronologia eliminata con successo",
"Create": "Crea",
"Select template" : "Seleziona modello",
@@ -116,6 +116,20 @@ OC.L10N.register(
"Create new Form template": "Creare un nuovo modello di modulo",
"Create form": "Creare modulo",
"Fill in form in ONLYOFFICE": "Compilare il modulo in ONLYOFFICE",
- "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Si prega di aggiornare ONLYOFFICE Docs alla versione 7.0 per lavorare su moduli compilabili online"
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Si prega di aggiornare ONLYOFFICE Docs alla versione 7.0 per lavorare su moduli compilabili online",
+ "Security": "Sicurezza",
+ "Run document macros": "Esegui le macro del documento",
+ "Anonymous": "Anonimo",
+ "Default editor theme": "Tema dell'editor predefinito",
+ "Light": "Chiaro",
+ "Classic Light": "Classico chiaro",
+ "Dark": "Scuro",
+ "Review": "Revisione",
+ "Comment": "Commento",
+ "Form filling": "Compilare un modulo",
+ "Custom filter": "Filtro personalizzato",
+ "group": "gruppo",
+ "Advanced": "Avanzate",
+ "Provide advanced document permissions using ONLYOFFICE Docs": "Fornisci autorizzazioni avanzate per i documenti utilizzando ONLYOFFICE Docs"
},
"nplurals=2; plural=(n != 1);"); \ No newline at end of file
diff --git a/l10n/it.json b/l10n/it.json
index 11001d7..fbdb0d6 100644
--- a/l10n/it.json
+++ b/l10n/it.json
@@ -60,7 +60,6 @@
"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period.": "Questo è un server di prova pubblico, non utilizzarlo per dati sensibili privati. Il server sarà disponibile per un periodo di 30 giorni.",
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server." : "Il periodo di prova di 30 giorni è terminato; non è più possibile connettersi alla versione demo di ONLYOFFICE Docs.",
"You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data." : "Stai utilizzando la versione demo pubblica di ONLYOFFICE Docs. Non memorizzare dati sensibili privati.",
- "Secure view settings" : "Impostazioni di visualizzazione sicura",
"Secure view enables you to secure documents by embedding a watermark" : "La visualizzazione sicura consente di proteggere i documenti inserendo una filigrana",
"Enable watermarking" : "Abilita la filigrana",
"Watermark text" : "Testo della filigrana",
@@ -86,6 +85,7 @@
"Keep intermediate versions when editing (forcesave)": "Mantieni le versioni intermedie durante la modifica (forzare salvataggio)",
"Use ONLYOFFICE to generate a document preview (it will take up disk space)": "Usare ONLYOFFICE per generare anteprima documenti (occuperà spazio su disco)",
"Keep metadata for each version once the document is edited (it will take up disk space)": "Salvare metadati per ogni versione una volta modificato il documento (occuperà spazio su disco)",
+ "Clear": "Svuota",
"All history successfully deleted": "Cronologia eliminata con successo",
"Create": "Crea",
"Select template" : "Seleziona modello",
@@ -114,6 +114,20 @@
"Create new Form template": "Creare un nuovo modello di modulo",
"Create form": "Creare modulo",
"Fill in form in ONLYOFFICE": "Compilare il modulo in ONLYOFFICE",
- "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Si prega di aggiornare ONLYOFFICE Docs alla versione 7.0 per lavorare su moduli compilabili online"
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Si prega di aggiornare ONLYOFFICE Docs alla versione 7.0 per lavorare su moduli compilabili online",
+ "Security": "Sicurezza",
+ "Run document macros": "Esegui le macro del documento",
+ "Anonymous": "Anonimo",
+ "Default editor theme": "Tema dell'editor predefinito",
+ "Light": "Chiaro",
+ "Classic Light": "Classico chiaro",
+ "Dark": "Scuro",
+ "Review": "Revisione",
+ "Comment": "Commento",
+ "Form filling": "Compilare un modulo",
+ "Custom filter": "Filtro personalizzato",
+ "group": "gruppo",
+ "Advanced": "Avanzate",
+ "Provide advanced document permissions using ONLYOFFICE Docs": "Fornisci autorizzazioni avanzate per i documenti utilizzando ONLYOFFICE Docs"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/l10n/ja.js b/l10n/ja.js
index 9c55b37..22450f9 100644
--- a/l10n/ja.js
+++ b/l10n/ja.js
@@ -1,27 +1,27 @@
OC.L10N.register(
"onlyoffice",
{
- "Access denied" : "アクセス拒否されました",
+ "Access denied" : "アクセスが拒否されました",
"Invalid request" : "リクエストが不正です",
"Files not found" : "ファイルが見つかりません",
"File not found" : "ファイルが見つかりません",
"Not permitted" : "権限がありません",
"Download failed" : "ダウンロードできませんでした",
"The required folder was not found" : "開こうとしたフォルダーがありません",
- "You don't have enough permission to create" : "充分な作成権限がありません",
+ "You don't have enough permission to create": "作成権限がありません",
"Template not found" : "テンプレートが見つかりません",
"Can't create file" : "ファイルを作成できません",
"Format is not supported" : "このフォーマットはサポートされていません",
"Conversion is not required" : "変換する必要はありません",
- "Failed to download converted file" : "コンバート済みファイルをダウンロードできませんでした",
+ "Failed to download converted file": "変換されたファイルをダウンロードできませんでした",
"ONLYOFFICE app is not configured. Please contact admin" : "ONLYOFFICEアプリが設定されていません。管理者に相談してください",
"FileId is empty" : "ファイルIDが空です",
- "You do not have enough permissions to view the file" : "ファイルを閲覧する権限が足りません",
+ "You do not have enough permissions to view the file": "ファイルを閲覧する権限ありません",
"Error occurred in the document service" : "ドキュメントサービスでエラーが発生しました",
- "Not supported version" : "未サポートバージョン",
+ "Not supported version": "サポートされていないバージョン",
"ONLYOFFICE cannot be reached. Please contact admin" : "ONLYOFFICEに接続できません。管理者に相談してください",
"Loading, please wait." : "読み込み中です...。しばらくお待ちください。",
- "File created" : "ファイル作成されました",
+ "File created": "ファイルが作成されました",
"Open in ONLYOFFICE" : "ONLYOFFICEで開く",
"Convert with ONLYOFFICE" : "ONLYOFFICEで変換",
"New document" : "新しいドキュメント",
@@ -32,11 +32,11 @@ OC.L10N.register(
"Server can't read xml" : "サーバーでxmlを読み込ませんでした",
"Bad Response. Errors: " : "不正なレスポンス エラー: ",
"Documentation" : "ドキュメンテーション",
- "ONLYOFFICE Docs Location specifies the address of the server with the document services installed. Please change the '<documentserver>' for the server address in the below line." : "ONLYOFFICE Docs の位置は、ドキュメントサービスがインストールされているサーバーのアドレスを指定します。以下の行の'<documentserver>'をサーバーアドレスに変更してください。",
+ "ONLYOFFICE Docs Location specifies the address of the server with the document services installed. Please change the '<documentserver>' for the server address in the below line.": "Docsアドレスにはドキュメントサービスがインストールされているサーバーのアドレスを指定します。以下の行の'<documentserver>'をサーバーアドレスに変更してください。",
"ONLYOFFICE Docs address" : "ONLYOFFICE Docs アドレス",
- "Advanced server settings" : "詳細サーバー設定",
- "ONLYOFFICE Docs address for internal requests from the server" : "サーバーからの内部リクエストにはONLYOFFICE Docs アドレス",
- "Server address for internal requests from ONLYOFFICE Docs" : "ONLYOFFICE Docsからの内部リクエストにはサーバーアドレス",
+ "Advanced server settings": "サーバー詳細設定",
+ "ONLYOFFICE Docs address for internal requests from the server": "サーバーから内部リクエストに利用されるONLYOFFICE Docs アドレス",
+ "Server address for internal requests from ONLYOFFICE Docs": "ONLYOFFICE Docsから内部リクエストに利用されるサーバーアドレス",
"Secret key (leave blank to disable)" : "シークレットキー (ブランクで無効)",
"Open file in the same tab" : "ファイルを同じタブで開く",
"The default application for opening the format": "以下のファイルフォーマットをデフォルトで開く",
@@ -44,16 +44,16 @@ OC.L10N.register(
"View details" : "詳細表示",
"Save" : "保存",
"Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "アクティブコンテンツの混在は許可されていません。ONLYOFFICE DocsにはHTTPSアドレスが必要です",
- "Restrict access to editors to following groups" : "アクセス編集できる人を以下のグループに制限する",
+ "Restrict access to editors to following groups": "エディターの利用を以下のグループに制限する",
"Server settings" : "サーバー設定",
"Common settings" : "共通設定",
"Editor customization settings" : "エディターカスタム設定",
- "The customization section allows personalizing the editor interface": "カスタマイズセクションでは、エディターインターフェイスをパーソナライズできます",
- "Display Chat menu button" : "チャットメニューホタンを表示",
- "Display the header more compact" : "ヘッダーをよりコンパクトに表示",
- "Display Feedback & Support menu button" : "フィードバックとサポートメニューホタンを表示",
- "Display Help menu button" : "ヘルプメニューホタンを表示",
- "Display monochrome toolbar header" : "モノクローム・ツールバーヘッダーを表示する",
+ "The customization section allows personalizing the editor interface": "エディターインターフェイスのカスタマイズ",
+ "Display Chat menu button": "チャットメニューボタンを表示する",
+ "Display the header more compact": "ヘッダーをよりコンパクトに表示する",
+ "Display Feedback & Support menu button": "フィードバックとサポートメニューボタンを表示する",
+ "Display Help menu button": "ヘルプメニューボタンを表示する",
+ "Display monochrome toolbar header": "ツールバーヘッダーをモノクロで表示する",
"Save as" : "別名で保存",
"File saved" : "ファイルが保存されました",
"Insert image" : "画像を挿入",
@@ -62,7 +62,6 @@ OC.L10N.register(
"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period.": "これはパブリックテストサーバーです。プライベートな機密データには使用しないでください。サーバーを30日間、利用できます。",
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server." : "30日間のテスト期間が終了したら、ONLYOFFICE Docs デモサーバーには繋がらなくなります。",
"You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data." : "パブリック ONLYOFFICE Docs サーバーを使っているので、プライベートな機密データを利用しないようにしてください。",
- "Secure view settings" : "セキュアビュー設定",
"Secure view enables you to secure documents by embedding a watermark" : "セキュアビューでドキュメント透かしを埋め込んでドキュメントを保護します",
"Enable watermarking" : "透かしを有効",
"Watermark text" : "透かしテキスト",
@@ -79,19 +78,20 @@ OC.L10N.register(
"Show watermark on link shares with specific system tags" : "特定のシステムタグが付いていてリンク共有されたものに透かしを入れる",
"Select tag" : "タグを選択",
"Select file to compare" : "比較するファイルを選択",
- "Review mode for viewing": "表示するためのレビューモード",
+ "Review mode for viewing": "レビューモード時の表示方式",
"Markup": "マークアップ",
"Final": "最終版",
"Original": "オリジナル",
"version": "バージョン",
- "Disable certificate verification (insecure)": "証明書の検証を無効にする(安全でない",
+ "Disable certificate verification (insecure)": "証明書の検証を無効にする(安全ではありません)",
"Keep intermediate versions when editing (forcesave)": "編集時に、中間バージョンを保持する (強制保存)",
- "Use ONLYOFFICE to generate a document preview (it will take up disk space)": "ONLYOFFICEを使用して、ドキュメントプレビューを生成する(ディスク容量がかかる)",
- "Keep metadata for each version once the document is edited (it will take up disk space)": "ドキュメントが編集されたら、各バージョンのメタデータを保持する(ディスクス容量がかかる)",
+ "Use ONLYOFFICE to generate a document preview (it will take up disk space)": "ONLYOFFICEを使用してドキュメントのサムネールを生成する(ディスク容量を消費します)",
+ "Keep metadata for each version once the document is edited (it will take up disk space)": "編集されたドキュメントの各バージョンのメタデータを保持する(ディスク容量を消費します)",
+ "Clear": "消去",
"All history successfully deleted": "すべての履歴が正常に削除されました",
"Create": "作成",
"Select template" : "テンプレートを選択する",
- "Invalid file provided" : "無効なファイルが提供されました",
+ "Invalid file provided": "提供されたファイルは無効です",
"Empty": "空",
"Error" : "エラー",
"Add a new template": "新しいテンプレートを追加する:",
@@ -100,7 +100,7 @@ OC.L10N.register(
"Template successfully added": "テンプレートが正常に追加されました",
"Template successfully deleted": "テンプレートが正常に削除されました",
"Common templates": "よく使われるテンプレート",
- "Failed to delete template": "テンプレートの削除に失敗しました",
+ "Failed to delete template": "テンプレートを削除できませんでした",
"File has been converted. Its content might look different.": "ファイルが変換されました。 その内容は異なって見えるかもしれません。",
"Download as": "別の形式でダウンロード",
"Download": "ダウンロード",
@@ -116,6 +116,20 @@ OC.L10N.register(
"Create new Form template": "新しいフォームテンプレートの作成",
"Create form": "フォームの作成",
"Fill in form in ONLYOFFICE": "ONLYOFFICEでフォームを記入する",
- "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "オンラインで入力可能なフォームを作成するには、ONLYOFFICE Docs 7.0版まで更新してください"
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "オンラインで入力可能なフォームを作成するには、ONLYOFFICE Docs 7.0版まで更新してください",
+ "Security": "セキュリティ",
+ "Run document macros": "ドキュメントマクロを実行する",
+ "Anonymous": "匿名",
+ "Default editor theme": "エディターのデフォルトテーマ",
+ "Light": "明るい",
+ "Classic Light": "ライト(クラシック)",
+ "Dark": "ダーク",
+ "Review": "レビュー",
+ "Comment": "コメント",
+ "Form filling": "フォーム入力",
+ "Custom filter": "ユーザー設定フィルター",
+ "group": "グループ",
+ "Advanced": "詳細",
+ "Provide advanced document permissions using ONLYOFFICE Docs": "ONLYOFFICE Docsを利用した高度なドキュメント権限の提供"
},
"nplurals=1; plural=0;");
diff --git a/l10n/ja.json b/l10n/ja.json
index ee74a3d..4fda068 100644
--- a/l10n/ja.json
+++ b/l10n/ja.json
@@ -1,25 +1,25 @@
{ "translations": {
- "Access denied" : "アクセス拒否されました",
+ "Access denied" : "アクセスが拒否されました",
"Invalid request" : "リクエストが不正です",
"Files not found" : "ファイルが見つかりません",
"File not found" : "ファイルが見つかりません",
"Not permitted" : "権限がありません",
"Download failed" : "ダウンロードできませんでした",
"The required folder was not found" : "開こうとしたフォルダーがありません",
- "You don't have enough permission to create" : "充分な作成権限がありません",
+ "You don't have enough permission to create" : "作成権限がありません",
"Template not found" : "テンプレートが見つかりません",
"Can't create file" : "ファイルを作成できません",
"Format is not supported" : "このフォーマットはサポートされていません",
"Conversion is not required" : "変換する必要はありません",
- "Failed to download converted file" : "コンバート済みファイルをダウンロードできませんでした",
+ "Failed to download converted file" : "変換されたファイルをダウンロードできませんでした",
"ONLYOFFICE app is not configured. Please contact admin" : "ONLYOFFICEアプリが設定されていません。管理者に相談してください",
"FileId is empty" : "ファイルIDが空です",
- "You do not have enough permissions to view the file" : "ファイルを閲覧する権限が足りません",
+ "You do not have enough permissions to view the file" : "ファイルを閲覧する権限がありません",
"Error occurred in the document service" : "ドキュメントサービスでエラーが発生しました",
- "Not supported version" : "未サポートバージョン",
+ "Not supported version" : "サポートされていなバージョン",
"ONLYOFFICE cannot be reached. Please contact admin" : "ONLYOFFICEに接続できません。管理者に相談してください",
"Loading, please wait." : "読み込み中です...。しばらくお待ちください。",
- "File created" : "ファイル作成されました",
+ "File created" : "ファイルが作成されました",
"Open in ONLYOFFICE" : "ONLYOFFICEで開く",
"Convert with ONLYOFFICE" : "ONLYOFFICEで変換",
"New document" : "新しいドキュメント",
@@ -30,11 +30,11 @@
"Server can't read xml" : "サーバーでxmlを読み込ませんでした",
"Bad Response. Errors: " : "不正なレスポンス エラー: ",
"Documentation" : "ドキュメンテーション",
- "ONLYOFFICE Docs Location specifies the address of the server with the document services installed. Please change the '<documentserver>' for the server address in the below line." : "ONLYOFFICE Docs の位置は、ドキュメントサービスがインストールされているサーバーのアドレスを指定します。以下の行の'<documentserver>'をサーバーアドレスに変更してください。",
+ "ONLYOFFICE Docs Location specifies the address of the server with the document services installed. Please change the '<documentserver>' for the server address in the below line." : "ONLYOFFICE Docsアドレスにはドキュメントサービスがインストールされているサーバーのアドレスを指定します。以下の行の'<documentserver>'をサーバーアドレスに変更してください。",
"ONLYOFFICE Docs address" : "ONLYOFFICE Docs アドレス",
- "Advanced server settings" : "詳細サーバー設定",
- "ONLYOFFICE Docs address for internal requests from the server" : "サーバーからの内部リクエストにはONLYOFFICE Docs アドレス",
- "Server address for internal requests from ONLYOFFICE Docs" : "ONLYOFFICE Docsからの内部リクエストにはサーバーアドレス",
+ "Advanced server settings" : "サーバー詳細設定",
+ "ONLYOFFICE Docs address for internal requests from the server" : "サーバーから内部リクエストに利用されるONLYOFFICE Docs アドレス",
+ "Server address for internal requests from ONLYOFFICE Docs" : "ONLYOFFICE Docsから内部リクエストに利用されるサーバーアドレス",
"Secret key (leave blank to disable)" : "シークレットキー (ブランクで無効)",
"Open file in the same tab" : "ファイルを同じタブで開く",
"The default application for opening the format": "以下のファイルフォーマットをデフォルトで開く",
@@ -42,16 +42,16 @@
"View details" : "詳細表示",
"Save" : "保存",
"Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "アクティブコンテンツの混在は許可されていません。ONLYOFFICE DocsにはHTTPSアドレスが必要です",
- "Restrict access to editors to following groups" : "アクセス編集できる人を以下のグループに制限する",
+ "Restrict access to editors to following groups" : "エディターの利用を以下のグループに制限する",
"Server settings" : "サーバー設定",
"Common settings" : "共通設定",
"Editor customization settings" : "エディターカスタム設定",
- "The customization section allows personalizing the editor interface": "カスタマイズセクションでは、エディターインターフェイスをパーソナライズできます",
- "Display Chat menu button" : "チャットメニューホタンを表示",
- "Display the header more compact" : "ヘッダーをよりコンパクトに表示",
- "Display Feedback & Support menu button" : "フィードバックとサポートメニューホタンを表示",
- "Display Help menu button" : "ヘルプメニューホタンを表示",
- "Display monochrome toolbar header" : "モノクローム・ツールバーヘッダーを表示する",
+ "The customization section allows personalizing the editor interface": "エディターインターフェイスのカスタマイズ",
+ "Display Chat menu button" : "チャットメニューボタンを表示する",
+ "Display the header more compact" : "ヘッダーをよりコンパクトに表示する",
+ "Display Feedback & Support menu button" : "フィードバックとサポートメニューボタンを表示する",
+ "Display Help menu button" : "ヘルプメニューボタンを表示する",
+ "Display monochrome toolbar header" : "ツールバーヘッダーをモノクロで表示する",
"Save as" : "別名で保存",
"File saved" : "ファイルが保存されました",
"Insert image" : "画像を挿入",
@@ -60,7 +60,6 @@
"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period.": "これはパブリックテストサーバーです。プライベートな機密データには使用しないでください。サーバーを30日間、利用できます。",
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server." : "30日間のテスト期間が終了したら、ONLYOFFICE Docs デモサーバーには繋がらなくなります。",
"You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data." : "パブリック ONLYOFFICE Docs サーバーを使っているので、プライベートな機密データを利用しないようにしてください。",
- "Secure view settings" : "セキュアビュー設定",
"Secure view enables you to secure documents by embedding a watermark" : "セキュアビューでドキュメント透かしを埋め込んでドキュメントを保護します",
"Enable watermarking" : "透かしを有効",
"Watermark text" : "透かしテキスト",
@@ -77,19 +76,20 @@
"Show watermark on link shares with specific system tags" : "特定のシステムタグが付いていてリンク共有されたものに透かしを入れる",
"Select tag" : "タグを選択",
"Select file to compare" : "比較するファイルを選択",
- "Review mode for viewing": "表示するためのレビューモード",
+ "Review mode for viewing": "レビューモード時の表示方式",
"Markup": "マークアップ",
"Final": "最終版",
"Original": "オリジナル",
"version": "バージョン",
- "Disable certificate verification (insecure)": "証明書の検証を無効にする(安全でない",
+ "Disable certificate verification (insecure)": "証明書の検証を無効にする(安全ではありません)",
"Keep intermediate versions when editing (forcesave)": "編集時に、中間バージョンを保持する (強制保存)",
- "Use ONLYOFFICE to generate a document preview (it will take up disk space)": "ONLYOFFICEを使用して、ドキュメントプレビューを生成する(ディスク容量がかかる)",
- "Keep metadata for each version once the document is edited (it will take up disk space)": "ドキュメントが編集されたら、各バージョンのメタデータを保持する(ディスクス容量がかかる)",
+ "Use ONLYOFFICE to generate a document preview (it will take up disk space)": "ONLYOFFICEを使用してドキュメントのサムネールを生成する(ディスク容量を消費します)",
+ "Keep metadata for each version once the document is edited (it will take up disk space)": "編集されたドキュメントの各バージョンのメタデータを保持する(ディスク容量を消費します)",
+ "Clear": "消去",
"All history successfully deleted": "すべての履歴が正常に削除されました",
"Create": "作成",
"Select template" : "テンプレートを選択する",
- "Invalid file provided" : "無効なファイルが提供されました",
+ "Invalid file provided" : "提供されたファイルは無効です",
"Empty": "空",
"Error" : "エラー",
"Add a new template": "新しいテンプレートを追加する:",
@@ -98,7 +98,7 @@
"Template successfully added": "テンプレートが正常に追加されました",
"Template successfully deleted": "テンプレートが正常に削除されました",
"Common templates": "よく使われるテンプレート",
- "Failed to delete template": "テンプレートの削除に失敗しました",
+ "Failed to delete template": "テンプレートを削除できませんでした",
"File has been converted. Its content might look different.": "ファイルが変換されました。 その内容は異なって見えるかもしれません。",
"Download as": "別の形式でダウンロード",
"Download": "ダウンロード",
@@ -114,6 +114,20 @@
"Create new Form template": "新しいフォームテンプレートの作成",
"Create form": "フォームの作成",
"Fill in form in ONLYOFFICE": "ONLYOFFICEでフォームを記入する",
- "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "オンラインで入力可能なフォームを作成するには、ONLYOFFICE Docs 7.0版まで更新してください"
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "オンラインで入力可能なフォームを作成するには、ONLYOFFICE Docs 7.0版まで更新してください",
+ "Security": "セキュリティ",
+ "Run document macros": "ドキュメントマクロを実行する",
+ "Anonymous": "匿名",
+ "Default editor theme": "エディターのデフォルトテーマ",
+ "Light": "明るい",
+ "Classic Light": "ライト(クラシック)",
+ "Dark": "ダーク",
+ "Review": "レビュー",
+ "Comment": "コメント",
+ "Form filling": "フォーム入力",
+ "Custom filter": "ユーザー設定フィルター",
+ "group": "グループ",
+ "Advanced": "詳細",
+ "Provide advanced document permissions using ONLYOFFICE Docs": "ONLYOFFICE Docsを利用した高度なドキュメント権限の提供"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/l10n/nl.js b/l10n/nl.js
new file mode 100644
index 0000000..05633ae
--- /dev/null
+++ b/l10n/nl.js
@@ -0,0 +1,134 @@
+OC.L10N.register(
+ "onlyoffice",
+ {
+ "Access denied" : "Toegang geweigerd",
+ "Invalid request": "Ongeldig verzoek",
+ "Files not found": "Bestanden niet gevonden",
+ "File not found": "Bestand niet gevonden",
+ "Not permitted": "Niet toegestaan",
+ "Download failed": "Download mislukt",
+ "The required folder was not found": "De vereiste map is niet gevonden",
+ "You don't have enough permission to create": "U heeft geen voldoende aanmaak rechten",
+ "Template not found": "Sjabloon niet gevonden",
+ "Can't create file": "Kan bestand niet aanmaken",
+ "Format is not supported": "Bestandsindeling wordt niet ondersteund",
+ "Conversion is not required": "Converteren is niet vereist",
+ "Failed to download converted file": "Kan geconverteerd bestand niet downloaden",
+ "ONLYOFFICE app is not configured. Please contact admin": "ONLYOFFICE app is niet geconfigureerd. Neem contact op met de admin",
+ "FileId is empty": "FileId is leeg",
+ "You do not have enough permissions to view the file": "U heeft niet genoeg rechten om het bestand te bekijken",
+ "Error occurred in the document service": "Er is een fout opgetreden in de documentservice",
+ "Not supported version": "Niet ondersteunde versie",
+ "ONLYOFFICE cannot be reached. Please contact admin": "ONLYOFFICE kan niet worden bereikt. Neem contact op met de admin",
+ "Loading, please wait.": "Laden, wacht alstublieft.",
+ "File created": "Bestand Aangemaakt",
+ "Open in ONLYOFFICE": "Openen in ONLYOFFICE",
+ "Convert with ONLYOFFICE": "Converteer met ONLYOFFICE",
+ "New document": "Nieuw Document",
+ "New spreadsheet": "Nieuwe spreadsheet",
+ "New presentation": "Nieuwe presentatien",
+ "Error when trying to connect": "Fout bij het verbinden",
+ "Settings have been successfully updated": "Instellingen zijn met succes bijgewerkt",
+ "Server can't read xml": "Server kan xml niet lezen",
+ "Bad Response. Errors: ": "Slechte Reactie. Fouten",
+ "Documentation": "Documentatie",
+ "ONLYOFFICE Docs Location specifies the address of the server with the document services installed. Please change the '<documentserver>' for the server address in the below line.": "ONLYOFFICE Docs Location geeft het adres op van de server waarop de documentdiensten geïnstalleerd zijn. Verander de '<documenterver>' voor het serveradres in de onderstaande regel.",
+ "ONLYOFFICE Docs address": "ONLYOFFICE Docs adres",
+ "Advanced server settings": "Geavanceerde serverinstellingen",
+ "ONLYOFFICE Docs address for internal requests from the server": "Adres van de ONLYOFFICE Docs voor interne verzoeken van de server",
+ "Server address for internal requests from ONLYOFFICE Docs": "Serveradres voor interne verzoeken van de ONLYOFFICE Docs",
+ "Secret key (leave blank to disable)": "Geheime sleutel (leeg laten om niet te te gebruiken)",
+ "Open file in the same tab": "Bestand in dezelfde tabblad openen",
+ "The default application for opening the format": "De standaardtoepassing voor het openen van het formaat",
+ "Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)": "Open het bestand om het te bewerken (wegens formaatbeperkingen kunnen de gegevens verloren gaan bij het opslaan in de formaten van de onderstaande lijst)",
+ "View details": "Bekijk details",
+ "Save": "Opslaan",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required.": "Gemende Actieve Inhoud is niet toegestaan. HTTPS-adres voor ONLYOFFICE Docs is vereist.",
+ "Restrict access to editors to following groups": "Beperk de toegang tot editors tot de volgende groepen",
+ "Server settings": "Serverinstellingen",
+ "Common settings": "Algemene instellingen",
+ "Editor customization settings": "Editor aanpassingsinstellingen",
+ "The customization section allows personalizing the editor interface": "Met de aanpassingssectie kunt u de interface van de editor personaliseren",
+ "Display Chat menu button": "Chat Menuknop weergeven",
+ "Display the header more compact": "De koptekst compacter weergeven",
+ "Display Feedback & Support menu button": "Menuknop Terugkoppeling & Ondersteuning weergeven",
+ "Display Help menu button": "Menuknop Help weergeven",
+ "Display monochrome toolbar header": "Toon de monochrome koptekst van de werkbalk",
+ "Save as": "Opslaan als",
+ "File saved": "Bestand opgeslagen",
+ "Insert image": "Afbeelding invoegen",
+ "Select recipients": "Kies ontvangers",
+ "Connect to demo ONLYOFFICE Docs server": "Verbinden met de demo ONLYOFFICE Docs server",
+ "This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period.": "Dit is een openbare testserver, gelieve deze niet te gebruiken voor persoonlijke en vertrouwelijke gegevens. De server zal gedurende een periode van 30 dagen beschikbaar zijn.",
+ "The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server.": "De 30-dagen proefperiode is voorbij, u kunt niet langer verbinding maken met demo ONLYOFFICE Docs server.",
+ "You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data.": "U gebruikt de openbare demo ONLYOFFICE Docs server. Sla geen vertrouwelijke gegevens op.",
+ "Secure view enables you to secure documents by embedding a watermark": "Met de beveiligde weergave kunt u documenten beveiligen door een watermerk in te sluiten",
+ "Enable watermarking": "Watermerken inschakelen",
+ "Watermark text": "Tekst watermerken",
+ "DO NOT SHARE THIS": "NIET DELEN",
+ "Show watermark on tagged files": "Toon watermerk op getagde bestanden",
+ "Show watermark for users of groups": "Toon watermerk voor gebruikers van groepen",
+ "Supported placeholders": "Ondersteunde plaatsaanduidingen",
+ "Show watermark for all shares": "Watermerk voor al het delen",
+ "Show watermark for read only shares": "Watermerk voor alleen-lezen delen",
+ "Link shares": "Link delen",
+ "Show watermark for all link shares": "Toon watermerk voor alle link delen",
+ "Show watermark for download hidden shares": "Watermerk voor verborgen download delen",
+ "Show watermark for read only link shares": "Watermerk op alleen-lezen link aandelen",
+ "Show watermark on link shares with specific system tags": "Watermerk tonen op link aandelen met specifieke systeemtags",
+ "Select tag": "Tag kiezen",
+ "Select file to compare": "Kies het bestand dat u wilt vergelijken",
+ "Review mode for viewing": "Beoordelingsmodus voor bekijken",
+ "Markup": "Markup",
+ "Final": "Einde",
+ "Original": "Origineel",
+ "version": "versie",
+ "Disable certificate verification (insecure)": "Verificatie van certificaten uitschakelen (onveilig)",
+ "Keep intermediate versions when editing (forcesave)": "Bewaar tussentijdse versies bij bewerken (forcesave)",
+ "Use ONLYOFFICE to generate a document preview (it will take up disk space)": "Gebruik ONLYOFFICE om een voorbeeld van een document te genereren (dit neemt schijfruimte in beslag)",
+ "Keep metadata for each version once the document is edited (it will take up disk space)": "Bewaar metadata voor elke versie zodra het document bewerkt is (dit neemt schijfruimte in beslag)",
+ "Clear": "Wissen",
+ "All history successfully deleted": "Alle geschiedenis met succes gewist",
+ "Create": "Maak",
+ "Select template": "Kies een sjabloon",
+ "Invalid file provided": "Ongeldig bestand opgegeven",
+ "Empty": "Leeg",
+ "Error": "Fout",
+ "Add a new template": "Voeg een nieuw sjabloon toe",
+ "Template already exists": "Sjabloon bestaat al",
+ "Template must be in OOXML format": "Sjabloon moet in OOXML formaat zijn",
+ "Template successfully added": "Sjabloon met succes toegevoegd",
+ "Template successfully deleted": "Sjabloon met succes verwijderd",
+ "Common templates": "Algemene Sjablonen",
+ "Failed to delete template": "Sjabloon verwijderen mislukt",
+ "File has been converted. Its content might look different.": "Het bestand is geconverteerd. De inhoud kan er anders uitzien.",
+ "Download as": "Downloaden als",
+ "Download": "Downloaden",
+ "Origin format": "Oorsprong formaat",
+ "Failed to send notification": "Kennisgeving niet verzonden",
+ "Notification sent successfully": "Kennisgeving succesvol verzonden",
+ "%1\$s mentioned in the %2\$s: \"%3\$s\".": "%1\$s genoemd in de %2\$s: \"%3\$s\".",
+ "{notifier} mentioned in the {file}: \"%1\$s\".": "{notifier} genoemd in {file}: \"%1\$s\".",
+ "Choose a format to convert {fileName}": "Kies een formaat om {fileName} te converteren",
+ "New form template": "Nieuw formulier sjabloon",
+ "Blank": "Blanco",
+ "From text document": "Van tekstdocument",
+ "Create new Form template": "Nieuw Formulier sjabloon maken",
+ "Create form": "Formulier maken",
+ "Fill in form in ONLYOFFICE": "Formulier invullen in ONLYOFFICE",
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Update ONLYOFFICE Docs naar versie 7.0 om online invulbare formulieren te kunnen gebruiken",
+ "Security": "Beveiliging",
+ "Anonymous": "Anoniem",
+ "Default editor theme": "Standaard editor thema",
+ "Light": "Licht",
+ "Classic Light": "Klassiek Licht",
+ "Dark": "Donker",
+ "Review": "Overzicht",
+ "Comment": "Opmerking",
+ "Form filling": "Formulier invullen",
+ "Custom filter": "Aangepast filter",
+ "group": "groep",
+ "Advanced": "Geavanceerd",
+ "Provide advanced document permissions using ONLYOFFICE Docs": "Geavanceerde documentrechten geven met ONLYOFFICE Docs"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/l10n/nl.json b/l10n/nl.json
new file mode 100644
index 0000000..a5db918
--- /dev/null
+++ b/l10n/nl.json
@@ -0,0 +1,132 @@
+{ "translations": {
+ "Access denied" : "Toegang geweigerd",
+ "Invalid request" : "Ongeldig verzoek",
+ "Files not found" : "Bestanden niet gevonden",
+ "File not found" : "Bestand niet gevonden",
+ "Not permitted" : "Niet toegestaan",
+ "Download failed" : "Download mislukt",
+ "The required folder was not found" : "De vereiste map is niet gevonden",
+ "You don't have enough permission to create" : "U heeft geen voldoende aanmaak rechten",
+ "Template not found" : "Sjabloon niet gevonden",
+ "Can't create file" : "Kan bestand niet aanmaken",
+ "Format is not supported" : "Bestandsindeling wordt niet ondersteund",
+ "Conversion is not required" : "Converteren is niet vereist",
+ "Failed to download converted file" : "Kan geconverteerd bestand niet downloaden",
+ "ONLYOFFICE app is not configured. Please contact admin" : "ONLYOFFICE app is niet geconfigureerd. Neem contact op met de admin",
+ "FileId is empty" : "FileId is leeg",
+ "You do not have enough permissions to view the file" : "U heeft niet genoeg rechten om het bestand te bekijken",
+ "Error occurred in the document service" : "Er is een fout opgetreden in de documentservice",
+ "Not supported version" : "Niet ondersteunde versie",
+ "ONLYOFFICE cannot be reached. Please contact admin" : "ONLYOFFICE kan niet worden bereikt. Neem contact op met de admin",
+ "Loading, please wait." : "Laden, wacht alstublieft.",
+ "File created" : "Bestand Aangemaakt",
+ "Open in ONLYOFFICE" : "Openen in ONLYOFFICE",
+ "Convert with ONLYOFFICE" : "Converteer met ONLYOFFICE",
+ "New document" : "Nieuw Document",
+ "New spreadsheet" : "Nieuwe spreadsheet",
+ "New presentation" : "Nieuwe presentatie",
+ "Error when trying to connect" : "Fout bij het verbinden",
+ "Settings have been successfully updated" : "Instellingen zijn met succes bijgewerkt",
+ "Server can't read xml" : "Server kan xml niet lezen",
+ "Bad Response. Errors: " : "Slechte Reactie. Fouten",
+ "Documentation" : "Documentatie",
+ "ONLYOFFICE Docs Location specifies the address of the server with the document services installed. Please change the '<documentserver>' for the server address in the below line." : "ONLYOFFICE Docs Location geeft het adres op van de server waarop de documentdiensten geïnstalleerd zijn. Verander de '<documenterver>' voor het serveradres in de onderstaande regel.",
+ "ONLYOFFICE Docs address" : "ONLYOFFICE Docs adres",
+ "Advanced server settings" : "Geavanceerde serverinstellingen",
+ "ONLYOFFICE Docs address for internal requests from the server" : "Adres van de ONLYOFFICE Docs voor interne verzoeken van de server",
+ "Server address for internal requests from ONLYOFFICE Docs" : "Serveradres voor interne verzoeken van de ONLYOFFICE Docs",
+ "Secret key (leave blank to disable)" : "Geheime sleutel (leeg laten om niet te te gebruiken)",
+ "Open file in the same tab" : "Bestand in dezelfde tabblad openen",
+ "The default application for opening the format" : "De standaardtoepassing voor het openen van het formaat",
+ "Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "Open het bestand om het te bewerken (wegens formaatbeperkingen kunnen de gegevens verloren gaan bij het opslaan in de formaten van de onderstaande lijst)",
+ "View details" : "Bekijk details",
+ "Save" : "Opslaan",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "Gemende Actieve Inhoud is niet toegestaan. HTTPS-adres voor ONLYOFFICE Docs is vereist.",
+ "Restrict access to editors to following groups" : "Beperk de toegang tot editors tot de volgende groepen",
+ "Server settings" : "Serverinstellingen",
+ "Common settings" : "Algemene instellingen",
+ "Editor customization settings" : "Editor aanpassingsinstellingen",
+ "The customization section allows personalizing the editor interface" : "Met de aanpassingssectie kunt u de interface van de editor personaliseren",
+ "Display Chat menu button" : "Chat Menuknop weergeven",
+ "Display the header more compact" : "De koptekst compacter weergeven",
+ "Display Feedback & Support menu button" : "Menuknop Terugkoppeling & Ondersteuning weergeven",
+ "Display Help menu button" : "Menuknop Help weergeven",
+ "Display monochrome toolbar header" : "Toon de monochrome koptekst van de werkbalk",
+ "Save as" : "Opslaan als",
+ "File saved" : "Bestand opgeslagen",
+ "Insert image" : "Afbeelding invoegen",
+ "Select recipients" : "Kies ontvangers",
+ "Connect to demo ONLYOFFICE Docs server" : "Verbinden met de demo ONLYOFFICE Docs server",
+ "This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period." : "Dit is een openbare testserver, gelieve deze niet te gebruiken voor persoonlijke en vertrouwelijke gegevens. De server zal gedurende een periode van 30 dagen beschikbaar zijn.",
+ "The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server." : "De 30-dagen proefperiode is voorbij, u kunt niet langer verbinding maken met demo ONLYOFFICE Docs server.",
+ "You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data." : "U gebruikt de openbare demo ONLYOFFICE Docs server. Sla geen vertrouwelijke gegevens op.",
+ "Secure view enables you to secure documents by embedding a watermark" : "Met de beveiligde weergave kunt u documenten beveiligen door een watermerk in te sluiten",
+ "Enable watermarking" : "Watermerken inschakelen",
+ "Watermark text" : "Tekst watermerken",
+ "DO NOT SHARE THIS" : "NIET DELEN",
+ "Show watermark on tagged files" : "Toon watermerk op getagde bestanden",
+ "Show watermark for users of groups" : "Toon watermerk voor gebruikers van groepen",
+ "Supported placeholders" : "Ondersteunde plaatsaanduidingen",
+ "Show watermark for all shares" : "Watermerk voor al het delen",
+ "Show watermark for read only shares" : "Watermerk voor alleen-lezen delen",
+ "Link shares" : "Link delen",
+ "Show watermark for all link shares" : "Toon watermerk voor alle link delen",
+ "Show watermark for download hidden shares" : "Watermerk voor verborgen download delen",
+ "Show watermark for read only link shares" : "Watermerk op alleen-lezen link aandelen",
+ "Show watermark on link shares with specific system tags" : "Watermerk tonen op link aandelen met specifieke systeemtags",
+ "Select tag" : "Tag kiezen",
+ "Select file to compare" : "Kies het bestand dat u wilt vergelijken",
+ "Review mode for viewing": "Beoordelingsmodus voor bekijken",
+ "Markup": "Markup",
+ "Final": "Einde",
+ "Original": "Origineel",
+ "version": "versie",
+ "Disable certificate verification (insecure)": "Verificatie van certificaten uitschakelen (onveilig)",
+ "Keep intermediate versions when editing (forcesave)": "Bewaar tussentijdse versies bij bewerken (forcesave)",
+ "Use ONLYOFFICE to generate a document preview (it will take up disk space)": "Gebruik ONLYOFFICE om een voorbeeld van een document te genereren (dit neemt schijfruimte in beslag)",
+ "Keep metadata for each version once the document is edited (it will take up disk space)": "Bewaar metadata voor elke versie zodra het document bewerkt is (dit neemt schijfruimte in beslag)",
+ "Clear": "Wissen",
+ "All history successfully deleted": "Alle geschiedenis met succes gewist",
+ "Create": "Maak",
+ "Select template" : "Kies een sjabloon",
+ "Invalid file provided" : "Ongeldig bestand opgegeven",
+ "Empty": "Leeg",
+ "Error" : "Fout",
+ "Add a new template": "Voeg een nieuw sjabloon toe",
+ "Template already exists": "Sjabloon bestaat al",
+ "Template must be in OOXML format": "Sjabloon moet in OOXML formaat zijn",
+ "Template successfully added": "Sjabloon met succes toegevoegd",
+ "Template successfully deleted": "Sjabloon met succes verwijderd",
+ "Common templates": "Algemene Sjablonen",
+ "Failed to delete template": "Sjabloon verwijderen mislukt",
+ "File has been converted. Its content might look different.": "Het bestand is geconverteerd. De inhoud kan er anders uitzien.",
+ "Download as": "Downloaden als",
+ "Download": "Downloaden",
+ "Origin format": "Oorsprong formaat",
+ "Failed to send notification": "Kennisgeving niet verzonden",
+ "Notification sent successfully": "Kennisgeving succesvol verzonden",
+ "%1$s mentioned in the %2$s: \"%3$s\".": "%1$s genoemd in de %2$s: \"%3$s\".",
+ "{notifier} mentioned in the {file}: \"%1$s\".": "{notifier} genoemd in {file}: \"%1$s\".",
+ "Choose a format to convert {fileName}": "Kies een formaat om {fileName} te converteren",
+ "New form template": "Nieuw formulier sjabloon",
+ "Blank": "Blanco",
+ "From text document": "Van tekstdocument",
+ "Create new Form template": "Nieuw Formulier sjabloon maken",
+ "Create form": "Formulier maken",
+ "Fill in form in ONLYOFFICE": "Formulier invullen in ONLYOFFICE",
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Update ONLYOFFICE Docs naar versie 7.0 om online invulbare formulieren te kunnen gebruiken",
+ "Security": "Beveiliging",
+ "Anonymous": "Anoniem",
+ "Default editor theme": "Standaard editor thema",
+ "Light": "Licht",
+ "Classic Light": "Klassiek Licht",
+ "Dark": "Donker",
+ "Review": "Overzicht",
+ "Comment": "Opmerking",
+ "Form filling": "Formulier invullen",
+ "Custom filter": "Aangepast filter",
+ "group": "groep",
+ "Advanced": "Geavanceerd",
+ "Provide advanced document permissions using ONLYOFFICE Docs": "Geavanceerde documentrechten geven met ONLYOFFICE Docs"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/l10n/pl.js b/l10n/pl.js
index d211310..aa6b97a 100644
--- a/l10n/pl.js
+++ b/l10n/pl.js
@@ -62,7 +62,6 @@ OC.L10N.register(
"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period." : "To jest publiczny testowy serwer, proszę nie używać go do prywatnych danych. Serwer będzie dostępny przez 30 dni.",
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server." : "Upłyneło 30 dni, nie możesz się już łączyć z serwerem demo.",
"You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data." : "Używasz publicznego serwera demo. Nie przechowuj tu prywatnych danych.",
- "Secure view settings" : "Ustawienia bezpiecznego widoku",
"Secure view enables you to secure documents by embedding a watermark" : "Bezpieczny widok pozwala na zabezpieczenie dokumentów poprzez dodanie znaku wodnego",
"Enable watermarking" : "Włącz znaki wodne",
"Watermark text" : "Tekst znaku wodnego",
@@ -88,6 +87,7 @@ OC.L10N.register(
"Keep intermediate versions when editing (forcesave)": "Zachowuj wersje pośrednie w trakcie edycji (zapisuj automatycznie)",
"Use ONLYOFFICE to generate a document preview (it will take up disk space)": "Skorzystaj z ONLYOFFICE, aby wygenerować podgląd dokumentu (zajmie to miejsce na dysku)",
"Keep metadata for each version once the document is edited (it will take up disk space)": "Zachowaj metadane dla każdej wersji, gdy dokument jest edytowany (zajmie to miejsce na dysku)",
+ "Clear": "Wyczyść",
"All history successfully deleted": "Cała historia została pomyślnie usunięta",
"Create": "Utwórz",
"Select template" : "Wybierz szablon",
@@ -116,6 +116,19 @@ OC.L10N.register(
"Create new Form template": "Utwórz nowy szablon formularza",
"Create form": "Utwórz formularz",
"Fill in form in ONLYOFFICE": "Wypełnić formularz w ONLYOFFICE",
- "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Zaktualizuj ONLYOFFICE Docs do wersji 7.0, aby działały w formularzach do wypełniania online"
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Zaktualizuj ONLYOFFICE Docs do wersji 7.0, aby działały w formularzach do wypełniania online",
+ "Security": "Bezpieczeństwo",
+ "Anonymous": "Anonimowy",
+ "Default editor theme": "Domyślny motyw edytora",
+ "Light": "Jasny",
+ "Classic Light": "Klasyczny jasny",
+ "Dark": "Ciemny",
+ "Review": "Recenzja",
+ "Comment": "Komentarz",
+ "Form filling": "Wypełnianie formularza",
+ "Custom filter": "Niestandardowy filtr",
+ "group": "grupa",
+ "Advanced": "Zaawansowane",
+ "Provide advanced document permissions using ONLYOFFICE Docs": "Udziel zaawansowanych uprawnień do edycji dokumentów w ONLYOFFICE Docs"
},
"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"); \ No newline at end of file
diff --git a/l10n/pl.json b/l10n/pl.json
index bea2992..1bd7603 100644
--- a/l10n/pl.json
+++ b/l10n/pl.json
@@ -60,7 +60,6 @@
"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period." : "To jest publiczny testowy serwer, proszę nie używać go do prywatnych danych. Serwer będzie dostępny przez 30 dni.",
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server." : "Upłyneło 30 dni, nie możesz się już łączyć z serwerem demo.",
"You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data." : "Używasz publicznego serwera demo. Nie przechowuj tu prywatnych danych.",
- "Secure view settings" : "Ustawienia bezpiecznego widoku",
"Secure view enables you to secure documents by embedding a watermark" : "Bezpieczny widok pozwala na zabezpieczenie dokumentów poprzez dodanie znaku wodnego",
"Enable watermarking" : "Włącz znaki wodne",
"Watermark text" : "Tekst znaku wodnego",
@@ -86,6 +85,7 @@
"Keep intermediate versions when editing (forcesave)": "Zachowuj wersje pośrednie w trakcie edycji (zapisuj automatycznie)",
"Use ONLYOFFICE to generate a document preview (it will take up disk space)": "Skorzystaj z ONLYOFFICE, aby wygenerować podgląd dokumentu (zajmie to miejsce na dysku)",
"Keep metadata for each version once the document is edited (it will take up disk space)": "Zachowaj metadane dla każdej wersji, gdy dokument jest edytowany (zajmie to miejsce na dysku)",
+ "Clear": "Wyczyść",
"All history successfully deleted": "Cała historia została pomyślnie usunięta",
"Create": "Utwórz",
"Select template" : "Wybierz szablon",
@@ -114,6 +114,19 @@
"Create new Form template": "Utwórz nowy szablon formularza",
"Create form": "Utwórz formularz",
"Fill in form in ONLYOFFICE": "Wypełnić formularz w ONLYOFFICE",
- "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Zaktualizuj ONLYOFFICE Docs do wersji 7.0, aby działały w formularzach do wypełniania online"
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Zaktualizuj ONLYOFFICE Docs do wersji 7.0, aby działały w formularzach do wypełniania online",
+ "Security": "Bezpieczeństwo",
+ "Anonymous": "Anonimowy",
+ "Default editor theme": "Domyślny motyw edytora",
+ "Light": "Jasny",
+ "Classic Light": "Klasyczny jasny",
+ "Dark": "Ciemny",
+ "Review": "Recenzja",
+ "Comment": "Komentarz",
+ "Form filling": "Wypełnianie formularza",
+ "Custom filter": "Niestandardowy filtr",
+ "group": "grupa",
+ "Advanced": "Zaawansowane",
+ "Provide advanced document permissions using ONLYOFFICE Docs": "Udziel zaawansowanych uprawnień do edycji dokumentów w ONLYOFFICE Docs"
},"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"
} \ No newline at end of file
diff --git a/l10n/pt_BR.js b/l10n/pt_BR.js
index 825ef86..aef07f8 100644
--- a/l10n/pt_BR.js
+++ b/l10n/pt_BR.js
@@ -62,7 +62,6 @@ OC.L10N.register(
"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period." : "Este é um servidor de teste público, não o use para dados confidenciais. O servidor estará disponível por um período de 30 dias.",
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server." : "O período de teste de 30 dias acabou, você não pode mais se conectar ao Servidor de demonstração do ONLYOFFICE Docs",
"You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data." : "Você está usando o Servidor de demonstração pública. Não armazene dados confidenciais.",
- "Secure view settings" : "Configurações de visualização segura",
"Secure view enables you to secure documents by embedding a watermark" : "A visualização segura permite proteger documentos incorporando uma marca d'água",
"Enable watermarking" : "Ativar marca d'água",
"Watermark text" : "Texto de marca d'água",
@@ -87,7 +86,8 @@ OC.L10N.register(
"Disable certificate verification (insecure)": "Desativar a verificação do certificado (inseguro)",
"Keep intermediate versions when editing (forcesave)": "Manter versões intermediárias ao editar (forçar salvar)",
"Use ONLYOFFICE to generate a document preview (it will take up disk space)": "Usar ONLYOFFICE para gerar uma visualização do documento (ocupará espaço em disco)",
- "Keep metadata for each version once the document is edited (it will take up disk space)": "Manter os metadados para cada versão após a edição (ocupará espaço em disco) (ocupará espaço em disco)",
+ "Keep metadata for each version once the document is edited (it will take up disk space)": "Manter os metadados para cada versão após a edição (ocupará espaço em disco) (ocupará espaço em disco)",
+ "Clear": "Limpar",
"All history successfully deleted": "O histórico foi excluído com sucesso",
"Create": "Criar",
"Select template" : "Selecionar um modelo",
@@ -102,8 +102,8 @@ OC.L10N.register(
"Common templates": "Modelos comuns",
"Failed to delete template": "Falha ao excluir modelo",
"File has been converted. Its content might look different.": "O arquivo foi convertido. Seu conteúdo pode ser diferente.",
- "Download as": "Baixar",
- "Download": "Baixar como",
+ "Download as": "Baixar como",
+ "Download": "Baixar",
"Origin format": "Formato de origem",
"Failed to send notification": "Falha ao enviar notificação",
"Notification sent successfully": "Notificação enviada com sucesso",
@@ -116,6 +116,19 @@ OC.L10N.register(
"Create new Form template": "Criar novo modelo de formulário",
"Create form": "Criar formulário",
"Fill in form in ONLYOFFICE": "Preencher formulário no ONLYOFFICE",
- "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Atualize o ONLYOFFICE Docs para a versão 7.0 para trabalhar em formulários preenchíveis online"
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Atualize o ONLYOFFICE Docs para a versão 7.0 para trabalhar em formulários preenchíveis online",
+ "Security": "Segurança",
+ "Anonymous": "Anônimo",
+ "Default editor theme": "Tema do editor padrão",
+ "Light": "Claro",
+ "Classic Light": "Clássico claro",
+ "Dark": "Escuro",
+ "Review": "Revisar",
+ "Comment": "Comente",
+ "Form filling": "Preenchimento de formularios",
+ "Custom filter": "Filtro personalizado",
+ "group": "grupo",
+ "Advanced": "Avançado",
+ "Provide advanced document permissions using ONLYOFFICE Docs": "Forneça permissões avançadas de documentos usando o ONLYOFFICE Docs"
},
"nplurals=2; plural=(n > 1);");
diff --git a/l10n/pt_BR.json b/l10n/pt_BR.json
index 11c99b4..a174bbe 100644
--- a/l10n/pt_BR.json
+++ b/l10n/pt_BR.json
@@ -60,7 +60,6 @@
"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period." : "Este é um servidor de teste público, não o use para dados confidenciais. O servidor estará disponível por um período de 30 dias.",
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server." : "O período de teste de 30 dias acabou, você não pode mais se conectar ao Servidor de demonstração do ONLYOFFICE Docs",
"You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data." : "Você está usando o Servidor de demonstração pública. Não armazene dados confidenciais.",
- "Secure view settings" : "Configurações de visualização segura",
"Secure view enables you to secure documents by embedding a watermark" : "A visualização segura permite proteger documentos incorporando uma marca d'água",
"Enable watermarking" : "Ativar marca d'água",
"Watermark text" : "Texto de marca d'água",
@@ -85,7 +84,8 @@
"Disable certificate verification (insecure)": "Desativar a verificação do certificado (inseguro)",
"Keep intermediate versions when editing (forcesave)": "Manter versões intermediárias ao editar (forçar salvar)",
"Use ONLYOFFICE to generate a document preview (it will take up disk space)": "Usar ONLYOFFICE para gerar uma visualização do documento (ocupará espaço em disco)",
- "Keep metadata for each version once the document is edited (it will take up disk space)": "Manter os metadados para cada versão após a edição (ocupará espaço em disco) (ocupará espaço em disco)",
+ "Keep metadata for each version once the document is edited (it will take up disk space)": "Manter os metadados para cada versão após a edição (ocupará espaço em disco) (ocupará espaço em disco)",
+ "Clear": "Limpar",
"All history successfully deleted": "O histórico foi excluído com sucesso",
"Create": "Criar",
"Select template" : "Selecionar um modelo",
@@ -100,8 +100,8 @@
"Common templates": "Modelos comuns",
"Failed to delete template": "Falha ao excluir modelo",
"File has been converted. Its content might look different.": "O arquivo foi convertido. Seu conteúdo pode ser diferente.",
- "Download as": "Baixar",
- "Download": "Baixar como",
+ "Download as": "Baixar como",
+ "Download": "Baixar",
"Origin format": "Formato de origem",
"Failed to send notification": "Falha ao enviar notificação",
"Notification sent successfully": "Notificação enviada com sucesso",
@@ -114,6 +114,19 @@
"Create new Form template": "Criar novo modelo de formulário",
"Create form": "Criar formulário",
"Fill in form in ONLYOFFICE": "Preencher formulário no ONLYOFFICE",
- "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Atualize o ONLYOFFICE Docs para a versão 7.0 para trabalhar em formulários preenchíveis online"
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Atualize o ONLYOFFICE Docs para a versão 7.0 para trabalhar em formulários preenchíveis online",
+ "Security": "Segurança",
+ "Anonymous": "Anônimo",
+ "Default editor theme": "Tema do editor padrão",
+ "Light": "Claro",
+ "Classic Light": "Clássico claro",
+ "Dark": "Escuro",
+ "Review": "Revisar",
+ "Comment": "Comente",
+ "Form filling": "Preenchimento de formularios",
+ "Custom filter": "Filtro personalizado",
+ "group": "grupo",
+ "Advanced": "Avançado",
+ "Provide advanced document permissions using ONLYOFFICE Docs": "Forneça permissões avançadas de documentos usando o ONLYOFFICE Docs"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
-}
+} \ No newline at end of file
diff --git a/l10n/ru.js b/l10n/ru.js
index 1e4c38d..cb6fa25 100644
--- a/l10n/ru.js
+++ b/l10n/ru.js
@@ -62,7 +62,6 @@ OC.L10N.register(
"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period." : "Это публичный тестовый сервер, пожалуйста, не используйте его для личных конфиденциальных данных. Сервер будет доступен в течение 30 дней.",
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server." : "30-дневный тестовый период закончен, вы больше не можете подключаться к демонстрационному серверу ONLYOFFICE Docs",
"You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data." : "Вы используете публичный демонстрационный сервер ONLYOFFICE Docs. Пожалуйста, не храните конфиденциальные данные.",
- "Secure view settings" : "Настройки безопасного просмотра",
"Secure view enables you to secure documents by embedding a watermark" : "Безопасный просмотр позволяет защищать ваши документы путем встраивания водяного знака",
"Enable watermarking" : "Включить водяной знак",
"Watermark text" : "Текст водяного знака",
@@ -88,6 +87,7 @@ OC.L10N.register(
"Keep intermediate versions when editing (forcesave)": "Хранить промежуточные версии при редактировании (принудительное сохранение)",
"Use ONLYOFFICE to generate a document preview (it will take up disk space)": "Использовать ONLYOFFICE для создания превью документа (займет место на диске)",
"Keep metadata for each version once the document is edited (it will take up disk space)": "Сохранять метаданные для каждой версии после редактирования (займет место на диске)",
+ "Clear": "Очистить",
"All history successfully deleted": "История успешно удалена",
"Create": "Создать",
"Select template" : "Выбрать шаблон",
@@ -116,6 +116,20 @@ OC.L10N.register(
"Create new Form template": "Создать новый Шаблон формы",
"Create form": "Создать форму",
"Fill in form in ONLYOFFICE": "Заполнить форму в ONLYOFFICE",
- "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Обновите сервер ONLYOFFICE Docs до версии 7.0 для работы с формами онлайн"
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Обновите сервер ONLYOFFICE Docs до версии 7.0 для работы с формами онлайн",
+ "Security": "Безопасность",
+ "Run document macros": "Запускать макросы документа",
+ "Anonymous": "Аноним",
+ "Default editor theme": "Тема редактора по умолчанию",
+ "Light": "Светлая",
+ "Classic Light": "Светлая классическая",
+ "Dark": "Темная",
+ "Review": "Рецензирование",
+ "Comment": "Комментирование",
+ "Form filling": "Заполнение форм",
+ "Custom filter": "Пользовательский фильтр",
+ "group": "группа",
+ "Advanced": "Дополнительно",
+ "Provide advanced document permissions using ONLYOFFICE Docs": "Предоставление расширенных прав доступа к документам с помощью ONLYOFFICE Docs"
},
"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/l10n/ru.json b/l10n/ru.json
index 5c4c735..fe82be6 100644
--- a/l10n/ru.json
+++ b/l10n/ru.json
@@ -60,7 +60,6 @@
"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period." : "Это публичный тестовый сервер, пожалуйста, не используйте его для личных конфиденциальных данных. Сервер будет доступен в течение 30 дней.",
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server." : "30-дневный тестовый период закончен, вы больше не можете подключаться к демонстрационному серверу ONLYOFFICE Docs",
"You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data." : "Вы используете публичный демонстрационный сервер ONLYOFFICE Docs. Пожалуйста, не храните конфиденциальные данные.",
- "Secure view settings" : "Настройки безопасного просмотра",
"Secure view enables you to secure documents by embedding a watermark" : "Безопасный просмотр позволяет защищать ваши документы путем встраивания водяного знака",
"Enable watermarking" : "Включить водяной знак",
"Watermark text" : "Текст водяного знака",
@@ -86,6 +85,7 @@
"Keep intermediate versions when editing (forcesave)": "Хранить промежуточные версии при редактировании (принудительное сохранение)",
"Use ONLYOFFICE to generate a document preview (it will take up disk space)": "Использовать ONLYOFFICE для создания превью документа (займет место на диске)",
"Keep metadata for each version once the document is edited (it will take up disk space)": "Сохранять метаданные для каждой версии после редактирования (займет место на диске)",
+ "Clear": "Очистить",
"All history successfully deleted": "История успешно удалена",
"Create": "Создать",
"Select template" : "Выбрать шаблон",
@@ -114,6 +114,20 @@
"Create new Form template": "Создать новый Шаблон формы",
"Create form": "Создать форму",
"Fill in form in ONLYOFFICE": "Заполнить форму в ONLYOFFICE",
- "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Обновите сервер ONLYOFFICE Docs до версии 7.0 для работы с формами онлайн"
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Обновите сервер ONLYOFFICE Docs до версии 7.0 для работы с формами онлайн",
+ "Security": "Безопасность",
+ "Run document macros": "Запускать макросы документа",
+ "Anonymous": "Аноним",
+ "Default editor theme": "Тема редактора по умолчанию",
+ "Light": "Светлая",
+ "Classic Light": "Классическая светлая",
+ "Dark": "Темная",
+ "Review": "Рецензирование",
+ "Comment": "Комментирование",
+ "Form filling": "Заполнение форм",
+ "Custom filter": "Пользовательский фильтр",
+ "group": "группа",
+ "Advanced": "Дополнительно",
+ "Provide advanced document permissions using ONLYOFFICE Docs": "Предоставление расширенных прав доступа к документам с помощью ONLYOFFICE Docs"
},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/l10n/sv.js b/l10n/sv.js
index 50e04a0..dd05061 100644
--- a/l10n/sv.js
+++ b/l10n/sv.js
@@ -62,7 +62,6 @@ OC.L10N.register(
"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period." : "Detta är en offentlig testserver, använd den inte för privat känslig information. Servern kommer att finnas tillgänglig under en 30-dagarsperiod.",
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server." : "När 30-dagars testperioden är över, kan du inte längre ansluta till demo ONLYOFFICE Docsserver.",
"You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data." : "Du använder en offentlig demo ONLYOFFICE Docsserver. Lagra inte privat känslig information.",
- "Secure view settings" : "Säkra vyinställningar",
"Secure view enables you to secure documents by embedding a watermark" : "Med säker vy kan du säkra dokument genom att bädda in en vattenstämpel",
"Enable watermarking" : "Aktivera vattenstämpel",
"Watermark text" : "Text för vattenmärke",
@@ -87,7 +86,8 @@ OC.L10N.register(
"Disable certificate verification (insecure)": "Använd inte certifikatsverifiering (osäkert)",
"Keep intermediate versions when editing (forcesave)": "Behåll mellanliggande versioner vid redigering (tvinga att spara)",
"Use ONLYOFFICE to generate a document preview (it will take up disk space)": "Använd ONLYOFFICE för att generera en förhandsgranskning av dokument (detta använder diskutrymme)",
- "Keep metadata for each version once the document is edited (it will take up disk space)": "Behåll metadata för varje version när dokumentet redigeras (detta använder diskutrymme) ",
+ "Keep metadata for each version once the document is edited (it will take up disk space)": "Behåll metadata för varje version när dokumentet redigeras (detta använder diskutrymme)",
+ "Clear": "Rensa",
"All history successfully deleted": "All historik har tagits bort",
"Create": "Skapa",
"Select template" : "Välj mall",
@@ -116,6 +116,17 @@ OC.L10N.register(
"Create new Form template": "Skapa ny formulärmall",
"Create form": "Skapa formulär",
"Fill in form in ONLYOFFICE": "Fylla i formulär i ONLYOFFICE",
- "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Uppdatera ONLYOFFICE Docs till version 7.0 för att arbeta med ifyllbart onlineformulär"
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Uppdatera ONLYOFFICE Docs till version 7.0 för att arbeta med ifyllbart onlineformulär",
+ "Security": "Säkerhet",
+ "Anonymous": "Anonym",
+ "Light": "Ljus",
+ "Classic Light": "Klassiskt ljus",
+ "Dark": "Mörk",
+ "Review": "Granska",
+ "Comment": "Kommentar",
+ "Form filling": "Formulärfyllning",
+ "Custom filter": "Anpassat filter",
+ "group": "grupp",
+ "Advanced": "Avancerad"
},
"nplurals=2; plural=(n != 1);");
diff --git a/l10n/sv.json b/l10n/sv.json
index 494c28d..d7820cc 100644
--- a/l10n/sv.json
+++ b/l10n/sv.json
@@ -60,7 +60,6 @@
"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period." : "Detta är en offentlig testserver, använd den inte för privat känslig information. Servern kommer att finnas tillgänglig under en 30-dagarsperiod.",
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server." : "När 30-dagars testperioden är över, kan du inte längre ansluta till demo ONLYOFFICE Docsserver.",
"You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data." : "Du använder en offentlig demo ONLYOFFICE Docsserver. Lagra inte privat känslig information.",
- "Secure view settings" : "Säkra vyinställningar",
"Secure view enables you to secure documents by embedding a watermark" : "Med säker vy kan du säkra dokument genom att bädda in en vattenstämpel",
"Enable watermarking" : "Aktivera vattenstämpel",
"Watermark text" : "Text för vattenmärke",
@@ -85,7 +84,8 @@
"Disable certificate verification (insecure)": "Använd inte certifikatsverifiering (osäkert)",
"Keep intermediate versions when editing (forcesave)": "Behåll mellanliggande versioner vid redigering (tvinga att spara)",
"Use ONLYOFFICE to generate a document preview (it will take up disk space)": "Använd ONLYOFFICE för att generera en förhandsgranskning av dokument (detta använder diskutrymme)",
- "Keep metadata for each version once the document is edited (it will take up disk space)": "Behåll metadata för varje version när dokumentet redigeras (detta använder diskutrymme) ",
+ "Keep metadata for each version once the document is edited (it will take up disk space)": "Behåll metadata för varje version när dokumentet redigeras (detta använder diskutrymme)",
+ "Clear": "Rensa",
"All history successfully deleted": "All historik har tagits bort",
"Create": "Skapa",
"Select template" : "Välj mall",
@@ -108,12 +108,23 @@
"%1$s mentioned in the %2$s: \"%3$s\".": "%1$s har nämnt i %2$s: \"%3$s\".",
"{notifier} mentioned in the {file}: \"%1$s\".": "{notifier} nämnde dig i {file}: \"%1$s\".",
"Choose a format to convert {fileName}": "Välj det filformat som {fileName} ska konverteras till.",
- "New form template": "Ny formulärmall",
+ "New form template": "Ny formulärmall",
"Blank": "Töm",
"From text document": "Formulärmall från textfil",
"Create new Form template": "Skapa ny formulärmall",
"Create form": "Skapa formulär",
"Fill in form in ONLYOFFICE": "Fylla i formulär i ONLYOFFICE",
- "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Uppdatera ONLYOFFICE Docs till version 7.0 för att arbeta med ifyllbart onlineformulär"
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Uppdatera ONLYOFFICE Docs till version 7.0 för att arbeta med ifyllbart onlineformulär",
+ "Security": "Säkerhet",
+ "Anonymous": "Anonym",
+ "Light": "Ljus",
+ "Classic Light": "Klassiskt ljus",
+ "Dark": "Mörk",
+ "Review": "Granska",
+ "Comment": "Kommentar",
+ "Form filling": "Formulärfyllning",
+ "Custom filter": "Anpassat filter",
+ "group": "grupp",
+ "Advanced": "Avancerad"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/l10n/zh_CN.js b/l10n/zh_CN.js
index eb37a03..565cda0 100644
--- a/l10n/zh_CN.js
+++ b/l10n/zh_CN.js
@@ -62,7 +62,6 @@ OC.L10N.register(
"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period." : "这是公开的测试服务器,请勿用于隐私数据。服务器试用期限为30天。",
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server." : "30天试用期已结束,无法连接ONLYOFFICE Docs 服务器的演示。",
"You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data." : "您正在使用公开ONLYOFFICE Docs服务器的演示,请勿存储隐私数据。",
- "Secure view settings" : "安全视图设置",
"Secure view enables you to secure documents by embedding a watermark" : "启用安全视图可通过水印来保障文档安全",
"Enable watermarking" : "启用水印",
"Watermark text" : "水印文本",
@@ -88,6 +87,7 @@ OC.L10N.register(
"Keep intermediate versions when editing (forcesave)": "编辑时保留中间版本 (强制保存)",
"Use ONLYOFFICE to generate a document preview (it will take up disk space)": "使用ONLYOFFICE生成文档预览(将占用磁盘空间)",
"Keep metadata for each version once the document is edited (it will take up disk space)": "编辑文档后保留每个版本的元数据(它将占用磁盘空间)",
+ "Clear": "清除",
"All history successfully deleted": "所有历史记录成功删除",
"Create": "创建",
"Select template" : "选择模板",
@@ -116,6 +116,19 @@ OC.L10N.register(
"Create new Form template": "创建新的表单模板",
"Create form": "创建表单",
"Fill in form in ONLYOFFICE": "在ONLYOFFICE上填写表单",
- "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "请将ONLYOFFICE Docs更新到7.0版本,以便在线编辑可填写的表单"
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "请将ONLYOFFICE Docs更新到7.0版本,以便在线编辑可填写的表单",
+ "Security": "安全",
+ "Anonymous": "匿名",
+ "Default editor theme": "编辑器默认的主题",
+ "Light": "光",
+ "Classic Light": "经典浅色",
+ "Dark": "黑暗的",
+ "Review": "审阅",
+ "Comment": "评论",
+ "Form filling": "表单填报",
+ "Custom filter": "自定义筛选器",
+ "group": "分组",
+ "Advanced": "进阶",
+ "Provide advanced document permissions using ONLYOFFICE Docs": "使用ONLYOFFICE Docs 提供高级文档权限"
},
"nplurals=1; plural=0;");
diff --git a/l10n/zh_CN.json b/l10n/zh_CN.json
index 84f3261..1ebc255 100644
--- a/l10n/zh_CN.json
+++ b/l10n/zh_CN.json
@@ -60,7 +60,6 @@
"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period.": "这是公开的测试服务器,请勿用于隐私数据。服务器试用期限为30天。",
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server." : "30天试用期已结束,无法连接ONLYOFFICE Docs 服务器的演示。",
"You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data." : "您正在使用公开ONLYOFFICE Docs服务器的演示,请勿存储隐私数据。",
- "Secure view settings" : "安全视图设置",
"Secure view enables you to secure documents by embedding a watermark" : "启用安全视图可通过水印来保障文档安全",
"Enable watermarking" : "启用水印",
"Watermark text" : "水印文本",
@@ -86,6 +85,7 @@
"Keep intermediate versions when editing (forcesave)": "编辑时保留中间版本 (强制保存)",
"Use ONLYOFFICE to generate a document preview (it will take up disk space)": "使用ONLYOFFICE生成文档预览(将占用磁盘空间)",
"Keep metadata for each version once the document is edited (it will take up disk space)": "编辑文档后保留每个版本的元数据(它将占用磁盘空间)",
+ "Clear": "清除",
"All history successfully deleted": "所有历史记录成功删除",
"Create": "创建",
"Select template" : "选择模板",
@@ -114,6 +114,19 @@
"Create new Form template": "创建新的表单模板",
"Create form": "创建表单",
"Fill in form in ONLYOFFICE": "在ONLYOFFICE上填写表单",
- "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "请将ONLYOFFICE Docs更新到7.0版本,以便在线编辑可填写的表单"
+ "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "请将ONLYOFFICE Docs更新到7.0版本,以便在线编辑可填写的表单",
+ "Security": "安全",
+ "Anonymous": "匿名",
+ "Default editor theme": "编辑器默认的主题",
+ "Light": "光",
+ "Classic Light": "经典浅色",
+ "Dark": "黑暗的",
+ "Review": "审阅",
+ "Comment": "评论",
+ "Form filling": "表单填报",
+ "Custom filter": "自定义筛选器",
+ "group": "分组",
+ "Advanced": "进阶",
+ "Provide advanced document permissions using ONLYOFFICE Docs": "使用ONLYOFFICE Docs 提供高级文档权限"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/lib/Migration/Version070400Date20220607111111.php b/lib/Migration/Version070400Date20220607111111.php
new file mode 100644
index 0000000..1ca7636
--- /dev/null
+++ b/lib/Migration/Version070400Date20220607111111.php
@@ -0,0 +1,89 @@
+<?php
+
+declare(strict_types=1);
+
+namespace OCA\Onlyoffice\Migration;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+/**
+ * Auto-generated migration step: Please modify to your needs!
+ */
+class Version070400Date20220607111111 extends SimpleMigrationStep {
+
+ /**
+ * @param IOutput $output
+ * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
+ * @param array $options
+ */
+ public function preSchemaChange(IOutput $output, Closure $schemaClosure, array $options): void {
+ }
+
+ /**
+ * @param IOutput $output
+ * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
+ * @param array $options
+ * @return null|ISchemaWrapper
+ */
+ public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ if (!$schema->hasTable('onlyoffice_filekey')) {
+ $table = $schema->createTable('onlyoffice_filekey');
+ $table->addColumn('id', 'integer', [
+ 'autoincrement' => true,
+ 'notnull' => true,
+ ]);
+ $table->addColumn('file_id', 'bigint', [
+ 'notnull' => false,
+ 'default' => '-1',
+ ]);
+ $table->addColumn('key', 'string', [
+ 'notnull' => true,
+ 'length' => 128,
+ ]);
+ $table->addColumn('lock', 'integer', [
+ 'notnull' => true,
+ 'default' => 0,
+ ]);
+ $table->addColumn('fs', 'integer', [
+ 'notnull' => true,
+ 'default' => 0,
+ ]);
+ $table->setPrimaryKey(['id']);
+ $table->addUniqueIndex(['file_id'], 'file_id_index');
+ }
+
+ if (!$schema->hasTable('onlyoffice_permissions')) {
+ $table = $schema->createTable('onlyoffice_permissions');
+ $table->addColumn('id', 'integer', [
+ 'autoincrement' => true,
+ 'notnull' => true,
+ ]);
+ $table->addColumn('share_id', 'bigint', [
+ 'notnull' => true,
+ 'default' => '-1',
+ ]);
+ $table->addColumn('permissions', 'integer', [
+ 'notnull' => true,
+ 'default' => 0,
+ ]);
+ $table->setPrimaryKey(['id']);
+ $table->addUniqueIndex(['share_id'], 'share_id_index');
+ }
+
+ return $schema;
+ }
+
+ /**
+ * @param IOutput $output
+ * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
+ * @param array $options
+ */
+ public function postSchemaChange(IOutput $output, Closure $schemaClosure, array $options): void {
+ }
+}
diff --git a/lib/Migration/Version070400Date20220929111111.php b/lib/Migration/Version070400Date20220929111111.php
new file mode 100644
index 0000000..0256498
--- /dev/null
+++ b/lib/Migration/Version070400Date20220929111111.php
@@ -0,0 +1,89 @@
+<?php
+
+declare(strict_types=1);
+
+namespace OCA\Onlyoffice\Migration;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+/**
+ * Auto-generated migration step: Please modify to your needs!
+ */
+class Version070400Date20220929111111 extends SimpleMigrationStep {
+
+ /**
+ * @param IOutput $output
+ * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
+ * @param array $options
+ */
+ public function preSchemaChange(IOutput $output, Closure $schemaClosure, array $options): void {
+ }
+
+ /**
+ * @param IOutput $output
+ * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
+ * @param array $options
+ * @return null|ISchemaWrapper
+ */
+ public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ if (!$schema->hasTable('onlyoffice_filekey')) {
+ $table = $schema->createTable('onlyoffice_filekey');
+ $table->addColumn('id', 'integer', [
+ 'autoincrement' => true,
+ 'notnull' => true,
+ ]);
+ $table->addColumn('file_id', 'bigint', [
+ 'notnull' => false,
+ 'default' => '-1',
+ ]);
+ $table->addColumn('key', 'string', [
+ 'notnull' => true,
+ 'length' => 128,
+ ]);
+ $table->addColumn('lock', 'integer', [
+ 'notnull' => true,
+ 'default' => 0,
+ ]);
+ $table->addColumn('fs', 'integer', [
+ 'notnull' => true,
+ 'default' => 0,
+ ]);
+ $table->setPrimaryKey(['id']);
+ $table->addUniqueIndex(['file_id'], 'onlyoffice_file_id_index');
+ }
+
+ if (!$schema->hasTable('onlyoffice_permissions')) {
+ $table = $schema->createTable('onlyoffice_permissions');
+ $table->addColumn('id', 'integer', [
+ 'autoincrement' => true,
+ 'notnull' => true,
+ ]);
+ $table->addColumn('share_id', 'bigint', [
+ 'notnull' => true,
+ 'default' => '-1',
+ ]);
+ $table->addColumn('permissions', 'integer', [
+ 'notnull' => true,
+ 'default' => 0,
+ ]);
+ $table->setPrimaryKey(['id']);
+ $table->addUniqueIndex(['share_id'], 'onlyoffice_share_id_index');
+ }
+
+ return $schema;
+ }
+
+ /**
+ * @param IOutput $output
+ * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
+ * @param array $options
+ */
+ public function postSchemaChange(IOutput $output, Closure $schemaClosure, array $options): void {
+ }
+}
diff --git a/lib/appconfig.php b/lib/appconfig.php
index 620c4ca..e73b4ee 100644
--- a/lib/appconfig.php
+++ b/lib/appconfig.php
@@ -117,6 +117,13 @@ class AppConfig {
private $_preview = "preview";
/**
+ * The config key for the advanced
+ *
+ * @var string
+ */
+ private $_advanced = "advanced";
+
+ /**
* The config key for the keep versions history
*
* @var string
@@ -173,6 +180,13 @@ class AppConfig {
private $_customizationReviewDisplay = "customizationReviewDisplay";
/**
+ * The config key for the theme setting
+ *
+ * @var string
+ */
+ private $_customizationTheme = "customizationTheme";
+
+ /**
* The config key for the setting limit groups
*
* @var string
@@ -278,6 +292,13 @@ class AppConfig {
public $_customization_goback = "customization_goback";
/**
+ * The config key for the macros
+ *
+ * @var string
+ */
+ public $_customizationMacros = "customization_macros";
+
+ /**
* @param string $AppName - application name
*/
public function __construct($AppName) {
@@ -645,12 +666,32 @@ class AppConfig {
}
/**
+ * Get advanced setting
+ *
+ * @return bool
+ */
+ public function GetAdvanced() {
+ return $this->config->getAppValue($this->appName, $this->_advanced, "false") === "true";
+ }
+
+ /**
+ * Save advanced setting
+ *
+ * @param bool $value - advanced
+ */
+ public function SetAdvanced($value) {
+ $this->logger->info("Set advanced: " . json_encode($value), ["app" => $this->appName]);
+
+ $this->config->setAppValue($this->appName, $this->_advanced, json_encode($value));
+ }
+
+ /**
* Get generate preview setting
*
* @return bool
*/
public function GetPreview() {
- return $this->config->getAppValue($this->appName, $this->_preview, "false") === "true";
+ return $this->config->getAppValue($this->appName, $this->_preview, "true") === "true";
}
/**
@@ -821,6 +862,33 @@ class AppConfig {
}
/**
+ * Save theme setting
+ *
+ * @param string $value - theme
+ */
+ public function SetCustomizationTheme($value) {
+ $this->logger->info("Set theme: " . $value, array("app" => $this->appName));
+
+ $this->config->setAppValue($this->appName, $this->_customizationTheme, $value);
+ }
+
+ /**
+ * Get theme setting
+ *
+ * @return string
+ */
+ public function GetCustomizationTheme() {
+ $value = $this->config->getAppValue($this->appName, $this->_customizationTheme, "theme-classic-light");
+ if ($value === "theme-light") {
+ return "theme-light";
+ }
+ if ($value === "theme-dark") {
+ return "theme-dark";
+ }
+ return "theme-classic-light";
+ }
+
+ /**
* Save watermark settings
*
* @param array $settings - watermark settings
@@ -875,7 +943,7 @@ class AppConfig {
*/
public function GetWatermarkSettings() {
$result = [
- "text" => $this->config->getAppValue(AppConfig::WATERMARK_APP_NAMESPACE, "watermark_text", "{userId}"),
+ "text" => $this->config->getAppValue(AppConfig::WATERMARK_APP_NAMESPACE, "watermark_text", "{userId}, {date}"),
];
$watermarkLabels = [
@@ -1090,6 +1158,25 @@ class AppConfig {
return $result;
}
+ /**
+ * Save macros setting
+ *
+ * @param bool $value - enable macros
+ */
+ public function SetCustomizationMacros($value) {
+ $this->logger->info("Set macros enabled: " . json_encode($value), ["app" => $this->appName]);
+
+ $this->config->setAppValue($this->appName, $this->_customizationMacros, json_encode($value));
+ }
+
+ /**
+ * Get macros setting
+ *
+ * @return bool
+ */
+ public function GetCustomizationMacros() {
+ return $this->config->getAppValue($this->appName, $this->_customizationMacros, "true") === "true";
+ }
/**
* Additional data about formats
@@ -1100,8 +1187,8 @@ class AppConfig {
"csv" => [ "mime" => "text/csv", "type" => "cell", "edit" => true, "editable" => true, "saveas" => ["ods", "pdf", "xlsx"] ],
"doc" => [ "mime" => "application/msword", "type" => "word", "conv" => true, "saveas" => ["docx", "odt", "pdf", "rtf", "txt"] ],
"docm" => [ "mime" => "application/vnd.ms-word.document.macroEnabled.12", "type" => "word", "conv" => true, "saveas" => ["docx", "odt", "pdf", "rtf", "txt"] ],
- "docx" => [ "mime" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "type" => "word", "edit" => true, "def" => true, "saveas" => ["odt", "pdf", "rtf", "txt", "docxf"] ],
- "docxf" => [ "mime" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document.docxf", "type" => "word", "edit" => true, "def" => true, "saveas" => ["odt", "pdf", "rtf", "txt"], "createForm" => true ],
+ "docx" => [ "mime" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "type" => "word", "edit" => true, "def" => true, "review" => true, "comment" => true, "saveas" => ["odt", "pdf", "rtf", "txt", "docxf"] ],
+ "docxf" => [ "mime" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document.docxf", "type" => "word", "edit" => true, "def" => true, "review" => true, "comment" => true, "saveas" => ["odt", "pdf", "rtf", "txt"], "createForm" => true ],
"oform" => [ "mime" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document.oform", "type" => "word", "fillForms" => true, "def" => true ],
"dot" => [ "type" => "word", "conv" => true, "saveas" => ["docx", "odt", "pdf", "rtf", "txt"] ],
"dotx" => [ "mime" => "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "type" => "word", "conv" => true, "saveas" => ["docx", "odt", "pdf", "rtf", "txt"] ],
@@ -1123,12 +1210,12 @@ class AppConfig {
"ppsx" => [ "mime" => "application/vnd.openxmlformats-officedocument.presentationml.slideshow", "type" => "slide", "conv" => true, "saveas" => ["pdf", "pptx", "odp"] ],
"ppt" => [ "mime" => "application/vnd.ms-powerpoint", "type" => "slide", "conv" => true, "saveas" => ["pdf", "pptx", "odp"] ],
"pptm" => [ "mime" => "application/vnd.ms-powerpoint.presentation.macroEnabled.12", "type" => "slide", "conv" => true, "saveas" => ["pdf", "pptx", "odp"] ],
- "pptx" => [ "mime" => "application/vnd.openxmlformats-officedocument.presentationml.presentation", "type" => "slide", "edit" => true, "def" => true, "saveas" => ["pdf", "odp"] ],
+ "pptx" => [ "mime" => "application/vnd.openxmlformats-officedocument.presentationml.presentation", "type" => "slide", "edit" => true, "def" => true, "comment" => true, "saveas" => ["pdf", "odp"] ],
"rtf" => [ "mime" => "text/rtf", "type" => "word", "conv" => true, "editable" => true, "saveas" => ["docx", "odt", "pdf", "txt"] ],
"txt" => [ "mime" => "text/plain", "type" => "word", "edit" => true, "editable" => true, "saveas" => ["docx", "odt", "pdf", "rtf"] ],
"xls" => [ "mime" => "application/vnd.ms-excel", "type" => "cell", "conv" => true, "saveas" => ["csv", "ods", "pdf", "xlsx"] ],
"xlsm" => [ "mime" => "application/vnd.ms-excel.sheet.macroEnabled.12", "type" => "cell", "conv" => true, "saveas" => ["csv", "ods", "pdf", "xlsx"] ],
- "xlsx" => [ "mime" => "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "type" => "cell", "edit" => true, "def" => true, "saveas" => ["csv", "ods", "pdf"] ],
+ "xlsx" => [ "mime" => "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "type" => "cell", "edit" => true, "def" => true, "comment" => true, "modifyFilter" => true, "saveas" => ["csv", "ods", "pdf"] ],
"xlt" => [ "type" => "cell", "conv" => true, "saveas" => ["csv", "ods", "pdf", "xlsx"] ],
"xltm" => [ "mime" => "application/vnd.ms-excel.template.macroEnabled.12", "type" => "cell", "conv" => true, "saveas" => ["csv", "ods", "pdf", "xlsx"] ],
"xltx" => [ "mime" => "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "type" => "cell", "conv" => true, "saveas" => ["csv", "ods", "pdf", "xlsx"] ]
diff --git a/lib/directeditor.php b/lib/directeditor.php
index 039ff15..5511892 100644
--- a/lib/directeditor.php
+++ b/lib/directeditor.php
@@ -242,6 +242,7 @@ class DirectEditor implements IEditor {
"version" => 0,
"isTemplate" => false,
"inframe" => false,
+ "inviewer" => false,
"anchor" => null
];
diff --git a/lib/extrapermissions.php b/lib/extrapermissions.php
new file mode 100644
index 0000000..66d2e83
--- /dev/null
+++ b/lib/extrapermissions.php
@@ -0,0 +1,432 @@
+<?php
+/**
+ *
+ * (c) Copyright Ascensio System SIA 2022
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+namespace OCA\Onlyoffice;
+
+use OCP\Constants;
+use OCP\ILogger;
+use OCP\Files\File;
+use OCP\Share\IShare;
+use OCP\Share\IManager;
+use OCP\Share\Exceptions\ShareNotFound;
+
+use OCA\Onlyoffice\AppConfig;
+
+/**
+ * Class expands base permissions
+ *
+ * @package OCA\Onlyoffice
+ */
+class ExtraPermissions {
+
+ /**
+ * Application name
+ *
+ * @var string
+ */
+ private $appName;
+
+ /**
+ * Logger
+ *
+ * @var ILogger
+ */
+ private $logger;
+
+ /**
+ * Share manager
+ *
+ * @var IManager
+ */
+ private $shareManager;
+
+ /**
+ * Application configuration
+ *
+ * @var AppConfig
+ */
+ private $config;
+
+ /**
+ * Table name
+ */
+ private const TableName_Key = "onlyoffice_permissions";
+
+ /**
+ * Extra permission values
+ *
+ * @var integer
+ */
+ public const None = 0;
+ public const Review = 1;
+ public const Comment = 2;
+ public const FillForms = 4;
+ public const ModifyFilter = 8;
+
+ /**
+ * @param string $AppName - application name
+ * @param ILogger $logger - logger
+ * @param AppConfig $config - application configuration
+ * @param IManager $shareManager - Share manager
+ */
+ public function __construct($AppName,
+ ILogger $logger,
+ IManager $shareManager,
+ AppConfig $config) {
+ $this->appName = $AppName;
+ $this->logger = $logger;
+ $this->shareManager = $shareManager;
+ $this->config = $config;
+ }
+
+ /**
+ * Get extra permissions by shareId
+ *
+ * @param integer $shareId - share identifier
+ *
+ * @return array
+ */
+ public function getExtra($shareId) {
+ $share = $this->getShare($shareId);
+ if (empty($share)) {
+ return null;
+ }
+
+ $shareId = $share->getId();
+ $extra = self::get($shareId);
+
+ $checkExtra = isset($extra["permissions"]) ? (int)$extra["permissions"] : self::None;
+ list($availableExtra, $defaultPermissions) = $this->validation($share, $checkExtra);
+
+ if ($availableExtra === 0
+ || ($availableExtra & $checkExtra) !== $checkExtra) {
+ if (!empty($extra)) {
+ self::delete($shareId);
+ }
+
+ $this->logger->debug("Share " . $shareId . " does not support extra permissions", ["app" => $this->appName]);
+ return null;
+ }
+
+ if (empty($extra)) {
+ $extra["id"] = -1;
+ $extra["share_id"] = $share->getId();
+ $extra["permissions"] = $defaultPermissions;
+ }
+
+ $extra["type"] = $share->getShareType();
+ $extra["shareWith"] = $share->getSharedWith();
+ $extra["shareWithName"] = $share->getSharedWithDisplayName();
+ $extra["available"] = $availableExtra;
+
+ return $extra;
+ }
+
+ /**
+ * Get list extra permissions by shares
+ *
+ * @param array $shares - array of shares
+ *
+ * @return array
+ */
+ public function getExtras($shares) {
+ $result = [];
+
+ $shareIds = [];
+ foreach ($shares as $share) {
+ array_push($shareIds, $share->getId());
+ }
+
+ if (empty($shareIds)) {
+ return $result;
+ }
+
+ $extras = self::getList($shareIds);
+
+ $noActualList = [];
+ foreach ($shares as $share) {
+
+ $currentExtra = [];
+ foreach ($extras as $extra) {
+ if ($extra["share_id"] === $share->getId()) {
+ $currentExtra = $extra;
+ }
+ }
+
+ $checkExtra = isset($currentExtra["permissions"]) ? (int)$currentExtra["permissions"] : self::None;
+ list($availableExtra, $defaultPermissions) = $this->validation($share, $checkExtra);
+
+ if ($availableExtra === 0
+ || ($availableExtra & $checkExtra) !== $checkExtra) {
+ if (!empty($currentExtra)) {
+ array_push($noActualList, $share->getId());
+ $currentExtra = [];
+ }
+ }
+
+ if ($availableExtra > 0) {
+ if (empty($currentExtra)) {
+ $currentExtra["id"] = -1;
+ $currentExtra["share_id"] = $share->getId();
+ $currentExtra["permissions"] = $defaultPermissions;
+ }
+
+ $currentExtra["type"] = $share->getShareType();
+ $currentExtra["shareWith"] = $share->getSharedWith();
+ $currentExtra["shareWithName"] = $share->getSharedWithDisplayName();
+ $currentExtra["available"] = $availableExtra;
+
+ array_push($result, $currentExtra);
+ }
+ }
+
+ if (!empty($noActualList)) {
+ self::deleteList($noActualList);
+ }
+
+ return $result;
+ }
+
+ /**
+ * Get extra permissions by share
+ *
+ * @param integer $shareId - share identifier
+ * @param integer $permissions - value extra permissions
+ * @param integer $extraId - extra permission identifier
+ *
+ * @return bool
+ */
+ public function setExtra($shareId, $permissions, $extraId) {
+ $result = false;
+
+ $share = $this->getShare($shareId);
+ if (empty($share)) {
+ return $result;
+ }
+
+ list($availableExtra, $defaultPermissions) = $this->validation($share, $permissions);
+ if (($availableExtra & $permissions) !== $permissions) {
+ $this->logger->debug("Share " . $shareId . " does not available to extend permissions", ["app" => $this->appName]);
+ return $result;
+ }
+
+ if ($extraId > 0) {
+ $result = self::update($share->getId(), $permissions);
+ } else {
+ $result = self::insert($share->getId(), $permissions);
+ }
+
+ return $result;
+ }
+
+ /**
+ * Delete extra permissions for share
+ *
+ * @param integer $shareId - file identifier
+ *
+ * @return bool
+ */
+ public static function delete($shareId) {
+ $connection = \OC::$server->getDatabaseConnection();
+ $delete = $connection->prepare("
+ DELETE FROM `*PREFIX*" . self::TableName_Key . "`
+ WHERE `share_id` = ?
+ ");
+ return (bool)$delete->execute([$shareId]);
+ }
+
+ /**
+ * Delete list extra permissions
+ *
+ * @param array $shareIds - array of share identifiers
+ *
+ * @return bool
+ */
+ public static function deleteList($shareIds) {
+ $connection = \OC::$server->getDatabaseConnection();
+
+ $condition = "";
+ if (count($shareIds) > 1) {
+ for ($i = 1; $i < count($shareIds); $i++) {
+ $condition = $condition . " OR `share_id` = ?";
+ }
+ }
+
+ $delete = $connection->prepare("
+ DELETE FROM `*PREFIX*" . self::TableName_Key . "`
+ WHERE `share_id` = ?
+ " . $condition);
+ return (bool)$delete->execute($shareIds);
+ }
+
+ /**
+ * Get extra permissions for share
+ *
+ * @param integer $shareId - share identifier
+ *
+ * @return array
+ */
+ private static function get($shareId) {
+ $connection = \OC::$server->getDatabaseConnection();
+ $select = $connection->prepare("
+ SELECT id, share_id, permissions
+ FROM `*PREFIX*" . self::TableName_Key . "`
+ WHERE `share_id` = ?
+ ");
+ $result = $select->execute([$shareId]);
+
+ $values = $result ? $select->fetch() : [];
+
+ $value = is_array($values) ? $values : [];
+
+ return $value;
+ }
+
+ /**
+ * Get list extra permissions
+ *
+ * @param array $shareIds - array of share identifiers
+ *
+ * @return array
+ */
+ private static function getList($shareIds) {
+ $connection = \OC::$server->getDatabaseConnection();
+
+ $condition = "";
+ if (count($shareIds) > 1) {
+ for ($i = 1; $i < count($shareIds); $i++) {
+ $condition = $condition . " OR `share_id` = ?";
+ }
+ }
+
+ $select = $connection->prepare("
+ SELECT id, share_id, permissions
+ FROM `*PREFIX*" . self::TableName_Key . "`
+ WHERE `share_id` = ?
+ " . $condition);
+
+ $result = $select->execute($shareIds);
+
+ $values = $result ? $select->fetchAll() : [];
+
+ $value = is_array($values) ? $values : [];
+
+ return $value;
+ }
+
+ /**
+ * Store extra permissions for share
+ *
+ * @param integer $shareId - share identifier
+ * @param integer $permissions - value permissions
+ *
+ * @return bool
+ */
+ private static function insert($shareId, $permissions) {
+ $connection = \OC::$server->getDatabaseConnection();
+ $insert = $connection->prepare("
+ INSERT INTO `*PREFIX*" . self::TableName_Key . "`
+ (`share_id`, `permissions`)
+ VALUES (?, ?)
+ ");
+ return (bool)$insert->execute([$shareId, $permissions]);
+ }
+
+ /**
+ * Update extra permissions for share
+ *
+ * @param integer $shareId - share identifier
+ * @param bool $permissions - value permissions
+ *
+ * @return bool
+ */
+ private static function update($shareId, $permissions) {
+ $connection = \OC::$server->getDatabaseConnection();
+ $update = $connection->prepare("
+ UPDATE `*PREFIX*" . self::TableName_Key . "`
+ SET `permissions` = ?
+ WHERE `share_id` = ?
+ ");
+ return (bool)$update->execute([$permissions, $shareId]);
+ }
+
+ /**
+ * Validation share on extend capability by extra permissions
+ *
+ * @param IShare $share - share
+ * @param int $checkExtra - checkable extra permissions
+ *
+ * @return array
+ */
+ private function validation($share, $checkExtra) {
+ $availableExtra = self::None;
+ $defaultExtra = self::None;
+
+ if (($share->getPermissions() & Constants::PERMISSION_SHARE) === Constants::PERMISSION_SHARE) {
+ return [$availableExtra, $defaultExtra];
+ }
+
+ $node = $share->getNode();
+ $ext = strtolower(pathinfo($node->getName(), PATHINFO_EXTENSION));
+ $format = !empty($ext) && array_key_exists($ext, $this->config->FormatsSetting()) ? $this->config->FormatsSetting()[$ext] : null;
+ if (!isset($format)) {
+ return [$availableExtra, $defaultExtra];
+ }
+
+ if (($share->getPermissions() & Constants::PERMISSION_UPDATE) === Constants::PERMISSION_UPDATE) {
+ if (isset($format["modifyFilter"]) && $format["modifyFilter"]) {
+ $availableExtra |= self::ModifyFilter;
+ $defaultExtra |= self::ModifyFilter;
+ }
+ }
+ if (($share->getPermissions() & Constants::PERMISSION_UPDATE) !== Constants::PERMISSION_UPDATE) {
+ if (isset($format["review"]) && $format["review"]) {
+ $availableExtra |= self::Review;
+ }
+ if (isset($format["comment"]) && $format["comment"]
+ && ($checkExtra & self::Review) !== self::Review) {
+ $availableExtra |= self::Comment;
+ }
+ if (isset($format["fillForms"]) && $format["fillForms"]
+ && ($checkExtra & self::Review) !== self::Review) {
+ $availableExtra |= self::FillForms;
+ }
+ }
+
+ return [$availableExtra, $defaultExtra];
+ }
+
+ /**
+ * Get origin share
+ *
+ * @param integer $shareId - share identifier
+ *
+ * @return IShare
+ */
+ private function getShare($shareId) {
+ try {
+ $share = $this->shareManager->getShareById("ocinternal:" . $shareId);
+ } catch (ShareNotFound $e) {
+ $this->logger->logException($e, ["message" => "getShare error", "app" => $this->appName]);
+ return null;
+ }
+
+ return $share;
+ }
+} \ No newline at end of file
diff --git a/lib/hooks.php b/lib/hooks.php
index d063c83..6cf92c2 100644
--- a/lib/hooks.php
+++ b/lib/hooks.php
@@ -25,6 +25,7 @@ use OCP\Util;
use OCA\Onlyoffice\FileVersions;
use OCA\Onlyoffice\KeyManager;
+use OCA\Onlyoffice\ExtraPermissions;
/**
* The class to handle the filesystem hooks
@@ -55,6 +56,9 @@ class Hooks {
// Listen file version restore
Util::connectHook("\OCP\Versions", "rollback", Hooks::class, "fileVersionRestore");
+
+ // Listen share deletion
+ Util::connectHook("OCP\Share", "post_unshare", Hooks::class, "extraPermissionsDelete");
}
/**
@@ -194,4 +198,27 @@ class Hooks {
\OC::$server->getLogger()->logException($e, ["message" => "Hook: fileVersionRestore " . json_encode($params), "app" => self::$appName]);
}
}
+
+ /**
+ * Erase extra permissions of deleted share
+ *
+ * @param array $params - hook param
+ */
+ public static function extraPermissionsDelete($params) {
+ $shares = $params["deletedShares"];
+ if (empty($shares)) {
+ return;
+ }
+
+ try {
+ $shareIds = [];
+ foreach ($shares as $share) {
+ array_push($shareIds, $share["id"]);
+ }
+
+ ExtraPermissions::deleteList($shareIds);
+ } catch (\Exception $e) {
+ \OC::$server->getLogger()->logException($e, ["message" => "Hook: extraPermissionsDelete " . json_encode($params), "app" => self::$appName]);
+ }
+ }
}
diff --git a/lib/listeners/fileslistener.php b/lib/listeners/fileslistener.php
index 042f4de..ccb07f0 100644
--- a/lib/listeners/fileslistener.php
+++ b/lib/listeners/fileslistener.php
@@ -63,6 +63,12 @@ class FilesListener implements IEventListener {
Util::addScript("onlyoffice", "listener");
}
+ if ($this->appConfig->GetAdvanced()
+ && \OC::$server->getAppManager()->isInstalled("files_sharing")) {
+ Util::addScript("onlyoffice", "share");
+ Util::addStyle("onlyoffice", "share");
+ }
+
Util::addStyle("onlyoffice", "main");
Util::addStyle("onlyoffice", "template");
}
diff --git a/screenshots/icon.png b/screenshots/icon.png
index 03bc00a..b8d5fd3 100644
--- a/screenshots/icon.png
+++ b/screenshots/icon.png
Binary files differ
diff --git a/screenshots/main.png b/screenshots/main.png
index 504e16e..ab9e216 100644
--- a/screenshots/main.png
+++ b/screenshots/main.png
Binary files differ
diff --git a/screenshots/main_small.png b/screenshots/main_small.png
index 5294be1..4842e14 100644
--- a/screenshots/main_small.png
+++ b/screenshots/main_small.png
Binary files differ
diff --git a/screenshots/new.png b/screenshots/new.png
index fcec2f6..5f2d722 100644
--- a/screenshots/new.png
+++ b/screenshots/new.png
Binary files differ
diff --git a/screenshots/open.png b/screenshots/open.png
index 8fabfc0..d32fe31 100644
--- a/screenshots/open.png
+++ b/screenshots/open.png
Binary files differ
diff --git a/screenshots/open_form.png b/screenshots/open_form.png
new file mode 100644
index 0000000..b5eb38c
--- /dev/null
+++ b/screenshots/open_form.png
Binary files differ
diff --git a/screenshots/settings.png b/screenshots/settings.png
index 8d380ce..2c63881 100644
--- a/screenshots/settings.png
+++ b/screenshots/settings.png
Binary files differ
diff --git a/templates/editor.php b/templates/editor.php
index e79de0c..c40975a 100644
--- a/templates/editor.php
+++ b/templates/editor.php
@@ -35,7 +35,8 @@
data-version="<?php p($_["version"]) ?>"
data-template="<?php p($_["isTemplate"]) ?>"
data-anchor="<?php p($_["anchor"]) ?>"
- data-inframe="<?php p($_["inframe"]) ?>"></div>
+ data-inframe="<?php p($_["inframe"]) ?>"
+ data-inviewer="<?php p($_["inviewer"]) ?>"></div>
<?php if (!empty($_["documentServerUrl"])) { ?>
<script nonce="<?php p(base64_encode($_["requesttoken"])) ?>"
diff --git a/templates/settings.php b/templates/settings.php
index 2b9caae..fd9d0d8 100644
--- a/templates/settings.php
+++ b/templates/settings.php
@@ -114,6 +114,12 @@
</p>
<p>
+ <input type="checkbox" class="checkbox" id="onlyofficeAdvanced"
+ <?php if ($_["advanced"]) { ?>checked="checked"<?php } ?> />
+ <label for="onlyofficeAdvanced"><?php p($l->t("Provide advanced document permissions using ONLYOFFICE Docs")) ?></label>
+ </p>
+
+ <p>
<input type="checkbox" class="checkbox" id="onlyofficeVersionHistory"
<?php if ($_["versionHistory"]) { ?>checked="checked"<?php } ?> />
<label for="onlyofficeVersionHistory"><?php p($l->t("Keep metadata for each version once the document is edited (it will take up disk space)")) ?></label>
@@ -226,6 +232,33 @@
</div>
</div>
+ <p class="onlyoffice-header">
+ <?php p($l->t("Default editor theme")) ?>
+ </p>
+ <div class="onlyoffice-tables">
+ <div>
+ <input type="radio" class="radio"
+ id="onlyofficeTheme_theme-light"
+ name="theme"
+ <?php if ($_["theme"] === "theme-light") { ?>checked="checked"<?php } ?> />
+ <label for="onlyofficeTheme_theme-light"><?php p($l->t("Light")) ?></label>
+ </div>
+ <div>
+ <input type="radio" class="radio"
+ id="onlyofficeTheme_theme-classic-light"
+ name="theme"
+ <?php if ($_["theme"] === "theme-classic-light") { ?>checked="checked"<?php } ?> />
+ <label for="onlyofficeTheme_theme-classic-light"><?php p($l->t("Classic Light")) ?></label>
+ </div>
+ <div>
+ <input type="radio" class="radio"
+ id="onlyofficeTheme_theme-dark"
+ name="theme"
+ <?php if ($_["theme"] === "theme-dark") { ?>checked="checked"<?php } ?> />
+ <label for="onlyofficeTheme_theme-dark"><?php p($l->t("Dark")) ?></label>
+ </div>
+ </div>
+
<br />
<p><button id="onlyofficeSave" class="button"><?php p($l->t("Save")) ?></button></p>
</div>
@@ -251,8 +284,15 @@
</div>
<div class="section section-onlyoffice section-onlyoffice-watermark <?php if (empty($_["documentserver"]) && !$_["demo"]["enabled"] || !$_["successful"]) { ?>onlyoffice-hide<?php } ?>">
- <h2><?php p($l->t("Secure view settings")) ?></h2>
+ <h2><?php p($l->t("Security")) ?></h2>
+ <p>
+ <input type="checkbox" class="checkbox" id="onlyofficeMacros"
+ <?php if ($_["macros"]) { ?>checked="checked"<?php } ?> />
+ <label for="onlyofficeMacros"><?php p($l->t("Run document macros")) ?></label>
+ </p>
+
+ <br />
<p class="settings-hint"><?php p($l->t("Secure view enables you to secure documents by embedding a watermark")) ?></p>
<p>
@@ -330,6 +370,6 @@
</div>
<br />
- <p><button id="onlyofficeWatermarkSave" class="button"><?php p($l->t("Save")) ?></button></p>
+ <p><button id="onlyofficeSecuritySave" class="button"><?php p($l->t("Save")) ?></button></p>
</div>
diff --git a/templates/share.html b/templates/share.html
new file mode 100644
index 0000000..cde8a27
--- /dev/null
+++ b/templates/share.html
@@ -0,0 +1,9 @@
+<li id="-1" class="onlyoffice-share-item">
+ <div class="avatardiv popovermenu-wrapper">
+ <img src="" />
+ </div>
+ <span></span>
+ <div id="onlyoffice-share-menu">
+ <button id="onlyoffice-share-action" class="icon-more"></button>
+ </div>
+</li> \ No newline at end of file