Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/batchprocessing.txt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/batchprocessing.txt	(revision 7704)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/batchprocessing.txt	(revision 7705)
@@ -113,5 +113,5 @@
 
     >>> modeselect.getControl(value='create').selected = True
-    >>> browser.getControl('Proceed to step 3...').click()
+    >>> browser.getControl('Proceed to step 3').click()
 
 Step 3: Fix headerlines
@@ -127,8 +127,8 @@
 The submit button is enabled:
 
-    >>> browser.getControl('Perform import...').disabled
+    >>> browser.getControl('Perform import').disabled
     False
 
-    >>> browser.getControl('Perform import...').click()
+    >>> browser.getControl('Perform import').click()
 
 Step 4: See import results
@@ -197,5 +197,5 @@
     >>> modeselect = browser.getControl(name='mode')
     >>> modeselect.getControl(value='create').selected = True
-    >>> browser.getControl('Proceed to step 3...').click()
+    >>> browser.getControl('Proceed to step 3').click()
 
 Step 3: Fix headerlines
@@ -211,8 +211,8 @@
 The submit button is enabled:
 
-    >>> browser.getControl('Perform import...').disabled
+    >>> browser.getControl('Perform import').disabled
     False
 
-    >>> browser.getControl('Perform import...').click()
+    >>> browser.getControl('Perform import').click()
 
 Step 4: See import results
@@ -262,5 +262,5 @@
     >>> modeselect = browser.getControl(name='mode')
     >>> modeselect.getControl(value='create').selected = True
-    >>> browser.getControl('Proceed to step 3...').click()
+    >>> browser.getControl('Proceed to step 3').click()
 
 Step 3: Fix headerlines
@@ -276,8 +276,8 @@
 The submit button is enabled:
 
-    >>> browser.getControl('Perform import...').disabled
+    >>> browser.getControl('Perform import').disabled
     False
 
-    >>> browser.getControl('Perform import...').click()
+    >>> browser.getControl('Perform import').click()
 
 Step 4: See import results
@@ -328,5 +328,5 @@
     >>> modeselect = browser.getControl(name='mode')
     >>> modeselect.getControl(value='create').selected = True
-    >>> browser.getControl('Proceed to step 3...').click()
+    >>> browser.getControl('Proceed to step 3').click()
 
 Step 3: Fix headerlines
@@ -342,8 +342,8 @@
 The submit button is enabled:
 
-    >>> browser.getControl('Perform import...').disabled
+    >>> browser.getControl('Perform import').disabled
     False
 
-    >>> browser.getControl('Perform import...').click()
+    >>> browser.getControl('Perform import').click()
 
 Step 4: See import results
@@ -393,5 +393,5 @@
     >>> modeselect = browser.getControl(name='mode')
     >>> modeselect.getControl(value='create').selected = True
-    >>> browser.getControl('Proceed to step 3...').click()
+    >>> browser.getControl('Proceed to step 3').click()
 
 Step 3: Fix headerlines
@@ -407,8 +407,8 @@
 The submit button is enabled:
 
-    >>> browser.getControl('Perform import...').disabled
+    >>> browser.getControl('Perform import').disabled
     False
 
-    >>> browser.getControl('Perform import...').click()
+    >>> browser.getControl('Perform import').click()
 
 Step 4: See import results
@@ -466,5 +466,5 @@
     >>> modeselect = browser.getControl(name='mode')
     >>> modeselect.getControl(value='create').selected = True
-    >>> browser.getControl('Proceed to step 3...').click()
+    >>> browser.getControl('Proceed to step 3').click()
 
 Step 3: Fix headerlines
@@ -473,5 +473,5 @@
 perfom the import:
 
-    >>> browser.getControl('Perform import...').click()
+    >>> browser.getControl('Perform import').click()
 
 One line could not be imported:
@@ -528,5 +528,5 @@
     >>> modeselect = browser.getControl(name='mode')
     >>> modeselect.getControl(value='create').selected = True
-    >>> browser.getControl('Proceed to step 3...').click()
+    >>> browser.getControl('Proceed to step 3').click()
 
 Step 3/4: Fix headerlines and import:
@@ -535,5 +535,5 @@
 perfom the import:
 
-    >>> browser.getControl('Perform import...').click()
+    >>> browser.getControl('Perform import').click()
 
 This time everything should work:
Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/pages.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/pages.py	(revision 7704)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/pages.py	(revision 7705)
@@ -751,4 +751,6 @@
     label = _(u'Upload file')
     pnav = 0
+    upload_button =_(u'Upload')
+    cancel_button =_(u'Cancel')
 
     def update(self, uploadfile=None, CANCEL=None, SUBMIT=None):
@@ -797,4 +799,5 @@
     label = _(u'Process CSV file')
     pnav = 0
+    cancel_button =_(u'Cancel')
 
     def getFiles(self):
@@ -826,4 +829,7 @@
     label = _(u'Process CSV file')
     pnav = 0
+    cancel_button =_(u'Cancel')
+    back_button =_(u'Back to step 1')
+    proceed_button =_(u'Proceed to step 3')
 
     filename = None
@@ -943,4 +949,9 @@
     label = _(u'Process CSV file')
     pnav = 0
+    cancel_button =_(u'Cancel')
+    reset_button =_(u'Reset')
+    update_button =_(u'Set headerfields')
+    back_button =_(u'Back to step 2')
+    proceed_button =_(u'Perform import')
 
     filename = None
@@ -1046,4 +1057,6 @@
     label = _(u'Process CSV file')
     pnav = 0
+    show_button =_(u'View processing log')
+    back_button =_(u'Back to data center')
 
     filename = None
@@ -1101,4 +1114,6 @@
     label = _(u'Show logfiles')
     pnav = 0
+    back_button = _(u'Back to Data Center')
+    show_button = _(u'Show')
 
     def update(self, show=None, logname=None, back=None):
@@ -1143,4 +1158,7 @@
     label = _('Edit data center settings')
     pnav = 0
+    save_button =_(u'Save')
+    reset_button =_(u'Reset')
+    cancel_button =_(u'Cancel')
 
     def update(self, newpath=None, move=False, overwrite=False,
@@ -1579,9 +1597,9 @@
     grok.name('addcourse')
     grok.require('waeup.manageUniversity')
-    label = u'Add course'
+    label = _(u'Add course')
     form_fields = grok.AutoFields(ICourseAdd)
     pnav = 1
 
-    @action('Add course')
+    @action(_('Add course'))
     def addCourse(self, **data):
         course = createObject(u'waeup.Course')
@@ -1595,5 +1613,5 @@
                 # do not use error.msg but render a more detailed message instead
                 # and show links to all certs with same code
-                message = 'A course with same code already exists: '
+                message = _('A course with same code already exists: ')
                 message += '<a href="%s">%s</a>' % (
                     self.url(entry), getattr(entry, '__name__', u'Unnamed'))
@@ -1601,5 +1619,5 @@
             self.redirect(self.url(self.context, u'@@addcourse'))
             return
-        message = u'Course %s successfully created.' % (course.code)
+        message = _(u'Course ${a} successfully created.', mapping = {'a':course.code})
         self.flash(message)
         self.redirect(self.url(self.context, u'@@manage')+'?tab2')
@@ -1616,9 +1634,9 @@
     grok.name('addcertificate')
     grok.require('waeup.manageUniversity')
-    label = u'Add certificate'
+    label = _(u'Add certificate')
     form_fields = grok.AutoFields(ICertificateAdd)
     pnav = 1
 
-    @action('Add certificate')
+    @action(_('Add certificate'))
     def addCertificate(self, **data):
         certificate = createObject(u'waeup.Certificate')
@@ -1632,5 +1650,5 @@
                 # do not use error.msg but render a more detailed message instead
                 # and show links to all certs with same code
-                message = 'A certificate with same code already exists: '
+                message = _('A certificate with same code already exists: ')
                 message += '<a href="%s">%s</a>' % (
                     self.url(entry), getattr(entry, '__name__', u'Unnamed'))
@@ -1638,10 +1656,10 @@
             self.redirect(self.url(self.context, u'@@addcertificate'))
             return
-        message = u'Certificate %s successfully created.' % (certificate.code)
+        message = _(u'Certificate ${a} successfully created.', mapping = {'a':certificate.code})
         self.flash(message)
         self.redirect(self.url(self.context, u'@@manage')+'?tab3')
         return
 
-    @action('Cancel', validator=NullValidator)
+    @action(_('Cancel'), validator=NullValidator)
     def cancel(self): #, **data):
         self.redirect(self.url(self.context))
@@ -1670,13 +1688,13 @@
     grok.name('manage')
     grok.require('waeup.manageUniversity')
-    label = u'Edit course'
+    label = _(u'Edit course')
     pnav = 1
 
     form_fields = grok.AutoFields(ICourse)
 
-    @action('Save', style='primary')
+    @action(_('Save'), style='primary')
     def save(self, **data):
         self.applyData(self.context, **data)
-        self.flash('Form has been saved.')
+        self.flash(_('Form has been saved.'))
         return
 
@@ -1687,5 +1705,5 @@
     #    return
 
-    @action('Cancel', validator=NullValidator)
+    @action(_('Cancel'), validator=NullValidator)
     def cancel(self, **data):
         self.redirect(self.url(self.context))
@@ -1720,5 +1738,5 @@
     grok.require('waeup.manageUniversity')
     pnav = 1
-    label = 'Edit certificate'
+    label = _('Edit certificate')
 
     form_fields = grok.AutoFields(ICertificate)
@@ -1726,13 +1744,13 @@
     pnav = 1
     grok.template('certificatemanagepage')
-    taboneactions = ['Save','Cancel']
-    tabtwoactions = ['Add course referrer',
-                     'Remove selected course referrers','Cancel']
-    tabthreeactions1 = ['Remove selected local roles']
-    tabthreeactions2 = ['Add local role']
+    taboneactions = [_('Save'),_('Cancel')]
+    tabtwoactions = [_('Add course referrer'),
+                     _('Remove selected course referrers'),_('Cancel')]
+    tabthreeactions1 = [_('Remove selected local roles')]
+    tabthreeactions2 = [_('Add local role')]
 
     @property
     def label(self):
-        return 'Manage certificate'
+        return _('Manage certificate')
 
     def update(self):
@@ -1750,18 +1768,18 @@
     def save(self, **data):
         self.applyData(self.context, **data)
-        self.flash('Form has been saved.')
-        return
-
-    @jsaction('Remove selected course referrers')
+        self.flash(_('Form has been saved.'))
+        return
+
+    @jsaction(_('Remove selected course referrers'))
     def delCertificateCourses(self, **data):
         delSubobjects(self, redirect='@@manage', tab='2')
         return
 
-    @action('Add course referrer', validator=NullValidator)
+    @action(_('Add course referrer'), validator=NullValidator)
     def addCertificateCourse(self, **data):
         self.redirect(self.url(self.context, 'addcertificatecourse'))
         return
 
-    @action('Cancel', validator=NullValidator)
+    @action(_('Cancel'), validator=NullValidator)
     def cancel(self, **data):
         self.redirect(self.url(self.context))
@@ -1782,9 +1800,9 @@
         return get_users_with_local_roles(self.context)
 
-    @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)
@@ -1799,19 +1817,20 @@
     form_fields = grok.AutoFields(ICertificateCourseAdd)
     pnav = 1
-    label = 'Add course referrer'
-
-    @action('Add course referrer')
+    label = _('Add course referrer')
+
+    @action(_('Add course referrer'))
     def addCertcourse(self, **data):
         try:
             self.context.addCourseRef(**data)
         except KeyError:
-            self.status = self.flash('The chosen course referrer is already '
-                                  'part of this certificate.')
+            self.status = self.flash(_('The chosen course referrer is already '
+                                  'part of this certificate.'))
             return
         self.status = self.flash(
-            "Course referrer %s_%s added." % (data['course'].code,data['level']))
+            _("Course referrer ${a}_${b} added.",
+            mapping = {'a': data['course'].code, 'b': data['level']}))
         self.redirect(self.url(self.context, u'@@manage')+'?tab2')
 
-    @action('Cancel', validator=NullValidator)
+    @action(_('Cancel'), validator=NullValidator)
     def cancel(self, **data):
         self.redirect(self.url(self.context))
@@ -1846,8 +1865,8 @@
     grok.require('waeup.manageUniversity')
     form_fields = grok.AutoFields(ICertificateCourse)
-    label = 'Edit course referrer'
-    pnav = 1
-
-    @action('Save and return', style='primary')
+    label = _('Edit course referrer')
+    pnav = 1
+
+    @action(_('Save and return'), style='primary')
     def saveAndReturn(self, **data):
         parent = self.context.__parent__
@@ -1861,9 +1880,9 @@
             parent.addCourseRef(**data)
             parent.delCourseRef(data['course'].code, level=old_level)
-        self.flash('Form has been saved.')
+        self.flash(_('Form has been saved.'))
         self.redirect(self.url(parent))
         return
 
-    @action('Cancel', validator=NullValidator)
+    @action(_('Cancel'), validator=NullValidator)
     def cancel(self, **data):
         self.redirect(self.url(self.context))
Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/certificatecoursepage.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/certificatecoursepage.pt	(revision 7704)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/certificatecoursepage.pt	(revision 7705)
@@ -1,20 +1,20 @@
-<table class="form-table">
+<table i18n:domain="waeup.sirp" class="form-table">
   <thead>
   </thead>
   <tbody>
     <tr>
-      <td>Code:</td>
+      <td i18n:translate="">Code:</td>
       <td tal:content="context/__name__">CODE</td>
     </tr>  
     <tr>
-      <td>Course Code:</td>
+      <td i18n:translate="">Course Code:</td>
       <td tal:content="context/getCourseCode">THE COURSE</td>
     </tr>    
     <tr>
-      <td>Course Title:</td>
+      <td i18n:translate="">Course Title:</td>
       <td tal:content="context/course/title">THE TITLE</td>
     </tr>
     <tr>
-      <td>Provided by:</td>
+      <td i18n:translate="">Provided by:</td>
       <td> 
       <span tal:content="python: context.course.__parent__.__parent__.longtitle()">DEPARTMENT</span>
@@ -24,9 +24,9 @@
     </tr>    
     <tr>
-      <td>Level:</td>
+      <td i18n:translate="">Level:</td>
       <td tal:content="view/leveltitle">LEVEL</td>
     </tr>
     <tr>
-      <td>Is mandatory course (not elective):</td>
+      <td i18n:translate="">Is mandatory course (not elective):</td>
       <td tal:content="context/mandatory">MANDATORY</td>
     </tr>
Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/certificatemanagepage.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/certificatemanagepage.pt	(revision 7704)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/certificatemanagepage.pt	(revision 7705)
@@ -1,9 +1,9 @@
 <form action="." tal:attributes="action request/URL" method="POST"
-      enctype="multipart/form-data"> 
+      enctype="multipart/form-data" i18n:domain="waeup.sirp">
 
   <ul class="tabs" data-tabs="tabs">
-    <li tal:attributes="class view/tab1"><a href="#tab-1"><span>Settings</span></a></li>
-    <li tal:attributes="class view/tab2"><a href="#tab-2"><span>Course Referrers</span></a></li>
-    <li tal:attributes="class view/tab3"><a href="#tab-3"><span>Local Roles</span></a></li>
+    <li tal:attributes="class view/tab1"><a href="#tab-1" i18n:translate="">Settings</a></li>
+    <li tal:attributes="class view/tab2"><a href="#tab-2" i18n:translate="">Course Referrers</a></li>
+    <li tal:attributes="class view/tab3"><a href="#tab-3" i18n:translate="">Local Roles</a></li>
   </ul>
    
@@ -42,10 +42,12 @@
     </div>
     <div id="tab-2" tal:attributes="class view/tab2">
-      <h3>Course Referrers</h3>
+      <h3 i18n:translate="">Course Referrers</h3>
       <table class="display dataTableManage">
         <thead>
           <tr>
-            <th>&nbsp;</th><th>Level</th><th>Semester</th><th>Referrer</th><th>Course</th><th>Title</th>
-            <th>Mandatory</th>
+            <th>&nbsp;</th><th i18n:translate="">Level</th>
+            <th i18n:translate="">Semester</th><th i18n:translate="">Referrer</th>
+            <th i18n:translate="">Course</th><th i18n:translate="">Title</th>
+            <th i18n:translate="">Mandatory</th>
           </tr>
         </thead>
@@ -102,9 +104,9 @@
             <th>&nbsp;
             </th>
-            <th>User Id
+            <th i18n:translate="">User Id
             </th>
-            <th>Name
+            <th i18n:translate="">Name
             </th>
-            <th>Local Role
+            <th i18n:translate="">Local Role
             </th>
           </tr>
@@ -112,5 +114,6 @@
         <tbody>
           <tr tal:repeat="entry view/getUsersWithLocalRoles" class="gradeC"> <td>
-              <input type="checkbox" name="role_id" tal:attributes="value python: entry['user_name']+'|'+entry['local_role']" /> </td>
+              <input type="checkbox" name="role_id"
+                tal:attributes="value python: entry['user_name']+'|'+entry['local_role']" /> </td>
             <td tal:content="entry/user_name"> USERNAME </td>
             <td tal:content="entry/user_title"> USERTITLE </td>
@@ -121,5 +124,6 @@
       <div tal:condition="view/availableActions">
         <span tal:repeat="action view/actions" tal:omit-tag="">
-          <input tal:condition="python:action.label in view.tabthreeactions1" tal:replace="structure action/render"/>
+          <input tal:condition="python:action.label in view.tabthreeactions1"
+            tal:replace="structure action/render"/>
         </span>
       </div><br /><br />
@@ -127,5 +131,6 @@
         <tr> <td>
             <select id="user" name="user">
-              <option tal:repeat="user view/getUsers" tal:attributes="value user/name">
+              <option tal:repeat="user view/getUsers"
+                tal:attributes="value user/name">
               <span tal:replace="user/val/title">USERTITLE
               </span>
@@ -133,5 +138,6 @@
             </select> </td> <td>
             <select id="local_role" name="local_role">
-              <option tal:repeat="localrole view/getLocalRoles" tal:attributes="value localrole/name">
+              <option tal:repeat="localrole view/getLocalRoles"
+                tal:attributes="value localrole/name">
               <span tal:replace="localrole/title">LOCALROLETITLE
               </span>
@@ -140,5 +146,6 @@
             <div tal:condition="view/availableActions">
               <span tal:repeat="action view/actions" tal:omit-tag="">
-                <input tal:condition="python:action.label in view.tabthreeactions2" tal:replace="structure action/render"/>
+                <input tal:condition="python:action.label in view.tabthreeactions2"
+                  tal:replace="structure action/render"/>
               </span>
             </div> </td>
Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/certificatepage.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/certificatepage.pt	(revision 7704)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/certificatepage.pt	(revision 7705)
@@ -18,11 +18,15 @@
 </table>
 
-<h3><span tal:content="context/__name__">Code</span> Course Referrers</h3>
+<h3>
+  <span tal:content="context/__name__">Code</span>
+  <span i18n:domain="waeup.sirp" i18n:translate="">Course Referrers</span>
+</h3>
 <br />
-<table class="display dataTable">
+<table i18n:domain="waeup.sirp" class="display dataTable">
 <thead>
   <tr>
-    <th>Level</th><th>Semester</th><th>Referrer</th><th>Course</th>
-    <th>Title</th><th>Mandatory</th>
+    <th i18n:translate="">Level</th><th i18n:translate="">Semester</th>
+    <th i18n:translate="">Referrer</th><th i18n:translate="">Course</th>
+    <th i18n:translate="">Title</th><th i18n:translate="">Mandatory</th>
   </tr>
 </thead>
Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/configurationmanagepage.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/configurationmanagepage.pt	(revision 7704)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/configurationmanagepage.pt	(revision 7705)
@@ -1,11 +1,10 @@
-<form action="." tal:attributes="action request/URL" method="POST" enctype="multipart/form-data">
+<form action="." tal:attributes="action request/URL" method="POST"
+  enctype="multipart/form-data" i18n:domain="waeup.sirp">
     <ul class="tabs" data-tabs="tabs">
       <li tal:attributes="class view/tab1">
-      <a href="#tab-1">
-        <span>Site Settings
-        </span></a>
+      <a href="#tab-1" i18n:translate="">Site Settings</a>
       </li>
       <li tal:attributes="class view/tab2">
-      <a href="#tab-2">Session Configurations</a>
+      <a href="#tab-2" i18n:translate="">Session Configurations</a>
       </li>
     </ul>
@@ -51,5 +50,5 @@
             <th>&nbsp;
             </th>
-            <th>Name
+            <th i18n:translate="">Name
             </th>
           </tr>
@@ -64,5 +63,6 @@
       <div tal:condition="view/availableActions">
         <span tal:repeat="action view/actions" tal:omit-tag="">
-          <input tal:condition="python:action.label in view.tabtwoactions" tal:replace="structure action/render"/>
+          <input tal:condition="python:action.label in view.tabtwoactions"
+            tal:replace="structure action/render"/>
         </span>
       </div>
Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterimport1page.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterimport1page.pt	(revision 7704)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterimport1page.pt	(revision 7705)
@@ -1,19 +1,24 @@
-<h3>Step 1</h3>
-<p>
+<h3 i18n:domain="waeup.sirp" i18n:translate="">Step 1</h3>
+<p i18n:domain="waeup.sirp" i18n:translate="">
   Using batch processing you can mass-create, mass-update, or
   mass-remove datasets from the database using CSV files.
 </p>
-<p>
-  Please select a file for processing from the list below
+<p i18n:domain="waeup.sirp" i18n:translate="">
+  Please select a file for processing from the list below.
 </p>
-<form method="POST">
+<form i18n:domain="waeup.sirp" method="POST">
   <table>
     <thead>
-      <th /><th>Filename</th><th>Datasets</th><th>Size</th><th>Date</th>
+      <th />
+      <th i18n:translate="">Filename</th>
+      <th i18n:translate="">Datasets</th>
+      <th i18n:translate="">Size</th>
+      <th i18n:translate="">Date</th>
     </thead>
     <tbody>
       <tr tal:repeat="file view/getFiles">
         <td>
-          <button type="submit" name="select" class="btn primary"
+          <button i18n:translate=""
+            type="submit" name="select" class="btn primary"
             tal:attributes="value file/name">Select</button>
         </td>
@@ -25,4 +30,5 @@
     </tbody>
   </table>
-  <input type="submit" name="cancel" class="btn" value="Cancel" />
+  <input type="submit" name="cancel" class="btn"
+      tal:attributes="value view/cancel_button" />
 </form>
Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterimport2page.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterimport2page.pt	(revision 7704)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterimport2page.pt	(revision 7705)
@@ -1,17 +1,17 @@
-<h3>Step 2</h3>
-<form method="POST">
+<h3 i18n:domain="waeup.sirp" i18n:translate="">Step 2</h3>
+<form i18n:domain="waeup.sirp" method="POST">
   <p>
-    <b>File:</b>
-    <span tal:content="view/filename">Filename.csv
-    </span>
-    <input type="hidden" name="filename"  tal:attributes="value view/filename" />
+    <b i18n:translate="">File:</b>
+    <span tal:content="view/filename">Filename.csv</span>
+    <input type="hidden" name="filename" tal:attributes="value view/filename" />
   </p>
-  <p> Please select a file-processor and a processing-mode from the selections below:
+  <p i18n:translate="">
+    Please select a file-processor and a processing-mode from the selections below.
   </p>
   <div>
     <table
-           tal:define="body view/getPreviewBody;
-                        headers view/getPreviewHeader;
-                        fieldnum python: len(headers)">
+       tal:define="body view/getPreviewBody;
+                    headers view/getPreviewHeader;
+                    fieldnum python: len(headers)">
       <thead>
         <tr>
@@ -30,5 +30,5 @@
     </table>
   </div>
-  <div> <b>Processor:</b>
+  <div> <b i18n:translate="">Processor:</b>
     <select name="importer">
       <option tal:repeat="importer view/getImporters"
@@ -41,5 +41,5 @@
   <p>&nbsp;
   </p>
-  <div> <b>Mode:</b>
+  <div> <b i18n:translate="">Mode:</b>
     <input type="radio" name="mode" value="create" checked="checked"
        tal:attributes="checked python: view.mode == 'create' and 'checked' or '';
@@ -57,7 +57,8 @@
     </p>
   </div>
-  <input class="btn" type="submit" name="cancel" value="Cancel" />
-  <input class="btn danger" type="submit" name="back1" value="Back to step 1" />
-  <input class="btn primary" tal:attributes="disabled python: view.getWarnings() and 'disabled' or ''"
-    type="submit" name="proceed" value="Proceed to step 3..." />
+  <input class="btn" type="submit" name="cancel" tal:attributes="value view/cancel_button" />
+  <input class="btn danger" type="submit" name="back1" tal:attributes="value view/back_button" />
+  <input class="btn primary"
+    tal:attributes="disabled python: view.getWarnings() and 'disabled' or ''; value view/proceed_button"
+    type="submit" name="proceed" />
 </form>
Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterimport3page.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterimport3page.pt	(revision 7704)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterimport3page.pt	(revision 7705)
@@ -1,13 +1,14 @@
-<div class="alert-message success" tal:condition="not: view/getWarnings">
+<div i18n:domain="waeup.sirp" i18n:translate=""
+  class="alert-message success" tal:condition="not: view/getWarnings">
   Header fields OK
 </div>
 
-<h3>Step 3</h3>
-<form>
-  <p>
+<h3 i18n:domain="waeup.sirp" i18n:translate="">Step 3</h3>
+<form i18n:domain="waeup.sirp">
+  <p i18n:translate="">
     Eventually modify headerfields of import file below.
   </p>
   <p>
-    <b>File:</b>
+    <b i18n:translate="">File:</b>
     <span tal:content="view/filename">Filename.csv</span>
     <input type="hidden" name="filename"
@@ -15,5 +16,5 @@
   </p>
   <p>
-    <b>Processor:</b>
+    <b i18n:translate="">Processor:</b>
     <span tal:content="view/importer/name">Importer Name</span>
     <input type="hidden" name="importer"
@@ -21,5 +22,5 @@
   </p>
   <p>
-    <b>Processing mode: </b>
+    <b i18n:translate="">Processing mode: </b>
     <span tal:content="view/mode">mode</span>
     <input type="hidden" name="mode"
@@ -41,5 +42,5 @@
         <tr>
           <th tal:repeat="headerfield headers">
-            <i>change to:</i>
+            <i i18n:translate="">change to:</i>
           </th>
         </tr>
@@ -68,10 +69,15 @@
   </div>
 
-  <input class="btn" type="submit" name="cancel" value="Cancel" />
-  <input class="btn" type="reset" name="reset" value="Reset" />
-  <input class="btn" type="submit" name="update" value="Set headerfields" />
+  <input class="btn" type="submit" name="cancel"
+    tal:attributes="value view/cancel_button" />
+  <input class="btn" type="reset" name="reset"
+    tal:attributes="value view/reset_button" />
+  <input class="btn" type="submit" name="update"
+    tal:attributes="value view/update_button" />
   <br /><br />
-  <input class="btn danger" type="submit" name="back2" value="Back to step 2" />
-  <input class="btn primary" tal:attributes="disabled python: view.getWarnings() and 'disabled' or ''"
-   type="submit" name="proceed" value="Perform import..." />
+  <input class="btn danger" type="submit" name="back2"
+    tal:attributes="value view/back_button" />
+  <input class="btn primary"
+    tal:attributes="disabled python: view.getWarnings() and 'disabled' or ''; value view/proceed_button"
+    type="submit" name="proceed"/>
 </form>
Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterimport4page.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterimport4page.pt	(revision 7704)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterimport4page.pt	(revision 7705)
@@ -1,19 +1,21 @@
-<h3>Step 4</h3>
-<p>
+<h3 i18n:domain="waeup.sirp" i18n:translate="">Step 4</h3>
+<p i18n:domain="waeup.sirp" i18n:translate="">
   Batch processing finished.
 </p>
-<p>
-  <b>File:</b> <span tal:content="view/filename">Filename.csv</span>
+<p i18n:domain="waeup.sirp">
+  <b i18n:translate="">File:</b> <span tal:content="view/filename">Filename.csv</span>
 </p>
-<p>
-  <b>Processor:</b>
+<p i18n:domain="waeup.sirp">
+  <b i18n:translate="">Processor:</b>
   <span tal:content="view/importer/name">Importer Name</span>
 </p>
-<p>
-  <b>Processing mode: </b>
+<p i18n:domain="waeup.sirp">
+  <b i18n:translate="">Processing mode: </b>
   <span tal:content="view/mode">mode</span>
 </p>
-<form method="POST">
-  <input class="btn primary" type="submit" name="finish" value="Back to data center" />
-  <input class="btn" type="submit" name="showlog" value="View processing log" />
+<form method="POST" i18n:domain="waeup.sirp">
+  <input class="btn primary" type="submit" name="finish"
+    tal:attributes="value view/back_button" />
+  <input class="btn" type="submit" name="showlog"
+    tal:attributes="value view/show_button" />
 </form>
Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterlogspage.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterlogspage.pt	(revision 7704)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterlogspage.pt	(revision 7705)
@@ -1,4 +1,5 @@
-<div tal:define="files view/files">
-  <p tal:condition="not: files">Currently no log files are available.
+<div i18n:domain="waeup.sirp" tal:define="files view/files">
+  <p i18n:translate="" tal:condition="not: files">
+  Currently no log files are available.
   </p>
   <table tal:condition="files" class="condensed-table">
@@ -7,17 +8,19 @@
         <th>
         </th>
-        <th>File
+        <th i18n:translate="">File
         </th>
-        <th>Date
+        <th i18n:translate="">Date
         </th>
-        <th>Size
+        <th i18n:translate="">Size
         </th>
       </tr>
     </thead>
     <tbody>
-      <tr tal:repeat="file files" tal:attributes="class python: repeat['file'].odd() and 'odd' or 'even'">
+      <tr tal:repeat="file files"
+          tal:attributes="class python: repeat['file'].odd() and 'odd' or 'even'">
         <td class="text-center">
           <form method="POST">
-            <input type="submit" class="btn primary" name="show" value="Show" />
+            <input i18n:translate="" type="submit" class="btn primary" name="show"
+                tal:attributes="value view/show_button" />
             <input type="hidden" name="logname" tal:attributes="value file/name" />
           </form></td>
@@ -29,5 +32,6 @@
   </table>
   <form method="POST">
-    <input type="submit" class="btn" name="back" value="Back to Data Center" />
+    <input i18n:translate="" type="submit" class="btn" name="back"
+        tal:attributes="value view/back_button"/>
   </form>
 </div>
Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacentermanagepage.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacentermanagepage.pt	(revision 7704)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacentermanagepage.pt	(revision 7705)
@@ -1,17 +1,24 @@
-<form method="POST">
+<form  i18n:domain="waeup.sirp" method="POST">
   <div>
-    Storage path:
+    <span  i18n:translate="">Storage path:</span>
     <input type="text" name="newpath"
      tal:attributes="value context/storage" />
     <br /><br />
-    Copy existing data to new storage? &nbsp;&nbsp;
+    <span  i18n:translate="">
+    Copy existing data to new storage?
+    </span>&nbsp;&nbsp;
     <input type="checkbox" name="move" checked="checked" />
     <br /><br />
-    Overwrite contents in new location? &nbsp;&nbsp;
+    <span  i18n:translate="">
+    Overwrite contents in new location?
+    </span>&nbsp;&nbsp;
     <input type="checkbox" name="overwrite" checked="no" />
     <br /><br />
-    <input class="btn primary" type="submit" name="save" value="Save" />
-    <input class="btn" type="reset" name="reset" value="Reset" />
-    <input class="btn" type="submit" name="cancel" value="Cancel" />
+    <input class="btn primary" type="submit" name="save"
+        tal:attributes="value view/save_button" />
+    <input class="btn" type="reset" name="reset"
+        tal:attributes="value view/reset_button" />
+    <input class="btn" type="submit" name="cancel"
+        tal:attributes="value view/cancel_button" />
   </div>
 </form>
Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterpage.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterpage.pt	(revision 7704)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterpage.pt	(revision 7705)
@@ -1,22 +1,23 @@
-<p>
+<p  i18n:domain="waeup.sirp" i18n:translate="">
 The data center helps you to manage portal data. You can upload CSV
 files here, which will be available for import afterwards.
 </p>
 
-<p>
-  <b>Storage path:</b> <span tal:content="context/storage">/foo/bar</span>
+<p i18n:domain="waeup.sirp">
+  <b i18n:translate="">Storage path:</b>
+  <span tal:content="context/storage">/foo/bar</span>
 </p>
 
-<table>
+<table i18n:domain="waeup.sirp">
   <thead>
     <tr>
-      <th>File</th>
-      <th>Size</th>
-      <th>Uploaded</th>
+      <th i18n:translate="">File</th>
+      <th i18n:translate="">Size</th>
+      <th i18n:translate="">Uploaded</th>
     </tr>
   </thead>
   <tbody>
     <tr tal:repeat="file context/getFiles">
-      <td tal:content="file/name">thefilename</td>
+      <td tal:content="file/name">FILENAME</td>
       <td tal:content="file/size">12 k</td>
       <td tal:content="file/uploaddate">Mar 12, 2008</td>
Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenteruploadpage.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenteruploadpage.pt	(revision 7704)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenteruploadpage.pt	(revision 7705)
@@ -3,6 +3,8 @@
   <br /><br />
   <div>
-    <input class="btn primary" type="submit" name="SUBMIT" value="Upload" />
-    <input class="btn" type="submit" name="CANCEL" value="Cancel" />
+    <input class="btn primary" type="submit" name="SUBMIT"
+        tal:attributes="value view/upload_button" />
+    <input class="btn" type="submit" name="CANCEL"
+        tal:attributes="value view/cancel_button"/>
   </div>
 </form>
Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/viewlets.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/viewlets.py	(revision 7704)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/viewlets.py	(revision 7705)
@@ -18,4 +18,5 @@
 import grok
 from urllib import urlencode
+from zope.i18n import translate
 from zope.component import getMultiAdapter, queryAdapter, getUtility
 from zope.interface import Interface
@@ -85,5 +86,5 @@
     icon = 'actionicon_modify.png' # File must exist in static/
     target = '@@manage' # link to this viewname.
-    text = 'Edit' # Text to display on the button
+    text = _('Edit') # Text to display on the button
 
     # We set the template file explicitly (instead of using
@@ -154,5 +155,5 @@
     icon = 'actionicon_modify.png'
     target = '@@manage'
-    text = 'Edit'
+    text = _('Edit')
 
 class AddActionButton(ActionButton):
@@ -164,5 +165,5 @@
     icon = 'actionicon_add.png'
     target = 'add'
-    text = 'Add'
+    text = _('Add')
     
 class RemoveActionButton(ActionButton):
@@ -174,5 +175,5 @@
     icon = 'actionicon_delete.png'
     target = 'remove'
-    text = 'Remove'    
+    text = _('Remove')
 
 class SearchActionButton(ActionButton):
@@ -184,5 +185,5 @@
     icon = 'actionicon_search.png'
     target = 'search'
-    text = 'Search'
+    text = _('Search')
 
 
@@ -309,5 +310,5 @@
     grok.order(2)
     grok.require('waeup.Anonymous')
-    text = 'Login'
+    text = _('Login')
     link = 'login'
 
@@ -347,10 +348,11 @@
 
     link = 'configuration'
-    text = u'Portal Configuration'
+    text = _(u'Portal Configuration')
     
     def render(self):
         url = self.view.url(grok.getSite(), self.link)
+        text = translate(self.text, context=self.request)
         return u'<li><a href="%s">%s</a></li>' % (
-                url, self.text)
+                url, text)
 
 class ManageUsersLink(ManageLink):
@@ -361,5 +363,5 @@
 
     link = u'users'
-    text = u'Portal Users'
+    text = _(u'Portal Users')
 
 class ContactActionButton(ManageActionButton):
@@ -369,5 +371,5 @@
     grok.require('waeup.manageUsers')
     icon = 'actionicon_mail.png'
-    text = 'Send email'
+    text = _('Send email')
     target = 'contactuser'
 
@@ -379,5 +381,5 @@
 
     link = u'datacenter'
-    text = u'Data Center'
+    text = _(u'Data Center')
 
 class MyPreferences(LeftSidebarLink):
@@ -386,5 +388,5 @@
     grok.order(7)
     grok.require('waeup.Public')
-    title = u'My Preferences'
+    title = _(u'My Preferences')
     icon = ''
 
@@ -401,5 +403,5 @@
     grok.order(8)
     grok.require('waeup.Public')
-    title = u'My Roles'
+    title = _(u'My Roles')
     icon = ''
 
@@ -420,5 +422,5 @@
     grok.context(IDataCenter)
     grok.view(DatacenterPage)
-    text = 'Edit settings'
+    text = _('Edit settings')
 
 class ManageFacultiesContainerActionButton(ManageActionButton):
@@ -427,5 +429,5 @@
     grok.context(IFacultiesContainer)
     grok.view(FacultiesContainerPage)
-    text = 'Manage academic section'
+    text = _('Manage academic section')
 
 class SearchFacultiesContainerActionButton(ManageActionButton):
@@ -434,5 +436,5 @@
     grok.context(IFacultiesContainer)
     grok.view(FacultiesContainerPage)
-    text = 'Search academic section'
+    text = _('Search academic section')
     icon = 'actionicon_search.png'
     target = '@@search'
@@ -443,5 +445,5 @@
     grok.context(IFaculty)
     grok.view(FacultyPage)
-    text = 'Manage faculty'
+    text = _('Manage faculty')
 
 class ManageDepartmentActionButton(ManageActionButton):
@@ -450,5 +452,5 @@
     grok.context(IDepartment)
     grok.view(DepartmentPage)
-    text = 'Manage department'
+    text = _('Manage department')
 
 class ShowDepartmentStudentsActionButton(ManageActionButton):
@@ -459,5 +461,5 @@
     grok.require('waeup.showStudents')
     icon = 'actionicon_student.png'
-    text = 'Show students'
+    text = _('Show students')
     target = 'showdepstudents'
 
@@ -467,5 +469,5 @@
     grok.context(ICourse)
     grok.view(CoursePage)
-    text = 'Edit course'
+    text = _('Edit course')
     
 class ManageCertificateActionButton(ManageActionButton):
@@ -474,5 +476,5 @@
     grok.context(ICertificate)
     grok.view(CertificatePage)
-    text = 'Manage certificate'
+    text = _('Manage certificate')
 
 class ShowCertificateStudentsActionButton(ManageActionButton):
@@ -483,5 +485,5 @@
     grok.require('waeup.showStudents')
     icon = 'actionicon_student.png'
-    text = 'Show students'
+    text = _('Show students')
     target = 'showcertstudents'
 
@@ -491,5 +493,5 @@
     grok.context(ICertificateCourse)
     grok.view(CertificateCoursePage)
-    text = 'Edit course referrer'
+    text = _('Edit course referrer')
 
 #
@@ -501,52 +503,5 @@
     grok.context(IUsersContainer)
     grok.view(UsersContainerPage)
-    text = 'Add user'
-
-#class AddFacultyActionButton(AddActionButton):
-#    grok.context(IFacultiesContainer)
-#    grok.view(FacultiesContainerPage)
-#    text = 'Add faculty'
-    
-#class AddDepartmentActionButton(AddActionButton):
-#    grok.context(IFaculty)
-#    grok.view(FacultyPage)
-#    text = 'Add department'
-
-#class AddCertificateActionButton(AddActionButton):
-#    grok.context(IDepartment)
-#    grok.view(DepartmentPage)
-#    grok.order(3)
-#    text = 'Add certificate'
-#    target = 'addcertificate'
-    
-#class AddCourseActionButton(AddActionButton):
-#    grok.context(IDepartment)
-#    grok.view(DepartmentPage)
-#    grok.order(4)
-#    text = 'Add course'
-#    target = 'addcourse'
-
-#class AddCertificateCourseActionButton(AddActionButton):
-#    grok.context(ICertificate)
-#    grok.view(CertificatePage)
-#    grok.order(4)
-#    text = 'Add course referrer'
-#    target = 'addcertificatecourse'
-
-#
-# Remove actions...
-#
-
-
-#class RemoveFacultyActionButton(RemoveActionButton):
-#    grok.context(IFacultiesContainer)
-#    grok.view(FacultiesContainerPage)
-#    text = 'Remove faculty'
-   
-#class RemoveDepartmentActionButton(RemoveActionButton):
-#    grok.context(IFaculty)
-#    grok.view(FacultyPage)
-#    text = 'Remove department'
-    
+    text = _('Add user')
 
 #
@@ -561,5 +516,5 @@
     icon = 'actionicon_manage.png' # File must exist in static/
     target = '@@show' # link to this viewname.
-    text = 'Show batch logs' # Text to display on the button
+    text = _('Show batch logs') # Text to display on the button
 
 class BrowseDatacenterLogs(BrowseActionButton):
@@ -569,5 +524,5 @@
     icon = 'documentinfo_templet.png'
     target = '@@logs'
-    text = 'Show batch logs'
+    text = _('Show batch logs')
 
 #
@@ -581,5 +536,5 @@
     icon = 'actionbox_templet.png'
     target = '@@import1'
-    text = 'Batch processing'
+    text = _('Batch processing')
 
 class UploadCSVButton(ActionButton):
@@ -590,5 +545,5 @@
     icon = 'go-up-16x16.png'
     target = '@@upload'
-    text = 'Upload CSV file'
+    text = _('Upload CSV file')
 
 #
@@ -699,5 +654,5 @@
     grok.require('waeup.managePortalConfiguration')
 
-    link_title = 'Portal Configuration'
+    link_title = _('Portal Configuration')
     def link_target(self):
         return self.view.url(self.view.context, 'configuration')
@@ -709,5 +664,5 @@
     grok.require('waeup.manageUsers')
 
-    link_title = 'Portal Users'
+    link_title = _('Portal Users')
     target_viewname = 'users'
     
@@ -718,5 +673,5 @@
     grok.require('waeup.manageDataCenter')
 
-    link_title = 'Data Center'
+    link_title = _('Data Center')
     target_viewname = 'datacenter'
 
@@ -794,3 +749,5 @@
 
     def render(self):
-        return u'<div class="text-right"><form method="POST"><input class="text-right" type="submit" value="remove" /></form></div>'
+        return u'<div class="text-right"><form method="POST">' + \
+            '<input class="text-right" type="submit" value="remove" />' + \
+            '</form></div>'
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 7704)
+++ main/waeup.sirp/trunk/src/waeup/sirp/locales/de/LC_MESSAGES/waeup.sirp.po	(revision 7705)
@@ -15,6 +15,6 @@
 msgstr ""
 "Project-Id-Version: WAeUP.SIRP\n"
-"POT-Creation-Date: Fri Feb 24 23:24:12 2012\n"
-"PO-Revision-Date: 2012-02-24 23:27+0100\n"
+"POT-Creation-Date: Sun Feb 26 17:19:06 2012\n"
+"PO-Revision-Date: 2012-02-26 17:19+0100\n"
 "Last-Translator: Henrik Bettermann <henrik@waeup.org>\n"
 "Language-Team: WAeUP Germany <henrik@waeup.org>\n"
@@ -117,5 +117,5 @@
 
 #: waeup/sirp/applicants/workflow.py:41
-#: waeup/sirp/interfaces.py:69
+#: waeup/sirp/interfaces.py:71
 msgid "admitted"
 msgstr "zugelassen"
@@ -126,5 +126,5 @@
 
 #: waeup/sirp/applicants/workflow.py:43
-#: waeup/sirp/interfaces.py:68
+#: waeup/sirp/interfaces.py:70
 msgid "created"
 msgstr "neu"
@@ -189,25 +189,31 @@
 
 #: waeup/sirp/browser/breadcrumbs.py:116
-#: waeup/sirp/browser/viewlets.py:681
+#: waeup/sirp/browser/viewlets.py:605
 msgid "Academics"
 msgstr "Akademie"
 
 #: waeup/sirp/browser/breadcrumbs.py:123
-#: waeup/sirp/browser/pages.py:302
+#: waeup/sirp/browser/pages.py:308
 msgid "Administration"
 msgstr "Verwaltung"
 
 #: waeup/sirp/browser/breadcrumbs.py:130
+#: waeup/sirp/browser/viewlets.py:350
+#: waeup/sirp/browser/viewlets.py:656
 msgid "Portal Configuration"
 msgstr "Portalkonfiguration"
 
 #: waeup/sirp/browser/breadcrumbs.py:148
-#: waeup/sirp/browser/pages.py:379
+#: waeup/sirp/browser/pages.py:385
+#: waeup/sirp/browser/viewlets.py:365
+#: waeup/sirp/browser/viewlets.py:666
 msgid "Portal Users"
 msgstr "Benutzer"
 
 #: waeup/sirp/browser/breadcrumbs.py:155
-#: waeup/sirp/browser/pages.py:740
-#: waeup/sirp/browser/pages.py:1117
+#: waeup/sirp/browser/pages.py:744
+#: waeup/sirp/browser/pages.py:1136
+#: waeup/sirp/browser/viewlets.py:383
+#: waeup/sirp/browser/viewlets.py:675
 msgid "Data Center"
 msgstr "Datenzentrum"
@@ -215,5 +221,9 @@
 #: waeup/sirp/browser/breadcrumbs.py:90
 msgid "Home"
-msgstr "Home"
+msgstr "Startseite"
+
+#: waeup/sirp/browser/pages.py:1012
+msgid "Edit headers or replace imported file!"
+msgstr "Bearbeiten Sie die Spaltenüberschrift oder tauschen Sie die  Importdatei aus."
 
 #. Default: ""
@@ -222,17 +232,33 @@
 msgstr "Lokale Rolle erfolgreich entfernt: ${a}"
 
-#. Default: ""
-#: waeup/sirp/browser/pages.py:1087
+#: waeup/sirp/browser/pages.py:1059
+msgid "View processing log"
+msgstr "Betrache Logdatei"
+
+#: waeup/sirp/browser/pages.py:1060
+msgid "Back to data center"
+msgstr "Zurück zum Datenzentrum"
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:1104
 msgid "Processing of ${a} rows failed."
 msgstr "Bearbeitung von ${a} Zeilen fehlgeschlagen."
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:1089
+#: waeup/sirp/browser/pages.py:1106
 msgid "Successfully processed ${a} rows."
 msgstr "${a} Zeilen erfolgreich verarbeitet."
 
-#: waeup/sirp/browser/pages.py:1097
+#: waeup/sirp/browser/pages.py:1114
 msgid "Show logfiles"
 msgstr "Zeige Logdateien"
+
+#: waeup/sirp/browser/pages.py:1116
+msgid "Back to Data Center"
+msgstr "Zurück zum Datenzentrum"
+
+#: waeup/sirp/browser/pages.py:1117
+msgid "Show"
+msgstr "Zeige"
 
 #: waeup/sirp/browser/pages.py:113
@@ -240,76 +266,77 @@
 msgstr "Nichts ausgewählt."
 
-#: waeup/sirp/browser/pages.py:1139
+#: waeup/sirp/browser/pages.py:1158
 msgid "Edit data center settings"
 msgstr "Bearbeite Einstellungen des Datenzentrums"
 
-#: waeup/sirp/browser/pages.py:1156
+#: waeup/sirp/browser/pages.py:1178
 msgid "File already existed (not copied):"
 msgstr "Datei existiert (nicht kopiert):"
 
-#: waeup/sirp/browser/pages.py:1158
+#: waeup/sirp/browser/pages.py:1180
 msgid "Given storage path cannot be used."
 msgstr "Der Datenpfad kann nicht verwendet werden."
 
-#: waeup/sirp/browser/pages.py:1159
+#: waeup/sirp/browser/pages.py:1181
 msgid "Error:"
 msgstr "Fehler:"
 
-#: waeup/sirp/browser/pages.py:1162
+#: waeup/sirp/browser/pages.py:1184
 msgid "New storage path succefully set."
 msgstr "Neuen Datenpfad erfolgreich gesetzt."
 
-#: waeup/sirp/browser/pages.py:1222
+#: waeup/sirp/browser/pages.py:1244
 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
+#: waeup/sirp/browser/pages.py:1256
+#: waeup/sirp/browser/pages.py:1272
+#: waeup/sirp/browser/pages.py:1289
+#: waeup/sirp/browser/pages.py:1293
 msgid "Add faculty"
 msgstr "Füge Fakultät hinzu"
 
-#: waeup/sirp/browser/pages.py:1235
+#: waeup/sirp/browser/pages.py:1257
 msgid "Faculties"
 msgstr "Fakultäten"
 
-#: waeup/sirp/browser/pages.py:1239
+#: waeup/sirp/browser/pages.py:1261
+#: waeup/sirp/browser/viewlets.py:431
 msgid "Manage academic section"
 msgstr "Bearbeite Akademie"
 
-#: waeup/sirp/browser/pages.py:1278
+#: waeup/sirp/browser/pages.py:1300
 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
+#: waeup/sirp/browser/pages.py:1321
+#: waeup/sirp/browser/pages.py:1331
 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
+#: waeup/sirp/browser/pages.py:1333
+#: waeup/sirp/browser/pages.py:1384
+#: waeup/sirp/browser/pages.py:1403
+#: waeup/sirp/browser/pages.py:1407
 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
+#: waeup/sirp/browser/pages.py:1334
+#: waeup/sirp/browser/pages.py:1393
+#: waeup/sirp/browser/pages.py:1503
+#: waeup/sirp/browser/pages.py:1589
+#: waeup/sirp/browser/pages.py:1749
+#: waeup/sirp/browser/pages.py:1806
 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
+#: waeup/sirp/browser/pages.py:1335
+#: waeup/sirp/browser/pages.py:1389
+#: waeup/sirp/browser/pages.py:1504
+#: waeup/sirp/browser/pages.py:1585
+#: waeup/sirp/browser/pages.py:1750
+#: waeup/sirp/browser/pages.py:1802
 msgid "Add local role"
 msgstr "Lokale Rolle hinzufügen"
-
-#: waeup/sirp/browser/pages.py:1319
-msgid "Manage faculty"
-msgstr "Bearbeite Fakultät"
 
 #. Default: ""
@@ -318,52 +345,66 @@
 msgstr "Erfolgreich entfernt: ${a}"
 
-#: waeup/sirp/browser/pages.py:1354
+#: waeup/sirp/browser/pages.py:1341
+#: waeup/sirp/browser/viewlets.py:447
+msgid "Manage faculty"
+msgstr "Bearbeite Fakultät"
+
+#: waeup/sirp/browser/pages.py:1376
+#: waeup/sirp/browser/pages.py:1698
+#: waeup/sirp/browser/pages.py:1770
+#: waeup/sirp/browser/pages.py:1882
 msgid "Form has been saved."
 msgstr "Das Formular wurde gespeichert."
 
-#: waeup/sirp/browser/pages.py:1392
+#: waeup/sirp/browser/pages.py:1414
 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
+#: waeup/sirp/browser/pages.py:1417
 msgid "Department ${a} added."
 msgstr "Department ${a} hinzugefügt."
 
-#: waeup/sirp/browser/pages.py:1412
+#: waeup/sirp/browser/pages.py:1434
 msgid "Courses and Certificates"
 msgstr "Kurse und Zertifikate"
 
-#: waeup/sirp/browser/pages.py:1442
-#: waeup/sirp/browser/pages.py:1461
+#: waeup/sirp/browser/pages.py:1464
+#: waeup/sirp/browser/pages.py:1483
 #: waeup/sirp/students/viewlets.py:466
 msgid "Students"
 msgstr "Studenten"
 
-#: waeup/sirp/browser/pages.py:1478
-#: waeup/sirp/browser/pages.py:1536
+#: waeup/sirp/browser/pages.py:1500
+#: waeup/sirp/browser/pages.py:1558
 msgid "Remove selected courses"
 msgstr "Ausgewählte Kurse  löschen"
 
-#: waeup/sirp/browser/pages.py:1478
-#: waeup/sirp/browser/pages.py:1548
+#: waeup/sirp/browser/pages.py:1500
+#: waeup/sirp/browser/pages.py:1570
+#: waeup/sirp/browser/pages.py:1599
+#: waeup/sirp/browser/pages.py:1603
 msgid "Add course"
 msgstr "Kurs hinzufügen"
 
-#: waeup/sirp/browser/pages.py:1479
-#: waeup/sirp/browser/pages.py:1542
+#: waeup/sirp/browser/pages.py:1501
+#: waeup/sirp/browser/pages.py:1564
 msgid "Remove selected certificates"
 msgstr "Ausgewählte Zertifikate löschen"
 
-#: waeup/sirp/browser/pages.py:1479
-#: waeup/sirp/browser/pages.py:1553
+#: waeup/sirp/browser/pages.py:1501
+#: waeup/sirp/browser/pages.py:1575
+#: waeup/sirp/browser/pages.py:1636
+#: waeup/sirp/browser/pages.py:1640
 msgid "Add certificate"
 msgstr "Füge Zertifikat hinzu."
 
-#: waeup/sirp/browser/pages.py:1488
+#: waeup/sirp/browser/pages.py:1510
+#: waeup/sirp/browser/viewlets.py:454
 msgid "Manage department"
 msgstr "Bearbeite Department"
 
 #: waeup/sirp/browser/pages.py:152
+#: waeup/sirp/browser/viewlets.py:312
 #: waeup/sirp/browser/templates/staffsitelayout.pt:28
 #: waeup/sirp/browser/templates/studentsitelayout.pt:33
@@ -375,8 +416,65 @@
 msgstr "Sie sind jetzt eingeloggt."
 
+#: waeup/sirp/browser/pages.py:1615
+msgid "A course with same code already exists: "
+msgstr "Ein Kurs mit gleichem Kürzel existiert bereits:"
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:1621
+msgid "Course ${a} successfully created."
+msgstr "Kurs ${a} erfolgreich erzeugt."
+
+#: waeup/sirp/browser/pages.py:1652
+msgid "A certificate with same code already exists: "
+msgstr "Ein Zertifikat mit gleichem Kürzel existiert bereits:"
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:1658
+msgid "Certificate ${a} successfully created."
+msgstr "Zertifikat ${a} erfolgreich erzeugt."
+
+#: waeup/sirp/browser/pages.py:1690
+#: waeup/sirp/browser/viewlets.py:471
+msgid "Edit course"
+msgstr "Bearbeite Kurs"
+
+#: waeup/sirp/browser/pages.py:1740
+msgid "Edit certificate"
+msgstr "Bearbeite Zertifikat"
+
+#: waeup/sirp/browser/pages.py:1747
+#: waeup/sirp/browser/pages.py:1778
+#: waeup/sirp/browser/pages.py:1819
+#: waeup/sirp/browser/pages.py:1821
+msgid "Add course referrer"
+msgstr "Füge Kursreferenz hinzu"
+
+#: waeup/sirp/browser/pages.py:1748
+#: waeup/sirp/browser/pages.py:1773
+msgid "Remove selected course referrers"
+msgstr "Lösche ausgewählte Kursreferenzen"
+
+#: waeup/sirp/browser/pages.py:1754
+#: waeup/sirp/browser/viewlets.py:478
+msgid "Manage certificate"
+msgstr "Bearbeite Zertifikat"
+
 #: waeup/sirp/browser/pages.py:177
 msgid "You entered wrong credentials."
 msgstr "Sie haben falsche Zugangsdaten eingegeben."
 
+#: waeup/sirp/browser/pages.py:1826
+msgid "The chosen course referrer is already part of this certificate."
+msgstr "Die ausgewählte Kursreferenz ist bereits Teil des Zertifikates."
+
+#: waeup/sirp/browser/pages.py:1867
+#: waeup/sirp/browser/viewlets.py:495
+msgid "Edit course referrer"
+msgstr "Bearbeite Kursreferenz"
+
+#: waeup/sirp/browser/pages.py:1870
+msgid "Save and return"
+msgstr "Speichen und zurück"
+
 #: waeup/sirp/browser/pages.py:191
 msgid "You have been logged out. Thanks for using WAeUP SIRP!"
@@ -389,5 +487,5 @@
 
 #: waeup/sirp/browser/pages.py:233
-#: waeup/sirp/browser/pages.py:510
+#: waeup/sirp/browser/pages.py:516
 msgid "Send message now"
 msgstr "Jetzt senden"
@@ -395,5 +493,5 @@
 #: waeup/sirp/browser/pages.py:252
 #: waeup/sirp/browser/pages.py:271
-#: waeup/sirp/browser/pages.py:527
+#: waeup/sirp/browser/pages.py:533
 msgid "Your message has been sent."
 msgstr "Ihre Nachricht wurde verschickt."
@@ -407,140 +505,166 @@
 msgstr "Es trat ein smtp-Serverfehler auf."
 
-#. Default: ""
-#: waeup/sirp/browser/pages.py:386
+#: waeup/sirp/browser/pages.py:298
+msgid "<h1>Welcome to WAeUP.SIRP</h1>"
+msgstr "<h1>Willkommen bei WAeUP.SIRP</h1>"
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:392
 msgid "User account ${a} successfully deleted."
 msgstr "Benutzerkonto ${a} erfolgreich gelöscht."
 
-#: waeup/sirp/browser/pages.py:417
-#: waeup/sirp/browser/pages.py:419
+#: waeup/sirp/browser/pages.py:423
+#: waeup/sirp/browser/pages.py:425
+#: waeup/sirp/browser/viewlets.py:505
 msgid "Add user"
 msgstr "Benutzer hinzufügen"
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:441
+#: waeup/sirp/browser/pages.py:447
 msgid "User account ${a} successfully added."
 msgstr "Benutzerkonto ${a} erfolgreich hinzugefügt."
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:460
+#: waeup/sirp/browser/pages.py:466
 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
+#: waeup/sirp/browser/pages.py:473
+#: waeup/sirp/browser/pages.py:627
+#: waeup/sirp/browser/pages.py:724
+#: waeup/sirp/browser/pages.py:1160
+#: waeup/sirp/browser/pages.py:1332
+#: waeup/sirp/browser/pages.py:1499
+#: waeup/sirp/browser/pages.py:1552
+#: waeup/sirp/browser/pages.py:1695
+#: waeup/sirp/browser/pages.py:1746
 msgid "Save"
 msgstr "Speichern"
 
-#: waeup/sirp/browser/pages.py:491
+#: waeup/sirp/browser/pages.py:497
 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
+#: waeup/sirp/browser/pages.py:500
+#: waeup/sirp/browser/pages.py:704
+#: waeup/sirp/browser/pages.py:731
+#: waeup/sirp/browser/pages.py:754
+#: waeup/sirp/browser/pages.py:801
+#: waeup/sirp/browser/pages.py:831
+#: waeup/sirp/browser/pages.py:951
+#: waeup/sirp/browser/pages.py:1162
+#: waeup/sirp/browser/pages.py:1256
+#: waeup/sirp/browser/pages.py:1277
+#: waeup/sirp/browser/pages.py:1304
+#: waeup/sirp/browser/pages.py:1332
+#: waeup/sirp/browser/pages.py:1333
+#: waeup/sirp/browser/pages.py:1379
+#: waeup/sirp/browser/pages.py:1420
+#: waeup/sirp/browser/pages.py:1499
+#: waeup/sirp/browser/pages.py:1500
+#: waeup/sirp/browser/pages.py:1502
+#: waeup/sirp/browser/pages.py:1580
+#: waeup/sirp/browser/pages.py:1663
+#: waeup/sirp/browser/pages.py:1707
+#: waeup/sirp/browser/pages.py:1746
+#: waeup/sirp/browser/pages.py:1748
+#: waeup/sirp/browser/pages.py:1783
+#: waeup/sirp/browser/pages.py:1834
+#: waeup/sirp/browser/pages.py:1886
 msgid "Cancel"
 msgstr "Abbruch"
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:508
+#: waeup/sirp/browser/pages.py:514
 msgid "Send message to ${a}"
 msgstr "Sende Nachricht an ${a}"
 
-#: waeup/sirp/browser/pages.py:537
+#: waeup/sirp/browser/pages.py:543
+#: waeup/sirp/browser/viewlets.py:390
 msgid "My Preferences"
 msgstr "Meine Präferenzen"
 
-#: waeup/sirp/browser/pages.py:550
+#: waeup/sirp/browser/pages.py:556
+#: waeup/sirp/browser/viewlets.py:405
 msgid "My Roles"
 msgstr "Meine Rollen"
 
-#: waeup/sirp/browser/pages.py:581
+#: waeup/sirp/browser/pages.py:587
 msgid "Search Academic Section"
 msgstr "Durchsuche Akademie"
 
-#: waeup/sirp/browser/pages.py:607
+#: waeup/sirp/browser/pages.py:613
 msgid "View portal configuration"
 msgstr "Betrachte Portal-Konfiguration"
 
-#: waeup/sirp/browser/pages.py:620
+#: waeup/sirp/browser/pages.py:626
 msgid "Edit portal configuration"
 msgstr "Bearbeite Portalkonfiguration"
 
-#: waeup/sirp/browser/pages.py:621
-#: waeup/sirp/browser/pages.py:672
+#: waeup/sirp/browser/pages.py:627
+#: waeup/sirp/browser/pages.py:676
 msgid "Update plugins"
 msgstr "Aktualisiere Plugins"
 
-#: waeup/sirp/browser/pages.py:623
-#: waeup/sirp/browser/pages.py:653
-#: waeup/sirp/browser/pages.py:684
+#: waeup/sirp/browser/pages.py:629
+#: waeup/sirp/browser/pages.py:657
+#: waeup/sirp/browser/pages.py:688
 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
+#: waeup/sirp/browser/pages.py:630
+#: waeup/sirp/browser/pages.py:671
+#: waeup/sirp/browser/pages.py:1256
+#: waeup/sirp/browser/pages.py:1267
+#: waeup/sirp/browser/pages.py:1333
+#: waeup/sirp/browser/pages.py:1368
 msgid "Remove selected"
 msgstr "Ausgewählte Objekte löschen"
 
-#: waeup/sirp/browser/pages.py:650
-#: waeup/sirp/browser/pages.py:723
+#: waeup/sirp/browser/pages.py:654
+#: waeup/sirp/browser/pages.py:727
 msgid "Settings have been saved."
 msgstr "Einstellungen wurden gespeichert."
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:664
+#: waeup/sirp/browser/pages.py:668
 msgid "Session ${a} Configuration"
 msgstr "Session ${a}-Konfiguration"
 
-#: waeup/sirp/browser/pages.py:675
+#: waeup/sirp/browser/pages.py:679
 msgid "Plugins were updated. See log file for details."
 msgstr "Plugins wurden aktualisiert, siehe Logdatei."
 
-#: waeup/sirp/browser/pages.py:688
+#: waeup/sirp/browser/pages.py:692
 msgid "Add Session Configuration"
 msgstr "Füge Session-Konfiguration hinzu"
 
-#: waeup/sirp/browser/pages.py:695
+#: waeup/sirp/browser/pages.py:699
 msgid "The session chosen already exists."
 msgstr "Die Session existiert bereits."
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:717
+#: waeup/sirp/browser/pages.py:721
 msgid "Edit academic session ${a} configuration"
 msgstr "Bearbeite Session ${a}-Konfiguration"
 
-#: waeup/sirp/browser/pages.py:747
+#: waeup/sirp/browser/pages.py:751
 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
+#: waeup/sirp/browser/pages.py:753
+msgid "Upload"
+msgstr "Hochladen"
+
+#: waeup/sirp/browser/pages.py:799
+#: waeup/sirp/browser/pages.py:829
+#: waeup/sirp/browser/pages.py:949
+#: waeup/sirp/browser/pages.py:1057
 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
+#: waeup/sirp/browser/pages.py:813
+#: waeup/sirp/browser/pages.py:914
+#: waeup/sirp/browser/pages.py:1033
 msgid "Import aborted."
 msgstr "Import abgebrochen."
@@ -550,19 +674,247 @@
 msgstr "Keine lokalen Rollen ausgewählt."
 
-#: waeup/sirp/browser/pages.py:883
+#: waeup/sirp/browser/pages.py:832
+msgid "Back to step 1"
+msgstr "Zurück zu Schritt 1"
+
+#: waeup/sirp/browser/pages.py:833
+msgid "Proceed to step 3"
+msgstr "Gehe zu Schritt 3"
+
+#: waeup/sirp/browser/pages.py:893
 msgid "Double headers: each column name may only appear once. "
 msgstr "Doppelte Spaltenüberschrift"
 
-#: waeup/sirp/browser/pages.py:891
+#: waeup/sirp/browser/pages.py:901
 msgid "Replace imported file!"
 msgstr "Tauschen Sie die Importdatei aus!"
 
-#: waeup/sirp/browser/pages.py:916
+#: waeup/sirp/browser/pages.py:926
 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."
+#: waeup/sirp/browser/pages.py:952
+#: waeup/sirp/browser/pages.py:1161
+msgid "Reset"
+msgstr "Zurücksetzen"
+
+#: waeup/sirp/browser/pages.py:953
+msgid "Set headerfields"
+msgstr "Setze Spaltenüberschrift"
+
+#: waeup/sirp/browser/pages.py:954
+msgid "Back to step 2"
+msgstr "Zurück zu Schritt 2"
+
+#: waeup/sirp/browser/pages.py:955
+msgid "Perform import"
+msgstr "Führe Import duch"
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:10
+msgid "Course Code:"
+msgstr "Kurskürzel:"
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:14
+msgid "Course Title:"
+msgstr "Kursetitel:"
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:18
+msgid "Provided by:"
+msgstr "Angeboten von:"
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:26
+msgid "Level:"
+msgstr "Studienjahr:"
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:30
+msgid "Is mandatory course (not elective):"
+msgstr "Pflichtkurs:"
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:6
+msgid "Code:"
+msgstr "Kürzel:"
+
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:106
+msgid "User Id"
+msgstr "Benutzer Id"
+
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:110
+msgid "Local Role"
+msgstr "Lokale Rolle"
+
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:5
+msgid "Settings"
+msgstr "Einstellungen"
+
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:7
+msgid "Local Roles"
+msgstr "Lokale Rollen"
+
+#: waeup/sirp/browser/templates/certificatepage.pt:22
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:6
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:44
+msgid "Course Referrers"
+msgstr "Kursreferenzen"
+
+#: waeup/sirp/browser/templates/certificatepage.pt:28
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:48
+msgid "Level"
+msgstr "Studienjahr"
+
+#: waeup/sirp/browser/templates/certificatepage.pt:28
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:49
+msgid "Semester"
+msgstr "Semester"
+
+#: waeup/sirp/browser/templates/certificatepage.pt:29
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:49
+msgid "Referrer"
+msgstr "Kursreferenz"
+
+#: waeup/sirp/browser/templates/certificatepage.pt:29
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:50
+msgid "Course"
+msgstr "Kurs"
+
+#: waeup/sirp/browser/templates/certificatepage.pt:30
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:50
+msgid "Title"
+msgstr "Titel"
+
+#: waeup/sirp/browser/templates/certificatepage.pt:30
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:51
+msgid "Mandatory"
+msgstr "Pflicht"
+
+#: waeup/sirp/browser/templates/configurationmanagepage.pt:5
+msgid "Site Settings"
+msgstr "Einstellungen"
+
+#: waeup/sirp/browser/templates/configurationmanagepage.pt:52
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:108
+msgid "Name"
+msgstr "Name"
+
+#: waeup/sirp/browser/templates/configurationmanagepage.pt:8
+msgid "Session Configurations"
+msgstr "Session-Konfiguration"
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:1
+msgid "Step 1"
+msgstr "Schritt 1"
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:13
+msgid "Filename"
+msgstr "Dateiname"
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:14
+msgid "Datasets"
+msgstr "Datensätze"
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:2
+msgid "Using batch processing you can mass-create, mass-update, or mass-remove datasets from the database using CSV files."
+msgstr "Im Datenzentrum können Sie durch den Import von CSV-Dateien Daten des Portals massenhaft erzeugen aktualisieren oder entfernen."
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:21
+msgid "Select"
+msgstr "Auswählen"
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:6
+msgid "Please select a file for processing from the list below."
+msgstr "Wählen Sie eine Datei aus der Liste unten zum Import aus."
+
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:1
+msgid "Step 2"
+msgstr "Schritt 2"
+
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:43
+msgid "Mode:"
+msgstr "Modus:"
+
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:8
+msgid "Please select a file-processor and a processing-mode from the selections below."
+msgstr "Wählen Sie einen Datei-Prozessor und einen Verarbeitungsmodus aus der Liste unten aus."
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:1
+msgid "Header fields OK"
+msgstr "Spaltenüberschriften in Ordnung"
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:12
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:6
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:4
+msgid "File:"
+msgstr "Datei:"
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:18
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:9
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:32
+msgid "Processor:"
+msgstr "Prozessor:"
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:24
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:13
+msgid "Processing mode:"
+msgstr "Verarbeitungsmodus:"
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:44
+msgid "change to:"
+msgstr "ändere zu:"
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:6
+msgid "Step 3"
+msgstr "Schritt 3"
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:8
+msgid "Eventually modify headerfields of import file below."
+msgstr "Ändere Spaltenüberschriften der Importdateien."
+
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:1
+msgid "Step 4"
+msgstr "Schritt 4"
+
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:2
+msgid "Batch processing finished."
+msgstr "Stapelverarbeitung beendet."
+
+#: waeup/sirp/browser/templates/datacenterlogspage.pt:10
+#: waeup/sirp/browser/templates/datacenterpage.pt:14
+msgid "File"
+msgstr "Datei"
+
+#: waeup/sirp/browser/templates/datacenterlogspage.pt:12
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:16
+msgid "Date"
+msgstr "Datum"
+
+#: waeup/sirp/browser/templates/datacenterlogspage.pt:14
+#: waeup/sirp/browser/templates/datacenterpage.pt:15
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:15
+msgid "Size"
+msgstr "Dateigröße"
+
+#: waeup/sirp/browser/templates/datacenterlogspage.pt:2
+msgid "Currently no log files are available."
+msgstr "Zur Zeit sind keine Logdateien vorhanden."
+
+#: waeup/sirp/browser/templates/datacentermanagepage.pt:12
+msgid "Overwrite contents in new location?"
+msgstr "Existierende Dateien an neuem Ort überschreiben?"
+
+#: waeup/sirp/browser/templates/datacentermanagepage.pt:3
+#: waeup/sirp/browser/templates/datacenterpage.pt:7
+msgid "Storage path:"
+msgstr "Pfad des Speicherorts:"
+
+#: waeup/sirp/browser/templates/datacentermanagepage.pt:7
+msgid "Copy existing data to new storage?"
+msgstr "Existierende Dateien an neuen Ort kopieren?"
+
+#: waeup/sirp/browser/templates/datacenterpage.pt:1
+msgid "The data center helps you to manage portal data. You can upload CSV files here, which will be available for import afterwards."
+msgstr "Das Datenzentrum dient dem Hochladen und Importieren von CSV-Daten."
+
+#: waeup/sirp/browser/templates/datacenterpage.pt:16
+msgid "Uploaded"
+msgstr "Hochgeladen"
 
 #. Default: "Local Roles"
@@ -605,7 +957,54 @@
 msgstr "Ausloggen"
 
-#: waeup/sirp/browser/viewlets.py:696
+#: waeup/sirp/browser/viewlets.py:167
+msgid "Add"
+msgstr "Füge hinzu"
+
+#: waeup/sirp/browser/viewlets.py:177
+msgid "Remove"
+msgstr "Entferne"
+
+#: waeup/sirp/browser/viewlets.py:187
+msgid "Search"
+msgstr "Suche"
+
+#: waeup/sirp/browser/viewlets.py:373
+msgid "Send email"
+msgstr "Versende Email"
+
+#: waeup/sirp/browser/viewlets.py:424
+msgid "Edit settings"
+msgstr "Bearbeite Einstellungen"
+
+#: waeup/sirp/browser/viewlets.py:438
+msgid "Search academic section"
+msgstr "Durchsuche Akademie"
+
+#: waeup/sirp/browser/viewlets.py:463
+#: waeup/sirp/browser/viewlets.py:487
+msgid "Show students"
+msgstr "Zeige Studenten"
+
+#: waeup/sirp/browser/viewlets.py:518
+#: waeup/sirp/browser/viewlets.py:526
+msgid "Show batch logs"
+msgstr "Zeige Logdateien"
+
+#: waeup/sirp/browser/viewlets.py:538
+msgid "Batch processing"
+msgstr "Stapelverarbeitung"
+
+#: waeup/sirp/browser/viewlets.py:547
+msgid "Upload CSV file"
+msgstr "Lade Datei hoch"
+
+#: waeup/sirp/browser/viewlets.py:620
 msgid "Enquiries"
 msgstr "Anfragen"
+
+#: waeup/sirp/browser/viewlets.py:88
+#: waeup/sirp/browser/viewlets.py:157
+msgid "Edit"
+msgstr "Bearbeite"
 
 #: waeup/sirp/hostels/browser.py:67
@@ -613,29 +1012,29 @@
 msgstr "Wohnheime"
 
-#: waeup/sirp/interfaces.py:70
+#: waeup/sirp/interfaces.py:72
 msgid "clearance started"
 msgstr "Einschreibung begonnen"
 
-#: waeup/sirp/interfaces.py:71
+#: waeup/sirp/interfaces.py:73
 msgid "clearance requested"
 msgstr "Einschreibung beantragt"
 
-#: waeup/sirp/interfaces.py:72
+#: waeup/sirp/interfaces.py:74
 msgid "cleared"
 msgstr "eingeschrieben"
 
-#: waeup/sirp/interfaces.py:73
+#: waeup/sirp/interfaces.py:75
 msgid "school fee paid"
 msgstr "Gebühren bezahlt"
 
-#: waeup/sirp/interfaces.py:74
+#: waeup/sirp/interfaces.py:76
 msgid "returning"
 msgstr "rückgemeldet"
 
-#: waeup/sirp/interfaces.py:75
+#: waeup/sirp/interfaces.py:77
 msgid "courses registered"
 msgstr "Kurse registriert"
 
-#: waeup/sirp/interfaces.py:76
+#: waeup/sirp/interfaces.py:78
 msgid "courses validated"
 msgstr "Kurse validiert"
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 7704)
+++ main/waeup.sirp/trunk/src/waeup/sirp/locales/fr/LC_MESSAGES/waeup.sirp.po	(revision 7705)
@@ -15,5 +15,5 @@
 msgstr ""
 "Project-Id-Version: WAeUP.SIRP\n"
-"POT-Creation-Date: Fri Feb 24 23:24:12 2012\n"
+"POT-Creation-Date: Sun Feb 26 17:19:06 2012\n"
 "PO-Revision-Date: 2012-02-22 11:28+0100\n"
 "Last-Translator: Henrik Bettermann <henrik@waeup.org>\n"
@@ -109,5 +109,5 @@
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:41 waeup/sirp/interfaces.py:69
+#: waeup/sirp/applicants/workflow.py:41 waeup/sirp/interfaces.py:71
 msgid "admitted"
 msgstr ""
@@ -117,5 +117,5 @@
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:43 waeup/sirp/interfaces.py:68
+#: waeup/sirp/applicants/workflow.py:43 waeup/sirp/interfaces.py:70
 msgid "created"
 msgstr ""
@@ -177,22 +177,25 @@
 msgstr ""
 
-#: waeup/sirp/browser/breadcrumbs.py:116 waeup/sirp/browser/viewlets.py:681
+#: waeup/sirp/browser/breadcrumbs.py:116 waeup/sirp/browser/viewlets.py:605
 msgid "Academics"
 msgstr ""
 
-#: waeup/sirp/browser/breadcrumbs.py:123 waeup/sirp/browser/pages.py:302
+#: waeup/sirp/browser/breadcrumbs.py:123 waeup/sirp/browser/pages.py:308
 msgid "Administration"
 msgstr ""
 
-#: waeup/sirp/browser/breadcrumbs.py:130
+#: waeup/sirp/browser/breadcrumbs.py:130 waeup/sirp/browser/viewlets.py:350
+#: waeup/sirp/browser/viewlets.py:656
 msgid "Portal Configuration"
 msgstr ""
 
-#: waeup/sirp/browser/breadcrumbs.py:148 waeup/sirp/browser/pages.py:379
+#: waeup/sirp/browser/breadcrumbs.py:148 waeup/sirp/browser/pages.py:385
+#: waeup/sirp/browser/viewlets.py:365 waeup/sirp/browser/viewlets.py:666
 msgid "Portal Users"
 msgstr ""
 
-#: waeup/sirp/browser/breadcrumbs.py:155 waeup/sirp/browser/pages.py:740
-#: waeup/sirp/browser/pages.py:1117
+#: waeup/sirp/browser/breadcrumbs.py:155 waeup/sirp/browser/pages.py:744
+#: waeup/sirp/browser/pages.py:1136 waeup/sirp/browser/viewlets.py:383
+#: waeup/sirp/browser/viewlets.py:675
 msgid "Data Center"
 msgstr ""
@@ -202,4 +205,8 @@
 msgstr ""
 
+#: waeup/sirp/browser/pages.py:1012
+msgid "Edit headers or replace imported file!"
+msgstr ""
+
 #. Default: ""
 #: waeup/sirp/browser/pages.py:103
@@ -207,16 +214,32 @@
 msgstr ""
 
-#. Default: ""
-#: waeup/sirp/browser/pages.py:1087
+#: waeup/sirp/browser/pages.py:1059
+msgid "View processing log"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1060
+msgid "Back to data center"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:1104
 msgid "Processing of ${a} rows failed."
 msgstr ""
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:1089
+#: waeup/sirp/browser/pages.py:1106
 msgid "Successfully processed ${a} rows."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1097
+#: waeup/sirp/browser/pages.py:1114
 msgid "Show logfiles"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1116
+msgid "Back to Data Center"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1117
+msgid "Show"
 msgstr ""
 
@@ -225,66 +248,64 @@
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1139
+#: waeup/sirp/browser/pages.py:1158
 msgid "Edit data center settings"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1156
+#: waeup/sirp/browser/pages.py:1178
 msgid "File already existed (not copied):"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1158
+#: waeup/sirp/browser/pages.py:1180
 msgid "Given storage path cannot be used."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1159
+#: waeup/sirp/browser/pages.py:1181
 msgid "Error:"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1162
+#: waeup/sirp/browser/pages.py:1184
 msgid "New storage path succefully set."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1222
+#: waeup/sirp/browser/pages.py:1244
 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
+#: waeup/sirp/browser/pages.py:1256 waeup/sirp/browser/pages.py:1272
+#: waeup/sirp/browser/pages.py:1289 waeup/sirp/browser/pages.py:1293
 msgid "Add faculty"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1235
+#: waeup/sirp/browser/pages.py:1257
 msgid "Faculties"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1239
+#: waeup/sirp/browser/pages.py:1261 waeup/sirp/browser/viewlets.py:431
 msgid "Manage academic section"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1278
+#: waeup/sirp/browser/pages.py:1300
 msgid "The faculty code chosen already exists."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1299 waeup/sirp/browser/pages.py:1309
+#: waeup/sirp/browser/pages.py:1321 waeup/sirp/browser/pages.py:1331
 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
+#: waeup/sirp/browser/pages.py:1333 waeup/sirp/browser/pages.py:1384
+#: waeup/sirp/browser/pages.py:1403 waeup/sirp/browser/pages.py:1407
 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
+#: waeup/sirp/browser/pages.py:1334 waeup/sirp/browser/pages.py:1393
+#: waeup/sirp/browser/pages.py:1503 waeup/sirp/browser/pages.py:1589
+#: waeup/sirp/browser/pages.py:1749 waeup/sirp/browser/pages.py:1806
 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
+#: waeup/sirp/browser/pages.py:1335 waeup/sirp/browser/pages.py:1389
+#: waeup/sirp/browser/pages.py:1504 waeup/sirp/browser/pages.py:1585
+#: waeup/sirp/browser/pages.py:1750 waeup/sirp/browser/pages.py:1802
 msgid "Add local role"
-msgstr ""
-
-#: waeup/sirp/browser/pages.py:1319
-msgid "Manage faculty"
 msgstr ""
 
@@ -294,47 +315,54 @@
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1354
+#: waeup/sirp/browser/pages.py:1341 waeup/sirp/browser/viewlets.py:447
+msgid "Manage faculty"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1376 waeup/sirp/browser/pages.py:1698
+#: waeup/sirp/browser/pages.py:1770 waeup/sirp/browser/pages.py:1882
 msgid "Form has been saved."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1392
+#: waeup/sirp/browser/pages.py:1414
 msgid "The code chosen already exists in this faculty."
 msgstr ""
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:1395
+#: waeup/sirp/browser/pages.py:1417
 msgid "Department ${a} added."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1412
+#: waeup/sirp/browser/pages.py:1434
 msgid "Courses and Certificates"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1442 waeup/sirp/browser/pages.py:1461
+#: waeup/sirp/browser/pages.py:1464 waeup/sirp/browser/pages.py:1483
 #: waeup/sirp/students/viewlets.py:466
 msgid "Students"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1478 waeup/sirp/browser/pages.py:1536
+#: waeup/sirp/browser/pages.py:1500 waeup/sirp/browser/pages.py:1558
 msgid "Remove selected courses"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1478 waeup/sirp/browser/pages.py:1548
+#: waeup/sirp/browser/pages.py:1500 waeup/sirp/browser/pages.py:1570
+#: waeup/sirp/browser/pages.py:1599 waeup/sirp/browser/pages.py:1603
 msgid "Add course"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1479 waeup/sirp/browser/pages.py:1542
+#: waeup/sirp/browser/pages.py:1501 waeup/sirp/browser/pages.py:1564
 msgid "Remove selected certificates"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1479 waeup/sirp/browser/pages.py:1553
+#: waeup/sirp/browser/pages.py:1501 waeup/sirp/browser/pages.py:1575
+#: waeup/sirp/browser/pages.py:1636 waeup/sirp/browser/pages.py:1640
 msgid "Add certificate"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1488
+#: waeup/sirp/browser/pages.py:1510 waeup/sirp/browser/viewlets.py:454
 msgid "Manage department"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:152
+#: waeup/sirp/browser/pages.py:152 waeup/sirp/browser/viewlets.py:312
 #: waeup/sirp/browser/templates/staffsitelayout.pt:28
 #: waeup/sirp/browser/templates/studentsitelayout.pt:33
@@ -346,8 +374,59 @@
 msgstr ""
 
+#: waeup/sirp/browser/pages.py:1615
+msgid "A course with same code already exists: "
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:1621
+msgid "Course ${a} successfully created."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1652
+msgid "A certificate with same code already exists: "
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:1658
+msgid "Certificate ${a} successfully created."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1690 waeup/sirp/browser/viewlets.py:471
+msgid "Edit course"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1740
+msgid "Edit certificate"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1747 waeup/sirp/browser/pages.py:1778
+#: waeup/sirp/browser/pages.py:1819 waeup/sirp/browser/pages.py:1821
+msgid "Add course referrer"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1748 waeup/sirp/browser/pages.py:1773
+msgid "Remove selected course referrers"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1754 waeup/sirp/browser/viewlets.py:478
+msgid "Manage certificate"
+msgstr ""
+
 #: waeup/sirp/browser/pages.py:177
 msgid "You entered wrong credentials."
 msgstr ""
 
+#: waeup/sirp/browser/pages.py:1826
+msgid "The chosen course referrer is already part of this certificate."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1867 waeup/sirp/browser/viewlets.py:495
+msgid "Edit course referrer"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1870
+msgid "Save and return"
+msgstr ""
+
 #: waeup/sirp/browser/pages.py:191
 msgid "You have been logged out. Thanks for using WAeUP SIRP!"
@@ -359,10 +438,10 @@
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:233 waeup/sirp/browser/pages.py:510
+#: waeup/sirp/browser/pages.py:233 waeup/sirp/browser/pages.py:516
 msgid "Send message now"
 msgstr ""
 
 #: waeup/sirp/browser/pages.py:252 waeup/sirp/browser/pages.py:271
-#: waeup/sirp/browser/pages.py:527
+#: waeup/sirp/browser/pages.py:533
 msgid "Your message has been sent."
 msgstr ""
@@ -376,120 +455,137 @@
 msgstr ""
 
-#. Default: ""
-#: waeup/sirp/browser/pages.py:386
+#: waeup/sirp/browser/pages.py:298
+msgid "<h1>Welcome to WAeUP.SIRP</h1>"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:392
 msgid "User account ${a} successfully deleted."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:417 waeup/sirp/browser/pages.py:419
+#: waeup/sirp/browser/pages.py:423 waeup/sirp/browser/pages.py:425
+#: waeup/sirp/browser/viewlets.py:505
 msgid "Add user"
 msgstr ""
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:441
+#: waeup/sirp/browser/pages.py:447
 msgid "User account ${a} successfully added."
 msgstr ""
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:460
+#: waeup/sirp/browser/pages.py:466
 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
+#: waeup/sirp/browser/pages.py:473 waeup/sirp/browser/pages.py:627
+#: waeup/sirp/browser/pages.py:724 waeup/sirp/browser/pages.py:1160
+#: waeup/sirp/browser/pages.py:1332 waeup/sirp/browser/pages.py:1499
+#: waeup/sirp/browser/pages.py:1552 waeup/sirp/browser/pages.py:1695
+#: waeup/sirp/browser/pages.py:1746
 msgid "Save"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:491
+#: waeup/sirp/browser/pages.py:497
 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
+#: waeup/sirp/browser/pages.py:500 waeup/sirp/browser/pages.py:704
+#: waeup/sirp/browser/pages.py:731 waeup/sirp/browser/pages.py:754
+#: waeup/sirp/browser/pages.py:801 waeup/sirp/browser/pages.py:831
+#: waeup/sirp/browser/pages.py:951 waeup/sirp/browser/pages.py:1162
+#: waeup/sirp/browser/pages.py:1256 waeup/sirp/browser/pages.py:1277
+#: waeup/sirp/browser/pages.py:1304 waeup/sirp/browser/pages.py:1332
+#: waeup/sirp/browser/pages.py:1333 waeup/sirp/browser/pages.py:1379
+#: waeup/sirp/browser/pages.py:1420 waeup/sirp/browser/pages.py:1499
+#: waeup/sirp/browser/pages.py:1500 waeup/sirp/browser/pages.py:1502
+#: waeup/sirp/browser/pages.py:1580 waeup/sirp/browser/pages.py:1663
+#: waeup/sirp/browser/pages.py:1707 waeup/sirp/browser/pages.py:1746
+#: waeup/sirp/browser/pages.py:1748 waeup/sirp/browser/pages.py:1783
+#: waeup/sirp/browser/pages.py:1834 waeup/sirp/browser/pages.py:1886
 msgid "Cancel"
 msgstr ""
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:508
+#: waeup/sirp/browser/pages.py:514
 msgid "Send message to ${a}"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:537
+#: waeup/sirp/browser/pages.py:543 waeup/sirp/browser/viewlets.py:390
 msgid "My Preferences"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:550
+#: waeup/sirp/browser/pages.py:556 waeup/sirp/browser/viewlets.py:405
 msgid "My Roles"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:581
+#: waeup/sirp/browser/pages.py:587
 msgid "Search Academic Section"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:607
+#: waeup/sirp/browser/pages.py:613
 msgid "View portal configuration"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:620
+#: waeup/sirp/browser/pages.py:626
 msgid "Edit portal configuration"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:621 waeup/sirp/browser/pages.py:672
+#: waeup/sirp/browser/pages.py:627 waeup/sirp/browser/pages.py:676
 msgid "Update plugins"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:623 waeup/sirp/browser/pages.py:653
-#: waeup/sirp/browser/pages.py:684
+#: waeup/sirp/browser/pages.py:629 waeup/sirp/browser/pages.py:657
+#: waeup/sirp/browser/pages.py:688
 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
+#: waeup/sirp/browser/pages.py:630 waeup/sirp/browser/pages.py:671
+#: waeup/sirp/browser/pages.py:1256 waeup/sirp/browser/pages.py:1267
+#: waeup/sirp/browser/pages.py:1333 waeup/sirp/browser/pages.py:1368
 msgid "Remove selected"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:650 waeup/sirp/browser/pages.py:723
+#: waeup/sirp/browser/pages.py:654 waeup/sirp/browser/pages.py:727
 msgid "Settings have been saved."
 msgstr ""
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:664
+#: waeup/sirp/browser/pages.py:668
 msgid "Session ${a} Configuration"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:675
+#: waeup/sirp/browser/pages.py:679
 msgid "Plugins were updated. See log file for details."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:688
+#: waeup/sirp/browser/pages.py:692
 msgid "Add Session Configuration"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:695
+#: waeup/sirp/browser/pages.py:699
 msgid "The session chosen already exists."
 msgstr ""
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:717
+#: waeup/sirp/browser/pages.py:721
 msgid "Edit academic session ${a} configuration"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:747
+#: waeup/sirp/browser/pages.py:751
 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
+#: waeup/sirp/browser/pages.py:753
+msgid "Upload"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:799 waeup/sirp/browser/pages.py:829
+#: waeup/sirp/browser/pages.py:949 waeup/sirp/browser/pages.py:1057
 msgid "Process CSV file"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:806 waeup/sirp/browser/pages.py:904
-#: waeup/sirp/browser/pages.py:1018
+#: waeup/sirp/browser/pages.py:813 waeup/sirp/browser/pages.py:914
+#: waeup/sirp/browser/pages.py:1033
 msgid "Import aborted."
 msgstr ""
@@ -499,18 +595,251 @@
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:883
+#: waeup/sirp/browser/pages.py:832
+msgid "Back to step 1"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:833
+msgid "Proceed to step 3"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:893
 msgid "Double headers: each column name may only appear once. "
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:891
+#: waeup/sirp/browser/pages.py:901
 msgid "Replace imported file!"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:916
+#: waeup/sirp/browser/pages.py:926
 msgid "Update mode only!"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:997
-msgid "Edit headers or replace imported file!"
+#: waeup/sirp/browser/pages.py:952 waeup/sirp/browser/pages.py:1161
+msgid "Reset"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:953
+msgid "Set headerfields"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:954
+msgid "Back to step 2"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:955
+msgid "Perform import"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:10
+msgid "Course Code:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:14
+msgid "Course Title:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:18
+msgid "Provided by:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:26
+msgid "Level:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:30
+msgid "Is mandatory course (not elective):"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:6
+msgid "Code:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:106
+msgid "User Id"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:110
+msgid "Local Role"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:5
+msgid "Settings"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:7
+msgid "Local Roles"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:22
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:6
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:44
+msgid "Course Referrers"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:28
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:48
+msgid "Level"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:28
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:49
+msgid "Semester"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:29
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:49
+msgid "Referrer"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:29
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:50
+msgid "Course"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:30
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:50
+msgid "Title"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:30
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:51
+msgid "Mandatory"
+msgstr ""
+
+#: waeup/sirp/browser/templates/configurationmanagepage.pt:5
+msgid "Site Settings"
+msgstr ""
+
+#: waeup/sirp/browser/templates/configurationmanagepage.pt:52
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:108
+msgid "Name"
+msgstr ""
+
+#: waeup/sirp/browser/templates/configurationmanagepage.pt:8
+msgid "Session Configurations"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:1
+msgid "Step 1"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:13
+msgid "Filename"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:14
+msgid "Datasets"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:2
+msgid ""
+"Using batch processing you can mass-create, mass-update, or mass-remove "
+"datasets from the database using CSV files."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:21
+msgid "Select"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:6
+msgid "Please select a file for processing from the list below."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:1
+msgid "Step 2"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:43
+msgid "Mode:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:8
+msgid ""
+"Please select a file-processor and a processing-mode from the selections "
+"below."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:1
+msgid "Header fields OK"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:12
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:6
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:4
+msgid "File:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:18
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:9
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:32
+msgid "Processor:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:24
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:13
+msgid "Processing mode:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:44
+msgid "change to:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:6
+msgid "Step 3"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:8
+msgid "Eventually modify headerfields of import file below."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:1
+msgid "Step 4"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:2
+msgid "Batch processing finished."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterlogspage.pt:10
+#: waeup/sirp/browser/templates/datacenterpage.pt:14
+msgid "File"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterlogspage.pt:12
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:16
+msgid "Date"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterlogspage.pt:14
+#: waeup/sirp/browser/templates/datacenterpage.pt:15
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:15
+msgid "Size"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterlogspage.pt:2
+msgid "Currently no log files are available."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacentermanagepage.pt:12
+msgid "Overwrite contents in new location?"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacentermanagepage.pt:3
+#: waeup/sirp/browser/templates/datacenterpage.pt:7
+msgid "Storage path:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacentermanagepage.pt:7
+msgid "Copy existing data to new storage?"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterpage.pt:1
+msgid ""
+"The data center helps you to manage portal data. You can upload CSV files "
+"here, which will be available for import afterwards."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterpage.pt:16
+msgid "Uploaded"
 msgstr ""
 
@@ -554,6 +883,50 @@
 msgstr ""
 
-#: waeup/sirp/browser/viewlets.py:696
+#: waeup/sirp/browser/viewlets.py:167
+msgid "Add"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:177
+msgid "Remove"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:187
+msgid "Search"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:373
+msgid "Send email"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:424
+msgid "Edit settings"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:438
+msgid "Search academic section"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:463 waeup/sirp/browser/viewlets.py:487
+msgid "Show students"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:518 waeup/sirp/browser/viewlets.py:526
+msgid "Show batch logs"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:538
+msgid "Batch processing"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:547
+msgid "Upload CSV file"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:620
 msgid "Enquiries"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:88 waeup/sirp/browser/viewlets.py:157
+msgid "Edit"
 msgstr ""
 
@@ -562,29 +935,29 @@
 msgstr ""
 
-#: waeup/sirp/interfaces.py:70
+#: waeup/sirp/interfaces.py:72
 msgid "clearance started"
 msgstr ""
 
-#: waeup/sirp/interfaces.py:71
+#: waeup/sirp/interfaces.py:73
 msgid "clearance requested"
 msgstr ""
 
-#: waeup/sirp/interfaces.py:72
+#: waeup/sirp/interfaces.py:74
 msgid "cleared"
 msgstr ""
 
-#: waeup/sirp/interfaces.py:73
+#: waeup/sirp/interfaces.py:75
 msgid "school fee paid"
 msgstr ""
 
-#: waeup/sirp/interfaces.py:74
+#: waeup/sirp/interfaces.py:76
 msgid "returning"
 msgstr ""
 
-#: waeup/sirp/interfaces.py:75
+#: waeup/sirp/interfaces.py:77
 msgid "courses registered"
 msgstr ""
 
-#: waeup/sirp/interfaces.py:76
+#: waeup/sirp/interfaces.py:78
 msgid "courses validated"
 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 7704)
+++ main/waeup.sirp/trunk/src/waeup/sirp/locales/ha/LC_MESSAGES/waeup.sirp.po	(revision 7705)
@@ -15,5 +15,5 @@
 msgstr ""
 "Project-Id-Version: WAeUP.SIRP\n"
-"POT-Creation-Date: Fri Feb 24 23:24:12 2012\n"
+"POT-Creation-Date: Sun Feb 26 17:19:06 2012\n"
 "PO-Revision-Date: 2012-02-22 11:28+0100\n"
 "Last-Translator: Henrik Bettermann <henrik@waeup.org>\n"
@@ -109,5 +109,5 @@
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:41 waeup/sirp/interfaces.py:69
+#: waeup/sirp/applicants/workflow.py:41 waeup/sirp/interfaces.py:71
 msgid "admitted"
 msgstr ""
@@ -117,5 +117,5 @@
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:43 waeup/sirp/interfaces.py:68
+#: waeup/sirp/applicants/workflow.py:43 waeup/sirp/interfaces.py:70
 msgid "created"
 msgstr ""
@@ -177,22 +177,25 @@
 msgstr ""
 
-#: waeup/sirp/browser/breadcrumbs.py:116 waeup/sirp/browser/viewlets.py:681
+#: waeup/sirp/browser/breadcrumbs.py:116 waeup/sirp/browser/viewlets.py:605
 msgid "Academics"
 msgstr ""
 
-#: waeup/sirp/browser/breadcrumbs.py:123 waeup/sirp/browser/pages.py:302
+#: waeup/sirp/browser/breadcrumbs.py:123 waeup/sirp/browser/pages.py:308
 msgid "Administration"
 msgstr ""
 
-#: waeup/sirp/browser/breadcrumbs.py:130
+#: waeup/sirp/browser/breadcrumbs.py:130 waeup/sirp/browser/viewlets.py:350
+#: waeup/sirp/browser/viewlets.py:656
 msgid "Portal Configuration"
 msgstr ""
 
-#: waeup/sirp/browser/breadcrumbs.py:148 waeup/sirp/browser/pages.py:379
+#: waeup/sirp/browser/breadcrumbs.py:148 waeup/sirp/browser/pages.py:385
+#: waeup/sirp/browser/viewlets.py:365 waeup/sirp/browser/viewlets.py:666
 msgid "Portal Users"
 msgstr ""
 
-#: waeup/sirp/browser/breadcrumbs.py:155 waeup/sirp/browser/pages.py:740
-#: waeup/sirp/browser/pages.py:1117
+#: waeup/sirp/browser/breadcrumbs.py:155 waeup/sirp/browser/pages.py:744
+#: waeup/sirp/browser/pages.py:1136 waeup/sirp/browser/viewlets.py:383
+#: waeup/sirp/browser/viewlets.py:675
 msgid "Data Center"
 msgstr ""
@@ -202,4 +205,8 @@
 msgstr ""
 
+#: waeup/sirp/browser/pages.py:1012
+msgid "Edit headers or replace imported file!"
+msgstr ""
+
 #. Default: ""
 #: waeup/sirp/browser/pages.py:103
@@ -207,16 +214,32 @@
 msgstr ""
 
-#. Default: ""
-#: waeup/sirp/browser/pages.py:1087
+#: waeup/sirp/browser/pages.py:1059
+msgid "View processing log"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1060
+msgid "Back to data center"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:1104
 msgid "Processing of ${a} rows failed."
 msgstr ""
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:1089
+#: waeup/sirp/browser/pages.py:1106
 msgid "Successfully processed ${a} rows."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1097
+#: waeup/sirp/browser/pages.py:1114
 msgid "Show logfiles"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1116
+msgid "Back to Data Center"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1117
+msgid "Show"
 msgstr ""
 
@@ -225,66 +248,64 @@
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1139
+#: waeup/sirp/browser/pages.py:1158
 msgid "Edit data center settings"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1156
+#: waeup/sirp/browser/pages.py:1178
 msgid "File already existed (not copied):"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1158
+#: waeup/sirp/browser/pages.py:1180
 msgid "Given storage path cannot be used."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1159
+#: waeup/sirp/browser/pages.py:1181
 msgid "Error:"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1162
+#: waeup/sirp/browser/pages.py:1184
 msgid "New storage path succefully set."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1222
+#: waeup/sirp/browser/pages.py:1244
 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
+#: waeup/sirp/browser/pages.py:1256 waeup/sirp/browser/pages.py:1272
+#: waeup/sirp/browser/pages.py:1289 waeup/sirp/browser/pages.py:1293
 msgid "Add faculty"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1235
+#: waeup/sirp/browser/pages.py:1257
 msgid "Faculties"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1239
+#: waeup/sirp/browser/pages.py:1261 waeup/sirp/browser/viewlets.py:431
 msgid "Manage academic section"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1278
+#: waeup/sirp/browser/pages.py:1300
 msgid "The faculty code chosen already exists."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1299 waeup/sirp/browser/pages.py:1309
+#: waeup/sirp/browser/pages.py:1321 waeup/sirp/browser/pages.py:1331
 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
+#: waeup/sirp/browser/pages.py:1333 waeup/sirp/browser/pages.py:1384
+#: waeup/sirp/browser/pages.py:1403 waeup/sirp/browser/pages.py:1407
 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
+#: waeup/sirp/browser/pages.py:1334 waeup/sirp/browser/pages.py:1393
+#: waeup/sirp/browser/pages.py:1503 waeup/sirp/browser/pages.py:1589
+#: waeup/sirp/browser/pages.py:1749 waeup/sirp/browser/pages.py:1806
 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
+#: waeup/sirp/browser/pages.py:1335 waeup/sirp/browser/pages.py:1389
+#: waeup/sirp/browser/pages.py:1504 waeup/sirp/browser/pages.py:1585
+#: waeup/sirp/browser/pages.py:1750 waeup/sirp/browser/pages.py:1802
 msgid "Add local role"
-msgstr ""
-
-#: waeup/sirp/browser/pages.py:1319
-msgid "Manage faculty"
 msgstr ""
 
@@ -294,47 +315,54 @@
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1354
+#: waeup/sirp/browser/pages.py:1341 waeup/sirp/browser/viewlets.py:447
+msgid "Manage faculty"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1376 waeup/sirp/browser/pages.py:1698
+#: waeup/sirp/browser/pages.py:1770 waeup/sirp/browser/pages.py:1882
 msgid "Form has been saved."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1392
+#: waeup/sirp/browser/pages.py:1414
 msgid "The code chosen already exists in this faculty."
 msgstr ""
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:1395
+#: waeup/sirp/browser/pages.py:1417
 msgid "Department ${a} added."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1412
+#: waeup/sirp/browser/pages.py:1434
 msgid "Courses and Certificates"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1442 waeup/sirp/browser/pages.py:1461
+#: waeup/sirp/browser/pages.py:1464 waeup/sirp/browser/pages.py:1483
 #: waeup/sirp/students/viewlets.py:466
 msgid "Students"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1478 waeup/sirp/browser/pages.py:1536
+#: waeup/sirp/browser/pages.py:1500 waeup/sirp/browser/pages.py:1558
 msgid "Remove selected courses"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1478 waeup/sirp/browser/pages.py:1548
+#: waeup/sirp/browser/pages.py:1500 waeup/sirp/browser/pages.py:1570
+#: waeup/sirp/browser/pages.py:1599 waeup/sirp/browser/pages.py:1603
 msgid "Add course"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1479 waeup/sirp/browser/pages.py:1542
+#: waeup/sirp/browser/pages.py:1501 waeup/sirp/browser/pages.py:1564
 msgid "Remove selected certificates"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1479 waeup/sirp/browser/pages.py:1553
+#: waeup/sirp/browser/pages.py:1501 waeup/sirp/browser/pages.py:1575
+#: waeup/sirp/browser/pages.py:1636 waeup/sirp/browser/pages.py:1640
 msgid "Add certificate"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1488
+#: waeup/sirp/browser/pages.py:1510 waeup/sirp/browser/viewlets.py:454
 msgid "Manage department"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:152
+#: waeup/sirp/browser/pages.py:152 waeup/sirp/browser/viewlets.py:312
 #: waeup/sirp/browser/templates/staffsitelayout.pt:28
 #: waeup/sirp/browser/templates/studentsitelayout.pt:33
@@ -346,8 +374,59 @@
 msgstr ""
 
+#: waeup/sirp/browser/pages.py:1615
+msgid "A course with same code already exists: "
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:1621
+msgid "Course ${a} successfully created."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1652
+msgid "A certificate with same code already exists: "
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:1658
+msgid "Certificate ${a} successfully created."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1690 waeup/sirp/browser/viewlets.py:471
+msgid "Edit course"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1740
+msgid "Edit certificate"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1747 waeup/sirp/browser/pages.py:1778
+#: waeup/sirp/browser/pages.py:1819 waeup/sirp/browser/pages.py:1821
+msgid "Add course referrer"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1748 waeup/sirp/browser/pages.py:1773
+msgid "Remove selected course referrers"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1754 waeup/sirp/browser/viewlets.py:478
+msgid "Manage certificate"
+msgstr ""
+
 #: waeup/sirp/browser/pages.py:177
 msgid "You entered wrong credentials."
 msgstr ""
 
+#: waeup/sirp/browser/pages.py:1826
+msgid "The chosen course referrer is already part of this certificate."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1867 waeup/sirp/browser/viewlets.py:495
+msgid "Edit course referrer"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1870
+msgid "Save and return"
+msgstr ""
+
 #: waeup/sirp/browser/pages.py:191
 msgid "You have been logged out. Thanks for using WAeUP SIRP!"
@@ -359,10 +438,10 @@
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:233 waeup/sirp/browser/pages.py:510
+#: waeup/sirp/browser/pages.py:233 waeup/sirp/browser/pages.py:516
 msgid "Send message now"
 msgstr ""
 
 #: waeup/sirp/browser/pages.py:252 waeup/sirp/browser/pages.py:271
-#: waeup/sirp/browser/pages.py:527
+#: waeup/sirp/browser/pages.py:533
 msgid "Your message has been sent."
 msgstr ""
@@ -376,120 +455,137 @@
 msgstr ""
 
-#. Default: ""
-#: waeup/sirp/browser/pages.py:386
+#: waeup/sirp/browser/pages.py:298
+msgid "<h1>Welcome to WAeUP.SIRP</h1>"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:392
 msgid "User account ${a} successfully deleted."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:417 waeup/sirp/browser/pages.py:419
+#: waeup/sirp/browser/pages.py:423 waeup/sirp/browser/pages.py:425
+#: waeup/sirp/browser/viewlets.py:505
 msgid "Add user"
 msgstr ""
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:441
+#: waeup/sirp/browser/pages.py:447
 msgid "User account ${a} successfully added."
 msgstr ""
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:460
+#: waeup/sirp/browser/pages.py:466
 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
+#: waeup/sirp/browser/pages.py:473 waeup/sirp/browser/pages.py:627
+#: waeup/sirp/browser/pages.py:724 waeup/sirp/browser/pages.py:1160
+#: waeup/sirp/browser/pages.py:1332 waeup/sirp/browser/pages.py:1499
+#: waeup/sirp/browser/pages.py:1552 waeup/sirp/browser/pages.py:1695
+#: waeup/sirp/browser/pages.py:1746
 msgid "Save"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:491
+#: waeup/sirp/browser/pages.py:497
 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
+#: waeup/sirp/browser/pages.py:500 waeup/sirp/browser/pages.py:704
+#: waeup/sirp/browser/pages.py:731 waeup/sirp/browser/pages.py:754
+#: waeup/sirp/browser/pages.py:801 waeup/sirp/browser/pages.py:831
+#: waeup/sirp/browser/pages.py:951 waeup/sirp/browser/pages.py:1162
+#: waeup/sirp/browser/pages.py:1256 waeup/sirp/browser/pages.py:1277
+#: waeup/sirp/browser/pages.py:1304 waeup/sirp/browser/pages.py:1332
+#: waeup/sirp/browser/pages.py:1333 waeup/sirp/browser/pages.py:1379
+#: waeup/sirp/browser/pages.py:1420 waeup/sirp/browser/pages.py:1499
+#: waeup/sirp/browser/pages.py:1500 waeup/sirp/browser/pages.py:1502
+#: waeup/sirp/browser/pages.py:1580 waeup/sirp/browser/pages.py:1663
+#: waeup/sirp/browser/pages.py:1707 waeup/sirp/browser/pages.py:1746
+#: waeup/sirp/browser/pages.py:1748 waeup/sirp/browser/pages.py:1783
+#: waeup/sirp/browser/pages.py:1834 waeup/sirp/browser/pages.py:1886
 msgid "Cancel"
 msgstr ""
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:508
+#: waeup/sirp/browser/pages.py:514
 msgid "Send message to ${a}"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:537
+#: waeup/sirp/browser/pages.py:543 waeup/sirp/browser/viewlets.py:390
 msgid "My Preferences"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:550
+#: waeup/sirp/browser/pages.py:556 waeup/sirp/browser/viewlets.py:405
 msgid "My Roles"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:581
+#: waeup/sirp/browser/pages.py:587
 msgid "Search Academic Section"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:607
+#: waeup/sirp/browser/pages.py:613
 msgid "View portal configuration"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:620
+#: waeup/sirp/browser/pages.py:626
 msgid "Edit portal configuration"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:621 waeup/sirp/browser/pages.py:672
+#: waeup/sirp/browser/pages.py:627 waeup/sirp/browser/pages.py:676
 msgid "Update plugins"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:623 waeup/sirp/browser/pages.py:653
-#: waeup/sirp/browser/pages.py:684
+#: waeup/sirp/browser/pages.py:629 waeup/sirp/browser/pages.py:657
+#: waeup/sirp/browser/pages.py:688
 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
+#: waeup/sirp/browser/pages.py:630 waeup/sirp/browser/pages.py:671
+#: waeup/sirp/browser/pages.py:1256 waeup/sirp/browser/pages.py:1267
+#: waeup/sirp/browser/pages.py:1333 waeup/sirp/browser/pages.py:1368
 msgid "Remove selected"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:650 waeup/sirp/browser/pages.py:723
+#: waeup/sirp/browser/pages.py:654 waeup/sirp/browser/pages.py:727
 msgid "Settings have been saved."
 msgstr ""
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:664
+#: waeup/sirp/browser/pages.py:668
 msgid "Session ${a} Configuration"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:675
+#: waeup/sirp/browser/pages.py:679
 msgid "Plugins were updated. See log file for details."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:688
+#: waeup/sirp/browser/pages.py:692
 msgid "Add Session Configuration"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:695
+#: waeup/sirp/browser/pages.py:699
 msgid "The session chosen already exists."
 msgstr ""
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:717
+#: waeup/sirp/browser/pages.py:721
 msgid "Edit academic session ${a} configuration"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:747
+#: waeup/sirp/browser/pages.py:751
 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
+#: waeup/sirp/browser/pages.py:753
+msgid "Upload"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:799 waeup/sirp/browser/pages.py:829
+#: waeup/sirp/browser/pages.py:949 waeup/sirp/browser/pages.py:1057
 msgid "Process CSV file"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:806 waeup/sirp/browser/pages.py:904
-#: waeup/sirp/browser/pages.py:1018
+#: waeup/sirp/browser/pages.py:813 waeup/sirp/browser/pages.py:914
+#: waeup/sirp/browser/pages.py:1033
 msgid "Import aborted."
 msgstr ""
@@ -499,18 +595,251 @@
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:883
+#: waeup/sirp/browser/pages.py:832
+msgid "Back to step 1"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:833
+msgid "Proceed to step 3"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:893
 msgid "Double headers: each column name may only appear once. "
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:891
+#: waeup/sirp/browser/pages.py:901
 msgid "Replace imported file!"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:916
+#: waeup/sirp/browser/pages.py:926
 msgid "Update mode only!"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:997
-msgid "Edit headers or replace imported file!"
+#: waeup/sirp/browser/pages.py:952 waeup/sirp/browser/pages.py:1161
+msgid "Reset"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:953
+msgid "Set headerfields"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:954
+msgid "Back to step 2"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:955
+msgid "Perform import"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:10
+msgid "Course Code:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:14
+msgid "Course Title:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:18
+msgid "Provided by:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:26
+msgid "Level:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:30
+msgid "Is mandatory course (not elective):"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:6
+msgid "Code:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:106
+msgid "User Id"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:110
+msgid "Local Role"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:5
+msgid "Settings"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:7
+msgid "Local Roles"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:22
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:6
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:44
+msgid "Course Referrers"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:28
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:48
+msgid "Level"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:28
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:49
+msgid "Semester"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:29
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:49
+msgid "Referrer"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:29
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:50
+msgid "Course"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:30
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:50
+msgid "Title"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:30
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:51
+msgid "Mandatory"
+msgstr ""
+
+#: waeup/sirp/browser/templates/configurationmanagepage.pt:5
+msgid "Site Settings"
+msgstr ""
+
+#: waeup/sirp/browser/templates/configurationmanagepage.pt:52
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:108
+msgid "Name"
+msgstr ""
+
+#: waeup/sirp/browser/templates/configurationmanagepage.pt:8
+msgid "Session Configurations"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:1
+msgid "Step 1"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:13
+msgid "Filename"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:14
+msgid "Datasets"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:2
+msgid ""
+"Using batch processing you can mass-create, mass-update, or mass-remove "
+"datasets from the database using CSV files."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:21
+msgid "Select"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:6
+msgid "Please select a file for processing from the list below."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:1
+msgid "Step 2"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:43
+msgid "Mode:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:8
+msgid ""
+"Please select a file-processor and a processing-mode from the selections "
+"below."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:1
+msgid "Header fields OK"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:12
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:6
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:4
+msgid "File:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:18
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:9
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:32
+msgid "Processor:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:24
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:13
+msgid "Processing mode:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:44
+msgid "change to:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:6
+msgid "Step 3"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:8
+msgid "Eventually modify headerfields of import file below."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:1
+msgid "Step 4"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:2
+msgid "Batch processing finished."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterlogspage.pt:10
+#: waeup/sirp/browser/templates/datacenterpage.pt:14
+msgid "File"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterlogspage.pt:12
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:16
+msgid "Date"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterlogspage.pt:14
+#: waeup/sirp/browser/templates/datacenterpage.pt:15
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:15
+msgid "Size"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterlogspage.pt:2
+msgid "Currently no log files are available."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacentermanagepage.pt:12
+msgid "Overwrite contents in new location?"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacentermanagepage.pt:3
+#: waeup/sirp/browser/templates/datacenterpage.pt:7
+msgid "Storage path:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacentermanagepage.pt:7
+msgid "Copy existing data to new storage?"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterpage.pt:1
+msgid ""
+"The data center helps you to manage portal data. You can upload CSV files "
+"here, which will be available for import afterwards."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterpage.pt:16
+msgid "Uploaded"
 msgstr ""
 
@@ -554,6 +883,50 @@
 msgstr ""
 
-#: waeup/sirp/browser/viewlets.py:696
+#: waeup/sirp/browser/viewlets.py:167
+msgid "Add"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:177
+msgid "Remove"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:187
+msgid "Search"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:373
+msgid "Send email"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:424
+msgid "Edit settings"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:438
+msgid "Search academic section"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:463 waeup/sirp/browser/viewlets.py:487
+msgid "Show students"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:518 waeup/sirp/browser/viewlets.py:526
+msgid "Show batch logs"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:538
+msgid "Batch processing"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:547
+msgid "Upload CSV file"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:620
 msgid "Enquiries"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:88 waeup/sirp/browser/viewlets.py:157
+msgid "Edit"
 msgstr ""
 
@@ -562,29 +935,29 @@
 msgstr ""
 
-#: waeup/sirp/interfaces.py:70
+#: waeup/sirp/interfaces.py:72
 msgid "clearance started"
 msgstr ""
 
-#: waeup/sirp/interfaces.py:71
+#: waeup/sirp/interfaces.py:73
 msgid "clearance requested"
 msgstr ""
 
-#: waeup/sirp/interfaces.py:72
+#: waeup/sirp/interfaces.py:74
 msgid "cleared"
 msgstr ""
 
-#: waeup/sirp/interfaces.py:73
+#: waeup/sirp/interfaces.py:75
 msgid "school fee paid"
 msgstr ""
 
-#: waeup/sirp/interfaces.py:74
+#: waeup/sirp/interfaces.py:76
 msgid "returning"
 msgstr ""
 
-#: waeup/sirp/interfaces.py:75
+#: waeup/sirp/interfaces.py:77
 msgid "courses registered"
 msgstr ""
 
-#: waeup/sirp/interfaces.py:76
+#: waeup/sirp/interfaces.py:78
 msgid "courses validated"
 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 7704)
+++ main/waeup.sirp/trunk/src/waeup/sirp/locales/waeup.sirp.pot	(revision 7705)
@@ -15,5 +15,5 @@
 msgstr ""
 "Project-Id-Version: Development/Unknown\n"
-"POT-Creation-Date: Fri Feb 24 23:24:12 2012\n"
+"POT-Creation-Date: Sun Feb 26 17:21:06 2012\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
@@ -113,5 +113,5 @@
 
 #: waeup/sirp/applicants/workflow.py:41
-#: waeup/sirp/interfaces.py:69
+#: waeup/sirp/interfaces.py:71
 msgid "admitted"
 msgstr ""
@@ -122,5 +122,5 @@
 
 #: waeup/sirp/applicants/workflow.py:43
-#: waeup/sirp/interfaces.py:68
+#: waeup/sirp/interfaces.py:70
 msgid "created"
 msgstr ""
@@ -185,25 +185,31 @@
 
 #: waeup/sirp/browser/breadcrumbs.py:116
-#: waeup/sirp/browser/viewlets.py:681
+#: waeup/sirp/browser/viewlets.py:605
 msgid "Academics"
 msgstr ""
 
 #: waeup/sirp/browser/breadcrumbs.py:123
-#: waeup/sirp/browser/pages.py:302
+#: waeup/sirp/browser/pages.py:308
 msgid "Administration"
 msgstr ""
 
 #: waeup/sirp/browser/breadcrumbs.py:130
+#: waeup/sirp/browser/viewlets.py:350
+#: waeup/sirp/browser/viewlets.py:656
 msgid "Portal Configuration"
 msgstr ""
 
 #: waeup/sirp/browser/breadcrumbs.py:148
-#: waeup/sirp/browser/pages.py:379
+#: waeup/sirp/browser/pages.py:385
+#: waeup/sirp/browser/viewlets.py:365
+#: waeup/sirp/browser/viewlets.py:666
 msgid "Portal Users"
 msgstr ""
 
 #: waeup/sirp/browser/breadcrumbs.py:155
-#: waeup/sirp/browser/pages.py:740
-#: waeup/sirp/browser/pages.py:1117
+#: waeup/sirp/browser/pages.py:744
+#: waeup/sirp/browser/pages.py:1136
+#: waeup/sirp/browser/viewlets.py:383
+#: waeup/sirp/browser/viewlets.py:675
 msgid "Data Center"
 msgstr ""
@@ -213,4 +219,8 @@
 msgstr ""
 
+#: waeup/sirp/browser/pages.py:1012
+msgid "Edit headers or replace imported file!"
+msgstr ""
+
 #: waeup/sirp/browser/pages.py:103
 #. Default: ""
@@ -218,16 +228,32 @@
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1087
+#: waeup/sirp/browser/pages.py:1059
+msgid "View processing log"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1060
+msgid "Back to data center"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1104
 #. Default: ""
 msgid "Processing of ${a} rows failed."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1089
+#: waeup/sirp/browser/pages.py:1106
 #. Default: ""
 msgid "Successfully processed ${a} rows."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1097
+#: waeup/sirp/browser/pages.py:1114
 msgid "Show logfiles"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1116
+msgid "Back to Data Center"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1117
+msgid "Show"
 msgstr ""
 
@@ -236,130 +262,145 @@
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1139
+#: waeup/sirp/browser/pages.py:1158
 msgid "Edit data center settings"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1156
+#: waeup/sirp/browser/pages.py:1178
 msgid "File already existed (not copied):"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1158
+#: waeup/sirp/browser/pages.py:1180
 msgid "Given storage path cannot be used."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1159
+#: waeup/sirp/browser/pages.py:1181
 msgid "Error:"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1162
+#: waeup/sirp/browser/pages.py:1184
 msgid "New storage path succefully set."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1222
+#: waeup/sirp/browser/pages.py:1244
 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
+#: waeup/sirp/browser/pages.py:1256
+#: waeup/sirp/browser/pages.py:1272
+#: waeup/sirp/browser/pages.py:1289
+#: waeup/sirp/browser/pages.py:1293
 msgid "Add faculty"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1235
+#: waeup/sirp/browser/pages.py:1257
 msgid "Faculties"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1239
+#: waeup/sirp/browser/pages.py:1261
+#: waeup/sirp/browser/viewlets.py:431
 msgid "Manage academic section"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1278
+#: waeup/sirp/browser/pages.py:1300
 msgid "The faculty code chosen already exists."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1299
-#: waeup/sirp/browser/pages.py:1309
+#: waeup/sirp/browser/pages.py:1321
+#: waeup/sirp/browser/pages.py:1331
 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
+#: waeup/sirp/browser/pages.py:1333
+#: waeup/sirp/browser/pages.py:1384
+#: waeup/sirp/browser/pages.py:1403
+#: waeup/sirp/browser/pages.py:1407
 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
+#: waeup/sirp/browser/pages.py:1334
+#: waeup/sirp/browser/pages.py:1393
+#: waeup/sirp/browser/pages.py:1503
+#: waeup/sirp/browser/pages.py:1589
+#: waeup/sirp/browser/pages.py:1749
+#: waeup/sirp/browser/pages.py:1806
 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
+#: waeup/sirp/browser/pages.py:1335
+#: waeup/sirp/browser/pages.py:1389
+#: waeup/sirp/browser/pages.py:1504
+#: waeup/sirp/browser/pages.py:1585
+#: waeup/sirp/browser/pages.py:1750
+#: waeup/sirp/browser/pages.py:1802
 msgid "Add local role"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1319
+#: waeup/sirp/browser/pages.py:134
+#. Default: ""
+msgid "Successfully removed: ${a}"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1341
+#: waeup/sirp/browser/viewlets.py:447
 msgid "Manage faculty"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:134
-#. Default: ""
-msgid "Successfully removed: ${a}"
-msgstr ""
-
-#: waeup/sirp/browser/pages.py:1354
+#: waeup/sirp/browser/pages.py:1376
+#: waeup/sirp/browser/pages.py:1698
+#: waeup/sirp/browser/pages.py:1770
+#: waeup/sirp/browser/pages.py:1882
 msgid "Form has been saved."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1392
+#: waeup/sirp/browser/pages.py:1414
 msgid "The code chosen already exists in this faculty."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1395
+#: waeup/sirp/browser/pages.py:1417
 #. Default: ""
 msgid "Department ${a} added."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1412
+#: waeup/sirp/browser/pages.py:1434
 msgid "Courses and Certificates"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1442
-#: waeup/sirp/browser/pages.py:1461
+#: waeup/sirp/browser/pages.py:1464
+#: waeup/sirp/browser/pages.py:1483
 #: waeup/sirp/students/viewlets.py:466
 msgid "Students"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1478
-#: waeup/sirp/browser/pages.py:1536
+#: waeup/sirp/browser/pages.py:1500
+#: waeup/sirp/browser/pages.py:1558
 msgid "Remove selected courses"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1478
-#: waeup/sirp/browser/pages.py:1548
+#: waeup/sirp/browser/pages.py:1500
+#: waeup/sirp/browser/pages.py:1570
+#: waeup/sirp/browser/pages.py:1599
+#: waeup/sirp/browser/pages.py:1603
 msgid "Add course"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1479
-#: waeup/sirp/browser/pages.py:1542
+#: waeup/sirp/browser/pages.py:1501
+#: waeup/sirp/browser/pages.py:1564
 msgid "Remove selected certificates"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1479
-#: waeup/sirp/browser/pages.py:1553
+#: waeup/sirp/browser/pages.py:1501
+#: waeup/sirp/browser/pages.py:1575
+#: waeup/sirp/browser/pages.py:1636
+#: waeup/sirp/browser/pages.py:1640
 msgid "Add certificate"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1488
+#: waeup/sirp/browser/pages.py:1510
+#: waeup/sirp/browser/viewlets.py:454
 msgid "Manage department"
 msgstr ""
 
 #: waeup/sirp/browser/pages.py:152
+#: waeup/sirp/browser/viewlets.py:312
 #: waeup/sirp/browser/templates/staffsitelayout.pt:28
 #: waeup/sirp/browser/templates/studentsitelayout.pt:33
@@ -371,8 +412,65 @@
 msgstr ""
 
+#: waeup/sirp/browser/pages.py:1615
+msgid "A course with same code already exists: "
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1621
+#. Default: ""
+msgid "Course ${a} successfully created."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1652
+msgid "A certificate with same code already exists: "
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1658
+#. Default: ""
+msgid "Certificate ${a} successfully created."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1690
+#: waeup/sirp/browser/viewlets.py:471
+msgid "Edit course"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1740
+msgid "Edit certificate"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1747
+#: waeup/sirp/browser/pages.py:1778
+#: waeup/sirp/browser/pages.py:1819
+#: waeup/sirp/browser/pages.py:1821
+msgid "Add course referrer"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1748
+#: waeup/sirp/browser/pages.py:1773
+msgid "Remove selected course referrers"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1754
+#: waeup/sirp/browser/viewlets.py:478
+msgid "Manage certificate"
+msgstr ""
+
 #: waeup/sirp/browser/pages.py:177
 msgid "You entered wrong credentials."
 msgstr ""
 
+#: waeup/sirp/browser/pages.py:1826
+msgid "The chosen course referrer is already part of this certificate."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1867
+#: waeup/sirp/browser/viewlets.py:495
+msgid "Edit course referrer"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1870
+msgid "Save and return"
+msgstr ""
+
 #: waeup/sirp/browser/pages.py:191
 msgid "You have been logged out. Thanks for using WAeUP SIRP!"
@@ -385,5 +483,5 @@
 
 #: waeup/sirp/browser/pages.py:233
-#: waeup/sirp/browser/pages.py:510
+#: waeup/sirp/browser/pages.py:516
 msgid "Send message now"
 msgstr ""
@@ -391,5 +489,5 @@
 #: waeup/sirp/browser/pages.py:252
 #: waeup/sirp/browser/pages.py:271
-#: waeup/sirp/browser/pages.py:527
+#: waeup/sirp/browser/pages.py:533
 msgid "Your message has been sent."
 msgstr ""
@@ -403,140 +501,166 @@
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:386
+#: waeup/sirp/browser/pages.py:298
+msgid "<h1>Welcome to WAeUP.SIRP</h1>"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:392
 #. Default: ""
 msgid "User account ${a} successfully deleted."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:417
-#: waeup/sirp/browser/pages.py:419
+#: waeup/sirp/browser/pages.py:423
+#: waeup/sirp/browser/pages.py:425
+#: waeup/sirp/browser/viewlets.py:505
 msgid "Add user"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:441
+#: waeup/sirp/browser/pages.py:447
 #. Default: ""
 msgid "User account ${a} successfully added."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:460
+#: waeup/sirp/browser/pages.py:466
 #. 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
+#: waeup/sirp/browser/pages.py:473
+#: waeup/sirp/browser/pages.py:627
+#: waeup/sirp/browser/pages.py:724
+#: waeup/sirp/browser/pages.py:1160
+#: waeup/sirp/browser/pages.py:1332
+#: waeup/sirp/browser/pages.py:1499
+#: waeup/sirp/browser/pages.py:1552
+#: waeup/sirp/browser/pages.py:1695
+#: waeup/sirp/browser/pages.py:1746
 msgid "Save"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:491
+#: waeup/sirp/browser/pages.py:497
 msgid "User settings have been saved."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:494
-#: waeup/sirp/browser/pages.py:700
+#: waeup/sirp/browser/pages.py:500
+#: waeup/sirp/browser/pages.py:704
+#: waeup/sirp/browser/pages.py:731
+#: waeup/sirp/browser/pages.py:754
+#: waeup/sirp/browser/pages.py:801
+#: waeup/sirp/browser/pages.py:831
+#: waeup/sirp/browser/pages.py:951
+#: waeup/sirp/browser/pages.py:1162
+#: waeup/sirp/browser/pages.py:1256
+#: waeup/sirp/browser/pages.py:1277
+#: waeup/sirp/browser/pages.py:1304
+#: waeup/sirp/browser/pages.py:1332
+#: waeup/sirp/browser/pages.py:1333
+#: waeup/sirp/browser/pages.py:1379
+#: waeup/sirp/browser/pages.py:1420
+#: waeup/sirp/browser/pages.py:1499
+#: waeup/sirp/browser/pages.py:1500
+#: waeup/sirp/browser/pages.py:1502
+#: waeup/sirp/browser/pages.py:1580
+#: waeup/sirp/browser/pages.py:1663
+#: waeup/sirp/browser/pages.py:1707
+#: waeup/sirp/browser/pages.py:1746
+#: waeup/sirp/browser/pages.py:1748
+#: waeup/sirp/browser/pages.py:1783
+#: waeup/sirp/browser/pages.py:1834
+#: waeup/sirp/browser/pages.py:1886
+msgid "Cancel"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:514
+#. Default: ""
+msgid "Send message to ${a}"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:543
+#: waeup/sirp/browser/viewlets.py:390
+msgid "My Preferences"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:556
+#: waeup/sirp/browser/viewlets.py:405
+msgid "My Roles"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:587
+msgid "Search Academic Section"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:613
+msgid "View portal configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:626
+msgid "Edit portal configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:627
+#: waeup/sirp/browser/pages.py:676
+msgid "Update plugins"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:629
+#: waeup/sirp/browser/pages.py:657
+#: waeup/sirp/browser/pages.py:688
+msgid "Add session configuration"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:630
+#: waeup/sirp/browser/pages.py:671
+#: waeup/sirp/browser/pages.py:1256
+#: waeup/sirp/browser/pages.py:1267
+#: waeup/sirp/browser/pages.py:1333
+#: waeup/sirp/browser/pages.py:1368
+msgid "Remove selected"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:654
 #: 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
+#: waeup/sirp/browser/pages.py:668
 #. Default: ""
 msgid "Session ${a} Configuration"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:675
+#: waeup/sirp/browser/pages.py:679
 msgid "Plugins were updated. See log file for details."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:688
+#: waeup/sirp/browser/pages.py:692
 msgid "Add Session Configuration"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:695
+#: waeup/sirp/browser/pages.py:699
 msgid "The session chosen already exists."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:717
+#: waeup/sirp/browser/pages.py:721
 #. Default: ""
 msgid "Edit academic session ${a} configuration"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:747
+#: waeup/sirp/browser/pages.py:751
 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
+#: waeup/sirp/browser/pages.py:753
+msgid "Upload"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:799
+#: waeup/sirp/browser/pages.py:829
+#: waeup/sirp/browser/pages.py:949
+#: waeup/sirp/browser/pages.py:1057
 msgid "Process CSV file"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:806
-#: waeup/sirp/browser/pages.py:904
-#: waeup/sirp/browser/pages.py:1018
+#: waeup/sirp/browser/pages.py:813
+#: waeup/sirp/browser/pages.py:914
+#: waeup/sirp/browser/pages.py:1033
 msgid "Import aborted."
 msgstr ""
@@ -546,18 +670,246 @@
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:883
+#: waeup/sirp/browser/pages.py:832
+msgid "Back to step 1"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:833
+msgid "Proceed to step 3"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:893
 msgid "Double headers: each column name may only appear once. "
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:891
+#: waeup/sirp/browser/pages.py:901
 msgid "Replace imported file!"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:916
+#: waeup/sirp/browser/pages.py:926
 msgid "Update mode only!"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:997
-msgid "Edit headers or replace imported file!"
+#: waeup/sirp/browser/pages.py:952
+#: waeup/sirp/browser/pages.py:1161
+msgid "Reset"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:953
+msgid "Set headerfields"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:954
+msgid "Back to step 2"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:955
+msgid "Perform import"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:10
+msgid "Course Code:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:14
+msgid "Course Title:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:18
+msgid "Provided by:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:26
+msgid "Level:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:30
+msgid "Is mandatory course (not elective):"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:6
+msgid "Code:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:106
+msgid "User Id"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:110
+msgid "Local Role"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:5
+msgid "Settings"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:7
+msgid "Local Roles"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:22
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:6
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:44
+msgid "Course Referrers"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:28
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:48
+msgid "Level"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:28
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:49
+msgid "Semester"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:29
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:49
+msgid "Referrer"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:29
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:50
+msgid "Course"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:30
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:50
+msgid "Title"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:30
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:51
+msgid "Mandatory"
+msgstr ""
+
+#: waeup/sirp/browser/templates/configurationmanagepage.pt:5
+msgid "Site Settings"
+msgstr ""
+
+#: waeup/sirp/browser/templates/configurationmanagepage.pt:52
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:108
+msgid "Name"
+msgstr ""
+
+#: waeup/sirp/browser/templates/configurationmanagepage.pt:8
+msgid "Session Configurations"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:1
+msgid "Step 1"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:13
+msgid "Filename"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:14
+msgid "Datasets"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:2
+msgid "Using batch processing you can mass-create, mass-update, or mass-remove datasets from the database using CSV files."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:21
+msgid "Select"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:6
+msgid "Please select a file for processing from the list below."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:1
+msgid "Step 2"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:43
+msgid "Mode:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:8
+msgid "Please select a file-processor and a processing-mode from the selections below."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:1
+msgid "Header fields OK"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:12
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:6
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:4
+msgid "File:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:18
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:9
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:32
+msgid "Processor:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:24
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:13
+msgid "Processing mode:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:44
+msgid "change to:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:6
+msgid "Step 3"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:8
+msgid "Eventually modify headerfields of import file below."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:1
+msgid "Step 4"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:2
+msgid "Batch processing finished."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterlogspage.pt:10
+#: waeup/sirp/browser/templates/datacenterpage.pt:14
+msgid "File"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterlogspage.pt:12
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:16
+msgid "Date"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterlogspage.pt:14
+#: waeup/sirp/browser/templates/datacenterpage.pt:15
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:15
+msgid "Size"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterlogspage.pt:2
+msgid "Currently no log files are available."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacentermanagepage.pt:12
+msgid "Overwrite contents in new location?"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacentermanagepage.pt:3
+#: waeup/sirp/browser/templates/datacenterpage.pt:7
+msgid "Storage path:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacentermanagepage.pt:7
+msgid "Copy existing data to new storage?"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterpage.pt:1
+msgid "The data center helps you to manage portal data. You can upload CSV files here, which will be available for import afterwards."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterpage.pt:16
+msgid "Uploaded"
 msgstr ""
 
@@ -601,6 +953,53 @@
 msgstr ""
 
-#: waeup/sirp/browser/viewlets.py:696
+#: waeup/sirp/browser/viewlets.py:167
+msgid "Add"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:177
+msgid "Remove"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:187
+msgid "Search"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:373
+msgid "Send email"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:424
+msgid "Edit settings"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:438
+msgid "Search academic section"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:463
+#: waeup/sirp/browser/viewlets.py:487
+msgid "Show students"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:518
+#: waeup/sirp/browser/viewlets.py:526
+msgid "Show batch logs"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:538
+msgid "Batch processing"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:547
+msgid "Upload CSV file"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:620
 msgid "Enquiries"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:88
+#: waeup/sirp/browser/viewlets.py:157
+msgid "Edit"
 msgstr ""
 
@@ -609,29 +1008,29 @@
 msgstr ""
 
-#: waeup/sirp/interfaces.py:70
+#: waeup/sirp/interfaces.py:72
 msgid "clearance started"
 msgstr ""
 
-#: waeup/sirp/interfaces.py:71
+#: waeup/sirp/interfaces.py:73
 msgid "clearance requested"
 msgstr ""
 
-#: waeup/sirp/interfaces.py:72
+#: waeup/sirp/interfaces.py:74
 msgid "cleared"
 msgstr ""
 
-#: waeup/sirp/interfaces.py:73
+#: waeup/sirp/interfaces.py:75
 msgid "school fee paid"
 msgstr ""
 
-#: waeup/sirp/interfaces.py:74
+#: waeup/sirp/interfaces.py:76
 msgid "returning"
 msgstr ""
 
-#: waeup/sirp/interfaces.py:75
+#: waeup/sirp/interfaces.py:77
 msgid "courses registered"
 msgstr ""
 
-#: waeup/sirp/interfaces.py:76
+#: waeup/sirp/interfaces.py:78
 msgid "courses validated"
 msgstr ""
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 7704)
+++ main/waeup.sirp/trunk/src/waeup/sirp/locales/yo/LC_MESSAGES/waeup.sirp.po	(revision 7705)
@@ -15,5 +15,5 @@
 msgstr ""
 "Project-Id-Version: WAeUP.SIRP\n"
-"POT-Creation-Date: Fri Feb 24 23:24:12 2012\n"
+"POT-Creation-Date: Sun Feb 26 17:19:06 2012\n"
 "PO-Revision-Date: 2012-02-22 11:28+0100\n"
 "Last-Translator: Henrik Bettermann <henrik@waeup.org>\n"
@@ -109,5 +109,5 @@
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:41 waeup/sirp/interfaces.py:69
+#: waeup/sirp/applicants/workflow.py:41 waeup/sirp/interfaces.py:71
 msgid "admitted"
 msgstr ""
@@ -117,5 +117,5 @@
 msgstr ""
 
-#: waeup/sirp/applicants/workflow.py:43 waeup/sirp/interfaces.py:68
+#: waeup/sirp/applicants/workflow.py:43 waeup/sirp/interfaces.py:70
 msgid "created"
 msgstr ""
@@ -177,22 +177,25 @@
 msgstr ""
 
-#: waeup/sirp/browser/breadcrumbs.py:116 waeup/sirp/browser/viewlets.py:681
+#: waeup/sirp/browser/breadcrumbs.py:116 waeup/sirp/browser/viewlets.py:605
 msgid "Academics"
 msgstr ""
 
-#: waeup/sirp/browser/breadcrumbs.py:123 waeup/sirp/browser/pages.py:302
+#: waeup/sirp/browser/breadcrumbs.py:123 waeup/sirp/browser/pages.py:308
 msgid "Administration"
 msgstr ""
 
-#: waeup/sirp/browser/breadcrumbs.py:130
+#: waeup/sirp/browser/breadcrumbs.py:130 waeup/sirp/browser/viewlets.py:350
+#: waeup/sirp/browser/viewlets.py:656
 msgid "Portal Configuration"
 msgstr ""
 
-#: waeup/sirp/browser/breadcrumbs.py:148 waeup/sirp/browser/pages.py:379
+#: waeup/sirp/browser/breadcrumbs.py:148 waeup/sirp/browser/pages.py:385
+#: waeup/sirp/browser/viewlets.py:365 waeup/sirp/browser/viewlets.py:666
 msgid "Portal Users"
 msgstr ""
 
-#: waeup/sirp/browser/breadcrumbs.py:155 waeup/sirp/browser/pages.py:740
-#: waeup/sirp/browser/pages.py:1117
+#: waeup/sirp/browser/breadcrumbs.py:155 waeup/sirp/browser/pages.py:744
+#: waeup/sirp/browser/pages.py:1136 waeup/sirp/browser/viewlets.py:383
+#: waeup/sirp/browser/viewlets.py:675
 msgid "Data Center"
 msgstr ""
@@ -202,4 +205,8 @@
 msgstr ""
 
+#: waeup/sirp/browser/pages.py:1012
+msgid "Edit headers or replace imported file!"
+msgstr ""
+
 #. Default: ""
 #: waeup/sirp/browser/pages.py:103
@@ -207,16 +214,32 @@
 msgstr ""
 
-#. Default: ""
-#: waeup/sirp/browser/pages.py:1087
+#: waeup/sirp/browser/pages.py:1059
+msgid "View processing log"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1060
+msgid "Back to data center"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:1104
 msgid "Processing of ${a} rows failed."
 msgstr ""
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:1089
+#: waeup/sirp/browser/pages.py:1106
 msgid "Successfully processed ${a} rows."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1097
+#: waeup/sirp/browser/pages.py:1114
 msgid "Show logfiles"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1116
+msgid "Back to Data Center"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1117
+msgid "Show"
 msgstr ""
 
@@ -225,66 +248,64 @@
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1139
+#: waeup/sirp/browser/pages.py:1158
 msgid "Edit data center settings"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1156
+#: waeup/sirp/browser/pages.py:1178
 msgid "File already existed (not copied):"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1158
+#: waeup/sirp/browser/pages.py:1180
 msgid "Given storage path cannot be used."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1159
+#: waeup/sirp/browser/pages.py:1181
 msgid "Error:"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1162
+#: waeup/sirp/browser/pages.py:1184
 msgid "New storage path succefully set."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1222
+#: waeup/sirp/browser/pages.py:1244
 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
+#: waeup/sirp/browser/pages.py:1256 waeup/sirp/browser/pages.py:1272
+#: waeup/sirp/browser/pages.py:1289 waeup/sirp/browser/pages.py:1293
 msgid "Add faculty"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1235
+#: waeup/sirp/browser/pages.py:1257
 msgid "Faculties"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1239
+#: waeup/sirp/browser/pages.py:1261 waeup/sirp/browser/viewlets.py:431
 msgid "Manage academic section"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1278
+#: waeup/sirp/browser/pages.py:1300
 msgid "The faculty code chosen already exists."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1299 waeup/sirp/browser/pages.py:1309
+#: waeup/sirp/browser/pages.py:1321 waeup/sirp/browser/pages.py:1331
 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
+#: waeup/sirp/browser/pages.py:1333 waeup/sirp/browser/pages.py:1384
+#: waeup/sirp/browser/pages.py:1403 waeup/sirp/browser/pages.py:1407
 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
+#: waeup/sirp/browser/pages.py:1334 waeup/sirp/browser/pages.py:1393
+#: waeup/sirp/browser/pages.py:1503 waeup/sirp/browser/pages.py:1589
+#: waeup/sirp/browser/pages.py:1749 waeup/sirp/browser/pages.py:1806
 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
+#: waeup/sirp/browser/pages.py:1335 waeup/sirp/browser/pages.py:1389
+#: waeup/sirp/browser/pages.py:1504 waeup/sirp/browser/pages.py:1585
+#: waeup/sirp/browser/pages.py:1750 waeup/sirp/browser/pages.py:1802
 msgid "Add local role"
-msgstr ""
-
-#: waeup/sirp/browser/pages.py:1319
-msgid "Manage faculty"
 msgstr ""
 
@@ -294,47 +315,54 @@
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1354
+#: waeup/sirp/browser/pages.py:1341 waeup/sirp/browser/viewlets.py:447
+msgid "Manage faculty"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1376 waeup/sirp/browser/pages.py:1698
+#: waeup/sirp/browser/pages.py:1770 waeup/sirp/browser/pages.py:1882
 msgid "Form has been saved."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1392
+#: waeup/sirp/browser/pages.py:1414
 msgid "The code chosen already exists in this faculty."
 msgstr ""
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:1395
+#: waeup/sirp/browser/pages.py:1417
 msgid "Department ${a} added."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1412
+#: waeup/sirp/browser/pages.py:1434
 msgid "Courses and Certificates"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1442 waeup/sirp/browser/pages.py:1461
+#: waeup/sirp/browser/pages.py:1464 waeup/sirp/browser/pages.py:1483
 #: waeup/sirp/students/viewlets.py:466
 msgid "Students"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1478 waeup/sirp/browser/pages.py:1536
+#: waeup/sirp/browser/pages.py:1500 waeup/sirp/browser/pages.py:1558
 msgid "Remove selected courses"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1478 waeup/sirp/browser/pages.py:1548
+#: waeup/sirp/browser/pages.py:1500 waeup/sirp/browser/pages.py:1570
+#: waeup/sirp/browser/pages.py:1599 waeup/sirp/browser/pages.py:1603
 msgid "Add course"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1479 waeup/sirp/browser/pages.py:1542
+#: waeup/sirp/browser/pages.py:1501 waeup/sirp/browser/pages.py:1564
 msgid "Remove selected certificates"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1479 waeup/sirp/browser/pages.py:1553
+#: waeup/sirp/browser/pages.py:1501 waeup/sirp/browser/pages.py:1575
+#: waeup/sirp/browser/pages.py:1636 waeup/sirp/browser/pages.py:1640
 msgid "Add certificate"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:1488
+#: waeup/sirp/browser/pages.py:1510 waeup/sirp/browser/viewlets.py:454
 msgid "Manage department"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:152
+#: waeup/sirp/browser/pages.py:152 waeup/sirp/browser/viewlets.py:312
 #: waeup/sirp/browser/templates/staffsitelayout.pt:28
 #: waeup/sirp/browser/templates/studentsitelayout.pt:33
@@ -346,8 +374,59 @@
 msgstr ""
 
+#: waeup/sirp/browser/pages.py:1615
+msgid "A course with same code already exists: "
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:1621
+msgid "Course ${a} successfully created."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1652
+msgid "A certificate with same code already exists: "
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:1658
+msgid "Certificate ${a} successfully created."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1690 waeup/sirp/browser/viewlets.py:471
+msgid "Edit course"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1740
+msgid "Edit certificate"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1747 waeup/sirp/browser/pages.py:1778
+#: waeup/sirp/browser/pages.py:1819 waeup/sirp/browser/pages.py:1821
+msgid "Add course referrer"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1748 waeup/sirp/browser/pages.py:1773
+msgid "Remove selected course referrers"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1754 waeup/sirp/browser/viewlets.py:478
+msgid "Manage certificate"
+msgstr ""
+
 #: waeup/sirp/browser/pages.py:177
 msgid "You entered wrong credentials."
 msgstr ""
 
+#: waeup/sirp/browser/pages.py:1826
+msgid "The chosen course referrer is already part of this certificate."
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1867 waeup/sirp/browser/viewlets.py:495
+msgid "Edit course referrer"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:1870
+msgid "Save and return"
+msgstr ""
+
 #: waeup/sirp/browser/pages.py:191
 msgid "You have been logged out. Thanks for using WAeUP SIRP!"
@@ -359,10 +438,10 @@
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:233 waeup/sirp/browser/pages.py:510
+#: waeup/sirp/browser/pages.py:233 waeup/sirp/browser/pages.py:516
 msgid "Send message now"
 msgstr ""
 
 #: waeup/sirp/browser/pages.py:252 waeup/sirp/browser/pages.py:271
-#: waeup/sirp/browser/pages.py:527
+#: waeup/sirp/browser/pages.py:533
 msgid "Your message has been sent."
 msgstr ""
@@ -376,120 +455,137 @@
 msgstr ""
 
-#. Default: ""
-#: waeup/sirp/browser/pages.py:386
+#: waeup/sirp/browser/pages.py:298
+msgid "<h1>Welcome to WAeUP.SIRP</h1>"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/browser/pages.py:392
 msgid "User account ${a} successfully deleted."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:417 waeup/sirp/browser/pages.py:419
+#: waeup/sirp/browser/pages.py:423 waeup/sirp/browser/pages.py:425
+#: waeup/sirp/browser/viewlets.py:505
 msgid "Add user"
 msgstr ""
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:441
+#: waeup/sirp/browser/pages.py:447
 msgid "User account ${a} successfully added."
 msgstr ""
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:460
+#: waeup/sirp/browser/pages.py:466
 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
+#: waeup/sirp/browser/pages.py:473 waeup/sirp/browser/pages.py:627
+#: waeup/sirp/browser/pages.py:724 waeup/sirp/browser/pages.py:1160
+#: waeup/sirp/browser/pages.py:1332 waeup/sirp/browser/pages.py:1499
+#: waeup/sirp/browser/pages.py:1552 waeup/sirp/browser/pages.py:1695
+#: waeup/sirp/browser/pages.py:1746
 msgid "Save"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:491
+#: waeup/sirp/browser/pages.py:497
 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
+#: waeup/sirp/browser/pages.py:500 waeup/sirp/browser/pages.py:704
+#: waeup/sirp/browser/pages.py:731 waeup/sirp/browser/pages.py:754
+#: waeup/sirp/browser/pages.py:801 waeup/sirp/browser/pages.py:831
+#: waeup/sirp/browser/pages.py:951 waeup/sirp/browser/pages.py:1162
+#: waeup/sirp/browser/pages.py:1256 waeup/sirp/browser/pages.py:1277
+#: waeup/sirp/browser/pages.py:1304 waeup/sirp/browser/pages.py:1332
+#: waeup/sirp/browser/pages.py:1333 waeup/sirp/browser/pages.py:1379
+#: waeup/sirp/browser/pages.py:1420 waeup/sirp/browser/pages.py:1499
+#: waeup/sirp/browser/pages.py:1500 waeup/sirp/browser/pages.py:1502
+#: waeup/sirp/browser/pages.py:1580 waeup/sirp/browser/pages.py:1663
+#: waeup/sirp/browser/pages.py:1707 waeup/sirp/browser/pages.py:1746
+#: waeup/sirp/browser/pages.py:1748 waeup/sirp/browser/pages.py:1783
+#: waeup/sirp/browser/pages.py:1834 waeup/sirp/browser/pages.py:1886
 msgid "Cancel"
 msgstr ""
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:508
+#: waeup/sirp/browser/pages.py:514
 msgid "Send message to ${a}"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:537
+#: waeup/sirp/browser/pages.py:543 waeup/sirp/browser/viewlets.py:390
 msgid "My Preferences"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:550
+#: waeup/sirp/browser/pages.py:556 waeup/sirp/browser/viewlets.py:405
 msgid "My Roles"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:581
+#: waeup/sirp/browser/pages.py:587
 msgid "Search Academic Section"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:607
+#: waeup/sirp/browser/pages.py:613
 msgid "View portal configuration"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:620
+#: waeup/sirp/browser/pages.py:626
 msgid "Edit portal configuration"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:621 waeup/sirp/browser/pages.py:672
+#: waeup/sirp/browser/pages.py:627 waeup/sirp/browser/pages.py:676
 msgid "Update plugins"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:623 waeup/sirp/browser/pages.py:653
-#: waeup/sirp/browser/pages.py:684
+#: waeup/sirp/browser/pages.py:629 waeup/sirp/browser/pages.py:657
+#: waeup/sirp/browser/pages.py:688
 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
+#: waeup/sirp/browser/pages.py:630 waeup/sirp/browser/pages.py:671
+#: waeup/sirp/browser/pages.py:1256 waeup/sirp/browser/pages.py:1267
+#: waeup/sirp/browser/pages.py:1333 waeup/sirp/browser/pages.py:1368
 msgid "Remove selected"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:650 waeup/sirp/browser/pages.py:723
+#: waeup/sirp/browser/pages.py:654 waeup/sirp/browser/pages.py:727
 msgid "Settings have been saved."
 msgstr ""
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:664
+#: waeup/sirp/browser/pages.py:668
 msgid "Session ${a} Configuration"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:675
+#: waeup/sirp/browser/pages.py:679
 msgid "Plugins were updated. See log file for details."
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:688
+#: waeup/sirp/browser/pages.py:692
 msgid "Add Session Configuration"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:695
+#: waeup/sirp/browser/pages.py:699
 msgid "The session chosen already exists."
 msgstr ""
 
 #. Default: ""
-#: waeup/sirp/browser/pages.py:717
+#: waeup/sirp/browser/pages.py:721
 msgid "Edit academic session ${a} configuration"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:747
+#: waeup/sirp/browser/pages.py:751
 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
+#: waeup/sirp/browser/pages.py:753
+msgid "Upload"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:799 waeup/sirp/browser/pages.py:829
+#: waeup/sirp/browser/pages.py:949 waeup/sirp/browser/pages.py:1057
 msgid "Process CSV file"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:806 waeup/sirp/browser/pages.py:904
-#: waeup/sirp/browser/pages.py:1018
+#: waeup/sirp/browser/pages.py:813 waeup/sirp/browser/pages.py:914
+#: waeup/sirp/browser/pages.py:1033
 msgid "Import aborted."
 msgstr ""
@@ -499,18 +595,251 @@
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:883
+#: waeup/sirp/browser/pages.py:832
+msgid "Back to step 1"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:833
+msgid "Proceed to step 3"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:893
 msgid "Double headers: each column name may only appear once. "
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:891
+#: waeup/sirp/browser/pages.py:901
 msgid "Replace imported file!"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:916
+#: waeup/sirp/browser/pages.py:926
 msgid "Update mode only!"
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:997
-msgid "Edit headers or replace imported file!"
+#: waeup/sirp/browser/pages.py:952 waeup/sirp/browser/pages.py:1161
+msgid "Reset"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:953
+msgid "Set headerfields"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:954
+msgid "Back to step 2"
+msgstr ""
+
+#: waeup/sirp/browser/pages.py:955
+msgid "Perform import"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:10
+msgid "Course Code:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:14
+msgid "Course Title:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:18
+msgid "Provided by:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:26
+msgid "Level:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:30
+msgid "Is mandatory course (not elective):"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatecoursepage.pt:6
+msgid "Code:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:106
+msgid "User Id"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:110
+msgid "Local Role"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:5
+msgid "Settings"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:7
+msgid "Local Roles"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:22
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:6
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:44
+msgid "Course Referrers"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:28
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:48
+msgid "Level"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:28
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:49
+msgid "Semester"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:29
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:49
+msgid "Referrer"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:29
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:50
+msgid "Course"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:30
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:50
+msgid "Title"
+msgstr ""
+
+#: waeup/sirp/browser/templates/certificatepage.pt:30
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:51
+msgid "Mandatory"
+msgstr ""
+
+#: waeup/sirp/browser/templates/configurationmanagepage.pt:5
+msgid "Site Settings"
+msgstr ""
+
+#: waeup/sirp/browser/templates/configurationmanagepage.pt:52
+#: waeup/sirp/browser/templates/certificatemanagepage.pt:108
+msgid "Name"
+msgstr ""
+
+#: waeup/sirp/browser/templates/configurationmanagepage.pt:8
+msgid "Session Configurations"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:1
+msgid "Step 1"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:13
+msgid "Filename"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:14
+msgid "Datasets"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:2
+msgid ""
+"Using batch processing you can mass-create, mass-update, or mass-remove "
+"datasets from the database using CSV files."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:21
+msgid "Select"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:6
+msgid "Please select a file for processing from the list below."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:1
+msgid "Step 2"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:43
+msgid "Mode:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:8
+msgid ""
+"Please select a file-processor and a processing-mode from the selections "
+"below."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:1
+msgid "Header fields OK"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:12
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:6
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:4
+msgid "File:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:18
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:9
+#: waeup/sirp/browser/templates/datacenterimport2page.pt:32
+msgid "Processor:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:24
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:13
+msgid "Processing mode:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:44
+msgid "change to:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:6
+msgid "Step 3"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport3page.pt:8
+msgid "Eventually modify headerfields of import file below."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:1
+msgid "Step 4"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterimport4page.pt:2
+msgid "Batch processing finished."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterlogspage.pt:10
+#: waeup/sirp/browser/templates/datacenterpage.pt:14
+msgid "File"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterlogspage.pt:12
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:16
+msgid "Date"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterlogspage.pt:14
+#: waeup/sirp/browser/templates/datacenterpage.pt:15
+#: waeup/sirp/browser/templates/datacenterimport1page.pt:15
+msgid "Size"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterlogspage.pt:2
+msgid "Currently no log files are available."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacentermanagepage.pt:12
+msgid "Overwrite contents in new location?"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacentermanagepage.pt:3
+#: waeup/sirp/browser/templates/datacenterpage.pt:7
+msgid "Storage path:"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacentermanagepage.pt:7
+msgid "Copy existing data to new storage?"
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterpage.pt:1
+msgid ""
+"The data center helps you to manage portal data. You can upload CSV files "
+"here, which will be available for import afterwards."
+msgstr ""
+
+#: waeup/sirp/browser/templates/datacenterpage.pt:16
+msgid "Uploaded"
 msgstr ""
 
@@ -554,6 +883,50 @@
 msgstr ""
 
-#: waeup/sirp/browser/viewlets.py:696
+#: waeup/sirp/browser/viewlets.py:167
+msgid "Add"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:177
+msgid "Remove"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:187
+msgid "Search"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:373
+msgid "Send email"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:424
+msgid "Edit settings"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:438
+msgid "Search academic section"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:463 waeup/sirp/browser/viewlets.py:487
+msgid "Show students"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:518 waeup/sirp/browser/viewlets.py:526
+msgid "Show batch logs"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:538
+msgid "Batch processing"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:547
+msgid "Upload CSV file"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:620
 msgid "Enquiries"
+msgstr ""
+
+#: waeup/sirp/browser/viewlets.py:88 waeup/sirp/browser/viewlets.py:157
+msgid "Edit"
 msgstr ""
 
@@ -562,29 +935,29 @@
 msgstr ""
 
-#: waeup/sirp/interfaces.py:70
+#: waeup/sirp/interfaces.py:72
 msgid "clearance started"
 msgstr ""
 
-#: waeup/sirp/interfaces.py:71
+#: waeup/sirp/interfaces.py:73
 msgid "clearance requested"
 msgstr ""
 
-#: waeup/sirp/interfaces.py:72
+#: waeup/sirp/interfaces.py:74
 msgid "cleared"
 msgstr ""
 
-#: waeup/sirp/interfaces.py:73
+#: waeup/sirp/interfaces.py:75
 msgid "school fee paid"
 msgstr ""
 
-#: waeup/sirp/interfaces.py:74
+#: waeup/sirp/interfaces.py:76
 msgid "returning"
 msgstr ""
 
-#: waeup/sirp/interfaces.py:75
+#: waeup/sirp/interfaces.py:77
 msgid "courses registered"
 msgstr ""
 
-#: waeup/sirp/interfaces.py:76
+#: waeup/sirp/interfaces.py:78
 msgid "courses validated"
 msgstr ""
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_browser.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_browser.py	(revision 7704)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_browser.py	(revision 7705)
@@ -748,7 +748,7 @@
         importerselect.getControl('Student Importer').selected = True
         modeselect.getControl(value='create').selected = True
-        self.browser.getControl('Proceed to step 3...').click()
+        self.browser.getControl('Proceed to step 3').click()
         self.assertTrue('Header fields OK' in self.browser.contents)
-        self.browser.getControl('Perform import...').click()
+        self.browser.getControl('Perform import').click()
         self.assertTrue('Processing of 1 rows failed' in self.browser.contents)
         self.assertTrue('Successfully processed 2 rows' in self.browser.contents)
@@ -775,9 +775,9 @@
             'StudentStudyCourse Importer (update only)').selected = True
         modeselect.getControl(value='create').selected = True
-        self.browser.getControl('Proceed to step 3...').click()
+        self.browser.getControl('Proceed to step 3').click()
         self.assertTrue('Update mode only' in self.browser.contents)
-        self.browser.getControl('Proceed to step 3...').click()
+        self.browser.getControl('Proceed to step 3').click()
         self.assertTrue('Header fields OK' in self.browser.contents)
-        self.browser.getControl('Perform import...').click()
+        self.browser.getControl('Perform import').click()
         self.assertTrue('Processing of 1 rows failed' in self.browser.contents)
         self.assertTrue('Successfully processed 2 rows'
Index: main/waeup.sirp/trunk/src/waeup/sirp/widgets/restwidget.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/widgets/restwidget.py	(revision 7704)
+++ main/waeup.sirp/trunk/src/waeup/sirp/widgets/restwidget.py	(revision 7705)
@@ -32,5 +32,5 @@
         a dictionary.
 
-        Different languages must be separated by `<<xy>>` whereas
+        Different languages must be separated by `>>xy<<` whereas
         xy is the language code. Text parts without correct leading
         language separator - usually the first part has no language
