Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/breadcrumbs.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/breadcrumbs.py	(revision 7699)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/breadcrumbs.py	(revision 7700)
@@ -25,4 +25,5 @@
 from waeup.sirp.interfaces import (
     IConfigurationContainer, ISessionConfiguration)
+from waeup.sirp.interfaces import MessageFactory as _
 from waeup.sirp.browser import interfaces
 from waeup.sirp.browser.interfaces import (IBreadcrumb,
@@ -87,5 +88,5 @@
     """
     grok.context(interfaces.IUniversity)
-    title = u'Home'
+    title = _(u'Home')
     parent = None
 
@@ -101,5 +102,5 @@
     grok.context(interfaces.IUniversity)
     grok.name('manage')
-    title = u'Portal Settings'
+    title = _(u'Portal Settings')
 
     @property
@@ -113,5 +114,5 @@
     """
     grok.context(interfaces.IFacultiesContainer)
-    title = u'Academics'
+    title = _(u'Academics')
 
 class AdministrationBreadcrumb(Breadcrumb):
@@ -120,5 +121,5 @@
     grok.context(interfaces.IUniversity)
     grok.name('administration')
-    title = u'Administration'
+    title = _(u'Administration')
     viewname = 'administration'
 
@@ -127,5 +128,5 @@
     """
     grok.context(IConfigurationContainer)
-    title = u'Portal Configuration'
+    title = _(u'Portal Configuration')
     parent_viewname = 'administration'
 
@@ -145,5 +146,5 @@
     """
     grok.context(interfaces.IUsersContainer)
-    title = u'Portal Users'
+    title = _(u'Portal Users')
     parent_viewname = 'administration'
 
@@ -152,5 +153,5 @@
     """ 
     grok.context(interfaces.IDataCenter)
-    title = u'Data Center'
+    title = _(u'Data Center')
     parent_viewname = 'administration'
 
Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/browser.txt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/browser.txt	(revision 7699)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/browser.txt	(revision 7700)
@@ -344,5 +344,5 @@
   >>> print browser.contents
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
-  ...Successfully removed:...
+  ...Local role successfully removed...
   ...
 
@@ -494,5 +494,5 @@
   >>> print browser.contents
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
-  ...Successfully removed:...
+  ...Local role successfully removed...
   ...
 
Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/layout.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/layout.py	(revision 7699)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/layout.py	(revision 7700)
@@ -24,4 +24,5 @@
 from grokcore.formlib.formlib import Action
 from cgi import escape
+from zope.i18n import translate
 from zope.i18nmessageid import Message
 from hurry.resource import mode
@@ -70,5 +71,5 @@
         label = self.label
         if isinstance(label, Message):
-            label = zope.i18n.translate(self.label, context=self.form.request)
+            label = translate(self.label, context=self.form.request)
         return ('<input type="submit" id="%s" name="%s" value="%s"'
                 ' class="btn %s"/>' %
@@ -92,5 +93,5 @@
         label = self.label
         if isinstance(label, Message):
-            label = zope.i18n.translate(self.label, context=self.form.request)
+            label = translate(self.label, context=self.form.request)
         return ('<input type="submit" id="%s" name="%s" value="%s"'
                 ' class="btn" onclick="return confirmPost(%s)" />' %
Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/pages.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/pages.py	(revision 7699)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/pages.py	(revision 7700)
@@ -44,4 +44,5 @@
     IDepartment, IDepartmentAdd, ICourse, ICourseAdd, ICertificate,
     ICertificateAdd, ICertificateCourse, ICertificateCourseAdd)
+from waeup.sirp.interfaces import MessageFactory as _
 from waeup.sirp.browser.resources import warning, datepicker, tabs, datatable
 from waeup.sirp.interfaces import(
@@ -80,5 +81,5 @@
     child_ids = view.request.form.get('role_id', None)
     if child_ids is None:
-        view.flash('No local role selected.')
+        view.flash(_('No local role selected.'))
         view.redirect(view.url(view.context, '@@manage')+'?tab%s' % tab)
         return
@@ -99,5 +100,7 @@
                     child_id, sys.exc_info()[0], sys.exc_info()[1]))
     if len(deleted):
-        view.flash('Successfully removed: %s' % ', '.join(deleted))
+        view.flash(
+            _('Local role successfully removed: ${a}',
+            mapping = {'a':', '.join(deleted)}))
     view.redirect(view.url(view.context, u'@@manage')+'?tab%s' % tab)
     return
@@ -108,5 +111,5 @@
         child_id = form['val_id']
     else:
-        view.flash('No item selected.')
+        view.flash(_('No item selected.'))
         if tab:
             view.redirect(view.url(view.context, redirect)+'?tab%s' % tab)
@@ -129,5 +132,6 @@
                     id, sys.exc_info()[0], sys.exc_info()[1]))
     if len(deleted):
-        view.flash('Successfully removed: %s' % ', '.join(deleted))
+        view.flash(_('Successfully removed: ${a}',
+            mapping = {'a': ', '.join(deleted)}))
     if tab:
         view.redirect(view.url(view.context, redirect)+'?tab%s' % tab)
@@ -146,5 +150,5 @@
     grok.context(ISIRPObject)
     grok.require('waeup.Public')
-    label = u'Login'
+    label = _(u'Login')
     camefrom = None
 
@@ -153,5 +157,5 @@
         if SUBMIT is not None:
             if self.request.principal.id != 'zope.anybody':
-                self.flash('You logged in.')
+                self.flash(_('You logged in.'))
                 if self.request.principal.user_type == 'student':
                     rel_link = '/students/%s' % self.request.principal.id
@@ -171,5 +175,5 @@
                 self.redirect(self.camefrom)
                 return
-            self.flash('You entered wrong credentials.')
+            self.flash(_('You entered wrong credentials.'))
 
 
@@ -185,5 +189,5 @@
             auth = getUtility(IAuthentication)
             ILogout(auth).logout(self.request)
-            self.flash("You have been logged out. Thanks for using WAeUP SIRP!")
+            self.flash(_("You have been logged out. Thanks for using WAeUP SIRP!"))
         self.redirect(self.application_url())
 
@@ -221,5 +225,5 @@
 
     def label(self):
-        return u'Contact %s' % self.config.name_admin
+        return _(u'Contact ${a}', mapping = {'a': self.config.name_admin})
 
     @property
@@ -227,5 +231,5 @@
         return get_user_account(self.request)
 
-    @action('Send message now', style='primary')
+    @action(_('Send message now'), style='primary')
     def send(self, *args, **data):
         fullname = self.request.principal.title
@@ -246,5 +250,5 @@
         # TODO: Catch exceptions.
         if success:
-            self.flash('Your message has been sent.')
+            self.flash(_('Your message has been sent.'))
         return
 
@@ -256,5 +260,5 @@
                           'fullname', 'email_from', 'body')
 
-    @action('Send now', style='primary')
+    @action(_('Send now'), style='primary')
     def send(self, *args, **data):
         sirp_utils = getUtility(ISIRPUtils)
@@ -265,7 +269,7 @@
                 data['body'],self.config.email_subject)
         if success:
-            self.flash('Your message has been sent.')
+            self.flash(_('Your message has been sent.'))
         else:
-            self.flash('A smtp server error occurred.')
+            self.flash(_('A smtp server error occurred.'))
         return
 
@@ -296,5 +300,5 @@
     grok.context(IUniversity)
     grok.require('waeup.manageUniversity')
-    label = u'Administration'
+    label = _(u'Administration')
     pnav = 0
 
@@ -373,5 +377,5 @@
     grok.context(IUsersContainer)
     grok.name('index')
-    label = 'Portal Users'
+    label = _('Portal Users')
 
     def update(self, userid=None, adduser=None, manage=None, delete=None):
@@ -380,5 +384,6 @@
         if delete is not None and userid is not None:
             self.context.delUser(userid)
-            self.flash('User account %s successfully deleted.' % userid)
+            self.flash(_('User account ${a} successfully deleted.',
+                mapping = {'a':  userid}))
 
     def getLocalRoles(self, account):
@@ -410,7 +415,7 @@
     grok.template('usereditformpage')
     form_fields = grok.AutoFields(IUserAccount)
-    label = 'Add user'
-
-    @action('Add user', style='primary')
+    label = _('Add user')
+
+    @action(_('Add user'), style='primary')
     def addUser(self, **data):
         name = data['name']
@@ -434,5 +439,6 @@
                                  phone=phone, description=description,
                                  roles=roles)
-            self.flash('User account %s successfully added.' % name)
+            self.flash(_('User account ${a} successfully added.',
+                mapping = {'a': name}))
         except KeyError:
             self.status = self.flash('The userid chosen already exists '
@@ -452,5 +458,5 @@
 
     def label(self):
-        return "Edit user %s" % self.context.__name__
+        return _("Edit user ${a}", mapping = {'a':self.context.__name__})
 
     def setUpWidgets(self, ignore_request=False):
@@ -459,5 +465,5 @@
         self.widgets['description'].height = 3
 
-    @action('Save', style='primary')
+    @action(_('Save'), style='primary')
     def save(self, **data):
         form = self.request.form
@@ -483,8 +489,8 @@
             self.context.__parent__.logger.info(
                 'User account %s edited: %s' % (self.context.name,fields_string))
-        self.flash('User settings have been saved.')
-        return
-
-    @action('Cancel', validator=NullValidator)
+        self.flash(_('User settings have been saved.'))
+        return
+
+    @action(_('Cancel'), validator=NullValidator)
     def cancel(self, **data):
         self.redirect(self.url(self.context.__parent__))
@@ -500,7 +506,7 @@
 
     def label(self):
-        return u'Send message to %s' % self.context.title
-
-    @action('Send message now', style='primary')
+        return _(u'Send message to ${a}', mapping = {'a':self.context.title})
+
+    @action(_('Send message now'), style='primary')
     def send(self, *args, **data):
         try:
@@ -519,5 +525,5 @@
         # TODO: Catch exceptions.
         if success:
-            self.flash('Your message has been sent.')
+            self.flash(_('Your message has been sent.'))
         return
 
@@ -529,5 +535,5 @@
     form_fields = grok.AutoFields(IUserAccount).omit(
         'name', 'description', 'roles')
-    label = u"My Preferences"
+    label = _(u"My Preferences")
 
     def setUpWidgets(self, ignore_request=False):
@@ -542,5 +548,5 @@
     grok.context(IUserAccount)
     grok.template('myrolespage')
-    label = u"My Roles"
+    label = _(u"My Roles")
 
     @property
@@ -573,5 +579,5 @@
     grok.template('searchpage')
     grok.require('waeup.manageUniversity')
-    label = u"Search Academic Section"
+    label = _(u"Search Academic Section")
     pnav = 1
 
@@ -599,5 +605,5 @@
     grok.context(IConfigurationContainer)
     pnav = 0
-    label = u'View portal configuration'
+    label = _(u'View portal configuration')
     form_fields = grok.AutoFields(IConfigurationContainer)
     form_fields['frontpage'].custom_widget = ReSTDisplayWidget
@@ -612,9 +618,9 @@
     grok.template('configurationmanagepage')
     pnav = 0
-    label = u'Edit portal configuration'
-    taboneactions = ['Save', 'Update plugins']
+    label = _(u'Edit portal configuration')
+    taboneactions = [_('Save'), _('Update plugins')]
     tabtwoactions = [
-        'Add session configuration',
-        'Remove selected']
+        _('Add session configuration'),
+        _('Remove selected')]
 
     form_fields = grok.AutoFields(IConfigurationContainer)
@@ -642,8 +648,8 @@
         self.applyData(self.context, **data)
         self.context.frontpage_html = self.frontpage()
-        self.flash('Settings have been saved.')
-        return
-
-    @action('Add session configuration', validator=NullValidator, style='primary')
+        self.flash(_('Settings have been saved.'))
+        return
+
+    @action(_('Add session configuration'), validator=NullValidator, style='primary')
     def addSubunit(self, **data):
         self.redirect(self.url(self.context, '@@add'))
@@ -656,16 +662,16 @@
             url = self.url(val)
             session_string = val.getSessionString()
-            title = 'Session %s Configuration' % session_string
+            title = _('Session ${a} Configuration', mapping = {'a':session_string})
             yield(dict(url=url, name=key, title=title))
 
-    @jsaction('Remove selected')
+    @jsaction(_('Remove selected'))
     def delSessonConfigurations(self, **data):
         delSubobjects(self, redirect='@@index', tab='2')
         return
 
-    @action('Update plugins', validator=NullValidator)
+    @action(_('Update plugins'), validator=NullValidator)
     def updatePlugins(self, **data):
         grok.getSite().updatePlugins()
-        self.flash('Plugins were updated. See log file for details.')
+        self.flash(_('Plugins were updated. See log file for details.'))
         return
 
@@ -676,9 +682,9 @@
     grok.name('add')
     grok.require('waeup.managePortalConfiguration')
-    label = 'Add session configuration'
+    label = _('Add session configuration')
     form_fields = grok.AutoFields(ISessionConfigurationAdd)
     pnav = 0
 
-    @action('Add Session Configuration', style='primary')
+    @action(_('Add Session Configuration'), style='primary')
     def addSessionConfiguration(self, **data):
         sessionconfiguration = createObject(u'waeup.SessionConfiguration')
@@ -687,10 +693,10 @@
             self.context.addSessionConfiguration(sessionconfiguration)
         except KeyError:
-            self.flash('The session chosen already exists ')
+            self.flash(_('The session chosen already exists.'))
             return
         self.redirect(self.url(self.context, '@@index')+'?tab2')
         return
 
-    @action('Cancel', validator=NullValidator)
+    @action(_('Cancel'), validator=NullValidator)
     def cancel(self):
         self.redirect(self.url(self.context, '@@index')+'?tab2')
@@ -709,14 +715,15 @@
     def label(self):
         session_string = self.context.getSessionString()
-        return 'Edit academic session %s configuration' % session_string
-
-    @action('Save', style='primary')
+        return _('Edit academic session ${a} configuration',
+            mapping = {'a':session_string})
+
+    @action(_('Save'), style='primary')
     def save(self, **data):
         self.applyData(self.context, **data)
-        self.flash('Settings have been saved.')
+        self.flash(_('Settings have been saved.'))
         self.redirect(self.url(self.context.__parent__, '@@index')+'?tab2')
         return
 
-    @action('Cancel', validator=NullValidator)
+    @action(_('Cancel'), validator=NullValidator)
     def cancel(self):
         self.redirect(self.url(self.context.__parent__, '@@index')+'?tab2')
@@ -731,5 +738,5 @@
     grok.name('index')
     grok.require('waeup.manageUniversity')
-    label = u'Data Center'
+    label = _(u'Data Center')
     pnav = 0
 
@@ -738,5 +745,5 @@
     grok.name('upload')
     grok.require('waeup.manageUniversity')
-    label = u'Upload file'
+    label = _(u'Upload file')
     pnav = 0
 
@@ -784,5 +791,5 @@
     grok.template('datacenterimport1page')
     grok.require('waeup.manageUniversity')
-    label = u'Process CSV file'
+    label = _(u'Process CSV file')
     pnav = 0
 
@@ -797,5 +804,5 @@
     def update(self, filename=None, select=None, cancel=None):
         if cancel is not None:
-            self.flash('Import aborted.')
+            self.flash(_('Import aborted.'))
             self.redirect(self.url(self.context))
             return
@@ -813,5 +820,5 @@
     grok.template('datacenterimport2page')
     grok.require('waeup.manageUniversity')
-    label = u'Process CSV file'
+    label = _(u'Process CSV file')
     pnav = 0
 
@@ -874,5 +881,5 @@
             if len(headerfields) > len(headerfields_clean):
                 result.append(
-                    "Double headers: each column name may only appear once. ")
+                    _("Double headers: each column name may only appear once. "))
         except:
             fatal = '%s' % sys.exc_info()[1]
@@ -882,5 +889,5 @@
             for line in result:
                 warnings += line + '<br />'
-            warnings += 'Replace imported file!'
+            warnings += _('Replace imported file!')
             return warnings
         return False
@@ -895,5 +902,5 @@
             return
         if cancel is not None:
-            self.flash('Import aborted.')
+            self.flash(_('Import aborted.'))
             self.redirect(self.url(self.context))
             return
@@ -907,5 +914,5 @@
         if self.importer and 'update' in self.importer:
             if self.mode != 'update':
-                self.flash('Update mode only!')
+                self.flash(_('Update mode only!'))
                 self.mode_locked = True
                 self.mode = 'update'
@@ -930,5 +937,5 @@
     grok.template('datacenterimport3page')
     grok.require('waeup.manageUniversity')
-    label = u'Process CSV file'
+    label = _(u'Process CSV file')
     pnav = 0
 
@@ -988,5 +995,5 @@
             for line in result:
                 warnings += line + '<br />'
-            warnings += 'Edit headers or replace imported file!'
+            warnings += _('Edit headers or replace imported file!')
             return warnings
         return False
@@ -1009,5 +1016,5 @@
             return
         if cancel is not None:
-            self.flash('Import aborted.')
+            self.flash(_('Import aborted.'))
             self.redirect(self.url(self.context))
             return
@@ -1033,5 +1040,5 @@
     grok.template('datacenterimport4page')
     grok.require('waeup.manageUniversity')
-    label = u'Process CSV file'
+    label = _(u'Process CSV file')
     pnav = 0
 
@@ -1078,7 +1085,8 @@
 
         if self.warn_num:
-            self.flash('Processing of %d rows failed.' % self.warn_num)
-        self.flash('Successfully processed %s rows.' % (
-                linenum - (self.warn_num)))
+            self.flash(_('Processing of ${a} rows failed.',
+                mapping = {'a':self.warn_num}))
+        self.flash(_('Successfully processed ${a} rows.',
+            mapping = {'a':linenum - self.warn_num}))
 
 class DatacenterLogsOverview(SIRPPage):
@@ -1087,5 +1095,5 @@
     grok.template('datacenterlogspage')
     grok.require('waeup.manageUniversity')
-    label = u'Show logfiles'
+    label = _(u'Show logfiles')
     pnav = 0
 
@@ -1107,5 +1115,5 @@
     grok.template('datacenterlogsshowfilepage')
     grok.require('waeup.manageUniversity')
-    title = u'Data Center'
+    title = _(u'Data Center')
     pnav = 0
 
@@ -1129,5 +1137,5 @@
     grok.template('datacentermanagepage')
     grok.require('waeup.manageUniversity')
-    label = 'Edit data center settings'
+    label = _('Edit data center settings')
     pnav = 0
 
@@ -1146,11 +1154,11 @@
             not_copied = self.context.setStoragePath(newpath, move=move)
             for name in not_copied:
-                self.flash('File already existed (not copied): %s' % name)
+                self.flash(_('File already existed (not copied):') + ' %s' % name)
         except:
-            self.flash('Given storage path cannot be used.')
-            self.flash('Error: %s' %sys.exc_info()[1])
+            self.flash(_('Given storage path cannot be used.'))
+            self.flash(_('Error:') + '%s' %sys.exc_info()[1])
             return
         if newpath:
-            self.flash('New storage path succefully set.')
+            self.flash(_('New storage path succefully set.'))
             self.redirect(self.url(self.context))
         return
@@ -1212,5 +1220,5 @@
     grok.require('waeup.viewAcademics')
     grok.name('index')
-    label = 'Academic Section'
+    label = _('Academic Section')
     pnav = 1
     grok.template('facultypage')
@@ -1224,10 +1232,10 @@
     grok.template('facultiescontainermanagepage')
     pnav = 1
-    taboneactions = ['Add faculty', 'Remove selected','Cancel']
-    subunits = 'Faculties'
+    taboneactions = [_('Add faculty'), _('Remove selected'),_('Cancel')]
+    subunits = _('Faculties')
 
     @property
     def label(self):
-        return 'Manage academic section'
+        return _('Manage academic section')
 
     def update(self):
@@ -1235,15 +1243,15 @@
         return super(FacultiesContainerManageFormPage, self).update()
 
-    @jsaction('Remove selected')
+    @jsaction(_('Remove selected'))
     def delFaculties(self, **data):
         delSubobjects(self, redirect='@@manage', tab='1')
         return
 
-    @action('Add faculty', validator=NullValidator)
+    @action(_('Add faculty'), validator=NullValidator)
     def addFaculty(self, **data):
         self.redirect(self.url(self.context, '@@add'))
         return
 
-    @action('Cancel', validator=NullValidator)
+    @action(_('Cancel'), validator=NullValidator)
     def cancel(self, **data):
         self.redirect(self.url(self.context))
@@ -1257,9 +1265,9 @@
     grok.require('waeup.manageUniversity')
     grok.name('add')
-    label = 'Add faculty'
+    label = _('Add faculty')
     form_fields = grok.AutoFields(IFacultyAdd)
     pnav = 1
 
-    @action('Add faculty', style='primary')
+    @action(_('Add faculty'), style='primary')
     def addFaculty(self, **data):
         faculty = createObject(u'waeup.Faculty')
@@ -1268,9 +1276,9 @@
             self.context.addFaculty(faculty)
         except KeyError:
-            self.flash('The faculty code chosen already exists.')
+            self.flash(_('The faculty code chosen already exists.'))
             return
         self.redirect(self.url(self.context, u'@@manage')+'?tab1')
 
-    @action('Cancel')
+    @action(_('Cancel'))
     def cancel(self, **data):
         self.redirect(self.url(self.context))
@@ -1289,5 +1297,5 @@
     @property
     def label(self):
-        return 'Departments'
+        return _('Departments')
 
 class FacultyManageFormPage(SIRPEditFormPage):
@@ -1299,9 +1307,9 @@
     grok.template('facultymanagepage')
     pnav = 1
-    subunits = 'Departments'
-    taboneactions = ['Save','Cancel']
-    tabtwoactions = ['Add department', 'Remove selected','Cancel']
-    tabthreeactions1 = ['Remove selected local roles']
-    tabthreeactions2 = ['Add local role']
+    subunits = _('Departments')
+    taboneactions = [_('Save'),_('Cancel')]
+    tabtwoactions = [_('Add department'), _('Remove selected'),_('Cancel')]
+    tabthreeactions1 = [_('Remove selected local roles')]
+    tabthreeactions2 = [_('Add local role')]
 
     form_fields = grok.AutoFields(IFaculty)
@@ -1309,5 +1317,5 @@
     @property
     def label(self):
-        return 'Manage faculty'
+        return _('Manage faculty')
 
     def update(self):
@@ -1336,5 +1344,5 @@
         return get_users_with_local_roles(self.context)
 
-    @jsaction('Remove selected')
+    @jsaction(_('Remove selected'))
     def delDepartments(self, **data):
         delSubobjects(self, redirect='@@manage', tab='2')
@@ -1344,22 +1352,22 @@
     def save(self, **data):
         self.applyData(self.context, **data)
-        self.flash('Form has been saved.')
-        return
-
-    @action('Cancel', validator=NullValidator)
+        self.flash(_('Form has been saved.'))
+        return
+
+    @action(_('Cancel'), validator=NullValidator)
     def cancel(self, **data):
         self.redirect(self.url(self.context))
         return
 
-    @action('Add department', validator=NullValidator)
+    @action(_('Add department'), validator=NullValidator)
     def addSubunit(self, **data):
         self.redirect(self.url(self.context, '@@add'))
         return
 
-    @action('Add local role', validator=NullValidator)
+    @action(_('Add local role'), validator=NullValidator)
     def addLocalRole(self, **data):
         return add_local_role(self, '3', **data)
 
-    @action('Remove selected local roles')
+    @action(_('Remove selected local roles'))
     def delLocalRoles(self, **data):
         return del_local_roles(self,3,**data)
@@ -1371,9 +1379,9 @@
     grok.name('add')
     grok.require('waeup.manageUniversity')
-    label = 'Add department'
+    label = _('Add department')
     form_fields = grok.AutoFields(IDepartmentAdd)
     pnav = 1
 
-    @action('Add department', style='primary')
+    @action(_('Add department'), style='primary')
     def addDepartment(self, **data):
         department = createObject(u'waeup.Department')
@@ -1382,12 +1390,11 @@
             self.context.addDepartment(department)
         except KeyError:
-            self.flash('The code chosen already exists '
-                                  'in this faculty.')
+            self.flash(_('The code chosen already exists in this faculty.'))
             return
         self.status = self.flash(
-            "Department %s added." % data['code'])
+            _("Department ${a} added.", mapping = {'a':data['code']}))
         self.redirect(self.url(self.context, u'@@manage')+'?tab2')
 
-    @action('Cancel')
+    @action(_('Cancel'))
     def cancel(self, **data):
         self.redirect(self.url(self.context))
@@ -1403,5 +1410,5 @@
     grok.name('index')
     pnav = 1
-    label = 'Courses and Certificates'
+    label = _('Courses and Certificates')
 
     def update(self):
@@ -1433,5 +1440,5 @@
     grok.template('showstudentspage')
     pnav = 1
-    label = 'Students'
+    label = _('Students')
 
     @property
@@ -1452,5 +1459,5 @@
     grok.name('showcertstudents')
     pnav = 1
-    label = 'Students'
+    label = _('Students')
 
     @property
@@ -1468,10 +1475,10 @@
     pnav = 1
     grok.template('departmentmanagepage')
-    taboneactions = ['Save','Cancel']
-    tabtwoactions = ['Add course', 'Remove selected courses','Cancel']
-    tabthreeactions = ['Add certificate', 'Remove selected certificates',
-                       'Cancel']
-    tabfouractions1 = ['Remove selected local roles']
-    tabfouractions2 = ['Add local role']
+    taboneactions = [_('Save'),_('Cancel')]
+    tabtwoactions = [_('Add course'), _('Remove selected courses'),_('Cancel')]
+    tabthreeactions = [_('Add certificate'), _('Remove selected certificates'),
+                       _('Cancel')]
+    tabfouractions1 = [_('Remove selected local roles')]
+    tabfouractions2 = [_('Add local role')]
 
     form_fields = grok.AutoFields(IDepartment)
@@ -1479,5 +1486,5 @@
     @property
     def label(self):
-        return 'Manage department'
+        return _('Manage department')
 
     def getCourses(self):
@@ -1521,5 +1528,5 @@
         return get_users_with_local_roles(self.context)
 
-    @action('Save', style='primary')
+    @action(_('Save'), style='primary')
     def save(self, **data):
         self.applyData(self.context, **data)
@@ -1527,5 +1534,5 @@
         return
 
-    @jsaction('Remove selected courses')
+    @jsaction(_('Remove selected courses'))
     def delCourses(self, **data):
         delSubobjects(
@@ -1533,5 +1540,5 @@
         return
 
-    @jsaction('Remove selected certificates')
+    @jsaction(_('Remove selected certificates'))
     def delCertificates(self, **data):
         delSubobjects(
@@ -1539,24 +1546,24 @@
         return
 
-    @action('Add course', validator=NullValidator)
+    @action(_('Add course'), validator=NullValidator)
     def addCourse(self, **data):
         self.redirect(self.url(self.context, 'addcourse'))
         return
 
-    @action('Add certificate', validator=NullValidator)
+    @action(_('Add certificate'), validator=NullValidator)
     def addCertificate(self, **data):
         self.redirect(self.url(self.context, 'addcertificate'))
         return
 
-    @action('Cancel', validator=NullValidator)
+    @action(_('Cancel'), validator=NullValidator)
     def cancel(self, **data):
         self.redirect(self.url(self.context))
         return
 
-    @action('Add local role', validator=NullValidator)
+    @action(_('Add local role'), validator=NullValidator)
     def addLocalRole(self, **data):
         return add_local_role(self, 4, **data)
 
-    @action('Remove selected local roles')
+    @action(_('Remove selected local roles'))
     def delLocalRoles(self, **data):
         return del_local_roles(self,4,**data)
Index: main/waeup.sirp/trunk/src/waeup/sirp/locales/de/LC_MESSAGES/waeup.sirp.po
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/locales/de/LC_MESSAGES/waeup.sirp.po	(revision 7699)
+++ main/waeup.sirp/trunk/src/waeup/sirp/locales/de/LC_MESSAGES/waeup.sirp.po	(revision 7700)
@@ -15,6 +15,6 @@
 msgstr ""
 "Project-Id-Version: WAeUP.SIRP\n"
-"POT-Creation-Date: Thu Feb 23 13:38:29 2012\n"
-"PO-Revision-Date: 2012-02-23 13:41+0100\n"
+"POT-Creation-Date: Fri Feb 24 23:24:12 2012\n"
+"PO-Revision-Date: 2012-02-24 23:27+0100\n"
 "Last-Translator: Henrik Bettermann <henrik@waeup.org>\n"
 "Language-Team: WAeUP Germany <henrik@waeup.org>\n"
@@ -37,5 +37,5 @@
 
 #: waeup/sirp/accesscodes/workflow.py:35
-#: waeup/sirp/applicants/workflow.py:39
+#: waeup/sirp/applicants/workflow.py:37
 msgid "initialized"
 msgstr "initialisiert"
@@ -72,115 +72,497 @@
 msgstr "Zullassungsgebühr-Ticket"
 
-#: waeup/sirp/applicants/viewlets.py:45
+#: waeup/sirp/applicants/viewlets.py:44
 msgid "Applicants"
 msgstr "Antragsteller"
 
-#: waeup/sirp/applicants/viewlets.py:58
+#: waeup/sirp/applicants/viewlets.py:57
 msgid "Application"
 msgstr "Beantragung"
 
-#: waeup/sirp/applicants/workflow.py:101
-msgid "Create student record"
-msgstr "Erzeuge Studenten"
-
-#: waeup/sirp/applicants/workflow.py:102
-#: waeup/sirp/students/workflow.py:26
+#: waeup/sirp/applicants/workflow.py:100
+#: waeup/sirp/students/workflow.py:25
 msgid "Student record created"
 msgstr "Student erzeugt"
 
-#: waeup/sirp/applicants/workflow.py:108
-#: waeup/sirp/applicants/workflow.py:115
-#: waeup/sirp/applicants/workflow.py:122
-#: waeup/sirp/applicants/workflow.py:129
+#: waeup/sirp/applicants/workflow.py:106
+#: waeup/sirp/applicants/workflow.py:113
+#: waeup/sirp/applicants/workflow.py:120
+#: waeup/sirp/applicants/workflow.py:127
 msgid "Reset application to started"
 msgstr "Setze Antrag zurück"
 
-#: waeup/sirp/applicants/workflow.py:109
-#: waeup/sirp/applicants/workflow.py:116
-#: waeup/sirp/applicants/workflow.py:123
-#: waeup/sirp/applicants/workflow.py:130
-#: waeup/sirp/applicants/workflow.py:136
+#: waeup/sirp/applicants/workflow.py:107
+#: waeup/sirp/applicants/workflow.py:114
+#: waeup/sirp/applicants/workflow.py:121
+#: waeup/sirp/applicants/workflow.py:128
+#: waeup/sirp/applicants/workflow.py:134
 msgid "Application reset"
 msgstr "Antrag zurückgesetzt"
 
-#: waeup/sirp/applicants/workflow.py:135
+#: waeup/sirp/applicants/workflow.py:133
 msgid "Reset application to paid"
 msgstr "Setze Antrag zurück auf 'Gebühren bezahlt'"
 
-#: waeup/sirp/applicants/workflow.py:40
+#: waeup/sirp/applicants/workflow.py:38
 msgid "started"
 msgstr "gestarted"
 
-#: waeup/sirp/applicants/workflow.py:41
+#: waeup/sirp/applicants/workflow.py:39
 msgid "paid"
 msgstr "bezahlt"
 
-#: waeup/sirp/applicants/workflow.py:42
+#: waeup/sirp/applicants/workflow.py:40
 msgid "submitted"
 msgstr "zugelassen"
 
-#: waeup/sirp/applicants/workflow.py:43
+#: waeup/sirp/applicants/workflow.py:41
 #: waeup/sirp/interfaces.py:69
 msgid "admitted"
 msgstr "zugelassen"
 
-#: waeup/sirp/applicants/workflow.py:44
+#: waeup/sirp/applicants/workflow.py:42
 msgid "not admitted"
 msgstr "nicht zugelassen"
 
-#: waeup/sirp/applicants/workflow.py:45
+#: waeup/sirp/applicants/workflow.py:43
 #: waeup/sirp/interfaces.py:68
 msgid "created"
 msgstr "neu"
 
-#: waeup/sirp/applicants/workflow.py:51
+#: waeup/sirp/applicants/workflow.py:49
 msgid "Initialize application"
 msgstr "Initialisiere Antrag"
 
-#: waeup/sirp/applicants/workflow.py:54
+#: waeup/sirp/applicants/workflow.py:52
 msgid "Application initialized"
 msgstr "Antrag initialisiert"
 
-#: waeup/sirp/applicants/workflow.py:59
+#: waeup/sirp/applicants/workflow.py:57
 msgid "Start application"
 msgstr "Starte Antragsvorgang"
 
-#: waeup/sirp/applicants/workflow.py:60
+#: waeup/sirp/applicants/workflow.py:58
 msgid "Application started"
 msgstr "Antragsvorgang gestartet"
 
-#: waeup/sirp/applicants/workflow.py:66
+#: waeup/sirp/applicants/workflow.py:64
 msgid "Pay acceptance fee"
 msgstr "Zahle Gebühr"
 
-#: waeup/sirp/applicants/workflow.py:67
+#: waeup/sirp/applicants/workflow.py:65
 msgid "Fee paid"
 msgstr "Gebühr bezahlt"
 
-#: waeup/sirp/applicants/workflow.py:73
+#: waeup/sirp/applicants/workflow.py:71
 msgid "Submit application"
 msgstr "Reiche Antrag ein"
 
-#: waeup/sirp/applicants/workflow.py:74
+#: waeup/sirp/applicants/workflow.py:72
 msgid "Application submitted"
 msgstr "Antrag eingereicht"
 
-#: waeup/sirp/applicants/workflow.py:80
+#: waeup/sirp/applicants/workflow.py:78
 msgid "Admit applicant"
 msgstr "Lasse Antragsteller zu"
 
-#: waeup/sirp/applicants/workflow.py:81
+#: waeup/sirp/applicants/workflow.py:79
 msgid "Applicant admitted"
 msgstr "Antragsteller zugelassen"
 
-#: waeup/sirp/applicants/workflow.py:87
-#: waeup/sirp/applicants/workflow.py:94
+#: waeup/sirp/applicants/workflow.py:85
+#: waeup/sirp/applicants/workflow.py:92
 msgid "Refuse application"
 msgstr "Lehne Antrag ab"
 
-#: waeup/sirp/applicants/workflow.py:88
-#: waeup/sirp/applicants/workflow.py:95
+#: waeup/sirp/applicants/workflow.py:86
+#: waeup/sirp/applicants/workflow.py:93
 msgid "Application refused"
 msgstr "Antrag abgelehnt"
+
+#: waeup/sirp/applicants/workflow.py:99
+msgid "Create student record"
+msgstr "Erzeuge Studenten"
+
+#: waeup/sirp/browser/breadcrumbs.py:104
+msgid "Portal Settings"
+msgstr "Portaleinstellungen"
+
+#: waeup/sirp/browser/breadcrumbs.py:116
+#: waeup/sirp/browser/viewlets.py:681
+msgid "Academics"
+msgstr "Akademie"
+
+#: waeup/sirp/browser/breadcrumbs.py:123
+#: waeup/sirp/browser/pages.py:302
+msgid "Administration"
+msgstr "Verwaltung"
+
+#: waeup/sirp/browser/breadcrumbs.py:130
+msgid "Portal Configuration"
+msgstr "Portalkonfiguration"
+
+#: waeup/sirp/browser/breadcrumbs.py:148
+#: waeup/sirp/browser/pages.py:379
+msgid "Portal Users"
+msgstr "Benutzer"
+
+#: waeup/sirp/browser/breadcrumbs.py:155
+#: waeup/sirp/browser/pages.py:740
+#: waeup/sirp/browser/pages.py:1117
+msgid "Data Center"
+msgstr "Datenzentrum"
+
+#: waeup/sirp/browser/breadcrumbs.py:90
+msgid "Home"
+msgstr "Home"
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:103
+msgid "Local role successfully removed: ${a}"
+msgstr "Lokale Rolle erfolgreich entfernt: ${a}"
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:1087
+msgid "Processing of ${a} rows failed."
+msgstr "Bearbeitung von ${a} Zeilen fehlgeschlagen."
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:1089
+msgid "Successfully processed ${a} rows."
+msgstr "${a} Zeilen erfolgreich verarbeitet."
+
+#: waeup/sirp/browser/pages.py:1097
+msgid "Show logfiles"
+msgstr "Zeige Logdateien"
+
+#: waeup/sirp/browser/pages.py:113
+msgid "No item selected."
+msgstr "Nichts ausgewählt."
+
+#: waeup/sirp/browser/pages.py:1139
+msgid "Edit data center settings"
+msgstr "Bearbeite Einstellungen des Datenzentrums"
+
+#: waeup/sirp/browser/pages.py:1156
+msgid "File already existed (not copied):"
+msgstr "Datei existiert (nicht kopiert):"
+
+#: waeup/sirp/browser/pages.py:1158
+msgid "Given storage path cannot be used."
+msgstr "Der Datenpfad kann nicht verwendet werden."
+
+#: waeup/sirp/browser/pages.py:1159
+msgid "Error:"
+msgstr "Fehler:"
+
+#: waeup/sirp/browser/pages.py:1162
+msgid "New storage path succefully set."
+msgstr "Neuen Datenpfad erfolgreich gesetzt."
+
+#: waeup/sirp/browser/pages.py:1222
+msgid "Academic Section"
+msgstr "Akademie"
+
+#: waeup/sirp/browser/pages.py:1234
+#: waeup/sirp/browser/pages.py:1250
+#: waeup/sirp/browser/pages.py:1267
+#: waeup/sirp/browser/pages.py:1271
+msgid "Add faculty"
+msgstr "Füge Fakultät hinzu"
+
+#: waeup/sirp/browser/pages.py:1235
+msgid "Faculties"
+msgstr "Fakultäten"
+
+#: waeup/sirp/browser/pages.py:1239
+msgid "Manage academic section"
+msgstr "Bearbeite Akademie"
+
+#: waeup/sirp/browser/pages.py:1278
+msgid "The faculty code chosen already exists."
+msgstr "Das Fakultätskürzel existiert bereits."
+
+#: waeup/sirp/browser/pages.py:1299
+#: waeup/sirp/browser/pages.py:1309
+msgid "Departments"
+msgstr "Departments"
+
+#: waeup/sirp/browser/pages.py:1311
+#: waeup/sirp/browser/pages.py:1362
+#: waeup/sirp/browser/pages.py:1381
+#: waeup/sirp/browser/pages.py:1385
+msgid "Add department"
+msgstr "Füge Department hinzu"
+
+#: waeup/sirp/browser/pages.py:1312
+#: waeup/sirp/browser/pages.py:1371
+#: waeup/sirp/browser/pages.py:1481
+#: waeup/sirp/browser/pages.py:1567
+msgid "Remove selected local roles"
+msgstr "Ausgewählte lokale Rollen  löschen"
+
+#: waeup/sirp/browser/pages.py:1313
+#: waeup/sirp/browser/pages.py:1367
+#: waeup/sirp/browser/pages.py:1482
+#: waeup/sirp/browser/pages.py:1563
+msgid "Add local role"
+msgstr "Lokale Rolle hinzufügen"
+
+#: waeup/sirp/browser/pages.py:1319
+msgid "Manage faculty"
+msgstr "Bearbeite Fakultät"
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:134
+msgid "Successfully removed: ${a}"
+msgstr "Erfolgreich entfernt: ${a}"
+
+#: waeup/sirp/browser/pages.py:1354
+msgid "Form has been saved."
+msgstr "Das Formular wurde gespeichert."
+
+#: waeup/sirp/browser/pages.py:1392
+msgid "The code chosen already exists in this faculty."
+msgstr "Das Kürzel existiert bereits in dieser Fakultät."
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:1395
+msgid "Department ${a} added."
+msgstr "Department ${a} hinzugefügt."
+
+#: waeup/sirp/browser/pages.py:1412
+msgid "Courses and Certificates"
+msgstr "Kurse und Zertifikate"
+
+#: waeup/sirp/browser/pages.py:1442
+#: waeup/sirp/browser/pages.py:1461
+#: waeup/sirp/students/viewlets.py:466
+msgid "Students"
+msgstr "Studenten"
+
+#: waeup/sirp/browser/pages.py:1478
+#: waeup/sirp/browser/pages.py:1536
+msgid "Remove selected courses"
+msgstr "Ausgewählte Kurse  löschen"
+
+#: waeup/sirp/browser/pages.py:1478
+#: waeup/sirp/browser/pages.py:1548
+msgid "Add course"
+msgstr "Kurs hinzufügen"
+
+#: waeup/sirp/browser/pages.py:1479
+#: waeup/sirp/browser/pages.py:1542
+msgid "Remove selected certificates"
+msgstr "Ausgewählte Zertifikate löschen"
+
+#: waeup/sirp/browser/pages.py:1479
+#: waeup/sirp/browser/pages.py:1553
+msgid "Add certificate"
+msgstr "Füge Zertifikat hinzu."
+
+#: waeup/sirp/browser/pages.py:1488
+msgid "Manage department"
+msgstr "Bearbeite Department"
+
+#: waeup/sirp/browser/pages.py:152
+#: waeup/sirp/browser/templates/staffsitelayout.pt:28
+#: waeup/sirp/browser/templates/studentsitelayout.pt:33
+msgid "Login"
+msgstr "Einloggen"
+
+#: waeup/sirp/browser/pages.py:159
+msgid "You logged in."
+msgstr "Sie sind jetzt eingeloggt."
+
+#: waeup/sirp/browser/pages.py:177
+msgid "You entered wrong credentials."
+msgstr "Sie haben falsche Zugangsdaten eingegeben."
+
+#: waeup/sirp/browser/pages.py:191
+msgid "You have been logged out. Thanks for using WAeUP SIRP!"
+msgstr "Sie wurden ausgeloggt. Danke dass Sie WAeUP Kofa benutzt haben."
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:227
+msgid "Contact ${a}"
+msgstr "Kontaktiere ${a}"
+
+#: waeup/sirp/browser/pages.py:233
+#: waeup/sirp/browser/pages.py:510
+msgid "Send message now"
+msgstr "Jetzt senden"
+
+#: waeup/sirp/browser/pages.py:252
+#: waeup/sirp/browser/pages.py:271
+#: waeup/sirp/browser/pages.py:527
+msgid "Your message has been sent."
+msgstr "Ihre Nachricht wurde verschickt."
+
+#: waeup/sirp/browser/pages.py:262
+msgid "Send now"
+msgstr "Sende jetzt"
+
+#: waeup/sirp/browser/pages.py:273
+msgid "A smtp server error occurred."
+msgstr "Es trat ein smtp-Serverfehler auf."
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:386
+msgid "User account ${a} successfully deleted."
+msgstr "Benutzerkonto ${a} erfolgreich gelöscht."
+
+#: waeup/sirp/browser/pages.py:417
+#: waeup/sirp/browser/pages.py:419
+msgid "Add user"
+msgstr "Benutzer hinzufügen"
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:441
+msgid "User account ${a} successfully added."
+msgstr "Benutzerkonto ${a} erfolgreich hinzugefügt."
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:460
+msgid "Edit user ${a}"
+msgstr "Bearbeite Benutzer"
+
+#: waeup/sirp/browser/pages.py:467
+#: waeup/sirp/browser/pages.py:621
+#: waeup/sirp/browser/pages.py:720
+#: waeup/sirp/browser/pages.py:1310
+#: waeup/sirp/browser/pages.py:1477
+#: waeup/sirp/browser/pages.py:1530
+msgid "Save"
+msgstr "Speichern"
+
+#: waeup/sirp/browser/pages.py:491
+msgid "User settings have been saved."
+msgstr "Benutzereinstellungen wurden gespeichert."
+
+#: waeup/sirp/browser/pages.py:494
+#: waeup/sirp/browser/pages.py:700
+#: waeup/sirp/browser/pages.py:727
+#: waeup/sirp/browser/pages.py:1234
+#: waeup/sirp/browser/pages.py:1255
+#: waeup/sirp/browser/pages.py:1282
+#: waeup/sirp/browser/pages.py:1310
+#: waeup/sirp/browser/pages.py:1311
+#: waeup/sirp/browser/pages.py:1357
+#: waeup/sirp/browser/pages.py:1398
+#: waeup/sirp/browser/pages.py:1477
+#: waeup/sirp/browser/pages.py:1478
+#: waeup/sirp/browser/pages.py:1480
+#: waeup/sirp/browser/pages.py:1558
+msgid "Cancel"
+msgstr "Abbruch"
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:508
+msgid "Send message to ${a}"
+msgstr "Sende Nachricht an ${a}"
+
+#: waeup/sirp/browser/pages.py:537
+msgid "My Preferences"
+msgstr "Meine Präferenzen"
+
+#: waeup/sirp/browser/pages.py:550
+msgid "My Roles"
+msgstr "Meine Rollen"
+
+#: waeup/sirp/browser/pages.py:581
+msgid "Search Academic Section"
+msgstr "Durchsuche Akademie"
+
+#: waeup/sirp/browser/pages.py:607
+msgid "View portal configuration"
+msgstr "Betrachte Portal-Konfiguration"
+
+#: waeup/sirp/browser/pages.py:620
+msgid "Edit portal configuration"
+msgstr "Bearbeite Portalkonfiguration"
+
+#: waeup/sirp/browser/pages.py:621
+#: waeup/sirp/browser/pages.py:672
+msgid "Update plugins"
+msgstr "Aktualisiere Plugins"
+
+#: waeup/sirp/browser/pages.py:623
+#: waeup/sirp/browser/pages.py:653
+#: waeup/sirp/browser/pages.py:684
+msgid "Add session configuration"
+msgstr "Füge Session-Konfiguration hinzu"
+
+#: waeup/sirp/browser/pages.py:624
+#: waeup/sirp/browser/pages.py:667
+#: waeup/sirp/browser/pages.py:1234
+#: waeup/sirp/browser/pages.py:1245
+#: waeup/sirp/browser/pages.py:1311
+#: waeup/sirp/browser/pages.py:1346
+msgid "Remove selected"
+msgstr "Ausgewählte Objekte löschen"
+
+#: waeup/sirp/browser/pages.py:650
+#: waeup/sirp/browser/pages.py:723
+msgid "Settings have been saved."
+msgstr "Einstellungen wurden gespeichert."
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:664
+msgid "Session ${a} Configuration"
+msgstr "Session ${a}-Konfiguration"
+
+#: waeup/sirp/browser/pages.py:675
+msgid "Plugins were updated. See log file for details."
+msgstr "Plugins wurden aktualisiert, siehe Logdatei."
+
+#: waeup/sirp/browser/pages.py:688
+msgid "Add Session Configuration"
+msgstr "Füge Session-Konfiguration hinzu"
+
+#: waeup/sirp/browser/pages.py:695
+msgid "The session chosen already exists."
+msgstr "Die Session existiert bereits."
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:717
+msgid "Edit academic session ${a} configuration"
+msgstr "Bearbeite Session ${a}-Konfiguration"
+
+#: waeup/sirp/browser/pages.py:747
+msgid "Upload file"
+msgstr "Datei hochladen"
+
+#: waeup/sirp/browser/pages.py:793
+#: waeup/sirp/browser/pages.py:822
+#: waeup/sirp/browser/pages.py:939
+#: waeup/sirp/browser/pages.py:1042
+msgid "Process CSV file"
+msgstr "Verarbeite CSF-Datei"
+
+#: waeup/sirp/browser/pages.py:806
+#: waeup/sirp/browser/pages.py:904
+#: waeup/sirp/browser/pages.py:1018
+msgid "Import aborted."
+msgstr "Import abgebrochen."
+
+#: waeup/sirp/browser/pages.py:83
+msgid "No local role selected."
+msgstr "Keine lokalen Rollen ausgewählt."
+
+#: waeup/sirp/browser/pages.py:883
+msgid "Double headers: each column name may only appear once. "
+msgstr "Doppelte Spaltenüberschrift"
+
+#: waeup/sirp/browser/pages.py:891
+msgid "Replace imported file!"
+msgstr "Tauschen Sie die Importdatei aus!"
+
+#: waeup/sirp/browser/pages.py:916
+msgid "Update mode only!"
+msgstr "Nur Aktualisierungsmodus!"
+
+#: waeup/sirp/browser/pages.py:997
+msgid "Edit headers or replace imported file!"
+msgstr "Bearbeiten Sie die Spaltenüberschrift oder tauschen Sie die  Importdatei aus."
 
 #. Default: "Local Roles"
@@ -213,9 +595,4 @@
 msgstr "Meine lokalen Rollen:"
 
-#: waeup/sirp/browser/templates/staffsitelayout.pt:28
-#: waeup/sirp/browser/templates/studentsitelayout.pt:33
-msgid "Login"
-msgstr "Einloggen"
-
 #: waeup/sirp/browser/templates/staffsitelayout.pt:34
 #: waeup/sirp/browser/templates/studentsitelayout.pt:39
@@ -228,13 +605,9 @@
 msgstr "Ausloggen"
 
-#: waeup/sirp/browser/viewlets.py:682
-msgid "Academics"
-msgstr "Akademie"
-
-#: waeup/sirp/browser/viewlets.py:697
+#: waeup/sirp/browser/viewlets.py:696
 msgid "Enquiries"
 msgstr "Anfragen"
 
-#: waeup/sirp/hostels/browser.py:68
+#: waeup/sirp/hostels/browser.py:67
 msgid "Hostels"
 msgstr "Wohnheime"
@@ -285,140 +658,174 @@
 msgstr "Max. Dateigröße:"
 
-#: waeup/sirp/students/viewlets.py:467
-msgid "Students"
-msgstr "Studenten"
-
-#: waeup/sirp/students/workflow.py:108
+#: waeup/sirp/students/vocabularies.py:135
+msgid "Male"
+msgstr "männlich"
+
+#: waeup/sirp/students/vocabularies.py:137
+msgid "Female"
+msgstr "weiblich"
+
+#. Default: ""
+#: waeup/sirp/students/vocabularies.py:77
+msgid "Error: level id ${value} out of range"
+msgstr "Fehler: level_id ${value} nicht verfügbar"
+
+#. Default: ""
+#: waeup/sirp/students/vocabularies.py:88
+msgid "${title} 2nd spillover"
+msgstr "${title} / 2. Nachholen"
+
+#. Default: ""
+#: waeup/sirp/students/vocabularies.py:91
+msgid "${title} 3rd spillover"
+msgstr "${title} / 3. Nachholen"
+
+#. Default: ""
+#: waeup/sirp/students/vocabularies.py:94
+msgid "${title} 1st spillover"
+msgstr "${title} / 1. Nachholen"
+
+#. Default: ""
+#: waeup/sirp/students/vocabularies.py:96
+msgid "${title} on 1st probation"
+msgstr "${title} / 1. Wiederholung"
+
+#. Default: ""
+#: waeup/sirp/students/vocabularies.py:98
+msgid "${title} on 2nd probation"
+msgstr "${title} / 2. Wiederholung"
+
+#: waeup/sirp/students/workflow.py:107
 msgid "Reset to returning"
 msgstr "Setze zurück auf 'rückgemeldet'"
 
-#: waeup/sirp/students/workflow.py:109
+#: waeup/sirp/students/workflow.py:108
 msgid "Student record reset to 'returning'"
 msgstr "Student zurückgesetzt auf 'rückgemeldet'"
 
-#: waeup/sirp/students/workflow.py:115
+#: waeup/sirp/students/workflow.py:114
 msgid "Register courses"
 msgstr "Registriere Kurse"
 
-#: waeup/sirp/students/workflow.py:116
+#: waeup/sirp/students/workflow.py:115
 msgid "Courses registered"
 msgstr "Kurse registriert"
 
+#: waeup/sirp/students/workflow.py:121
+#: waeup/sirp/students/workflow.py:135
+msgid "Reset to paid"
+msgstr "Setze zurück auf 'Gebühren bezahlt'"
+
 #: waeup/sirp/students/workflow.py:122
 #: waeup/sirp/students/workflow.py:136
-msgid "Reset to paid"
-msgstr "Setze zurück auf 'Gebühren bezahlt'"
-
-#: waeup/sirp/students/workflow.py:123
-#: waeup/sirp/students/workflow.py:137
 msgid "Student record reset to 'paid'"
 msgstr "Student zurückgesetzt auf 'Gebühren bezahlt'"
 
-#: waeup/sirp/students/workflow.py:129
+#: waeup/sirp/students/workflow.py:128
 msgid "Validate courses"
 msgstr "Validiere Kurse"
 
-#: waeup/sirp/students/workflow.py:130
+#: waeup/sirp/students/workflow.py:129
 msgid "Courses validated"
 msgstr "Kurse validiert"
 
-#: waeup/sirp/students/workflow.py:143
+#: waeup/sirp/students/workflow.py:142
 msgid "Return"
 msgstr "Melde zurück"
 
-#: waeup/sirp/students/workflow.py:144
+#: waeup/sirp/students/workflow.py:143
 msgid "Returned"
 msgstr "rückgemeldet"
 
-#: waeup/sirp/students/workflow.py:150
+#: waeup/sirp/students/workflow.py:149
 msgid "Reset to validated"
 msgstr "Setze zurück auf 'Kurse validiert'"
 
-#: waeup/sirp/students/workflow.py:151
+#: waeup/sirp/students/workflow.py:150
 msgid "Student record reset to 'validated'"
 msgstr "Student zurückgesetzt auf 'Kurse validiert'"
 
-#: waeup/sirp/students/workflow.py:23
+#: waeup/sirp/students/workflow.py:22
 msgid "Create student"
 msgstr "Erzeuge Studenten"
 
-#: waeup/sirp/students/workflow.py:31
+#: waeup/sirp/students/workflow.py:30
 msgid "Admit student"
 msgstr "Student zulassen"
 
-#: waeup/sirp/students/workflow.py:32
+#: waeup/sirp/students/workflow.py:31
 msgid "Student admitted"
 msgstr "Student zugelassen"
 
-#: waeup/sirp/students/workflow.py:38
+#: waeup/sirp/students/workflow.py:37
 msgid "Reset student"
 msgstr "Setze zurück"
 
-#: waeup/sirp/students/workflow.py:39
+#: waeup/sirp/students/workflow.py:38
 msgid "Student record reset"
 msgstr "Student zurückgesetzt"
 
-#: waeup/sirp/students/workflow.py:45
+#: waeup/sirp/students/workflow.py:44
 msgid "Start clearance"
 msgstr "Starte Einschreibung"
 
-#: waeup/sirp/students/workflow.py:46
+#: waeup/sirp/students/workflow.py:45
 msgid "Clearance started"
 msgstr "Einschreibung begonnen"
 
-#: waeup/sirp/students/workflow.py:52
+#: waeup/sirp/students/workflow.py:51
 msgid "Reset to admitted"
 msgstr "Setze zurück auf 'zugelassen'"
 
-#: waeup/sirp/students/workflow.py:53
+#: waeup/sirp/students/workflow.py:52
 msgid "Student record reset to 'admitted'"
 msgstr "Student zurückgesetzt auf 'zugelassen'"
 
-#: waeup/sirp/students/workflow.py:59
+#: waeup/sirp/students/workflow.py:58
 msgid "Request clearance"
 msgstr "Beantrage Einschreibung"
 
-#: waeup/sirp/students/workflow.py:60
+#: waeup/sirp/students/workflow.py:59
 msgid "Clearance requested"
 msgstr "Einschreibung beantragt"
 
+#: waeup/sirp/students/workflow.py:65
+#: waeup/sirp/students/workflow.py:79
+msgid "Reset to clearance"
+msgstr "Setze zurück auf 'eingeschrieben'"
+
 #: waeup/sirp/students/workflow.py:66
 #: waeup/sirp/students/workflow.py:80
-msgid "Reset to clearance"
-msgstr "Setze zurück auf 'eingeschrieben'"
-
-#: waeup/sirp/students/workflow.py:67
-#: waeup/sirp/students/workflow.py:81
 msgid "Student record reset to 'clearance'"
 msgstr "Student zurückgesetzt auf 'Einschreibung begonnen'"
 
-#: waeup/sirp/students/workflow.py:73
+#: waeup/sirp/students/workflow.py:72
 msgid "Clear student"
 msgstr "Schreibe Student ein"
 
-#: waeup/sirp/students/workflow.py:74
+#: waeup/sirp/students/workflow.py:73
 msgid "Cleared"
 msgstr "eingeschrieben"
 
+#: waeup/sirp/students/workflow.py:86
+#: waeup/sirp/students/workflow.py:100
+msgid "Pay school fee"
+msgstr "Bezahle Gebühren"
+
 #: waeup/sirp/students/workflow.py:87
 #: waeup/sirp/students/workflow.py:101
-msgid "Pay school fee"
-msgstr "Bezahle Gebühren"
-
-#: waeup/sirp/students/workflow.py:88
-#: waeup/sirp/students/workflow.py:102
 msgid "School fee paid"
 msgstr "Gebühren bezahlt"
 
-#: waeup/sirp/students/workflow.py:94
+#: waeup/sirp/students/workflow.py:93
 msgid "Reset to cleared"
 msgstr "Setze zurück auf 'eingeschrieben'"
 
-#: waeup/sirp/students/workflow.py:95
+#: waeup/sirp/students/workflow.py:94
 msgid "Student record reset to 'cleared'"
 msgstr "Student zurückgesetzt auf 'eingeschrieben'"
 
 #. Default: "Name of faculty"
-#: waeup/sirp/university/interfaces.py:46
+#: waeup/sirp/university/interfaces.py:45
 msgid "name_of_faculty"
 msgstr "Name der Fakultät"
@@ -460,2 +867,13 @@
 msgstr "8. Studienjahr"
 
+#~ msgid "User account ${a} edited: ${b}"
+#~ msgstr "Benutzerkonto ${a} bearbeitet: ${b}"
+
+#~ msgid "3rd spillover"
+#~ msgstr "3. Nachholjahr"
+
+#~ msgid "1st spillover"
+#~ msgstr "1. Nachholjahr"
+
+#~ msgid "2nd spillover"
+#~ msgstr "2. Nachholjahr"
Index: main/waeup.sirp/trunk/src/waeup/sirp/locales/fr/LC_MESSAGES/waeup.sirp.po
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/locales/fr/LC_MESSAGES/waeup.sirp.po	(revision 7699)
+++ main/waeup.sirp/trunk/src/waeup/sirp/locales/fr/LC_MESSAGES/waeup.sirp.po	(revision 7700)
@@ -15,5 +15,5 @@
 msgstr ""
 "Project-Id-Version: WAeUP.SIRP\n"
-"POT-Creation-Date: Thu Feb 23 13:38:29 2012\n"
+"POT-Creation-Date: Fri Feb 24 23:24:12 2012\n"
 "PO-Revision-Date: 2012-02-22 11:28+0100\n"
 "Last-Translator: Henrik Bettermann <henrik@waeup.org>\n"
@@ -36,5 +36,5 @@
 msgstr ""
 
-#: waeup/sirp/accesscodes/workflow.py:35 waeup/sirp/applicants/workflow.py:39
+#: waeup/sirp/accesscodes/workflow.py:35 waeup/sirp/applicants/workflow.py:37
 msgid "initialized"
 msgstr ""
@@ -70,105 +70,447 @@
 msgstr ""
 
-#: waeup/sirp/applicants/viewlets.py:45
+#: waeup/sirp/applicants/viewlets.py:44
 msgid "Applicants"
 msgstr ""
 
-#: waeup/sirp/applicants/viewlets.py:58
+#: waeup/sirp/applicants/viewlets.py:57
 msgid "Application"
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:101
+#: waeup/sirp/applicants/workflow.py:100 waeup/sirp/students/workflow.py:25
+msgid "Student record created"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:106 waeup/sirp/applicants/workflow.py:113
+#: waeup/sirp/applicants/workflow.py:120 waeup/sirp/applicants/workflow.py:127
+msgid "Reset application to started"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:107 waeup/sirp/applicants/workflow.py:114
+#: waeup/sirp/applicants/workflow.py:121 waeup/sirp/applicants/workflow.py:128
+#: waeup/sirp/applicants/workflow.py:134
+msgid "Application reset"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:133
+msgid "Reset application to paid"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:38
+msgid "started"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:39
+msgid "paid"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:40
+msgid "submitted"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:41 waeup/sirp/interfaces.py:69
+msgid "admitted"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:42
+msgid "not admitted"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:43 waeup/sirp/interfaces.py:68
+msgid "created"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:49
+msgid "Initialize application"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:52
+msgid "Application initialized"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:57
+msgid "Start application"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:58
+msgid "Application started"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:64
+msgid "Pay acceptance fee"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:65
+msgid "Fee paid"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:71
+msgid "Submit application"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:72
+msgid "Application submitted"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:78
+msgid "Admit applicant"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:79
+msgid "Applicant admitted"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:85 waeup/sirp/applicants/workflow.py:92
+msgid "Refuse application"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:86 waeup/sirp/applicants/workflow.py:93
+msgid "Application refused"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:99
 msgid "Create student record"
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:102 waeup/sirp/students/workflow.py:26
-msgid "Student record created"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:108 waeup/sirp/applicants/workflow.py:115
-#: waeup/sirp/applicants/workflow.py:122 waeup/sirp/applicants/workflow.py:129
-msgid "Reset application to started"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:109 waeup/sirp/applicants/workflow.py:116
-#: waeup/sirp/applicants/workflow.py:123 waeup/sirp/applicants/workflow.py:130
-#: waeup/sirp/applicants/workflow.py:136
-msgid "Application reset"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:135
-msgid "Reset application to paid"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:40
-msgid "started"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:41
-msgid "paid"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:42
-msgid "submitted"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:43 waeup/sirp/interfaces.py:69
-msgid "admitted"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:44
-msgid "not admitted"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:45 waeup/sirp/interfaces.py:68
-msgid "created"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:51
-msgid "Initialize application"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:54
-msgid "Application initialized"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:59
-msgid "Start application"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:60
-msgid "Application started"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:66
-msgid "Pay acceptance fee"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:67
-msgid "Fee paid"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:73
-msgid "Submit application"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:74
-msgid "Application submitted"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:80
-msgid "Admit applicant"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:81
-msgid "Applicant admitted"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:87 waeup/sirp/applicants/workflow.py:94
-msgid "Refuse application"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:88 waeup/sirp/applicants/workflow.py:95
-msgid "Application refused"
+#: waeup/sirp/browser/breadcrumbs.py:104
+msgid "Portal Settings"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:116 waeup/sirp/browser/viewlets.py:681
+msgid "Academics"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:123 waeup/sirp/browser/pages.py:302
+msgid "Administration"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:130
+msgid "Portal Configuration"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:148 waeup/sirp/browser/pages.py:379
+msgid "Portal Users"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:155 waeup/sirp/browser/pages.py:740
+#: waeup/sirp/browser/pages.py:1117
+msgid "Data Center"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:90
+msgid "Home"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:103
+msgid "Local role successfully removed: ${a}"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:1087
+msgid "Processing of ${a} rows failed."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:1089
+msgid "Successfully processed ${a} rows."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1097
+msgid "Show logfiles"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:113
+msgid "No item selected."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1139
+msgid "Edit data center settings"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1156
+msgid "File already existed (not copied):"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1158
+msgid "Given storage path cannot be used."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1159
+msgid "Error:"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1162
+msgid "New storage path succefully set."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1222
+msgid "Academic Section"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1234 waeup/sirp/browser/pages.py:1250
+#: waeup/sirp/browser/pages.py:1267 waeup/sirp/browser/pages.py:1271
+msgid "Add faculty"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1235
+msgid "Faculties"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1239
+msgid "Manage academic section"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1278
+msgid "The faculty code chosen already exists."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1299 waeup/sirp/browser/pages.py:1309
+msgid "Departments"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1311 waeup/sirp/browser/pages.py:1362
+#: waeup/sirp/browser/pages.py:1381 waeup/sirp/browser/pages.py:1385
+msgid "Add department"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1312 waeup/sirp/browser/pages.py:1371
+#: waeup/sirp/browser/pages.py:1481 waeup/sirp/browser/pages.py:1567
+msgid "Remove selected local roles"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1313 waeup/sirp/browser/pages.py:1367
+#: waeup/sirp/browser/pages.py:1482 waeup/sirp/browser/pages.py:1563
+msgid "Add local role"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1319
+msgid "Manage faculty"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:134
+msgid "Successfully removed: ${a}"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1354
+msgid "Form has been saved."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1392
+msgid "The code chosen already exists in this faculty."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:1395
+msgid "Department ${a} added."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1412
+msgid "Courses and Certificates"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1442 waeup/sirp/browser/pages.py:1461
+#: waeup/sirp/students/viewlets.py:466
+msgid "Students"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1478 waeup/sirp/browser/pages.py:1536
+msgid "Remove selected courses"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1478 waeup/sirp/browser/pages.py:1548
+msgid "Add course"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1479 waeup/sirp/browser/pages.py:1542
+msgid "Remove selected certificates"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1479 waeup/sirp/browser/pages.py:1553
+msgid "Add certificate"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1488
+msgid "Manage department"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:152
+#: waeup/sirp/browser/templates/staffsitelayout.pt:28
+#: waeup/sirp/browser/templates/studentsitelayout.pt:33
+msgid "Login"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:159
+msgid "You logged in."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:177
+msgid "You entered wrong credentials."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:191
+msgid "You have been logged out. Thanks for using WAeUP SIRP!"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:227
+msgid "Contact ${a}"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:233 waeup/sirp/browser/pages.py:510
+msgid "Send message now"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:252 waeup/sirp/browser/pages.py:271
+#: waeup/sirp/browser/pages.py:527
+msgid "Your message has been sent."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:262
+msgid "Send now"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:273
+msgid "A smtp server error occurred."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:386
+msgid "User account ${a} successfully deleted."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:417 waeup/sirp/browser/pages.py:419
+msgid "Add user"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:441
+msgid "User account ${a} successfully added."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:460
+msgid "Edit user ${a}"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:467 waeup/sirp/browser/pages.py:621
+#: waeup/sirp/browser/pages.py:720 waeup/sirp/browser/pages.py:1310
+#: waeup/sirp/browser/pages.py:1477 waeup/sirp/browser/pages.py:1530
+msgid "Save"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:491
+msgid "User settings have been saved."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:494 waeup/sirp/browser/pages.py:700
+#: waeup/sirp/browser/pages.py:727 waeup/sirp/browser/pages.py:1234
+#: waeup/sirp/browser/pages.py:1255 waeup/sirp/browser/pages.py:1282
+#: waeup/sirp/browser/pages.py:1310 waeup/sirp/browser/pages.py:1311
+#: waeup/sirp/browser/pages.py:1357 waeup/sirp/browser/pages.py:1398
+#: waeup/sirp/browser/pages.py:1477 waeup/sirp/browser/pages.py:1478
+#: waeup/sirp/browser/pages.py:1480 waeup/sirp/browser/pages.py:1558
+msgid "Cancel"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:508
+msgid "Send message to ${a}"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:537
+msgid "My Preferences"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:550
+msgid "My Roles"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:581
+msgid "Search Academic Section"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:607
+msgid "View portal configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:620
+msgid "Edit portal configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:621 waeup/sirp/browser/pages.py:672
+msgid "Update plugins"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:623 waeup/sirp/browser/pages.py:653
+#: waeup/sirp/browser/pages.py:684
+msgid "Add session configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:624 waeup/sirp/browser/pages.py:667
+#: waeup/sirp/browser/pages.py:1234 waeup/sirp/browser/pages.py:1245
+#: waeup/sirp/browser/pages.py:1311 waeup/sirp/browser/pages.py:1346
+msgid "Remove selected"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:650 waeup/sirp/browser/pages.py:723
+msgid "Settings have been saved."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:664
+msgid "Session ${a} Configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:675
+msgid "Plugins were updated. See log file for details."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:688
+msgid "Add Session Configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:695
+msgid "The session chosen already exists."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:717
+msgid "Edit academic session ${a} configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:747
+msgid "Upload file"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:793 waeup/sirp/browser/pages.py:822
+#: waeup/sirp/browser/pages.py:939 waeup/sirp/browser/pages.py:1042
+msgid "Process CSV file"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:806 waeup/sirp/browser/pages.py:904
+#: waeup/sirp/browser/pages.py:1018
+msgid "Import aborted."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:83
+msgid "No local role selected."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:883
+msgid "Double headers: each column name may only appear once. "
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:891
+msgid "Replace imported file!"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:916
+msgid "Update mode only!"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:997
+msgid "Edit headers or replace imported file!"
 msgstr ""
 
@@ -202,9 +544,4 @@
 msgstr ""
 
-#: waeup/sirp/browser/templates/staffsitelayout.pt:28
-#: waeup/sirp/browser/templates/studentsitelayout.pt:33
-msgid "Login"
-msgstr ""
-
 #: waeup/sirp/browser/templates/staffsitelayout.pt:34
 #: waeup/sirp/browser/templates/studentsitelayout.pt:39
@@ -217,13 +554,9 @@
 msgstr ""
 
-#: waeup/sirp/browser/viewlets.py:682
-msgid "Academics"
-msgstr ""
-
-#: waeup/sirp/browser/viewlets.py:697
+#: waeup/sirp/browser/viewlets.py:696
 msgid "Enquiries"
 msgstr ""
 
-#: waeup/sirp/hostels/browser.py:68
+#: waeup/sirp/hostels/browser.py:67
 msgid "Hostels"
 msgstr ""
@@ -274,134 +607,168 @@
 msgstr ""
 
-#: waeup/sirp/students/viewlets.py:467
-msgid "Students"
+#: waeup/sirp/students/vocabularies.py:135
+msgid "Male"
+msgstr ""
+
+#: waeup/sirp/students/vocabularies.py:137
+msgid "Female"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/students/vocabularies.py:77
+msgid "Error: level id ${value} out of range"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/students/vocabularies.py:88
+msgid "${title} 2nd spillover"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/students/vocabularies.py:91
+msgid "${title} 3rd spillover"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/students/vocabularies.py:94
+msgid "${title} 1st spillover"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/students/vocabularies.py:96
+msgid "${title} on 1st probation"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/students/vocabularies.py:98
+msgid "${title} on 2nd probation"
+msgstr ""
+
+#: waeup/sirp/students/workflow.py:107
+msgid "Reset to returning"
 msgstr ""
 
 #: waeup/sirp/students/workflow.py:108
-msgid "Reset to returning"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:109
 msgid "Student record reset to 'returning'"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:114
+msgid "Register courses"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:115
-msgid "Register courses"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:116
 msgid "Courses registered"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:121 waeup/sirp/students/workflow.py:135
+msgid "Reset to paid"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:122 waeup/sirp/students/workflow.py:136
-msgid "Reset to paid"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:123 waeup/sirp/students/workflow.py:137
 msgid "Student record reset to 'paid'"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:128
+msgid "Validate courses"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:129
-msgid "Validate courses"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:130
 msgid "Courses validated"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:142
+msgid "Return"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:143
-msgid "Return"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:144
 msgid "Returned"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:149
+msgid "Reset to validated"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:150
-msgid "Reset to validated"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:151
 msgid "Student record reset to 'validated'"
 msgstr ""
 
-#: waeup/sirp/students/workflow.py:23
+#: waeup/sirp/students/workflow.py:22
 msgid "Create student"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:30
+msgid "Admit student"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:31
-msgid "Admit student"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:32
 msgid "Student admitted"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:37
+msgid "Reset student"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:38
-msgid "Reset student"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:39
 msgid "Student record reset"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:44
+msgid "Start clearance"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:45
-msgid "Start clearance"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:46
 msgid "Clearance started"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:51
+msgid "Reset to admitted"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:52
-msgid "Reset to admitted"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:53
 msgid "Student record reset to 'admitted'"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:58
+msgid "Request clearance"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:59
-msgid "Request clearance"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:60
 msgid "Clearance requested"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:65 waeup/sirp/students/workflow.py:79
+msgid "Reset to clearance"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:66 waeup/sirp/students/workflow.py:80
-msgid "Reset to clearance"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:67 waeup/sirp/students/workflow.py:81
 msgid "Student record reset to 'clearance'"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:72
+msgid "Clear student"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:73
-msgid "Clear student"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:74
 msgid "Cleared"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:86 waeup/sirp/students/workflow.py:100
+msgid "Pay school fee"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:87 waeup/sirp/students/workflow.py:101
-msgid "Pay school fee"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:88 waeup/sirp/students/workflow.py:102
 msgid "School fee paid"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:93
+msgid "Reset to cleared"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:94
-msgid "Reset to cleared"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:95
 msgid "Student record reset to 'cleared'"
 msgstr ""
 
 #. Default: "Name of faculty"
-#: waeup/sirp/university/interfaces.py:46
+#: waeup/sirp/university/interfaces.py:45
 msgid "name_of_faculty"
 msgstr ""
Index: main/waeup.sirp/trunk/src/waeup/sirp/locales/ha/LC_MESSAGES/waeup.sirp.po
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/locales/ha/LC_MESSAGES/waeup.sirp.po	(revision 7699)
+++ main/waeup.sirp/trunk/src/waeup/sirp/locales/ha/LC_MESSAGES/waeup.sirp.po	(revision 7700)
@@ -15,5 +15,5 @@
 msgstr ""
 "Project-Id-Version: WAeUP.SIRP\n"
-"POT-Creation-Date: Thu Feb 23 13:38:29 2012\n"
+"POT-Creation-Date: Fri Feb 24 23:24:12 2012\n"
 "PO-Revision-Date: 2012-02-22 11:28+0100\n"
 "Last-Translator: Henrik Bettermann <henrik@waeup.org>\n"
@@ -36,5 +36,5 @@
 msgstr ""
 
-#: waeup/sirp/accesscodes/workflow.py:35 waeup/sirp/applicants/workflow.py:39
+#: waeup/sirp/accesscodes/workflow.py:35 waeup/sirp/applicants/workflow.py:37
 msgid "initialized"
 msgstr ""
@@ -70,105 +70,447 @@
 msgstr ""
 
-#: waeup/sirp/applicants/viewlets.py:45
+#: waeup/sirp/applicants/viewlets.py:44
 msgid "Applicants"
 msgstr ""
 
-#: waeup/sirp/applicants/viewlets.py:58
+#: waeup/sirp/applicants/viewlets.py:57
 msgid "Application"
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:101
+#: waeup/sirp/applicants/workflow.py:100 waeup/sirp/students/workflow.py:25
+msgid "Student record created"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:106 waeup/sirp/applicants/workflow.py:113
+#: waeup/sirp/applicants/workflow.py:120 waeup/sirp/applicants/workflow.py:127
+msgid "Reset application to started"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:107 waeup/sirp/applicants/workflow.py:114
+#: waeup/sirp/applicants/workflow.py:121 waeup/sirp/applicants/workflow.py:128
+#: waeup/sirp/applicants/workflow.py:134
+msgid "Application reset"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:133
+msgid "Reset application to paid"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:38
+msgid "started"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:39
+msgid "paid"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:40
+msgid "submitted"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:41 waeup/sirp/interfaces.py:69
+msgid "admitted"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:42
+msgid "not admitted"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:43 waeup/sirp/interfaces.py:68
+msgid "created"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:49
+msgid "Initialize application"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:52
+msgid "Application initialized"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:57
+msgid "Start application"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:58
+msgid "Application started"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:64
+msgid "Pay acceptance fee"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:65
+msgid "Fee paid"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:71
+msgid "Submit application"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:72
+msgid "Application submitted"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:78
+msgid "Admit applicant"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:79
+msgid "Applicant admitted"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:85 waeup/sirp/applicants/workflow.py:92
+msgid "Refuse application"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:86 waeup/sirp/applicants/workflow.py:93
+msgid "Application refused"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:99
 msgid "Create student record"
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:102 waeup/sirp/students/workflow.py:26
-msgid "Student record created"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:108 waeup/sirp/applicants/workflow.py:115
-#: waeup/sirp/applicants/workflow.py:122 waeup/sirp/applicants/workflow.py:129
-msgid "Reset application to started"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:109 waeup/sirp/applicants/workflow.py:116
-#: waeup/sirp/applicants/workflow.py:123 waeup/sirp/applicants/workflow.py:130
-#: waeup/sirp/applicants/workflow.py:136
-msgid "Application reset"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:135
-msgid "Reset application to paid"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:40
-msgid "started"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:41
-msgid "paid"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:42
-msgid "submitted"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:43 waeup/sirp/interfaces.py:69
-msgid "admitted"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:44
-msgid "not admitted"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:45 waeup/sirp/interfaces.py:68
-msgid "created"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:51
-msgid "Initialize application"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:54
-msgid "Application initialized"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:59
-msgid "Start application"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:60
-msgid "Application started"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:66
-msgid "Pay acceptance fee"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:67
-msgid "Fee paid"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:73
-msgid "Submit application"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:74
-msgid "Application submitted"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:80
-msgid "Admit applicant"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:81
-msgid "Applicant admitted"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:87 waeup/sirp/applicants/workflow.py:94
-msgid "Refuse application"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:88 waeup/sirp/applicants/workflow.py:95
-msgid "Application refused"
+#: waeup/sirp/browser/breadcrumbs.py:104
+msgid "Portal Settings"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:116 waeup/sirp/browser/viewlets.py:681
+msgid "Academics"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:123 waeup/sirp/browser/pages.py:302
+msgid "Administration"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:130
+msgid "Portal Configuration"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:148 waeup/sirp/browser/pages.py:379
+msgid "Portal Users"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:155 waeup/sirp/browser/pages.py:740
+#: waeup/sirp/browser/pages.py:1117
+msgid "Data Center"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:90
+msgid "Home"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:103
+msgid "Local role successfully removed: ${a}"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:1087
+msgid "Processing of ${a} rows failed."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:1089
+msgid "Successfully processed ${a} rows."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1097
+msgid "Show logfiles"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:113
+msgid "No item selected."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1139
+msgid "Edit data center settings"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1156
+msgid "File already existed (not copied):"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1158
+msgid "Given storage path cannot be used."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1159
+msgid "Error:"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1162
+msgid "New storage path succefully set."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1222
+msgid "Academic Section"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1234 waeup/sirp/browser/pages.py:1250
+#: waeup/sirp/browser/pages.py:1267 waeup/sirp/browser/pages.py:1271
+msgid "Add faculty"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1235
+msgid "Faculties"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1239
+msgid "Manage academic section"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1278
+msgid "The faculty code chosen already exists."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1299 waeup/sirp/browser/pages.py:1309
+msgid "Departments"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1311 waeup/sirp/browser/pages.py:1362
+#: waeup/sirp/browser/pages.py:1381 waeup/sirp/browser/pages.py:1385
+msgid "Add department"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1312 waeup/sirp/browser/pages.py:1371
+#: waeup/sirp/browser/pages.py:1481 waeup/sirp/browser/pages.py:1567
+msgid "Remove selected local roles"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1313 waeup/sirp/browser/pages.py:1367
+#: waeup/sirp/browser/pages.py:1482 waeup/sirp/browser/pages.py:1563
+msgid "Add local role"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1319
+msgid "Manage faculty"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:134
+msgid "Successfully removed: ${a}"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1354
+msgid "Form has been saved."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1392
+msgid "The code chosen already exists in this faculty."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:1395
+msgid "Department ${a} added."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1412
+msgid "Courses and Certificates"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1442 waeup/sirp/browser/pages.py:1461
+#: waeup/sirp/students/viewlets.py:466
+msgid "Students"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1478 waeup/sirp/browser/pages.py:1536
+msgid "Remove selected courses"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1478 waeup/sirp/browser/pages.py:1548
+msgid "Add course"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1479 waeup/sirp/browser/pages.py:1542
+msgid "Remove selected certificates"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1479 waeup/sirp/browser/pages.py:1553
+msgid "Add certificate"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1488
+msgid "Manage department"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:152
+#: waeup/sirp/browser/templates/staffsitelayout.pt:28
+#: waeup/sirp/browser/templates/studentsitelayout.pt:33
+msgid "Login"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:159
+msgid "You logged in."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:177
+msgid "You entered wrong credentials."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:191
+msgid "You have been logged out. Thanks for using WAeUP SIRP!"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:227
+msgid "Contact ${a}"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:233 waeup/sirp/browser/pages.py:510
+msgid "Send message now"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:252 waeup/sirp/browser/pages.py:271
+#: waeup/sirp/browser/pages.py:527
+msgid "Your message has been sent."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:262
+msgid "Send now"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:273
+msgid "A smtp server error occurred."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:386
+msgid "User account ${a} successfully deleted."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:417 waeup/sirp/browser/pages.py:419
+msgid "Add user"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:441
+msgid "User account ${a} successfully added."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:460
+msgid "Edit user ${a}"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:467 waeup/sirp/browser/pages.py:621
+#: waeup/sirp/browser/pages.py:720 waeup/sirp/browser/pages.py:1310
+#: waeup/sirp/browser/pages.py:1477 waeup/sirp/browser/pages.py:1530
+msgid "Save"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:491
+msgid "User settings have been saved."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:494 waeup/sirp/browser/pages.py:700
+#: waeup/sirp/browser/pages.py:727 waeup/sirp/browser/pages.py:1234
+#: waeup/sirp/browser/pages.py:1255 waeup/sirp/browser/pages.py:1282
+#: waeup/sirp/browser/pages.py:1310 waeup/sirp/browser/pages.py:1311
+#: waeup/sirp/browser/pages.py:1357 waeup/sirp/browser/pages.py:1398
+#: waeup/sirp/browser/pages.py:1477 waeup/sirp/browser/pages.py:1478
+#: waeup/sirp/browser/pages.py:1480 waeup/sirp/browser/pages.py:1558
+msgid "Cancel"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:508
+msgid "Send message to ${a}"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:537
+msgid "My Preferences"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:550
+msgid "My Roles"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:581
+msgid "Search Academic Section"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:607
+msgid "View portal configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:620
+msgid "Edit portal configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:621 waeup/sirp/browser/pages.py:672
+msgid "Update plugins"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:623 waeup/sirp/browser/pages.py:653
+#: waeup/sirp/browser/pages.py:684
+msgid "Add session configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:624 waeup/sirp/browser/pages.py:667
+#: waeup/sirp/browser/pages.py:1234 waeup/sirp/browser/pages.py:1245
+#: waeup/sirp/browser/pages.py:1311 waeup/sirp/browser/pages.py:1346
+msgid "Remove selected"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:650 waeup/sirp/browser/pages.py:723
+msgid "Settings have been saved."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:664
+msgid "Session ${a} Configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:675
+msgid "Plugins were updated. See log file for details."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:688
+msgid "Add Session Configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:695
+msgid "The session chosen already exists."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:717
+msgid "Edit academic session ${a} configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:747
+msgid "Upload file"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:793 waeup/sirp/browser/pages.py:822
+#: waeup/sirp/browser/pages.py:939 waeup/sirp/browser/pages.py:1042
+msgid "Process CSV file"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:806 waeup/sirp/browser/pages.py:904
+#: waeup/sirp/browser/pages.py:1018
+msgid "Import aborted."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:83
+msgid "No local role selected."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:883
+msgid "Double headers: each column name may only appear once. "
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:891
+msgid "Replace imported file!"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:916
+msgid "Update mode only!"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:997
+msgid "Edit headers or replace imported file!"
 msgstr ""
 
@@ -202,9 +544,4 @@
 msgstr ""
 
-#: waeup/sirp/browser/templates/staffsitelayout.pt:28
-#: waeup/sirp/browser/templates/studentsitelayout.pt:33
-msgid "Login"
-msgstr ""
-
 #: waeup/sirp/browser/templates/staffsitelayout.pt:34
 #: waeup/sirp/browser/templates/studentsitelayout.pt:39
@@ -217,13 +554,9 @@
 msgstr ""
 
-#: waeup/sirp/browser/viewlets.py:682
-msgid "Academics"
-msgstr ""
-
-#: waeup/sirp/browser/viewlets.py:697
+#: waeup/sirp/browser/viewlets.py:696
 msgid "Enquiries"
 msgstr ""
 
-#: waeup/sirp/hostels/browser.py:68
+#: waeup/sirp/hostels/browser.py:67
 msgid "Hostels"
 msgstr ""
@@ -274,134 +607,168 @@
 msgstr ""
 
-#: waeup/sirp/students/viewlets.py:467
-msgid "Students"
+#: waeup/sirp/students/vocabularies.py:135
+msgid "Male"
+msgstr ""
+
+#: waeup/sirp/students/vocabularies.py:137
+msgid "Female"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/students/vocabularies.py:77
+msgid "Error: level id ${value} out of range"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/students/vocabularies.py:88
+msgid "${title} 2nd spillover"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/students/vocabularies.py:91
+msgid "${title} 3rd spillover"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/students/vocabularies.py:94
+msgid "${title} 1st spillover"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/students/vocabularies.py:96
+msgid "${title} on 1st probation"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/students/vocabularies.py:98
+msgid "${title} on 2nd probation"
+msgstr ""
+
+#: waeup/sirp/students/workflow.py:107
+msgid "Reset to returning"
 msgstr ""
 
 #: waeup/sirp/students/workflow.py:108
-msgid "Reset to returning"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:109
 msgid "Student record reset to 'returning'"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:114
+msgid "Register courses"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:115
-msgid "Register courses"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:116
 msgid "Courses registered"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:121 waeup/sirp/students/workflow.py:135
+msgid "Reset to paid"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:122 waeup/sirp/students/workflow.py:136
-msgid "Reset to paid"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:123 waeup/sirp/students/workflow.py:137
 msgid "Student record reset to 'paid'"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:128
+msgid "Validate courses"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:129
-msgid "Validate courses"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:130
 msgid "Courses validated"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:142
+msgid "Return"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:143
-msgid "Return"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:144
 msgid "Returned"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:149
+msgid "Reset to validated"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:150
-msgid "Reset to validated"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:151
 msgid "Student record reset to 'validated'"
 msgstr ""
 
-#: waeup/sirp/students/workflow.py:23
+#: waeup/sirp/students/workflow.py:22
 msgid "Create student"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:30
+msgid "Admit student"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:31
-msgid "Admit student"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:32
 msgid "Student admitted"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:37
+msgid "Reset student"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:38
-msgid "Reset student"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:39
 msgid "Student record reset"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:44
+msgid "Start clearance"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:45
-msgid "Start clearance"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:46
 msgid "Clearance started"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:51
+msgid "Reset to admitted"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:52
-msgid "Reset to admitted"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:53
 msgid "Student record reset to 'admitted'"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:58
+msgid "Request clearance"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:59
-msgid "Request clearance"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:60
 msgid "Clearance requested"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:65 waeup/sirp/students/workflow.py:79
+msgid "Reset to clearance"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:66 waeup/sirp/students/workflow.py:80
-msgid "Reset to clearance"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:67 waeup/sirp/students/workflow.py:81
 msgid "Student record reset to 'clearance'"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:72
+msgid "Clear student"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:73
-msgid "Clear student"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:74
 msgid "Cleared"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:86 waeup/sirp/students/workflow.py:100
+msgid "Pay school fee"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:87 waeup/sirp/students/workflow.py:101
-msgid "Pay school fee"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:88 waeup/sirp/students/workflow.py:102
 msgid "School fee paid"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:93
+msgid "Reset to cleared"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:94
-msgid "Reset to cleared"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:95
 msgid "Student record reset to 'cleared'"
 msgstr ""
 
 #. Default: "Name of faculty"
-#: waeup/sirp/university/interfaces.py:46
+#: waeup/sirp/university/interfaces.py:45
 msgid "name_of_faculty"
 msgstr ""
Index: main/waeup.sirp/trunk/src/waeup/sirp/locales/waeup.sirp.pot
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/locales/waeup.sirp.pot	(revision 7699)
+++ main/waeup.sirp/trunk/src/waeup/sirp/locales/waeup.sirp.pot	(revision 7700)
@@ -15,5 +15,5 @@
 msgstr ""
 "Project-Id-Version: Development/Unknown\n"
-"POT-Creation-Date: Thu Feb 23 13:38:29 2012\n"
+"POT-Creation-Date: Fri Feb 24 23:24:12 2012\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
@@ -33,5 +33,5 @@
 
 #: waeup/sirp/accesscodes/workflow.py:35
-#: waeup/sirp/applicants/workflow.py:39
+#: waeup/sirp/applicants/workflow.py:37
 msgid "initialized"
 msgstr ""
@@ -68,114 +68,496 @@
 msgstr ""
 
-#: waeup/sirp/applicants/viewlets.py:45
+#: waeup/sirp/applicants/viewlets.py:44
 msgid "Applicants"
 msgstr ""
 
-#: waeup/sirp/applicants/viewlets.py:58
+#: waeup/sirp/applicants/viewlets.py:57
 msgid "Application"
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:101
-msgid "Create student record"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:102
-#: waeup/sirp/students/workflow.py:26
+#: waeup/sirp/applicants/workflow.py:100
+#: waeup/sirp/students/workflow.py:25
 msgid "Student record created"
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:108
-#: waeup/sirp/applicants/workflow.py:115
-#: waeup/sirp/applicants/workflow.py:122
-#: waeup/sirp/applicants/workflow.py:129
+#: waeup/sirp/applicants/workflow.py:106
+#: waeup/sirp/applicants/workflow.py:113
+#: waeup/sirp/applicants/workflow.py:120
+#: waeup/sirp/applicants/workflow.py:127
 msgid "Reset application to started"
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:109
-#: waeup/sirp/applicants/workflow.py:116
-#: waeup/sirp/applicants/workflow.py:123
-#: waeup/sirp/applicants/workflow.py:130
-#: waeup/sirp/applicants/workflow.py:136
+#: waeup/sirp/applicants/workflow.py:107
+#: waeup/sirp/applicants/workflow.py:114
+#: waeup/sirp/applicants/workflow.py:121
+#: waeup/sirp/applicants/workflow.py:128
+#: waeup/sirp/applicants/workflow.py:134
 msgid "Application reset"
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:135
+#: waeup/sirp/applicants/workflow.py:133
 msgid "Reset application to paid"
 msgstr ""
 
+#: waeup/sirp/applicants/workflow.py:38
+msgid "started"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:39
+msgid "paid"
+msgstr ""
+
 #: waeup/sirp/applicants/workflow.py:40
-msgid "started"
+msgid "submitted"
 msgstr ""
 
 #: waeup/sirp/applicants/workflow.py:41
-msgid "paid"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:42
-msgid "submitted"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:43
 #: waeup/sirp/interfaces.py:69
 msgid "admitted"
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:44
+#: waeup/sirp/applicants/workflow.py:42
 msgid "not admitted"
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:45
+#: waeup/sirp/applicants/workflow.py:43
 #: waeup/sirp/interfaces.py:68
 msgid "created"
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:51
+#: waeup/sirp/applicants/workflow.py:49
 msgid "Initialize application"
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:54
+#: waeup/sirp/applicants/workflow.py:52
 msgid "Application initialized"
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:59
+#: waeup/sirp/applicants/workflow.py:57
 msgid "Start application"
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:60
+#: waeup/sirp/applicants/workflow.py:58
 msgid "Application started"
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:66
+#: waeup/sirp/applicants/workflow.py:64
 msgid "Pay acceptance fee"
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:67
+#: waeup/sirp/applicants/workflow.py:65
 msgid "Fee paid"
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:73
+#: waeup/sirp/applicants/workflow.py:71
 msgid "Submit application"
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:74
+#: waeup/sirp/applicants/workflow.py:72
 msgid "Application submitted"
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:80
+#: waeup/sirp/applicants/workflow.py:78
 msgid "Admit applicant"
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:81
+#: waeup/sirp/applicants/workflow.py:79
 msgid "Applicant admitted"
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:87
-#: waeup/sirp/applicants/workflow.py:94
+#: waeup/sirp/applicants/workflow.py:85
+#: waeup/sirp/applicants/workflow.py:92
 msgid "Refuse application"
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:88
-#: waeup/sirp/applicants/workflow.py:95
+#: waeup/sirp/applicants/workflow.py:86
+#: waeup/sirp/applicants/workflow.py:93
 msgid "Application refused"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:99
+msgid "Create student record"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:104
+msgid "Portal Settings"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:116
+#: waeup/sirp/browser/viewlets.py:681
+msgid "Academics"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:123
+#: waeup/sirp/browser/pages.py:302
+msgid "Administration"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:130
+msgid "Portal Configuration"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:148
+#: waeup/sirp/browser/pages.py:379
+msgid "Portal Users"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:155
+#: waeup/sirp/browser/pages.py:740
+#: waeup/sirp/browser/pages.py:1117
+msgid "Data Center"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:90
+msgid "Home"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:103
+#. Default: ""
+msgid "Local role successfully removed: ${a}"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1087
+#. Default: ""
+msgid "Processing of ${a} rows failed."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1089
+#. Default: ""
+msgid "Successfully processed ${a} rows."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1097
+msgid "Show logfiles"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:113
+msgid "No item selected."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1139
+msgid "Edit data center settings"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1156
+msgid "File already existed (not copied):"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1158
+msgid "Given storage path cannot be used."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1159
+msgid "Error:"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1162
+msgid "New storage path succefully set."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1222
+msgid "Academic Section"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1234
+#: waeup/sirp/browser/pages.py:1250
+#: waeup/sirp/browser/pages.py:1267
+#: waeup/sirp/browser/pages.py:1271
+msgid "Add faculty"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1235
+msgid "Faculties"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1239
+msgid "Manage academic section"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1278
+msgid "The faculty code chosen already exists."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1299
+#: waeup/sirp/browser/pages.py:1309
+msgid "Departments"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1311
+#: waeup/sirp/browser/pages.py:1362
+#: waeup/sirp/browser/pages.py:1381
+#: waeup/sirp/browser/pages.py:1385
+msgid "Add department"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1312
+#: waeup/sirp/browser/pages.py:1371
+#: waeup/sirp/browser/pages.py:1481
+#: waeup/sirp/browser/pages.py:1567
+msgid "Remove selected local roles"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1313
+#: waeup/sirp/browser/pages.py:1367
+#: waeup/sirp/browser/pages.py:1482
+#: waeup/sirp/browser/pages.py:1563
+msgid "Add local role"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1319
+msgid "Manage faculty"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:134
+#. Default: ""
+msgid "Successfully removed: ${a}"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1354
+msgid "Form has been saved."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1392
+msgid "The code chosen already exists in this faculty."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1395
+#. Default: ""
+msgid "Department ${a} added."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1412
+msgid "Courses and Certificates"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1442
+#: waeup/sirp/browser/pages.py:1461
+#: waeup/sirp/students/viewlets.py:466
+msgid "Students"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1478
+#: waeup/sirp/browser/pages.py:1536
+msgid "Remove selected courses"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1478
+#: waeup/sirp/browser/pages.py:1548
+msgid "Add course"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1479
+#: waeup/sirp/browser/pages.py:1542
+msgid "Remove selected certificates"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1479
+#: waeup/sirp/browser/pages.py:1553
+msgid "Add certificate"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1488
+msgid "Manage department"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:152
+#: waeup/sirp/browser/templates/staffsitelayout.pt:28
+#: waeup/sirp/browser/templates/studentsitelayout.pt:33
+msgid "Login"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:159
+msgid "You logged in."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:177
+msgid "You entered wrong credentials."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:191
+msgid "You have been logged out. Thanks for using WAeUP SIRP!"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:227
+#. Default: ""
+msgid "Contact ${a}"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:233
+#: waeup/sirp/browser/pages.py:510
+msgid "Send message now"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:252
+#: waeup/sirp/browser/pages.py:271
+#: waeup/sirp/browser/pages.py:527
+msgid "Your message has been sent."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:262
+msgid "Send now"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:273
+msgid "A smtp server error occurred."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:386
+#. Default: ""
+msgid "User account ${a} successfully deleted."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:417
+#: waeup/sirp/browser/pages.py:419
+msgid "Add user"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:441
+#. Default: ""
+msgid "User account ${a} successfully added."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:460
+#. Default: ""
+msgid "Edit user ${a}"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:467
+#: waeup/sirp/browser/pages.py:621
+#: waeup/sirp/browser/pages.py:720
+#: waeup/sirp/browser/pages.py:1310
+#: waeup/sirp/browser/pages.py:1477
+#: waeup/sirp/browser/pages.py:1530
+msgid "Save"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:491
+msgid "User settings have been saved."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:494
+#: waeup/sirp/browser/pages.py:700
+#: waeup/sirp/browser/pages.py:727
+#: waeup/sirp/browser/pages.py:1234
+#: waeup/sirp/browser/pages.py:1255
+#: waeup/sirp/browser/pages.py:1282
+#: waeup/sirp/browser/pages.py:1310
+#: waeup/sirp/browser/pages.py:1311
+#: waeup/sirp/browser/pages.py:1357
+#: waeup/sirp/browser/pages.py:1398
+#: waeup/sirp/browser/pages.py:1477
+#: waeup/sirp/browser/pages.py:1478
+#: waeup/sirp/browser/pages.py:1480
+#: waeup/sirp/browser/pages.py:1558
+msgid "Cancel"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:508
+#. Default: ""
+msgid "Send message to ${a}"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:537
+msgid "My Preferences"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:550
+msgid "My Roles"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:581
+msgid "Search Academic Section"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:607
+msgid "View portal configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:620
+msgid "Edit portal configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:621
+#: waeup/sirp/browser/pages.py:672
+msgid "Update plugins"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:623
+#: waeup/sirp/browser/pages.py:653
+#: waeup/sirp/browser/pages.py:684
+msgid "Add session configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:624
+#: waeup/sirp/browser/pages.py:667
+#: waeup/sirp/browser/pages.py:1234
+#: waeup/sirp/browser/pages.py:1245
+#: waeup/sirp/browser/pages.py:1311
+#: waeup/sirp/browser/pages.py:1346
+msgid "Remove selected"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:650
+#: waeup/sirp/browser/pages.py:723
+msgid "Settings have been saved."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:664
+#. Default: ""
+msgid "Session ${a} Configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:675
+msgid "Plugins were updated. See log file for details."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:688
+msgid "Add Session Configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:695
+msgid "The session chosen already exists."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:717
+#. Default: ""
+msgid "Edit academic session ${a} configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:747
+msgid "Upload file"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:793
+#: waeup/sirp/browser/pages.py:822
+#: waeup/sirp/browser/pages.py:939
+#: waeup/sirp/browser/pages.py:1042
+msgid "Process CSV file"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:806
+#: waeup/sirp/browser/pages.py:904
+#: waeup/sirp/browser/pages.py:1018
+msgid "Import aborted."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:83
+msgid "No local role selected."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:883
+msgid "Double headers: each column name may only appear once. "
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:891
+msgid "Replace imported file!"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:916
+msgid "Update mode only!"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:997
+msgid "Edit headers or replace imported file!"
 msgstr ""
 
@@ -209,9 +591,4 @@
 msgstr ""
 
-#: waeup/sirp/browser/templates/staffsitelayout.pt:28
-#: waeup/sirp/browser/templates/studentsitelayout.pt:33
-msgid "Login"
-msgstr ""
-
 #: waeup/sirp/browser/templates/staffsitelayout.pt:34
 #: waeup/sirp/browser/templates/studentsitelayout.pt:39
@@ -224,13 +601,9 @@
 msgstr ""
 
-#: waeup/sirp/browser/viewlets.py:682
-msgid "Academics"
-msgstr ""
-
-#: waeup/sirp/browser/viewlets.py:697
+#: waeup/sirp/browser/viewlets.py:696
 msgid "Enquiries"
 msgstr ""
 
-#: waeup/sirp/hostels/browser.py:68
+#: waeup/sirp/hostels/browser.py:67
 msgid "Hostels"
 msgstr ""
@@ -281,139 +654,173 @@
 msgstr ""
 
-#: waeup/sirp/students/viewlets.py:467
-msgid "Students"
+#: waeup/sirp/students/vocabularies.py:135
+msgid "Male"
+msgstr ""
+
+#: waeup/sirp/students/vocabularies.py:137
+msgid "Female"
+msgstr ""
+
+#: waeup/sirp/students/vocabularies.py:77
+#. Default: ""
+msgid "Error: level id ${value} out of range"
+msgstr ""
+
+#: waeup/sirp/students/vocabularies.py:88
+#. Default: ""
+msgid "${title} 2nd spillover"
+msgstr ""
+
+#: waeup/sirp/students/vocabularies.py:91
+#. Default: ""
+msgid "${title} 3rd spillover"
+msgstr ""
+
+#: waeup/sirp/students/vocabularies.py:94
+#. Default: ""
+msgid "${title} 1st spillover"
+msgstr ""
+
+#: waeup/sirp/students/vocabularies.py:96
+#. Default: ""
+msgid "${title} on 1st probation"
+msgstr ""
+
+#: waeup/sirp/students/vocabularies.py:98
+#. Default: ""
+msgid "${title} on 2nd probation"
+msgstr ""
+
+#: waeup/sirp/students/workflow.py:107
+msgid "Reset to returning"
 msgstr ""
 
 #: waeup/sirp/students/workflow.py:108
-msgid "Reset to returning"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:109
 msgid "Student record reset to 'returning'"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:114
+msgid "Register courses"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:115
-msgid "Register courses"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:116
 msgid "Courses registered"
+msgstr ""
+
+#: waeup/sirp/students/workflow.py:121
+#: waeup/sirp/students/workflow.py:135
+msgid "Reset to paid"
 msgstr ""
 
 #: waeup/sirp/students/workflow.py:122
 #: waeup/sirp/students/workflow.py:136
-msgid "Reset to paid"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:123
-#: waeup/sirp/students/workflow.py:137
 msgid "Student record reset to 'paid'"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:128
+msgid "Validate courses"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:129
-msgid "Validate courses"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:130
 msgid "Courses validated"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:142
+msgid "Return"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:143
-msgid "Return"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:144
 msgid "Returned"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:149
+msgid "Reset to validated"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:150
-msgid "Reset to validated"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:151
 msgid "Student record reset to 'validated'"
 msgstr ""
 
-#: waeup/sirp/students/workflow.py:23
+#: waeup/sirp/students/workflow.py:22
 msgid "Create student"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:30
+msgid "Admit student"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:31
-msgid "Admit student"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:32
 msgid "Student admitted"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:37
+msgid "Reset student"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:38
-msgid "Reset student"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:39
 msgid "Student record reset"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:44
+msgid "Start clearance"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:45
-msgid "Start clearance"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:46
 msgid "Clearance started"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:51
+msgid "Reset to admitted"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:52
-msgid "Reset to admitted"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:53
 msgid "Student record reset to 'admitted'"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:58
+msgid "Request clearance"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:59
-msgid "Request clearance"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:60
 msgid "Clearance requested"
+msgstr ""
+
+#: waeup/sirp/students/workflow.py:65
+#: waeup/sirp/students/workflow.py:79
+msgid "Reset to clearance"
 msgstr ""
 
 #: waeup/sirp/students/workflow.py:66
 #: waeup/sirp/students/workflow.py:80
-msgid "Reset to clearance"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:67
-#: waeup/sirp/students/workflow.py:81
 msgid "Student record reset to 'clearance'"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:72
+msgid "Clear student"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:73
-msgid "Clear student"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:74
 msgid "Cleared"
+msgstr ""
+
+#: waeup/sirp/students/workflow.py:86
+#: waeup/sirp/students/workflow.py:100
+msgid "Pay school fee"
 msgstr ""
 
 #: waeup/sirp/students/workflow.py:87
 #: waeup/sirp/students/workflow.py:101
-msgid "Pay school fee"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:88
-#: waeup/sirp/students/workflow.py:102
 msgid "School fee paid"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:93
+msgid "Reset to cleared"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:94
-msgid "Reset to cleared"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:95
 msgid "Student record reset to 'cleared'"
 msgstr ""
 
-#: waeup/sirp/university/interfaces.py:46
+#: waeup/sirp/university/interfaces.py:45
 #. Default: "Name of faculty"
 msgid "name_of_faculty"
Index: main/waeup.sirp/trunk/src/waeup/sirp/locales/yo/LC_MESSAGES/waeup.sirp.po
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/locales/yo/LC_MESSAGES/waeup.sirp.po	(revision 7699)
+++ main/waeup.sirp/trunk/src/waeup/sirp/locales/yo/LC_MESSAGES/waeup.sirp.po	(revision 7700)
@@ -15,5 +15,5 @@
 msgstr ""
 "Project-Id-Version: WAeUP.SIRP\n"
-"POT-Creation-Date: Thu Feb 23 13:38:29 2012\n"
+"POT-Creation-Date: Fri Feb 24 23:24:12 2012\n"
 "PO-Revision-Date: 2012-02-22 11:28+0100\n"
 "Last-Translator: Henrik Bettermann <henrik@waeup.org>\n"
@@ -36,5 +36,5 @@
 msgstr ""
 
-#: waeup/sirp/accesscodes/workflow.py:35 waeup/sirp/applicants/workflow.py:39
+#: waeup/sirp/accesscodes/workflow.py:35 waeup/sirp/applicants/workflow.py:37
 msgid "initialized"
 msgstr ""
@@ -70,105 +70,447 @@
 msgstr ""
 
-#: waeup/sirp/applicants/viewlets.py:45
+#: waeup/sirp/applicants/viewlets.py:44
 msgid "Applicants"
 msgstr ""
 
-#: waeup/sirp/applicants/viewlets.py:58
+#: waeup/sirp/applicants/viewlets.py:57
 msgid "Application"
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:101
+#: waeup/sirp/applicants/workflow.py:100 waeup/sirp/students/workflow.py:25
+msgid "Student record created"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:106 waeup/sirp/applicants/workflow.py:113
+#: waeup/sirp/applicants/workflow.py:120 waeup/sirp/applicants/workflow.py:127
+msgid "Reset application to started"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:107 waeup/sirp/applicants/workflow.py:114
+#: waeup/sirp/applicants/workflow.py:121 waeup/sirp/applicants/workflow.py:128
+#: waeup/sirp/applicants/workflow.py:134
+msgid "Application reset"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:133
+msgid "Reset application to paid"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:38
+msgid "started"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:39
+msgid "paid"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:40
+msgid "submitted"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:41 waeup/sirp/interfaces.py:69
+msgid "admitted"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:42
+msgid "not admitted"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:43 waeup/sirp/interfaces.py:68
+msgid "created"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:49
+msgid "Initialize application"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:52
+msgid "Application initialized"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:57
+msgid "Start application"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:58
+msgid "Application started"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:64
+msgid "Pay acceptance fee"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:65
+msgid "Fee paid"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:71
+msgid "Submit application"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:72
+msgid "Application submitted"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:78
+msgid "Admit applicant"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:79
+msgid "Applicant admitted"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:85 waeup/sirp/applicants/workflow.py:92
+msgid "Refuse application"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:86 waeup/sirp/applicants/workflow.py:93
+msgid "Application refused"
+msgstr ""
+
+#: waeup/sirp/applicants/workflow.py:99
 msgid "Create student record"
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:102 waeup/sirp/students/workflow.py:26
-msgid "Student record created"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:108 waeup/sirp/applicants/workflow.py:115
-#: waeup/sirp/applicants/workflow.py:122 waeup/sirp/applicants/workflow.py:129
-msgid "Reset application to started"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:109 waeup/sirp/applicants/workflow.py:116
-#: waeup/sirp/applicants/workflow.py:123 waeup/sirp/applicants/workflow.py:130
-#: waeup/sirp/applicants/workflow.py:136
-msgid "Application reset"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:135
-msgid "Reset application to paid"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:40
-msgid "started"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:41
-msgid "paid"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:42
-msgid "submitted"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:43 waeup/sirp/interfaces.py:69
-msgid "admitted"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:44
-msgid "not admitted"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:45 waeup/sirp/interfaces.py:68
-msgid "created"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:51
-msgid "Initialize application"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:54
-msgid "Application initialized"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:59
-msgid "Start application"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:60
-msgid "Application started"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:66
-msgid "Pay acceptance fee"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:67
-msgid "Fee paid"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:73
-msgid "Submit application"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:74
-msgid "Application submitted"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:80
-msgid "Admit applicant"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:81
-msgid "Applicant admitted"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:87 waeup/sirp/applicants/workflow.py:94
-msgid "Refuse application"
-msgstr ""
-
-#: waeup/sirp/applicants/workflow.py:88 waeup/sirp/applicants/workflow.py:95
-msgid "Application refused"
+#: waeup/sirp/browser/breadcrumbs.py:104
+msgid "Portal Settings"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:116 waeup/sirp/browser/viewlets.py:681
+msgid "Academics"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:123 waeup/sirp/browser/pages.py:302
+msgid "Administration"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:130
+msgid "Portal Configuration"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:148 waeup/sirp/browser/pages.py:379
+msgid "Portal Users"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:155 waeup/sirp/browser/pages.py:740
+#: waeup/sirp/browser/pages.py:1117
+msgid "Data Center"
+msgstr ""
+
+#: waeup/sirp/browser/breadcrumbs.py:90
+msgid "Home"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:103
+msgid "Local role successfully removed: ${a}"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:1087
+msgid "Processing of ${a} rows failed."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:1089
+msgid "Successfully processed ${a} rows."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1097
+msgid "Show logfiles"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:113
+msgid "No item selected."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1139
+msgid "Edit data center settings"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1156
+msgid "File already existed (not copied):"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1158
+msgid "Given storage path cannot be used."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1159
+msgid "Error:"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1162
+msgid "New storage path succefully set."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1222
+msgid "Academic Section"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1234 waeup/sirp/browser/pages.py:1250
+#: waeup/sirp/browser/pages.py:1267 waeup/sirp/browser/pages.py:1271
+msgid "Add faculty"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1235
+msgid "Faculties"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1239
+msgid "Manage academic section"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1278
+msgid "The faculty code chosen already exists."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1299 waeup/sirp/browser/pages.py:1309
+msgid "Departments"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1311 waeup/sirp/browser/pages.py:1362
+#: waeup/sirp/browser/pages.py:1381 waeup/sirp/browser/pages.py:1385
+msgid "Add department"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1312 waeup/sirp/browser/pages.py:1371
+#: waeup/sirp/browser/pages.py:1481 waeup/sirp/browser/pages.py:1567
+msgid "Remove selected local roles"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1313 waeup/sirp/browser/pages.py:1367
+#: waeup/sirp/browser/pages.py:1482 waeup/sirp/browser/pages.py:1563
+msgid "Add local role"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1319
+msgid "Manage faculty"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:134
+msgid "Successfully removed: ${a}"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1354
+msgid "Form has been saved."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1392
+msgid "The code chosen already exists in this faculty."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:1395
+msgid "Department ${a} added."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1412
+msgid "Courses and Certificates"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1442 waeup/sirp/browser/pages.py:1461
+#: waeup/sirp/students/viewlets.py:466
+msgid "Students"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1478 waeup/sirp/browser/pages.py:1536
+msgid "Remove selected courses"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1478 waeup/sirp/browser/pages.py:1548
+msgid "Add course"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1479 waeup/sirp/browser/pages.py:1542
+msgid "Remove selected certificates"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1479 waeup/sirp/browser/pages.py:1553
+msgid "Add certificate"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1488
+msgid "Manage department"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:152
+#: waeup/sirp/browser/templates/staffsitelayout.pt:28
+#: waeup/sirp/browser/templates/studentsitelayout.pt:33
+msgid "Login"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:159
+msgid "You logged in."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:177
+msgid "You entered wrong credentials."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:191
+msgid "You have been logged out. Thanks for using WAeUP SIRP!"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:227
+msgid "Contact ${a}"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:233 waeup/sirp/browser/pages.py:510
+msgid "Send message now"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:252 waeup/sirp/browser/pages.py:271
+#: waeup/sirp/browser/pages.py:527
+msgid "Your message has been sent."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:262
+msgid "Send now"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:273
+msgid "A smtp server error occurred."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:386
+msgid "User account ${a} successfully deleted."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:417 waeup/sirp/browser/pages.py:419
+msgid "Add user"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:441
+msgid "User account ${a} successfully added."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:460
+msgid "Edit user ${a}"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:467 waeup/sirp/browser/pages.py:621
+#: waeup/sirp/browser/pages.py:720 waeup/sirp/browser/pages.py:1310
+#: waeup/sirp/browser/pages.py:1477 waeup/sirp/browser/pages.py:1530
+msgid "Save"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:491
+msgid "User settings have been saved."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:494 waeup/sirp/browser/pages.py:700
+#: waeup/sirp/browser/pages.py:727 waeup/sirp/browser/pages.py:1234
+#: waeup/sirp/browser/pages.py:1255 waeup/sirp/browser/pages.py:1282
+#: waeup/sirp/browser/pages.py:1310 waeup/sirp/browser/pages.py:1311
+#: waeup/sirp/browser/pages.py:1357 waeup/sirp/browser/pages.py:1398
+#: waeup/sirp/browser/pages.py:1477 waeup/sirp/browser/pages.py:1478
+#: waeup/sirp/browser/pages.py:1480 waeup/sirp/browser/pages.py:1558
+msgid "Cancel"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:508
+msgid "Send message to ${a}"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:537
+msgid "My Preferences"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:550
+msgid "My Roles"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:581
+msgid "Search Academic Section"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:607
+msgid "View portal configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:620
+msgid "Edit portal configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:621 waeup/sirp/browser/pages.py:672
+msgid "Update plugins"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:623 waeup/sirp/browser/pages.py:653
+#: waeup/sirp/browser/pages.py:684
+msgid "Add session configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:624 waeup/sirp/browser/pages.py:667
+#: waeup/sirp/browser/pages.py:1234 waeup/sirp/browser/pages.py:1245
+#: waeup/sirp/browser/pages.py:1311 waeup/sirp/browser/pages.py:1346
+msgid "Remove selected"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:650 waeup/sirp/browser/pages.py:723
+msgid "Settings have been saved."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:664
+msgid "Session ${a} Configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:675
+msgid "Plugins were updated. See log file for details."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:688
+msgid "Add Session Configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:695
+msgid "The session chosen already exists."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:717
+msgid "Edit academic session ${a} configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:747
+msgid "Upload file"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:793 waeup/sirp/browser/pages.py:822
+#: waeup/sirp/browser/pages.py:939 waeup/sirp/browser/pages.py:1042
+msgid "Process CSV file"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:806 waeup/sirp/browser/pages.py:904
+#: waeup/sirp/browser/pages.py:1018
+msgid "Import aborted."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:83
+msgid "No local role selected."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:883
+msgid "Double headers: each column name may only appear once. "
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:891
+msgid "Replace imported file!"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:916
+msgid "Update mode only!"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:997
+msgid "Edit headers or replace imported file!"
 msgstr ""
 
@@ -202,9 +544,4 @@
 msgstr ""
 
-#: waeup/sirp/browser/templates/staffsitelayout.pt:28
-#: waeup/sirp/browser/templates/studentsitelayout.pt:33
-msgid "Login"
-msgstr ""
-
 #: waeup/sirp/browser/templates/staffsitelayout.pt:34
 #: waeup/sirp/browser/templates/studentsitelayout.pt:39
@@ -217,13 +554,9 @@
 msgstr ""
 
-#: waeup/sirp/browser/viewlets.py:682
-msgid "Academics"
-msgstr ""
-
-#: waeup/sirp/browser/viewlets.py:697
+#: waeup/sirp/browser/viewlets.py:696
 msgid "Enquiries"
 msgstr ""
 
-#: waeup/sirp/hostels/browser.py:68
+#: waeup/sirp/hostels/browser.py:67
 msgid "Hostels"
 msgstr ""
@@ -274,134 +607,168 @@
 msgstr ""
 
-#: waeup/sirp/students/viewlets.py:467
-msgid "Students"
+#: waeup/sirp/students/vocabularies.py:135
+msgid "Male"
+msgstr ""
+
+#: waeup/sirp/students/vocabularies.py:137
+msgid "Female"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/students/vocabularies.py:77
+msgid "Error: level id ${value} out of range"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/students/vocabularies.py:88
+msgid "${title} 2nd spillover"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/students/vocabularies.py:91
+msgid "${title} 3rd spillover"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/students/vocabularies.py:94
+msgid "${title} 1st spillover"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/students/vocabularies.py:96
+msgid "${title} on 1st probation"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/students/vocabularies.py:98
+msgid "${title} on 2nd probation"
+msgstr ""
+
+#: waeup/sirp/students/workflow.py:107
+msgid "Reset to returning"
 msgstr ""
 
 #: waeup/sirp/students/workflow.py:108
-msgid "Reset to returning"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:109
 msgid "Student record reset to 'returning'"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:114
+msgid "Register courses"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:115
-msgid "Register courses"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:116
 msgid "Courses registered"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:121 waeup/sirp/students/workflow.py:135
+msgid "Reset to paid"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:122 waeup/sirp/students/workflow.py:136
-msgid "Reset to paid"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:123 waeup/sirp/students/workflow.py:137
 msgid "Student record reset to 'paid'"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:128
+msgid "Validate courses"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:129
-msgid "Validate courses"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:130
 msgid "Courses validated"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:142
+msgid "Return"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:143
-msgid "Return"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:144
 msgid "Returned"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:149
+msgid "Reset to validated"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:150
-msgid "Reset to validated"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:151
 msgid "Student record reset to 'validated'"
 msgstr ""
 
-#: waeup/sirp/students/workflow.py:23
+#: waeup/sirp/students/workflow.py:22
 msgid "Create student"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:30
+msgid "Admit student"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:31
-msgid "Admit student"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:32
 msgid "Student admitted"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:37
+msgid "Reset student"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:38
-msgid "Reset student"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:39
 msgid "Student record reset"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:44
+msgid "Start clearance"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:45
-msgid "Start clearance"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:46
 msgid "Clearance started"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:51
+msgid "Reset to admitted"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:52
-msgid "Reset to admitted"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:53
 msgid "Student record reset to 'admitted'"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:58
+msgid "Request clearance"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:59
-msgid "Request clearance"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:60
 msgid "Clearance requested"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:65 waeup/sirp/students/workflow.py:79
+msgid "Reset to clearance"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:66 waeup/sirp/students/workflow.py:80
-msgid "Reset to clearance"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:67 waeup/sirp/students/workflow.py:81
 msgid "Student record reset to 'clearance'"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:72
+msgid "Clear student"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:73
-msgid "Clear student"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:74
 msgid "Cleared"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:86 waeup/sirp/students/workflow.py:100
+msgid "Pay school fee"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:87 waeup/sirp/students/workflow.py:101
-msgid "Pay school fee"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:88 waeup/sirp/students/workflow.py:102
 msgid "School fee paid"
 msgstr ""
 
+#: waeup/sirp/students/workflow.py:93
+msgid "Reset to cleared"
+msgstr ""
+
 #: waeup/sirp/students/workflow.py:94
-msgid "Reset to cleared"
-msgstr ""
-
-#: waeup/sirp/students/workflow.py:95
 msgid "Student record reset to 'cleared'"
 msgstr ""
 
 #. Default: "Name of faculty"
-#: waeup/sirp/university/interfaces.py:46
+#: waeup/sirp/university/interfaces.py:45
 msgid "name_of_faculty"
 msgstr ""
