diff --git a/lib/extern/elements/main/ExternElementMainTemplatePersons.class.php b/lib/extern/elements/main/ExternElementMainTemplatePersons.class.php
index a82aa442996900c871aa8a0f07c8356efe947ecf..6d5bbf9f376e83d92eeb8bf8afb85475ca3b6b5e 100644
--- a/lib/extern/elements/main/ExternElementMainTemplatePersons.class.php
+++ b/lib/extern/elements/main/ExternElementMainTemplatePersons.class.php
@@ -47,7 +47,7 @@ class ExternElementMainTemplatePersons extends ExternElementMain {
     function __construct($module_name, &$data_fields, &$field_names, &$config) {
         $this->attributes = [
                 'name', 'sort', 'groupsalias', 'groupsvisible', 'grouping',
-                'nameformat', 'defaultadr', 'genericdatafields'
+                'nameformat', 'language', 'defaultadr', 'genericdatafields'
         ];
         $this->real_name = _("Grundeinstellungen");
         $this->description = _("In den Grundeinstellungen können Sie allgemeine Daten des Moduls ändern.");
@@ -70,6 +70,7 @@ class ExternElementMainTemplatePersons extends ExternElementMain {
             'groupsalias' => '',
             'groupsvisible' => $groups,
             'nameformat' => '',
+            "language" => '',
         //  'nodatatext' => '',
             'defaultadr' => ''
         ];
@@ -136,6 +137,12 @@ class ExternElementMainTemplatePersons extends ExternElementMain {
                 _("Dr. Peter Meyer"), _("Meyer, Peter, Dr.")];
         $table = $edit_form->editOptionGeneric("nameformat", $title, $info, $values, $names);
 
+        $title = _('Sprache') . ':';
+        $info = _("Wählen Sie eine Sprache für die Datumsangaben aus.");
+        $values = ["", "de_DE", "en_GB"];
+        $names = [_("keine Auswahl"), _("Deutsch"), _("Englisch")];
+        $table .= $edit_form->editOptionGeneric("language", $title, $info, $values, $names);
+
         $title = _('Standard-Adresse') . ':';
         $info = _("Wenn Sie diese Option wählen, wird die Standard-Adresse ausgegeben, die jede(r) Mitarbeiter(in) bei seinen universitären Daten auswählen kann. Wählen Sie diese Option nicht, wenn immer die Adresse der Einrichtung ausgegeben werden soll.");
         $table .= $edit_form->editCheckboxGeneric('defaultadr', $title, $info, '1', '0');
diff --git a/lib/extern/modules/ExternModuleTemplatePersondetails.class.php b/lib/extern/modules/ExternModuleTemplatePersondetails.class.php
index ebfa784156e41a197b2f7c2d53197d24ac64e761..8c35d998e1eb5403607bb39dcc4ff7778ddec784 100644
--- a/lib/extern/modules/ExternModuleTemplatePersondetails.class.php
+++ b/lib/extern/modules/ExternModuleTemplatePersondetails.class.php
@@ -459,6 +459,7 @@ class ExternModuleTemplatePersondetails extends ExternModule {
             }
         }
 
+        $member = InstituteMember::find($row['id']);
         $content['PERSONDETAILS']['INST-NAME'] = ExternModule::ExtHtmlReady($row['Name']);
         $content['PERSONDETAILS']['INST-HREF'] = ExternModule::ExtHtmlReady(trim($row['url']));
         $content['PERSONDETAILS']['STREET'] = ExternModule::ExtHtmlReady($row['Strasse']);
@@ -469,17 +470,18 @@ class ExternModuleTemplatePersondetails extends ExternModule {
         $content['PERSONDETAILS']['EMAIL-LOCAL'] = array_shift($emails);
         $emails = explode('@', $content['PERSONDETAILS']['EMAIL']);
         $content['PERSONDETAILS']['EMAIL-DOMAIN'] = array_pop($emails);
-        $content['PERSONDETAILS']['ROOM'] = ExternModule::ExtHtmlReady($row['raum']);
-        $content['PERSONDETAILS']['PHONE'] = ExternModule::ExtHtmlReady($row['Telefon']);
-        $content['PERSONDETAILS']['FAX'] = ExternModule::ExtHtmlReady($row['Fax']);
+        $content['PERSONDETAILS']['ROOM'] = ExternModule::ExtHtmlReady($member->raum);
+        $content['PERSONDETAILS']['PHONE'] = ExternModule::ExtHtmlReady($member->telefon);
+        $content['PERSONDETAILS']['FAX'] = ExternModule::ExtHtmlReady($member->fax);
         if (Visibility::verify('homepage', $this->user_id)) {
             $content['PERSONDETAILS']['HOMEPAGE-HREF'] = ExternModule::ExtHtmlReady(trim($row['Home']));
         }
-        $content['PERSONDETAILS']['OFFICE-HOURS'] = ExternModule::ExtHtmlReady($row['sprechzeiten']);
+        $content['PERSONDETAILS']['OFFICE-HOURS'] = ExternModule::ExtHtmlReady($member->sprechzeiten);
 
         $j = 0;
         foreach($allRows as $curRow)
         {
+            $member = InstituteMember::find($curRow['id']);
             $content['PERSONDETAILS']['ALL-INST']['SINGLE-INST'][$j]['SINGLE-INST-NAME'] = ExternModule::ExtHtmlReady($curRow['Name']);
             $content['PERSONDETAILS']['ALL-INST']['SINGLE-INST'][$j]['SINGLE-INST-HREF'] = ExternModule::ExtHtmlReady(trim($curRow['url']));
             $content['PERSONDETAILS']['ALL-INST']['SINGLE-INST'][$j]['SINGLE-INST-STREET'] = ExternModule::ExtHtmlReady($curRow['Strasse']);
@@ -489,11 +491,11 @@ class ExternModuleTemplatePersondetails extends ExternModule {
             $content['PERSONDETAILS']['ALL-INST']['SINGLE-INST'][$j]['SINGLE-INST-EMAIL-LOCAL'] = array_shift($emails);
             $emails = explode('@', $content['PERSONDETAILS']['ALL-INST']['SINGLE-INST'][$j]['SINGLE-INST-EMAIL']);
             $content['PERSONDETAILS']['ALL-INST']['SINGLE-INST'][$j]['SINGLE-INST-EMAIL-DOMAIN'] = array_pop($emails);
-            $content['PERSONDETAILS']['ALL-INST']['SINGLE-INST'][$j]['SINGLE-INST-ROOM'] = ExternModule::ExtHtmlReady($curRow['raum']);
-            $content['PERSONDETAILS']['ALL-INST']['SINGLE-INST'][$j]['SINGLE-INST-PHONE'] = ExternModule::ExtHtmlReady($curRow['Telefon']);
-            $content['PERSONDETAILS']['ALL-INST']['SINGLE-INST'][$j]['SINGLE-INST-FAX'] = ExternModule::ExtHtmlReady($curRow['Fax']);
+            $content['PERSONDETAILS']['ALL-INST']['SINGLE-INST'][$j]['SINGLE-INST-ROOM'] = ExternModule::ExtHtmlReady($member->raum);
+            $content['PERSONDETAILS']['ALL-INST']['SINGLE-INST'][$j]['SINGLE-INST-PHONE'] = ExternModule::ExtHtmlReady($member->telefon);
+            $content['PERSONDETAILS']['ALL-INST']['SINGLE-INST'][$j]['SINGLE-INST-FAX'] = ExternModule::ExtHtmlReady($member->fax);
             $content['PERSONDETAILS']['ALL-INST']['SINGLE-INST'][$j]['SINGLE-INST-HOMEPAGE-HREF'] = ExternModule::ExtHtmlReady(trim($curRow['Home']));
-            $content['PERSONDETAILS']['ALL-INST']['SINGLE-INST'][$j]['SINGLE-INST-OFFICE-HOURS'] = ExternModule::ExtHtmlReady($curRow['sprechzeiten']);
+            $content['PERSONDETAILS']['ALL-INST']['SINGLE-INST'][$j]['SINGLE-INST-OFFICE-HOURS'] = ExternModule::ExtHtmlReady($member->sprechzeiten);
             $j++;
         }
 
diff --git a/lib/extern/modules/ExternModuleTemplatePersons.class.php b/lib/extern/modules/ExternModuleTemplatePersons.class.php
index ce6290e519e510a28ae5255ac5345eba169e2ca8..51e0970a0f478e50602f65bac974aeea2ef78014 100644
--- a/lib/extern/modules/ExternModuleTemplatePersons.class.php
+++ b/lib/extern/modules/ExternModuleTemplatePersons.class.php
@@ -172,7 +172,7 @@ class ExternModuleTemplatePersons extends ExternModule {
         }
 
         if(!$grouping) {
-            $query = "SELECT DISTINCT ui.raum, ui.sprechzeiten, ui.Telefon, inst_perms, Email, aum.user_id, ";
+            $query = "SELECT DISTINCT ui.id, inst_perms, Email, aum.user_id, ";
             $query .= 'username, aum.Vorname, title_front, title_rear, Home, ';
             $query .= $GLOBALS['_fullname_sql'][$nameformat] . " AS fullname, aum.Nachname ";
             if ($query_order) {
@@ -211,7 +211,7 @@ class ExternModuleTemplatePersons extends ExternModule {
                 if (!$query_order) {
                     $query_order = ' ORDER BY su.position';
                 }
-                $query = 'SELECT ui.raum, ui.sprechzeiten, ui.Telefon, inst_perms, Email, aum.user_id, ';
+                $query = 'SELECT ui.id, inst_perms, Email, aum.user_id, ';
                 $query .= 'username, aum.Vorname, title_front, title_rear, Home, ';
                 $query .= $GLOBALS['_fullname_sql'][$nameformat] . " AS fullname, aum.Nachname ";
                 $query .= 'FROM statusgruppe_user su LEFT JOIN auth_user_md5 aum USING(user_id) ';
@@ -244,7 +244,7 @@ class ExternModuleTemplatePersons extends ExternModule {
                     $instituts_id = $this->config->range_id;
 
                     if ($defaultaddress) {
-                        $query = 'SELECT ui.raum, ui.sprechzeiten, ui.Telefon, inst_perms,  Email, ';
+                        $query = 'SELECT ui.id, inst_perms,  Email, ';
                         $query .= 'title_front, title_rear, Home, Institut_id, ';
                         $query .= 'aum.user_id, username, ' . $GLOBALS['_fullname_sql'][$nameformat];
                         $query .= ' AS fullname, aum.Nachname, aum.Vorname FROM auth_user_md5 aum LEFT JOIN ';
@@ -257,7 +257,7 @@ class ExternModuleTemplatePersons extends ExternModule {
                         $db_out = $statement2->fetch(PDO::FETCH_ASSOC);
                         //no default
                         if ($db_out === false) {
-                            $query = 'SELECT ui.raum, ui.sprechzeiten, ui.Telefon, inst_perms,  Email, ';
+                            $query = 'SELECT ui.id, inst_perms,  Email, ';
                             $query .= 'title_front, title_rear, Home, ';
                             $query .= 'aum.user_id, username, ' . $GLOBALS['_fullname_sql'][$nameformat];
                             $query .= ' AS fullname, aum.Nachname, aum.Vorname FROM auth_user_md5 aum LEFT JOIN ';
@@ -290,8 +290,9 @@ class ExternModuleTemplatePersons extends ExternModule {
                     $content['PERSONS']['GROUP'][$i]['PERSON'][$j]['IMAGE-URL-MEDIUM'] = $avatar->getURL(Avatar::MEDIUM);
                     $content['PERSONS']['GROUP'][$i]['PERSON'][$j]['IMAGE-URL-NORMAL'] = $avatar->getURL(Avatar::NORMAL);
 
-                    $content['PERSONS']['GROUP'][$i]['PERSON'][$j]['PHONE'] = ExternModule::ExtHtmlReady($db_out['Telefon']);
-                    $content['PERSONS']['GROUP'][$i]['PERSON'][$j]['ROOM'] = ExternModule::ExtHtmlReady($db_out['raum']);
+                    $member = InstituteMember::find($db_out['id']);
+                    $content['PERSONS']['GROUP'][$i]['PERSON'][$j]['PHONE'] = ExternModule::ExtHtmlReady($member->telefon);
+                    $content['PERSONS']['GROUP'][$i]['PERSON'][$j]['ROOM'] = ExternModule::ExtHtmlReady($member->raum);
                     $content['PERSONS']['GROUP'][$i]['PERSON'][$j]['EMAIL'] = get_visible_email($row['user_id']);
                     $emails = explode('@', $content['PERSONS']['GROUP'][$i]['PERSON'][$j]['EMAIL']);
                     $content['PERSONS']['GROUP'][$i]['PERSON'][$j]['EMAIL-LOCAL'] = array_shift($emails);
@@ -300,7 +301,7 @@ class ExternModuleTemplatePersons extends ExternModule {
                     if ($row['Home'] && Visibility::verify('homepage', $row['user_id'])) {
                         $content['PERSONS']['GROUP'][$i]['PERSON'][$j]['HOMEPAGE-HREF'] = ExternModule::ExtHtmlReady(trim($row['Home']));
                     }
-                    $content['PERSONS']['GROUP'][$i]['PERSON'][$j]['OFFICEHOURS'] = ExternModule::ExtHtmlReady($db_out['sprechzeiten']);
+                    $content['PERSONS']['GROUP'][$i]['PERSON'][$j]['OFFICEHOURS'] = ExternModule::ExtHtmlReady($member->sprechzeiten);
                     $content['PERSONS']['GROUP'][$i]['PERSON'][$j]['PERSON-NO'] = $j + 1;
 
                     // generic data fields
diff --git a/lib/extern/modules/views/persons.inc.php b/lib/extern/modules/views/persons.inc.php
index d032b12273d3013a9c55c7c5e76412b3535f2dc4..5a2b9eb491a1ab0e707e08dd1ffae63c7810eb4c 100644
--- a/lib/extern/modules/views/persons.inc.php
+++ b/lib/extern/modules/views/persons.inc.php
@@ -104,7 +104,7 @@ if (!$grouping) {
         $range_ids = array_merge($range_ids, $children);
     }
 
-    $query = "SELECT DISTINCT ui.raum, ui.sprechzeiten, ui.Telefon, inst_perms,
+    $query = "SELECT DISTINCT ui.id, inst_perms,
                      Email, aum.user_id, username, aum.Nachname,
                      {$_fullname_sql[$nameformat]} AS fullname ";
     if ($query_order) {
@@ -157,7 +157,7 @@ foreach ($visible_groups as $group_id => $group) {
         }
 
         $ext_vis_query = get_ext_vis_query();
-        $query = "SELECT ui.raum, ui.sprechzeiten, ui.Telefon, inst_perms,
+        $query = "SELECT ui.id, inst_perms,
                          Email, aum.user_id, username, aum.Nachname,
                          {$_fullname_sql[$nameformat]} AS fullname 
                   FROM statusgruppe_user AS su
@@ -201,7 +201,7 @@ foreach ($visible_groups as $group_id => $group) {
         foreach ($rows as $row) {
             if ($defaultadr) {
                 $ext_vis_query = get_ext_vis_query();
-                $query = "SELECT ui.raum, ui.sprechzeiten, ui.Telefon,
+                $query = "SELECT ui.id,
                                  inst_perms, Email, aum.user_id, username,
                                  {$_fullname_sql[$nameformat]} AS fullname,
                                  aum.Nachname
@@ -218,7 +218,7 @@ foreach ($visible_groups as $group_id => $group) {
                     $row = $temp;
                 } else {
                     // No default
-                    $query = "SELECT ui.raum, ui.sprechzeiten, ui.Telefon,
+                    $query = "SELECT ui.id,
                                      inst_perms,  Email, aum.user_id, username,
                                      {$_fullname_sql[$nameformat]} AS fullname,
                                      aum.Nachname
@@ -234,15 +234,16 @@ foreach ($visible_groups as $group_id => $group) {
             }
 
             $email = get_visible_email($row['user_id']);
+            $member = InstituteMember::find($row['id']);
             $data['content'] = [
                 'Nachname'     => $this->elements['LinkIntern']->toString([
                                       'content'   => htmlReady($row['fullname']),
                                       'module'    => 'Persondetails',
                                       'link_args' => 'username=' . $row['username']
                                   ]),
-                'Telefon'      => htmlReady($row['Telefon']),
-                'sprechzeiten' => htmlReady($row['sprechzeiten']),
-                'raum'         => htmlReady($row['raum']),
+                'Telefon'      => htmlReady($member->telefon),
+                'sprechzeiten' => htmlReady($member->sprechzeiten),
+                'raum'         => htmlReady($member->raum),
                 'Email'        => $this->elements['Link']->toString([
                                       'content' => htmlReady($email),
                                       'link'    => 'mailto:' . htmlReady($email)