diff --git a/.hgtags b/.hgtags
index daf2111f63dfc3a42991c019683485df8039bea7..8b33bca19480abb008db47d6d916bac9e6fc9303 100644
--- a/.hgtags
+++ b/.hgtags
@@ -24,3 +24,4 @@ b7a66eba6956d8af9e6159d21058a3cfb968cf75 OpenOLAT 8.1.2
 2dae3d39fe5a7264e7b2d10f24ed631376102873 OpenOLAT 8.1.3
 0dab711bddc8be4198528b3c20d49ca57f3096ce OpenOLAT 8.1.3
 96f9bf85cadb84b0ecdd805bed99f52038f7cd14 OpenOLAT 8.1.4
+17bb7d9400ffb39d74a8f20b287ae0b2c26ba422 OpenOLAT 8.2.0beta
diff --git a/src/main/java/org/olat/_i18n/LocalStrings_de_FX_business.properties b/src/main/java/org/olat/_i18n/LocalStrings_de_FX_business.properties
deleted file mode 100644
index 3c9dfe3b6b096a323bb0997108263d2e0dfc598f..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/_i18n/LocalStrings_de_FX_business.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-#Fri Aug 13 15:19:14 CEST 2010
-
diff --git a/src/main/java/org/olat/_i18n/LocalStrings_de_FX_school.properties b/src/main/java/org/olat/_i18n/LocalStrings_de_FX_school.properties
deleted file mode 100644
index 17677501520c868fb98561127e476853accc360d..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/_i18n/LocalStrings_de_FX_school.properties
+++ /dev/null
@@ -1 +0,0 @@
-#Fri Aug 13 15:36:00 CEST 2010
diff --git a/src/main/java/org/olat/_i18n/LocalStrings_en_FX_business.properties b/src/main/java/org/olat/_i18n/LocalStrings_en_FX_business.properties
deleted file mode 100644
index 142a00281d53c8065d41b44c9d959cc2a6f902ea..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/_i18n/LocalStrings_en_FX_business.properties
+++ /dev/null
@@ -1 +0,0 @@
-#Fri Aug 13 15:48:22 CEST 2010
diff --git a/src/main/java/org/olat/_i18n/LocalStrings_en_FX_school.properties b/src/main/java/org/olat/_i18n/LocalStrings_en_FX_school.properties
deleted file mode 100644
index b9483f2e30baf899d9f3b930d6245248fa2c2b2e..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/_i18n/LocalStrings_en_FX_school.properties
+++ /dev/null
@@ -1 +0,0 @@
-#Fri Aug 13 15:52:22 CEST 2010
diff --git a/src/main/java/org/olat/admin/user/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/admin/user/_i18n/LocalStrings_en.properties
index b757a192989123b18851940751937dbd23fcd880..08a5c8984630a44af5b7aefe576826c3b21430b1 100644
--- a/src/main/java/org/olat/admin/user/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/admin/user/_i18n/LocalStrings_en.properties
@@ -1,4 +1,4 @@
-#Mon Apr 02 14:41:09 CEST 2012
+#Wed Oct 24 16:41:40 CEST 2012
 action.bulkedit=Edit these users' attributes
 action.choose=Choose
 action.choose.finish=Choose and finish
@@ -34,6 +34,7 @@ error.search.form.no.valid.datechooser=Please indicate a valid date.
 error.search.form.no.wildcard.dublicates=Search terms including `**` are not allowed.
 error.search.form.notempty=Please fill in at least one field.
 error.search.form.to.short=Search term too short.
+error.search.maxResults=To many results found. Only the first {0} are displayed.
 form.password.new1=New password
 form.password.new2=Confirm password
 form.please.enter.new=Please enter a new password for this user
diff --git a/src/main/java/org/olat/admin/user/delete/_i18n/LocalStrings_de_FX_business.properties b/src/main/java/org/olat/admin/user/delete/_i18n/LocalStrings_de_FX_business.properties
deleted file mode 100644
index e68ad78c2c105db97276eea9edf5d705ac2c86c1..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/admin/user/delete/_i18n/LocalStrings_de_FX_business.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-#Thu Sep 02 10:10:35 CEST 2010
-delete.list.example=Einen Benutzername (Login) pro Zeile eingeben\:<br>hansmuster2<br>lenalogik@muster.de<br />usw.<br />
diff --git a/src/main/java/org/olat/admin/user/delete/_i18n/LocalStrings_de_FX_school.properties b/src/main/java/org/olat/admin/user/delete/_i18n/LocalStrings_de_FX_school.properties
deleted file mode 100644
index dbf8848bfc9de771b30f573d7966ac3eb7ddd3d8..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/admin/user/delete/_i18n/LocalStrings_de_FX_school.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-#Thu Sep 02 14:49:16 CEST 2010
-delete.list.example=Einen Benutzername (Login) pro Zeile eingeben\:<br>login1<br>login2@tu-dresden.de<br />usw.<br />
diff --git a/src/main/java/org/olat/admin/user/delete/_i18n/LocalStrings_en_FX_business.properties b/src/main/java/org/olat/admin/user/delete/_i18n/LocalStrings_en_FX_business.properties
deleted file mode 100644
index 396260ae4345e7cc944d1b4c2dde6551c85870e1..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/admin/user/delete/_i18n/LocalStrings_en_FX_business.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-#Thu Sep 02 12:13:12 CEST 2010
-delete.list.example=Type one user name (login) per line\:<br>johndoe1<br>alansmithee@mycompany.com<br />etc.<br />
diff --git a/src/main/java/org/olat/admin/user/delete/_i18n/LocalStrings_en_FX_school.properties b/src/main/java/org/olat/admin/user/delete/_i18n/LocalStrings_en_FX_school.properties
deleted file mode 100644
index f4a4330d5b6b3f3d1a7ef88479e99f023a2cb2d6..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/admin/user/delete/_i18n/LocalStrings_en_FX_school.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-#Thu Sep 02 15:27:17 CEST 2010
-delete.list.example=Type one user name (login) per line\:<br>johndoe1<br>alansmithee@myuniversity.edu<br />etc.<br />
diff --git a/src/main/java/org/olat/admin/user/groups/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/admin/user/groups/_i18n/LocalStrings_en.properties
index 27e901edf82489e6798a75b32f4187ac1fe94a27..d039b5f6bf86183ff5f15912b9d27108f5544a4b 100644
--- a/src/main/java/org/olat/admin/user/groups/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/admin/user/groups/_i18n/LocalStrings_en.properties
@@ -1,34 +1,35 @@
-#Tue Jul 14 11:57:09 CEST 2009
+#Wed Oct 24 16:41:50 CEST 2012
+add.groups=Add to group
+add.groups.title=Groups of which this user is a member
 attende=Participants
 attende.and.owner=Owners and participants
+description=Description
+error.choose.one=Please choose at least one group.
+group.add.as=Add as {0}
+group.add.result=Added user to group(s). As owner in "{0}" and as participant in "{1}".
+group.add.result.none=Did not add user to any group. Either none was selected or the user was already member of them.
+group.delete.confirmation=Do you really want to delete the group?
 group.removed=This group does no longer exist\!
+group.result.course=Course\: {0}, {1}
+group.result.desc=Description\: {0}
+group.result.group=Group\: {0}
+group.search.description=Choose the group(s) to which the user should be added as coach or participant.
+no.results=Couldn't find any groups for this search term(s).
 owner=Owners
+result=Found Groups
+search.field=Search a group\:
+send.email=Send invitational email
+send.email.notif=Do you want to send a notification to the user? 
+table.group.add.participant=Add as participant
+table.group.add.tutor=Add as coach
 table.group.name=Group name
 table.group.type=Type of group
+table.header.resources=$org.olat.group.ui.main\:table.header.resources
 table.user.joindate=Time of entry
 table.user.role=User role
-add.groups.title=Groups of which this user is a member
-waiting=On waiting list in position {0}
 table.user.unsubscribe=Unsubscribe
-table.header.resources=$org.olat.group.ui.main\:table.header.resources
-table.group.add.tutor=Add as coach
-table.group.add.participant=Add as participant
-add.groups=Add to group
+unsubscribe.group.del=This user is the alone owner of this group. This group will therefore be deleted forever by this step.
 unsubscribe.successful=You successfully unsubscribed the user from group "{0}".
-unsubscribe.title=Unsubscribe user from group
 unsubscribe.text=Do you really want to unsubscribe the user "{0}" from the group "{1}" ?
-unsubscribe.group.del=This user is the alone owner of this group. This group will therefore be deleted forever by this step.
-group.add.as=Add as {0}
-group.search.description=Choose the group(s) to which the user should be added as coach or participant.
-group.add.result=Added user to group(s). As owner in "{0}" and as participant in "{1}".
-group.add.result.none=Did not add user to any group. Either none was selected or the user was already member of them.
-group.result.desc=Description: {0}
-group.result.course=Course: {0}, {1}
-group.result.group=Group: {0}
-search.field=Search a group:
-result=Found Groups
-send.email=Send invitational email
-send.email.notif=Do you want to send a notification to the user? 
-description=Description
-error.choose.one=Please choose at least one group.
-no.results=Couldn't find any groups for this search term(s).
\ No newline at end of file
+unsubscribe.title=Unsubscribe user from group
+waiting=On waiting list in position {0}
diff --git a/src/main/java/org/olat/core/_i18n/LocalStrings_de_FX_business.properties b/src/main/java/org/olat/core/_i18n/LocalStrings_de_FX_business.properties
deleted file mode 100644
index 3b50bbb89c3b0f0faa3915623103679e5a85575d..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/core/_i18n/LocalStrings_de_FX_business.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-#Fri Aug 13 15:19:14 CEST 2010
-this.language.in.english=German
-this.language.translated=Deutsch
-this.language.translator.names=frentix
diff --git a/src/main/java/org/olat/core/_i18n/LocalStrings_de_FX_school.properties b/src/main/java/org/olat/core/_i18n/LocalStrings_de_FX_school.properties
deleted file mode 100644
index f4e5f45610c2d67e242862fc0339365773692c63..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/core/_i18n/LocalStrings_de_FX_school.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-#Fri Aug 13 15:36:00 CEST 2010
-this.language.in.english=German
-this.language.translated=Deutsch
-this.language.translator.names=frentix
diff --git a/src/main/java/org/olat/core/_i18n/LocalStrings_en_FX_business.properties b/src/main/java/org/olat/core/_i18n/LocalStrings_en_FX_business.properties
deleted file mode 100644
index 8ed167dfd41b522ec487465845d05d8d43f8b4b1..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/core/_i18n/LocalStrings_en_FX_business.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-#Fri Aug 13 15:48:22 CEST 2010
-this.language.in.english=English
-this.language.translated=English
-this.language.translator.names=frentix
diff --git a/src/main/java/org/olat/core/_i18n/LocalStrings_en_FX_school.properties b/src/main/java/org/olat/core/_i18n/LocalStrings_en_FX_school.properties
deleted file mode 100644
index 39f84e5e48a7abc4bb78c0a6da20287c5e05ce0b..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/core/_i18n/LocalStrings_en_FX_school.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-#Fri Aug 13 15:52:22 CEST 2010
-this.language.in.english=English
-this.language.translated=English
-this.language.translator.names=frentix
diff --git a/src/main/java/org/olat/core/util/i18n/ui/TranslationToolStartCrumbController.java b/src/main/java/org/olat/core/util/i18n/ui/TranslationToolStartCrumbController.java
index bbed01b953cbb6bb08a225bba4f4264b9553299a..52910aa6a400f68ca318ad1a403168b2a61abe2b 100644
--- a/src/main/java/org/olat/core/util/i18n/ui/TranslationToolStartCrumbController.java
+++ b/src/main/java/org/olat/core/util/i18n/ui/TranslationToolStartCrumbController.java
@@ -179,7 +179,7 @@ class TranslationToolStartCrumbController extends CrumbFormBasicController {
 		ArrayHelper.sort(referencelangKeys, referenceLangValues, false, true, false);
 		// Build css classes for reference languages
 		String[] referenceLangCssClasses = i18nMgr.createLanguageFlagsCssClasses(referencelangKeys, "b_with_small_icon_left");
-		// fxdiff: FXOLAT-213 Use first reference locale as default
+		// Use first reference locale as default
 		referenceLocale = i18nMgr.getLocaleOrNull(referenceLangs.get(0));
 		// Override with user preset
 		Preferences guiPrefs = usess.getGuiPreferences();
@@ -201,15 +201,8 @@ class TranslationToolStartCrumbController extends CrumbFormBasicController {
 			// Use all enabled languages in customizing mode
 			translatableKeys = I18nModule.getOverlayLanguageKeys();
 		} else {
-			// Since 6.2 the user can only translate the language he has set in his preferences
-			translatableKeys = new HashSet<String>();
-			if (I18nModule.getTranslatableLanguageKeys().contains(i18nMgr.getLocaleKey(getLocale()))){
-				translatableKeys.add(i18nMgr.getLocaleKey(getLocale()));
-			} else {
-				// ups, user language is not translatable, give user choice to
-				// select one of the translatable languages
-				translatableKeys = I18nModule.getTranslatableLanguageKeys();
-			}
+			// Allow translators to also translate other languages if they really desire. Show all languages.
+			translatableKeys = I18nModule.getTranslatableLanguageKeys();
 		}
 		String[] targetlangKeys = ArrayHelper.toArray(translatableKeys);
 		String[] targetLangValues = new String[targetlangKeys.length];
diff --git a/src/main/java/org/olat/course/area/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/area/_i18n/LocalStrings_en.properties
index 010d227c2dad022e40f63fc5212662be32bc30a0..4861909729abf9ddb28e8e0a00e8ddc7b1b6dd1e 100644
--- a/src/main/java/org/olat/course/area/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/area/_i18n/LocalStrings_en.properties
@@ -1,8 +1,12 @@
+#Wed Oct 24 16:32:07 CEST 2012
 action=Action
-course.areas.title=Learning areas within course
 course.areas.description=Create a new learning area with the button below. You can then use the learning area in the course editor to limit course element across and assign groups to learning areas.
-table.header.name=Name
-table.header.description=Description
+course.areas.title=Learning areas within course
+create.area=Create learning area
 delete=Delete
+delete.area.description=Do you really want to delete the learning area "{0}"?
+delete.area.title=Delete learning area
 edit=Edit
-create.area=Create learning area
\ No newline at end of file
+resources.noresources=No learning areas have been created in this course so far.
+table.header.description=Description
+table.header.name=Name
diff --git a/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_de_FX_business.properties b/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_de_FX_business.properties
deleted file mode 100644
index 91c9aac041eba2a0ca6c0dc5a6b2103eefd97335..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_de_FX_business.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-#Thu Sep 02 09:51:23 CEST 2010
-institutionalname=Firma\:
-institutionaluseridentifier=Personalnummer\:
diff --git a/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_de_FX_school.properties b/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_de_FX_school.properties
deleted file mode 100644
index 32ca39955934551ba6e846786f663470ab07c35d..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_de_FX_school.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Sep 02 14:34:25 CEST 2010
-institutionalname=Lehranstalt\:
-institutionaluseridentifier=Identifikation\:
-lastname=Name\:
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 54f7f7e747679f13dd40b761b259c3178ec250aa..7a58a90ea0f736b1b7973ccb23a3a3f2ae6d7639 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 @@
-#Mon Apr 02 14:40:27 CEST 2012
+#Wed Oct 24 16:40:34 CEST 2012
 action.choose=Select 
 artefact.title=Evidence of achievement for course {0}
 assessmentLock=This assessment is currently modified by user {0} ({1}) and is therefore locked. Please try again later.
@@ -48,7 +48,17 @@ efficiencyStatementsPortlet.description=Fast access to the evidences of achievem
 efficiencyStatementsPortlet.nostatements=There is no evidence of achievement available for you
 efficiencyStatementsPortlet.showAll=Show all
 efficiencyStatementsPortlet.title=My evidence of achievement
+efficiencystatement.config=Change configuration
+efficiencystatement.config.off=disabled
+efficiencystatement.config.on=enabled
+efficiencystatement.intro.1=Courses with course elements that have assessment information (score/passed) will generate an efficiency statement for each user. This efficiency statement is automatically updated whenever the assessment data changes, either manually by a coach or by a test execution. The efficiency statement can be accessed by the user in the course toolbox or in the users home area.
+efficiencystatement.intro.2=The efficiency statement feature can be enabled/disable in the course configuration as desired. At this time, the generation of the efficiency statement is <strong>{0}</strong>.
+efficiencystatement.intro.3=When you change the assessment rules or add assessable course elements in a course while the course is already being used by learnings the efficiency statements should be recalculated.
+efficiencystatement.intro.4=Select the button below to recalculate the efficiency statements for this course now. This action can take a moment.
 efficiencystatement.nodata=There are no assessment results to be displayed
+efficiencystatement.recalculate=Recalculate efficiency statements
+efficiencystatement.recalculate.finished=The efficiency statements have been recalculated.
+efficiencystatement.recalculate.warning=With this selection the efficiency statements for this course will be recalculated. This can take a while. Do you want to proceed now?
 efficiencystatement.title=Evidence of achievement
 email=E-mail\:
 finished=Close
@@ -102,6 +112,8 @@ lastname=Last name\:
 log.title=Modification log
 menu.bulkfocus=Bulk assessment
 menu.bulkfocus.alt=Bulk assessment of course elements regarding assessment and tasks.
+menu.efficiency.statment=Efficiency statements
+menu.efficiency.statment.alt=$\:menu.efficiency.statment
 menu.groupfocus=As per group
 menu.groupfocus.alt=Select a group to obtain a survey of the participants' assessments
 menu.index=Assessment
diff --git a/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_en_FX_business.properties b/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_en_FX_business.properties
deleted file mode 100644
index e99bdf7129d5a4b2e80df0d1c5576a034c655d61..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_en_FX_business.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-#Thu Sep 02 11:42:52 CEST 2010
-institutionalname=Company\:
-institutionaluseridentifier=Employee Account Number\:
diff --git a/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_en_FX_school.properties b/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_en_FX_school.properties
deleted file mode 100644
index d28ec570e2aec1f9a138c4d795d7916c4cf51307..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_en_FX_school.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-#Thu Sep 02 15:01:43 CEST 2010
-institutionalname=Educational Institution\:
diff --git a/src/main/java/org/olat/course/condition/_i18n/LocalStrings_de_FX_business.properties b/src/main/java/org/olat/course/condition/_i18n/LocalStrings_de_FX_business.properties
deleted file mode 100644
index 3daa7bc98ded3e3822f8340477664fdfa9ce38f1..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/course/condition/_i18n/LocalStrings_de_FX_business.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-#Thu Sep 02 15:58:27 CEST 2010
-error.argtype.institutionalname=Die "{0}"-Funktion muss mit einem Firmennamen aufgerufen werden.
diff --git a/src/main/java/org/olat/course/condition/_i18n/LocalStrings_en_FX_business.properties b/src/main/java/org/olat/course/condition/_i18n/LocalStrings_en_FX_business.properties
deleted file mode 100644
index 9024a57d22dbc336483b18c999c2b20308d25d33..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/course/condition/_i18n/LocalStrings_en_FX_business.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-#Thu Sep 02 11:44:03 CEST 2010
-error.argtype.institutionalname=The "{0}" function must contain a company name
diff --git a/src/main/java/org/olat/course/db/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/db/_i18n/LocalStrings_en.properties
index 2b13261b1a80c42024a6066c20c08f0d3e80295f..cbb7a0a0f07f8ffe5c49064687014bb25e5bfc8b 100644
--- a/src/main/java/org/olat/course/db/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/db/_i18n/LocalStrings_en.properties
@@ -1,4 +1,4 @@
-#Thu May 26 09:44:01 CEST 2011
+#Wed Oct 24 16:42:09 CEST 2012
 command.new_db=Create a new database
 customDb.category=Name
 customDb.create=Create
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 31887c5984d3251cfd160590e10cba2261f58d90..c6682f321e1c4f564c66b3cbcfa2d646d77e6388 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
@@ -55,7 +55,7 @@ chelp.accDiMo=By means of this field you can determine the moderation of your fi
 chelp.accDiR=By means of this field you can determine read permissions regarding your file dialogs and your stored files, i.e., the conditions concerning the availability of postings, files, and downloads.
 chelp.accDiRw=By means of this field you can determine write permissions concerning your file dialogs as well as your stored files, i.e., the conditions regarding postings or the way how files can be uploaded or deleted.
 chelp.accF=<i>&laquo;$\:chelp.acc&raquo;</i>
-chelp.accFoMo=By means of this field you can determine the access as presenter to the forum, e.g. the conditions of moderating the forum.
+chelp.accFoMo=By means of this field you can determine the access as moderator to the forum, e.g. the conditions of moderating the forum.
 chelp.accFoR=By means of this field you can determine the access as reader to the forum, e.g. the conditions of reading contributions to a discussion. If you do not make alterations the forum will be open for participants at any time.
 chelp.accFoRw=By means of this field you can determine the access as writer to the forum, e.g. the conditions of writing contributions to a discussion. If you do not make alterations all participants will be able to write contributions at any time.
 chelp.accInfoAdmin1=Within this field you can determine any management rights regarding messages. You can e.g. determine on which condition messages should be edited or deleted.
@@ -173,9 +173,9 @@ chelp.ex8=Figure 2 (bottom)\: this does only apply for the groups "Red" and "Gre
 chelp.exp1=You have the possibility to configure the visibility and access of course elements as required. Use the following syntax.
 chelp.exp2=Examples for using this syntax
 chelp.expertMode=$org.olat.course.condition\:command.activate.expertMode
-chelp.feed.moderator=The access as presenter allows you to read, comment, edit, delete or create entries. Additionally presenters can modify the Feed's title and description.
+chelp.feed.moderator=The access as moderator allows you to read, comment, edit, delete or create entries. Additionally moderators can modify the Feed's title and description.
 chelp.feed.read=The access as reader allows you to read and comment all published entries. However, you cannot create your own entries.
-chelp.feed.readwrite=The access as presenter allows you to read and comment existing entries as well as create new ones. Entries once created cannot be modified or deleted later on.
+chelp.feed.readwrite=The access as moderator allows you to read and comment existing entries as well as create new ones. Entries once created cannot be modified or deleted later on.
 chelp.fig1=Fig. 1\:
 chelp.fig1D=Figure 1 below
 chelp.fig2=Fig. 2\:
@@ -284,10 +284,10 @@ chelp.text2=Two configurations of a course element concerning specific course gr
 chelp.titleAcc=Access to the content of course elements
 chelp.titleAccBcR=Read content of folders
 chelp.titleAccBcRw=Write in folder
-chelp.titleAccDiMo=Access to forum as presenter/uploading or deleting files
+chelp.titleAccDiMo=Access to forum as moderator/uploading or deleting files
 chelp.titleAccDiR=Access to forum as reader/downloading or reading files
 chelp.titleAccDiRw=Access to forum as writer/uploading or deleting files
-chelp.titleAccFoMo=Access to forum as presenter
+chelp.titleAccFoMo=Access to forum as moderator
 chelp.titleAccFoR=Access to forum as reader
 chelp.titleAccFoRw=Access to forum as writer
 chelp.titleAccTa=Access to a sub-element
diff --git a/src/main/java/org/olat/course/nodes/cp/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/nodes/cp/_i18n/LocalStrings_en.properties
index 2a8ff4ede34eaa44a08986cf63b43ddbfde7a011..25cba1d22ea6489840b1185b41ad3c4a3be10338 100644
--- a/src/main/java/org/olat/course/nodes/cp/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/nodes/cp/_i18n/LocalStrings_en.properties
@@ -1,4 +1,4 @@
-#Mon May 16 17:18:39 CEST 2011
+#Wed Oct 24 16:40:42 CEST 2012
 chelp.ced-cp-disp.title=$\:chelp.ced-disp.title
 chelp.ced-cp.title=CP learning content\: selection
 chelp.ced-disp.title=CP learning content\: display
@@ -52,4 +52,5 @@ help.hover.cp-filename=Help to display a CP learning content
 no.cp.chosen=<i>No CP learning content selected</i>
 pane.tab.accessibility=Access
 pane.tab.cpconfig=Learning content
+preview.cp=Preview
 title_cp=CP learning content
diff --git a/src/main/java/org/olat/course/nodes/dialog/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/nodes/dialog/_i18n/LocalStrings_en.properties
index 5bf3d7a8e0023f8f89a25e20c0190f2ea0a18c5d..cdcee9b425c37748bf43b2cba464190c71b12fba 100644
--- a/src/main/java/org/olat/course/nodes/dialog/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/nodes/dialog/_i18n/LocalStrings_en.properties
@@ -25,7 +25,7 @@ dialog.start=Start
 dialog.upload.file=Upload file
 folder.info=File dialog
 folder.open=Open folder
-help.hover.acc.mo=Help to configure the access to the file dialog as presenter
+help.hover.acc.mo=Help to configure the access to the file dialog as moderator
 help.hover.acc.r=Help to configure the access to the file dialog as reader
 help.hover.acc.rw=Help to configure the access to the file dialog as writer
 help.hover.dialog=Help to upload a file to a file dialog
diff --git a/src/main/java/org/olat/course/nodes/feed/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/nodes/feed/_i18n/LocalStrings_en.properties
index d6de3111cf2a19af6dbc6dbba1cfbda856f58cbc..edbc1e7aed42e665921398c26aedd35ae1d6322a 100644
--- a/src/main/java/org/olat/course/nodes/feed/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/nodes/feed/_i18n/LocalStrings_en.properties
@@ -6,11 +6,11 @@ chelp.feed.p4=Now you have the possibility to select another content via the but
 chelp.help_choose_feed.title=Blog or podcast
 command.close=Close preview
 command.preview=Display preview
-condition.accessModerator.title=Present
+condition.accessModerator.title=Moderate
 condition.accessPoster.title=Read and write
 condition.accessReader.title=Read only
 heip.hover.choose.feed=Help regarding your feed selection
-help.hover.feed.mo=Help regarding the access configuration as presenter
+help.hover.feed.mo=Help regarding the access configuration as moderator
 help.hover.feed.r=Help regarding the access configuration as reader
 help.hover.feed.rw=Help regarding the access configuration as writer
 pane.tab.access=Access
diff --git a/src/main/java/org/olat/course/nodes/fo/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/nodes/fo/_i18n/LocalStrings_en.properties
index 43c5d8bbf881dd5f51b5ed8278c0f8366ba495c5..ab7a66696f972d2af8902b3a4ce47a5fc12a40c3 100644
--- a/src/main/java/org/olat/course/nodes/fo/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/nodes/fo/_i18n/LocalStrings_en.properties
@@ -16,7 +16,7 @@ help.hover.fo-rw=Help to configure read and write access to this forum
 pane.tab.accessibility=Access
 pane.tab.foconfig=Display
 peekview.allItemsLink=All contributions
-preview.canModerate=Presenting forum contributions enabled
+preview.canModerate=Moderating forum contributions enabled
 preview.canPost=Writing forum contributions enabled
 preview.canRead=Reading forum contributions enabled
 preview.header=Forum rights for simulated user
diff --git a/src/main/java/org/olat/course/nodes/iq/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/nodes/iq/_i18n/LocalStrings_en.properties
index 546eeaf454abdb1f9ccf898523724d5b57ee355d..dcc0db21109084e374c38fd5677b90f50d75715e 100644
--- a/src/main/java/org/olat/course/nodes/iq/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/nodes/iq/_i18n/LocalStrings_en.properties
@@ -1,4 +1,4 @@
-#Fri Jan 21 14:31:58 CET 2011
+#Wed Oct 24 16:44:47 CEST 2012
 Intro.self=Press the start button to begin with your self-test.
 Intro.surv=Press the start button to begin with your questionnaire.
 Intro.test=Press the start button to begin with your test.
@@ -17,16 +17,20 @@ chelp.ced-qti-start-self.title=Self-test\: information text
 chelp.ced-qti-start-surv.title=Questionnaire\: information text
 chelp.ced-qti-start-test.title=Test\: information text
 chelp.confSelf1=In this field you can determine how this $\:chelp.iqSelf should be displayed in your current course.
+chelp.confSelf14=Check this box if you want OpenOLAT to be hidden during a selftest. While the selftest module takes up the whole of the browser window, access to OpenOLAT during the selftest is prohibited.
 chelp.confSelf6=By checking this box your course participants will be able to cancel this self-test without saving their answers.
 chelp.confSelf7=By checking this box your course participants will be able to cancel the self-test. The answers already submitted will be saved; therefore it will be possible to continue later on.
 chelp.confSelf8=By checking this box you will be able to limit the number of attempts and indicate how often a self-test can be taken by one and the same user.
 chelp.confSurf1=By means of this field you can determine how your $\:chelp.iqSurv shall be displayed in the current course.
 chelp.confSurf6=By checking this box course participants will be able to cancel your questionnaire without saving the answers already submitted.
 chelp.confSurf7=By checking this box course participants will be able to cancel your questionnaire. All answers already submitted will be saved; therefore it is possible to continue later on.
+chelp.confSurv14=Check this box if you want OpenOLAT to be hidden during a questionnaire. While the questionnaire module takes up the whole of the browser window, access to OpenOLAT during the questionnaire is prohibited.
 chelp.confTest1=By means of this field you can decide how a $\:chelp.iqTest shall be displayed in the ongoing course.
 chelp.confTest10=Check this box if your course participants should not see their results after taking a test.
 chelp.confTest11=Check this box if your course participants should see their results on the test's home page after taking that test.
 chelp.confTest12=You can determine if test results should be available right after taking that test or afterwards at a certain date of your own choice.
+chelp.confTest13=Check this box if participants should not be able to improve valid test scores with further attempts.
+chelp.confTest14=Check this box if you do not want your participants to be able to access OpenOLAT during a test.
 chelp.confTest2=Then you have the possibility to determine if navigating should be allowed. Check the box to activate the menu navigation.
 chelp.confTest21=You can determine if "$\:qti.form.menurender.allquestions" or "$\:qti.form.menurender.sectionsonly" should be displayed in the menu.
 chelp.confTest3=Check this box if the navigation menu should be displayed at all.
@@ -46,10 +50,6 @@ chelp.confTestSelf11=If you want to show test results right after a test or on t
 chelp.confTestSelf3=By selecting "$\:qti.form.summary.compact" any achieved score as well as the maximum score will be displayed.
 chelp.confTestSelf31=By selecting "$\:qti.form.summary.section" any achieved score as well the maximum score will be displayed for the entire test as well as for every single section.
 chelp.confTestSelf4=By selecting "$\:qti.form.summary.detailed" your correct answers will be displayed as well as the ones the participant has selected.
-chelp.confTest13=Check this box if participants should not be able to improve valid test scores with further attempts.
-chelp.confTest14=Check this box if you do not want your participants to be able to access OpenOLAT during a test.
-chelp.confSelf14=Check this box if you want OpenOLAT to be hidden during a selftest. While the selftest module takes up the whole of the browser window, access to OpenOLAT during the selftest is prohibited.
-chelp.confSurv14=Check this box if you want OpenOLAT to be hidden during a questionnaire. While the questionnaire module takes up the whole of the browser window, access to OpenOLAT during the questionnaire is prohibited.
 chelp.dispNav=<b>$org.olat.course.nodes.iq\:qti.form.menudisplay\:</b>
 chelp.iqSelf=$org.olat.course.nodes\:title_iqself
 chelp.iqSurv=$org.olat.course.nodes\:title_iqsurv
@@ -95,6 +95,7 @@ condition.accessibility.title=Access
 correcttest=Correct test
 coursefolder=Storage folder of course "{0}"
 disclaimer.file.invalid=Some information cannot be displayed because the referenced file {0} is not available anymore. Please contact your course administrator.
+error.assessment.stopped=Your tutor pull your test.
 error.entry.locked=The learning resource selected is currently edited by {0}. Please select another learning resource or try again later.
 error.self.undefined.long=No self-test for "{0}" defined. Choose one in the section "Self-test configuration".
 error.self.undefined.short=No self-test for "{0}" defined.
@@ -102,7 +103,6 @@ error.surv.undefined.long=No questionnaire for "{0}" defined. Choose one in the
 error.surv.undefined.short=No questionnaire for "{0}" defined.
 error.test.undefined.long=No test for "{0}" defined. Choose one in the section "Test configuration".
 error.test.undefined.short=No test for "{0}" defined.
-error.assessment.stopped=Your tutor pull your test.
 fieldset.chosecreateeditfile=Information (HTML page)
 file.name=Selected file
 help.iq.file.name-self.hover=Help to select a self-test
@@ -133,12 +133,14 @@ pane.tab.iqconfig.test=Test configuration
 passed.no=Failed
 passed.yes=Passed
 passed.yourpassed=Status
+preview=Preview
 preview.points.set=Score set for preview.
 qti.form.attempts=Maximum number of attempts
 qti.form.attempts.noLimit=Unlimited
 qti.form.auto.enumerate.choices=Sort answers alphabetically
 qti.form.auto.memofield=Personal notes
 qti.form.auto.memofield.text=Here you can add personal notes to a question, however, after taking your test these notes will NOT be saved.
+qti.form.block.afterSuccess=First successful attempt counts
 qti.form.date.end=until
 qti.form.date.error.endbeforebegin=Your starting date has to be set before the ending date.
 qti.form.date.error.format=Wrong date format
@@ -146,11 +148,10 @@ qti.form.date.start=from
 qti.form.date.start.error.mandatory=At least a starting date must be indicated.
 qti.form.enablecancel=Allow to cancel
 qti.form.enablesuspend=Allow to suspend
+qti.form.fullwindow=Display only module, hide LMS
 qti.form.limit.attempts=Limit the number of attempts
-qti.form.block.afterSuccess=First successful attempt counts
 qti.form.menudisplay=Show menu navigation 
 qti.form.menuenable=Allow menu navigation 
-qti.form.fullwindow=Display only module, hide LMS
 qti.form.menurender=Menu layout
 qti.form.menurender.allquestions=All questions
 qti.form.menurender.sectionsonly=Only section titles
diff --git a/src/main/java/org/olat/group/ui/area/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/group/ui/area/_i18n/LocalStrings_en.properties
index afb850c78ce3571a9b541e3fbb9724a7a83fc6f2..b92711d7c837948d675d67eec5d3917af289d987 100644
--- a/src/main/java/org/olat/group/ui/area/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/group/ui/area/_i18n/LocalStrings_en.properties
@@ -1,4 +1,4 @@
-#Sun Aug 15 18:33:30 CEST 2010
+#Wed Oct 24 16:12:12 CEST 2012
 area.edit.title=Edit learning area <i>{0}</i>
 area.form.description=Description
 area.form.error.illegalName=Commas and quotes are not allowed
@@ -6,6 +6,7 @@ area.form.name=Name of learning area
 area.form.name.example=(Example\: red, green, blue)
 chelp.desc.allChars=You can choose any name including symbols and numerals.
 chelp.desc.area=Learning area
+chelp.desc.area.intro=Learning areas are used to grant access to different areas of the course to certain groups in a simple way. The advantage over the explicit listing of all relevant groups in the visibility and access conditions of course elements is the increase of flexibility and the simplified handling in the course editor. When adding a group to a group rule in the course editor, the course has to be published every time and the group has to be added to every course element that should follow this access rule. In contrast, when using a learning area instead, the changes in the course editor has to be made only once and assigning the groups to those learning areas is a simple task that does not require re-publishing of the course.
 chelp.desc.area1=You have to provide your $\:chelp.desc.area with a name.
 chelp.desc.area2=The area's name appears in the overview of your learning area.
 chelp.desc.area3=You can optionally provide your $\:chelp.desc.area with further details.
diff --git a/src/main/java/org/olat/group/ui/edit/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/group/ui/edit/_i18n/LocalStrings_en.properties
index d74ee46bef62bf20747e8251e7af3214f0ddadd4..6052a44ec9a836ca12b84623c7f8e78464ada809 100644
--- a/src/main/java/org/olat/group/ui/edit/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/group/ui/edit/_i18n/LocalStrings_en.properties
@@ -1,4 +1,4 @@
-#Wed Aug 15 14:13:37 CEST 2012
+#Wed Oct 24 16:13:13 CEST 2012
 areachoice.no.areas.admin=No learning areas found. Please create a learning area within your group management.
 areachoice.no.areas.owner=No learning areas found. New learning areas can only be created by users who have access to the entire group management.
 chelp.area1=Provided that groups have already been created in the course, these will appear in the tab.
@@ -32,6 +32,7 @@ chelp.learn3=This setting is adopted into the configuration tab <i>$org.olat.gro
 chelp.learn4=If no learning areas have been created the following text will appear\:
 chelp.membAll3=Depending on your selection, the list of members is visible to group members or to all users. If visibility is deselected, the entry "Members" will disappear from navigation.
 chelp.membBudLea8=$\:fieldset.legend.grouppartips have no right to administer groups and possess only limited write permission in the forum.
+chelp.membDownload=With the option "$\:chkBox.open.downloadList" you can control wether or not members of the group can download the member list an an excel file.
 chelp.membLearn1=The members of a group consist of <b>coaches</b> and <b>participants</b>.
 chelp.membLearn2=Here you can decide whether all members, no members, or merely course coaches or participants are displayed
 chelp.membLearn5=If you create a new group, you are automatically one of the coaches of this group. Coaches of this group will see the link "$org.olat.group.ui.run\:menutree.administration" in the menu. They can then administer this group, appoint other users as owners and delete the group.
@@ -54,13 +55,13 @@ chelp.tools.learn9=You can put a Wiki at the disposal of your group.
 chelp.tools.quota=The available storage capacity is 10 MB.
 chelp.tools.title=Configuration of collaborative tools
 chkBox.open=Publish group in group area for booking
+chkBox.open.downloadList=Users can download the list of members
 chkBox.open.owners=All users can see coaches
 chkBox.open.partips=All users can see participants
 chkBox.open.waitingList=All users can see the waiting list
 chkBox.show.owners=Members can see coaches
 chkBox.show.partips=Members can see participants
 chkBox.show.waitingList=Members can see waiting list
-chkBox.open.downloadList=Users can download the list of members
 cmd.addresource=Add course
 error.message.locked=This group is being edited by user {0} ({1}) and therefore locked. Please try again later.
 fieldset.legend.areas=Assigned learning areas
diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_en.properties
index c977816542c5cefc38088e56a2d950e5fbe19542..075090dac6498fe61894f82e4afdc9076d73bbf5 100644
--- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_en.properties
@@ -1,4 +1,4 @@
-#Thu Sep 27 13:51:37 CEST 2012
+#Wed Oct 24 16:13:24 CEST 2012
 action=Action
 cif.coursetitle=Course title
 cif.description=Description
@@ -63,6 +63,7 @@ search.generic=Search mask
 search.header=Group
 search.headless=Orphans
 search.headless.check=Groups without members and resources
+search.id.format=Not a valid group ID
 search.intro=Search in group
 search.limit.type=Type
 search.no=no
diff --git a/src/main/java/org/olat/login/_i18n/LocalStrings_de_FX_business.properties b/src/main/java/org/olat/login/_i18n/LocalStrings_de_FX_business.properties
deleted file mode 100644
index 1051becb627da5785efb3e7afff22938d510ef10..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/login/_i18n/LocalStrings_de_FX_business.properties
+++ /dev/null
@@ -1 +0,0 @@
-login.error=<b>Benutzername oder Passwort ung&uuml;ltig.</b><p>M&ouml;gliche Gr&uuml;nde\:<ul><li><b>Sie haben sich vertippt\:</b><br>Versuchen Sie es bitte nochmals\!<li><b>Sie haben den falschen Benutzernamen und Passwort benutzt\:</b><br>Wenn Sie noch nie mit OLAT gearbeitet haben, m\u00FCssen Sie sich entweder mit dem untenstehenden Link Registrieren oder einen Zugang bei {0} beantragen.</ul></p>
diff --git a/src/main/java/org/olat/login/_i18n/LocalStrings_de_FX_school.properties b/src/main/java/org/olat/login/_i18n/LocalStrings_de_FX_school.properties
deleted file mode 100644
index 1051becb627da5785efb3e7afff22938d510ef10..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/login/_i18n/LocalStrings_de_FX_school.properties
+++ /dev/null
@@ -1 +0,0 @@
-login.error=<b>Benutzername oder Passwort ung&uuml;ltig.</b><p>M&ouml;gliche Gr&uuml;nde\:<ul><li><b>Sie haben sich vertippt\:</b><br>Versuchen Sie es bitte nochmals\!<li><b>Sie haben den falschen Benutzernamen und Passwort benutzt\:</b><br>Wenn Sie noch nie mit OLAT gearbeitet haben, m\u00FCssen Sie sich entweder mit dem untenstehenden Link Registrieren oder einen Zugang bei {0} beantragen.</ul></p>
diff --git a/src/main/java/org/olat/login/_i18n/LocalStrings_en_FX_business.properties b/src/main/java/org/olat/login/_i18n/LocalStrings_en_FX_business.properties
deleted file mode 100644
index 6ab60b108082f6bbf98551a43c96a920bacafa11..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/login/_i18n/LocalStrings_en_FX_business.properties
+++ /dev/null
@@ -1 +0,0 @@
-login.error=<b>OLAT user name or password invalid.</b><p>Possible reasons may be\:<ul><li><b>You mistyped\:</b><br>Please try again\!<li><b>Wrong user name or password\:</b><br>If this is the first time you work with OLAT you will either have to register using the link below or contact {0} in order to get access.</ul></p>
diff --git a/src/main/java/org/olat/login/_i18n/LocalStrings_en_FX_school.properties b/src/main/java/org/olat/login/_i18n/LocalStrings_en_FX_school.properties
deleted file mode 100644
index 6ab60b108082f6bbf98551a43c96a920bacafa11..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/login/_i18n/LocalStrings_en_FX_school.properties
+++ /dev/null
@@ -1 +0,0 @@
-login.error=<b>OLAT user name or password invalid.</b><p>Possible reasons may be\:<ul><li><b>You mistyped\:</b><br>Please try again\!<li><b>Wrong user name or password\:</b><br>If this is the first time you work with OLAT you will either have to register using the link below or contact {0} in order to get access.</ul></p>
diff --git a/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_en.properties
index 2664a1458de226a55a7cf7b4e257ca74e41684b4..e653e56eadefb3acf5df38082071410d8dced397 100644
--- a/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_en.properties
@@ -1,4 +1,4 @@
-#Mon Apr 02 14:39:43 CEST 2012
+#Wed Oct 24 16:14:13 CEST 2012
 admin.menu.title=vitero
 admin.menu.title.alt=Configuration of a vitero servers
 available.places={0} seats are available for this meeting
@@ -9,8 +9,8 @@ booking.beginBuffer=Start buffer (minutes)
 booking.end=End
 booking.endBuffer=End buffer (minutes)
 booking.group=File browser
-booking.group.warning=You need to be a participant of this group in order to open the file browser.
 booking.group.open=Open
+booking.group.warning=You need to be a participant of this group in order to open the file browser.
 booking.id=Meeting identifyer
 booking.infos=Detail information
 booking.ok=Meeting successfully saved.
@@ -22,6 +22,9 @@ booking.title=Meetings
 check=Test server connection
 check.nok=The server connection and configuration test was not successful. Please check the server URL, the system user name and password you configured.
 check.ok=The server connection and configuration test was successful. You can now use vitero in OLAT.
+check.users=Validate user
+check.users.nok=Validation fixed {2} problem.
+check.users.ok=Validation did not detect any problem
 chelp.ced-vitero-config.title=$\:help.hover.vitero
 chelp.module.title=vitero\: Configuration
 chelp.module1=In order to be able to use the vitero system you need to have a vitero license and add the access information for the vitero web service API in the administration area.
@@ -54,13 +57,13 @@ error.invalidTimezone=The time zone is invalid.
 error.licenseExpired=The license has expired
 error.moduleCollision=Invalid module selection.
 error.remoteException=$\:error.unkown
+error.sessionCodeNull=Access to the vitero server is not possible at the moment.
 error.unkown=An unexpected server error occurred.
 error.url.invalid=The vitero server URL is not valid
 error.userDoesntExist=The user does not exist.
 error.userNotAssignedToGroup=The user is not a member of this group.
 error.userNotAttachedToCustomer=The user is not attached to the selected customer.
 error.vmsNotAvailable=The vitero server is not available
-error.sessionCodeNull=Access to the vitero server is not possible at the moment.
 group.id=Group identifyer
 group.name=Title
 group.numOfParticipants=Booked seats
diff --git a/src/main/java/org/olat/registration/_i18n/LocalStrings_de_FX_business.properties b/src/main/java/org/olat/registration/_i18n/LocalStrings_de_FX_business.properties
deleted file mode 100644
index 2971359981ba099944cc1443997caf94aaa0cae3..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/registration/_i18n/LocalStrings_de_FX_business.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Sep 02 10:16:57 CEST 2010
-disclaimer.acknowledged=<b>Ich habe die Nutzungsbedingungen gelesen, verstanden und stimme ihnen zu.</b>
-disclaimer.additionalcheckbox=<b>Ich bin mit der Datenspeicherung einverstanden.</b>
-disclaimer.paragraph2=Der Betreiber beh&auml;lt sich das Recht vor, bei Missbrauch des OLAT-Servers oder Verst&ouml;ssen gegen diese Nutzungsregelung, den Zugang zu OLAT zu sperren und alle Daten des betreffenden Benutzers oder der betreffenden Benutzerin zu l&ouml;schen. Ferner beh&auml;lt er sich das Recht vor, strafrechtliche oder zivilrechtliche Untersuchungen einzuleiten.
diff --git a/src/main/java/org/olat/registration/_i18n/LocalStrings_de_FX_school.properties b/src/main/java/org/olat/registration/_i18n/LocalStrings_de_FX_school.properties
deleted file mode 100644
index 2910a0674b1fdfbf015c4c6ad3a6b33ca064a861..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/registration/_i18n/LocalStrings_de_FX_school.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Sep 02 14:47:04 CEST 2010
-disclaimer.acknowledged=<b>Ich habe die Nutzungsbedingungen gelesen, verstanden und stimme ihnen zu.</b>
-disclaimer.additionalcheckbox=<b>Ich bin mit der Datenspeicherung einverstanden.</b>
-disclaimer.paragraph2=Der Betreiber beh&auml;lt sich das Recht vor, bei Missbrauch des OLAT-Servers oder Verst&ouml;ssen gegen diese Nutzungsregelung, den Zugang zu OLAT zu sperren und alle Daten des betreffenden Benutzers oder der betreffenden Benutzerin zu l&ouml;schen. Ferner beh&auml;lt er sich das Recht vor, strafrechtliche oder \tzivilrechtliche Untersuchungen einzuleiten.
diff --git a/src/main/java/org/olat/registration/_i18n/LocalStrings_en_FX_business.properties b/src/main/java/org/olat/registration/_i18n/LocalStrings_en_FX_business.properties
deleted file mode 100644
index 28aa95db94c341023346684507655d44b8f7e4aa..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/registration/_i18n/LocalStrings_en_FX_business.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-#Thu Sep 02 15:51:43 CEST 2010
-disclaimer.paragraph2=The provider reserves the right to block access to the OLAT server for any user contravening the above conditions and to erase the user's data. He furthermore reserves the right to invoke legal proceedings in such a case.
diff --git a/src/main/java/org/olat/registration/_i18n/LocalStrings_en_FX_school.properties b/src/main/java/org/olat/registration/_i18n/LocalStrings_en_FX_school.properties
deleted file mode 100644
index 064519b016f8fd76bf1e9b0aa406f6ae09278c5d..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/registration/_i18n/LocalStrings_en_FX_school.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-#Thu Sep 02 15:19:43 CEST 2010
-disclaimer.additionalcheckbox=<b>I agree on the terms of data storage.</b>
-disclaimer.paragraph2=The provider reserves the right to block access to the OLAT server for any user contravening the above conditions and to erase the user's data. He furthermore reserves the right to invoke legal proceedings in such a case.
diff --git a/src/main/java/org/olat/repository/_i18n/LocalStrings_de_FX_business.properties b/src/main/java/org/olat/repository/_i18n/LocalStrings_de_FX_business.properties
deleted file mode 100644
index 98a48fe30781409a596cc8f33386957e1f4a4619..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/repository/_i18n/LocalStrings_de_FX_business.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-#Thu Sep 02 09:51:37 CEST 2010
-table.subject.institutionalName=Firma
-table.subject.institutionalUserIdentifier=Personalnummer
diff --git a/src/main/java/org/olat/repository/_i18n/LocalStrings_de_FX_school.properties b/src/main/java/org/olat/repository/_i18n/LocalStrings_de_FX_school.properties
deleted file mode 100644
index 2ebfca73b43168e366e5324401e47fb2aa45020b..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/repository/_i18n/LocalStrings_de_FX_school.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-#Thu Sep 02 14:48:21 CEST 2010
-table.subject.institutionalName=Lehranstalt
-table.subject.institutionalUserIdentifier=Identifikation
diff --git a/src/main/java/org/olat/repository/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/repository/_i18n/LocalStrings_en.properties
index ea7e69547559921d8cf21679dd595216f08b8253..5d849e4bf04a1f4f858ae1597bb5750ae6784d5e 100644
--- a/src/main/java/org/olat/repository/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/repository/_i18n/LocalStrings_en.properties
@@ -1,4 +1,4 @@
-#Fri Feb 24 11:58:51 CET 2012
+#Wed Oct 24 16:41:12 CEST 2012
 CourseModule=Course
 EPStructuredMapTemplate=Portfolio template
 Failed=The transmission of this file failed.
@@ -162,7 +162,6 @@ cif.access.users=All registered OpenOLAT users
 cif.access.users_guests=Registered OpenOLAT users and guests
 cif.access.users_guests.warning=This configuration allows anonymous guests to access the learning resource without restrictions. Be aware that booking methods configured below will not apply to those anonymous guest users. If you configure booking methods, those booking methods will only apply to registered users who want to access the resource. Within the course you can prevent single course elements from beeing accessible to guest users.
 cif.author=Author
-cif.owners=Authors
 cif.canCopy=Can be copied
 cif.canDownload=Can be downloaded
 cif.canDownload.na=<i>Export not supported</i>
@@ -185,8 +184,9 @@ cif.lastUsage.na=-
 cif.lastusage=Last access
 cif.launched=Number of launches
 cif.ores_id=OpenOLAT resource ID
-cif.softkey=OpenOLAT soft ID
+cif.owners=Authors
 cif.resourcename=File name
+cif.softkey=OpenOLAT soft ID
 cif.type=Type
 cif.type.na=n/a
 cif.usedbycnt=Current users
@@ -216,7 +216,7 @@ csc.label=How do you want to proceed?
 csc.startwizard=Create a plain course with a Wizard
 csc.title=Next steps
 del.confirm=Do you really want to delete this learning resource? (It is used by {0} users at the moment)
-del.confirm.corrupted=$\:del.confirm<div class='b_error'>This learning resource has been identified as corrupt and therefore can not be archived. Continue to remove the resource from the system without archiving.</div>
+del.confirm.corrupted=$\:del.confirm<div class\='b_error'>This learning resource has been identified as corrupt and therefore can not be archived. Continue to remove the resource from the system without archiving.</div>
 del.header=Delete learning resource {0}
 details.bookmark=Set bookmark
 details.catadd=Add to catalog
@@ -231,6 +231,7 @@ details.delete.error.editor=This learning resource cannot be deleted. This learn
 details.delete.error.references=This learning resource cannot be deleted. There are active references to this resource within OpenOLAT.<br /><br /><font color\="red">{0}</font>
 details.description=Description of learning resource
 details.download=Export content
+details.download.compatible=Export contents (backward compatible)
 details.edit=Modify
 details.edit.error.references=This learning resource cannot be edited. There are active references to this learning resource within OpenOLAT.<br /><br /><font color\="red">{0}</font>
 details.entryinfoheader=Information on this entry
diff --git a/src/main/java/org/olat/repository/_i18n/LocalStrings_en_FX_business.properties b/src/main/java/org/olat/repository/_i18n/LocalStrings_en_FX_business.properties
deleted file mode 100644
index 5eedc35b63cd759a333b08fc2faadd7e12ece24a..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/repository/_i18n/LocalStrings_en_FX_business.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-#Thu Sep 02 12:10:10 CEST 2010
-table.subject.institutionalName=Company
-table.subject.institutionalUserIdentifier=Employee Account Number
diff --git a/src/main/java/org/olat/repository/_i18n/LocalStrings_en_FX_school.properties b/src/main/java/org/olat/repository/_i18n/LocalStrings_en_FX_school.properties
deleted file mode 100644
index 303037ed11073ba46c67af90b3fa698e134c3c15..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/repository/_i18n/LocalStrings_en_FX_school.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-#Thu Sep 02 15:20:23 CEST 2010
-table.subject.institutionalName=Educational Institution
diff --git a/src/main/java/org/olat/resource/accesscontrol/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/resource/accesscontrol/ui/_i18n/LocalStrings_en.properties
index 63c1bf22f6ae61df0f801c0becea8308584e89a3..34ca9dbc1c42347f2d49c189304d2a37049c0235 100644
--- a/src/main/java/org/olat/resource/accesscontrol/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/resource/accesscontrol/ui/_i18n/LocalStrings_en.properties
@@ -1,13 +1,16 @@
-#Thu Jun 30 11:32:23 CEST 2011
+#Wed Oct 24 16:31:23 CEST 2012
 access.button=Order
 access.desc=This resource is not yet booked by you. A booking is necessary to launch this resource. Select one of the available booking methods below to register for this resource.
+access.free.desc=This resource is freely available for you. Press the button "$\:access.button" to register for access.
+access.free.title=Free resource
 access.info.price.noVat={0}
 access.info.price.vat={0} (incl. {1}% VAT)
 access.refused.desc=This resource is currently available for booking. Please try again later or contact the owner of this resource.
 access.title=Book resource
-accesscontrol.desc.end=Select the button "$\:add.accesscontrol" to select one or more booking methods. As an option you can also define the period in which each booking method is valid.
+access.token.desc=This resource is protected with an access code. Enter the access code and press the button "$\:access.button" to register for access. The access code can be obtained from the operator of this resource.
+access.token.title=Protected resource
 accesscontrol.desc=You can configure booking methods for accessing this resource. $\:accesscontrol.desc.end
-accesscontrol_group.desc=You can configure booking methods for accessing this group. $\:accesscontrol.desc.end
+accesscontrol.desc.end=Select the button "$\:add.accesscontrol" to select one or more booking methods. As an option you can also define the period in which each booking method is valid.
 accesscontrol.no.methods.full.access=There is no booking method configured to restrict access. This resource can be accessed by all known users without an explicit booking. Select the button "$\:add.accesscontrol"  to restrict access and/or to require an explicit booking.
 accesscontrol.no.methods.no.access=There is no booking method configured. This resource can only be accessed by explicit members of this resource. Select the button "$\:add.accesscontrol" to add a booking method and to publish the resource.
 accesscontrol.table.from=valid from
@@ -15,8 +18,10 @@ accesscontrol.table.method=Booking method
 accesscontrol.table.to=to
 accesscontrol.title=Configure booking methods
 accesscontrol.token=Access code
+accesscontrol_group.desc=You can configure booking methods for accessing this group. $\:accesscontrol.desc.end
 add.accesscontrol=Add booking method
 add.accesscontrol.intro=Select a booking method to control access to this resource. You can add multiple booking methods and configure different validation periods for each booking method.
+add.token=Create access code
 chelp.accesscontrol.access=If a learning resource is published for all registered users you can specify the terms to launch this resource here.
 chelp.accesscontrol.access.free=The resource can be launched by all users with no restrictions and no explicit booking. In this case you will not know who launched this learning resource and you will have no access to run-time data like test results (only available in courses). This is the default behavior.
 chelp.accesscontrol.access.member=On the other hand, if you want to publish the resource to a well defined list of users, then choose "Members only" instead. In this case you can administrate your participants and coaches list in the administration section.
diff --git a/src/main/java/org/olat/restapi/repository/course/CourseGroupWebService.java b/src/main/java/org/olat/restapi/repository/course/CourseGroupWebService.java
index cae5c3c3e667bc0f4b8de1c20a35070da7597362..fc4afda97ca3db6b5a4cb701c9ac31239ad20849 100644
--- a/src/main/java/org/olat/restapi/repository/course/CourseGroupWebService.java
+++ b/src/main/java/org/olat/restapi/repository/course/CourseGroupWebService.java
@@ -50,10 +50,9 @@ import org.olat.core.util.vfs.Quota;
 import org.olat.core.util.vfs.QuotaManager;
 import org.olat.core.util.vfs.restapi.VFSWebServiceSecurityCallback;
 import org.olat.core.util.vfs.restapi.VFSWebservice;
-import org.olat.course.groupsandrights.CourseGroupManager;
-import org.olat.course.groupsandrights.PersistingCourseGroupManager;
 import org.olat.group.BusinessGroup;
 import org.olat.group.BusinessGroupService;
+import org.olat.group.model.SearchBusinessGroupParams;
 import org.olat.modules.fo.Forum;
 import org.olat.modules.fo.restapi.ForumWebService;
 import org.olat.repository.RepositoryEntry;
@@ -173,8 +172,9 @@ public class CourseGroupWebService {
 	@GET
 	@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
 	public Response getGroupList(@Context HttpServletRequest request) {
-		CourseGroupManager groupManager = PersistingCourseGroupManager.getInstance(course);
-		List<BusinessGroup> groups = groupManager.getAllBusinessGroups();
+    BusinessGroupService bgs = CoreSpringFactory.getImpl(BusinessGroupService.class);
+		SearchBusinessGroupParams params = new SearchBusinessGroupParams();
+		List<BusinessGroup> groups = bgs.findBusinessGroups(params, course, 0, -1);
 			
 		int count = 0;
 		GroupVO[] vos = new GroupVO[groups.size()];
diff --git a/src/main/java/org/olat/restapi/repository/course/CourseWebService.java b/src/main/java/org/olat/restapi/repository/course/CourseWebService.java
index fa83536bfffacd952486bcab3ab1854ffb91286a..0e099c45097a2917255b1f2a17a80f7096a777db 100644
--- a/src/main/java/org/olat/restapi/repository/course/CourseWebService.java
+++ b/src/main/java/org/olat/restapi/repository/course/CourseWebService.java
@@ -127,7 +127,10 @@ public class CourseWebService {
 	@Path("groups")
 	public CourseGroupWebService getCourseGroupWebService(@PathParam("courseId") Long courseId) {
 		OLATResource ores = getCourseOLATResource(courseId);
-		return new CourseGroupWebService(ores);
+		if(ores != null) {
+			return new CourseGroupWebService(ores);
+		}
+		return null;
 	}
 
 	/**
diff --git a/src/main/java/org/olat/restapi/support/ObjectFactory.java b/src/main/java/org/olat/restapi/support/ObjectFactory.java
index da567a9f608d021d37378a15c3478894900a3444..149775f98fef34c3271f4a7ef5dc11713fe023b1 100644
--- a/src/main/java/org/olat/restapi/support/ObjectFactory.java
+++ b/src/main/java/org/olat/restapi/support/ObjectFactory.java
@@ -34,6 +34,7 @@ import org.olat.course.nodes.CourseNode;
 import org.olat.group.BusinessGroup;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryManager;
+import org.olat.resource.OLATResource;
 import org.olat.restapi.support.vo.AuthenticationVO;
 import org.olat.restapi.support.vo.CourseConfigVO;
 import org.olat.restapi.support.vo.CourseNodeVO;
@@ -109,6 +110,11 @@ public class ObjectFactory {
 		vo.setDisplayname(entry.getDisplayname());
 		vo.setResourceableId(entry.getResourceableId());
 		vo.setResourceableTypeName(entry.getResourceableTypeName());
+		OLATResource resource = entry.getOlatResource();
+		if(resource != null) {
+			vo.setOlatResourceId(resource.getResourceableId());
+			vo.setOlatRresourceTypeName(resource.getResourceableTypeName());
+		}
 		return vo;
 	}
 	
diff --git a/src/main/java/org/olat/restapi/support/vo/RepositoryEntryVO.java b/src/main/java/org/olat/restapi/support/vo/RepositoryEntryVO.java
index 9eb28b1a20545a6234fab8d7f850452069327ecc..95d7967112260ae5469dfd4bcb489ab7bc7b4e5d 100644
--- a/src/main/java/org/olat/restapi/support/vo/RepositoryEntryVO.java
+++ b/src/main/java/org/olat/restapi/support/vo/RepositoryEntryVO.java
@@ -42,6 +42,9 @@ public class RepositoryEntryVO {
 	private Long resourceableId;
 	private String resourceableTypeName;
 	
+	private Long olatResourceId;
+	private String olatRresourceTypeName;
+	
 	public Long getKey() {
 		return key;
 	}
@@ -90,6 +93,22 @@ public class RepositoryEntryVO {
 		this.resourceableTypeName = resourceableTypeName;
 	}
 
+	public Long getOlatResourceId() {
+		return olatResourceId;
+	}
+
+	public void setOlatResourceId(Long olatResourceId) {
+		this.olatResourceId = olatResourceId;
+	}
+
+	public String getOlatRresourceTypeName() {
+		return olatRresourceTypeName;
+	}
+
+	public void setOlatRresourceTypeName(String olatRresourceTypeName) {
+		this.olatRresourceTypeName = olatRresourceTypeName;
+	}
+
 	@Override
 	public String toString() {
 		return "RepositoryEntryVO[key=" + key + ":name=" + resourcename + ":display=" + displayname + "]";
diff --git a/src/main/java/org/olat/user/propertyhandlers/_i18n/LocalStrings_de_FX_business.properties b/src/main/java/org/olat/user/propertyhandlers/_i18n/LocalStrings_de_FX_business.properties
deleted file mode 100644
index a6065a3b34cbb602f3626b05c427abfe10c63feb..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/user/propertyhandlers/_i18n/LocalStrings_de_FX_business.properties
+++ /dev/null
@@ -1,27 +0,0 @@
-#Thu Sep 02 16:01:12 CEST 2010
-form.example.msnname=(msnbenutzer@hotmail.com)
-form.example.msnname.notvalidated=Ihr MSN-Name konnte nicht \u00FCberpr\u00FCft werden und wird als g\u00FCltig angenommen.
-form.example.phone=(+41 12 345 67 89)
-form.example.skypename=(meinskypename)
-form.example.url=(http\://www.olat.org)
-form.example.xingname=(xingbenutzer oder E-Mail-Adresse)
-form.example.xingname.notvalidated=Ihr XING-Name konnte nicht \u00FCberpr\u00FCft werden und wird als g\u00FCltig angenommen.
-form.group.account=Benutzername
-form.group.address=Adresse
-form.group.contact=Kontaktdaten
-form.group.institute=Organisation
-form.name.institutionalEmail.error.valid=Bitte geben Sie eine g\u00FCltige Firmen E-Mail-Adresse an.
-form.name.institutionalName=Firma
-form.name.institutionalName.error.empty=Das Feld "Firma" darf nicht leer sein.
-form.name.institutionalUserIdentifier=Personalnummer
-form.name.institutionalUserIdentifier.error.empty=Das Feld "Personalnummer" darf nicht leer sein.
-form.name.orgUnit=Abteilung
-form.name.orgUnit.error.empty=Das Feld "Abteilung" darf nicht leer sein.
-general.error.max.127=Wert enth\u00E4lt mehr als 127 Zeichen
-import.example.city=Z\u00FCrich
-import.example.institutionalName=frentix GmbH
-import.example.orgUnit=Marketing
-table.name.institutionalName=Firma
-table.name.institutionalUserIdentifier=Personalnummer
-table.name.orgUnit=Abteilung
-text.element.error.notlongerthan=Wert enth\u00E4lt mehr als {0} Zeichen
diff --git a/src/main/java/org/olat/user/propertyhandlers/_i18n/LocalStrings_de_FX_school.properties b/src/main/java/org/olat/user/propertyhandlers/_i18n/LocalStrings_de_FX_school.properties
deleted file mode 100644
index 88c229d3bc4715473748d273a164df326f297597..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/user/propertyhandlers/_i18n/LocalStrings_de_FX_school.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-#Thu Sep 02 15:29:17 CEST 2010
-form.group.institute=Lehranstalt
-form.name.institutionalName=Lehranstalt
-form.name.institutionalName.error.empty=Das Feld "Lehranstalt" darf nicht leer sein.
-form.name.institutionalUserIdentifier=Identifikation
-form.name.institutionalUserIdentifier.error.empty=Das Feld "Identifikation" darf nicht leer sein.
-form.name.orgUnit=Fachbereich
-form.name.orgUnit.error.empty=Das Feld "Fachbereich" darf nicht leer sein.
-general.error.max.127=Wert enth\u00E4lt mehr als 127 Zeichen
-import.example.city=Z\u00FCrich
-import.example.institutionalName=Universit\u00E4t Z\u00FCrich
-import.example.orgUnit=Rechtswissenschaftliche Fakult\u00E4t
-table.name.institutionalName=Lehranstalt
-table.name.institutionalUserIdentifier=Identifikation
-table.name.orgUnit=Fachbereich
-text.element.error.notlongerthan=Wert enth\u00E4lt mehr als {0} Zeichen
diff --git a/src/main/java/org/olat/user/propertyhandlers/_i18n/LocalStrings_en_FX_business.properties b/src/main/java/org/olat/user/propertyhandlers/_i18n/LocalStrings_en_FX_business.properties
deleted file mode 100644
index 79da600c0e585ffb587ef3c68d468c7a6544a373..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/user/propertyhandlers/_i18n/LocalStrings_en_FX_business.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-#Thu Sep 02 15:50:20 CEST 2010
-form.group.institute=Organisation
-form.name.institutionalEmail=Organisational E-Mail
-form.name.institutionalEmail.error.empty=The field "Organisational E-Mail" is mandatory.
-form.name.institutionalName=Company
-form.name.institutionalName.error.empty=The field "Company" is mandatory.
-form.name.institutionalUserIdentifier=Employee Account Number
-form.name.institutionalUserIdentifier.error.empty=The field "Employee Account Number" is mandatory.
-form.name.orgUnit=Department
-form.name.orgUnit.error.empty=The field "Department" is mandatory.
-import.example.city=London
-import.example.country=UK
-import.example.institutionalName=frentix GmbH
-import.example.orgUnit=Marketing
-import.example.region=LON
-import.example.skype=johndoe
-table.name.institutionalName=Company
-table.name.institutionalUserIdentifier=Employee Account Number
-table.name.orgUnit=Department
diff --git a/src/main/java/org/olat/user/propertyhandlers/_i18n/LocalStrings_en_FX_school.properties b/src/main/java/org/olat/user/propertyhandlers/_i18n/LocalStrings_en_FX_school.properties
deleted file mode 100644
index 55f9f3b8c3ad6db20323ac7066269d4bd0477ab7..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/user/propertyhandlers/_i18n/LocalStrings_en_FX_school.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-#Thu Sep 02 15:18:59 CEST 2010
-form.group.institute=Educational Institution
-form.name.email=E-Mail
-form.name.email.error.empty=The field "E-Mail" is mandatory.
-form.name.emailDisabled=E-Mail address disabled
-form.name.homepage.error.valid=Please enter a valid URL.
-form.name.institutionalEmail=Institutional E-Mail
-form.name.institutionalEmail.error.empty=The field "Institutional E-Mail" is mandatory.
-form.name.institutionalName=Educational Institution
-form.name.institutionalName.error.empty=The field "Educational Institution" is mandatory.
-form.name.orgUnit=Faculty
-form.name.orgUnit.error.empty=The field "Faculty" is mandatory.
-import.example.city=London
-import.example.country=UK
-import.example.region=LON
-table.name.institutionalName=Educational Institution
-table.name.orgUnit=Faculty
diff --git a/src/test/java/org/olat/course/FunctionalCourseTest.java b/src/test/java/org/olat/course/FunctionalCourseTest.java
index 70cfb6c94a1a9878265e4f7b90834af1b05b75af..55b6c78088c29e2a6971385149bba7918eb3e9da 100644
--- a/src/test/java/org/olat/course/FunctionalCourseTest.java
+++ b/src/test/java/org/olat/course/FunctionalCourseTest.java
@@ -30,6 +30,7 @@ import java.net.URL;
 import java.security.NoSuchAlgorithmException;
 import java.security.NoSuchProviderException;
 import java.security.SecureRandom;
+import java.util.List;
 
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.io.IOUtils;
@@ -41,10 +42,13 @@ import org.jboss.arquillian.test.api.ArquillianResource;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
+import org.olat.restapi.support.vo.GroupVO;
+import org.olat.restapi.support.vo.RepositoryEntryVO;
 import org.olat.test.ArquillianDeployments;
 import org.olat.util.FunctionalCourseUtil;
 import org.olat.util.FunctionalCourseUtil.CourseEditorCourseTab;
@@ -79,7 +83,8 @@ public class FunctionalCourseTest {
 
 	public final static int LARGE_COURSE_FILE_COUNT = 20;
 	public final static long LARGE_COURSE_FILE_SIZE = 50000;
-	public final static int LARGE_COURSE_TEST_COUNT = 20;
+	public final static int LARGE_COURSE_TEST_COUNT = 200;
+	public final static int LARGE_COURSE_GROUP_COUNT = 150;
 	public final static String LARGE_COURSE_IQ_TEST_SHORT_TITLE = "QTI";
 	public final static String LARGE_COURSE_IQ_TEST_LONG_TITLE = "generated test No. ";
 	public final static String LARGE_COURSE_IQ_TEST_DESCRIPTION_0 = "generated within a loop: test#";
@@ -122,6 +127,7 @@ public class FunctionalCourseTest {
 		}
 	}
 
+	@Ignore
 	@Test
 	@RunAsClient
 	public void checkCreateUsingWizard(){
@@ -146,8 +152,11 @@ public class FunctionalCourseTest {
 		for(int i = 0; i < elementArray.length; i++){
 			functionalCourseUtil.open(browser, i);
 		}
+		
+		functionalUtil.logout(browser);
 	}
 
+	@Ignore
 	@Test
 	@RunAsClient
 	public void checkCreateUsingEditor() throws FileNotFoundException, IOException, URISyntaxException{
@@ -222,6 +231,8 @@ public class FunctionalCourseTest {
 		.append("')]");
 		
 		Assert.assertTrue(browser.isElementPresent(selectorBuffer.toString()));
+		
+		functionalUtil.logout(browser);
 	}
 	
 	@Test
@@ -255,6 +266,9 @@ public class FunctionalCourseTest {
 			out.close();
 		}
 		
+		/* create groups via REST-API */
+		List<GroupVO> group = functionalVOUtil.createTestCourseGroups(deploymentUrl, LARGE_COURSE_GROUP_COUNT);
+		
 		/* login */
 		Assert.assertTrue(functionalUtil.login(browser, functionalUtil.getUsername(), functionalUtil.getPassword(), true));
 		
@@ -278,6 +292,7 @@ public class FunctionalCourseTest {
 		/* click course node and open editor */
 		functionalCourseUtil.open(browser, -1);
 		Assert.assertTrue(functionalCourseUtil.openCourseEditor(browser));
+		String businessPath = functionalCourseUtil.readExternalLink(browser);
 		
 		/* create tests */
 		for(int i = 0; i < LARGE_COURSE_TEST_COUNT; i++){
@@ -291,5 +306,14 @@ public class FunctionalCourseTest {
 					2 * i + 4));
 			Assert.assertTrue(functionalCourseUtil.createQTITest(browser, title, description));
 		}
+		
+		functionalUtil.logout(browser);
+		
+		/* assign groups to course */
+		long repoKey = functionalCourseUtil.extractRepositoryEntryKey(businessPath);
+		RepositoryEntryVO repoEntryVO = functionalVOUtil.getRepositoryEntryByKey(deploymentUrl, repoKey);
+		long courseId = repoEntryVO.getOlatResourceId();
+		
+		functionalVOUtil.addGroupToCourse(deploymentUrl, courseId, group);
 	}
 }
diff --git a/src/test/java/org/olat/group/FunctionalGroupTest.java b/src/test/java/org/olat/group/FunctionalGroupTest.java
index 5ef63f91feb56281a27992beb65b8da5f597f6b8..80e55065da3518f3f29d5660778c4f71cffbd191 100644
--- a/src/test/java/org/olat/group/FunctionalGroupTest.java
+++ b/src/test/java/org/olat/group/FunctionalGroupTest.java
@@ -49,7 +49,6 @@ import com.thoughtworks.selenium.DefaultSelenium;
  * 
  * @author jkraehemann, joel.kraehemann@frentix.com, frentix.com
  */
-@Ignore
 @RunWith(Arquillian.class)
 public class FunctionalGroupTest {
 	
@@ -78,6 +77,8 @@ public class FunctionalGroupTest {
 		if(!initialized){
 			functionalUtil = new FunctionalUtil();
 			functionalUtil.setDeploymentUrl(deploymentUrl.toString());
+			
+			functionalGroupsSiteUtil = functionalUtil.getFunctionalGroupsSiteUtil();
 
 			functionalVOUtil = new FunctionalVOUtil(functionalUtil.getUsername(), functionalUtil.getPassword());
 
@@ -85,6 +86,7 @@ public class FunctionalGroupTest {
 		}
 	}
 	
+	@Ignore
 	@Test
 	@RunAsClient
 	public void checkCreate(@Drone @Tutor1 DefaultSelenium tutor0) throws IOException, URISyntaxException{
@@ -115,31 +117,36 @@ public class FunctionalGroupTest {
 		 * verify
 		 */
 	}
-	
+
+	@Ignore
 	@Test
 	@RunAsClient
 	public void checkConfigureTools(){
 		
 	}
 	
+	@Ignore
 	@Test
 	@RunAsClient
 	public void checkConfigureMembers(){
 		
 	}
-	
+
+	@Ignore
 	@Test
 	@RunAsClient
 	public void checkConfigureAccessControl(){
 		
 	}
 	
+	@Ignore
 	@Test
 	@RunAsClient
 	public void checkBookGroup(){
 		
 	}
-	
+
+	@Ignore
 	@Test
 	@RunAsClient
 	public void checkAddUser(){
diff --git a/src/test/java/org/olat/restapi/CourseGroupMgmtTest.java b/src/test/java/org/olat/restapi/CourseGroupMgmtTest.java
index c03c487e610ea83ec335ec1fbf74d899144714ee..2a0a79363510448fcfe5054da20b40b34b1c0c9b 100644
--- a/src/test/java/org/olat/restapi/CourseGroupMgmtTest.java
+++ b/src/test/java/org/olat/restapi/CourseGroupMgmtTest.java
@@ -181,6 +181,18 @@ public class CourseGroupMgmtTest extends OlatJerseyTestCase {
 		assertTrue(voKeys.contains(g4.getKey()));
 	}
 	
+	@Test
+	public void testGetCourseGroups_unkownId() throws IOException, URISyntaxException {
+		assertTrue(conn.login("administrator", "openolat"));
+
+		Long courseId = 1l;
+		URI request = UriBuilder.fromUri(getContextURI()).path("/repo/courses/" + courseId + "/groups").build();
+		HttpGet method = conn.createGet(request, MediaType.APPLICATION_JSON, true);
+		HttpResponse response = conn.execute(method);
+		assertEquals(404, response.getStatusLine().getStatusCode());
+		EntityUtils.consume(response.getEntity());
+	}
+	
 	@Test
 	public void testGetCourseGroup() throws IOException, URISyntaxException {
 		assertTrue(conn.login("administrator", "openolat"));
@@ -238,7 +250,7 @@ public class CourseGroupMgmtTest extends OlatJerseyTestCase {
 		vo.setMaxParticipants(g1.getMaxParticipants());
 		vo.setType(g1.getType());
 		
-		URI request = UriBuilder.fromUri(getContextURI()).path("/repo/courses/" + courseRepoEntry.getResourceableId() + "/groups/" + g1.getKey()).build();
+		URI request = UriBuilder.fromUri(getContextURI()).path("/repo/courses/" + courseRepoEntry.getOlatResource().getResourceableId() + "/groups/" + g1.getKey()).build();
 		HttpPost method = conn.createPost(request, MediaType.APPLICATION_JSON, true);
 		conn.addJsonEntity(method, vo);
 		HttpResponse response = conn.execute(method);
@@ -256,7 +268,7 @@ public class CourseGroupMgmtTest extends OlatJerseyTestCase {
 	public void testDeleteCourseGroup() throws IOException, URISyntaxException {
 		assertTrue(conn.login("administrator", "openolat"));
 		
-		URI request = UriBuilder.fromUri(getContextURI()).path("/repo/courses/" + courseRepoEntry.getResourceableId() + "/groups/" + g1.getKey()).build();
+		URI request = UriBuilder.fromUri(getContextURI()).path("/repo/courses/" + courseRepoEntry.getOlatResource().getResourceableId() + "/groups/" + g1.getKey()).build();
 		HttpDelete method = conn.createDelete(request, MediaType.APPLICATION_JSON, true);
 		HttpResponse response = conn.execute(method);
 		EntityUtils.consume(response.getEntity());
@@ -270,7 +282,7 @@ public class CourseGroupMgmtTest extends OlatJerseyTestCase {
 	public void testBasicSecurityDeleteCall() throws IOException, URISyntaxException {
 		assertTrue(conn.login("rest-c-g-3", "A6B7C8"));
 		
-		URI request = UriBuilder.fromUri(getContextURI()).path("/repo/courses/" + courseRepoEntry.getResourceableId() + "/groups/" + g2.getKey()).build();
+		URI request = UriBuilder.fromUri(getContextURI()).path("/repo/courses/" + courseRepoEntry.getOlatResource().getResourceableId() + "/groups/" + g2.getKey()).build();
 		HttpDelete method = conn.createDelete(request, MediaType.APPLICATION_JSON, true);
 		HttpResponse response = conn.execute(method);
 		EntityUtils.consume(response.getEntity());
@@ -288,7 +300,7 @@ public class CourseGroupMgmtTest extends OlatJerseyTestCase {
 		vo.setMinParticipants(new Integer(-1));
 		vo.setMaxParticipants(new Integer(-1));
 		
-		URI request = UriBuilder.fromUri(getContextURI()).path("/repo/courses/" + courseRepoEntry.getResourceableId() + "/groups").build();
+		URI request = UriBuilder.fromUri(getContextURI()).path("/repo/courses/" + courseRepoEntry.getOlatResource().getResourceableId() + "/groups").build();
 		HttpPut method = conn.createPut(request, MediaType.APPLICATION_JSON, true);
 		conn.addJsonEntity(method, vo);
 		
diff --git a/src/test/java/org/olat/restapi/CourseTest.java b/src/test/java/org/olat/restapi/CourseTest.java
index 8cb2a34e659c1df643798cb3ea92c4218096d353..9ec57d2d33b4630ffdb7dac3797535f89b873af1 100644
--- a/src/test/java/org/olat/restapi/CourseTest.java
+++ b/src/test/java/org/olat/restapi/CourseTest.java
@@ -43,6 +43,8 @@ import java.util.List;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.UriBuilder;
 
+import junit.framework.Assert;
+
 import org.apache.http.HttpResponse;
 import org.apache.http.client.methods.HttpDelete;
 import org.apache.http.client.methods.HttpGet;
@@ -69,6 +71,7 @@ import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryManager;
 import org.olat.restapi.repository.course.CoursesWebService;
 import org.olat.restapi.support.vo.CourseVO;
+import org.olat.restapi.support.vo.RepositoryEntryVO;
 import org.olat.test.JunitTestHelper;
 import org.olat.test.OlatJerseyTestCase;
 import org.olat.user.restapi.UserVO;
@@ -129,6 +132,34 @@ public class CourseTest extends OlatJerseyTestCase {
 		assertEquals(course1.getCourseTitle(), course.getTitle());
 	}
 	
+	@Test
+	public void testGetCourse_keyRoundTrip() throws IOException, URISyntaxException {
+		RepositoryEntry courseRe = RepositoryManager.getInstance().lookupRepositoryEntry(course1, false);
+		Assert.assertNotNull(courseRe);
+		assertTrue("Cannot login as administrator", conn.login("administrator", "openolat"));
+		
+		//get repository entry information
+		URI repoUri = conn.getContextURI().path("repo").path("entries").path(courseRe.getKey().toString()).build();
+		HttpGet repoMethod = conn.createGet(repoUri, MediaType.APPLICATION_JSON, true);
+		HttpResponse repoResponse = conn.execute(repoMethod);
+		assertEquals(200, repoResponse.getStatusLine().getStatusCode());
+		RepositoryEntryVO repoEntry = conn.parse(repoResponse, RepositoryEntryVO.class);
+		assertNotNull(repoEntry);
+		assertEquals(courseRe.getKey(), repoEntry.getKey());
+		assertEquals(course1.getResourceableId(), repoEntry.getOlatResourceId());
+		
+		//get the course
+		URI courseUri = conn.getContextURI().path("repo").path("courses").path(repoEntry.getOlatResourceId().toString()).build();
+		HttpGet courseMethod = conn.createGet(courseUri, MediaType.APPLICATION_JSON, true);
+		HttpResponse courseResponse = conn.execute(courseMethod);
+		assertEquals(200, courseResponse.getStatusLine().getStatusCode());
+		CourseVO course = conn.parse(courseResponse, CourseVO.class);
+		assertNotNull(course);
+		assertEquals(course1.getResourceableId(), course.getKey());
+		assertEquals(course1.getCourseTitle(), course.getTitle());
+		
+	}
+	
 	@Test
 	public void testGetCourseRunStructure() throws IOException, URISyntaxException {
 		assertTrue(conn.login("administrator", "openolat"));
diff --git a/src/test/java/org/olat/util/FunctionalCourseUtil.java b/src/test/java/org/olat/util/FunctionalCourseUtil.java
index 9eadeeabf23c1ebc11a7b8895fd57126fb70a4e5..bb4d46d480530d9b2245aead6f9d4420e2076365 100644
--- a/src/test/java/org/olat/util/FunctionalCourseUtil.java
+++ b/src/test/java/org/olat/util/FunctionalCourseUtil.java
@@ -19,6 +19,7 @@
  */
 package org.olat.util;
 
+import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URI;
 import java.util.ArrayList;
@@ -624,6 +625,23 @@ public class FunctionalCourseUtil {
 		return(browser.getText(selectorBuffer.toString()));
 	}
 	
+	/**
+	 * Extracts the repository entry key from business path.
+	 * 
+	 * @param businessPath
+	 * @return
+	 * @throws IOException
+	 */
+	public long extractRepositoryEntryKey(String businessPath) throws IOException{
+		Pattern keyPattern = Pattern.compile("/RepositoryEntry/([0-9]+)/");
+		Matcher keyMatcher = keyPattern.matcher(businessPath);
+		
+		if(!keyMatcher.find())
+			throw new IOException("there's no repository entry key");
+		
+		return(Long.parseLong(keyMatcher.group(1)));
+	}
+	
 	/**
 	 * Reads the internal link of the currently open course node within the editor.
 	 * 
diff --git a/src/test/java/org/olat/util/FunctionalVOUtil.java b/src/test/java/org/olat/util/FunctionalVOUtil.java
index 5546bbf94b63bb192e55a4f4f78f5bffbc198a06..28b604e0bc60ba0701972d56f151619f60ea9795 100644
--- a/src/test/java/org/olat/util/FunctionalVOUtil.java
+++ b/src/test/java/org/olat/util/FunctionalVOUtil.java
@@ -51,10 +51,15 @@ import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.restapi.RestConnection;
 import org.olat.restapi.support.vo.CourseVO;
+import org.olat.restapi.support.vo.GroupVO;
 import org.olat.restapi.support.vo.RepositoryEntryVO;
 import org.olat.user.restapi.RolesVO;
 import org.olat.user.restapi.UserVO;
 
+/**
+ * 
+ * @author jkraehemann, joel.kraehemann@frentix.com, frentix.com
+ */
 public class FunctionalVOUtil {
 	private final static OLog log = Tracing.createLoggerFor(FunctionalVOUtil.class);
 	
@@ -93,6 +98,22 @@ public class FunctionalVOUtil {
 		waitLimit = WAIT_LIMIT;
 	}
 	
+	public RepositoryEntryVO getRepositoryEntryByKey(URL deploymentUrl, long key) throws IOException, URISyntaxException{
+		RestConnection restConnection = new RestConnection(deploymentUrl);
+
+		restConnection.login(getUsername(), getPassword());
+		
+		URI request = UriBuilder.fromUri(deploymentUrl.toURI()).path("restapi").path("repo/entries").path(Long.toString(key)).build();
+		HttpGet method = restConnection.createGet(request, MediaType.APPLICATION_JSON, true);
+		HttpResponse response = restConnection.execute(method);
+		assertEquals(200, response.getStatusLine().getStatusCode());
+		RepositoryEntryVO vo = restConnection.parse(response, RepositoryEntryVO.class);
+
+		restConnection.shutdown();
+		
+		return(vo);
+	}
+	
 	/**
 	 * Creates the selenium test users with random passwords and
 	 * writes it to credentials.properties.
@@ -182,6 +203,38 @@ public class FunctionalVOUtil {
 		return(user);
 	}
 	
+	public List<GroupVO> createTestCourseGroups(URL deploymentUrl, int count) throws IOException, URISyntaxException{
+		RestConnection restConnection = new RestConnection(deploymentUrl);
+
+		restConnection.login(getUsername(), getPassword());
+		
+		List<GroupVO> group = new ArrayList<GroupVO>();
+		
+		for(int i = 0; i < count; i++){
+			GroupVO vo = new GroupVO();
+			String groupname = ("selgrp_" + i + "_" + UUID.randomUUID().toString()).substring(0, 24);
+			vo.setName(groupname);
+			vo.setDescription("group#" + i + " created for selenium test case.");
+			vo.setType("BuddyGroup");
+			vo.setMinParticipants(new Integer(-1));
+			vo.setMaxParticipants(new Integer(-1));
+			
+			URI request = UriBuilder.fromUri(deploymentUrl.toURI()).path("restapi").path("groups").build();
+			HttpPut method = restConnection.createPut(request, MediaType.APPLICATION_JSON, true);
+			restConnection.addJsonEntity(method, vo);
+
+			HttpResponse response = restConnection.execute(method);
+			assertTrue(response.getStatusLine().getStatusCode() == 200 || response.getStatusLine().getStatusCode() == 201);
+			
+			vo = restConnection.parse(response, GroupVO.class);
+			group.add(vo);
+		}
+
+		restConnection.shutdown();
+		
+		return(group);
+	}
+	
 	/**
 	 * Imports the specified course via REST.
 	 * 
@@ -225,6 +278,38 @@ public class FunctionalVOUtil {
 		return(vo);
 	}
 	
+	/**
+	 * 
+	 * @param deploymentUrl
+	 * @param courseId
+	 * @param group
+	 * @return
+	 * @throws IOException
+	 * @throws URISyntaxException
+	 */
+	public List<GroupVO> addGroupToCourse(URL deploymentUrl, long courseId, List<GroupVO> group) throws IOException, URISyntaxException{
+		RestConnection restConnection = new RestConnection(deploymentUrl);
+		restConnection.login(getUsername(), getPassword());
+
+		List<GroupVO> newGroup = new ArrayList<GroupVO>();
+
+		for(GroupVO currentGroup: group){
+			URI request = UriBuilder.fromUri(deploymentUrl.toURI()).path("restapi").path("repo").path("courses").path(Long.toString(courseId)).path("groups").build();
+			HttpPut method = restConnection.createPut(request, MediaType.APPLICATION_JSON, true);
+			restConnection.addJsonEntity(method, currentGroup);
+
+			HttpResponse response = restConnection.execute(method);
+			assertEquals(200, response.getStatusLine().getStatusCode());
+			
+			GroupVO vo = restConnection.parse(response, GroupVO.class);
+			newGroup.add(vo);
+		}
+
+		restConnection.shutdown();
+		
+		return(newGroup);
+	}
+	
 	/**
 	 * 
 	 * @param deploymentUrl