diff --git a/src/main/java/org/olat/commons/calendar/restapi/CalWebService.java b/src/main/java/org/olat/commons/calendar/restapi/CalWebService.java
index e3256bf339cd73b56e06ffd94537ed648b908bb5..3d2bf7687ae2204313d712bce9643ad6799bae1f 100644
--- a/src/main/java/org/olat/commons/calendar/restapi/CalWebService.java
+++ b/src/main/java/org/olat/commons/calendar/restapi/CalWebService.java
@@ -144,9 +144,9 @@ public class CalWebService {
 	@Path("events")
 	@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
 	@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
-	public Response putEventsByCalendar(EventVOes eventArray, @Context HttpServletRequest httpRequest) {
+	public Response putEventsByCalendar(EventVO[] eventArray, @Context HttpServletRequest httpRequest) {
 		List<EventVO> events = new ArrayList<>();
-		for(EventVO event:eventArray.getEvents()) {
+		for(EventVO event:eventArray) {
 			events.add(event);
 		}
 		return addEventsByCalendar(events, httpRequest);
@@ -165,9 +165,9 @@ public class CalWebService {
 	@Path("events")
 	@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
 	@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
-	public Response postEventsByCalendar(EventVOes eventArray, @Context HttpServletRequest httpRequest) {
+	public Response postEventsByCalendar(EventVO[] eventArray, @Context HttpServletRequest httpRequest) {
 		List<EventVO> events = new ArrayList<>();
-		for(EventVO event:eventArray.getEvents()) {
+		for(EventVO event:eventArray) {
 			events.add(event);
 		}
 		return addEventsByCalendar(events, httpRequest);
diff --git a/src/main/java/org/olat/core/util/mail/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/core/util/mail/_i18n/LocalStrings_en.properties
index 5fa88cd3c46faebdc61069a0a52bb9d0082dd4a3..499079d89687df759506300ad8bd76841c1ecc0a 100644
--- a/src/main/java/org/olat/core/util/mail/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/core/util/mail/_i18n/LocalStrings_en.properties
@@ -1,29 +1,8 @@
 #Thu Aug 15 19:13:24 CEST 2013
 add.email=Add
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
 contact.cp.from=Copy sent to addresser
 footer.no.userdata=<p>This message has been sent automatically via the learning platform OpenOLAT: {0}</p>
 footer.with.userdata=<p>Sender: {2} {3} ({0}), {4} {5}</p><p>This message has been sent via the learning platform OpenOLAT: {1}</p>
-
 mail.action.emtpy=Select at least one e-mail to perform this action.
 mail.action.mark=Mark
 mail.action.open=Read
diff --git a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_fr.properties
index a408d16b09e985ff5892d673dac58bba21eb6cbf..226e0503f757926c52ec1e9c0c48256a28ff6614 100644
--- a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_fr.properties
@@ -1,4 +1,4 @@
-#Sun Nov 29 19:33:12 CET 2015
+#Wed Dec 23 13:59:58 CET 2015
 add.solution=T\u00E9l\u00E9chargez une solution
 add.task=Ajouter un devoir
 assessment.group.tool=Evaluer les groupes
@@ -117,15 +117,24 @@ passed.true=$org.olat.course.assessment\:passed.true
 preview=$org.olat.course.nodes.ta\:form.task.preview
 preview.disabled=$org.olat.course.nodes.ta\:form.task.without.preview
 preview.enabled=$org.olat.course.nodes.ta\:form.task.with.preview
+process.action.explanation=Attention requise
 process.assignment=Affectation
+process.assignment.explanation=L'utilisateur est en train de choisir un devoir.
 process.correction=Corrections
+process.correction.explanation=Le coach corrige un document d\u00E9j\u00E0 r\u00E9vis\u00E9
 process.graded=Evaluation
 process.grading=Evaluation
+process.grading.explanation=Le coach \u00E9value un devoir.
 process.no=Affectation
+process.no.explanation=L'utilisateur est en train de choisir un devoir.
 process.review=Remaniement
+process.review.explanation=Le coach corrige un document
 process.revision=Remaniements
+process.revision.explanation=L'utilisateur r\u00E9vise un document.
 process.solution=Solution
+process.solution.explanation=L'utilisateur a acc\u00E8s \u00E0 la solution. Le coach peut d\u00E9sormais \u00E9valuer les devoirs si activ\u00E9.
 process.submission=D\u00E9p\u00F4t
+process.submission.explanation=L'utilisateur travaille au devoir.
 relative.dates=Dates relatives
 relative.to.assignment=Affectation des devoirs
 relative.to.assignment.message={0} jours apr\u00E8s l'affectation du devoir.
diff --git a/src/main/java/org/olat/course/nodes/members/MembersMailController.java b/src/main/java/org/olat/course/nodes/members/MembersMailController.java
index e705d63efa7c851ce6d66c8a6e06fc6e465d72a9..79c4ec17de98a932bf22290d3c2d7d38532c7ae5 100644
--- a/src/main/java/org/olat/course/nodes/members/MembersMailController.java
+++ b/src/main/java/org/olat/course/nodes/members/MembersMailController.java
@@ -111,8 +111,7 @@ public class MembersMailController extends FormBasicController {
 	
 	public MembersMailController(UserRequest ureq, WindowControl wControl, CourseEnvironment courseEnv,
 			List<Member> ownerList, List<Member> coachList, List<Member> participantList) {
-		super(ureq, wControl);
-		setTranslator(Util.createPackageTranslator(MailHelper.class, getLocale(), getTranslator()));
+		super(ureq, wControl, Util.createPackageTranslator(MailHelper.class, ureq.getLocale()));
 		
 		this.courseEnv = courseEnv;
 		this.ownerList = ownerList;
@@ -128,7 +127,7 @@ public class MembersMailController extends FormBasicController {
 		if(StringHelper.containsNonWhitespace(fullName)) {
 			fullName = "[" + fullName + "]";
 		}
-		TextElement fromEl = uifactory.addTextElement("from", "mail.from", 255, fullName, formLayout);
+		TextElement fromEl = uifactory.addTextElement("from", "email.from", 255, fullName, formLayout);
 		fromEl.setEnabled(false);
 		
 		uifactory.addSpacerElement("space-1", formLayout, false);
@@ -179,6 +178,7 @@ public class MembersMailController extends FormBasicController {
 		externalEl.addActionListener(FormEvent.ONCHANGE);
 		
 		externalAddressesEl = uifactory.addTextAreaElement("contact.external.list", null, 4096, 3, 60, false, "", formLayout);
+		externalAddressesEl.setExampleKey("contact.external.list.example", null);
 		externalAddressesEl.setVisible(false);
 
 		uifactory.addSpacerElement("space-2", formLayout, false);
diff --git a/src/main/java/org/olat/course/nodes/members/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/nodes/members/_i18n/LocalStrings_de.properties
index 7a980d60111b5d876a56434ebc2a70fbd3007697..5c902e7fe1d87a9741a995d98617cf2081276ac3 100644
--- a/src/main/java/org/olat/course/nodes/members/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/nodes/members/_i18n/LocalStrings_de.properties
@@ -12,6 +12,8 @@ contact.external=Externe Email Adresse
 owners=Kursbesitzer
 coaches=Kursbetreuer
 participants=Kursteilnehmer
+contact.external.list.example=xyz@olat.com, abc@frentix.com<br/>user@yourcompany.ch
+email.from=Von
 email.send=Schicken
 email.function=Emailfunktion
 email.function.all=Emailfunktion f\u00FCr alle Benutzer freischalten
diff --git a/src/main/java/org/olat/course/nodes/members/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/nodes/members/_i18n/LocalStrings_en.properties
index 9571ad0ca210c7ae324583fbeba485318ffb19eb..a1669cb1d0cbdc23b3a6e05ac8102e69a8614cef 100644
--- a/src/main/java/org/olat/course/nodes/members/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/nodes/members/_i18n/LocalStrings_en.properties
@@ -9,9 +9,12 @@ contact.all.coaches=All course coaches
 contact.all.participants=All course participants
 contact.individual=Individual course members 
 contact.external=External mail addresses
+contact.external.list.example=xyz@olat.com, abc@frentix.com<br/>user@yourcompany.ch
 owners=Course owners
 coaches=Course coaches
 participants=Course participants
+email.from=From
+email.send=Send
 email.function=E-mail function
 email.function.all=Unlock e-mail function for all users
 email.function.coachAndAdmin=Unlock e-mail function only for coach and administrators
diff --git a/src/main/java/org/olat/course/nodes/members/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/course/nodes/members/_i18n/LocalStrings_fr.properties
index f93b33ecdb2c9b29119de7658a734a838bc87603..b6a43906f63ad9f77fa0e2e268b961df0ec14709 100644
--- a/src/main/java/org/olat/course/nodes/members/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/course/nodes/members/_i18n/LocalStrings_fr.properties
@@ -1,8 +1,25 @@
-#Sun Dec 20 18:02:12 CET 2015
+#Wed Dec 23 14:03:27 CET 2015
+add.member=Ajouter
+already.all.selected=Vous avez d\u00E9j\u00E0 s\u00E9lectionner tous les utilisateurs.
+coaches=Coach du cours
 coaches.to=Coach du cours "{0}"
+contact.all.coaches=Tous les coaches du cours
+contact.all.owners=Tous les administrateurs du cours
+contact.all.participants=Tous les participants du cours
+contact.attachment=$org.olat.modules.co\:contact.attachment
+contact.attachment.maxsize=$org.olat.modules.co\:contact.attachment.maxsize
+contact.external=Adresses courriels ext\u00E9rieurs
+contact.external.list.example=xyz@olat.com, abc@frentix.com<br/>user@yourcompany.ch
+contact.individual=S\u00E9lection de membres du cours
+email.from=De
 email.function=Fonction courriel
 email.function.all=D\u00E9bloquez la fonction courriel pour tous les utilisateurs
 email.function.coachAndAdmin=D\u00E9bloquez la fonction courriel pour les coachs et les administrateurs.
+email.send=Envoyer
+error.msg.send.553=$org.olat.modules.co\:error.msg.send.553
+error.msg.send.invalid.rcps=$org.olat.modules.co\:error.msg.send.invalid.rcps
+error.msg.send.nok=$org.olat.modules.co\:error.msg.send.nok
+error.msg.send.partially.nok=$org.olat.modules.co\:error.msg.send.partially.nok
 members.coaches=Coaches
 members.email.title=Envoyer un e-mail
 members.info=S\u00E9lectionnez le groupe d'utilisateur qui doit \u00EAtre affich\u00E9 dans la liste des membres.
@@ -10,8 +27,12 @@ members.noParticipants.message=Aucun groupe avec des participants n'a \u00E9t\u0
 members.owners=Administrateur du cours
 members.participants=Participants
 members.to=Participant "{0}" du cours "{1}"
+msg.send.ok=$org.olat.modules.co\:msg.send.ok
+owners=Propri\u00E9taires du cours
 owners.to=Administrateurs du cours "{0}"
 pane.tab.accessibility=Acc\u00E8s
 pane.tab.membersconfig=Configuration
+participants=Participants du cours
 participants.to=Participants du cours "{0}"
+select.members=Choisir des utilisateurs
 title_info=Liste des participants
diff --git a/src/test/java/org/olat/restapi/CourseCalendarTest.java b/src/test/java/org/olat/restapi/CourseCalendarTest.java
index 2d940912cd71b9e953652532e6b59c8f8ae74863..8ddf4f4563d72944303c677d5314244ee5aebbfa 100644
--- a/src/test/java/org/olat/restapi/CourseCalendarTest.java
+++ b/src/test/java/org/olat/restapi/CourseCalendarTest.java
@@ -58,7 +58,6 @@ import org.olat.basesecurity.BaseSecurityManager;
 import org.olat.commons.calendar.CalendarManager;
 import org.olat.commons.calendar.model.KalendarEvent;
 import org.olat.commons.calendar.restapi.EventVO;
-import org.olat.commons.calendar.restapi.EventVOes;
 import org.olat.commons.calendar.ui.components.KalendarRenderWrapper;
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.persistence.DB;
@@ -211,13 +210,11 @@ public class CourseCalendarTest extends OlatJerseyTestCase {
 		EventVO[] newEvents = new EventVO[2];
 		newEvents[0] = event1;
 		newEvents[1] = event2;
-		EventVOes newEventVOes = new EventVOes();
-		newEventVOes.setEvents(newEvents);
 
 		URI eventUri = UriBuilder.fromUri(getContextURI()).path("repo").path("courses")
 				.path(course.getResourceableId().toString()).path("calendar").path("events").build();
 		HttpPut putEventMethod = conn.createPut(eventUri, MediaType.APPLICATION_JSON, true);
-		conn.addJsonEntity(putEventMethod, newEventVOes);
+		conn.addJsonEntity(putEventMethod, newEvents);
 		HttpResponse putEventResponse = conn.execute(putEventMethod);
 		assertEquals(200, putEventResponse.getStatusLine().getStatusCode());
 		EntityUtils.consume(putEventResponse.getEntity());