From e07e1056e944ea3bcf2c5c307612c4761ca00c71 Mon Sep 17 00:00:00 2001
From: uhensler <urs.hensler@frentix.com>
Date: Thu, 17 Sep 2020 09:42:29 +0200
Subject: [PATCH] OO-4939: Refactoring admin area as preparation for removal of
 Office365 Editor

---
 .../doceditor/DocEditorAdminSegment.java      |  42 ++++++
 .../collabora/ui/CollaboraAdminSegment.java   |  57 ++++++++
 .../office365/ui/Office365AdminSegment.java   |  57 ++++++++
 .../onlyoffice/ui/OnlyOfficeAdminSegment.java |  57 ++++++++
 .../ui/AdminDocEditorController.java          | 132 +++++++++---------
 .../ui/_i18n/LocalStrings_de.properties       |   3 -
 .../ui/_i18n/LocalStrings_en.properties       |   3 -
 .../ui/_i18n/LocalStrings_fr.properties       |   3 -
 .../ui/_i18n/LocalStrings_it.properties       |   3 -
 .../ui/_i18n/LocalStrings_pt_BR.properties    |   3 -
 .../ui/_i18n/LocalStrings_ru.properties       |   3 -
 11 files changed, 276 insertions(+), 87 deletions(-)
 create mode 100644 src/main/java/org/olat/core/commons/services/doceditor/DocEditorAdminSegment.java
 create mode 100644 src/main/java/org/olat/core/commons/services/doceditor/collabora/ui/CollaboraAdminSegment.java
 create mode 100644 src/main/java/org/olat/core/commons/services/doceditor/office365/ui/Office365AdminSegment.java
 create mode 100644 src/main/java/org/olat/core/commons/services/doceditor/onlyoffice/ui/OnlyOfficeAdminSegment.java

diff --git a/src/main/java/org/olat/core/commons/services/doceditor/DocEditorAdminSegment.java b/src/main/java/org/olat/core/commons/services/doceditor/DocEditorAdminSegment.java
new file mode 100644
index 00000000000..6ed64cbbece
--- /dev/null
+++ b/src/main/java/org/olat/core/commons/services/doceditor/DocEditorAdminSegment.java
@@ -0,0 +1,42 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.core.commons.services.doceditor;
+
+import java.util.Locale;
+
+import org.olat.core.gui.UserRequest;
+import org.olat.core.gui.control.Controller;
+import org.olat.core.gui.control.WindowControl;
+
+/**
+ * 
+ * Initial date: 16 Sep 2020<br>
+ * @author uhensler, urs.hensler@frentix.com, http://www.frentix.com
+ *
+ */
+public interface DocEditorAdminSegment {
+	
+	public String getLinkName(Locale locale);
+	
+	public String getBusinessPathType();
+	
+	public Controller createController(UserRequest ureq, WindowControl wControl);
+
+}
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/collabora/ui/CollaboraAdminSegment.java b/src/main/java/org/olat/core/commons/services/doceditor/collabora/ui/CollaboraAdminSegment.java
new file mode 100644
index 00000000000..f810cbc25bf
--- /dev/null
+++ b/src/main/java/org/olat/core/commons/services/doceditor/collabora/ui/CollaboraAdminSegment.java
@@ -0,0 +1,57 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.core.commons.services.doceditor.collabora.ui;
+
+import java.util.Locale;
+
+import org.olat.core.commons.services.doceditor.DocEditorAdminSegment;
+import org.olat.core.gui.UserRequest;
+import org.olat.core.gui.control.Controller;
+import org.olat.core.gui.control.WindowControl;
+import org.olat.core.gui.translator.Translator;
+import org.olat.core.util.Util;
+import org.springframework.stereotype.Component;
+
+/**
+ * 
+ * Initial date: 17 Sep 2020<br>
+ * @author uhensler, urs.hensler@frentix.com, http://www.frentix.com
+ *
+ */
+@Component
+public class CollaboraAdminSegment implements DocEditorAdminSegment {
+
+	@Override
+	public String getLinkName(Locale locale) {
+		Translator translator = Util.createPackageTranslator(CollaboraAdminController.class, locale);
+		return translator.translate("editor.display.name");
+	}
+
+	@Override
+	public String getBusinessPathType() {
+		return "Collabora";
+	}
+
+	@Override
+	public Controller createController(UserRequest ureq, WindowControl wControl) {
+		return new CollaboraAdminController(ureq, wControl);
+	}
+
+}
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/office365/ui/Office365AdminSegment.java b/src/main/java/org/olat/core/commons/services/doceditor/office365/ui/Office365AdminSegment.java
new file mode 100644
index 00000000000..a765359d8f7
--- /dev/null
+++ b/src/main/java/org/olat/core/commons/services/doceditor/office365/ui/Office365AdminSegment.java
@@ -0,0 +1,57 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.core.commons.services.doceditor.office365.ui;
+
+import java.util.Locale;
+
+import org.olat.core.commons.services.doceditor.DocEditorAdminSegment;
+import org.olat.core.gui.UserRequest;
+import org.olat.core.gui.control.Controller;
+import org.olat.core.gui.control.WindowControl;
+import org.olat.core.gui.translator.Translator;
+import org.olat.core.util.Util;
+import org.springframework.stereotype.Component;
+
+/**
+ * 
+ * Initial date: 17 Sep 2020<br>
+ * @author uhensler, urs.hensler@frentix.com, http://www.frentix.com
+ *
+ */
+@Component
+public class Office365AdminSegment implements DocEditorAdminSegment {
+
+	@Override
+	public String getLinkName(Locale locale) {
+		Translator translator = Util.createPackageTranslator(Office365AdminController.class, locale);
+		return translator.translate("editor.display.name");
+	}
+
+	@Override
+	public String getBusinessPathType() {
+		return "OfficeForTheWeb";
+	}
+
+	@Override
+	public Controller createController(UserRequest ureq, WindowControl wControl) {
+		return new Office365AdminController(ureq, wControl);
+	}
+
+}
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/onlyoffice/ui/OnlyOfficeAdminSegment.java b/src/main/java/org/olat/core/commons/services/doceditor/onlyoffice/ui/OnlyOfficeAdminSegment.java
new file mode 100644
index 00000000000..cdd29cfaed0
--- /dev/null
+++ b/src/main/java/org/olat/core/commons/services/doceditor/onlyoffice/ui/OnlyOfficeAdminSegment.java
@@ -0,0 +1,57 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.core.commons.services.doceditor.onlyoffice.ui;
+
+import java.util.Locale;
+
+import org.olat.core.commons.services.doceditor.DocEditorAdminSegment;
+import org.olat.core.gui.UserRequest;
+import org.olat.core.gui.control.Controller;
+import org.olat.core.gui.control.WindowControl;
+import org.olat.core.gui.translator.Translator;
+import org.olat.core.util.Util;
+import org.springframework.stereotype.Component;
+
+/**
+ * 
+ * Initial date: 17 Sep 2020<br>
+ * @author uhensler, urs.hensler@frentix.com, http://www.frentix.com
+ *
+ */
+@Component
+public class OnlyOfficeAdminSegment implements DocEditorAdminSegment {
+
+	@Override
+	public String getLinkName(Locale locale) {
+		Translator translator = Util.createPackageTranslator(OnlyOfficeAdminController.class, locale);
+		return translator.translate("editor.display.name");
+	}
+
+	@Override
+	public String getBusinessPathType() {
+		return "OnlyOffice";
+	}
+
+	@Override
+	public Controller createController(UserRequest ureq, WindowControl wControl) {
+		return new OnlyOfficeAdminController(ureq, wControl);
+	}
+
+}
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/ui/AdminDocEditorController.java b/src/main/java/org/olat/core/commons/services/doceditor/ui/AdminDocEditorController.java
index a5f3fb71c40..f2603e79760 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/ui/AdminDocEditorController.java
+++ b/src/main/java/org/olat/core/commons/services/doceditor/ui/AdminDocEditorController.java
@@ -21,9 +21,7 @@ package org.olat.core.commons.services.doceditor.ui;
 
 import java.util.List;
 
-import org.olat.core.commons.services.doceditor.collabora.ui.CollaboraAdminController;
-import org.olat.core.commons.services.doceditor.office365.ui.Office365AdminController;
-import org.olat.core.commons.services.doceditor.onlyoffice.ui.OnlyOfficeAdminController;
+import org.olat.core.commons.services.doceditor.DocEditorAdminSegment;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.link.Link;
@@ -40,6 +38,7 @@ import org.olat.core.gui.control.generic.dtabs.Activateable2;
 import org.olat.core.id.context.ContextEntry;
 import org.olat.core.id.context.StateEntry;
 import org.olat.core.util.resource.OresHelper;
+import org.springframework.beans.factory.annotation.Autowired;
 
 /**
  * 
@@ -47,41 +46,45 @@ import org.olat.core.util.resource.OresHelper;
  * @author uhensler, urs.hensler@frentix.com, http://www.frentix.com
  *
  */
-public class AdminDocEditorController extends BasicController implements Activateable2  {
+public class AdminDocEditorController extends BasicController implements Activateable2 {
 
-	private static final String COLLABORA_RES_TYPE = "Collabora";
-	private static final String ONLY_OFFICE_RES_TYPE = "OnlyOffice";
-	private static final String OFFICE365_RES_TYPE = "Office365";
 	private static final String DOCUMENTS_IN_USE_RES_TYPE = "OpenDocuments";
 
 	private VelocityContainer mainVC;
-	private final Link collaboraLink;
-	private final Link onlyOfficeLink;
-	private final Link office365Link;
 	private final Link documentsInUseLink;
 	private final SegmentViewComponent segmentView;
 	
-	private Controller collaboraCtrl;
-	private Controller onlyOfficeCtrl;
-	private Controller office365Ctrl;
+	private Controller editorCtrl;
 	private DocumentsInUseListController documentsInUseCtrl;
+	
+	private int counter = 0;
 
+	@Autowired
+	private List<DocEditorAdminSegment> adminSegments;
+	
 	public AdminDocEditorController(UserRequest ureq, WindowControl wControl) {
 		super(ureq, wControl);
 		
 		mainVC = createVelocityContainer("admin");
 		
 		segmentView = SegmentViewFactory.createSegmentView("segments", mainVC, this);
-		collaboraLink = LinkFactory.createLink("admin.collabora", mainVC, this);
-		segmentView.addSegment(collaboraLink, true);
-		onlyOfficeLink = LinkFactory.createLink("admin.onlyoffice", mainVC, this);
-		segmentView.addSegment(onlyOfficeLink, false);
-		office365Link = LinkFactory.createLink("admin.office365", mainVC, this);
-		segmentView.addSegment(office365Link, false);
+		
+		adminSegments.sort((s1, s2) -> s1.getLinkName(getLocale()).compareToIgnoreCase(s2.getLinkName(getLocale())));
+		for (DocEditorAdminSegment adminSegment : adminSegments) {
+			String name = "ed-" + (++counter);
+			Link link = LinkFactory.createLink(name, name, getTranslator(), mainVC, this, Link.NONTRANSLATED);
+			link.setCustomDisplayText(adminSegment.getLinkName(getLocale()));
+			link.setUserObject(adminSegment);
+			segmentView.addSegment(link, false);
+		}
+		
 		documentsInUseLink = LinkFactory.createLink("admin.documents.in.use", mainVC, this);
 		segmentView.addSegment(documentsInUseLink, false);
-
-		doOpenCollabora(ureq);
+		
+		Component firstLink = segmentView.getSegments().get(0);
+		segmentView.select(firstLink);
+		doOpenAdminSegment(ureq, adminSegments.get(0));
+		
 		putInitialPanel(mainVC);
 	}
 	
@@ -90,19 +93,32 @@ public class AdminDocEditorController extends BasicController implements Activat
 		if(entries == null || entries.isEmpty()) return;
 		
 		String type = entries.get(0).getOLATResourceable().getResourceableTypeName();
-		if(COLLABORA_RES_TYPE.equalsIgnoreCase(type)) {
-			doOpenCollabora(ureq);
-			segmentView.select(collaboraLink);
-		} else if(ONLY_OFFICE_RES_TYPE.equalsIgnoreCase(type)) {
-			doOpenOnlyOffice(ureq);
-			segmentView.select(onlyOfficeLink);
-		} else if(OFFICE365_RES_TYPE.equalsIgnoreCase(type)) {
-			doOpenOffice365(ureq);
-			segmentView.select(office365Link);
-		} else if(DOCUMENTS_IN_USE_RES_TYPE.equalsIgnoreCase(type)) {
+		if (DOCUMENTS_IN_USE_RES_TYPE.equalsIgnoreCase(type)) {
 			doOpenDocumentsInUse(ureq);
 			segmentView.select(documentsInUseLink);
+		} else {
+			DocEditorAdminSegment adminSegment = getAdminSegment(type);
+			if (adminSegment != null) {
+				doOpenAdminSegment(ureq, adminSegment);
+			}
+		}
+	}
+
+	private DocEditorAdminSegment getAdminSegment(String type) {
+		for (Component component : segmentView.getSegments()) {
+			if (component instanceof Link) {
+				Link link = (Link)component;
+				Object userObject = link.getUserObject();
+				if (userObject instanceof DocEditorAdminSegment) {
+					DocEditorAdminSegment adminSegment = (DocEditorAdminSegment)userObject;
+					if (adminSegment.getBusinessPathType().equalsIgnoreCase(type)) {
+						segmentView.select(component);
+						return adminSegment;
+					}
+				}
+			}
 		}
+		return null;
 	}
 
 	@Override
@@ -112,50 +128,28 @@ public class AdminDocEditorController extends BasicController implements Activat
 				SegmentViewEvent sve = (SegmentViewEvent)event;
 				String segmentCName = sve.getComponentName();
 				Component clickedLink = mainVC.getComponent(segmentCName);
-				if (clickedLink == collaboraLink) {
-					doOpenCollabora(ureq);
-				} else if (clickedLink == onlyOfficeLink) {
-					doOpenOnlyOffice(ureq);
-				} else if (clickedLink == office365Link) {
-					doOpenOffice365(ureq);
-				} else if (clickedLink == documentsInUseLink) {
+				if (clickedLink == documentsInUseLink) {
 					doOpenDocumentsInUse(ureq);
+				} else if (clickedLink instanceof Link) {
+					Link link = (Link)clickedLink;
+					Object userObject = link.getUserObject();
+					if (userObject instanceof DocEditorAdminSegment) {
+						DocEditorAdminSegment adminSegment = (DocEditorAdminSegment)userObject;
+						doOpenAdminSegment(ureq, adminSegment);
+					}
 				}
 			}
 		}
 	}
 	
-	private void doOpenCollabora(UserRequest ureq) {
-		if(collaboraCtrl == null) {
-			WindowControl swControl = addToHistory(ureq, OresHelper.createOLATResourceableType(COLLABORA_RES_TYPE), null);
-			collaboraCtrl = new CollaboraAdminController(ureq, swControl);
-			listenTo(collaboraCtrl);
-		} else {
-			addToHistory(ureq, collaboraCtrl);
-		}
-		mainVC.put("segmentCmp", collaboraCtrl.getInitialComponent());
-	}
-	
-	private void doOpenOnlyOffice(UserRequest ureq) {
-		if(onlyOfficeCtrl == null) {
-			WindowControl swControl = addToHistory(ureq, OresHelper.createOLATResourceableType(ONLY_OFFICE_RES_TYPE), null);
-			onlyOfficeCtrl = new OnlyOfficeAdminController(ureq, swControl);
-			listenTo(onlyOfficeCtrl);
-		} else {
-			addToHistory(ureq, onlyOfficeCtrl);
-		}
-		mainVC.put("segmentCmp", onlyOfficeCtrl.getInitialComponent());
-	}
-	
-	private void doOpenOffice365(UserRequest ureq) {
-		if(office365Ctrl == null) {
-			WindowControl swControl = addToHistory(ureq, OresHelper.createOLATResourceableType(OFFICE365_RES_TYPE), null);
-			office365Ctrl = new Office365AdminController(ureq, swControl);
-			listenTo(office365Ctrl);
-		} else {
-			addToHistory(ureq, office365Ctrl);
-		}
-		mainVC.put("segmentCmp", office365Ctrl.getInitialComponent());
+	private void doOpenAdminSegment(UserRequest ureq, DocEditorAdminSegment adminSegment) {
+		removeAsListenerAndDispose(editorCtrl);
+		editorCtrl = null;
+		
+		WindowControl swControl = addToHistory(ureq, OresHelper.createOLATResourceableType(adminSegment.getBusinessPathType()), null);
+		editorCtrl = adminSegment.createController(ureq, swControl);
+		listenTo(editorCtrl);
+		mainVC.put("segmentCmp", editorCtrl.getInitialComponent());
 	}
 	
 	private void doOpenDocumentsInUse(UserRequest ureq) {
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_de.properties
index 6746792a04c..0f73e5e58ab 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_de.properties
@@ -1,10 +1,7 @@
-admin.collabora=$org.olat.core.commons.services.doceditor.collabora.ui\:editor.display.name
 admin.data.transfer.confirmation.enabled=Best\u00e4tigung Datentransfer
 admin.documents.in.use=Ge\u00f6ffnete Dokumente
 admin.menu.title.alt=Dokumenteneditoren
 admin.menu.title=Dokumenteneditoren
-admin.office365=$org.olat.core.commons.services.doceditor.office365.ui\:editor.display.name
-admin.onlyoffice=$org.olat.core.commons.services.doceditor.onlyoffice.ui\:editor.display.name
 admin.usage.roles.author=Autoren
 admin.usage.roles.coach=Betreuer
 admin.usage.roles.help=Wenn Sie diese Option einschalten, kann niemand ausser den explizit angegebenen Benutzerrollen den Editor verwenden. Nur Administratoren k\u00f6nnen den Editor immer verwenden.
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_en.properties
index d991020d8ce..d34bbef02ab 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_en.properties
@@ -1,4 +1,3 @@
-admin.collabora=$org.olat.core.commons.services.doceditor.collabora.ui\:editor.display.name
 admin.data.transfer.confirmation.enabled=Confirmation of data transfer
 admin.documents.in.use=Open documents
 admin.menu.title.alt=Document editors
@@ -8,8 +7,6 @@ admin.usage.roles.author=Authors
 admin.usage.roles.coach=Coaches
 admin.usage.roles.help=If you enable this option, nobody but the explicitly specified user roles can use the editor. Only administrators can always use the editor.
 admin.usage.roles.managers=Manager
-admin.office365=$org.olat.core.commons.services.doceditor.office365.ui\:editor.display.name
-admin.onlyoffice=$org.olat.core.commons.services.doceditor.onlyoffice.ui\:editor.display.name
 create.doc.already.exists=$org.olat.core.commons.modules.bc\:cfile.already.exists
 create.doc.button=Create document
 create.doc.name.notvalid=$org.olat.core.commons.modules.bc\:cfile.name.notvalid
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_fr.properties
index bff75aa7bc7..caf5a2f1241 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_fr.properties
@@ -1,11 +1,8 @@
 #Thu Apr 23 10:22:06 CEST 2020
-admin.collabora=$org.olat.core.commons.services.doceditor.collabora.ui\:editor.display.name
 admin.data.transfer.confirmation.enabled=Confirmer le transfert de donn\u00E9es
 admin.documents.in.use=Documents ouverts
 admin.menu.title=Editeurs de documents
 admin.menu.title.alt=Editeurs de documents
-admin.office365=$org.olat.core.commons.services.doceditor.office365.ui\:editor.display.name
-admin.onlyoffice=$org.olat.core.commons.services.doceditor.onlyoffice.ui\:editor.display.name
 admin.usage.roles=Restrictions d'usage \u00E0
 admin.usage.roles.author=Auteurs
 admin.usage.roles.coach=Coach
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_it.properties
index 99c72ae99cc..ef5964daf09 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_it.properties
+++ b/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_it.properties
@@ -1,11 +1,8 @@
 #Wed Aug 26 16:00:00 CEST 2020
-admin.collabora=$org.olat.core.commons.services.doceditor.collabora.ui\:editor.display.name
 admin.data.transfer.confirmation.enabled=Confermare il trasferimento dati
 admin.documents.in.use=Aprire documenti
 admin.menu.title=Editori di documenti
 admin.menu.title.alt=Editore di documenti
-admin.office365=$org.olat.core.commons.services.doceditor.office365.ui\:editor.display.name
-admin.onlyoffice=$org.olat.core.commons.services.doceditor.onlyoffice.ui\:editor.display.name
 admin.usage.roles=Restrizioni d'uso per
 admin.usage.roles.author=Autori
 admin.usage.roles.coach=Coach
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_pt_BR.properties
index bb2d44de6a2..b89344ed004 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_pt_BR.properties
@@ -1,11 +1,8 @@
 #Tue May 26 15:13:50 CEST 2020
-admin.collabora=$org.olat.core.commons.services.doceditor.collabora.ui\:editor.display.name
 admin.data.transfer.confirmation.enabled=Confirma\u00E7\u00E3o de transfer\u00EAncia de dados
 admin.documents.in.use=Documentos abertos
 admin.menu.title=Editores de documento
 admin.menu.title.alt=Editores de documentos
-admin.office365=$org.olat.core.commons.services.doceditor.office365.ui\:editor.display.name
-admin.onlyoffice=$org.olat.core.commons.services.doceditor.onlyoffice.ui\:editor.display.name
 admin.usage.roles=Restringir o uso a
 admin.usage.roles.author=Autores
 admin.usage.roles.coach=Treinadores
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_ru.properties b/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_ru.properties
index 44948bf5d01..364bd2aa570 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_ru.properties
+++ b/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_ru.properties
@@ -1,10 +1,7 @@
 #Fri Feb 28 09:46:20 CET 2020
-admin.collabora=$org.olat.core.commons.services.doceditor.collabora.ui\:editor.display.name
 admin.data.transfer.confirmation.enabled=\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043D\u043D\u044B\u0445
 admin.menu.title=\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u044B \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432
 admin.menu.title.alt=\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u044B \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432
-admin.office365=$org.olat.core.commons.services.doceditor.office365.ui\:editor.display.name
-admin.onlyoffice=$org.olat.core.commons.services.doceditor.onlyoffice.ui\:editor.display.name
 admin.usage.roles=\u041E\u0433\u0440\u0430\u043D\u0438\u0447\u0438\u0442\u044C \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435 \u0434\u043E
 admin.usage.roles.author=\u0410\u0432\u0442\u043E\u0440\u044B
 admin.usage.roles.coach=\u0422\u0440\u0435\u043D\u0435\u0440\u044B
-- 
GitLab