From 49331abe49b9d9db7cf22f9aba7c552e88cf4ebe Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Wed, 17 Dec 2014 20:05:44 +0100
Subject: [PATCH] no-jira: german and english translations

---
 .../_i18n/LocalStrings_de.properties          |  2 +-
 .../_i18n/LocalStrings_en.properties          |  8 ++++-
 .../bulk/_i18n/LocalStrings_de.properties     |  2 +-
 .../manager/CertificatesManagerImpl.java      | 10 ++++--
 .../ui/CertificatesAdminController.java       |  2 +-
 .../ui/DownloadCertificateCellRenderer.java   |  2 +-
 .../ui/_i18n/LocalStrings_de.properties       | 31 +++++++++----------
 .../ui/_i18n/LocalStrings_en.properties       | 27 +++++++++++++++-
 .../ui/_i18n/LocalStrings_fr.properties       |  1 -
 .../course/editor/QuickPublishController.java |  2 +-
 .../editor/_i18n/LocalStrings_de.properties   |  2 +-
 .../editor/_i18n/LocalStrings_en.properties   |  3 +-
 .../projectbroker/ProjectListController.java  | 23 ++------------
 .../oauth/ui/_i18n/LocalStrings_de.properties |  4 +--
 .../oauth/ui/_i18n/LocalStrings_en.properties |  5 ++-
 .../coach/ui/_i18n/LocalStrings_de.properties |  2 +-
 .../coach/ui/_i18n/LocalStrings_en.properties |  4 ++-
 .../ui/_i18n/LocalStrings_de.properties       |  2 +-
 .../ui/_i18n/LocalStrings_en.properties       |  3 +-
 .../handlers/WebDocumentHandler.java          |  6 ++--
 .../repository/manager/CatalogManager.java    |  2 +-
 .../manager/RepositoryEntryStatisticsDAO.java | 24 --------------
 22 files changed, 83 insertions(+), 84 deletions(-)

diff --git a/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_de.properties
index c30b8501dc1..468519223d9 100644
--- a/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_de.properties
@@ -29,7 +29,7 @@ course.link=Kurs \u00F6ffnen
 create.certificate=Zertifikate erzeugen
 confirm.certificate.title=Zertifikate erzeugen
 confirm.certificate.description=Neue Zertifikate für diese Benutzer erzeugen: {0}
-confirm.certificate.description.warning=Sie wollen Zertifikate für diese Personnen erzeugen: {0}. Aber die Rezertifikation Period von diese Peronen ist noch nicht abgelaufen: {1}. Wollen Sie die Zertifikate trotzdem erzeugen?
+confirm.certificate.description.warning=Sie wollen Zertifikate für diese Personen erzeugen: {0 Für folgende Personen ist die Re-Zertifizierungswartezeit noch nicht abgelaufen: {1}. Wollen Sie die Zertifikate trotzdem erzeugen?
 group=Gruppe\:
 group.link=Gruppe \u00F6ffnen
 date=Datum\:
diff --git a/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_en.properties
index ed96aaa0ec9..15c02c0bd47 100644
--- a/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_en.properties
@@ -1,4 +1,4 @@
-#Tue Dec 16 09:01:48 CET 2014
+#Wed Dec 17 15:43:14 CET 2014
 action.choose=Select 
 artefact.title=Evidence of achievement for course {0}
 assessment.testresults.finished=<font color\="green">Assessment completed</font>
@@ -26,9 +26,13 @@ command.closeassessment=Close
 command.hidelog=Hide log file
 command.showlog=Show log file
 command.start.bulkwizard=Start bulk assessment
+confirm.certificate.description=Create new certificates for the following users\: {0}
+confirm.certificate.description.warning=You are trying to create new certificates for the following users\: {0}. The re-certification period has not yet expired for the following users\: {1}. Do you wish to proceed anyway?
+confirm.certificate.title=Create certificates
 contact.link=Contact
 course=Course\:
 course.link=Open course
+create.certificate=Create certificate
 date=Date\:
 detailview.title=Detailed view of assessment
 efficiencyStatements.cannot.delete=You cannot delete the evidence of achievement of an existent course.
@@ -92,6 +96,7 @@ identityoverview.title=Assessment overview
 index.intro=By means of this tool you can assess your course participants. You can see test or assessment results and modify them. Choose a topic on the left to start.
 index.noAssessableNodes=No assessments can be carried out since there are no assessable course elements in this course. Start the course editor and add an assessable course element to the course structure (e.g. test, assessment).
 index.notifications.assessment=Notification regarding new test results of this course\: 
+index.notifications.certificate=Generated certificates
 index.notifications.title=Notification service 
 index.slow=Please note that it takes time to display modifications of the assessment tool. Please do not use the back or reload button.
 index.title=Assessment tool
@@ -134,6 +139,7 @@ participantgroups.noGroups=This user does not participate in any group.
 participantgroups.title=Participants in groups
 passed.false=<span class\="o_state o_failed"><i class\="o_icon o_icon_failed"> </i> Failed</span>
 passed.true=<span class\="o_state o_passed"><i class\="o_icon o_icon_passed"> </i> Passed</span>
+select.one.user.warning=Please select at least one user
 table.action.delete=Delete
 table.action.launchcourse=Start course
 table.action.select=Select
diff --git a/src/main/java/org/olat/course/assessment/bulk/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/assessment/bulk/_i18n/LocalStrings_de.properties
index 0707f7699b2..82129da2895 100644
--- a/src/main/java/org/olat/course/assessment/bulk/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/assessment/bulk/_i18n/LocalStrings_de.properties
@@ -15,7 +15,7 @@ bulk.action.wrong.config.toSetUserComment=Gem\u00E4ss Konfiguration des Kursbaus
 bulk.action.wrong.float=falsches Zahlenformat
 bulk.assessment.done=Die Massenbewertung ist fertig.
 bulk.assessment.enlisted=Die Massenbewertung ist gespeichert und wird zu einem sp\u00E4teren Zeitpunkt bearbeitet.
-bulk.assessment.error=Eine unerwartete Fehler ist w\u00E4hrend die Massenbewertung aufgetretten.
+bulk.assessment.error=Ein unerwarteter Fehler ist w\u00E4hrend die Massenbewertung aufgetretten.
 bulk.assessment.error.feedback=Es sind Probleme aufgetreten. Die folgenden Daten wurden nicht importiert. Die restlichen Daten wurden trotzdem ausgef\u00FChrt\:<p>{0}
 bulk.assessment.error.title=Nicht alle Bewertung k\u00F6nnte erfolgreich abgelegt werden
 bulk.wizard.desc=Mit dem Werkzeug "Massenbewertung" k\u00F6nnen f\u00FCr mehrere Teilnehmer Bewertungsdaten wie Punkte, Statusinformationen, Kommentare sowie R\u00FCckgabedateien in einem Schritt \u00FCbermittelt werden. 
diff --git a/src/main/java/org/olat/course/certificate/manager/CertificatesManagerImpl.java b/src/main/java/org/olat/course/certificate/manager/CertificatesManagerImpl.java
index 25ea5d11991..ac73f7565e0 100644
--- a/src/main/java/org/olat/course/certificate/manager/CertificatesManagerImpl.java
+++ b/src/main/java/org/olat/course/certificate/manager/CertificatesManagerImpl.java
@@ -63,6 +63,7 @@ import org.olat.core.commons.services.notifications.SubscriptionContext;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.Identity;
 import org.olat.core.id.Roles;
+import org.olat.core.id.UserConstants;
 import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.FileUtils;
@@ -805,9 +806,12 @@ public class CertificatesManagerImpl implements CertificatesManager, MessageList
 		Date dateFirstCertification = getDateFirstCertification(identity, resource.getKey());
 		
 		File certificateFile;
-		String courseName = FileUtils.normalizeFilename(entry.getDisplayname());
-		String filename = Util.createPackageTranslator(CertificateController.class, locale)
-				.translate("certificate.filename", new String[]{ courseName }) + ".pdf";
+		StringBuilder sb = new StringBuilder();
+		sb.append(identity.getUser().getProperty(UserConstants.LASTNAME, locale)).append("_")
+		  .append(identity.getUser().getProperty(UserConstants.FIRSTNAME, locale)).append("_")
+		  .append(entry.getDisplayname()).append("_")
+		  .append(Formatter.formatShortDateFilesystem(dateCertification));
+		String filename = FileUtils.normalizeFilename(sb.toString()) + ".pdf";
 		if(template == null || template.getPath().toLowerCase().endsWith("pdf")) {
 			CertificatePDFFormWorker worker = new CertificatePDFFormWorker(identity, entry, score, passed,
 					dateCertification, dateFirstCertification, locale, userManager, this);
diff --git a/src/main/java/org/olat/course/certificate/ui/CertificatesAdminController.java b/src/main/java/org/olat/course/certificate/ui/CertificatesAdminController.java
index 93b804d966e..526ba9ac2a7 100644
--- a/src/main/java/org/olat/course/certificate/ui/CertificatesAdminController.java
+++ b/src/main/java/org/olat/course/certificate/ui/CertificatesAdminController.java
@@ -152,7 +152,7 @@ public class CertificatesAdminController extends FormBasicController {
 	private void doDelete(CertificateTemplate template) {
 		certificatesManager.deleteTemplate(template);
 		updateDataModel();
-		showInfo("confirm.certificate.deleted", template.getName());
+		showInfo("confirm.certificate.template.deleted", template.getName());
 	}
 
 	private void doUpload(UserRequest ureq) {
diff --git a/src/main/java/org/olat/course/certificate/ui/DownloadCertificateCellRenderer.java b/src/main/java/org/olat/course/certificate/ui/DownloadCertificateCellRenderer.java
index 4e2124d8e5a..03477dcebe1 100644
--- a/src/main/java/org/olat/course/certificate/ui/DownloadCertificateCellRenderer.java
+++ b/src/main/java/org/olat/course/certificate/ui/DownloadCertificateCellRenderer.java
@@ -120,7 +120,7 @@ public class DownloadCertificateCellRenderer implements CustomCellRenderer, Flex
 	public static String getUrl(Certificate certificate) {
 		StringBuilder sb = new StringBuilder(100);
 		sb.append(Settings.getServerContextPath()).append("/certificate/")
-		  .append(certificate.getUuid()).append("/").append(getName(certificate)).append(".pdf");
+		  .append(certificate.getUuid()).append("/").append(getName(certificate));
 		return sb.toString();
 	}
 }
diff --git a/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_de.properties
index 5cf83f4470d..c5e8eea6bf2 100644
--- a/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_de.properties
@@ -1,20 +1,19 @@
 admin.menu.title=Zertifikate
 admin.menu.title.alt=Zertifikate einstellen
-admin.certificates.title=Einstellungen  configuration
-admin.certificates.description=Hier k\u00F6nnen Sie Templates hochladen.
+admin.certificates.title=Zertifikate
+admin.certificates.description=Laden Sie PDF-Formulare als Vorlagen f\u00FCr OpenOLAT Kurszertifikate hoch.
 certificate=Zertifikate
 certificate.creationdate=Zertifikat ausgestellt am {0}
-certificate.filename={0}_Zertifikat
-confirm.delete.title=Zertifikate L\u00F6schen
-confirm.delete.text=Wollen Sie wirklichen dieser Zertifikat l\u00F6schen?
+confirm.delete.title=Zertifikate l\u00F6schen
+confirm.delete.text=Wollen Sie dieses Zertifikat wirklich l\u00F6schen?
 table.header.certificate=Zertifikat
 choose.title=Vorlage ausw\u00E4hlen
 default.template=Standardvorlage
 details.certificate=Zertifikat
 details.course.infos=Kursdetails
 download.button=Zertifikat herunterladen
-help.hover.admincertificates=Hilfe \u00FCber Konfiguration von Zertifikaten
-chelp.admin-certificates.title=Konfiguration Zertifikaten
+help.hover.admincertificates=Hilfe zur Konfiguration von Zertifikaten
+chelp.admin-certificates.title=Konfiguration Zertifikate
 options.certificates.title=Konfiguration Leistungnachweis
 generate.certificate=Zertifikat erzeugen
 no.certificate=Kein Zertifikat vorhanden
@@ -42,21 +41,21 @@ upload=Vorlage hochladen
 upload.title=Vorlage hochladen
 upload.error.encrypted=Die Vorlage darf nicht verschl\u00FCsselt sein.
 upload.unkown.error=Die Vorlage kann nicht gelesen werden.
-upload.error.noindex=Der ZIP Datei enth\u00E4lt kein "index.html" Datei.
-upload.error.simplefonts=Die Fonts den Felder k\u00F6nnte nicht gefunden werden. Bitte benutzen Sie standards Fonts wie Helvetica, und Acrobat Pro um die Felder zu erstellen.
+upload.error.noindex=Die ZIP-Datei enth\u00E4lt keine "index.html" Datei.
+upload.error.simplefonts=Der in den Feldern verwendete Font konnte nicht gefunden werden. Bitte benutzen Sie Standardfonts wie z.B. Helvetica, sowie die Acrobat Pro Software, um die Formularfelder zu erstellen.
 upload.error.no.phantomjs=PhantomJS ist nicht verf\u00FCgbar in PATH. HTML template k\u00F6nnen nicht benutzt werden.
 notifications.title=Neue Zertifikate in Kurs "{0}"
-notifications.desc={0} hat eine neue Zertifikate bekommen.
+notifications.desc={0} hat ein neues Zertifikat erhalten.
 notifications.header=Neue Zertifikate in Kurs "{0}"
 certification.email.subject=Sie haben ein OpenOLAT-Zertifikat erhalten
 certification.email.body=Gratuliere!\n\nSie haben ein Zertifikat erhalten.\nAls Anhang finden Sie das Zertifikat des Kurses: "{0}".
 confirm.certificate.title=Zertifikat erstellen
-confirm.certificate.text=Ein Zertifikat wurde schon erstellt und den Period f\u00FCr Rezertifikation ist noch nicht abgelaufen. Wollen Sie trotzdem ein neues Zertifikat erstellen?
-confirm.certificate.deleted=Die Vorlage "{0}" wurde gel\u00F6scht.
+confirm.certificate.text=Es wurde bereits ein Zertifikat ausgestellt und die Wartezeit f\u00FCr die Rezertifizierung ist noch nicht abgelaufen. M\u00F6chten Sie dennoch ein neues Zertifikat erstellen?
+confirm.certificate.template.deleted=Die Vorlage "{0}" wurde gel\u00F6scht.
 confirm.delete.certificate.title=Zertifikat l\u00F6schen.
-confirm.delete.certificate.text=Wollen Sie wirklich den Zertifikat l\u00F6schen?
-confirm.certificate.deleted=Der Zertifikate von {0} wurde gel\u00F6scht.
-certificates.wizard.title=Zertifikaten erstellen
+confirm.delete.certificate.text=Wollen Sie das Zertifikat wirklich l\u00F6schen?
+confirm.certificate.deleted=Das Zertifikat vom {0} wurde gel\u00F6scht.
+certificates.wizard.title=Zertifikate erstellen
 certificates.wizard.select=Benutzer ausw\u00E4hlen
 certificates.wizard.overview=\u00DCbersicht
-msg.certificate.pending=Der Zertifikat wird in ein paar Sekunden erstellt.
\ No newline at end of file
+msg.certificate.pending=Das Zertifikat wird in ein paar Sekunden erstellt.
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_en.properties
index 8654b508fd4..36ee92ba713 100644
--- a/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_en.properties
@@ -1,21 +1,43 @@
-#Wed Dec 17 08:23:49 CET 2014
+#Wed Dec 17 17:00:05 CET 2014
+admin.certificates.description=Upload PDF forms as templates for the course certificates.
+admin.certificates.title=Certificates
 admin.menu.title=Certificates
 admin.menu.title.alt=Certificates configuration
 certificate=Certificates
+certificate.creationdate=Certificate issued on {0}
 certificate.filename={0}_Certificate
 certificates.wizard.overview=Overview
+certificates.wizard.select=Select user
+certificates.wizard.title=Create certificates
 certification.email.body=Congratulations\!\r\n\r\nYou have received a certification.\r\nPlease find attached the certificate to the course "{0}".
 certification.email.subject=You have received an OpenOLAT certification
+chelp.admin-certificates.title=Certificate configuration
+choose.title=Select template
+confirm.certificate.deleted=The certificate from {0} was deleted.
+confirm.certificate.text=A certificate has already been issued and the re-certification period has not yet expired. Do you wish to create a new certificate anyway?
+confirm.certificate.title=Create certificate
+confirm.delete.certificate.text=Do you really wish to delete the certificate?
+confirm.delete.certificate.title=Delete certificate
+confirm.delete.text=Do you really wish to delete this certificate?
+confirm.delete.title=Delete certificates
 default.template=Default template
 details.certificate=Certificate
 details.course.infos=Performance details
+download.button=Download certificate
 format=Format
+generate.certificate=Create certificate
+help.hover.admincertificates=Help regarding the configuration of certificates
 landscape=Landscape
+msg.certificate.pending=The certificate will be created within the next few seconds.
+no.certificate=No certificate available
+notifications.desc={0} received a new certificate.
+notifications.header=New certificates for the course "{0}".
 options.certificates.title=Evidence of achievement configuration
 orientation=Orientation
 pdf.certificates=Generate PDF certificate
 pdf.certificates.auto=Automatically after passing the course
 pdf.certificates.manual=Manually by tutor
+pdf.certificates.none=Do not create new certificate
 pdf.certificates.template=Certificate template
 portrait=Portrait
 preview=Preview
@@ -33,4 +55,7 @@ timelapse.after=after
 upload=Upload template
 upload.error.encrypted=The template cannot be encrypted.
 upload.error.no.phantomjs=PhantomJS is not in PATH. You cannot use HTML templates.
+upload.error.noindex=The ZIP file doesn't include a "index.html" file.
+upload.error.simplefonts=The font(s) used in the form fields could not be found. Please use standard fonts such as e.g. Helvetica, as well as the Acrobat Pro Software in order to create the form fields.
 upload.title=Upload template
+upload.unkown.error=The template cannot be opened.
diff --git a/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_fr.properties
index 1a9a70f11c9..8c6a6bdef84 100644
--- a/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_fr.properties
@@ -5,7 +5,6 @@ admin.menu.title=Certificats
 admin.menu.title.alt=Configuration certificats
 certificate=Certificats
 certificate.creationdate=Certificat \u00E9tabli le {0}
-certificate.filename={0}_Certificat
 certificates.wizard.overview=Aper\u00E7u
 certificates.wizard.select=Choisir l'utilisateur
 certificates.wizard.title=G\u00E9n\u00E9rer des certificats
diff --git a/src/main/java/org/olat/course/editor/QuickPublishController.java b/src/main/java/org/olat/course/editor/QuickPublishController.java
index 1ef2de17faa..0dc27c03e89 100644
--- a/src/main/java/org/olat/course/editor/QuickPublishController.java
+++ b/src/main/java/org/olat/course/editor/QuickPublishController.java
@@ -63,7 +63,7 @@ public class QuickPublishController extends BasicController {
 		VelocityContainer mainVC = createVelocityContainer("quick_publish");
 		
 		String accessI18n = "";
-		String accessI18CssClass = "o_info";
+		String accessI18CssClass = "o_success";
 		RepositoryEntry entry = course.getCourseEnvironment().getCourseGroupManager().getCourseEntry();
 		if(entry.isMembersOnly()) {
 			accessI18n = translate("cif.access.membersonly");
diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_de.properties
index 8b39a8bf967..da3c15d6861 100644
--- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_de.properties
@@ -450,7 +450,7 @@ pbl.intro=Bitte w\u00E4hlen Sie die Kursbausteine aus, welche Sie publizieren m\
 pbl.intro.warning=Beim Publizieren von gel\u00F6schten Kursbausteinen werden deren untergeordnete Kursbausteine ebenfalls gel\u00F6scht. Analog werden beim Publizieren von neuen Kursbausteinen deren untergeordnete Kursbausteine ebenfalls publiziert.
 pbl.intro.warning.header=Wichtig
 pbl.quick.title=\u00C4nderungen publizieren
-pbl.quick.description=Der Kurs enthählt unveröffentliche \u00C4nderungen. Wollen Sie diese vor dem Schliessen publizieren?
+pbl.quick.description=Der Kurs enthält unveröffentlichte \u00C4nderungen. Wollen Sie diese vor dem Schliessen publizieren?
 pbl.quick.no=Nein
 pbl.quick.manual=Ja, manuell
 pbl.quick.auto=Ja, automatisch
diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_en.properties
index b3723ddbbef..d2db977c2b9 100644
--- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_en.properties
@@ -1,4 +1,4 @@
-#Wed Dec 17 09:49:54 CET 2014
+#Wed Dec 17 17:29:34 CET 2014
 access.form.label=Access to entire course have
 access.legend=Modify access to entire course
 alternative=Search for alternative course element
@@ -452,6 +452,7 @@ pbl.intro.warning.header=Important
 pbl.nothing=No modifications to be published. The course is up to date.
 pbl.nothing.button=Back to editor
 pbl.quick.auto=Yes, automatically
+pbl.quick.description=There are unpublished modifications to this course. Would you like to publish them befor closing the editor?
 pbl.quick.manual=Yes, manually
 pbl.quick.no=No
 pbl.quick.title=Publish modifications
diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ProjectListController.java b/src/main/java/org/olat/course/nodes/projectbroker/ProjectListController.java
index f038c094040..3dc8cb86484 100644
--- a/src/main/java/org/olat/course/nodes/projectbroker/ProjectListController.java
+++ b/src/main/java/org/olat/course/nodes/projectbroker/ProjectListController.java
@@ -29,9 +29,9 @@ import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
+import org.olat.NewControllerFactory;
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.gui.UserRequest;
-import org.olat.core.gui.Windows;
 import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.link.Link;
 import org.olat.core.gui.components.link.LinkFactory;
@@ -50,8 +50,6 @@ import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.controller.BasicController;
 import org.olat.core.gui.control.generic.closablewrapper.CloseableCalloutWindowController;
-import org.olat.core.gui.control.generic.dtabs.DTab;
-import org.olat.core.gui.control.generic.dtabs.DTabs;
 import org.olat.core.gui.render.Renderer;
 import org.olat.core.gui.render.StringOutput;
 import org.olat.core.id.Identity;
@@ -72,9 +70,6 @@ import org.olat.course.nodes.projectbroker.service.ProjectGroupManager;
 import org.olat.course.properties.CoursePropertyManager;
 import org.olat.course.run.userview.UserCourseEnvironment;
 import org.olat.group.BusinessGroup;
-import org.olat.user.HomePageConfigManager;
-import org.olat.user.HomePageConfigManagerImpl;
-import org.olat.user.UserInfoMainController;
 
 /**
  *
@@ -368,20 +363,8 @@ public class ProjectListController extends BasicController implements GenericEve
 	}
 
 	private void openUserInPopup(UserRequest ureq, final Identity ident){
-		// did not work to open as popup based on ureq! -> open as tab in same window
-			HomePageConfigManager hpcm = HomePageConfigManagerImpl.getInstance();
-			OLATResourceable ores = hpcm.loadConfigFor(ident.getName());
-			DTabs dts = Windows.getWindows(ureq).getWindow(ureq).getDTabs();
-			DTab dt = dts.getDTab(ores);
-			if (dt == null) {
-				// does not yet exist -> create and add
-				dt = dts.createDTab(ores, ident.getName());
-				if (dt == null) return;
-				UserInfoMainController uimc = new UserInfoMainController(ureq, dt.getWindowControl(), ident);
-				dt.setController(uimc);
-				dts.addDTab(ureq, dt);
-			}
-			dts.activate(ureq, dt, null);
+		String businessPath = "[HomePage:" + ident.getKey() + "]";
+		NewControllerFactory.getInstance().launch(businessPath, ureq, getWindowControl());
 	}
 	
 
diff --git a/src/main/java/org/olat/login/oauth/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/login/oauth/ui/_i18n/LocalStrings_de.properties
index 823d75cbc94..4abbf5ec4ef 100644
--- a/src/main/java/org/olat/login/oauth/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/login/oauth/ui/_i18n/LocalStrings_de.properties
@@ -11,9 +11,9 @@ admin.menu.title.alt=OAuth and social providers
 authentication.provider.description=Login with your favorite social media
 authentication.provider.linkText=Social logins
 error.access.denied=Access denied.
-error.generic=Eine unerwartete Fehler ist aufgetreten.
+error.generic=Ein unerwarteter Fehler ist aufgetreten.
 error.token.rejected=Token rejected.
-error.account.creation=Sie haben zur Zeit kein Konto auf OpenOLAT.
+error.account.creation=Sie haben zur Zeit kein OpenOLAT-Konto.
 error.invalid.grant=Sie dürfen nicht auf OpenOLAT zugreifen.
 error.no.id=Wir könnten Sie nicht identifizieren.
 login=Login
diff --git a/src/main/java/org/olat/login/oauth/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/login/oauth/ui/_i18n/LocalStrings_en.properties
index 5f67f79544a..83308c8ce9e 100644
--- a/src/main/java/org/olat/login/oauth/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/login/oauth/ui/_i18n/LocalStrings_en.properties
@@ -1,4 +1,4 @@
-#Wed Dec 17 09:49:58 CET 2014
+#Wed Dec 17 17:34:51 CET 2014
 adfs.admin.title=Active directory federation system
 adfs.admin.title.alt=Active directory federation system
 adfs.api.id=Client ID
@@ -12,6 +12,9 @@ authentication.provider.description=Login with your favorite social media
 authentication.provider.linkText=Social logins
 disclaimer.title=Disclaimer
 error.access.denied=Access denied.
+error.account.creation=You currently have no OpenOLAT account.
+error.generic=An unexpected error occurred.
+error.invalid.grant=You are not allowed to access OpenOLAT.
 error.token.rejected=Token rejected.
 facebook.admin.title=Facebook Konfiguration
 facebook.api.id=App key
diff --git a/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_de.properties
index 4aeb1e54dae..207d865f24e 100644
--- a/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_de.properties
@@ -57,4 +57,4 @@ search.menu.title=Benutzersuche
 search.menu.title.alt=Benutzersuche
 search.form.login=Benutzername
 error.search.form.notempty=$org.olat.admin.user:error.search.form.notempty
-error.search.form.too.many=Zu viele Treffer wurde gefunden. Bitte beschränken Sie ihre Suche.
\ No newline at end of file
+error.search.form.too.many=Die Suche lieferte zu viele Treffer. Bitte schr\u00e4nken Sie ihre Suche ein.
\ No newline at end of file
diff --git a/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_en.properties
index 3ad734af740..17c01ed0859 100644
--- a/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_en.properties
@@ -1,4 +1,4 @@
-#Tue Dec 16 09:00:16 CET 2014
+#Wed Dec 17 15:24:45 CET 2014
 chelp.coaching.intro=If you are coaching a learning group or a course and your course creates an efficiency statement triggered by assessment data, the coaching tool will appear in the top navigation. The coaching tool grants a course comprehensive view to learners assessment status. \r\n<br/>Use the navigation in the menu to examine the learning stats of individual users, groups or even entire courses. A progress bare indicates if a user, group or course met all the required assessments or if something is missing of users did not pass the assessments. In the list view, use the column ordering to sort by users which needs the most attention. \r\n<br />Once in the user view you can use the arrow navigation to cycle through your users to simplify navigation. In the users detail view you will see the users efficiency statement as it is also seen by the user. Switch to the assessment tool view to adjust the users score or to leave him a comment.
 chelp.coaching.title=Coaching tool
 coaching.enabled=Coaching enable
@@ -12,6 +12,7 @@ details.assessment=Assessment tool
 details.statement=Efficiency statement
 error.no.found=Nichts gefunden
 error.search.form.notempty=$org.olat.admin.user\:error.search.form.notempty
+error.search.form.too.many=Too many search results. Please narrow down your search
 group.name=Name
 groups.menu.title=Groups
 groups.menu.title.alt=Groups
@@ -37,6 +38,7 @@ previous.student=$\:previous
 search=Search
 search.form.login=User name
 search.menu.title=User search
+search.menu.title.alt=User search
 site.title=Coaching
 site.title.alt=Coaching
 student.name=Name
diff --git a/src/main/java/org/olat/modules/webFeed/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/webFeed/ui/_i18n/LocalStrings_de.properties
index 7f175723acd..26772b49fca 100644
--- a/src/main/java/org/olat/modules/webFeed/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/modules/webFeed/ui/_i18n/LocalStrings_de.properties
@@ -35,4 +35,4 @@ feed.item.confirm.delete = Wollen Sie diesen Eintrag wirklich l\u00F6schen?
 feed.item.is.being.edited.by = Der Eintrag wird bereits von {0} bearbeitet.
 feed.is.being.edited.by = Die Beschreibung wird bereits von {0} bearbeitet.
 feed.link.more=weiterlesen
-feed.error=Leider ist ein unerwartete Fehler aufgetretten und der Feed konnte nicht dargestellt werden.
\ No newline at end of file
+feed.error=Aufgrund eines unerwarteten Fehlers konnte der Feed leider nicht dargestellt werden.
\ No newline at end of file
diff --git a/src/main/java/org/olat/modules/webFeed/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/webFeed/ui/_i18n/LocalStrings_en.properties
index c71ea3ce9f0..2ba3567ab58 100644
--- a/src/main/java/org/olat/modules/webFeed/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/modules/webFeed/ui/_i18n/LocalStrings_en.properties
@@ -1,6 +1,7 @@
-#Fri Feb 24 11:56:12 CET 2012
+#Wed Dec 17 15:28:01 CET 2014
 ULLimitExceeded=$org.olat.core.commons.modules.bc\:ULLimitExceeded
 feed.author=Author
+feed.error=Unfortunately, the feed can not be displayed due to an unexpected error.
 feed.file.label=Image
 feed.form.description=Description
 feed.form.feedurl=Feed URL
diff --git a/src/main/java/org/olat/repository/handlers/WebDocumentHandler.java b/src/main/java/org/olat/repository/handlers/WebDocumentHandler.java
index c3b1f4bf1b3..6b14372bc22 100644
--- a/src/main/java/org/olat/repository/handlers/WebDocumentHandler.java
+++ b/src/main/java/org/olat/repository/handlers/WebDocumentHandler.java
@@ -215,9 +215,9 @@ public class WebDocumentHandler extends FileHandler {
 	public MainLayoutController createLaunchController(RepositoryEntry re,  RepositoryEntrySecurity reSecurity, UserRequest ureq, WindowControl wControl) {
 		return new RepositoryEntryRuntimeController(ureq, wControl, re, reSecurity, new RuntimeControllerCreator() {
 			@Override
-			public Controller create(UserRequest ureq, WindowControl wControl, TooledStackedPanel toolbarPanel,
-					RepositoryEntry entry, RepositoryEntrySecurity reSecurity) {
-				return new WebDocumentRunController(ureq, wControl, entry);
+			public Controller create(UserRequest uureq, WindowControl wwControl, TooledStackedPanel toolbarPanel,
+					RepositoryEntry entry, RepositoryEntrySecurity rereSecurity) {
+				return new WebDocumentRunController(uureq, wwControl, entry);
 			}
 		});
 	}
diff --git a/src/main/java/org/olat/repository/manager/CatalogManager.java b/src/main/java/org/olat/repository/manager/CatalogManager.java
index 36c60209ca1..b5a06836df7 100644
--- a/src/main/java/org/olat/repository/manager/CatalogManager.java
+++ b/src/main/java/org/olat/repository/manager/CatalogManager.java
@@ -187,7 +187,7 @@ public class CatalogManager implements UserDataDeletable, InitializingBean {
 		TypedQuery<CatalogEntry> dbQuery = dbInstance.getCurrentEntityManager()
 				.createQuery(sb.toString(), CatalogEntry.class)
 				.setParameter("parentKey", ce.getKey())
-				.setFirstResult(0);
+				.setFirstResult(firstResult);
 		if(maxResults > 0) {
 			dbQuery.setMaxResults(maxResults);
 		}
diff --git a/src/main/java/org/olat/repository/manager/RepositoryEntryStatisticsDAO.java b/src/main/java/org/olat/repository/manager/RepositoryEntryStatisticsDAO.java
index 5459cc0992a..80e0f489929 100644
--- a/src/main/java/org/olat/repository/manager/RepositoryEntryStatisticsDAO.java
+++ b/src/main/java/org/olat/repository/manager/RepositoryEntryStatisticsDAO.java
@@ -24,17 +24,13 @@ import java.util.Date;
 import javax.annotation.PostConstruct;
 import javax.persistence.LockModeType;
 
-import org.olat.commons.lifecycle.LifeCycleManager;
 import org.olat.core.commons.persistence.DB;
 import org.olat.core.commons.services.commentAndRating.UserCommentsDelegate;
 import org.olat.core.commons.services.commentAndRating.UserRatingsDelegate;
 import org.olat.core.commons.services.commentAndRating.manager.UserCommentsDAO;
 import org.olat.core.commons.services.commentAndRating.manager.UserRatingsDAO;
 import org.olat.core.id.OLATResourceable;
-import org.olat.core.logging.OLog;
-import org.olat.core.logging.Tracing;
 import org.olat.repository.RepositoryEntry;
-import org.olat.repository.delete.service.RepositoryDeletionManager;
 import org.olat.repository.model.RepositoryEntryStatistics;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -47,8 +43,6 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class RepositoryEntryStatisticsDAO implements UserRatingsDelegate, UserCommentsDelegate {
-	
-	private static final OLog log = Tracing.createLoggerFor(RepositoryEntryStatisticsDAO.class);
 
 	@Autowired
 	private DB dbInstance;
@@ -68,16 +62,13 @@ public class RepositoryEntryStatisticsDAO implements UserRatingsDelegate, UserCo
 	 * @param re
 	 */
 	public synchronized void incrementLaunchCounter(RepositoryEntry re) {
-		Date previousLastUsage = null;
 		RepositoryEntryStatistics stats = loadStatisticsForUpdate(re);
 		if(stats != null) {
 			stats.setLaunchCounter(stats.getLaunchCounter() + 1);
-			previousLastUsage = stats.getLastUsage();
 			stats.setLastUsage(new Date());
 			dbInstance.getCurrentEntityManager().merge(stats);
 		}
 		dbInstance.commit();
-		updateLifeCycle(re, previousLastUsage);
 	}
 
 	/**
@@ -85,16 +76,13 @@ public class RepositoryEntryStatisticsDAO implements UserRatingsDelegate, UserCo
 	 * @param re
 	 */
 	public void incrementDownloadCounter(RepositoryEntry re) {
-		Date previousLastUsage = null;
 		RepositoryEntryStatistics stats = loadStatisticsForUpdate(re);
 		if(stats != null) {
 			stats.setDownloadCounter(stats.getDownloadCounter() + 1);
-			previousLastUsage = stats.getLastUsage();
 			stats.setLastUsage(new Date());
 			dbInstance.getCurrentEntityManager().merge(stats);
 		}
 		dbInstance.commit();
-		updateLifeCycle(re, previousLastUsage);
 	}
 
 	/**
@@ -112,18 +100,6 @@ public class RepositoryEntryStatisticsDAO implements UserRatingsDelegate, UserCo
 			stats.setLastUsage(newUsage);
 			dbInstance.getCurrentEntityManager().merge(stats);
 			dbInstance.commit();
-			updateLifeCycle(re, lastUsage);
-		}
-	}
-	
-	private void updateLifeCycle(RepositoryEntry reloadedRe, Date previousLastUsage) {
-		if(reloadedRe == null) return;
-		if(previousLastUsage == null || previousLastUsage.getTime() < (System.currentTimeMillis() - (60 * 60 * 1000))) {
-			LifeCycleManager lcManager = LifeCycleManager.createInstanceFor(reloadedRe);
-			if (lcManager.hasLifeCycleEntry(RepositoryDeletionManager.SEND_DELETE_EMAIL_ACTION)) {
-				log.audit("Repository-Deletion: Remove from delete-list repositoryEntry=" + reloadedRe);
-				lcManager.deleteTimestampFor(RepositoryDeletionManager.SEND_DELETE_EMAIL_ACTION);
-			}
 		}
 	}
 	
-- 
GitLab