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>2021-08-02 11:49:20 +0300
committerGitHub <noreply@github.com>2021-08-02 11:49:20 +0300
commitae76204d0b32bc674c9c4cc936ef63a0afb58549 (patch)
treea6d0f19857c81e5251a0fd9646181d25e8b5963f
parent926a0be602e8eb147974daa614a4bd444e198e99 (diff)
parentd751c5e17b7af0ae3da17cf77a8ad6046bd0649a (diff)
Merge pull request #502 from ONLYOFFICE/developv7.1.0
Release/7.1.0
-rw-r--r--CHANGELOG.md28
-rw-r--r--README.md9
-rw-r--r--appinfo/app.php22
-rw-r--r--appinfo/application.php348
-rw-r--r--appinfo/info.xml4
-rw-r--r--appinfo/routes.php5
m---------assets0
-rw-r--r--controller/callbackcontroller.php15
-rw-r--r--controller/editorcontroller.php323
-rw-r--r--controller/settingscontroller.php16
-rw-r--r--controller/templatecontroller.php73
-rw-r--r--css/main.css10
-rw-r--r--css/template.css12
-rw-r--r--js/desktop.js6
-rw-r--r--js/editor.js135
-rw-r--r--js/listener.js18
-rw-r--r--js/main.js94
-rw-r--r--js/settings.js16
-rw-r--r--l10n/bg.js27
-rw-r--r--l10n/bg.json27
-rw-r--r--l10n/de.js27
-rw-r--r--l10n/de.json27
-rw-r--r--l10n/de_DE.js27
-rw-r--r--l10n/de_DE.json27
-rw-r--r--l10n/es.js27
-rw-r--r--l10n/es.json27
-rw-r--r--l10n/fr.js27
-rw-r--r--l10n/fr.json27
-rw-r--r--l10n/it.js27
-rw-r--r--l10n/it.json27
-rw-r--r--l10n/ja.js27
-rw-r--r--l10n/ja.json27
-rw-r--r--l10n/pl.js27
-rw-r--r--l10n/pl.json27
-rw-r--r--l10n/pt_BR.js27
-rw-r--r--l10n/pt_BR.json27
-rw-r--r--l10n/ru.js27
-rw-r--r--l10n/ru.json27
-rw-r--r--l10n/sv.js28
-rw-r--r--l10n/sv.json30
-rw-r--r--l10n/zh_CN.js29
-rw-r--r--l10n/zh_CN.json27
-rw-r--r--lib/appconfig.php72
-rw-r--r--lib/directeditor.php4
-rw-r--r--lib/documentservice.php2
-rw-r--r--lib/hooks.php2
-rw-r--r--lib/notifier.php152
-rw-r--r--lib/preview.php14
-rw-r--r--lib/templatemanager.php60
-rw-r--r--lib/templateprovider.php91
-rw-r--r--templates/downloadPicker.html6
-rw-r--r--templates/editor.php1
-rw-r--r--templates/loader.html (renamed from templates/loader.php)29
-rw-r--r--templates/settings.php16
-rw-r--r--templates/templateItem.html2
55 files changed, 1694 insertions, 545 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 494a764..840b520 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,9 +1,37 @@
# Change Log
+## 7.1.0
+## Added
+- mentions in comments
+- favorite status in the editor
+- creation from a template from the editor
+- download as
+- downloading a template from settings
+- opening action link
+
+## Changed
+- redirect from dashboard on desktop
+- Nextcloud v19 is no longer supported
+
+## 7.0.4
+## Changed
+- compatible with Nextcloud 22
+
+## 7.0.2
+## Changed
+- fixed registration of file actions
+
## 6.4.2
## Changed
- fixed registration of file actions
+## 7.0.0
+## Added
+- support for templates from Nextcloud v21
+
+## Changed
+- Nextcloud v19, v20 is no longer supported
+
## 6.4.0
## Added
- create file from editor
diff --git a/README.md b/README.md
index 62e6abd..48d6bd7 100644
--- a/README.md
+++ b/README.md
@@ -165,12 +165,12 @@ The table below will help you to make the right choice.
| Pricing and licensing | Community Edition | Enterprise Edition |
| ------------- | ------------- | ------------- |
| | [Get it now](https://www.onlyoffice.com/download.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubNextcloud) | [Start Free Trial](https://www.onlyoffice.com/enterprise-edition-free.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubNextcloud) |
-| Cost | FREE | [Go to the pricing page](https://www.onlyoffice.com/enterprise-edition.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubNextcloud) |
+| Cost | FREE | [Go to the pricing page](https://www.onlyoffice.com/docs-enterprise-prices.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubNextcloud) |
| Simultaneous connections | up to 20 maximum | As in chosen pricing plan |
| Number of users | up to 20 recommended | As in chosen pricing plan |
| License | GNU AGPL v.3 | Proprietary |
| **Support** | **Community Edition** | **Enterprise Edition** |
-| Documentation | [Help Center](https://helpcenter.onlyoffice.com/server/docker/opensource/index.aspx) | [Help Center](https://helpcenter.onlyoffice.com/server/integration-edition/index.aspx) |
+| Documentation | [Help Center](https://helpcenter.onlyoffice.com/installation/docs-community-index.aspx) | [Help Center](https://helpcenter.onlyoffice.com/installation/docs-enterprise-index.aspx) |
| Standard support | [GitHub](https://github.com/ONLYOFFICE/DocumentServer/issues) or paid | One year support included |
| Premium support | [Buy Now](https://www.onlyoffice.com/support.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubNextcloud) | [Buy Now](https://www.onlyoffice.com/support.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubNextcloud) |
| **Services** | **Community Edition** | **Enterprise Edition** |
@@ -178,6 +178,8 @@ The table below will help you to make the right choice.
| Document Builder Service | + | + |
| **Interface** | **Community Edition** | **Enterprise Edition** |
| Tabbed interface | + | + |
+| Dark theme | + | + |
+| 150% scaling | + | + |
| White Label | - | - |
| Integrated test example (node.js)* | - | + |
| Mobile web editors | - | + |
@@ -208,11 +210,12 @@ The table below will help you to make the right choice.
| Functions, formulas, equations | + | + |
| Table templates | + | + |
| Pivot tables | + | + |
+| Data validation | + | + |
| Conditional formatting for viewing | +** | +** |
| **Presentation Editor features** | **Community Edition** | **Enterprise Edition** |
| Font and paragraph formatting | + | + |
| Object insertion | + | + |
-| Animations | + | + |
+| Transitions | + | + |
| Presenter mode | + | + |
| Notes | + | + |
| | [Get it now](https://www.onlyoffice.com/download.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubNextcloud) | [Start Free Trial](https://www.onlyoffice.com/enterprise-edition-free.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubNextcloud) |
diff --git a/appinfo/app.php b/appinfo/app.php
deleted file mode 100644
index 7979d09..0000000
--- a/appinfo/app.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- *
- * (c) Copyright Ascensio System SIA 2021
- *
- * 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\AppInfo;
-
-$app = \OC::$server->query(Application::class);
diff --git a/appinfo/application.php b/appinfo/application.php
index 087eb2c..26769ea 100644
--- a/appinfo/application.php
+++ b/appinfo/application.php
@@ -19,12 +19,23 @@
namespace OCA\Onlyoffice\AppInfo;
+use OC\EventDispatcher\SymfonyAdapter;
+
use OCP\AppFramework\App;
+use OCP\AppFramework\Bootstrap\IBootContext;
+use OCP\AppFramework\Bootstrap\IBootstrap;
+use OCP\AppFramework\Bootstrap\IRegistrationContext;
use OCP\AppFramework\Http\ContentSecurityPolicy;
+use OCP\Dashboard\RegisterWidgetEvent;
use OCP\DirectEditing\RegisterDirectEditorEvent;
-use OCP\Files\IMimeTypeDetector;
-use OCP\Util;
+use OCP\Files\Template\FileCreatedFromTemplateEvent;
+use OCP\Files\Template\ITemplateManager;
+use OCP\Files\Template\TemplateFileCreator;
+use OCP\IL10N;
use OCP\IPreview;
+use OCP\ITagManager;
+use OCP\Notification\IManager;
+use OCP\Util;
use OCA\Viewer\Event\LoadViewer;
@@ -36,9 +47,14 @@ use OCA\Onlyoffice\Controller\TemplateController;
use OCA\Onlyoffice\Crypt;
use OCA\Onlyoffice\DirectEditor;
use OCA\Onlyoffice\Hooks;
+use OCA\Onlyoffice\Notifier;
use OCA\Onlyoffice\Preview;
+use OCA\Onlyoffice\TemplateManager;
+use OCA\Onlyoffice\TemplateProvider;
+
+use Psr\Container\ContainerInterface;
-class Application extends App {
+class Application extends App implements IBootstrap {
/**
* Application configuration
@@ -61,181 +77,243 @@ class Application extends App {
$this->appConfig = new AppConfig($appName);
$this->crypt = new Crypt($this->appConfig);
+ }
- // Default script and style if configured
- $eventDispatcher = \OC::$server->getEventDispatcher();
- $eventDispatcher->addListener("OCA\Files::loadAdditionalScripts",
- function () {
- if (!empty($this->appConfig->GetDocumentServerUrl())
- && $this->appConfig->SettingsAreSuccessful()
- && $this->appConfig->isUserAllowedToUse()) {
- Util::addScript("onlyoffice", "desktop");
- Util::addScript("onlyoffice", "main");
- Util::addScript("onlyoffice", "template");
-
- if ($this->appConfig->GetSameTab()) {
- Util::addScript("onlyoffice", "listener");
- }
-
- Util::addStyle("onlyoffice", "main");
- Util::addStyle("onlyoffice", "template");
- }
- });
-
- if (class_exists(LoadViewer::class)) {
- $eventDispatcher->addListener(LoadViewer::class,
- function () {
- if (!empty($this->appConfig->GetDocumentServerUrl())
- && $this->appConfig->SettingsAreSuccessful()
- && $this->appConfig->isUserAllowedToUse()) {
- Util::addScript("onlyoffice", "viewer");
- Util::addScript("onlyoffice", "listener");
-
- Util::addStyle("onlyoffice", "viewer");
-
- $csp = new ContentSecurityPolicy();
- $csp->addAllowedFrameDomain("'self'");
- $cspManager = $this->getContainer()->getServer()->getContentSecurityPolicyManager();
- $cspManager->addDefaultPolicy($csp);
- }
- });
- }
-
- $eventDispatcher->addListener("OCA\Files_Sharing::loadAdditionalScripts",
- function () {
- if (!empty($this->appConfig->GetDocumentServerUrl())
- && $this->appConfig->SettingsAreSuccessful()) {
- Util::addScript("onlyoffice", "main");
-
- if ($this->appConfig->GetSameTab()) {
- Util::addScript("onlyoffice", "listener");
- }
-
- Util::addStyle("onlyoffice", "main");
- }
- });
-
+ 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";
- $container = $this->getContainer();
-
- //todo: remove in v20
- $detector = $container->query(IMimeTypeDetector::class);
- $detector->getAllMappings();
- $detector->registerType("ott", "application/vnd.oasis.opendocument.text-template");
- $detector->registerType("ots", "application/vnd.oasis.opendocument.spreadsheet-template");
- $detector->registerType("otp", "application/vnd.oasis.opendocument.presentation-template");
-
- $previewManager = $container->query(IPreview::class);
- $previewManager->registerProvider(Preview::getMimeTypeRegex(), function() use ($container) {
- return $container->query(Preview::class);
+ $context->registerService("L10N", function (ContainerInterface $c) {
+ return $c->get("ServerContainer")->getL10N($c->get("AppName"));
});
- $container->registerService("L10N", function ($c) {
- return $c->query("ServerContainer")->getL10N($c->query("AppName"));
+ $context->registerService("RootStorage", function (ContainerInterface $c) {
+ return $c->get("ServerContainer")->getRootFolder();
});
- $container->registerService("RootStorage", function ($c) {
- return $c->query("ServerContainer")->getRootFolder();
+ $context->registerService("UserSession", function (ContainerInterface $c) {
+ return $c->get("ServerContainer")->getUserSession();
});
- $container->registerService("UserSession", function ($c) {
- return $c->query("ServerContainer")->getUserSession();
+ $context->registerService("UserManager", function (ContainerInterface $c) {
+ return $c->get("ServerContainer")->getUserManager();
});
- $container->registerService("UserManager", function ($c) {
- return $c->query("ServerContainer")->getUserManager();
+ $context->registerService("Logger", function (ContainerInterface $c) {
+ return $c->get("ServerContainer")->getLogger();
});
- $container->registerService("Logger", function ($c) {
- return $c->query("ServerContainer")->getLogger();
+ $context->registerService("URLGenerator", function (ContainerInterface $c) {
+ return $c->get("ServerContainer")->getURLGenerator();
});
- $container->registerService("URLGenerator", function ($c) {
- return $c->query("ServerContainer")->getURLGenerator();
+ $context->registerService("DirectEditor", function (ContainerInterface $c) {
+ return new DirectEditor(
+ $c->get("AppName"),
+ $c->get("URLGenerator"),
+ $c->get("L10N"),
+ $c->get("Logger"),
+ $this->appConfig,
+ $this->crypt
+ );
});
- if (class_exists("OCP\DirectEditing\RegisterDirectEditorEvent")) {
- $container->registerService("DirectEditor", function ($c) {
- return new DirectEditor(
- $c->query("AppName"),
- $c->query("URLGenerator"),
- $c->query("L10N"),
- $c->query("Logger"),
- $this->appConfig,
- $this->crypt
- );
- });
-
- $eventDispatcher->addListener(RegisterDirectEditorEvent::class,
- function (RegisterDirectEditorEvent $event) use ($container) {
- if (!empty($this->appConfig->GetDocumentServerUrl())
- && $this->appConfig->SettingsAreSuccessful()) {
- $editor = $container->query("DirectEditor");
- $event->register($editor);
- }
- });
- }
-
-
// Controllers
- $container->registerService("SettingsController", function ($c) {
+ $context->registerService("SettingsController", function (ContainerInterface $c) {
return new SettingsController(
- $c->query("AppName"),
- $c->query("Request"),
- $c->query("URLGenerator"),
- $c->query("L10N"),
- $c->query("Logger"),
+ $c->get("AppName"),
+ $c->get("Request"),
+ $c->get("URLGenerator"),
+ $c->get("L10N"),
+ $c->get("Logger"),
$this->appConfig,
$this->crypt
);
});
- $container->registerService("EditorController", function ($c) {
+ $context->registerService("EditorController", function (ContainerInterface $c) {
return new EditorController(
- $c->query("AppName"),
- $c->query("Request"),
- $c->query("RootStorage"),
- $c->query("UserSession"),
- $c->query("UserManager"),
- $c->query("URLGenerator"),
- $c->query("L10N"),
- $c->query("Logger"),
+ $c->get("AppName"),
+ $c->get("Request"),
+ $c->get("RootStorage"),
+ $c->get("UserSession"),
+ $c->get("UserManager"),
+ $c->get("URLGenerator"),
+ $c->get("L10N"),
+ $c->get("Logger"),
$this->appConfig,
$this->crypt,
- $c->query("IManager"),
- $c->query("Session")
+ $c->get("IManager"),
+ $c->get("Session"),
+ $c->get(ITagManager::class)
);
});
- $container->registerService("CallbackController", function ($c) {
+ $context->registerService("CallbackController", function (ContainerInterface $c) {
return new CallbackController(
- $c->query("AppName"),
- $c->query("Request"),
- $c->query("RootStorage"),
- $c->query("UserSession"),
- $c->query("UserManager"),
- $c->query("L10N"),
- $c->query("Logger"),
+ $c->get("AppName"),
+ $c->get("Request"),
+ $c->get("RootStorage"),
+ $c->get("UserSession"),
+ $c->get("UserManager"),
+ $c->get("L10N"),
+ $c->get("Logger"),
$this->appConfig,
$this->crypt,
- $c->query("IManager")
+ $c->get("IManager")
);
});
- $container->registerService("TemplateController", function ($c) {
+ $context->registerService("TemplateController", function (ContainerInterface $c) {
return new TemplateController(
- $c->query("AppName"),
- $c->query("Request"),
- $c->query("L10N"),
- $c->query("Logger")
+ $c->get("AppName"),
+ $c->get("Request"),
+ $c->get("L10N"),
+ $c->get("Logger"),
+ $c->get(IPreview::class)
);
});
+ if (interface_exists("OCP\Files\Template\ICustomTemplateProvider")) {
+ $context->registerTemplateProvider(TemplateProvider::class);
+ }
+
+ }
+
+ public function boot(IBootContext $context): void {
+
+ $context->injectFn(function (SymfonyAdapter $eventDispatcher) {
+
+ $eventDispatcher->addListener('OCA\Files::loadAdditionalScripts',
+ function() {
+ if (!empty($this->appConfig->GetDocumentServerUrl())
+ && $this->appConfig->SettingsAreSuccessful()
+ && $this->appConfig->isUserAllowedToUse()) {
+
+ Util::addScript("onlyoffice", "desktop");
+ Util::addScript("onlyoffice", "main");
+ Util::addScript("onlyoffice", "template");
+
+ if ($this->appConfig->GetSameTab()) {
+ Util::addScript("onlyoffice", "listener");
+ }
+
+ Util::addStyle("onlyoffice", "main");
+ Util::addStyle("onlyoffice", "template");
+ }
+ });
+
+ $eventDispatcher->addListener(LoadViewer::class,
+ function () {
+ if (!empty($this->appConfig->GetDocumentServerUrl())
+ && $this->appConfig->SettingsAreSuccessful()
+ && $this->appConfig->isUserAllowedToUse()) {
+ Util::addScript("onlyoffice", "viewer");
+ Util::addScript("onlyoffice", "listener");
+
+ Util::addStyle("onlyoffice", "viewer");
+
+ $csp = new ContentSecurityPolicy();
+ $csp->addAllowedFrameDomain("'self'");
+ $cspManager = $this->getContainer()->getServer()->getContentSecurityPolicyManager();
+ $cspManager->addDefaultPolicy($csp);
+ }
+ });
+
+ $eventDispatcher->addListener('OCA\Files_Sharing::loadAdditionalScripts',
+ function() {
+ if (!empty($this->appConfig->GetDocumentServerUrl())
+ && $this->appConfig->SettingsAreSuccessful()) {
+ Util::addScript("onlyoffice", "main");
+
+ if ($this->appConfig->GetSameTab()) {
+ Util::addScript("onlyoffice", "listener");
+ }
+
+ Util::addStyle("onlyoffice", "main");
+ }
+ });
+
+ $eventDispatcher->addListener(RegisterWidgetEvent::class,
+ function () {
+ if (!empty($this->appConfig->GetDocumentServerUrl())
+ && $this->appConfig->SettingsAreSuccessful()
+ && $this->appConfig->isUserAllowedToUse()) {
+ Util::addScript("onlyoffice", "desktop");
+ }
+ });
+
+ $container = $this->getContainer();
+
+ if (class_exists("OCP\Files\Template\FileCreatedFromTemplateEvent")) {
+ $eventDispatcher->addListener(FileCreatedFromTemplateEvent::class,
+ function (FileCreatedFromTemplateEvent $event) {
+ $template = $event->getTemplate();
+ if ($template === null) {
+ $targetFile = $event->getTarget();
+ $templateEmpty = TemplateManager::GetEmptyTemplate($targetFile->getName());
+ if ($templateEmpty) {
+ $targetFile->putContent($templateEmpty);
+ }
+ }
+ });
+ }
+
+ $previewManager = $container->query(IPreview::class);
+ $previewManager->registerProvider(Preview::getMimeTypeRegex(), function() use ($container) {
+ return $container->query(Preview::class);
+ });
+
+ $eventDispatcher->addListener(RegisterDirectEditorEvent::class,
+ function (RegisterDirectEditorEvent $event) use ($container) {
+ if (!empty($this->appConfig->GetDocumentServerUrl())
+ && $this->appConfig->SettingsAreSuccessful()) {
+ $editor = $container->query(DirectEditor::class);
+ $event->register($editor);
+ }
+ });
+
+ });
+
+ $context->injectFn(function (IManager $notificationsManager) {
+ $notificationsManager->registerNotifierService(Notifier::class);
+ });
+
+ if (class_exists("OCP\Files\Template\TemplateFileCreator")) {
+ $context->injectFn(function(ITemplateManager $templateManager, IL10N $trans, $appName) {
+ if (!empty($this->appConfig->GetDocumentServerUrl())
+ && $this->appConfig->SettingsAreSuccessful()
+ && $this->appConfig->isUserAllowedToUse()) {
+
+ $templateManager->registerTemplateFileCreator(function () use ($appName, $trans) {
+ $wordTemplate = new TemplateFileCreator($appName, $trans->t("Document"), ".docx");
+ $wordTemplate->addMimetype("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
+ $wordTemplate->setIconClass("icon-onlyoffice-new-docx");
+ $wordTemplate->setRatio(21/29.7);
+ return $wordTemplate;
+ });
+
+ $templateManager->registerTemplateFileCreator(function () use ($appName, $trans) {
+ $cellTemplate = new TemplateFileCreator($appName, $trans->t("Spreadsheet"), ".xlsx");
+ $cellTemplate->addMimetype("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+ $cellTemplate->setIconClass("icon-onlyoffice-new-xlsx");
+ $cellTemplate->setRatio(21/29.7);
+ return $cellTemplate;
+ });
+
+ $templateManager->registerTemplateFileCreator(function () use ($appName, $trans) {
+ $slideTemplate = new TemplateFileCreator($appName, $trans->t("Presentation"), ".pptx");
+ $slideTemplate->addMimetype("application/vnd.openxmlformats-officedocument.presentationml.presentation");
+ $slideTemplate->setIconClass("icon-onlyoffice-new-pptx");
+ $slideTemplate->setRatio(16/9);
+ return $slideTemplate;
+ });
+ }
+ });
+ }
Hooks::connectHooks();
}
-}
+} \ No newline at end of file
diff --git a/appinfo/info.xml b/appinfo/info.xml
index 05bf3e1..b835d8c 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>6.4.2</version>
+ <version>7.1.0</version>
<namespace>Onlyoffice</namespace>
<types>
<filesystem/>
@@ -29,7 +29,7 @@
<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>
<dependencies>
- <nextcloud min-version="19" max-version="21"/>
+ <nextcloud min-version="20" max-version="22"/>
</dependencies>
<settings>
<admin>OCA\Onlyoffice\AdminSettings</admin>
diff --git a/appinfo/routes.php b/appinfo/routes.php
index 42066e7..f4809fa 100644
--- a/appinfo/routes.php
+++ b/appinfo/routes.php
@@ -22,10 +22,13 @@ return [
["name" => "callback#download", "url" => "/download", "verb" => "GET"],
["name" => "callback#emptyfile", "url" => "/empty", "verb" => "GET"],
["name" => "callback#track", "url" => "/track", "verb" => "POST"],
- ["name" => "editor#loader", "url" => "/loader", "verb" => "GET"],
+ ["name" => "template#preview", "url" => "/preview", "verb" => "GET"],
["name" => "editor#create_new", "url" => "/new", "verb" => "GET"],
+ ["name" => "editor#download", "url" => "/downloadas", "verb" => "GET"],
["name" => "editor#index", "url" => "/{fileId}", "verb" => "GET"],
["name" => "editor#public_page", "url" => "/s/{shareToken}", "verb" => "GET"],
+ ["name" => "editor#users", "url" => "/ajax/users", "verb" => "GET"],
+ ["name" => "editor#mention", "url" => "/ajax/mention", "verb" => "POST"],
["name" => "editor#config", "url" => "/ajax/config/{fileId}", "verb" => "GET"],
["name" => "editor#create", "url" => "/ajax/new", "verb" => "POST"],
["name" => "editor#convert", "url" => "/ajax/convert", "verb" => "POST"],
diff --git a/assets b/assets
-Subproject d54aff3c6d3f8a163e96425528721256ff8da22
+Subproject 2c722cce9e046999afbff7b956c9a9f6f8c773c
diff --git a/controller/callbackcontroller.php b/controller/callbackcontroller.php
index 96fa7ee..63aab6d 100644
--- a/controller/callbackcontroller.php
+++ b/controller/callbackcontroller.php
@@ -372,6 +372,8 @@ class CallbackController extends Controller {
* @param string $token - request signature
* @param array $history - file history
* @param string $changesurl - link to file changes
+ * @param integer $forcesavetype - the type of force save action
+ * @param array $actions - the array of action
*
* @return array
*
@@ -380,7 +382,7 @@ class CallbackController extends Controller {
* @PublicPage
* @CORS
*/
- public function track($doc, $users, $key, $status, $url, $token, $history, $changesurl) {
+ public function track($doc, $users, $key, $status, $url, $token, $history, $changesurl, $forcesavetype, $actions) {
list ($hashData, $error) = $this->crypt->ReadHash($doc);
if ($hashData === null) {
@@ -445,9 +447,18 @@ class CallbackController extends Controller {
\OC_Util::tearDownFS();
+ $isForcesave = $status === self::TrackerStatus_ForceSave || $status === self::TrackerStatus_CorruptedForceSave;
+
// author of the latest changes
$userId = $this->parseUserId($users[0]);
+ if ($isForcesave
+ && $forcesavetype === 1
+ && !empty($actions)) {
+ // the user who clicked Save
+ $userId = $this->parseUserId($actions[0]["userid"]);
+ }
+
$user = $this->userManager->get($userId);
if (!empty($user)) {
\OC_User::setUserId($userId);
@@ -503,8 +514,6 @@ class CallbackController extends Controller {
$prevIsForcesave = KeyManager::wasForcesave($fileId);
- $isForcesave = $status === self::TrackerStatus_ForceSave || $status === self::TrackerStatus_CorruptedForceSave;
-
if ($file->getStorage()->instanceOfStorage(SharingExternalStorage::class)) {
$isLock = KeyManager::lockFederatedKey($file, $isForcesave, null);
if ($isForcesave && !$isLock) {
diff --git a/controller/editorcontroller.php b/controller/editorcontroller.php
index 2b6f4e5..55581aa 100644
--- a/controller/editorcontroller.php
+++ b/controller/editorcontroller.php
@@ -21,6 +21,7 @@ namespace OCA\Onlyoffice\Controller;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\ContentSecurityPolicy;
+use OCP\AppFramework\Http\DataDownloadResponse;
use OCP\AppFramework\Http\RedirectResponse;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\AppFramework\Http\Template\PublicTemplateResponse;
@@ -34,11 +35,14 @@ use OCP\IL10N;
use OCP\ILogger;
use OCP\IRequest;
use OCP\ISession;
+use OCP\ITags;
+use OCP\ITagManager;
use OCP\IURLGenerator;
use OCP\IUser;
use OCP\IUserManager;
use OCP\IUserSession;
use OCP\Share\IManager;
+use OCP\Share\IShare;
use OCA\Files\Helper;
use OCA\Files_Versions\Versions\IVersionManager;
@@ -126,6 +130,20 @@ class EditorController extends Controller {
private $versionManager;
/**
+ * Share manager
+ *
+ * @var IManager
+ */
+ private $shareManager;
+
+ /**
+ * Tag manager
+ *
+ * @var ITagManager
+ */
+ private $tagManager;
+
+ /**
* 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";
@@ -143,6 +161,7 @@ class EditorController extends Controller {
* @param Crypt $crypt - hash generator
* @param IManager $shareManager - Share manager
* @param ISession $ISession - Session
+ * @param ITagManager $tagManager - Tag manager
*/
public function __construct($AppName,
IRequest $request,
@@ -155,7 +174,8 @@ class EditorController extends Controller {
AppConfig $config,
Crypt $crypt,
IManager $shareManager,
- ISession $session
+ ISession $session,
+ ITagManager $tagManager
) {
parent::__construct($AppName, $request);
@@ -167,6 +187,8 @@ class EditorController extends Controller {
$this->logger = $logger;
$this->config = $config;
$this->crypt = $crypt;
+ $this->shareManager = $shareManager;
+ $this->tagManager = $tagManager;
if (\OC::$server->getAppManager()->isInstalled("files_versions")) {
try {
@@ -231,7 +253,7 @@ class EditorController extends Controller {
$this->logger->error("Folder for file creation was not found: $dir", ["app" => $this->appName]);
return ["error" => $this->trans->t("The required folder was not found")];
}
- if (!$folder->isCreatable()) {
+ if (!($folder->isCreatable() && $folder->isUpdateable())) {
$this->logger->error("Folder for file creation without permission: $dir", ["app" => $this->appName]);
return ["error" => $this->trans->t("You don't have enough permission to create")];
}
@@ -239,7 +261,10 @@ class EditorController extends Controller {
if (empty($templateId)) {
$template = TemplateManager::GetEmptyTemplate($name);
} else {
- $template = TemplateManager::GetTemplate($templateId);
+ $templateFile = TemplateManager::GetTemplate($templateId);
+ if ($templateFile !== null) {
+ $template = $templateFile->getContent();
+ }
}
if (!$template) {
@@ -273,16 +298,17 @@ class EditorController extends Controller {
*
* @param string $name - file name
* @param string $dir - folder path
+ * @param string $templateId - file identifier
*
* @return TemplateResponse|RedirectResponse
*
* @NoAdminRequired
* @NoCSRFRequired
*/
- public function createNew($name, $dir) {
+ public function createNew($name, $dir, $templateId = null) {
$this->logger->debug("Create from editor: $name in $dir", ["app" => $this->appName]);
- $result = $this->create($name, $dir);
+ $result = $this->create($name, $dir, $templateId);
if (isset($result["error"])) {
return $this->renderError($result["error"]);
}
@@ -292,6 +318,128 @@ class EditorController extends Controller {
}
/**
+ * Get users
+ *
+ * @return array
+ *
+ * @NoAdminRequired
+ * @NoCSRFRequired
+ */
+ public function users() {
+ $this->logger->debug("Search users", ["app" => $this->appName]);
+ $result = [];
+
+ if (!$this->config->isUserAllowedToUse()) {
+ return $result;
+ }
+
+ $userId = $this->userSession->getUser()->getUID();
+ $users = $this->userManager->search("");
+ foreach ($users as $user) {
+ $email = $user->getEMailAddress();
+ if ($user->getUID() != $userId
+ && !empty($email)) {
+ array_push($result, [
+ "email" => $email,
+ "name" => $user->getDisplayName()
+ ]);
+ }
+ }
+
+ return $result;
+ }
+
+ /**
+ * Send notify about mention
+ *
+ * @param int $fileId - file identifier
+ * @param string $anchor - the anchor on target content
+ * @param string $comment - comment
+ * @param array $emails - emails array to whom to send notify
+ *
+ * @return array
+ *
+ * @NoAdminRequired
+ * @NoCSRFRequired
+ */
+ public function mention($fileId, $anchor, $comment, $emails) {
+ $this->logger->debug("mention: from $fileId to " . json_encode($emails), ["app" => $this->appName]);
+
+ if (!$this->config->isUserAllowedToUse()) {
+ return ["error" => $this->trans->t("Not permitted")];
+ }
+
+ if (empty($emails)) {
+ return ["error" => $this->trans->t("Failed to send notification")];
+ }
+
+ $recipientIds = [];
+ foreach ($emails as $email) {
+ $recipients = $this->userManager->getByEmail($email);
+ foreach ($recipients as $recipient) {
+ $recipientId = $recipient->getUID();
+ if (!in_array($recipientId, $recipientIds)) {
+ array_push($recipientIds, $recipientId);
+ }
+ }
+ }
+
+ $user = $this->userSession->getUser();
+ $userId = null;
+ if (!empty($user)) {
+ $userId = $user->getUID();
+ }
+
+ list ($file, $error, $share) = $this->getFile($userId, $fileId);
+ if (isset($error)) {
+ $this->logger->error("Mention: $fileId $error", ["app" => $this->appName]);
+ return ["error" => $this->trans->t("Failed to send notification")];
+ }
+
+ $notificationManager = \OC::$server->getNotificationManager();
+ $notification = $notificationManager->createNotification();
+ $notification->setApp($this->appName)
+ ->setDateTime(new \DateTime())
+ ->setObject("mention", $comment)
+ ->setSubject("mention_info", [
+ "notifierId" => $userId,
+ "fileId" => $file->getId(),
+ "fileName" => $file->getName(),
+ "anchor" => $anchor
+ ]);
+
+ $canShare = ($file->getPermissions() & Constants::PERMISSION_SHARE) === Constants::PERMISSION_SHARE;
+
+ $accessList = $this->shareManager->getAccessList($file);
+
+ foreach ($recipientIds as $recipientId) {
+ if (!in_array($recipientId, $accessList["users"])) {
+ if (!$canShare) {
+ continue;
+ }
+
+ $share = $this->shareManager->newShare();
+ $share->setNode($file)
+ ->setShareType(IShare::TYPE_USER)
+ ->setSharedBy($userId)
+ ->setSharedWith($recipientId)
+ ->setShareOwner($userId)
+ ->setPermissions(Constants::PERMISSION_READ);
+
+ $this->shareManager->createShare($share);
+
+ $this->logger->debug("mention: share $fileId to $recipientId", ["app" => $this->appName]);
+ }
+
+ $notification->setUser($recipientId);
+
+ $notificationManager->notify($notification);
+ }
+
+ return ["message" => $this->trans->t("Notification sent successfully")];
+ }
+
+ /**
* Conversion file to Office Open XML format
*
* @param integer $fileId - file identifier
@@ -362,7 +510,7 @@ class EditorController extends Controller {
}
$folder = $file->getParent();
- if (!$folder->isCreatable()) {
+ if (!($folder->isCreatable() && $folder->isUpdateable())) {
$folder = $this->root->getUserFolder($userId);
}
@@ -418,7 +566,7 @@ class EditorController extends Controller {
$this->logger->error("Folder for saving file was not found: $dir", ["app" => $this->appName]);
return ["error" => $this->trans->t("The required folder was not found")];
}
- if (!$folder->isCreatable()) {
+ if (!($folder->isCreatable() && $folder->isUpdateable())) {
$this->logger->error("Folder for saving file without permission: $dir", ["app" => $this->appName]);
return ["error" => $this->trans->t("You don't have enough permission to create")];
}
@@ -464,6 +612,10 @@ class EditorController extends Controller {
public function history($fileId, $shareToken = null) {
$this->logger->debug("Request history for: $fileId", ["app" => $this->appName]);
+ if (empty($shareToken) && !$this->config->isUserAllowedToUse()) {
+ return ["error" => $this->trans->t("Not permitted")];
+ }
+
$history = [];
$user = $this->userSession->getUser();
@@ -581,6 +733,10 @@ class EditorController extends Controller {
public function version($fileId, $version, $shareToken = null) {
$this->logger->debug("Request version for: $fileId ($version)", ["app" => $this->appName]);
+ if (empty($shareToken) && !$this->config->isUserAllowedToUse()) {
+ return ["error" => $this->trans->t("Not permitted")];
+ }
+
$version = empty($version) ? null : $version;
$user = $this->userSession->getUser();
@@ -711,6 +867,84 @@ class EditorController extends Controller {
}
/**
+ * Download method
+ *
+ * @param int $fileId - file identifier
+ * @param string $toExtension - file extension to download
+ * @param bool $template - file extension to download
+ *
+ * @return DataDownloadResponse|TemplateResponse
+ *
+ * @NoAdminRequired
+ * @NoCSRFRequired
+ */
+ public function download($fileId, $toExtension = null, $template = false) {
+ $this->logger->debug("Download: $fileId $toExtension", ["app" => $this->appName]);
+
+ if (!$this->config->isUserAllowedToUse()) {
+ return $this->renderError($this->trans->t("Not permitted"));
+ }
+
+ if ($template) {
+ $templateFile = TemplateManager::GetTemplate($fileId);
+ if (empty($templateFile)) {
+ $this->logger->info("Download: template not found: $fileId", ["app" => $this->appName]);
+ return $this->renderError($this->trans->t("File not found"));
+ }
+
+ $file = $templateFile;
+ } else {
+ $user = $this->userSession->getUser();
+ $userId = null;
+ if (!empty($user)) {
+ $userId = $user->getUID();
+ }
+
+ list ($file, $error, $share) = $this->getFile($userId, $fileId);
+
+ if (isset($error)) {
+ $this->logger->error("Download: $fileId $error", ["app" => $this->appName]);
+ return $this->renderError($error);
+ }
+ }
+
+ $fileName = $file->getName();
+ $ext = strtolower(pathinfo($fileName, PATHINFO_EXTENSION));
+ $toExtension = strtolower($toExtension);
+
+ if ($toExtension === null
+ || $ext === $toExtension
+ || $template) {
+ return new DataDownloadResponse($file->getContent(), $fileName, $file->getMimeType());
+ }
+
+ $newFileUri = null;
+ $documentService = new DocumentService($this->trans, $this->config);
+ $key = $this->fileUtility->getKey($file);
+ $fileUrl = $this->getUrl($file, $user);
+ try {
+ $newFileUri = $documentService->GetConvertedUri($fileUrl, $ext, $toExtension, $key);
+ } catch (\Exception $e) {
+ $this->logger->logException($e, ["message" => "GetConvertedUri: " . $file->getId(), "app" => $this->appName]);
+ return $this->renderError($e->getMessage());
+ }
+
+ try {
+ $newData = $documentService->Request($newFileUri);
+ } catch (\Exception $e) {
+ $this->logger->logException($e, ["message" => "Failed to download converted file", "app" => $this->appName]);
+ return $this->renderError($this->trans->t("Failed to download converted file"));
+ }
+
+ $fileNameWithoutExt = substr($fileName, 0, strlen($fileName) - strlen($ext) - 1);
+ $newFileName = $fileNameWithoutExt . "." . $toExtension;
+
+ $formats = $this->config->FormatsSetting();
+
+ return new DataDownloadResponse($newData, $newFileName, $formats[$toExtension]["mime"]);
+ }
+
+ /**
* Print editor section
*
* @param integer $fileId - file identifier
@@ -719,13 +953,14 @@ class EditorController extends Controller {
* @param integer $version - file version
* @param bool $inframe - open in frame
* @param bool $template - file is template
+ * @param string $anchor - anchor for file content
*
* @return TemplateResponse|RedirectResponse
*
* @NoAdminRequired
* @NoCSRFRequired
*/
- public function index($fileId, $filePath = null, $shareToken = null, $version = 0, $inframe = false, $template = false) {
+ public function index($fileId, $filePath = null, $shareToken = null, $version = 0, $inframe = false, $template = false, $anchor = null) {
$this->logger->debug("Open: $fileId ($version) $filePath ", ["app" => $this->appName]);
$isLoggedIn = $this->userSession->isLoggedIn();
@@ -755,7 +990,8 @@ class EditorController extends Controller {
"directToken" => null,
"version" => $version,
"isTemplate" => $template,
- "inframe" => false
+ "inframe" => false,
+ "anchor" => $anchor
];
$response = null;
@@ -808,19 +1044,6 @@ class EditorController extends Controller {
}
/**
- * Get template loader Onlyoffice
- *
- * @return TemplateResponse
- *
- * @NoAdminRequired
- * @NoCSRFRequired
- * @PublicPage
- */
- public function loader() {
- return new TemplateResponse($this->appName, "loader", [], "plain");
- }
-
- /**
* Collecting the file parameters for the document service
*
* @param integer $fileId - file identifier
@@ -832,13 +1055,14 @@ class EditorController extends Controller {
* @param bool $desktop - desktop label
* @param string $guestName - nickname not logged user
* @param bool $template - file is template
+ * @param string $anchor - anchor for file content
*
* @return array
*
* @NoAdminRequired
* @PublicPage
*/
- public function config($fileId, $filePath = null, $shareToken = null, $directToken = null, $version = 0, $inframe = false, $desktop = false, $guestName = null, $template = false) {
+ public function config($fileId, $filePath = null, $shareToken = null, $directToken = null, $version = 0, $inframe = false, $desktop = false, $guestName = null, $template = false, $anchor = null) {
if (!empty($directToken)) {
list ($directData, $error) = $this->crypt->ReadHash($directToken);
@@ -885,7 +1109,7 @@ class EditorController extends Controller {
$fileName = $file->getName();
$ext = strtolower(pathinfo($fileName, PATHINFO_EXTENSION));
- $format = $this->config->FormatsSetting()[$ext];
+ $format = !empty($ext) ? $this->config->FormatsSetting()[$ext] : null;
if (!isset($format)) {
$this->logger->info("Format is not supported for editing: $fileName", ["app" => $this->appName]);
return ["error" => $this->trans->t("Format is not supported")];
@@ -1025,9 +1249,32 @@ class EditorController extends Controller {
$createUrl = $this->urlGenerator->linkToRouteAbsolute($this->appName . ".editor.create_new", $createParam);
$params["editorConfig"]["createUrl"] = urldecode($createUrl);
+
+ $templatesList = TemplateManager::GetGlobalTemplates($file->getMimeType());
+ if (!empty($templatesList)) {
+ $templates = [];
+ foreach($templatesList as $templateItem) {
+ $createParam["templateId"] = $templateItem->getId();
+ $createParam["name"] = $templateItem->getName();
+
+ array_push($templates, [
+ "image" => "",
+ "title" => $templateItem->getName(),
+ "url" => urldecode($this->urlGenerator->linkToRouteAbsolute($this->appName . ".editor.create_new", $createParam))
+ ]);
+ }
+
+ $params["editorConfig"]["templates"] = $templates;
+ }
+
+ if (!$template) {
+ $params["document"]["info"]["favorite"] = $this->isFavorite($fileId);
+ }
+ $params["_file_path"] = $userFolder->getRelativePath($file->getPath());
}
- if ($folderLink !== null) {
+ if ($folderLink !== null
+ && $this->config->GetSystemValue($this->config->_customization_goback) !== false) {
$params["editorConfig"]["customization"]["goback"] = [
"url" => $folderLink
];
@@ -1055,6 +1302,16 @@ class EditorController extends Controller {
$params["editorConfig"]["tenant"] = $this->config->GetSystemValue("instanceid", true);
}
+ if ($anchor !== null) {
+ try {
+ $actionLink = json_decode($anchor, true);
+
+ $params["editorConfig"]["actionLink"] = $actionLink;
+ } catch (\Exception $e) {
+ $this->logger->logException($e, ["message" => "Config: $fileId decode $anchor", "app" => $this->appName]);
+ }
+ }
+
if (!empty($this->config->GetDocumentServerSecret())) {
$token = \Firebase\JWT\JWT::encode($params, $this->config->GetDocumentServerSecret());
$params["token"] = $token;
@@ -1371,6 +1628,22 @@ class EditorController extends Controller {
}
/**
+ * Check file favorite
+ *
+ * @param integer $fileId - file identifier
+ *
+ * @return bool
+ */
+ private function isFavorite($fileId) {
+ $currentTags = $this->tagManager->load("files")->getTagsForObjects([$fileId]);
+ if ($currentTags) {
+ return in_array(ITags::TAG_FAVORITE, $currentTags[$fileId]);
+ }
+
+ return false;
+ }
+
+ /**
* Print error page
*
* @param string $error - error message
diff --git a/controller/settingscontroller.php b/controller/settingscontroller.php
index a99d768..b7c3b65 100644
--- a/controller/settingscontroller.php
+++ b/controller/settingscontroller.php
@@ -154,7 +154,7 @@ class SettingsController extends Controller {
) {
$error = null;
if (!$this->config->SelectDemo($demo === true)) {
- $error = $this->trans->t("The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Document Server.");
+ $error = $this->trans->t("The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server.");
}
if ($demo !== true) {
$this->config->SetDocumentServerUrl($documentserver);
@@ -294,6 +294,18 @@ class SettingsController extends Controller {
* @return array
*/
private function GetGlobalTemplates() {
- return TemplateManager::GetGlobalTemplates();
+ $templates = [];
+ $templatesList = TemplateManager::GetGlobalTemplates();
+
+ foreach ($templatesList as $templatesItem) {
+ $template = [
+ "id" => $templatesItem->getId(),
+ "name" => $templatesItem->getName(),
+ "type" => TemplateManager::GetTypeTemplate($templatesItem->getMimeType())
+ ];
+ array_push($templates, $template);
+ }
+
+ return $templates;
}
}
diff --git a/controller/templatecontroller.php b/controller/templatecontroller.php
index d3d704f..57322f8 100644
--- a/controller/templatecontroller.php
+++ b/controller/templatecontroller.php
@@ -20,8 +20,13 @@
namespace OCA\Onlyoffice\Controller;
use OCP\AppFramework\Controller;
+use OCP\AppFramework\Http;
+use OCP\AppFramework\Http\DataResponse;
+use OCP\AppFramework\Http\FileDisplayResponse;
+use OCP\Files\NotFoundException;
use OCP\IL10N;
use OCP\ILogger;
+use OCP\IPreview;
use OCP\IRequest;
use OCA\Onlyoffice\TemplateManager;
@@ -46,6 +51,13 @@ class TemplateController extends Controller {
private $logger;
/**
+ * Preview manager
+ *
+ * @var IPreview
+ */
+ private $preview;
+
+ /**
* @param string $AppName - application name
* @param ILogger $logger - logger
* @param IL10N $trans - l10n service
@@ -53,25 +65,37 @@ class TemplateController extends Controller {
public function __construct($AppName,
IRequest $request,
IL10N $trans,
- ILogger $logger
+ ILogger $logger,
+ IPreview $preview
) {
parent::__construct($AppName, $request);
$this->trans = $trans;
$this->logger = $logger;
+ $this->preview = $preview;
}
/**
* Get templates
*
- * @param string $type - template format type
- *
* @return array
*
* @NoAdminRequired
*/
- public function GetTemplates($type = null) {
- return TemplateManager::GetGlobalTemplates($type);
+ public function GetTemplates() {
+ $templatesList = TemplateManager::GetGlobalTemplates();
+
+ $templates = [];
+ foreach ($templatesList as $templatesItem) {
+ $template = [
+ "id" => $templatesItem->getId(),
+ "name" => $templatesItem->getName(),
+ "type" => TemplateManager::GetTypeTemplate($templatesItem->getMimeType())
+ ];
+ array_push($templates, $template);
+ }
+
+ return $templates;
}
/**
@@ -150,4 +174,43 @@ class TemplateController extends Controller {
$this->logger->debug("Template: deleted " . $templates[0]->getName(), ["app" => $this->appName]);
return [];
}
+
+ /**
+ * Returns the origin document key for editor
+ *
+ * @param string $fileId - file identifier
+ * @param int $x - x
+ * @param int $y - y
+ * @param bool $crop - crop
+ * @param string $mode - mode
+ *
+ * @return DataResponse|FileDisplayResponse
+ *
+ * @NoAdminRequired
+ * @NoCSRFRequired
+ */
+ public function preview($fileId, $x = 256, $y = 256, $crop = false, $mode = IPreview::MODE_FILL) {
+ if (empty($fileId) || $x === 0 || $y === 0) {
+ return new DataResponse([], Http::STATUS_BAD_REQUEST);
+ }
+
+ $template = TemplateManager::GetTemplate($fileId);
+ if (empty($template)) {
+ $this->logger->error("Template not found: $fileId", ["app" => $this->appName]);
+ return new DataResponse([], Http::STATUS_NOT_FOUND);
+ }
+
+ try {
+ $f = $this->preview->getPreview($template, $x, $y, $crop, $mode);
+ $response = new FileDisplayResponse($f, Http::STATUS_OK, ["Content-Type" => $f->getMimeType()]);
+ $response->cacheFor(3600 * 24);
+
+ return $response;
+ } catch (NotFoundException $e) {
+ return new DataResponse([], Http::STATUS_NOT_FOUND);
+ } catch (\InvalidArgumentException $e) {
+ return new DataResponse([], Http::STATUS_BAD_REQUEST);
+ }
+
+ }
} \ No newline at end of file
diff --git a/css/main.css b/css/main.css
index cf41550..1b8e6fd 100644
--- a/css/main.css
+++ b/css/main.css
@@ -26,7 +26,8 @@
background-image: url("../img/new-pptx.svg");
}
.icon-onlyoffice-open,
-.icon-onlyoffice-convert {
+.icon-onlyoffice-convert,
+.icon-onlyoffice-download {
background-image: url("../img/app-dark.svg");
}
@@ -86,3 +87,10 @@ body.onlyoffice-inline #content #app-content {
.AscDesktopEditor #body-user #gallery-button {
display: none;
}
+.onlyoffice-download-container {
+ display: flex;
+}
+.onlyoffice-download-container p {
+ margin-right: 10px;
+ padding-top: 10px;
+}
diff --git a/css/template.css b/css/template.css
index d86bab2..b7b471e 100644
--- a/css/template.css
+++ b/css/template.css
@@ -29,23 +29,24 @@
}
.onlyoffice-template-item img,
.onlyoffice-template-delete,
-.onlyoffice-template-preview,
+.onlyoffice-template-download,
.onlyoffice-template-item p {
display: inline-block;
margin-right: 10px;
cursor: pointer;
}
.onlyoffice-template-delete,
-.onlyoffice-template-preview {
+.onlyoffice-template-download {
margin-bottom: -4px;
}
.onlyoffice-template-delete {
opacity: .6;
}
-.onlyoffice-template-preview {
- background-image: url("../../../core/img/actions/toggle.svg");
+.onlyoffice-template-download {
+ background-image: url("../../../core/img/actions/download.svg");
height: 16px;
width: 16px;
+ opacity: .6;
}
.onlyoffice-template-item img {
float: left;
@@ -57,4 +58,7 @@
}
.onlyoffice-template-item input:checked + label {
color: rgb(55, 137, 243);
+}
+.section-onlyoffice-templates input {
+ display: none;
} \ No newline at end of file
diff --git a/js/desktop.js b/js/desktop.js
index 2c2f0da..f7ebc8c 100644
--- a/js/desktop.js
+++ b/js/desktop.js
@@ -25,6 +25,12 @@
}
OCA.Onlyoffice.Desktop = true;
+
+ if (location.href.indexOf(_oc_appswebroots.dashboard) !== -1) {
+ location.href = location.href.split(_oc_appswebroots.dashboard)[0] + _oc_appswebroots.files;
+ return;
+ }
+
$("html").addClass("AscDesktopEditor");
var domain = new RegExp("^http(s)?:\/\/[^\/]+").exec(location)[0];
diff --git a/js/editor.js b/js/editor.js
index 4729fa0..062af8f 100644
--- a/js/editor.js
+++ b/js/editor.js
@@ -40,6 +40,7 @@
OCA.Onlyoffice.template = $("#iframeEditor").data("template");
OCA.Onlyoffice.inframe = !!$("#iframeEditor").data("inframe");
OCA.Onlyoffice.filePath = $("#iframeEditor").data("path");
+ OCA.Onlyoffice.anchor = $("#iframeEditor").attr("data-anchor");
var guestName = localStorage.getItem("nick");
if (!OCA.Onlyoffice.fileId && !OCA.Onlyoffice.shareToken && !directToken) {
displayError(t(OCA.Onlyoffice.AppName, "FileId is empty"));
@@ -77,6 +78,9 @@
if (guestName) {
params.push("guestName=" + encodeURIComponent(guestName));
}
+ if (OCA.Onlyoffice.anchor) {
+ params.push("anchor=" + encodeURIComponent(OCA.Onlyoffice.anchor));
+ }
if (OCA.Onlyoffice.inframe || directToken) {
params.push("inframe=true");
@@ -128,18 +132,22 @@
config.events = {
"onDocumentStateChange": setPageTitle,
- "onRequestHistory": OCA.Onlyoffice.onRequestHistory,
- "onRequestHistoryData": OCA.Onlyoffice.onRequestHistoryData,
"onDocumentReady": OCA.Onlyoffice.onDocumentReady,
+ "onMakeActionLink": OCA.Onlyoffice.onMakeActionLink,
};
- if (!OCA.Onlyoffice.version) {
- config.events.onRequestHistoryClose = OCA.Onlyoffice.onRequestHistoryClose;
+ if (!OCA.Onlyoffice.template) {
+ config.events.onRequestHistory = OCA.Onlyoffice.onRequestHistory;
+ config.events.onRequestHistoryData = OCA.Onlyoffice.onRequestHistoryData;
+
+ if (!OCA.Onlyoffice.version) {
+ config.events.onRequestHistoryClose = OCA.Onlyoffice.onRequestHistoryClose;
+ }
}
if (config.editorConfig.tenant) {
config.events.onAppReady = function () {
- OCA.Onlyoffice.docEditor.showMessage(t(OCA.Onlyoffice.AppName, "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data."));
+ OCA.Onlyoffice.docEditor.showMessage(t(OCA.Onlyoffice.AppName, "You are using public demo ONLYOFFICE Docs server. Please do not store private sensitive data."));
};
}
@@ -149,6 +157,13 @@
config.events.onRequestInsertImage = OCA.Onlyoffice.onRequestInsertImage;
config.events.onRequestMailMergeRecipients = OCA.Onlyoffice.onRequestMailMergeRecipients;
config.events.onRequestCompareFile = OCA.Onlyoffice.onRequestCompareFile;
+ config.events.onRequestUsers = OCA.Onlyoffice.onRequestUsers;
+ config.events.onRequestSendNotify = OCA.Onlyoffice.onRequestSendNotify;
+ config.events.onMetaChange = OCA.Onlyoffice.onMetaChange;
+
+ if (!OCA.Onlyoffice.filePath) {
+ OCA.Onlyoffice.filePath = config._file_path;
+ }
}
if (OCA.Onlyoffice.directEditor || OCA.Onlyoffice.inframe) {
@@ -257,10 +272,12 @@
url: event.data.url
};
- var arrayPath = OCA.Onlyoffice.filePath.split("/");
- arrayPath.pop();
- arrayPath.shift();
- var currentDir = "/" + arrayPath.join("/");
+ if (OCA.Onlyoffice.filePath) {
+ var arrayPath = OCA.Onlyoffice.filePath.split("/");
+ arrayPath.pop();
+ arrayPath.shift();
+ saveData.dir = "/" + arrayPath.join("/");
+ }
if (OCA.Onlyoffice.inframe) {
window.parent.postMessage({
@@ -276,9 +293,9 @@
},
false,
"httpd/unix-directory",
- false,
+ true,
OC.dialogs.FILEPICKER_TYPE_CHOOSE,
- currentDir);
+ saveData.dir);
}
};
@@ -314,7 +331,11 @@
},
"*");
} else {
- OC.dialogs.filepicker(t(OCA.Onlyoffice.AppName, "Insert image"), OCA.Onlyoffice.editorInsertImage, false, imageMimes);
+ OC.dialogs.filepicker(t(OCA.Onlyoffice.AppName, "Insert image"),
+ OCA.Onlyoffice.editorInsertImage,
+ false,
+ imageMimes,
+ true);
}
};
@@ -349,7 +370,11 @@
},
"*");
} else {
- OC.dialogs.filepicker(t(OCA.Onlyoffice.AppName, "Select recipients"), OCA.Onlyoffice.editorSetRecipient, false, recipientMimes);
+ OC.dialogs.filepicker(t(OCA.Onlyoffice.AppName, "Select recipients"),
+ OCA.Onlyoffice.editorSetRecipient,
+ false,
+ recipientMimes,
+ true);
}
};
@@ -401,7 +426,11 @@
},
"*");
} else {
- OC.dialogs.filepicker(t(OCA.Onlyoffice.AppName, "Select file to compare"), OCA.Onlyoffice.editorSetRevised, false, revisedMimes);
+ OC.dialogs.filepicker(t(OCA.Onlyoffice.AppName, "Select file to compare"),
+ OCA.Onlyoffice.editorSetRevised,
+ false,
+ revisedMimes,
+ true);
}
};
@@ -420,6 +449,84 @@
});
};
+ OCA.Onlyoffice.onMakeActionLink = function (event) {
+ var url = location.href;
+ if (event && event.data) {
+ var indexAnchor = url.indexOf("#");
+ if (indexAnchor != -1) {
+ url = url.substring(0, indexAnchor);
+ }
+
+ var data = JSON.stringify(event.data);
+ data = "anchor=" + encodeURIComponent(data);
+
+ var inframeRegex = /inframe=([^&]*&?)/g;
+ if (inframeRegex.test(url)) {
+ url = url.replace(inframeRegex, data);
+ }
+
+ var anchorRegex = /anchor=([^&]*)/g;
+ if (anchorRegex.test(url)) {
+ url = url.replace(anchorRegex, data);
+ } else {
+ url += (url.indexOf("?") == -1) ? "?" : "&";
+ url += data;
+ }
+ }
+
+ OCA.Onlyoffice.docEditor.setActionLink(url);
+ };
+
+ OCA.Onlyoffice.onRequestUsers = function (event) {
+ $.get(OC.generateUrl("apps/" + OCA.Onlyoffice.AppName + "/ajax/users"),
+ function onSuccess(response) {
+ OCA.Onlyoffice.docEditor.setUsers({
+ "users": response
+ });
+ });
+ };
+
+ OCA.Onlyoffice.onRequestSendNotify = function (event) {
+ var actionLink = event.data.actionLink;
+ var comment = event.data.message;
+ var emails = event.data.emails;
+
+ var fileId = OCA.Onlyoffice.fileId;
+
+ $.post(OC.generateUrl("apps/" + OCA.Onlyoffice.AppName + "/ajax/mention"),
+ {
+ fileId: fileId,
+ anchor: JSON.stringify(actionLink),
+ comment: comment,
+ emails: emails
+ },
+ function onSuccess(response) {
+ if (response.error) {
+ OCP.Toast.error(response.error);
+ return;
+ }
+
+ OCP.Toast.success(response.message);
+ });
+ };
+
+ OCA.Onlyoffice.onMetaChange = function (event) {
+ if (event.data.favorite !== undefined) {
+ $.ajax({
+ url: OC.generateUrl("apps/files/api/v1/files" + OC.encodePath(OCA.Onlyoffice.filePath)),
+ type: "post",
+ data: JSON.stringify({
+ tags: event.data.favorite ? [OC.TAG_FAVORITE] : []
+ }),
+ contentType: "application/json",
+ dataType: "json",
+ success: function(){
+ OCA.Onlyoffice.docEditor.setFavorite(event.data.favorite);
+ }
+ });
+ }
+ }
+
OCA.Onlyoffice.InitEditor();
})(jQuery, OCA);
diff --git a/js/listener.js b/js/listener.js
index a88c626..0e5dbc2 100644
--- a/js/listener.js
+++ b/js/listener.js
@@ -38,11 +38,6 @@
OCA.Onlyoffice.onRequestSaveAs = function (saveData) {
- var arrayPath = OCA.Viewer.file.split("/");
- arrayPath.pop();
- arrayPath.shift();
- var currentDir = "/" + arrayPath.join("/");
-
OC.dialogs.filepicker(t(OCA.Onlyoffice.AppName, "Save as"),
function (fileDir) {
saveData.dir = fileDir;
@@ -50,30 +45,33 @@
},
false,
"httpd/unix-directory",
- false,
+ true,
OC.dialogs.FILEPICKER_TYPE_CHOOSE,
- currentDir);
+ saveData.dir);
};
OCA.Onlyoffice.onRequestInsertImage = function (imageMimes) {
OC.dialogs.filepicker(t(OCA.Onlyoffice.AppName, "Insert image"),
$(OCA.Onlyoffice.frameSelector)[0].contentWindow.OCA.Onlyoffice.editorInsertImage,
false,
- imageMimes);
+ imageMimes,
+ true);
};
OCA.Onlyoffice.onRequestMailMergeRecipients = function (recipientMimes) {
OC.dialogs.filepicker(t(OCA.Onlyoffice.AppName, "Select recipients"),
$(OCA.Onlyoffice.frameSelector)[0].contentWindow.OCA.Onlyoffice.editorSetRecipient,
false,
- recipientMimes);
+ recipientMimes,
+ true);
};
OCA.Onlyoffice.onRequestCompareFile = function (revisedMimes) {
OC.dialogs.filepicker(t(OCA.Onlyoffice.AppName, "Select file to compare"),
$(OCA.Onlyoffice.frameSelector)[0].contentWindow.OCA.Onlyoffice.editorSetRevised,
false,
- revisedMimes);
+ revisedMimes,
+ true);
};
OCA.Onlyoffice.onDocumentReady = function (documentType) {
diff --git a/js/main.js b/js/main.js
index 9920262..be7dba0 100644
--- a/js/main.js
+++ b/js/main.js
@@ -26,12 +26,13 @@
}, OCA.Onlyoffice);
OCA.Onlyoffice.setting = {};
+ OCA.Onlyoffice.mobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|Opera Mini/i.test(navigator.userAgent);
OCA.Onlyoffice.CreateFile = function (name, fileList, templateId) {
var dir = fileList.getCurrentDirectory();
- if (!OCA.Onlyoffice.setting.sameTab || OCA.Onlyoffice.Desktop) {
- $loaderUrl = OCA.Onlyoffice.Desktop ? "" : OC.generateUrl("apps/" + OCA.Onlyoffice.AppName + "/loader");
+ if (!OCA.Onlyoffice.setting.sameTab || OCA.Onlyoffice.mobile || OCA.Onlyoffice.Desktop) {
+ $loaderUrl = OCA.Onlyoffice.Desktop ? "" : OC.filePath(OCA.Onlyoffice.AppName, "templates", "loader.html");
var winEditor = window.open($loaderUrl);
}
@@ -95,7 +96,7 @@
if (winEditor && winEditor.location) {
winEditor.location.href = url;
- } else if (!OCA.Onlyoffice.setting.sameTab || OCA.Onlyoffice.Desktop) {
+ } else if (!OCA.Onlyoffice.setting.sameTab || OCA.Onlyoffice.mobile || OCA.Onlyoffice.Desktop) {
winEditor = window.open(url, "_blank");
} else if ($("#isPublic").val() === "1" && !$("#filestable").length) {
location.href = url;
@@ -136,9 +137,9 @@
OCA.Onlyoffice.OpenShareDialog = function () {
if (OCA.Onlyoffice.context) {
- if (!$("#app-sidebar, #app-sidebar-vue").is(":visible")) {
- OCA.Onlyoffice.context.fileList.showDetailsView(OCA.Onlyoffice.context.fileName, "sharing");
- OC.Apps.showAppSidebar();
+ if (!$("#app-sidebar-vue").is(":visible")) {
+ OCA.Files.Sidebar.open(OCA.Onlyoffice.context.dir + "/" + OCA.Onlyoffice.context.fileName);
+ OCA.Files.Sidebar.setActiveTab("sharing");
} else {
OCA.Files.Sidebar.close();
}
@@ -177,10 +178,71 @@
fileList.add(response, { animate: true });
}
- OCP.Toast.success(t(OCA.Onlyoffice.AppName, "File created"));
+ OCP.Toast.success(t(OCA.Onlyoffice.AppName, "File has been converted. Its content might look different."));
});
};
+ OCA.Onlyoffice.DownloadClick = function (fileName, context) {
+ $.get(OC.filePath(OCA.Onlyoffice.AppName, "templates", "downloadPicker.html"),
+ function (tmpl) {
+ var dialog = $(tmpl).octemplate({
+ dialog_name: "download-picker",
+ dialog_title: t("onlyoffice", "Download as")
+ });
+
+ $(dialog[0].querySelectorAll("p")).text(fileName + " " + t(OCA.Onlyoffice.AppName, "Convert into"));
+
+ var extension = getFileExtension(fileName);
+ var selectNode = dialog[0].querySelectorAll("select")[0];
+ var optionNodeOrigin = selectNode.querySelectorAll("option")[0];
+
+ $(optionNodeOrigin).attr("data-value", extension);
+ $(optionNodeOrigin).text(t(OCA.Onlyoffice.AppName, "Origin format"));
+
+ dialog[0].dataset.format = extension;
+ selectNode.onclick = function() {
+ dialog[0].dataset.format = $("#onlyoffice-download-select option:selected").attr("data-value");
+ }
+
+ OCA.Onlyoffice.setting.formats[extension].saveas.forEach(ext => {
+ var optionNode = optionNodeOrigin.cloneNode(true);
+
+ $(optionNode).attr("data-value", ext);
+ $(optionNode).text(ext);
+
+ selectNode.append(optionNode);
+ })
+
+ $("body").append(dialog)
+
+ $("#download-picker").ocdialog({
+ closeOnEscape: true,
+ modal: true,
+ buttons: [{
+ text: t("core", "Cancel"),
+ classes: "cancel",
+ click: function() {
+ $(this).ocdialog("close")
+ }
+ }, {
+ text: t("onlyoffice", "Download"),
+ classes: "primary",
+ click: function() {
+ var format = this.dataset.format;
+ var fileId = context.fileInfoModel.id;
+ var downloadLink = OC.generateUrl("apps/" + OCA.Onlyoffice.AppName + "/downloadas?fileId={fileId}&toExtension={toExtension}",{
+ fileId: fileId,
+ toExtension: format
+ });
+
+ location.href = downloadLink;
+ $(this).ocdialog("close")
+ }
+ }]
+ });
+ });
+ }
+
OCA.Onlyoffice.GetSettings = function (callbackSettings) {
if (OCA.Onlyoffice.setting.formats) {
@@ -230,6 +292,17 @@
actionHandler: OCA.Onlyoffice.FileConvertClick
});
}
+
+ if (config.saveas && !$("#isPublic").val()) {
+ OCA.Files.fileActions.registerAction({
+ name: "onlyofficeDownload",
+ displayName: t(OCA.Onlyoffice.AppName, "Download as"),
+ mime: config.mime,
+ permissions: OC.PERMISSION_READ,
+ iconClass: "icon-onlyoffice-download",
+ actionHandler: OCA.Onlyoffice.DownloadClick
+ });
+ }
});
}
@@ -345,6 +418,7 @@
var initPage = function () {
if ($("#isPublic").val() === "1" && !$("#filestable").length) {
+ //file by shared link
var fileName = $("#filename").val();
var extension = getFileExtension(fileName);
@@ -370,7 +444,11 @@
OCA.Onlyoffice.GetSettings(initSharedButton);
} else {
- OC.Plugins.register("OCA.Files.NewFileMenu", OCA.Onlyoffice.NewFileMenu);
+ if ($("#isPublic").val() === "1" && !!$("#filestable").length
+ || OC.config.version.split(".")[0] < 21) {
+ //folder by shared link
+ OC.Plugins.register("OCA.Files.NewFileMenu", OCA.Onlyoffice.NewFileMenu);
+ }
OCA.Onlyoffice.registerAction();
diff --git a/js/settings.js b/js/settings.js
index bfbccbd..7862da6 100644
--- a/js/settings.js
+++ b/js/settings.js
@@ -162,7 +162,7 @@
$("#onlyofficeStorageUrl").val(response.storageUrl);
$("#onlyofficeSecret").val(response.secret);
- $(".section-onlyoffice-common, .section-onlyoffice-watermark").toggleClass("onlyoffice-hide", (!response.documentserver.length && !demo) || !!response.error.length);
+ $(".section-onlyoffice-common, .section-onlyoffice-templates, .section-onlyoffice-watermark").toggleClass("onlyoffice-hide", (!response.documentserver.length && !demo) || !!response.error.length);
var versionMessage = response.version ? (" (" + t(OCA.Onlyoffice.AppName, "version") + " " + response.version + ")") : "";
@@ -351,7 +351,7 @@
});
});
- $(document).on("click", ".onlyoffice-template-preview", function (event) {
+ $(document).on("click", ".onlyoffice-template-item p", function (event) {
var item = $(event.target).parents(".onlyoffice-template-item");
var templateId = $(item).attr("data-id");
@@ -363,6 +363,18 @@
window.open(url);
});
+
+ $(document).on("click", ".onlyoffice-template-download", function (event) {
+ var item = $(event.target).parents(".onlyoffice-template-item");
+ var templateId = $(item).attr("data-id");
+
+ var downloadLink = OC.generateUrl("apps/" + OCA.Onlyoffice.AppName + "/downloadas?fileId={fileId}&template={template}",{
+ fileId: templateId,
+ template: "true"
+ });
+
+ location.href = downloadLink;
+ });
});
})(jQuery, OC);
diff --git a/l10n/bg.js b/l10n/bg.js
index 96675e0..7f9f793 100644
--- a/l10n/bg.js
+++ b/l10n/bg.js
@@ -32,18 +32,18 @@ OC.L10N.register(
"Server can't read xml" : "Невъзможно прочитане на xml файла на сървъра",
"Bad Response. Errors: " : "Неправилен отговор. Грешки:",
"Documentation" : "Документация",
- "ONLYOFFICE Document Service 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 Document услугата определя адреса на сървъра с инсталирани услуги за документи. Моля, променете '<documentserver>' адреса на сървъра в долния ред.",
- "Document Editing Service address" : "Адрес на услугата за редактиране на документи",
+ "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" : "Допълнителни настройки на сървъра",
- "Document Editing Service address for internal requests from the server" : "Адрес на услугата за редактиране на документи за вътрешни заявки към сървъра",
- "Server address for internal requests from the Document Editing Service" : "Адрес на сървъра за вътрешни заявки на услугата за редактиране на документи",
+ "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" : "Приложение по подразбиране за отваряне на следните формати",
"Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "Отваряне на файла за редактиране (според ограниченята на формата данните могат да бъдат загубени при запис във формати от списъка по-долу)",
"View details" : "Виж детайли",
"Save" : "Запази",
- "Mixed Active Content is not allowed. HTTPS address for Document Server is required." : "Смесеното активно съдържание е недопустимо. За услугата за редактиране на документи е необходимо използването на HTTPS-адрес.",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "Смесеното активно съдържание е недопустимо. За ONLYOFFICE Docs е необходимо използването на HTTPS-адрес.",
"Restrict access to editors to following groups" : "Разреши достъп до редакторите само за тези групи",
"Server settings" : "Настройки на сървъра",
"Common settings" : "Общи настройки",
@@ -58,10 +58,10 @@ OC.L10N.register(
"File saved" : "Файлът е запазен",
"Insert image" : "Вмъкване на изображение",
"Select recipients" : "Изберете получатели",
- "Connect to demo ONLYOFFICE Document Server" : "Свързване с демо ONLYOFFICE Сървър за Документи",
+ "Connect to demo ONLYOFFICE Docs server" : "Свързване с демо ONLYOFFICE Docs сървър",
"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 Document Server." : "30-дневният тестов период приключи, вече не можете да се свържете с демо ONLYOFFICE Сървър за Документи.",
- "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data." : "Използвате обществения демо ONLYOFFICE Сървър за Документи. Моля, не съхранявайте чувствителни частни данни на него.",
+ "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" : "Активиране на воден знак",
@@ -100,6 +100,15 @@ 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": "Изтегли",
+ "Convert into": "Конвертирай в",
+ "Origin format": "Формат на произход",
+ "Failed to send notification": "Неуспешно изпращане на известие",
+ "Notification sent successfully": "Успешно изпратено известие",
+ "%1\$s mentioned in the %2\$s: \"%3\$s\".": "%1\$s, споменат във %2\$s: \"%3\$s\".",
+ "{notifier} mentioned in the {file}: \"%1\$s\".": "{notifier} ha mencionado en {file}: \"%1\$s\"."
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/l10n/bg.json b/l10n/bg.json
index 7c9df9d..88f466a 100644
--- a/l10n/bg.json
+++ b/l10n/bg.json
@@ -30,18 +30,18 @@
"Server can't read xml" : "Невъзможно прочитане на xml файла на сървъра",
"Bad Response. Errors: " : "Неправилен отговор. Грешки:",
"Documentation" : "Документация",
- "ONLYOFFICE Document Service 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 Document услугата определя адреса на сървъра с инсталирани услуги за документи. Моля, променете '<documentserver>' адреса на сървъра в долния ред.",
- "Document Editing Service address" : "Адрес на услугата за редактиране на документи",
+ "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" : "Допълнителни настройки на сървъра",
- "Document Editing Service address for internal requests from the server" : "Адрес на услугата за редактиране на документи за вътрешни заявки към сървъра",
- "Server address for internal requests from the Document Editing Service" : "Адрес на сървъра за вътрешни заявки на услугата за редактиране на документи",
+ "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" : "Приложение по подразбиране за отваряне на следните формати",
"Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "Отваряне на файла за редактиране (според ограниченята на формата данните могат да бъдат загубени при запис във формати от списъка по-долу)",
"View details" : "Виж детайли",
"Save" : "Запази",
- "Mixed Active Content is not allowed. HTTPS address for Document Server is required." : "Смесеното активно съдържание е недопустимо. За услугата за редактиране на документи е необходимо използването на HTTPS-адрес.",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "Смесеното активно съдържание е недопустимо. За ONLYOFFICE Docs е необходимо използването на HTTPS-адрес.",
"Restrict access to editors to following groups" : "Разреши достъп до редакторите само за тези групи",
"Server settings" : "Настройки на сървъра",
"Common settings" : "Общи настройки",
@@ -56,10 +56,10 @@
"File saved" : "Файлът е запазен",
"Insert image" : "Вмъкване на изображение",
"Select recipients" : "Изберете получатели",
- "Connect to demo ONLYOFFICE Document Server" : "Свързване с демо ONLYOFFICE Сървър за Документи",
+ "Connect to demo ONLYOFFICE Docs server" : "Свързване с демо ONLYOFFICE Docs сървър",
"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 Document Server." : "30-дневният тестов период приключи, вече не можете да се свържете с демо ONLYOFFICE Сървър за Документи.",
- "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data." : "Използвате обществения демо ONLYOFFICE Сървър за Документи. Моля, не съхранявайте чувствителни частни данни на него.",
+ "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" : "Активиране на воден знак",
@@ -98,6 +98,15 @@
"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": "Изтегли",
+ "Convert into": "Конвертирай в",
+ "Origin format": "Формат на произход",
+ "Failed to send notification": "Неуспешно изпращане на известие",
+ "Notification sent successfully": "Успешно изпратено известие",
+ "%1$s mentioned in the %2$s: \"%3$s\".": "%1$s, споменат във %2$s: \"%3$s\".",
+ "{notifier} mentioned in the {file}: \"%1$s\".": "{notifier}, споменат във {file}: \"%1$s\"."
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
} \ No newline at end of file
diff --git a/l10n/de.js b/l10n/de.js
index 412349b..23682f8 100644
--- a/l10n/de.js
+++ b/l10n/de.js
@@ -32,18 +32,18 @@ OC.L10N.register(
"Server can't read xml" : "Server kann eine xml-Datei nicht einlesen",
"Bad Response. Errors: " : "Bad Response. Fehler:",
"Documentation" : "Dokumentation",
- "ONLYOFFICE Document Service 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 Document Servicestandort gibt die Adresse des Servers mit den installierten Dokumentdiensten an. Ändere bitte '<documenterver>' für die Serveradresse in der folgenden Zeile.",
- "Document Editing Service address" : "Serviceadresse der Dokumentbearbeitung",
+ "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 Docsstandort gibt die Adresse des Servers mit den installierten Dokumentdiensten an. Ändere bitte '<documenterver>' für die Serveradresse in der folgenden Zeile.",
+ "ONLYOFFICE Docs address" : "Die Adresse von ONLYOFFICE Docs",
"Advanced server settings" : "Erweiterte Servereinstellungen",
- "Document Editing Service address for internal requests from the server" : "Serviceadresse der Dokumentbearbeitung für interne Anforderungen vom Server",
- "Server address for internal requests from the Document Editing Service" : "Serveradresse für interne Anforderungen vom Dokumentbearbeitung-Service",
+ "ONLYOFFICE Docs address for internal requests from the server" : "Die Adresse von ONLYOFFICE Docs für interne Anforderungen vom Server",
+ "Server address for internal requests from ONLYOFFICE Docs" : "Serveradresse für interne Anforderungen vom ONLYOFFICE Docs",
"Secret key (leave blank to disable)" : "Geheimer Schlüssel (freilassen, um zu deaktivieren)",
"Open file in the same tab" : "Datei in der gleichen Registerkarte öffnen",
"The default application for opening the format" : "Die Standardanwendung zum Öffnen des Formats",
"Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "Öffne die Datei zum Bearbeiten (aufgrund von Formateinschränkungen können die Daten beim Speichern in den Formaten aus der folgenden Liste verloren gehen)",
"View details" : "Details anzeigen",
"Save" : "Speichern",
- "Mixed Active Content is not allowed. HTTPS address for Document Server is required." : "Mixed Active Content ist nicht möglich. HTTPS-Adresse für Document Server ist erforderlich.",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "Mixed Active Content ist nicht möglich. HTTPS-Adresse für ONLYOFFICE Docs ist erforderlich.",
"Restrict access to editors to following groups" : "Den Zugriff auf Editoren auf folgende Gruppen gewähren",
"Server settings" : "Servereinstellungen",
"Common settings" : "Allgemeine Einstellungen",
@@ -58,10 +58,10 @@ OC.L10N.register(
"File saved" : "Datei wurde gespeichert",
"Insert image" : "Bild einfügen",
"Select recipients" : "Empfänger auswählen",
- "Connect to demo ONLYOFFICE Document Server" : "Verbindung zu Demo ONLYOFFICE Document Server herstellen",
+ "Connect to demo ONLYOFFICE Docs server" : "Verbindung zu Demo ONLYOFFICE Docs Server herstellen",
"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 Document Server." : "Der 30-tägige Testzeitraum ist abgelaufen. Du kannst keine Verbindung mehr zu Demo ONLYOFFICE Document Server herstellen.",
- "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data." : "Du verwendest den öffentlichen Demo ONLYOFFICE Document Server. Bitte benutze ihn nicht zum Speichern von Deinen privaten sensiblen Daten.",
+ "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",
@@ -100,6 +100,15 @@ OC.L10N.register(
"Template successfully added": "Vorlage wurde erfolgreich hinzugefügt",
"Template successfully deleted": "Vorlage wurde erfolgreich entfernt",
"Common templates": "Gemeinsame Vorlagen",
- "Failed to delete template": "Fehler beim Löschen einer Vorlage"
+ "Failed to delete template": "Fehler beim Löschen einer Vorlage",
+ "File has been converted. Its content might look different.": "Die Datei wurde konvertiert. Der Inhalt könnte anders aussehen.",
+ "Download as": "Herunterladen als",
+ "Download": "Herunterladen",
+ "Convert into": "Konvertieren in",
+ "Origin format": "Ursprüngliches Format",
+ "Failed to send notification": "Fehler beim Senden einer Benachrichtigung",
+ "Notification sent successfully": "Benachrichtigung erfolgreich gesendet",
+ "%1\$s mentioned in the %2\$s: \"%3\$s\".": "%1\$s hat in %2\$s erwähnt: \"%3\$s\".",
+ "{notifier} mentioned in the {file}: \"%1\$s\".": "{notifier} hat in {file} erwähnt: \"%1\$s\"."
},
"nplurals=2; plural=(n != 1);");
diff --git a/l10n/de.json b/l10n/de.json
index f058bdf..048a12f 100644
--- a/l10n/de.json
+++ b/l10n/de.json
@@ -30,18 +30,18 @@
"Server can't read xml" : "Server kann eine xml-Datei nicht einlesen",
"Bad Response. Errors: " : "Bad Response. Fehler:",
"Documentation" : "Dokumentation",
- "ONLYOFFICE Document Service 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 Document Servicestandort gibt die Adresse des Servers mit den installierten Dokumentdiensten an. Ändere bitte '<documenterver>' für die Serveradresse in der folgenden Zeile.",
- "Document Editing Service address" : "Serviceadresse der Dokumentbearbeitung",
+ "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 Docsstandort gibt die Adresse des Servers mit den installierten Dokumentdiensten an. Ändere bitte '<documenterver>' für die Serveradresse in der folgenden Zeile.",
+ "ONLYOFFICE Docs address" : "Die Adresse von ONLYOFFICE Docs",
"Advanced server settings" : "Erweiterte Servereinstellungen",
- "Document Editing Service address for internal requests from the server" : "Serviceadresse der Dokumentbearbeitung für interne Anforderungen vom Server",
- "Server address for internal requests from the Document Editing Service" : "Serveradresse für interne Anforderungen vom Dokumentbearbeitung-Service",
+ "ONLYOFFICE Docs address for internal requests from the server" : "Die Adresse von ONLYOFFICE Docs für interne Anforderungen vom Server",
+ "Server address for internal requests from ONLYOFFICE Docs" : "Serveradresse für interne Anforderungen vom ONLYOFFICE Docs",
"Secret key (leave blank to disable)" : "Geheimer Schlüssel (freilassen, um zu deaktivieren)",
"Open file in the same tab" : "Datei in der gleichen Registerkarte öffnen",
"The default application for opening the format" : "Die Standardanwendung zum Öffnen des Formats",
"Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "Öffne die Datei zum Bearbeiten (aufgrund von Formateinschränkungen können die Daten beim Speichern in den Formaten aus der folgenden Liste verloren gehen)",
"View details" : "Details anzeigen",
"Save" : "Speichern",
- "Mixed Active Content is not allowed. HTTPS address for Document Server is required." : "Mixed Active Content ist nicht möglich. HTTPS-Adresse für Document Server ist erforderlich.",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "Mixed Active Content ist nicht möglich. HTTPS-Adresse für ONLYOFFICE Docs ist erforderlich.",
"Restrict access to editors to following groups" : "Den Zugriff auf Editoren auf folgende Gruppen gewähren",
"Server settings" : "Servereinstellungen",
"Common settings" : "Allgemeine Einstellungen",
@@ -56,10 +56,10 @@
"File saved" : "Datei wurde gespeichert",
"Insert image" : "Bild einfügen",
"Select recipients" : "Empfänger auswählen",
- "Connect to demo ONLYOFFICE Document Server" : "Verbindung zu Demo ONLYOFFICE Document Server herstellen",
+ "Connect to demo ONLYOFFICE Docs server" : "Verbindung zu Demo ONLYOFFICE Docs Server herstellen",
"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 Document Server." : "Der 30-tägige Testzeitraum ist abgelaufen. Du kannst keine Verbindung mehr zu Demo ONLYOFFICE Document Server herstellen.",
- "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data." : "Du verwendest den öffentlichen Demo ONLYOFFICE Document Server. Bitte benutze ihn nicht zum Speichern von Deinen privaten sensiblen Daten.",
+ "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",
@@ -98,6 +98,15 @@
"Template successfully added": "Vorlage wurde erfolgreich hinzugefügt",
"Template successfully deleted": "Vorlage wurde erfolgreich entfernt",
"Common templates": "Gemeinsame Vorlagen",
- "Failed to delete template": "Fehler beim Löschen einer Vorlage"
+ "Failed to delete template": "Fehler beim Löschen einer Vorlage",
+ "File has been converted. Its content might look different.": "Die Datei wurde konvertiert. Der Inhalt könnte anders aussehen.",
+ "Download as": "Herunterladen als",
+ "Download": "Herunterladen",
+ "Convert into": "Konvertieren in",
+ "Origin format": "Ursprüngliches Format",
+ "Failed to send notification": "Fehler beim Senden einer Benachrichtigung",
+ "Notification sent successfully": "Benachrichtigung erfolgreich gesendet",
+ "%1$s mentioned in the %2$s: \"%3$s\".": "%1$s hat in %2$s erwähnt: \"%3$s\".",
+ "{notifier} mentioned in the {file}: \"%1$s\".": "{notifier} hat in {file} erwähnt: \"%1$s\"."
},"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 42ec3fe..5819f73 100644
--- a/l10n/de_DE.js
+++ b/l10n/de_DE.js
@@ -32,18 +32,18 @@ OC.L10N.register(
"Server can't read xml" : "Server kann eine xml-Datei nicht einlesen",
"Bad Response. Errors: " : "Bad Response. Fehler:",
"Documentation" : "Dokumentation",
- "ONLYOFFICE Document Service 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 Document Servicestandort gibt die Adresse des Servers mit den installierten Dokumentdiensten an. Bitte ändern Sie '<documenterver>' für die Serveradresse in der folgenden Zeile.",
- "Document Editing Service address" : "Serviceadresse der Dokumentbearbeitung",
+ "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 Docsstandort gibt die Adresse des Servers mit den installierten Dokumentdiensten an. Bitte ändern Sie '<documenterver>' für die Serveradresse in der folgenden Zeile.",
+ "ONLYOFFICE Docs address" : "Die Adresse von ONLYOFFICE Docs",
"Advanced server settings" : "Erweiterte Servereinstellungen",
- "Document Editing Service address for internal requests from the server" : "Serviceadresse der Dokumentbearbeitung für interne Anforderungen vom Server",
- "Server address for internal requests from the Document Editing Service" : "Serveradresse für interne Anforderungen vom Dokumentbearbeitung-Service",
+ "ONLYOFFICE Docs address for internal requests from the server" : "Die Adresse von ONLYOFFICE Docs für interne Anforderungen vom Server",
+ "Server address for internal requests from ONLYOFFICE Docs" : "Serveradresse für interne Anforderungen vom ONLYOFFICE Docs",
"Secret key (leave blank to disable)" : "Geheimer Schlüssel (freilassen, um zu deaktivieren)",
"Open file in the same tab" : "Datei in der gleichen Registerkarte öffnen",
"The default application for opening the format" : "Die Standardanwendung zum Öffnen des Formats",
"Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "Öffnen Sie die Datei zum Bearbeiten (aufgrund von Formateinschränkungen können die Daten beim Speichern in den Formaten aus der folgenden Liste verloren gehen)",
"View details" : "Details anzeigen",
"Save" : "Speichern",
- "Mixed Active Content is not allowed. HTTPS address for Document Server is required." : "Mixed Active Content ist nicht möglich. HTTPS-Adresse für Document Server ist erforderlich.",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "Mixed Active Content ist nicht möglich. HTTPS-Adresse für ONLYOFFICE Docs ist erforderlich.",
"Restrict access to editors to following groups" : "Den Zugriff auf Editoren auf folgende Gruppen gewähren",
"Server settings" : "Servereinstellungen",
"Common settings" : "Allgemeine Einstellungen",
@@ -58,10 +58,10 @@ OC.L10N.register(
"File saved" : "Datei wurde gespeichert",
"Insert image" : "Bild einfügen",
"Select recipients" : "Empfänger auswählen",
- "Connect to demo ONLYOFFICE Document Server" : "Verbindung zu Demo ONLYOFFICE Document Server herstellen",
+ "Connect to demo ONLYOFFICE Docs server": "Verbindung zu Demo ONLYOFFICE Docs Server herstellen",
"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 Document Server." : "Der 30-tägige Testzeitraum ist abgelaufen. Sie können keine Verbindung mehr zu Demo ONLYOFFICE Document Server herstellen.",
- "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data." : "Sie verwenden den öffentlichen Demo ONLYOFFICE Document Server. Bitte benutzen Sie ihn nicht zum Speichern von Ihren privaten sensiblen Daten.",
+ "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",
@@ -100,6 +100,15 @@ OC.L10N.register(
"Template successfully added": "Vorlage wurde erfolgreich hinzugefügt",
"Template successfully deleted": "Vorlage wurde erfolgreich entfernt",
"Common templates": "Gemeinsame Vorlagen",
- "Failed to delete template": "Fehler beim Löschen einer Vorlage"
+ "Failed to delete template": "Fehler beim Löschen einer Vorlage",
+ "File has been converted. Its content might look different.": "Die Datei wurde konvertiert. Der Inhalt könnte anders aussehen.",
+ "Download as": "Herunterladen als",
+ "Download": "Herunterladen",
+ "Convert into": "Konvertieren in",
+ "Origin format": "Ursprüngliches Format",
+ "Failed to send notification": "Fehler beim Senden einer Benachrichtigung",
+ "Notification sent successfully": "Benachrichtigung erfolgreich gesendet",
+ "%1\$s mentioned in the %2\$s: \"%3\$s\".": "%1\$s hat in %2\$s erwähnt: \"%3\$s\".",
+ "{notifier} mentioned in the {file}: \"%1\$s\".": "{notifier} hat in {file} erwähnt: \"%1\$s\"."
},
"nplurals=2; plural=(n != 1);");
diff --git a/l10n/de_DE.json b/l10n/de_DE.json
index 751102d..71a103c 100644
--- a/l10n/de_DE.json
+++ b/l10n/de_DE.json
@@ -30,18 +30,18 @@
"Server can't read xml" : "Server kann eine xml-Datei nicht einlesen",
"Bad Response. Errors: " : "Bad Response. Fehler:",
"Documentation" : "Dokumentation",
- "ONLYOFFICE Document Service 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 Document Servicestandort gibt die Adresse des Servers mit den installierten Dokumentdiensten an. Bitte ändern Sie '<documenterver>' für die Serveradresse in der folgenden Zeile.",
- "Document Editing Service address" : "Serviceadresse der Dokumentbearbeitung",
+ "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 Docsstandort gibt die Adresse des Servers mit den installierten Dokumentdiensten an. Bitte ändern Sie '<documenterver>' für die Serveradresse in der folgenden Zeile.",
+ "ONLYOFFICE Docs address" : "Die Adresse von ONLYOFFICE Docs",
"Advanced server settings" : "Erweiterte Servereinstellungen",
- "Document Editing Service address for internal requests from the server" : "Serviceadresse der Dokumentbearbeitung für interne Anforderungen vom Server",
- "Server address for internal requests from the Document Editing Service" : "Serveradresse für interne Anforderungen vom Dokumentbearbeitung-Service",
+ "ONLYOFFICE Docs address for internal requests from the server" : "Die Adresse von ONLYOFFICE Docs für interne Anforderungen vom Server",
+ "Server address for internal requests from ONLYOFFICE Docs" : "Serveradresse für interne Anforderungen vom ONLYOFFICE Docs",
"Secret key (leave blank to disable)" : "Geheimer Schlüssel (freilassen, um zu deaktivieren)",
"Open file in the same tab" : "Datei in der gleichen Registerkarte öffnen",
"The default application for opening the format" : "Die Standardanwendung zum Öffnen des Formats",
"Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "Öffnen Sie die Datei zum Bearbeiten (aufgrund von Formateinschränkungen können die Daten beim Speichern in den Formaten aus der folgenden Liste verloren gehen)",
"View details" : "Details anzeigen",
"Save" : "Speichern",
- "Mixed Active Content is not allowed. HTTPS address for Document Server is required." : "Mixed Active Content ist nicht möglich. HTTPS-Adresse für Document Server ist erforderlich.",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "Mixed Active Content ist nicht möglich. HTTPS-Adresse für ONLYOFFICE Docs ist erforderlich.",
"Restrict access to editors to following groups" : "Den Zugriff auf Editoren auf folgende Gruppen gewähren",
"Server settings" : "Servereinstellungen",
"Common settings" : "Allgemeine Einstellungen",
@@ -56,10 +56,10 @@
"File saved" : "Datei wurde gespeichert",
"Insert image" : "Bild einfügen",
"Select recipients" : "Empfänger auswählen",
- "Connect to demo ONLYOFFICE Document Server" : "Verbindung zu Demo ONLYOFFICE Document Server herstellen",
+ "Connect to demo ONLYOFFICE Docs server": "Verbindung zu Demo ONLYOFFICE Docs Server herstellen",
"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 Document Server." : "Der 30-tägige Testzeitraum ist abgelaufen. Sie können keine Verbindung mehr zu Demo ONLYOFFICE Document Server herstellen.",
- "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data." : "Sie verwenden den öffentlichen Demo ONLYOFFICE Document Server. Bitte benutzen Sie ihn nicht zum Speichern von Ihren privaten sensiblen Daten.",
+ "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",
@@ -98,6 +98,15 @@
"Template successfully added": "Vorlage wurde erfolgreich hinzugefügt",
"Template successfully deleted": "Vorlage wurde erfolgreich entfernt",
"Common templates": "Gemeinsame Vorlagen",
- "Failed to delete template": "Fehler beim Löschen einer Vorlage"
+ "Failed to delete template": "Fehler beim Löschen einer Vorlage",
+ "File has been converted. Its content might look different.": "Die Datei wurde konvertiert. Der Inhalt könnte anders aussehen.",
+ "Download as": "Herunterladen als",
+ "Download": "Herunterladen",
+ "Convert into": "Konvertieren in",
+ "Origin format": "Ursprüngliches Format",
+ "Failed to send notification": "Fehler beim Senden einer Benachrichtigung",
+ "Notification sent successfully": "Benachrichtigung erfolgreich gesendet",
+ "%1$s mentioned in the %2$s: \"%3$s\".": "%1$s hat in %2$s erwähnt: \"%3$s\".",
+ "{notifier} mentioned in the {file}: \"%1$s\".": "{notifier} hat in {file} erwähnt: \"%1$s\"."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/l10n/es.js b/l10n/es.js
index ecc6213..196b931 100644
--- a/l10n/es.js
+++ b/l10n/es.js
@@ -32,18 +32,18 @@ OC.L10N.register(
"Server can't read xml" : "Servidor no puede leer xml",
"Bad Response. Errors: " : "Respuesta Mala. Errores:",
"Documentation" : "Documentación",
- "ONLYOFFICE Document Service 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ón del Servidor de Documentos de ONLYOFFICE especifica la dirección del servidor con los servicios de documentos instalados. Por favor, cambie '<documentserver>' para la dirección de servidor en la línea inferior.",
- "Document Editing Service address" : "Dirección del Servicio de Edición de Documentos",
+ "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ón del ONLYOFFICE Docs especifica la dirección del servidor con los servicios de documentos instalados. Por favor, cambie '<documentserver>' para la dirección de servidor en la línea inferior.",
+ "ONLYOFFICE Docs address" : "Dirección de ONLYOFFICE Docs",
"Advanced server settings" : "Ajustes de servidor avanzados",
- "Document Editing Service address for internal requests from the server" : "Dirección del Servicio de Edición de Documentos para solicitudes internas del servidor",
- "Server address for internal requests from the Document Editing Service" : "Dirección de servidor para solicitudes internas del Servicio de Edición de Documentos",
+ "ONLYOFFICE Docs address for internal requests from the server" : "Dirección de ONLYOFFICE Docs para solicitudes internas del servidor",
+ "Server address for internal requests from ONLYOFFICE Docs" : "Dirección de servidor para solicitudes internas del ONLYOFFICE Docs",
"Secret key (leave blank to disable)" : "Clave secreta (deje en blanco o desactive)",
"Open file in the same tab" : "Abrir archivo en la misma pestaña",
"The default application for opening the format" : "La aplicación predeterminada para abrir el formato",
"Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "Abrir archivo para editar (debido a las restricciones de formato los datos podrían perderse al guardar en los formatos de la siguiente lista)",
"View details" : "Ver detalles",
"Save" : "Guardar",
- "Mixed Active Content is not allowed. HTTPS address for Document Server is required." : "Contenido Mixto Activo no está permitido. Se requiere la dirección HTTPS para Servidor de Documentos.",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "Contenido Mixto Activo no está permitido. Se requiere la dirección HTTPS para ONLYOFFICE Docs.",
"Restrict access to editors to following groups" : "Restringir el acceso a editores a siguientes grupos",
"Server settings" : "Ajustes de servidor",
"Common settings" : "Ajustes comunes",
@@ -58,10 +58,10 @@ OC.L10N.register(
"File saved" : "El archivo ha sido guardado",
"Insert image" : "Insertar imagen",
"Select recipients" : "Seleccionar destinatarios",
- "Connect to demo ONLYOFFICE Document Server" : "Conectarse al ONLYOFFICE Document Server de demostración",
+ "Connect to demo ONLYOFFICE Docs server" : "Conectarse al servidor de ONLYOFFICE Docs de demostración",
"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 Document Server." : "El período de prueba de 30 días ha terminado, ya no puedes conectarte al ONLYOFFICE Document Server de demostración",
- "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data." : "Estás usando el ONLYOFFICE Document Server de demostración. Por favor, no almacenes tus datos confidenciales aquí.",
+ "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",
@@ -100,6 +100,15 @@ OC.L10N.register(
"Template successfully added": "La plantilla se agregó correctamente",
"Template successfully deleted": "La plantilla se eliminó correctamente",
"Common templates": "Plantillas comunes",
- "Failed to delete template": "No se pudo eliminar la plantilla"
+ "Failed to delete template": "No se pudo eliminar la plantilla",
+ "File has been converted. Its content might look different.": "El archivo se ha convertido. Su contenido puede ser distinto.",
+ "Download as": "Descargar como",
+ "Download": "Descargar",
+ "Convert into": "Convertir en",
+ "Origin format": "Formato original",
+ "Failed to send notification": "Error al enviar la notificación",
+ "Notification sent successfully": "Notificación enviada correctamente",
+ "%1\$s mentioned in the %2\$s: \"%3\$s\".": "%1\$s ha mencionado en %2\$s: \"%3\$s\".",
+ "{notifier} mentioned in the {file}: \"%1\$s\".": "{notifier} ha mencionado en {file}: \"%1\$s\"."
},
"nplurals=2; plural=(n != 1);");
diff --git a/l10n/es.json b/l10n/es.json
index 036db26..82dcc57 100644
--- a/l10n/es.json
+++ b/l10n/es.json
@@ -30,18 +30,18 @@
"Server can't read xml" : "Servidor no puede leer xml",
"Bad Response. Errors: " : "Respuesta Mala. Errores:",
"Documentation" : "Documentación",
- "ONLYOFFICE Document Service 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ón del Servidor de Documentos de ONLYOFFICE especifica la dirección del servidor con los servicios de documentos instalados. Por favor, cambie '<documentserver>' para la dirección de servidor en la línea inferior.",
- "Document Editing Service address" : "Dirección del Servicio de Edición de Documentos",
+ "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ón del ONLYOFFICE Docs especifica la dirección del servidor con los servicios de documentos instalados. Por favor, cambie '<documentserver>' para la dirección de servidor en la línea inferior.",
+ "ONLYOFFICE Docs address" : "Dirección de ONLYOFFICE Docs",
"Advanced server settings" : "Ajustes de servidor avanzados",
- "Document Editing Service address for internal requests from the server" : "Dirección del Servicio de Edición de Documentos para solicitudes internas del servidor",
- "Server address for internal requests from the Document Editing Service" : "Dirección de servidor para solicitudes internas del Servicio de Edición de Documentos",
+ "ONLYOFFICE Docs address for internal requests from the server" : "Dirección de ONLYOFFICE Docs para solicitudes internas del servidor",
+ "Server address for internal requests from ONLYOFFICE Docs" : "Dirección de servidor para solicitudes internas del ONLYOFFICE Docs",
"Secret key (leave blank to disable)" : "Clave secreta (deje en blanco o desactive)",
"Open file in the same tab" : "Abrir archivo en la misma pestaña",
"The default application for opening the format" : "La aplicación predeterminada para abrir el formato",
"Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "Abrir archivo para editar (debido a las restricciones de formato los datos podrían perderse al guardar en los formatos de la siguiente lista)",
"View details" : "Ver detalles",
"Save" : "Guardar",
- "Mixed Active Content is not allowed. HTTPS address for Document Server is required." : "Contenido Mixto Activo no está permitido. Se requiere la dirección HTTPS para Servidor de Documentos.",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "Contenido Mixto Activo no está permitido. Se requiere la dirección HTTPS para ONLYOFFICE Docs.",
"Restrict access to editors to following groups" : "Restringir el acceso a editores a siguientes grupos",
"Server settings" : "Ajustes de servidor",
"Common settings" : "Ajustes comunes",
@@ -56,10 +56,10 @@
"File saved" : "El archivo ha sido guardado",
"Insert image" : "Insertar imagen",
"Select recipients" : "Seleccionar destinatarios",
- "Connect to demo ONLYOFFICE Document Server" : "Conectarse al ONLYOFFICE Document Server de demostración",
+ "Connect to demo ONLYOFFICE Docs server" : "Conectarse al servidor de ONLYOFFICE Docs de demostración",
"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 Document Server." : "El período de prueba de 30 días ha terminado, ya no puedes conectarte al ONLYOFFICE Document Server de demostración",
- "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data." : "Estás usando el ONLYOFFICE Document Server de demostración. Por favor, no almacenes tus datos confidenciales aquí.",
+ "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",
@@ -98,6 +98,15 @@
"Template successfully added": "La plantilla se agregó correctamente",
"Template successfully deleted": "La plantilla se eliminó correctamente",
"Common templates": "Plantillas comunes",
- "Failed to delete template": "No se pudo eliminar la plantilla"
+ "Failed to delete template": "No se pudo eliminar la plantilla",
+ "File has been converted. Its content might look different.": "El archivo se ha convertido. Su contenido puede ser distinto.",
+ "Download as": "Descargar como",
+ "Download": "Descargar",
+ "Convert into": "Convertir en",
+ "Origin format": "Formato original",
+ "Failed to send notification": "Error al enviar la notificación",
+ "Notification sent successfully": "Notificación enviada correctamente",
+ "%1$s mentioned in the %2$s: \"%3$s\".": "%1$s ha mencionado en %2$s: \"%3$s\".",
+ "{notifier} mentioned in the {file}: \"%1$s\".": "{notifier} ha mencionado en {file}: \"%1$s\"."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/l10n/fr.js b/l10n/fr.js
index 79d8015..c81a006 100644
--- a/l10n/fr.js
+++ b/l10n/fr.js
@@ -32,18 +32,18 @@ OC.L10N.register(
"Server can't read xml" : "Le serveur ne peut pas lire le XML",
"Bad Response. Errors: " : "Mauvaise réponse. Erreurs:",
"Documentation" : "Documentation",
- "ONLYOFFICE Document Service Location specifies the address of the server with the document services installed. Please change the '<documentserver>' for the server address in the below line." : "L'emplacement du service d'édition de document ONLYOFFICE désigne l'adresse du serveur sur lequel est installé le service de document. Veuillez modifier le '<documentserver>' avec l'adresse du serveur de service de document dans la ligne ci-dessous",
- "Document Editing Service address" : "Adresse du service d'édition de document",
+ "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." : "L'emplacement du ONLYOFFICE Docs désigne l'adresse du serveur sur lequel est installé le service de document. Veuillez modifier le '<documentserver>' avec l'adresse du serveur de service de document dans la ligne ci-dessous",
+ "ONLYOFFICE Docs address" : "Adresse du ONLYOFFICE Docs",
"Advanced server settings" : "Paramètres avancés du serveur",
- "Document Editing Service address for internal requests from the server" : "Adresse du service d'édition de document pour les demandes internes du serveur",
- "Server address for internal requests from the Document Editing Service" : "Adresse du serveur pour les demandes internes du service d'édition de document",
+ "ONLYOFFICE Docs address for internal requests from the server" : "Adresse du ONLYOFFICE Docs pour les demandes internes du serveur",
+ "Server address for internal requests from ONLYOFFICE Docs" : "Adresse du serveur pour les demandes internes du ONLYOFFICE Docs",
"Secret key (leave blank to disable)" : "Clé secrète (laisser vide pour désactiver)",
"Open file in the same tab" : "Ouvrir le fichier dans le même onglet",
"The default application for opening the format" : "Application par défaut pour ouvrir le format",
"Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "Ouvrir le fichier pour édition (en raison de restrictions de format, des données peuvent être perdues lors de l'enregistrement dans les formats de la liste ci-dessous)",
"View details" : "Voir les détails",
"Save" : "Enregistrer",
- "Mixed Active Content is not allowed. HTTPS address for Document Server is required." : "Le contenu mixte actif n'est pas autorisé. Une adresse HTTPS pour le serveur de document est requise",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "Le contenu mixte actif n'est pas autorisé. Une adresse HTTPS pour le ONLYOFFICE Docs est requise",
"Restrict access to editors to following groups" : "Restreindre l'accès aux éditeurs pour les groupes suivants",
"Server settings" : "Paramètres du serveur",
"Common settings" : "Paramètres communs",
@@ -58,10 +58,10 @@ OC.L10N.register(
"File saved" : "Le fichier a été enregistré",
"Insert image" : "Insérer une image",
"Select recipients" : "Sélectionner les destinataires",
- "Connect to demo ONLYOFFICE Document Server" : "Se connecter à la version démo de ONLYOFFICE Document Server",
+ "Connect to demo ONLYOFFICE Docs server" : "Se connecter à la version démo de ONLYOFFICE Docs",
"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 Document 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 Document Server.",
- "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data." : "Vous utilisez la version démo de ONLYOFFICE Document Server, proposée à des fins de tests. Veuillez ne pas stocker vos données confidentielles.",
+ "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",
@@ -100,6 +100,15 @@ OC.L10N.register(
"Template successfully added": "Le modèle a été ajouté avec succès",
"Template successfully deleted": "Le modèle a été supprimé avec succès",
"Common templates": "Modèles communs",
- "Failed to delete template": "Impossible de supprimer le modèle"
+ "Failed to delete template": "Impossible de supprimer le modèle",
+ "File has been converted. Its content might look different.": "Le fichier a été converti. Son contenu peut s'afficher différemment.",
+ "Download as": "Télécharger sous",
+ "Download": "Télécharger",
+ "Convert into": "Convertir en",
+ "Origin format": "Format d’origin",
+ "Failed to send notification": "Échec de l’envoi de la notification",
+ "Notification sent successfully": "Notification a été envoyée avec succès",
+ "%1\$s mentioned in the %2\$s: \"%3\$s\".": "%1\$s a mentionné dans %2\$s: \"%3\$s\".",
+ "{notifier} mentioned in the {file}: \"%1\$s\".": "{notifier} a mentionné dans {file}: \"%1\$s\"."
},
"nplurals=2; plural=(n != 1);");
diff --git a/l10n/fr.json b/l10n/fr.json
index 70ec36a..c433938 100644
--- a/l10n/fr.json
+++ b/l10n/fr.json
@@ -30,18 +30,18 @@
"Server can't read xml" : "Le serveur ne peut pas lire le XML",
"Bad Response. Errors: " : "Mauvaise réponse. Erreurs:",
"Documentation" : "Documentation",
- "ONLYOFFICE Document Service Location specifies the address of the server with the document services installed. Please change the '<documentserver>' for the server address in the below line." : "L'emplacement du service d'édition de document ONLYOFFICE désigne l'adresse du serveur sur lequel est installé le service de document. Veuillez modifier le '<documentserver>' avec l'adresse du serveur de service de document dans la ligne ci-dessous",
- "Document Editing Service address" : "Adresse du service d'édition de document",
+ "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." : "L'emplacement du ONLYOFFICE Docs désigne l'adresse du serveur sur lequel est installé le service de document. Veuillez modifier le '<documentserver>' avec l'adresse du serveur de service de document dans la ligne ci-dessous",
+ "ONLYOFFICE Docs address" : "Adresse du ONLYOFFICE Docs",
"Advanced server settings" : "Paramètres avancés du serveur",
- "Document Editing Service address for internal requests from the server" : "Adresse du service d'édition de document pour les demandes internes du serveur",
- "Server address for internal requests from the Document Editing Service" : "Adresse du serveur pour les demandes internes du service d'édition de document",
+ "ONLYOFFICE Docs address for internal requests from the server" : "Adresse du ONLYOFFICE Docs pour les demandes internes du serveur",
+ "Server address for internal requests from ONLYOFFICE Docs" : "Adresse du serveur pour les demandes internes du ONLYOFFICE Docs",
"Secret key (leave blank to disable)" : "Clé secrète (laisser vide pour désactiver)",
"Open file in the same tab" : "Ouvrir le fichier dans le même onglet",
"The default application for opening the format" : "Application par défaut pour ouvrir le format",
"Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "Ouvrir le fichier pour édition (en raison de restrictions de format, des données peuvent être perdues lors de l'enregistrement dans les formats de la liste ci-dessous)",
"View details" : "Voir les détails",
"Save" : "Enregistrer",
- "Mixed Active Content is not allowed. HTTPS address for Document Server is required." : "Le contenu mixte actif n'est pas autorisé. Une adresse HTTPS pour le serveur de document est requise",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "Le contenu mixte actif n'est pas autorisé. Une adresse HTTPS pour le ONLYOFFICE Docs est requise",
"Restrict access to editors to following groups" : "Restreindre l'accès aux éditeurs pour les groupes suivants",
"Server settings" : "Paramètres du serveur",
"Common settings" : "Paramètres communs",
@@ -56,10 +56,10 @@
"File saved" : "Le fichier a été enregistré",
"Insert image" : "Insérer une image",
"Select recipients" : "Sélectionner les destinataires",
- "Connect to demo ONLYOFFICE Document Server" : "Se connecter à la version démo de ONLYOFFICE Document Server",
+ "Connect to demo ONLYOFFICE Docs server" : "Se connecter à la version démo de ONLYOFFICE Docs",
"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 Document 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 Document Server.",
- "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data." : "Vous utilisez la version démo de ONLYOFFICE Document Server, proposée à des fins de tests. Veuillez ne pas stocker vos données confidentielles.",
+ "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",
@@ -98,6 +98,15 @@
"Template successfully added": "Le modèle a été ajouté avec succès",
"Template successfully deleted": "Le modèle a été supprimé avec succès",
"Common templates": "Modèles communs",
- "Failed to delete template": "Impossible de supprimer le modèle"
+ "Failed to delete template": "Impossible de supprimer le modèle",
+ "File has been converted. Its content might look different.": "Le fichier a été converti. Son contenu peut s'afficher différemment.",
+ "Download as": "Télécharger sous",
+ "Download": "Télécharger",
+ "Convert into": "Convertir en",
+ "Origin format": "Format d’origin",
+ "Failed to send notification": "Échec de l’envoi de la notification",
+ "Notification sent successfully": "Notification a été envoyée avec succès",
+ "%1$s mentioned in the %2$s: \"%3$s\".": "%1$s a mentionné dans %2$s: \"%3$s\".",
+ "{notifier} mentioned in the {file}: \"%1$s\".": "{notifier} a mentionné dans {file}: \"%1$s\"."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
diff --git a/l10n/it.js b/l10n/it.js
index 1093e38..2b8ac6e 100644
--- a/l10n/it.js
+++ b/l10n/it.js
@@ -32,18 +32,18 @@ OC.L10N.register(
"Server can't read xml" : "Il server non può leggere xml",
"Bad Response. Errors: " : "Risposta non corretta. Errori: ",
"Documentation" : "Documentazione" ,
- "ONLYOFFICE Document Service 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 Document Service Location specifica l'indirizzo del server con i servizi documenti installati. Modifica il '<documentserver>' con l'indirizzo del server nella riga sottostante.",
- "Document Editing Service address" : "Indirizzo del Document Editing Service",
+ "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 specifica l'indirizzo del server con i servizi documenti installati. Modifica il '<documentserver>' con l'indirizzo del server nella riga sottostante.",
+ "ONLYOFFICE Docs address" : "Indirizzo di ONLYOFFICE Docs",
"Advanced server settings" : "Impostazioni avanzate del server",
- "Document Editing Service address for internal requests from the server": "Indirizzo del Document Editing Service per le richieste interne del server",
- "Server address for internal requests from the Document Editing Service": "Indirizzo del server per le richieste interne del Document Editing Service",
+ "ONLYOFFICE Docs address for internal requests from the server" : "Indirizzo di ONLYOFFICE Docs per le richieste interne del server",
+ "Server address for internal requests from ONLYOFFICE Docs" : "Indirizzo del server per le richieste interne da ONLYOFFICE Docs",
"Secret key (leave blank to disable)" : "Chiave segreta (lasciare vuoto per disabilitare)",
"Open file in the same tab" : "Apri il file nella stessa scheda",
"The default application for opening the format": "L'applicazione predefinita per l'apertura del formato",
"Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "Apri il file per la modifica (a causa di restrizioni di formato, i dati potrebbero andare persi durante il salvataggio nei formati della lista sottostante)",
"View details" : "Vedi dettagli",
"Save" : "Salva",
- "Mixed Active Content is not allowed. HTTPS address for Document Server is required." : "Il contenuto attivo misto non è consentito. È richiesto l'indirizzo HTTPS per Document Server.",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "Il contenuto attivo misto non è consentito. È richiesto l'indirizzo HTTPS per ONLYOFFICE Docs.",
"Restrict access to editors to following groups" : "Limita l'accesso degli editor ai seguenti gruppi",
"Server settings" : "Impostazioni del server",
"Common settings" : "Impostazioni comuni",
@@ -58,10 +58,10 @@ OC.L10N.register(
"File saved" : "File salvato",
"Insert image" : "Inserisci l'immagine",
"Select recipients" : "Seleziona i destinatari",
- "Connect to demo ONLYOFFICE Document Server" : "Collegati alla demo di ONLYOFFICE Document Server",
+ "Connect to demo ONLYOFFICE Docs server" : "Collegati alla versione demo di ONLYOFFICE Docs",
"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 Document Server." : "Il periodo di prova di 30 giorni è terminato; non è più possibile connettersi alla versione demo di ONLYOFFICE Document Server.",
- "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data." : "Stai utilizzando la versione demo pubblica di ONLYOFFICE Document Server. Non memorizzare dati sensibili privati.",
+ "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",
@@ -100,6 +100,15 @@ OC.L10N.register(
"Template successfully added": "Modello è stato aggiunto con successo",
"Template successfully deleted": "Modello è stato cancellato con successo",
"Common templates": "Modelli comuni",
- "Failed to delete template": "Impossibile eliminare il modello"
+ "Failed to delete template": "Impossibile eliminare il modello",
+ "File has been converted. Its content might look different.": "Il file è stato convertito. Il suo contenuto potrebbe avere un aspetto diverso.",
+ "Download as": "Scaricare come",
+ "Download": "Scaricare",
+ "Convert into": "Convertire in",
+ "Origin format": "Formato di origine",
+ "Failed to send notification": "Invio di notifica non riuscito",
+ "Notification sent successfully": "Notifica è stata inviata con successo",
+ "%1\$s mentioned in the %2\$s: \"%3\$s\".": "%1\$s ha menzionato in %2\$s: \"%3\$s\".",
+ "{notifier} mentioned in the {file}: \"%1\$s\".": "{notifier} ha menzionato nel {file}: \"%1\$s\"."
},
"nplurals=2; plural=(n != 1);"); \ No newline at end of file
diff --git a/l10n/it.json b/l10n/it.json
index 8912857..b6867d4 100644
--- a/l10n/it.json
+++ b/l10n/it.json
@@ -30,18 +30,18 @@
"Server can't read xml" : "Il server non può leggere xml",
"Bad Response. Errors: " : "Risposta non corretta. Errori: ",
"Documentation" : "Documentazione" ,
- "ONLYOFFICE Document Service 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 Document Service Location specifica l'indirizzo del server con i servizi documenti installati. Modifica il '<documentserver>' con l'indirizzo del server nella riga sottostante.",
- "Document Editing Service address" : "Indirizzo del Document Editing Service",
+ "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 specifica l'indirizzo del server con i servizi documenti installati. Modifica il '<documentserver>' con l'indirizzo del server nella riga sottostante.",
+ "ONLYOFFICE Docs address" : "Indirizzo di ONLYOFFICE Docs",
"Advanced server settings" : "Impostazioni avanzate del server",
- "Document Editing Service address for internal requests from the server": "Indirizzo del Document Editing Service per le richieste interne del server",
- "Server address for internal requests from the Document Editing Service": "Indirizzo del server per le richieste interne del Document Editing Service",
+ "ONLYOFFICE Docs address for internal requests from the server" : "Indirizzo di ONLYOFFICE Docs per le richieste interne del server",
+ "Server address for internal requests from ONLYOFFICE Docs" : "Indirizzo del server per le richieste interne da ONLYOFFICE Docs",
"Secret key (leave blank to disable)" : "Chiave segreta (lasciare vuoto per disabilitare)",
"Open file in the same tab" : "Apri il file nella stessa scheda",
"The default application for opening the format": "L'applicazione predefinita per l'apertura del formato",
"Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "Apri il file per la modifica (a causa di restrizioni di formato, i dati potrebbero andare persi durante il salvataggio nei formati della lista sottostante)",
"View details" : "Vedi dettagli",
"Save" : "Salva",
- "Mixed Active Content is not allowed. HTTPS address for Document Server is required." : "Il contenuto attivo misto non è consentito. È richiesto l'indirizzo HTTPS per Document Server.",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "Il contenuto attivo misto non è consentito. È richiesto l'indirizzo HTTPS per ONLYOFFICE Docs.",
"Restrict access to editors to following groups" : "Limita l'accesso degli editor ai seguenti gruppi",
"Server settings" : "Impostazioni del server",
"Common settings" : "Impostazioni comuni",
@@ -56,10 +56,10 @@
"File saved" : "File salvato",
"Insert image" : "Inserisci l'immagine",
"Select recipients" : "Seleziona i destinatari",
- "Connect to demo ONLYOFFICE Document Server" : "Collegati alla demo di ONLYOFFICE Document Server",
+ "Connect to demo ONLYOFFICE Docs server" : "Collegati alla versione demo di ONLYOFFICE Docs",
"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 Document Server." : "Il periodo di prova di 30 giorni è terminato; non è più possibile connettersi alla versione demo di ONLYOFFICE Document Server.",
- "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data." : "Stai utilizzando la versione demo pubblica di ONLYOFFICE Document Server. Non memorizzare dati sensibili privati.",
+ "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",
@@ -98,6 +98,15 @@
"Template successfully added": "Modello è stato aggiunto con successo",
"Template successfully deleted": "Modello è stato cancellato con successo",
"Common templates": "Modelli comuni",
- "Failed to delete template": "Impossibile eliminare il modello"
+ "Failed to delete template": "Impossibile eliminare il modello",
+ "File has been converted. Its content might look different.": "Il file è stato convertito. Il suo contenuto potrebbe avere un aspetto diverso.",
+ "Download as": "Scaricare come",
+ "Download": "Scaricare",
+ "Convert into": "Convertire in",
+ "Origin format": "Formato di origine",
+ "Failed to send notification": "Invio di notifica non riuscito",
+ "Notification sent successfully": "Notifica è stata inviata con successo",
+ "%1$s mentioned in the %2$s: \"%3$s\".": "%1$s ha menzionato in %2$s: \"%3$s\".",
+ "{notifier} mentioned in the {file}: \"%1$s\".": "{notifier} ha menzionato nel {file}: \"%1$s\"."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/l10n/ja.js b/l10n/ja.js
index 8a53344..86a16b8 100644
--- a/l10n/ja.js
+++ b/l10n/ja.js
@@ -32,18 +32,18 @@ OC.L10N.register(
"Server can't read xml" : "サーバーでxmlを読み込ませんでした",
"Bad Response. Errors: " : "不正なレスポンス エラー: ",
"Documentation" : "ドキュメンテーション",
- "ONLYOFFICE Document Service 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 ドキュメントサービスの位置は、ドキュメントサービスがインストールされているサーバーのアドレスを指定します。以下の行の'<documentserver>'をサーバーアドレスに変更してください。",
- "Document Editing Service address" : "ドキュメント編集サービスサーバーアドレス",
+ "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" : "詳細サーバー設定",
- "Document Editing Service address for internal requests from the server": "内部利用向けドキュメント編集サービスアドレス",
- "Server address for internal requests from the Document Editing Service": "内部利用向けドキュメント編集サービスアドレス",
+ "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": "以下のファイルフォーマットをデフォルトで開く",
"Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "編集できるファイルフォーマット (フォーマットの制限により、以下のフォーマットを保存する時にデータが失われる可能性があります)",
"View details" : "詳細表示",
"Save" : "保存",
- "Mixed Active Content is not allowed. HTTPS address for Document Server is required." : "アクティブコンテンツの混在は許可されていません。ドキュメントサーバーにはHTTPSアドレスが必要です",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "アクティブコンテンツの混在は許可されていません。ONLYOFFICE DocsにはHTTPSアドレスが必要です",
"Restrict access to editors to following groups" : "アクセス編集できる人を以下のグループに制限する",
"Server settings" : "サーバー設定",
"Common settings" : "共通設定",
@@ -58,10 +58,10 @@ OC.L10N.register(
"File saved" : "ファイルが保存されました",
"Insert image" : "画像を挿入",
"Select recipients" : "受取者を選択",
- "Connect to demo ONLYOFFICE Document Server" : "ONLYOFFICEドキュメントのデモサーバーに接続する",
+ "Connect to demo ONLYOFFICE Docs server" : "ONLYOFFICE Docsのデモサーバーに接続する",
"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 Document Server." : "30日間のテスト期間が終了したら、ONLYOFFICEドキュメントデモサーバーには繋がらなくなります。",
- "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data." : "パブリックONLYOFFICEドキュメントサーバーを使っているので、プライベートな機密データを利用しないようにしてください。",
+ "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" : "透かしを有効",
@@ -100,6 +100,15 @@ 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": "ダウンロード",
+ "Convert into": "に変換する",
+ "Origin format": "オリジンの形式",
+ "Failed to send notification": "通知を送信できませんでした",
+ "Notification sent successfully": "通知を送信しました",
+ "%1\$s mentioned in the %2\$s: \"%3\$s\".": "%1\$s は %2\$s: \"%3\$s\"に記載されました。",
+ "{notifier} mentioned in the {file}: \"%1\$s\".": "{notifier} は {file}: \"%1\$s\"に記載しました。"
},
"nplurals=2; plural=(n != 1);");
diff --git a/l10n/ja.json b/l10n/ja.json
index f55fcca..4c1f4bd 100644
--- a/l10n/ja.json
+++ b/l10n/ja.json
@@ -30,18 +30,18 @@
"Server can't read xml" : "サーバーでxmlを読み込ませんでした",
"Bad Response. Errors: " : "不正なレスポンス エラー: ",
"Documentation" : "ドキュメンテーション",
- "ONLYOFFICE Document Service 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 ドキュメントサービスの位置は、ドキュメントサービスがインストールされているサーバーのアドレスを指定します。以下の行の'<documentserver>'をサーバーアドレスに変更してください。",
- "Document Editing Service address" : "ドキュメント編集サービスサーバーアドレス",
+ "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" : "詳細サーバー設定",
- "Document Editing Service address for internal requests from the server": "内部利用向けドキュメント編集サービスアドレス",
- "Server address for internal requests from the Document Editing Service": "内部利用向けドキュメント編集サービスアドレス",
+ "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": "以下のファイルフォーマットをデフォルトで開く",
"Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "編集できるファイルフォーマット (フォーマットの制限により、以下のフォーマットを保存する時にデータが失われる可能性があります)",
"View details" : "詳細表示",
"Save" : "保存",
- "Mixed Active Content is not allowed. HTTPS address for Document Server is required." : "アクティブコンテンツの混在は許可されていません。ドキュメントサーバーにはHTTPSアドレスが必要です",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "アクティブコンテンツの混在は許可されていません。ONLYOFFICE DocsにはHTTPSアドレスが必要です",
"Restrict access to editors to following groups" : "アクセス編集できる人を以下のグループに制限する",
"Server settings" : "サーバー設定",
"Common settings" : "共通設定",
@@ -56,10 +56,10 @@
"File saved" : "ファイルが保存されました",
"Insert image" : "画像を挿入",
"Select recipients" : "受取者を選択",
- "Connect to demo ONLYOFFICE Document Server" : "ONLYOFFICEドキュメントのデモサーバーに接続する",
+ "Connect to demo ONLYOFFICE Docs server" : "ONLYOFFICE Docsのデモサーバーに接続する",
"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 Document Server." : "30日間のテスト期間が終了したら、ONLYOFFICEドキュメントデモサーバーには繋がらなくなります。",
- "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data." : "パブリックONLYOFFICEドキュメントサーバーを使っているので、プライベートな機密データを利用しないようにしてください。",
+ "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" : "透かしを有効",
@@ -98,6 +98,15 @@
"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": "ダウンロード",
+ "Convert into": "に変換する",
+ "Origin format": "オリジンの形式",
+ "Failed to send notification": "通知を送信できませんでした",
+ "Notification sent successfully": "通知を送信しました",
+ "%1$s mentioned in the %2$s: \"%3$s\".": "%1$s は %2$s: \"%3$s\"に記載されました。",
+ "{notifier} mentioned in the {file}: \"%1$s\".": "{notifier} は {file}: \"%1$s\"に記載しました。"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/l10n/pl.js b/l10n/pl.js
index d3d40fc..70b40f7 100644
--- a/l10n/pl.js
+++ b/l10n/pl.js
@@ -32,18 +32,18 @@ OC.L10N.register(
"Server can't read xml" : "Serwer nie może przeczytać xml",
"Bad Response. Errors: " : "Zła odpowiedź. Błędy:",
"Documentation" : "Dokumentacja",
- "ONLYOFFICE Document Service Location specifies the address of the server with the document services installed. Please change the '<documentserver>' for the server address in the below line." : "Lokacja Usługi Dokumentów ONLYOFFICE to adres serwera na którym Usługi Dokumentów są zainstalowe. Proszę zmienić '<documentserver>' na adres poniżej.",
- "Document Editing Service address" : "Adres Usługi Edycji Dokumentów",
+ "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." : "Lokacja ONLYOFFICE Docs to adres serwera na którym Usługi Dokumentów są zainstalowe. Proszę zmienić '<documentserver>' na adres poniżej.",
+ "ONLYOFFICE Docs address" : "Adres ONLYOFFICE Docs",
"Advanced server settings" : "Zaawansowane ustawienia serwera",
- "Document Editing Service address for internal requests from the server" : "Adres Usługi Edycji Dokumentów dla zapytań wewnętrznych",
- "Server address for internal requests from the Document Editing Service" : "Adres serwera dla zapytań wewnętrznych z Usługi Edycji Dokumentów",
+ "ONLYOFFICE Docs address for internal requests from the server" : "Adres ONLYOFFICE Docs dla zapytań wewnętrznych",
+ "Server address for internal requests from ONLYOFFICE Docs" : "Adres serwera dla zapytań wewnętrznych z ONLYOFFICE Docs",
"Secret key (leave blank to disable)" : "Klucz zabezpieczeń (pozostaw puste aby wyłączyć)",
"Open file in the same tab" : "Otwórz plik w tym samym oknie",
"The default application for opening the format" : "Domyślna aplikacja do otwierania formatów",
"Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "Otwórz plik do edycji (ze względu na ograniczenia formatów, dane mogą zostac utracone przy zapisie do formatów podanych poniżej)",
"View details" : "Szczegóły",
"Save" : "Zapisz",
- "Mixed Active Content is not allowed. HTTPS address for Document Server is required." : "Aktywna Zawartość Mieszana nie jest dozwolona. Adres HTTPS jest wymagany dla Serwera Dokumentów.",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "Aktywna Zawartość Mieszana nie jest dozwolona. Adres HTTPS jest wymagany dla ONLYOFFICE Docs.",
"Restrict access to editors to following groups" : "Ogranicz dostęp do edytorów dla tych grup",
"Server settings" : "Ustawienia serwera",
"Common settings" : "Ustawienia ogólne",
@@ -58,10 +58,10 @@ OC.L10N.register(
"File saved" : "Plik zapisany",
"Insert image" : "Wstaw obraz",
"Select recipients" : "Wybierz odbiorców",
- "Connect to demo ONLYOFFICE Document Server" : "Połącz się z serwerem demo ONLYOFFICE",
+ "Connect to demo ONLYOFFICE Docs server" : "Połącz się z serwerem demo ONLYOFFICE Docs",
"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 Document Server." : "Upłyneło 30 dni, nie możesz się już łączyć z serwerem demo.",
- "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data." : "Używasz publicznego serwera demo. Nie przechowuj tu prywatnych danych.",
+ "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",
@@ -100,6 +100,15 @@ OC.L10N.register(
"Template successfully added": "Szablon został pomyślnie dodany",
"Template successfully deleted": "Szablon został pomyślnie usunięty",
"Common templates": "Popularne szablony",
- "Failed to delete template": "Nie udało się usunąć szablonu"
+ "Failed to delete template": "Nie udało się usunąć szablonu",
+ "File has been converted. Its content might look different.": "Plik został przekonwertowany. Jego zawartość może wyglądać inaczej.",
+ "Download as": "Pobierz jako",
+ "Download": "Pobierz",
+ "Convert into": "Konwertuj do",
+ "Origin format": "Oryginalny format",
+ "Failed to send notification": "Nie udało się wysłać powiadomienia",
+ "Notification sent successfully": "Powiadomienie zostało wysłane",
+ "%1\$s mentioned in the %2\$s: \"%3\$s\".": "%1\$s dodał(a) w %2\$s następujący komentarz: \"%3\$s\".",
+ "{notifier} mentioned in the {file}: \"%1\$s\".": "{notifier} dodał(a) w {file} następujący komentarz: \"%1\$s\"."
},
"nplurals=2; plural=(n != 1);"); \ No newline at end of file
diff --git a/l10n/pl.json b/l10n/pl.json
index 729c004..e265268 100644
--- a/l10n/pl.json
+++ b/l10n/pl.json
@@ -30,18 +30,18 @@
"Server can't read xml" : "Serwer nie może przeczytać xml",
"Bad Response. Errors: " : "Zła odpowiedź. Błędy:",
"Documentation" : "Dokumentacja",
- "ONLYOFFICE Document Service Location specifies the address of the server with the document services installed. Please change the '<documentserver>' for the server address in the below line." : "Lokacja Usługi Dokumentów ONLYOFFICE to adres serwera na którym Usługi Dokumentów są zainstalowe. Proszę zmienić '<documentserver>' na adres poniżej.",
- "Document Editing Service address" : "Adres Usługi Edycji Dokumentów",
+ "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." : "Lokacja ONLYOFFICE Docs to adres serwera na którym Usługi Dokumentów są zainstalowe. Proszę zmienić '<documentserver>' na adres poniżej.",
+ "ONLYOFFICE Docs address" : "Adres ONLYOFFICE Docs",
"Advanced server settings" : "Zaawansowane ustawienia serwera",
- "Document Editing Service address for internal requests from the server" : "Adres Usługi Edycji Dokumentów dla zapytań wewnętrznych",
- "Server address for internal requests from the Document Editing Service" : "Adres serwera dla zapytań wewnętrznych z Usługi Edycji Dokumentów",
+ "ONLYOFFICE Docs address for internal requests from the server" : "Adres ONLYOFFICE Docs dla zapytań wewnętrznych",
+ "Server address for internal requests from ONLYOFFICE Docs" : "Adres serwera dla zapytań wewnętrznych z ONLYOFFICE Docs",
"Secret key (leave blank to disable)" : "Klucz zabezpieczeń (pozostaw puste aby wyłączyć)",
"Open file in the same tab" : "Otwórz plik w tym samym oknie",
"The default application for opening the format" : "Domyślna aplikacja do otwierania formatów",
"Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "Otwórz plik do edycji (ze względu na ograniczenia formatów, dane mogą zostac utracone przy zapisie do formatów podanych poniżej)",
"View details" : "Szczegóły",
"Save" : "Zapisz",
- "Mixed Active Content is not allowed. HTTPS address for Document Server is required." : "Aktywna Zawartość Mieszana nie jest dozwolona. Adres HTTPS jest wymagany dla Serwera Dokumentów.",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "Aktywna Zawartość Mieszana nie jest dozwolona. Adres HTTPS jest wymagany dla ONLYOFFICE Docs.",
"Restrict access to editors to following groups" : "Ogranicz dostęp do edytorów dla tych grup",
"Server settings" : "Ustawienia serwera",
"Common settings" : "Ustawienia ogólne",
@@ -56,10 +56,10 @@
"File saved" : "Plik zapisany",
"Insert image" : "Wstaw obraz",
"Select recipients" : "Wybierz odbiorców",
- "Connect to demo ONLYOFFICE Document Server" : "Połącz się z serwerem demo ONLYOFFICE",
+ "Connect to demo ONLYOFFICE Docs server" : "Połącz się z serwerem demo ONLYOFFICE Docs",
"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 Document Server." : "Upłyneło 30 dni, nie możesz się już łączyć z serwerem demo.",
- "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data." : "Używasz publicznego serwera demo. Nie przechowuj tu prywatnych danych.",
+ "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",
@@ -98,6 +98,15 @@
"Template successfully added": "Szablon został pomyślnie dodany",
"Template successfully deleted": "Szablon został pomyślnie usunięty",
"Common templates": "Popularne szablony",
- "Failed to delete template": "Nie udało się usunąć szablonu"
+ "Failed to delete template": "Nie udało się usunąć szablonu",
+ "File has been converted. Its content might look different.": "Plik został przekonwertowany. Jego zawartość może wyglądać inaczej.",
+ "Download as": "Pobierz jako",
+ "Download": "Pobierz",
+ "Convert into": "Konwertuj do",
+ "Origin format": "Oryginalny format",
+ "Failed to send notification": "Nie udało się wysłać powiadomienia",
+ "Notification sent successfully": "Powiadomienie zostało wysłane",
+ "%1$s mentioned in the %2$s: \"%3$s\".": "%1$s dodał(a) w %2$s następujący komentarz: \"%3$s\".",
+ "{notifier} mentioned in the {file}: \"%1$s\".": "{notifier} dodał(a) w {file} następujący komentarz: \"%1$s\"."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/l10n/pt_BR.js b/l10n/pt_BR.js
index e5a032e..6558701 100644
--- a/l10n/pt_BR.js
+++ b/l10n/pt_BR.js
@@ -32,18 +32,18 @@ OC.L10N.register(
"Server can't read xml" : "Servidor não pode ler xml",
"Bad Response. Errors: " : "Resposta ruim. Erros:",
"Documentation" : "Documentação",
- "ONLYOFFICE Document Service Location specifies the address of the server with the document services installed. Please change the '<documentserver>' for the server address in the below line." : "O Endereço do Serviço de Edição de Documentos especifica o servidor onde o serviço de documentos está instalado.\nPor favor mude '<documentserver>' para o endereço do servidor na linha abaixo.",
- "Document Editing Service address" : "Endereço do Serviço de Edição de Documentos",
+ "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." : "O Endereço do ONLYOFFICE Docs especifica o servidor onde o serviço de documentos está instalado.\nPor favor mude '<documentserver>' para o endereço do servidor na linha abaixo.",
+ "ONLYOFFICE Docs address" : "Endereço do ONLYOFFICE Docs",
"Advanced server settings" : "Configurações avançadas do servidor",
- "Document Editing Service address for internal requests from the server" : "Endereço do Serviço de Edição de Documentos para pedidos internos do servidor",
- "Server address for internal requests from the Document Editing Service" : "Endereço do servidor para pedidos internos do Serviço de Edição de Documentos",
+ "ONLYOFFICE Docs address for internal requests from the server" : "Endereço do ONLYOFFICE Docs para pedidos internos do servidor",
+ "Server address for internal requests from ONLYOFFICE Docs" : "Endereço do servidor para pedidos internos do ONLYOFFICE Docs",
"Secret key (leave blank to disable)" : "Chave secreta (deixe em branco para desativar)",
"Open file in the same tab" : "Abrir arquivo na mesma aba",
"The default application for opening the format" : "Aplicação padrão para os formatos",
"Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "Habilitar edição (devido à restrição dos formatos, dados podem ser perdidos ao salvar nos formatos abaixo)",
"View details" : "Ver detalhes",
"Save" : "Salvar",
- "Mixed Active Content is not allowed. HTTPS address for Document Server is required." : "Conteúdo Misto não é permitido. É necessário um endereço HTTPS para o Servidor de Documentos.",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "Conteúdo Misto não é permitido. É necessário um endereço HTTPS para o ONLYOFFICE Docs.",
"Restrict access to editors to following groups" : "Acesso apenas para os seguintes grupos",
"Server settings" : "Configurações do servidor",
"Common settings" : "Configurações comuns",
@@ -58,10 +58,10 @@ OC.L10N.register(
"File saved" : "O arquivo foi salvo",
"Insert image" : "Inserir imagem",
"Select recipients" : "Selecione os destinatários",
- "Connect to demo ONLYOFFICE Document Server" : "Conectar ao Servidor de documentos de demonstração do ONLYOFFICE",
+ "Connect to demo ONLYOFFICE Docs server" : "Conectar ao Servidor de demonstração do ONLYOFFICE Docs",
"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 Document Server." : "O período de teste de 30 dias acabou, você não pode mais se conectar ao Servidor de documentos de demonstração do ONLYOFFICE",
- "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data." : "Você está usando o Servidor de documentos de demonstração pública. Não armazene dados confidenciais.",
+ "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",
@@ -100,6 +100,15 @@ OC.L10N.register(
"Template successfully added": "Modelo adicionado com sucesso",
"Template successfully deleted": "Modelo excluído com sucesso",
"Common templates": "Modelos comuns",
- "Failed to delete template": "Falha ao excluir modelo"
+ "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",
+ "Convert into": "Converter em",
+ "Origin format": "Formato de origem",
+ "Failed to send notification": "Falha ao enviar notificação",
+ "Notification sent successfully": "Notificação enviada com sucesso",
+ "%1\$s mentioned in the %2\$s: \"%3\$s\".": "%1\$s mencionado em %2\$s: \"%3\$s\".",
+ "{notifier} mentioned in the {file}: \"%1\$s\".": "{notifier} mencionado em {file}: \"%1\$s\"."
},
"nplurals=2; plural=(n != 1);");
diff --git a/l10n/pt_BR.json b/l10n/pt_BR.json
index 461df94..75557f0 100644
--- a/l10n/pt_BR.json
+++ b/l10n/pt_BR.json
@@ -30,18 +30,18 @@
"Server can't read xml" : "Servidor não pode ler xml",
"Bad Response. Errors: " : "Resposta ruim. Erros:",
"Documentation" : "Documentação",
- "ONLYOFFICE Document Service Location specifies the address of the server with the document services installed. Please change the '<documentserver>' for the server address in the below line." : "O Endereço do Serviço de Edição de Documentos especifica o servidor onde o serviço de documentos está instalado.\nPor favor mude '<documentserver>' para o endereço do servidor na linha abaixo.",
- "Document Editing Service address" : "Endereço do Serviço de Edição de Documentos",
+ "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." : "O Endereço do ONLYOFFICE Docs especifica o servidor onde o serviço de documentos está instalado.\nPor favor mude '<documentserver>' para o endereço do servidor na linha abaixo.",
+ "ONLYOFFICE Docs address" : "Endereço do ONLYOFFICE Docs",
"Advanced server settings" : "Configurações avançadas do servidor",
- "Document Editing Service address for internal requests from the server" : "Endereço do Serviço de Edição de Documentos para pedidos internos do servidor",
- "Server address for internal requests from the Document Editing Service" : "Endereço do servidor para pedidos internos do Serviço de Edição de Documentos",
+ "ONLYOFFICE Docs address for internal requests from the server" : "Endereço do ONLYOFFICE Docs para pedidos internos do servidor",
+ "Server address for internal requests from ONLYOFFICE Docs" : "Endereço do servidor para pedidos internos do ONLYOFFICE Docs",
"Secret key (leave blank to disable)" : "Chave secreta (deixe em branco para desativar)",
"Open file in the same tab" : "Abrir arquivo na mesma aba",
"The default application for opening the format" : "Aplicação padrão para os formatos",
"Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "Habilitar edição (devido à restrição dos formatos, dados podem ser perdidos ao salvar nos formatos abaixo)",
"View details" : "Ver detalhes",
"Save" : "Salvar",
- "Mixed Active Content is not allowed. HTTPS address for Document Server is required." : "Conteúdo Misto não é permitido. É necessário um endereço HTTPS para o Servidor de Documentos.",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "Conteúdo Misto não é permitido. É necessário um endereço HTTPS para o ONLYOFFICE Docs.",
"Restrict access to editors to following groups" : "Acesso apenas para os seguintes grupos",
"Server settings" : "Configurações do servidor",
"Common settings" : "Configurações comuns",
@@ -56,10 +56,10 @@
"File saved" : "O arquivo foi salvo",
"Insert image" : "Inserir imagem",
"Select recipients" : "Selecione os destinatários",
- "Connect to demo ONLYOFFICE Document Server" : "Conectar ao Servidor de documentos de demonstração do ONLYOFFICE",
+ "Connect to demo ONLYOFFICE Docs server" : "Conectar ao Servidor de demonstração do ONLYOFFICE Docs",
"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 Document Server." : "O período de teste de 30 dias acabou, você não pode mais se conectar ao Servidor de documentos de demonstração do ONLYOFFICE",
- "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data." : "Você está usando o Servidor de documentos de demonstração pública. Não armazene dados confidenciais.",
+ "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",
@@ -98,6 +98,15 @@
"Template successfully added": "Modelo adicionado com sucesso",
"Template successfully deleted": "Modelo excluído com sucesso",
"Common templates": "Modelos comuns",
- "Failed to delete template": "Falha ao excluir modelo"
+ "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",
+ "Convert into": "Converter em",
+ "Origin format": "Formato de origem",
+ "Failed to send notification": "Falha ao enviar notificação",
+ "Notification sent successfully": "Notificação enviada com sucesso",
+ "%1$s mentioned in the %2$s: \"%3$s\".": "%1$s mencionado em %2$s: \"%3$s\".",
+ "{notifier} mentioned in the {file}: \"%1$s\".": "{notifier} mencionado em {file}: \"%1$s\"."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
diff --git a/l10n/ru.js b/l10n/ru.js
index 68795f5..6543f1b 100644
--- a/l10n/ru.js
+++ b/l10n/ru.js
@@ -32,18 +32,18 @@ OC.L10N.register(
"Server can't read xml" : "Невозможно прочитать xml файл на сервере",
"Bad Response. Errors: " : "Неправильный ответ. Ошибки:",
"Documentation" : "Документация",
- "ONLYOFFICE Document Service 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 определяет адрес сервера с установлеными службами документов. Пожалуйста, замените '<documentserver>' в поле ниже на адрес сервера.",
- "Document Editing Service address" : "Адрес службы редактирования документов",
+ "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" : "Дополнительные настройки сервера",
- "Document Editing Service address for internal requests from the server" : "Адрес службы редактирования документов для внутренних запросов сервера",
- "Server address for internal requests from the Document Editing Service" : "Адрес сервера для внутренних запросов службы редактирования документов",
+ "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" : "Приложение по умолчанию для открытия формата",
"Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "Открыть файл на редактирование (из-за ограничений формата данные могут быть утеряны при сохранении в форматы из списка ниже)",
"View details" : "Подробнее",
"Save" : "Сохранить",
- "Mixed Active Content is not allowed. HTTPS address for Document Server is required." : "Смешанное активное содержимое запрещено. Для Сервера документов необходимо использовать HTTPS-адрес.",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "Смешанное активное содержимое запрещено. Для ONLYOFFICE Docs необходимо использовать HTTPS-адрес.",
"Restrict access to editors to following groups" : "Дать доступ к редакторам только следующим группам",
"Server settings" : "Настройки сервера",
"Common settings" : "Общие настройки",
@@ -58,10 +58,10 @@ OC.L10N.register(
"File saved" : "Файл сохранён",
"Insert image" : "Вставить изображение",
"Select recipients" : "Выберите получателей",
- "Connect to demo ONLYOFFICE Document Server" : "Подключиться к демонстрационному Серверу Документов ONLYOFFICE",
+ "Connect to demo ONLYOFFICE Docs server" : "Подключиться к демонстрационному серверу ONLYOFFICE Docs",
"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 Document Server." : "30-дневный тестовый период закончен, вы больше не можете подключаться к демонстрационному Серверу Документов ONLYOFFICE",
- "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data." : "Вы используете публичный демонстрационный сервер документов ONLYOFFICE. Пожалуйста, не храните конфиденциальные данные.",
+ "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" : "Включить водяной знак",
@@ -100,6 +100,15 @@ 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": "Скачать",
+ "Convert into": "Конвертировать в",
+ "Origin format": "Оригинальный формат",
+ "Failed to send notification": "Ошибка отправки оповещения",
+ "Notification sent successfully": "Оповещение успешно отправлено",
+ "%1\$s mentioned in the %2\$s: \"%3\$s\".": "%1\$s упоминул в %2\$s: \"%3\$s\".",
+ "{notifier} mentioned in the {file}: \"%1\$s\".": "{notifier} упоминул в {file}: \"%1\$s\"."
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/l10n/ru.json b/l10n/ru.json
index 80ef70a..38b928e 100644
--- a/l10n/ru.json
+++ b/l10n/ru.json
@@ -30,18 +30,18 @@
"Server can't read xml" : "Невозможно прочитать xml файл на сервере",
"Bad Response. Errors: " : "Неправильный ответ. Ошибки:",
"Documentation" : "Документация",
- "ONLYOFFICE Document Service 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 определяет адрес сервера с установлеными службами документов. Пожалуйста, замените '<documentserver>' в поле ниже на адрес сервера.",
- "Document Editing Service address" : "Адрес службы редактирования документов",
+ "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" : "Дополнительные настройки сервера",
- "Document Editing Service address for internal requests from the server" : "Адрес службы редактирования документов для внутренних запросов сервера",
- "Server address for internal requests from the Document Editing Service" : "Адрес сервера для внутренних запросов службы редактирования документов",
+ "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" : "Приложение по умолчанию для открытия формата",
"Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "Открыть файл на редактирование (из-за ограничений формата данные могут быть утеряны при сохранении в форматы из списка ниже)",
"View details" : "Подробнее",
"Save" : "Сохранить",
- "Mixed Active Content is not allowed. HTTPS address for Document Server is required." : "Смешанное активное содержимое запрещено. Для Сервера документов необходимо использовать HTTPS-адрес.",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "Смешанное активное содержимое запрещено. Для ONLYOFFICE Docs необходимо использовать HTTPS-адрес.",
"Restrict access to editors to following groups" : "Дать доступ к редакторам только следующим группам",
"Server settings" : "Настройки сервера",
"Common settings" : "Общие настройки",
@@ -56,10 +56,10 @@
"File saved" : "Файл сохранён",
"Insert image" : "Вставить изображение",
"Select recipients" : "Выберите получателей",
- "Connect to demo ONLYOFFICE Document Server" : "Подключиться к демонстрационному Серверу Документов ONLYOFFICE",
+ "Connect to demo ONLYOFFICE Docs server" : "Подключиться к демонстрационному серверу ONLYOFFICE Docs",
"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 Document Server." : "30-дневный тестовый период закончен, вы больше не можете подключаться к демонстрационному Серверу Документов ONLYOFFICE",
- "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data." : "Вы используете публичный демонстрационный сервер документов ONLYOFFICE. Пожалуйста, не храните конфиденциальные данные.",
+ "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" : "Включить водяной знак",
@@ -98,6 +98,15 @@
"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": "Скачать",
+ "Convert into": "Конвертировать в",
+ "Origin format": "Оригинальный формат",
+ "Failed to send notification": "Ошибка отправки оповещения",
+ "Notification sent successfully": "Оповещение успешно отправлено",
+ "%1$s mentioned in the %2$s: \"%3$s\".": "%1$s упоминул в %2$s: \"%3$s\".",
+ "{notifier} mentioned in the {file}: \"%1$s\".": "{notifier} упоминул в {file}: \"%1$s\"."
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
} \ No newline at end of file
diff --git a/l10n/sv.js b/l10n/sv.js
index 8ce9c93..3d00d9c 100644
--- a/l10n/sv.js
+++ b/l10n/sv.js
@@ -32,18 +32,18 @@ OC.L10N.register(
"Server can't read xml" : "Servern kan inte läsa XML",
"Bad Response. Errors: " : "Felaktigt svar. Fel:",
"Documentation" : "Dokumentation",
- "ONLYOFFICE Document Service Location specifies the address of the server with the document services installed. Please change the '<documentserver>' for the server address in the below line." : "Dokumenttjänstens plats specificerar adressen till servern där ONLYOFFICE är installerad. Ändra '<dokumentserver>' till serverns adress i nedanstående rad.",
- "Document Editing Service address" : "Adress till dokumentredigeringstjänsten",
+ "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 plats specificerar adressen till servern där ONLYOFFICE är installerad. Ändra '<dokumentserver>' till serverns adress i nedanstående rad.",
+ "ONLYOFFICE Docs address" : "Adress till ONLYOFFICE Docs",
"Advanced server settings" : "Avancerade serverinställningar",
- "Document Editing Service address for internal requests from the server" : "Adress till dokumentredigeringstjänsten för interna förfragningar från servern",
- "Server address for internal requests from the Document Editing Service" : "Serveradress för interna förfrågningar från dokumentredigeringstjänsten",
+ "ONLYOFFICE Docs address for internal requests from the server" : "Adress till ONLYOFFICE Docs för interna förfragningar från servern",
+ "Server address for internal requests from ONLYOFFICE Docs" : "Serveradress för interna förfrågningar från ONLYOFFICE Docs",
"Secret key (leave blank to disable)" : "Hemlig nyckel (lämna blank för att inaktivera)",
"Open file in the same tab" : "Öppna dokument i samma flik",
"The default application for opening the format" : "Standardprogram for att öppna format",
"Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "Öppna filen för redigering (på grund av formatrestriktioner kan data gå förlorade när du sparar i format från listan nedan)",
"View details" : "Visa detaljer",
"Save" : "Spara",
- "Mixed Active Content is not allowed. HTTPS address for Document Server is required." : "Blandat aktivt innehåll är inte tillåtet. HTTPS-adress till dokumentserver krävs.",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "Blandat aktivt innehåll är inte tillåtet. HTTPS-adress till ONLYOFFICE Docs krävs.",
"Restrict access to editors to following groups" : "Begränsa åtkomst till följande grupper",
"Server settings" : "Serverinställningar",
"Common settings" : "Allmänna inställningar",
@@ -58,10 +58,10 @@ OC.L10N.register(
"File saved" : "Filen har sparats",
"Insert image" : "Infoga bild",
"Select recipients" : "Välj mottagare",
- "Connect to demo ONLYOFFICE Document Server" : "Anslut till demo ONLYOFFICE Dokumentserver",
+ "Connect to demo ONLYOFFICE Docs server" : "Anslut till demo ONLYOFFICE Docsserver",
"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 Document Server." : "När 30-dagars testperioden är över, kan du inte längre ansluta till demo ONLYOFFICE Dokumentserver.",
- "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data." : "Du använder en offentlig demo ONLYOFFICE Dokumentserver. Lagra inte privat känslig information.",
+ "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",
@@ -78,6 +78,7 @@ OC.L10N.register(
"Show watermark for read only link shares" : "Visa vattenmärke för skrivskyddade länkdelningar",
"Show watermark on link shares with specific system tags" : "Visa vattenmärke för länkdelningar med specifika systemtaggar",
"Select tag" : "Välj tagg",
+ "Select file to compare" : "Välj fil att jämföra",
"Review mode for viewing": "Granskningsläge för visning",
"Markup": "Markering",
"Final": "Slutgiltig",
@@ -99,6 +100,15 @@ OC.L10N.register(
"Template successfully added": "Mallen lades till",
"Template successfully deleted": "Mallen har tagits bort",
"Common templates": "Delade mallar",
- "Failed to delete template": "Det gick inte att ta bort mallen"
+ "Failed to delete template": "Det gick inte att ta bort mallen",
+ "File has been converted. Its content might look different.": "Filen har konverterats. Dess innehåll kan se annorlunda ut.",
+ "Download as": "Ladda ned som",
+ "Download": "Ladda ned",
+ "Convert into": "Konvertera till",
+ "Origin format": "Ursprungsformat",
+ "Failed to send notification": "Det gick inte att skicka aviseringen",
+ "Notification sent successfully": "Aviseringen har skickats",
+ "%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} har nämnt i {file}: \"%1\$s\"."
},
"nplurals=2; plural=(n != 1);");
diff --git a/l10n/sv.json b/l10n/sv.json
index d34b4ef..99c8845 100644
--- a/l10n/sv.json
+++ b/l10n/sv.json
@@ -30,18 +30,18 @@
"Server can't read xml" : "Servern kan inte läsa XML",
"Bad Response. Errors: " : "Felaktigt svar. Fel:",
"Documentation" : "Dokumentation",
- "ONLYOFFICE Document Service Location specifies the address of the server with the document services installed. Please change the '<documentserver>' for the server address in the below line." : "Dokumenttjänstens plats specificerar adressen till servern där ONLYOFFICE är installerad. Ändra '<dokumentserver>' till serverns adress i nedanstående rad.",
- "Document Editing Service address" : "Adress till dokumentredigeringstjänsten",
+ "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 plats specificerar adressen till servern där ONLYOFFICE är installerad. Ändra '<dokumentserver>' till serverns adress i nedanstående rad.",
+ "ONLYOFFICE Docs address" : "Adress till ONLYOFFICE Docs",
"Advanced server settings" : "Avancerade serverinställningar",
- "Document Editing Service address for internal requests from the server" : "Adress till dokumentredigeringstjänsten för interna förfragningar från servern",
- "Server address for internal requests from the Document Editing Service" : "Serveradress för interna förfrågningar från dokumentredigeringstjänsten",
+ "ONLYOFFICE Docs address for internal requests from the server" : "Adress till ONLYOFFICE Docs för interna förfragningar från servern",
+ "Server address for internal requests from ONLYOFFICE Docs" : "Serveradress för interna förfrågningar från ONLYOFFICE Docs",
"Secret key (leave blank to disable)" : "Hemlig nyckel (lämna blank för att inaktivera)",
"Open file in the same tab" : "Öppna dokument i samma flik",
"The default application for opening the format" : "Standardprogram for att öppna format",
"Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "Öppna filen för redigering (på grund av formatrestriktioner kan data gå förlorade när du sparar i format från listan nedan)",
"View details" : "Visa detaljer",
"Save" : "Spara",
- "Mixed Active Content is not allowed. HTTPS address for Document Server is required." : "Blandat aktivt innehåll är inte tillåtet. HTTPS-adress till dokumentserver krävs.",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "Blandat aktivt innehåll är inte tillåtet. HTTPS-adress till ONLYOFFICE Docs krävs.",
"Restrict access to editors to following groups" : "Begränsa åtkomst till följande grupper",
"Server settings" : "Serverinställningar",
"Common settings" : "Allmänna inställningar",
@@ -56,10 +56,10 @@
"File saved" : "Filen har sparats",
"Insert image" : "Infoga bild",
"Select recipients" : "Välj mottagare",
- "Connect to demo ONLYOFFICE Document Server" : "Anslut till demo ONLYOFFICE Dokumentserver",
+ "Connect to demo ONLYOFFICE Docs server" : "Anslut till demo ONLYOFFICE Docsserver",
"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 Document Server." : "När 30-dagars testperioden är över, kan du inte längre ansluta till demo ONLYOFFICE Dokumentserver.",
- "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data." : "Du använder en offentlig demo ONLYOFFICE Dokumentserver. Lagra inte privat känslig information.",
+ "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",
@@ -76,6 +76,7 @@
"Show watermark for read only link shares" : "Visa vattenmärke för skrivskyddade länkdelningar",
"Show watermark on link shares with specific system tags" : "Visa vattenmärke för länkdelningar med specifika systemtaggar",
"Select tag" : "Välj tagg",
+ "Select file to compare" : "Välj fil att jämföra",
"Review mode for viewing": "Granskningsläge för visning",
"Markup": "Markering",
"Final": "Slutgiltig",
@@ -84,7 +85,7 @@
"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) ",
"All history successfully deleted": "All historik har tagits bort",
"Create": "Skapa",
"Select template" : "Välj mall",
@@ -97,6 +98,15 @@
"Template successfully added": "Mallen lades till",
"Template successfully deleted": "Mallen har tagits bort",
"Common templates": "Delade mallar",
- "Failed to delete template": "Det gick inte att ta bort mallen"
+ "Failed to delete template": "Det gick inte att ta bort mallen",
+ "File has been converted. Its content might look different.": "Filen har konverterats. Dess innehåll kan se annorlunda ut.",
+ "Download as": "Ladda ned som",
+ "Download": "Ladda ned",
+ "Convert into": "Konvertera till",
+ "Origin format": "Ursprungsformat",
+ "Failed to send notification": "Det gick inte att skicka aviseringen",
+ "Notification sent successfully": "Aviseringen har skickats",
+ "%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} har nämnt i {file}: \"%1$s\"."
},"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 e7df499..81512d0 100644
--- a/l10n/zh_CN.js
+++ b/l10n/zh_CN.js
@@ -32,18 +32,18 @@ OC.L10N.register(
"Server can't read xml" : "服务器无法读取XML",
"Bad Response. Errors: " : "错误的返回: ",
"Documentation" : "文档集",
- "ONLYOFFICE Document Service 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 文档服务地址需要一个确切的文档服务器的地址,请在下方的'<documentserver>' 中填入。",
- "Document Editing Service address" : "文档编辑服务地址",
+ "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" : "更多设置",
- "Document Editing Service address for internal requests from the server": "用于服务器内部访问的文档编辑服务器的地址",
- "Server address for internal requests from the Document Editing Service": "用于文档编辑服务内部请求的服务器的地址",
+ "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": "默认关联的文件格式",
"Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "默认的文件编辑器 (由于文件格式限制,保存为下列格式时,数据可能会缺失)",
"View details" : "查看详情",
"Save" : "保存",
- "Mixed Active Content is not allowed. HTTPS address for Document Server is required." : "不允许混合活动内容,请使用HTTPS连接文件服务器。",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "不允许混合活动内容,请使用HTTPS连接ONLYOFFICE Docs。",
"Restrict access to editors to following groups" : "仅授权的用户组可以使用该服务",
"Server settings" : "服务器设置",
"Common settings" : "常用设置",
@@ -58,10 +58,10 @@ OC.L10N.register(
"File saved" : "文件已保存",
"Insert image" : "插入图片",
"Select recipients" : "选择接收者",
- "Connect to demo ONLYOFFICE Document Server" : "连接到 ONLYOFFICE 演示服务器",
- "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 Document Server." : "30天试用期已结束,无法连接演示服务器。",
- "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data." : "您正在使用公开的演示服务器,请勿存储隐私数据。",
+ "Connect to demo ONLYOFFICE Docs server" : "连接到 ONLYOFFICE Docs 服务器的演示",
+ "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" : "启用水印",
@@ -100,6 +100,15 @@ 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": "下载",
+ "Convert into": "转换为",
+ "Origin format": "原产地格式",
+ "Failed to send notification": "发送通知失败",
+ "Notification sent successfully": "通知发送成功",
+ "%1\$s mentioned in the %2\$s: \"%3\$s\".": "%1\$s 提到 %2\$s: \"%3\$s\".",
+ "{notifier} mentioned in the {file}: \"%1\$s\".": "{notifier} 提到 {file}: \"%1\$s\"."
},
"nplurals=2; plural=(n != 1);");
diff --git a/l10n/zh_CN.json b/l10n/zh_CN.json
index df51c7f..4b082de 100644
--- a/l10n/zh_CN.json
+++ b/l10n/zh_CN.json
@@ -30,18 +30,18 @@
"Server can't read xml" : "服务器无法读取XML",
"Bad Response. Errors: " : "错误的返回: ",
"Documentation" : "文档集",
- "ONLYOFFICE Document Service 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 文档服务地址需要一个确切的文档服务器的地址,请在下方的'<documentserver>' 中填入。",
- "Document Editing Service address" : "文档编辑服务地址",
+ "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" : "更多设置",
- "Document Editing Service address for internal requests from the server": "用于服务器内部访问的文档编辑服务器的地址",
- "Server address for internal requests from the Document Editing Service": "用于文档编辑服务内部请求的服务器的地址",
+ "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": "默认关联的文件格式",
"Open the file for editing (due to format restrictions, the data might be lost when saving to the formats from the list below)" : "默认的文件编辑器 (由于文件格式限制,保存为下列格式时,数据可能会缺失)",
"View details" : "查看详情",
"Save" : "保存",
- "Mixed Active Content is not allowed. HTTPS address for Document Server is required." : "不允许混合活动内容,请使用HTTPS连接文件服务器。",
+ "Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required." : "不允许混合活动内容,请使用HTTPS连接ONLYOFFICE Docs。",
"Restrict access to editors to following groups" : "仅授权的用户组可以使用该服务",
"Server settings" : "服务器设置",
"Common settings" : "常用设置",
@@ -56,10 +56,10 @@
"File saved" : "文件已保存",
"Insert image" : "插入图片",
"Select recipients" : "选择接收者",
- "Connect to demo ONLYOFFICE Document Server" : "连接到 ONLYOFFICE 演示服务器",
+ "Connect to demo ONLYOFFICE Docs server" : "连接到 ONLYOFFICE Docs 服务器的演示",
"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 Document Server." : "30天试用期已结束,无法连接演示服务器。",
- "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data." : "您正在使用公开的演示服务器,请勿存储隐私数据。",
+ "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" : "启用水印",
@@ -98,6 +98,15 @@
"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": "下载",
+ "Convert into": "转换为",
+ "Origin format": "原产地格式",
+ "Failed to send notification": "发送通知失败",
+ "Notification sent successfully": "通知发送成功",
+ "%1$s mentioned in the %2$s: \"%3$s\".": "%1$s 提到 %2$s: \"%3$s\".",
+ "{notifier} mentioned in the {file}: \"%1$s\".": "{notifier} 提到 {file}: \"%1$s\"."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/appconfig.php b/lib/appconfig.php
index 3d0d6f3..87865dc 100644
--- a/lib/appconfig.php
+++ b/lib/appconfig.php
@@ -271,6 +271,13 @@ class AppConfig {
public $_customization_autosave = "customization_autosave";
/**
+ * The config key for the goback
+ *
+ * @var string
+ */
+ public $_customization_goback = "customization_goback";
+
+ /**
* @param string $AppName - application name
*/
public function __construct($AppName) {
@@ -623,7 +630,7 @@ class AppConfig {
* @return bool
*/
public function GetSameTab() {
- return $this->config->getAppValue($this->appName, $this->_sameTab, "false") === "true";
+ return $this->config->getAppValue($this->appName, $this->_sameTab, "true") === "true";
}
/**
@@ -960,6 +967,7 @@ class AppConfig {
$group = \OC::$server->getGroupManager()->get($groupName);
if ($group === null) {
\OC::$server->getLogger()->error("Group is unknown $groupName", ["app" => $this->appName]);
+ $this->SetLimitGroups(array_diff($groups, [$groupName]));
} else {
if ($group->inGroup($user)) {
return true;
@@ -1080,39 +1088,39 @@ class AppConfig {
* @var array
*/
private $formats = [
- "csv" => [ "mime" => "text/csv", "type" => "spreadsheet", "edit" => true, "editable" => true ],
- "doc" => [ "mime" => "application/msword", "type" => "text", "conv" => true ],
- "docm" => [ "mime" => "application/vnd.ms-word.document.macroEnabled.12", "type" => "text", "conv" => true ],
- "docx" => [ "mime" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "type" => "text", "edit" => true, "def" => true ],
- "dot" => [ "type" => "text", "conv" => true ],
- "dotx" => [ "mime" => "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "type" => "text", "conv" => true ],
- "epub" => [ "mime" => "application/epub+zip", "type" => "text", "conv" => true ],
+ "csv" => [ "mime" => "text/csv", "type" => "spreadsheet", "edit" => true, "editable" => true, "saveas" => ["ods", "pdf", "xlsx"] ],
+ "doc" => [ "mime" => "application/msword", "type" => "text", "conv" => true, "saveas" => ["docx", "odt", "pdf", "rtf", "txt"] ],
+ "docm" => [ "mime" => "application/vnd.ms-word.document.macroEnabled.12", "type" => "text", "conv" => true, "saveas" => ["docx", "odt", "pdf", "rtf", "txt"] ],
+ "docx" => [ "mime" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "type" => "text", "edit" => true, "def" => true, "saveas" => ["odt", "pdf", "rtf", "txt"] ],
+ "dot" => [ "type" => "text", "conv" => true, "saveas" => ["docx", "odt", "pdf", "rtf", "txt"] ],
+ "dotx" => [ "mime" => "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "type" => "text", "conv" => true, "saveas" => ["docx", "odt", "pdf", "rtf", "txt"] ],
+ "epub" => [ "mime" => "application/epub+zip", "type" => "text", "conv" => true, "saveas" => ["docx", "odt", "pdf", "rtf", "txt"] ],
"htm" => [ "type" => "text", "conv" => true ],
- "html" => [ "mime" => "text/html", "type" => "text", "conv" => true ],
- "odp" => [ "mime" => "application/vnd.oasis.opendocument.presentation", "type" => "presentation", "conv" => true, "editable" => true ],
- "ods" => [ "mime" => "application/vnd.oasis.opendocument.spreadsheet", "type" => "spreadsheet", "conv" => true, "editable" => true ],
- "odt" => [ "mime" => "application/vnd.oasis.opendocument.text", "type" => "text", "conv" => true, "editable" => true ],
- "otp" => [ "mime" => "application/vnd.oasis.opendocument.presentation-template", "type" => "presentation", "conv" => true ],
- "ots" => [ "mime" => "application/vnd.oasis.opendocument.spreadsheet-template", "type" => "spreadsheet", "conv" => true ],
- "ott" => [ "mime" => "application/vnd.oasis.opendocument.text-template", "type" => "text", "conv" => true ],
+ "html" => [ "mime" => "text/html", "type" => "text", "conv" => true, "saveas" => ["docx", "odt", "pdf", "rtf", "txt"] ],
+ "odp" => [ "mime" => "application/vnd.oasis.opendocument.presentation", "type" => "presentation", "conv" => true, "editable" => true, "saveas" => ["pdf", "pptx"] ],
+ "ods" => [ "mime" => "application/vnd.oasis.opendocument.spreadsheet", "type" => "spreadsheet", "conv" => true, "editable" => true, "saveas" => ["csv", "pdf", "xlsx"] ],
+ "odt" => [ "mime" => "application/vnd.oasis.opendocument.text", "type" => "text", "conv" => true, "editable" => true, "saveas" => ["docx", "pdf", "rtf", "txt"] ],
+ "otp" => [ "mime" => "application/vnd.oasis.opendocument.presentation-template", "type" => "presentation", "conv" => true, "saveas" => ["pdf", "pptx", "odp"] ],
+ "ots" => [ "mime" => "application/vnd.oasis.opendocument.spreadsheet-template", "type" => "spreadsheet", "conv" => true, "saveas" => ["csv", "ods", "pdf", "xlsx"] ],
+ "ott" => [ "mime" => "application/vnd.oasis.opendocument.text-template", "type" => "text", "conv" => true, "saveas" => ["docx", "odt", "pdf", "rtf", "txt"] ],
"pdf" => [ "mime" => "application/pdf", "type" => "text" ],
- "pot" => [ "type" => "presentation", "conv" => true ],
- "potm" => [ "mime" => "application/vnd.ms-powerpoint.template.macroEnabled.12", "type" => "presentation", "conv" => true ],
- "potx" => [ "mime" => "application/vnd.openxmlformats-officedocument.presentationml.template", "type" => "presentation", "conv" => true ],
- "pps" => [ "type" => "presentation", "conv" => true ],
- "ppsm" => [ "mime" => "application/vnd.ms-powerpoint.slideshow.macroEnabled.12", "type" => "presentation", "conv" => true ],
- "ppsx" => [ "mime" => "application/vnd.openxmlformats-officedocument.presentationml.slideshow", "type" => "presentation", "conv" => true ],
- "ppt" => [ "mime" => "application/vnd.ms-powerpoint", "type" => "presentation", "conv" => true ],
- "pptm" => [ "mime" => "application/vnd.ms-powerpoint.presentation.macroEnabled.12", "type" => "presentation", "conv" => true ],
- "pptx" => [ "mime" => "application/vnd.openxmlformats-officedocument.presentationml.presentation", "type" => "presentation", "edit" => true, "def" => true ],
- "rtf" => [ "mime" => "text/rtf", "type" => "text", "conv" => true, "editable" => true ],
- "txt" => [ "mime" => "text/plain", "type" => "text", "edit" => true, "editable" => true ],
- "xls" => [ "mime" => "application/vnd.ms-excel", "type" => "spreadsheet", "conv" => true ],
- "xlsm" => [ "mime" => "application/vnd.ms-excel.sheet.macroEnabled.12", "type" => "spreadsheet", "conv" => true ],
- "xlsx" => [ "mime" => "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "type" => "spreadsheet", "edit" => true, "def" => true ],
- "xlt" => [ "type" => "spreadsheet", "conv" => true ],
- "xltm" => [ "mime" => "application/vnd.ms-excel.template.macroEnabled.12", "type" => "spreadsheet", "conv" => true ],
- "xltx" => [ "mime" => "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "type" => "spreadsheet", "conv" => true ]
+ "pot" => [ "type" => "presentation", "conv" => true, "saveas" => ["pdf", "pptx", "odp"] ],
+ "potm" => [ "mime" => "application/vnd.ms-powerpoint.template.macroEnabled.12", "type" => "presentation", "conv" => true, "saveas" => ["pdf", "pptx", "odp"] ],
+ "potx" => [ "mime" => "application/vnd.openxmlformats-officedocument.presentationml.template", "type" => "presentation", "conv" => true, "saveas" => ["pdf", "pptx", "odp"] ],
+ "pps" => [ "type" => "presentation", "conv" => true, "saveas" => ["pdf", "pptx", "odp"] ],
+ "ppsm" => [ "mime" => "application/vnd.ms-powerpoint.slideshow.macroEnabled.12", "type" => "presentation", "conv" => true, "saveas" => ["pdf", "pptx", "odp"] ],
+ "ppsx" => [ "mime" => "application/vnd.openxmlformats-officedocument.presentationml.slideshow", "type" => "presentation", "conv" => true, "saveas" => ["pdf", "pptx", "odp"] ],
+ "ppt" => [ "mime" => "application/vnd.ms-powerpoint", "type" => "presentation", "conv" => true, "saveas" => ["pdf", "pptx", "odp"] ],
+ "pptm" => [ "mime" => "application/vnd.ms-powerpoint.presentation.macroEnabled.12", "type" => "presentation", "conv" => true, "saveas" => ["pdf", "pptx", "odp"] ],
+ "pptx" => [ "mime" => "application/vnd.openxmlformats-officedocument.presentationml.presentation", "type" => "presentation", "edit" => true, "def" => true, "saveas" => ["pdf", "odp"] ],
+ "rtf" => [ "mime" => "text/rtf", "type" => "text", "conv" => true, "editable" => true, "saveas" => ["docx", "odt", "pdf", "txt"] ],
+ "txt" => [ "mime" => "text/plain", "type" => "text", "edit" => true, "editable" => true, "saveas" => ["docx", "odt", "pdf", "rtf"] ],
+ "xls" => [ "mime" => "application/vnd.ms-excel", "type" => "spreadsheet", "conv" => true, "saveas" => ["csv", "ods", "pdf", "xlsx"] ],
+ "xlsm" => [ "mime" => "application/vnd.ms-excel.sheet.macroEnabled.12", "type" => "spreadsheet", "conv" => true, "saveas" => ["csv", "ods", "pdf", "xlsx"] ],
+ "xlsx" => [ "mime" => "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "type" => "spreadsheet", "edit" => true, "def" => true, "saveas" => ["csv", "ods", "pdf"] ],
+ "xlt" => [ "type" => "spreadsheet", "conv" => true, "saveas" => ["csv", "ods", "pdf", "xlsx"] ],
+ "xltm" => [ "mime" => "application/vnd.ms-excel.template.macroEnabled.12", "type" => "spreadsheet", "conv" => true, "saveas" => ["csv", "ods", "pdf", "xlsx"] ],
+ "xltx" => [ "mime" => "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "type" => "spreadsheet", "conv" => true, "saveas" => ["csv", "ods", "pdf", "xlsx"] ]
];
/**
diff --git a/lib/directeditor.php b/lib/directeditor.php
index 87a7857..f7f694c 100644
--- a/lib/directeditor.php
+++ b/lib/directeditor.php
@@ -235,7 +235,9 @@ class DirectEditor implements IEditor {
"shareToken" => null,
"directToken" => $directToken,
"version" => 0,
- "inframe" => false
+ "isTemplate" => false,
+ "inframe" => false,
+ "anchor" => null
];
$response = new TemplateResponse($this->appName, "editor", $params, "base");
diff --git a/lib/documentservice.php b/lib/documentservice.php
index 308d1d6..5069506 100644
--- a/lib/documentservice.php
+++ b/lib/documentservice.php
@@ -383,7 +383,7 @@ class DocumentService {
if (preg_match("/^https:\/\//i", $urlGenerator->getAbsoluteURL("/"))
&& preg_match("/^http:\/\//i", $this->config->GetDocumentServerUrl())) {
- throw new \Exception($this->trans->t("Mixed Active Content is not allowed. HTTPS address for Document Server is required."));
+ throw new \Exception($this->trans->t("Mixed Active Content is not allowed. HTTPS address for ONLYOFFICE Docs is required."));
}
} catch (\Exception $e) {
diff --git a/lib/hooks.php b/lib/hooks.php
index b338c6d..d5ca173 100644
--- a/lib/hooks.php
+++ b/lib/hooks.php
@@ -187,6 +187,8 @@ class Hooks {
$fileId = $fileInfo->getId();
+ KeyManager::delete($fileId);
+
FileVersions::deleteVersion($ownerId, $fileId, $versionId);
} catch (\Exception $e) {
\OC::$server->getLogger()->logException($e, ["message" => "Hook: fileVersionRestore " . json_encode($params), "app" => self::$appName]);
diff --git a/lib/notifier.php b/lib/notifier.php
new file mode 100644
index 0000000..1b52fe3
--- /dev/null
+++ b/lib/notifier.php
@@ -0,0 +1,152 @@
+<?php
+/**
+ *
+ * (c) Copyright Ascensio System SIA 2021
+ *
+ * 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\IURLGenerator;
+use OCP\ILogger;
+use OCP\IUserManager;
+use OCP\L10N\IFactory;
+use OCP\Notification\INotification;
+use OCP\Notification\INotifier;
+
+class Notifier implements INotifier {
+
+ /**
+ * Application name
+ *
+ * @var string
+ */
+ private $appName;
+
+ /**
+ * IFactory
+ *
+ * @var IFactory
+ */
+ private $l10nFactory;
+
+ /**
+ * Url generator service
+ *
+ * @var IURLGenerator
+ */
+ private $urlGenerator;
+
+ /**
+ * Logger
+ *
+ * @var ILogger
+ */
+ private $logger;
+
+ /**
+ * User manager
+ *
+ * @var IUserManager
+ */
+ private $userManager;
+
+ /**
+ * @param string $AppName - application name
+ * @param IFactory $l10NFactory - l10n
+ * @param IURLGenerator $urlGenerator - url generator service
+ * @param ILogger $logger - logger
+ * @param IUserManager $userManager - user manager
+ */
+ public function __construct(string $appName,
+ IFactory $l10nFactory,
+ IURLGenerator $urlGenerator,
+ ILogger $logger,
+ IUserManager $userManager
+ ) {
+ $this->appName = $appName;
+ $this->l10nFactory = $l10nFactory;
+ $this->urlGenerator = $urlGenerator;
+ $this->logger = $logger;
+ $this->userManager = $userManager;
+ }
+
+ /**
+ * Identifier of the notifier, only use [a-z0-9_]
+ *
+ * @return string
+ */
+ public function getID(): string {
+ return $this->appName;
+ }
+
+ /**
+ * Human readable name describing the notifier
+ *
+ * @return string
+ */
+ public function getName(): string {
+ return $this->appName;
+ }
+
+ /**
+ * @param INotification $notification - notification object
+ * @param string $languageCode - the code of the language that should be used to prepare the notification
+ *
+ * @return INotification
+ */
+ public function prepare(INotification $notification, string $languageCode): INotification {
+ if ($notification->getApp() !== $this->appName) {
+ throw new \InvalidArgumentException("Notification not from " . $this->appName);
+ }
+
+ $parameters = $notification->getSubjectParameters();
+
+ $notifierId = $parameters["notifierId"];
+ $fileId = $parameters["fileId"];
+ $fileName = $parameters["fileName"];
+ $anchor = $parameters["anchor"];
+
+ $this->logger->info("Notify prepare: from $notifierId about $fileId ", ["app" => $this->appName]);
+
+ $notifier = $this->userManager->get($notifierId);
+ $notifierName = $notifier->getDisplayName();
+ $trans = $this->l10nFactory->get($this->appName, $languageCode);
+
+ $notification->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath($this->appName, "app-dark.svg")))
+ ->setParsedSubject($trans->t("%1\$s mentioned in the %2\$s: \"%3\$s\".", [$notifierName, $fileName, $notification->getObjectId()]))
+ ->setRichSubject($trans->t("{notifier} mentioned in the {file}: \"%1\$s\".", [$notification->getObjectId()]), [
+ "notifier" => [
+ "type" => "user",
+ "id" => $notifierId,
+ "name" => $notifierName
+ ],
+ "file" => [
+ "type" => "highlight",
+ "id" => $fileId,
+ "name" => $fileName
+ ]
+ ]);
+
+ $editorLink = $this->urlGenerator->linkToRouteAbsolute($this->appName . ".editor.index", [
+ "fileId" => $fileId,
+ "anchor" => $anchor
+ ]);
+
+ $notification->setLink($editorLink);
+
+ return $notification;
+ }
+} \ No newline at end of file
diff --git a/lib/preview.php b/lib/preview.php
index 2627712..42c50e6 100644
--- a/lib/preview.php
+++ b/lib/preview.php
@@ -40,6 +40,7 @@ use OCA\Onlyoffice\Crypt;
use OCA\Onlyoffice\DocumentService;
use OCA\Onlyoffice\FileUtility;
use OCA\Onlyoffice\FileVersions;
+use OCA\Onlyoffice\TemplateManager;
/**
* Preview provider
@@ -293,10 +294,11 @@ class Preview extends Provider {
* @param File $file - file
* @param IUser $user - user with access
* @param int $version - file version
+ * @param bool $template - file is template
*
* @return string
*/
- private function getUrl($file, $user = null, $version = 0) {
+ private function getUrl($file, $user = null, $version = 0, $template = false) {
$data = [
"action" => "download",
@@ -311,6 +313,9 @@ class Preview extends Provider {
if ($version > 0) {
$data["version"] = $version;
}
+ if ($template) {
+ $data["template"] = true;
+ }
$hashUrl = $this->crypt->GetHash($data);
@@ -342,6 +347,7 @@ class Preview extends Provider {
$key = null;
$versionNum = 0;
+ $template = false;
if (FileVersions::splitPathVersion($path) !== false) {
if ($this->versionManager === null || $owner === null) {
return [null, null, null];
@@ -375,7 +381,11 @@ class Preview extends Provider {
$key = DocumentService::GenerateRevisionId($key);
}
- $fileUrl = $this->getUrl($fileInfo, $owner, $versionNum);
+ if (TemplateManager::IsTemplate($fileInfo->getId())) {
+ $template = true;
+ }
+
+ $fileUrl = $this->getUrl($fileInfo, $owner, $versionNum, $template);
$fileExtension = $fileInfo->getExtension();
diff --git a/lib/templatemanager.php b/lib/templatemanager.php
index 0dd1b3d..dcadfb0 100644
--- a/lib/templatemanager.php
+++ b/lib/templatemanager.php
@@ -19,6 +19,7 @@
namespace OCA\Onlyoffice;
+use OCP\Files\File;
/**
* Template manager
@@ -60,60 +61,51 @@ class TemplateManager {
/**
* Get global templates
*
- * @param string $type - template format type
+ * @param string $mimetype - mimetype of the template
*
* @return array
*/
- public static function GetGlobalTemplates($type = null) {
- $templates = [];
+ public static function GetGlobalTemplates($mimetype = null) {
$templateDir = self::GetGlobalTemplateDir();
- if (!empty($type)) {
- $mime = self::GetMimeTemplate($type);
- $templatesList = $templateDir->searchByMime($mime);
+ if (!empty($mimetype)) {
+ $templatesList = $templateDir->searchByMime($mimetype);
} else {
$templatesList = $templateDir->getDirectoryListing();
}
- foreach ($templatesList as $templatesItem) {
- $template = [
- "id" => $templatesItem->getId(),
- "name" => $templatesItem->getName(),
- "type" => TemplateManager::GetTypeTemplate($templatesItem->getMimeType())
- ];
- array_push($templates, $template);
- }
-
- return $templates;
+ return $templatesList;
}
/**
- * Get template content
+ * Get template file
*
- * @param string $templateId - identifier file template
+ * @param string $templateId - identifier of the template
*
- * @return string
+ * @return File
*/
public static function GetTemplate($templateId) {
$logger = \OC::$server->getLogger();
+ if (empty($templateId)) {
+ $logger->info("templateId is empty", ["app" => self::$appName]);
+ return null;
+ }
+
$templateDir = self::GetGlobalTemplateDir();
try {
$templates = $templateDir->getById($templateId);
- } catch(\Exception $e) {
+ } catch (\Exception $e) {
$logger->logException($e, ["message" => "GetTemplate: $templateId", "app" => self::$appName]);
return null;
}
if (empty($templates)) {
- $logger->info("Template not found: $templateId", ["app" => self::$appName]);
return null;
}
- $content = $templates[0]->getContent();
-
- return $content;
+ return $templates[0];
}
/**
@@ -176,6 +168,23 @@ class TemplateManager {
}
/**
+ * Check file if it's template
+ *
+ * @param int $fileId - identifier file
+ *
+ * @return bool
+ */
+ public static function IsTemplate($fileId) {
+ $template = self::GetTemplate($fileId);
+
+ if (empty($template)) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
* Get template
*
* @param string $name - file name
@@ -188,6 +197,9 @@ class TemplateManager {
$lang = \OC::$server->getL10NFactory("")->get("")->getLanguageCode();
$templatePath = self::GetEmptyTemplatePath($lang, $ext);
+ if (!file_exists($templatePath)) {
+ return false;
+ }
$template = file_get_contents($templatePath);
return $template;
diff --git a/lib/templateprovider.php b/lib/templateprovider.php
new file mode 100644
index 0000000..1cc918a
--- /dev/null
+++ b/lib/templateprovider.php
@@ -0,0 +1,91 @@
+<?php
+/**
+ *
+ * (c) Copyright Ascensio System SIA 2020
+ *
+ * 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\Files\File;
+use OCP\Files\Template\ICustomTemplateProvider;
+use OCP\Files\Template\Template;
+use OCP\IURLGenerator;
+
+use OCA\Onlyoffice\TemplateManager;
+
+class TemplateProvider implements ICustomTemplateProvider {
+
+ /**
+ * Application name
+ *
+ * @var string
+ */
+ private $appName;
+
+ /**
+ * Url generator service
+ *
+ * @var IURLGenerator
+ */
+ private $urlGenerator;
+
+ /**
+ * @param string $AppName - application name
+ * @param IURLGenerator $urlGenerator - url generator service
+ */
+ public function __construct($AppName, IURLGenerator $urlGenerator) {
+ $this->appName = $AppName;
+ $this->urlGenerator = $urlGenerator;
+ }
+
+ /**
+ * Return a list of additional templates that the template provider is offering
+ *
+ * @param string $template - mimetype of the template
+ *
+ * @return array
+ */
+ public function getCustomTemplates($mimetype) : array {
+ $templates = [];
+
+ $templateFiles = TemplateManager::GetGlobalTemplates($mimetype);
+
+ foreach ($templateFiles as $templateFile) {
+ $template = new Template(
+ TemplateProvider::class,
+ $templateFile->getId(),
+ $templateFile
+ );
+
+ $template->setCustomPreviewUrl($this->urlGenerator->linkToRouteAbsolute($this->appName . ".template.preview", ["fileId" => $templateFile->getId()]));
+
+ array_push($templates, $template);
+ }
+
+ return $templates;
+ }
+
+ /**
+ * Return the file for a given template id
+ *
+ * @param string $templateId - identifier of the template
+ *
+ * @return File
+ */
+ public function getCustomTemplate($templateId) : File {
+ return TemplateManager::GetTemplate($templateId);
+ }
+} \ No newline at end of file
diff --git a/templates/downloadPicker.html b/templates/downloadPicker.html
new file mode 100644
index 0000000..1cb0ce2
--- /dev/null
+++ b/templates/downloadPicker.html
@@ -0,0 +1,6 @@
+<div id="{dialog_name}" class="onlyoffice-download-container" title="{dialog_title}">
+ <p></p>
+ <select id="onlyoffice-download-select">
+ <option data-value=""></option>
+ </select>
+</div>
diff --git a/templates/editor.php b/templates/editor.php
index e904b97..acf4e51 100644
--- a/templates/editor.php
+++ b/templates/editor.php
@@ -34,6 +34,7 @@
data-directtoken="<?php p($_["directToken"]) ?>"
data-version="<?php p($_["version"]) ?>"
data-template="<?php p($_["isTemplate"]) ?>"
+ data-anchor="<?php p($_["anchor"]) ?>"
data-inframe="<?php p($_["inframe"]) ?>"></div>
<?php if (!empty($_["documentServerUrl"])) { ?>
diff --git a/templates/loader.php b/templates/loader.html
index 217c84f..0327d21 100644
--- a/templates/loader.php
+++ b/templates/loader.html
@@ -1,23 +1,6 @@
-<?php
-/**
- *
- * (c) Copyright Ascensio System SIA 2021
- *
- * 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.
- *
- */
-?>
-
+<!DOCTYPE html>
+<html>
+ <head>
<style type="text/css">
#body-public #content {
min-height: 100%;
@@ -121,4 +104,8 @@
100%{top:100px;background:#55bce6;}
}
</style>
-<div class="loadmask"><div class="loader-page"><div class="loader-page-romb"><div class="romb" id="blue"></div><div class="romb" id="green"></div><div class="romb" id="red"></div></div></div></div>
+ </head>
+ <body>
+ <div class="loadmask"><div class="loader-page"><div class="loader-page-romb"><div class="romb" id="blue"></div><div class="romb" id="green"></div><div class="romb" id="red"></div></div></div></div>
+ </body>
+</html> \ No newline at end of file
diff --git a/templates/settings.php b/templates/settings.php
index 9a5ec14..73372d6 100644
--- a/templates/settings.php
+++ b/templates/settings.php
@@ -37,9 +37,9 @@
<h3><?php p($l->t("Server settings")) ?></h3>
<div id="onlyofficeAddrSettings">
- <p class="settings-hint"><?php p($l->t("ONLYOFFICE Document Service Location specifies the address of the server with the document services installed. Please change the '<documentserver>' for the server address in the below line.")) ?></p>
+ <p class="settings-hint"><?php p($l->t("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.")) ?></p>
- <p><?php p($l->t("Document Editing Service address")) ?></p>
+ <p><?php p($l->t("ONLYOFFICE Docs address")) ?></p>
<p><input id="onlyofficeUrl" value="<?php p($_["documentserver"]) ?>" placeholder="https://<documentserver>/" type="text"></p>
<p>
@@ -62,10 +62,10 @@
</a>
</p>
<div id="onlyofficeSecretPanel" class="onlyoffice-hide">
- <p class="onlyoffice-header"><?php p($l->t("Document Editing Service address for internal requests from the server")) ?></p>
+ <p class="onlyoffice-header"><?php p($l->t("ONLYOFFICE Docs address for internal requests from the server")) ?></p>
<p><input id="onlyofficeInternalUrl" value="<?php p($_["documentserverInternal"]) ?>" placeholder="https://<documentserver>/" type="text"></p>
- <p class="onlyoffice-header"><?php p($l->t("Server address for internal requests from the Document Editing Service")) ?></p>
+ <p class="onlyoffice-header"><?php p($l->t("Server address for internal requests from ONLYOFFICE Docs")) ?></p>
<p><input id="onlyofficeStorageUrl" value="<?php p($_["storageUrl"]) ?>" placeholder="<?php p($_["currentServer"]) ?>" type="text"></p>
</div>
</div>
@@ -78,13 +78,13 @@
<input type="checkbox" class="checkbox" id="onlyofficeDemo"
<?php if ($_["demo"]["enabled"]) { ?>checked="checked"<?php } ?>
<?php if (!$_["demo"]["available"]) { ?>disabled="disabled"<?php } ?> />
- <label for="onlyofficeDemo"><?php p($l->t("Connect to demo ONLYOFFICE Document Server")) ?></label>
+ <label for="onlyofficeDemo"><?php p($l->t("Connect to demo ONLYOFFICE Docs server")) ?></label>
<br />
<?php if ($_["demo"]["available"]) { ?>
<em><?php p($l->t("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.")) ?></em>
<?php } else { ?>
- <em><?php p($l->t("The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Document Server.")) ?></em>
+ <em><?php p($l->t("The 30-day test period is over, you can no longer connect to demo ONLYOFFICE Docs server.")) ?></em>
<?php } ?>
</div>
</div>
@@ -230,7 +230,7 @@
<p><button id="onlyofficeSave" class="button"><?php p($l->t("Save")) ?></button></p>
</div>
-<div class="section section-onlyoffice section-onlyoffice-templates">
+<div class="section section-onlyoffice section-onlyoffice-templates <?php if (empty($_["documentserver"]) && !$_["demo"]["enabled"] || !$_["successful"]) { ?>onlyoffice-hide<?php } ?>">
<h3>
<?php p($l->t("Common templates")) ?>
@@ -242,7 +242,7 @@
<li data-id=<?php p($template["id"]) ?> class="onlyoffice-template-item" >
<img src="/core/img/filetypes/x-office-<?php p($template["type"]) ?>.svg" />
<p><?php p($template["name"]) ?></p>
- <span class="onlyoffice-template-preview"></span>
+ <span class="onlyoffice-template-download"></span>
<span class="onlyoffice-template-delete icon-delete"></span>
</li>
<?php } ?>
diff --git a/templates/templateItem.html b/templates/templateItem.html
index edeb9a8..1e39ea9 100644
--- a/templates/templateItem.html
+++ b/templates/templateItem.html
@@ -1,6 +1,6 @@
<li data-id="" class="onlyoffice-template-item" >
<img src="" />
<p></p>
- <span class="onlyoffice-template-preview"></span>
+ <span class="onlyoffice-template-download"></span>
<span class="onlyoffice-template-delete icon-delete"></span>
</li> \ No newline at end of file