diff --git a/CHANGELOG.md b/CHANGELOG.md index ea137571..8413fdd6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Change Log +## 7.3.0 +## Added +- support docxf and oform formats +- create blank docxf from creation menu +- create docxf from docx from creation menu +- create oform from docxf from document manager + ## 7.2.1 ## Added - check document server version diff --git a/README.md b/README.md index 37ebe090..e591088b 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ The app allows to: Supported formats: -* For viewing and editing: DOCX, XLSX, PPTX, CSV, TXT. +* For viewing and editing: DOCX, XLSX, PPTX, CSV, TXT, DOCXF, OFORM. * For viewing only: PDF. * For converting to Office Open XML formats: DOC, DOCM, DOT, DOTX, EPUB, HTM, HTML, ODP, ODT, POT, POTM, POTX, PPS, PPSM, PPSX, PPT, PPTM, RTF, XLS, XLSM, XLT, XLTM, XLTX. @@ -172,18 +172,17 @@ The table below will help you to make the right choice. | **Support** | **Community Edition** | **Enterprise Edition** | | 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) | +| Premium support | [Contact us](mailto:sales@onlyoffice.com) | [Contact us](mailto:sales@onlyoffice.com) | | **Services** | **Community Edition** | **Enterprise Edition** | | Conversion Service | + | + | | Document Builder Service | + | + | | **Interface** | **Community Edition** | **Enterprise Edition** | | Tabbed interface | + | + | | Dark theme | + | + | -| 150% scaling | + | + | +| 125%, 150%, 175%, 200% scaling | + | + | | White Label | - | - | -| Integrated test example (node.js)* | - | + | -| Mobile web editors | - | + | -| Access to pro features via desktop | - | + | +| Integrated test example (node.js) | + | + | +| Mobile web editors | - | +* | | **Plugins & Macros** | **Community Edition** | **Enterprise Edition** | | Plugins | + | + | | Macros | + | + | @@ -197,30 +196,34 @@ The table below will help you to make the right choice. | **Document Editor features** | **Community Edition** | **Enterprise Edition** | | Font and paragraph formatting | + | + | | Object insertion | + | + | -| Adding Content control | - | + | +| Adding Content control | + | + | | Editing Content control | + | + | | Layout tools | + | + | | Table of contents | + | + | | Navigation panel | + | + | | Mail Merge | + | + | -| Comparing Documents | - | +* | +| Comparing Documents | + | + | | **Spreadsheet Editor features** | **Community Edition** | **Enterprise Edition** | | Font and paragraph formatting | + | + | | Object insertion | + | + | | Functions, formulas, equations | + | + | | Table templates | + | + | | Pivot tables | + | + | -| Data validation | + | + | -| Conditional formatting for viewing | +** | +** | +| Data validation | + | + | +| Conditional formatting | + | + | +| Sparklines | + | + | +| Sheet Views | + | + | | **Presentation Editor features** | **Community Edition** | **Enterprise Edition** | | Font and paragraph formatting | + | + | | Object insertion | + | + | | Transitions | + | + | | Presenter mode | + | + | | Notes | + | + | +| **Form creator features** | **Community Edition** | **Enterprise Edition** | +| Adding form fields | + | + | +| Form preview | + | + | +| Saving as PDF | + | + | | | [Get it now](https://www.onlyoffice.com/download-docs.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubNextcloud#docs-community) | [Start Free Trial](https://www.onlyoffice.com/download-docs.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubNextcloud#docs-enterprise) | -\* It's possible to add documents for comparison from your local drive, from URL and from Nextcloud storage. - -\** Support for all conditions and gradient. Adding/Editing capabilities are coming soon +\* If supported by DMS. diff --git a/appinfo/application.php b/appinfo/application.php index 5df277ad..8088c0f7 100644 --- a/appinfo/application.php +++ b/appinfo/application.php @@ -31,6 +31,7 @@ use OCP\Files\Template\ITemplateManager; use OCP\Files\Template\TemplateFileCreator; use OCA\Files\Event\LoadAdditionalScriptsEvent; +use OCP\Files\IMimeTypeDetector; use OCP\IL10N; use OCP\IPreview; use OCP\ITagManager; @@ -217,6 +218,10 @@ public function register(IRegistrationContext $context): void { return $container->query(Preview::class); }); + $detector = $container->query(IMimeTypeDetector::class); + $detector->getAllMappings(); + $detector->registerType("docxf", "application/vnd.openxmlformats-officedocument.wordprocessingml.document.docxf"); + $detector->registerType("oform", "application/vnd.openxmlformats-officedocument.wordprocessingml.document.oform"); } public function boot(IBootContext $context): void { diff --git a/appinfo/info.xml b/appinfo/info.xml index fbbda0df..95534f21 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -6,7 +6,7 @@ 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. apache Ascensio System SIA - 7.2.1 + 7.3.0 Onlyoffice @@ -38,4 +38,9 @@ OCA\Onlyoffice\Command\DocumentServer + + + OCA\Onlyoffice\Migration\MimeRepair + + diff --git a/assets b/assets index 2c722cce..47e28a87 160000 --- a/assets +++ b/assets @@ -1 +1 @@ -Subproject commit 2c722cce9e046999afbff7b956c9a9f6f8c773c0 +Subproject commit 47e28a87f5eb0fd90739ff8a6f959e7807d47b0b diff --git a/controller/editorapicontroller.php b/controller/editorapicontroller.php index e7c25ae7..21378c71 100644 --- a/controller/editorapicontroller.php +++ b/controller/editorapicontroller.php @@ -319,13 +319,14 @@ public function config($fileId, $filePath = null, $shareToken = null, $directTok } $canEdit = isset($format["edit"]) && $format["edit"]; + $canFillForms = isset($format["fillForms"]) && $format["fillForms"]; $editable = $version < 1 && !$template && $file->isUpdateable() && !$isTempLock && (empty($shareToken) || ($share->getPermissions() & Constants::PERMISSION_UPDATE) === Constants::PERMISSION_UPDATE); $params["document"]["permissions"]["edit"] = $editable; - if ($editable && $canEdit) { + if ($editable && ($canEdit || $canFillForms)) { $hashCallback = $this->crypt->GetHash(["userId" => $userId, "fileId" => $file->getId(), "filePath" => $filePath, "shareToken" => $shareToken, "action" => "track"]); $callback = $this->urlGenerator->linkToRouteAbsolute($this->appName . ".callback.track", ["doc" => $hashCallback]); diff --git a/controller/editorcontroller.php b/controller/editorcontroller.php index 1bb8c870..d85e0251 100644 --- a/controller/editorcontroller.php +++ b/controller/editorcontroller.php @@ -200,6 +200,7 @@ public function __construct($AppName, * @param string $name - file name * @param string $dir - folder path * @param string $templateId - file identifier + * @param int $targetId - identifier of the file for using as template for create * @param string $shareToken - access token * * @return array @@ -207,7 +208,7 @@ public function __construct($AppName, * @NoAdminRequired * @PublicPage */ - public function create($name, $dir, $templateId = null, $shareToken = null) { + public function create($name, $dir, $templateId = null, $targetId = 0, $shareToken = null) { $this->logger->debug("Create: $name", ["app" => $this->appName]); if (empty($shareToken) && !$this->config->isUserAllowedToUse()) { @@ -219,8 +220,10 @@ public function create($name, $dir, $templateId = null, $shareToken = null) { return ["error" => $this->trans->t("Template not found")]; } + $user = null; if (empty($shareToken)) { - $userId = $this->userSession->getUser()->getUID(); + $user = $this->userSession->getUser(); + $userId = $user->getUID(); $userFolder = $this->root->getUserFolder($userId); } else { list ($userFolder, $error, $share) = $this->fileUtility->getNodeByToken($shareToken); @@ -251,13 +254,30 @@ public function create($name, $dir, $templateId = null, $shareToken = null) { return ["error" => $this->trans->t("You don't have enough permission to create")]; } - if (empty($templateId)) { - $template = TemplateManager::GetEmptyTemplate($name); - } else { + if (!empty($templateId)) { $templateFile = TemplateManager::GetTemplate($templateId); if ($templateFile !== null) { $template = $templateFile->getContent(); } + } elseif (!empty($targetId)) { + $targetFile = $userFolder->getById($targetId)[0]; + $targetName = $targetFile->getName(); + $targetExt = strtolower(pathinfo($targetName, PATHINFO_EXTENSION)); + $targetKey = $this->fileUtility->getKey($targetFile); + + $fileUrl = $this->getUrl($targetFile, $user, $shareToken); + + $ext = strtolower(pathinfo($name, PATHINFO_EXTENSION)); + $documentService = new DocumentService($this->trans, $this->config); + try { + $newFileUri = $documentService->GetConvertedUri($fileUrl, $targetExt, $ext, $targetKey); + } catch (\Exception $e) { + $this->logger->logException($e, ["message" => "GetConvertedUri: " . $targetFile->getId(), "app" => $this->appName]); + return ["error" => $e->getMessage()]; + } + $template = $documentService->Request($newFileUri); + } else { + $template = TemplateManager::GetEmptyTemplate($name); } if (!$template) { diff --git a/css/main.css b/css/main.css index 1b8e6fd5..bc9ca1c7 100644 --- a/css/main.css +++ b/css/main.css @@ -25,9 +25,14 @@ .icon-onlyoffice-new-pptx { background-image: url("../img/new-pptx.svg"); } +.icon-onlyoffice-new-docxf { + background-image: url("../img/new-docxf.svg"); +} .icon-onlyoffice-open, .icon-onlyoffice-convert, -.icon-onlyoffice-download { +.icon-onlyoffice-download, +.icon-onlyoffice-fill, +.icon-onlyoffice-create { background-image: url("../img/app-dark.svg"); } diff --git a/img/new-docxf.svg b/img/new-docxf.svg new file mode 100644 index 00000000..3fa58bb3 --- /dev/null +++ b/img/new-docxf.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/js/editor.js b/js/editor.js index dcfe7483..bd3d9c9f 100644 --- a/js/editor.js +++ b/js/editor.js @@ -99,6 +99,12 @@ return; } + if ((config.document.fileType === "docxf" || config.document.fileType === "oform") + && DocsAPI.DocEditor.version().split(".")[0] < 7) { + OCA.Onlyoffice.showMessage(t(OCA.Onlyoffice.AppName, "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online"), "error", {timeout: -1}); + return; + } + if (config.redirectUrl) { location.href = config.redirectUrl; return; diff --git a/js/main.js b/js/main.js index 027b61e8..69714411 100644 --- a/js/main.js +++ b/js/main.js @@ -29,10 +29,10 @@ OCA.Onlyoffice.mobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|Opera Mini|Macintosh/i.test(navigator.userAgent) && navigator.maxTouchPoints && navigator.maxTouchPoints > 1; - OCA.Onlyoffice.CreateFile = function (name, fileList, templateId) { + OCA.Onlyoffice.CreateFile = function (name, fileList, templateId, targetId, open = true) { var dir = fileList.getCurrentDirectory(); - if (!OCA.Onlyoffice.setting.sameTab || OCA.Onlyoffice.mobile || OCA.Onlyoffice.Desktop) { + if ((!OCA.Onlyoffice.setting.sameTab || OCA.Onlyoffice.mobile || OCA.Onlyoffice.Desktop) && open) { $loaderUrl = OCA.Onlyoffice.Desktop ? "" : OC.filePath(OCA.Onlyoffice.AppName, "templates", "loader.html"); var winEditor = window.open($loaderUrl); } @@ -46,6 +46,10 @@ createData.templateId = templateId; } + if (targetId) { + createData.targetId = targetId; + } + if ($("#isPublic").val()) { createData.shareToken = encodeURIComponent($("#sharingToken").val()); } @@ -62,10 +66,13 @@ } fileList.add(response, { animate: true }); - OCA.Onlyoffice.OpenEditor(response.id, dir, response.name, 0, winEditor); + if (open) { + OCA.Onlyoffice.OpenEditor(response.id, dir, response.name, 0, winEditor); - OCA.Onlyoffice.context = { fileList: fileList }; - OCA.Onlyoffice.context.fileName = response.name; + OCA.Onlyoffice.context = { fileList: fileList }; + OCA.Onlyoffice.context.fileName = response.name; + OCA.Onlyoffice.context.dir = dir; + } OCP.Toast.success(t(OCA.Onlyoffice.AppName, "File created")); } @@ -252,7 +259,58 @@ }] }); }); - } + }; + + OCA.Onlyoffice.OpenFormPicker = function (name, filelist) { + var filterMimes = [ + "application/vnd.openxmlformats-officedocument.wordprocessingml.document" + ]; + + var buttons = [ + { + text: t(OCA.Onlyoffice.AppName, "Blank"), + type: "blank" + }, + { + text: t(OCA.Onlyoffice.AppName, "From text document"), + type: "target", + defaultButton: true + } + ]; + + OC.dialogs.filepicker(t(OCA.Onlyoffice.AppName, "Create new Form template"), + function (filePath, type) { + var dialogFileList = OC.dialogs.filelist; + var targetId = 0; + + if (type === "target") { + var targetFileName = filePath.split("/").pop(); + dialogFileList.forEach(item => { + if (item.name === targetFileName) { + targetId = item.id; + } + }) + } + + OCA.Onlyoffice.CreateFile(name, filelist, 0, targetId); + }, + false, + filterMimes, + true, + OC.dialogs.FILEPICKER_TYPE_CUSTOM, + filelist.getCurrentDirectory(), + { + buttons: buttons + }); + }; + + OCA.Onlyoffice.CreateFormClick = function (fileName, context) { + var fileList = context.fileList; + var name = fileName.replace(/\.[^.]+$/, ".oform"); + var targetId = context.fileInfoModel.id; + + OCA.Onlyoffice.CreateFile(name, fileList, 0, targetId, false); + }; OCA.Onlyoffice.GetSettings = function (callbackSettings) { if (OCA.Onlyoffice.setting.formats) { @@ -304,6 +362,28 @@ }); } + if (config.fillForms) { + OCA.Files.fileActions.registerAction({ + name: "onlyofficeFill", + displayName: t(OCA.Onlyoffice.AppName, "Fill in form in ONLYOFFICE"), + mime: config.mime, + permissions: OC.PERMISSION_UPDATE, + iconClass: "icon-onlyoffice-fill", + actionHandler: OCA.Onlyoffice.FileClick + }); + } + + if (config.createForm) { + OCA.Files.fileActions.registerAction({ + name: "onlyofficeCreateForm", + displayName: t(OCA.Onlyoffice.AppName, "Create form"), + mime: config.mime, + permissions: ($("#isPublic").val() ? OC.PERMISSION_UPDATE : OC.PERMISSION_READ), + iconClass: "icon-onlyoffice-create", + actionHandler: OCA.Onlyoffice.CreateFormClick + }); + } + if (config.saveas && !$("#isPublic").val()) { OCA.Files.fileActions.registerAction({ name: "onlyofficeDownload", @@ -328,54 +408,68 @@ return; } - menu.addMenuEntry({ - id: "onlyofficeDocx", - displayName: t(OCA.Onlyoffice.AppName, "Document"), - templateName: t(OCA.Onlyoffice.AppName, "Document"), - iconClass: "icon-onlyoffice-new-docx", - fileType: "docx", - actionHandler: function (name) { - if (!$("#isPublic").val() && OCA.Onlyoffice.TemplateExist("document")) { - OCA.Onlyoffice.OpenTemplatePicker(name, ".docx", "document"); - } else { - OCA.Onlyoffice.CreateFile(name + ".docx", fileList); + if ($("#isPublic").val() === "1" && !!$("#filestable").length + || OC.config.version.split(".")[0] < 21) { + menu.addMenuEntry({ + id: "onlyofficeDocx", + displayName: t(OCA.Onlyoffice.AppName, "Document"), + templateName: t(OCA.Onlyoffice.AppName, "Document"), + iconClass: "icon-onlyoffice-new-docx", + fileType: "docx", + actionHandler: function (name) { + if (!$("#isPublic").val() && OCA.Onlyoffice.TemplateExist("document")) { + OCA.Onlyoffice.OpenTemplatePicker(name, ".docx", "document"); + } else { + OCA.Onlyoffice.CreateFile(name + ".docx", fileList); + } } - } - }); + }); - menu.addMenuEntry({ - id: "onlyofficeXlsx", - displayName: t(OCA.Onlyoffice.AppName, "Spreadsheet"), - templateName: t(OCA.Onlyoffice.AppName, "Spreadsheet"), - iconClass: "icon-onlyoffice-new-xlsx", - fileType: "xlsx", - actionHandler: function (name) { - if (!$("#isPublic").val() && OCA.Onlyoffice.TemplateExist("spreadsheet")) { - OCA.Onlyoffice.OpenTemplatePicker(name, ".xlsx", "spreadsheet"); - } else { - OCA.Onlyoffice.CreateFile(name + ".xlsx", fileList); + menu.addMenuEntry({ + id: "onlyofficeXlsx", + displayName: t(OCA.Onlyoffice.AppName, "Spreadsheet"), + templateName: t(OCA.Onlyoffice.AppName, "Spreadsheet"), + iconClass: "icon-onlyoffice-new-xlsx", + fileType: "xlsx", + actionHandler: function (name) { + if (!$("#isPublic").val() && OCA.Onlyoffice.TemplateExist("spreadsheet")) { + OCA.Onlyoffice.OpenTemplatePicker(name, ".xlsx", "spreadsheet"); + } else { + OCA.Onlyoffice.CreateFile(name + ".xlsx", fileList); + } } + }); + + menu.addMenuEntry({ + id: "onlyofficePpts", + displayName: t(OCA.Onlyoffice.AppName, "Presentation"), + templateName: t(OCA.Onlyoffice.AppName, "Presentation"), + iconClass: "icon-onlyoffice-new-pptx", + fileType: "pptx", + actionHandler: function (name) { + if (!$("#isPublic").val() && OCA.Onlyoffice.TemplateExist("presentation")) { + OCA.Onlyoffice.OpenTemplatePicker(name, ".pptx", "presentation"); + } else { + OCA.Onlyoffice.CreateFile(name + ".pptx", fileList); + } + } + }); + + if (OCA.Onlyoffice.GetTemplates) { + OCA.Onlyoffice.GetTemplates(); } - }); + } menu.addMenuEntry({ - id: "onlyofficePpts", - displayName: t(OCA.Onlyoffice.AppName, "Presentation"), - templateName: t(OCA.Onlyoffice.AppName, "Presentation"), - iconClass: "icon-onlyoffice-new-pptx", - fileType: "pptx", + id: "onlyofficeDocxf", + displayName: t(OCA.Onlyoffice.AppName, "Form template"), + templateName: t(OCA.Onlyoffice.AppName, "Form template"), + iconClass: "icon-onlyoffice-new-docxf", + fileType: "docxf", actionHandler: function (name) { - if (!$("#isPublic").val() && OCA.Onlyoffice.TemplateExist("presentation")) { - OCA.Onlyoffice.OpenTemplatePicker(name, ".pptx", "presentation"); - } else { - OCA.Onlyoffice.CreateFile(name + ".pptx", fileList); - } + OCA.Onlyoffice.OpenFormPicker(name + ".docxf", fileList); } }); - - if (OCA.Onlyoffice.GetTemplates) { - OCA.Onlyoffice.GetTemplates(); - } } }; @@ -466,11 +560,7 @@ OCA.Onlyoffice.GetSettings(initSharedButton); } else { - 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); - } + OC.Plugins.register("OCA.Files.NewFileMenu", OCA.Onlyoffice.NewFileMenu); OCA.Onlyoffice.registerAction(); diff --git a/l10n/bg.js b/l10n/bg.js index 026a007c..621fb7aa 100644 --- a/l10n/bg.js +++ b/l10n/bg.js @@ -108,7 +108,14 @@ OC.L10N.register( "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\".", - "Choose a format to convert {fileName}": "Изберете формат за конвертиране {fileName}" + "{notifier} mentioned in the {file}: \"%1\$s\".": "{notifier} споменат във {file}: \"%1\$s\".", + "Choose a format to convert {fileName}": "Изберете формат за конвертиране {fileName}", + "Form template": "Шаблон на формуляр", + "Blank": "Празно", + "From text document": "От текстов документ", + "Create new Form template": "Създайте нов шаблон на формуляр", + "Create form": "Създайте формуляр", + "Fill in form in ONLYOFFICE": "Попълнете формуляр в ONLYOFFICE", + "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Молим да актуализирате ONLYOFFICE Docs към версия 7.0, за да работи с онлайн формуляри за попълване" }, "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 334e09d6..74e3b815 100644 --- a/l10n/bg.json +++ b/l10n/bg.json @@ -107,6 +107,13 @@ "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\".", - "Choose a format to convert {fileName}": "Изберете формат за конвертиране {fileName}" -},"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);" + "Choose a format to convert {fileName}": "Изберете формат за конвертиране {fileName}", + "Form template": "Шаблон на формуляр", + "Blank": "Празно", + "From text document": "От текстов документ", + "Create new Form template": "Създайте нов шаблон на формуляр", + "Create form": "Създайте формуляр", + "Fill in form in ONLYOFFICE": "Попълнете формуляр в ONLYOFFICE", + "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Молим да актуализирате ONLYOFFICE Docs към версия 7.0, за да работи с онлайн формуляри за попълване" +},"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 170c66e0..66dfe98b 100644 --- a/l10n/de.js +++ b/l10n/de.js @@ -109,6 +109,13 @@ OC.L10N.register( "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\".", - "Choose a format to convert {fileName}": "Wählen Sie das Format für {fileName} aus" + "Choose a format to convert {fileName}": "Wählen Sie das Format für {fileName} aus", + "Form template": "Formularvorlage", + "Blank": "Leer", + "From text document": "Aus Textdatei", + "Create new Form template": "Neue Formularvorlage erstellen", + "Create form": "Formular erstellen", + "Fill in form in ONLYOFFICE": "Formular in ONLYOFFICE ausfüllen", + "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Für Online-Arbeit mit Formularen ist Version 7.0 von ONLYOFFICE Docs erforderlich" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/de.json b/l10n/de.json index 72bba771..9cbcf6d8 100644 --- a/l10n/de.json +++ b/l10n/de.json @@ -107,6 +107,13 @@ "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\".", - "Choose a format to convert {fileName}": "Wählen Sie das Format für {fileName} aus" + "Choose a format to convert {fileName}": "Wählen Sie das Format für {fileName} aus", + "Form template": "Formularvorlage", + "Blank": "Leer", + "From text document": "Aus Textdatei", + "Create new Form template": "Neue Formularvorlage erstellen", + "Create form": "Formular erstellen", + "Fill in form in ONLYOFFICE": "Formular in ONLYOFFICE ausfüllen", + "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Für Online-Arbeit mit Formularen ist Version 7.0 von ONLYOFFICE Docs erforderlich" },"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 e8b56766..fd9b0702 100644 --- a/l10n/de_DE.js +++ b/l10n/de_DE.js @@ -109,6 +109,13 @@ OC.L10N.register( "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\".", - "Choose a format to convert {fileName}": "Wählen Sie das Format für {fileName} aus" + "Choose a format to convert {fileName}": "Wählen Sie das Format für {fileName} aus", + "Form template": "Formularvorlage", + "Blank": "Leer", + "From text document": "Aus Textdatei", + "Create new Form template": "Neue Formularvorlage erstellen", + "Create form": "Formular erstellen", + "Fill in form in ONLYOFFICE": "Formular in ONLYOFFICE ausfüllen", + "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Für Online-Arbeit mit Formularen ist Version 7.0 von ONLYOFFICE Docs erforderlich" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/de_DE.json b/l10n/de_DE.json index 91740b01..eb36d008 100644 --- a/l10n/de_DE.json +++ b/l10n/de_DE.json @@ -107,6 +107,13 @@ "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\".", - "Choose a format to convert {fileName}": "Wählen Sie das Format für {fileName} aus" + "Choose a format to convert {fileName}": "Wählen Sie das Format für {fileName} aus", + "Form template": "Formularvorlage", + "Blank": "Leer", + "From text document": "Aus Textdatei", + "Create new Form template": "Neue Formularvorlage erstellen", + "Create form": "Formular erstellen", + "Fill in form in ONLYOFFICE": "Formular in ONLYOFFICE ausfüllen", + "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Für Online-Arbeit mit Formularen ist Version 7.0 von ONLYOFFICE Docs erforderlich" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/es.js b/l10n/es.js index 081207b2..0dacb5bb 100644 --- a/l10n/es.js +++ b/l10n/es.js @@ -109,6 +109,13 @@ OC.L10N.register( "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\".", - "Choose a format to convert {fileName}": "Elija un formato para convertir {fileName}" + "Choose a format to convert {fileName}": "Elija un formato para convertir {fileName}", + "Form template": "Plantilla de formulario", + "Blank": "En blanco", + "From text document": "Desde documento de texto", + "Create new Form template": "Crear nueva plantilla de formulario", + "Create form": "Crear formulario", + "Fill in form in ONLYOFFICE": "Rellenar el formulario en ONLYOFFICE", + "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Por favor, actualice ONLYOFFICE Docs a la versión 7.0 para poder trabajar con formularios rellenables en línea" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/es.json b/l10n/es.json index 4f2b097e..8541b386 100644 --- a/l10n/es.json +++ b/l10n/es.json @@ -107,6 +107,13 @@ "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\".", - "Choose a format to convert {fileName}": "Elija un formato para convertir {fileName}" + "Choose a format to convert {fileName}": "Elija un formato para convertir {fileName}", + "Form template": "Plantilla de formulario", + "Blank": "En blanco", + "From text document": "Desde documento de texto", + "Create new Form template": "Crear nueva plantilla de formulario", + "Create form": "Crear formulario", + "Fill in form in ONLYOFFICE": "Rellenar el formulario en ONLYOFFICE", + "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Por favor, actualice ONLYOFFICE Docs a la versión 7.0 para poder trabajar con formularios rellenables en línea" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/fr.js b/l10n/fr.js index 7536c5e3..ec034d15 100644 --- a/l10n/fr.js +++ b/l10n/fr.js @@ -109,6 +109,13 @@ OC.L10N.register( "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\".", - "Choose a format to convert {fileName}": "Choisissez un format à convertir {fileName}" + "Choose a format to convert {fileName}": "Choisissez un format à convertir {fileName}", + "Form template": "Modèle de formulaire", + "Blank": "Vide", + "From text document": "À partir d'un fichier texte", + "Create new Form template": "Créer un nouveau modèle de formulaire", + "Create form": "Créer un formulaire", + "Fill in form in ONLYOFFICE": "Remplir le formulaire dans ONLYOFFICE", + "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Veuillez mettre à jour ONLYOFFICE Docs vers la version 7.0 pour travailler sur les formulaires à remplir en ligne" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/fr.json b/l10n/fr.json index f25d3621..78874369 100644 --- a/l10n/fr.json +++ b/l10n/fr.json @@ -107,6 +107,13 @@ "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\".", - "Choose a format to convert {fileName}": "Choisissez un format à convertir {fileName}" + "Choose a format to convert {fileName}": "Choisissez un format à convertir {fileName}", + "Form template": "Modèle de formulaire", + "Blank": "Vide", + "From text document": "À partir d'un fichier texte", + "Create new Form template": "Créer un nouveau modèle de formulaire", + "Create form": "Créer un formulaire", + "Fill in form in ONLYOFFICE": "Remplir le formulaire dans ONLYOFFICE", + "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Veuillez mettre à jour ONLYOFFICE Docs vers la version 7.0 pour travailler sur les formulaires à remplir en ligne" },"pluralForm" :"nplurals=2; plural=(n != 1);" } diff --git a/l10n/it.js b/l10n/it.js index 901f3bce..bc0bb3de 100644 --- a/l10n/it.js +++ b/l10n/it.js @@ -109,6 +109,13 @@ OC.L10N.register( "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\".", - "Choose a format to convert {fileName}": "Scegli un formato per convertire {fileName}" + "Choose a format to convert {fileName}": "Scegli un formato per convertire {fileName}", + "Form template": "Modello di modulo", + "Blank": "Vuoto", + "From text document": "Dal documento di testo", + "Create new Form template": "Creare un nuovo modello di modulo", + "Create form": "Creare modulo", + "Fill in form in ONLYOFFICE": "Compilare il modulo in ONLYOFFICE", + "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Si prega di aggiornare ONLYOFFICE Docs alla versione 7.0 per lavorare su moduli compilabili online" }, "nplurals=2; plural=(n != 1);"); \ No newline at end of file diff --git a/l10n/it.json b/l10n/it.json index 70878d5e..0c23b26f 100644 --- a/l10n/it.json +++ b/l10n/it.json @@ -107,6 +107,13 @@ "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\".", - "Choose a format to convert {fileName}": "Scegli un formato per convertire {fileName}" + "Choose a format to convert {fileName}": "Scegli un formato per convertire {fileName}", + "Form template": "Modello di modulo", + "Blank": "Vuoto", + "From text document": "Dal documento di testo", + "Create new Form template": "Creare un nuovo modello di modulo", + "Create form": "Creare modulo", + "Fill in form in ONLYOFFICE": "Compilare il modulo in ONLYOFFICE", + "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Si prega di aggiornare ONLYOFFICE Docs alla versione 7.0 per lavorare su moduli compilabili online" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/ja.js b/l10n/ja.js index 4eb00f75..4d842114 100644 --- a/l10n/ja.js +++ b/l10n/ja.js @@ -109,6 +109,13 @@ OC.L10N.register( "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\"に記載しました。", - "Choose a format to convert {fileName}": "{fileName}を変換する形式を選択してください" -}, + "Choose a format to convert {fileName}": "{fileName}を変換する形式を選択してください", + "Form template": "フォーム テンプレート", + "Blank": "空白", + "From text document": "テキスト文書から作成する", + "Create new Form template": "新しいフォームテンプレートの作成", + "Create form": "フォームの作成", + "Fill in form in ONLYOFFICE": "ONLYOFFICEでフォームを記入する", + "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "オンラインで入力可能なフォームを作成するには、ONLYOFFICE Docs 7.0版まで更新してください" + }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/ja.json b/l10n/ja.json index 90eb6cea..d0248393 100644 --- a/l10n/ja.json +++ b/l10n/ja.json @@ -107,6 +107,13 @@ "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\"に記載しました。", - "Choose a format to convert {fileName}": "{fileName}を変換する形式を選択してください" + "Choose a format to convert {fileName}": "{fileName}を変換する形式を選択してください", + "Form template": "フォーム テンプレート", + "Blank": "空白", + "From text document": "テキスト文書から作成する", + "Create new Form template": "新しいフォームテンプレートの作成", + "Create form": "フォームの作成", + "Fill in form in ONLYOFFICE": "ONLYOFFICEでフォームを記入する", + "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "オンラインで入力可能なフォームを作成するには、ONLYOFFICE Docs 7.0版まで更新してください" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/pl.js b/l10n/pl.js index c8b04a9d..4e4bf837 100644 --- a/l10n/pl.js +++ b/l10n/pl.js @@ -109,6 +109,13 @@ OC.L10N.register( "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\".", - "Choose a format to convert {fileName}": "Wybierz format, do którego chcesz przekonwertować {fileName}" + "Choose a format to convert {fileName}": "Wybierz format, do którego chcesz przekonwertować {fileName}", + "Form template": "Szablon formularza", + "Blank": "Pusty", + "From text document": "Szablon formularza z pliku tekstowego", + "Create new Form template": "Utwórz nowy szablon formularza", + "Create form": "Utwórz formularz", + "Fill in form in ONLYOFFICE": "Wypełnić formularz w ONLYOFFICE", + "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Zaktualizuj ONLYOFFICE Docs do wersji 7.0, aby działały w formularzach do wypełniania online" }, "nplurals=2; plural=(n != 1);"); \ No newline at end of file diff --git a/l10n/pl.json b/l10n/pl.json index 73f35f17..8ae5c24b 100644 --- a/l10n/pl.json +++ b/l10n/pl.json @@ -107,6 +107,13 @@ "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\".", - "Choose a format to convert {fileName}": "Wybierz format, do którego chcesz przekonwertować {fileName}" + "Choose a format to convert {fileName}": "Wybierz format, do którego chcesz przekonwertować {fileName}", + "Form template": "Szablon formularza", + "Blank": "Pusty", + "From text document": "Szablon formularza z pliku tekstowego", + "Create new Form template": "Utwórz nowy szablon formularza", + "Create form": "Utwórz formularz", + "Fill in form in ONLYOFFICE": "Wypełnić formularz w ONLYOFFICE", + "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Zaktualizuj ONLYOFFICE Docs do wersji 7.0, aby działały w formularzach do wypełniania online" },"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 88c9a5e4..143bc809 100644 --- a/l10n/pt_BR.js +++ b/l10n/pt_BR.js @@ -109,6 +109,13 @@ OC.L10N.register( "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\".", - "Choose a format to convert {fileName}": "Escolha um formato para converter {fileName}" + "Choose a format to convert {fileName}": "Escolha um formato para converter {fileName}", + "Form template": "Modelo de formulário", + "Blank": "Em branco", + "From text document": "Do documento de texto", + "Create new Form template": "Criar novo modelo de formulário", + "Create form": "Criar formulário", + "Fill in form in ONLYOFFICE": "Preencher formulário no ONLYOFFICE", + "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Atualize o ONLYOFFICE Docs para a versão 7.0 para trabalhar em formulários preenchíveis online" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/pt_BR.json b/l10n/pt_BR.json index 215e5b9b..5087e309 100644 --- a/l10n/pt_BR.json +++ b/l10n/pt_BR.json @@ -107,6 +107,13 @@ "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\".", - "Choose a format to convert {fileName}": "Escolha um formato para converter {fileName}" + "Choose a format to convert {fileName}": "Escolha um formato para converter {fileName}", + "Form template": "Modelo de formulário", + "Blank": "Em branco", + "From text document": "Do documento de texto", + "Create new Form template": "Criar novo modelo de formulário", + "Create form": "Criar formulário", + "Fill in form in ONLYOFFICE": "Preencher formulário no ONLYOFFICE", + "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Atualize o ONLYOFFICE Docs para a versão 7.0 para trabalhar em formulários preenchíveis online" },"pluralForm" :"nplurals=2; plural=(n != 1);" } diff --git a/l10n/ru.js b/l10n/ru.js index 63ac85a3..c67f9dc9 100644 --- a/l10n/ru.js +++ b/l10n/ru.js @@ -109,6 +109,13 @@ OC.L10N.register( "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\".", - "Choose a format to convert {fileName}": "Выберите формат для {fileName}" + "Choose a format to convert {fileName}": "Выберите формат для {fileName}", + "Form template": "Шаблон формы", + "Blank": "Пустой", + "From text document": "Из текстового документа", + "Create new Form template": "Создать новый Шаблон формы", + "Create form": "Создать форму", + "Fill in form in ONLYOFFICE": "Заполнить форму в ONLYOFFICE", + "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Обновите сервер ONLYOFFICE Docs до версии 7.0 для работы с формами онлайн" }, "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 81b2801a..718c593a 100644 --- a/l10n/ru.json +++ b/l10n/ru.json @@ -107,6 +107,13 @@ "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\".", - "Choose a format to convert {fileName}": "Выберите формат для {fileName}" + "Choose a format to convert {fileName}": "Выберите формат для {fileName}", + "Form template": "Шаблон формы", + "Blank": "Пустой", + "From text document": "Из текстового документа", + "Create new Form template": "Создать новый Шаблон формы", + "Create form": "Создать форму", + "Fill in form in ONLYOFFICE": "Заполнить форму в ONLYOFFICE", + "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Обновите сервер ONLYOFFICE Docs до версии 7.0 для работы с формами онлайн" },"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 60321072..aa00b6da 100644 --- a/l10n/sv.js +++ b/l10n/sv.js @@ -109,6 +109,13 @@ OC.L10N.register( "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\".", - "Choose a format to convert {fileName}": "Välj det filformat som {fileName} ska konverteras till." + "Choose a format to convert {fileName}": "Välj det filformat som {fileName} ska konverteras till.", + "Form template": "Formulärmall", + "Blank": "Töm", + "From text document": "Formulärmall från textfil", + "Create new Form template": "Skapa ny formulärmall", + "Create form": "Skapa formulär", + "Fill in form in ONLYOFFICE": "Fylla i formulär i ONLYOFFICE", + "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Uppdatera ONLYOFFICE Docs till version 7.0 för att arbeta med ifyllbart onlineformulär" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/sv.json b/l10n/sv.json index 3cab2068..f78163f8 100644 --- a/l10n/sv.json +++ b/l10n/sv.json @@ -107,6 +107,13 @@ "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\".", - "Choose a format to convert {fileName}": "Välj det filformat som {fileName} ska konverteras till." + "Choose a format to convert {fileName}": "Välj det filformat som {fileName} ska konverteras till.", + "Form template": "Formulärmall", + "Blank": "Töm", + "From text document": "Formulärmall från textfil", + "Create new Form template": "Skapa ny formulärmall", + "Create form": "Skapa formulär", + "Fill in form in ONLYOFFICE": "Fylla i formulär i ONLYOFFICE", + "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "Uppdatera ONLYOFFICE Docs till version 7.0 för att arbeta med ifyllbart onlineformulär" },"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 59e6c9e5..9c89ff92 100644 --- a/l10n/zh_CN.js +++ b/l10n/zh_CN.js @@ -109,6 +109,13 @@ OC.L10N.register( "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\".", - "Choose a format to convert {fileName}": "选择要转换{fileName}的格式" + "Choose a format to convert {fileName}": "选择要转换{fileName}的格式", + "Form template": "表单模板", + "Blank": "空白", + "From text document": "从文本文件", + "Create new Form template": "创建新的表单模板", + "Create form": "创建表单", + "Fill in form in ONLYOFFICE": "在ONLYOFFICE上填写表单", + "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "请将ONLYOFFICE Docs更新到7.0版本,以便在线编辑可填写的表单" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/zh_CN.json b/l10n/zh_CN.json index 54028f10..e4e32299 100644 --- a/l10n/zh_CN.json +++ b/l10n/zh_CN.json @@ -107,6 +107,13 @@ "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\".", - "Choose a format to convert {fileName}": "选择要转换{fileName}的格式" + "Choose a format to convert {fileName}": "选择要转换{fileName}的格式", + "Form template": "表单模板", + "Blank": "空白", + "From text document": "从文本文件", + "Create new Form template": "创建新的表单模板", + "Create form": "创建表单", + "Fill in form in ONLYOFFICE": "在ONLYOFFICE上填写表单", + "Please update ONLYOFFICE Docs to version 7.0 to work on fillable forms online": "请将ONLYOFFICE Docs更新到7.0版本,以便在线编辑可填写的表单" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/lib/Migration/MimeRepair.php b/lib/Migration/MimeRepair.php new file mode 100644 index 00000000..46cfbef4 --- /dev/null +++ b/lib/Migration/MimeRepair.php @@ -0,0 +1,113 @@ +logger = $logger; + $this->detector = $detector; + $this->config = new AppConfig(self::$appName); + } + + /** + * Returns the step's name + */ + public function getName() { + return self::$appName; + } + + /** + * @param IOutput $output + */ + public function run(IOutput $output) { + $this->logger->debug("Mimetypes repair run", ["app" => self::$appName]); + + $customAliasPath = \OC::$SERVERROOT . "/config/" . self::CUSTOM_MIMETYPEALIASES; + + $formats = $this->config->FormatsSetting(); + $mimes = [ + $formats["docxf"]["mime"] => self::DOCUMENT_ALIAS, + $formats["oform"]["mime"] => self::DOCUMENT_ALIAS + ]; + + $customAlias = $mimes; + if (file_exists($customAliasPath)) { + $customAlias = json_decode(file_get_contents($customAliasPath), true); + foreach ($mimes as $mime => $icon) { + if (!isset($customAlias[$mime])) { + $customAlias[$mime] = $icon; + } + } + } + + file_put_contents($customAliasPath, json_encode($customAlias, JSON_PRETTY_PRINT)); + + //matches the command maintenance:mimetype:update-js + //from OC\Core\Command\Maintenance\Mimetype\UpdateJS + $aliases = $this->detector->getAllAliases(); + $generatedMimetypeFile = new GenerateMimetypeFileBuilder(); + file_put_contents(\OC::$SERVERROOT . "/core/js/" . self::MIMETYPELIST, $generatedMimetypeFile->generateFile($aliases)); + } +} \ No newline at end of file diff --git a/lib/appconfig.php b/lib/appconfig.php index b6cdacdd..64961589 100644 --- a/lib/appconfig.php +++ b/lib/appconfig.php @@ -1100,7 +1100,9 @@ public function FormatsSetting() { "csv" => [ "mime" => "text/csv", "type" => "cell", "edit" => true, "editable" => true, "saveas" => ["ods", "pdf", "xlsx"] ], "doc" => [ "mime" => "application/msword", "type" => "word", "conv" => true, "saveas" => ["docx", "odt", "pdf", "rtf", "txt"] ], "docm" => [ "mime" => "application/vnd.ms-word.document.macroEnabled.12", "type" => "word", "conv" => true, "saveas" => ["docx", "odt", "pdf", "rtf", "txt"] ], - "docx" => [ "mime" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "type" => "word", "edit" => true, "def" => true, "saveas" => ["odt", "pdf", "rtf", "txt"] ], + "docx" => [ "mime" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "type" => "word", "edit" => true, "def" => true, "saveas" => ["odt", "pdf", "rtf", "txt", "docxf"] ], + "docxf" => [ "mime" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document.docxf", "type" => "word", "edit" => true, "def" => true, "saveas" => ["odt", "pdf", "rtf", "txt"], "createForm" => true ], + "oform" => [ "mime" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document.oform", "type" => "word", "fillForms" => true, "def" => true ], "dot" => [ "type" => "word", "conv" => true, "saveas" => ["docx", "odt", "pdf", "rtf", "txt"] ], "dotx" => [ "mime" => "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "type" => "word", "conv" => true, "saveas" => ["docx", "odt", "pdf", "rtf", "txt"] ], "epub" => [ "mime" => "application/epub+zip", "type" => "word", "conv" => true, "saveas" => ["docx", "odt", "pdf", "rtf", "txt"] ], diff --git a/lib/preview.php b/lib/preview.php index 42c50e6a..561ed406 100644 --- a/lib/preview.php +++ b/lib/preview.php @@ -122,6 +122,8 @@ class Preview extends Provider { "application/msword", "application/vnd.ms-word.document.macroEnabled.12", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + "application/vnd.openxmlformats-officedocument.wordprocessingml.document.docxf", + "application/vnd.openxmlformats-officedocument.wordprocessingml.document.oform", "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "application/epub+zip", "text/html",