Index: main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser.py	(revision 7718)
+++ main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser.py	(revision 7719)
@@ -27,5 +27,5 @@
     AdminTask, AddActionButton, SearchActionButton, BatchOpButton, ManageLink)
 from waeup.sirp.interfaces import ISIRPObject
-
+from waeup.sirp.interfaces import MessageFactory as _
 from waeup.sirp.accesscodes.interfaces import (
     IAccessCodeBatchContainer, IAccessCodeBatch,
@@ -41,6 +41,8 @@
     grok.template('batchcontainer')
     grok.require('waeup.manageACBatches')
-
-    label = 'Access Code Batches'
+    archive_button = _('Archive')
+    delete_button = _('Archive and delete')
+
+    label = _('Access Code Batches')
     pnav = 0
 
@@ -49,5 +51,5 @@
             return
         if not batches:
-            self.flash('No batch selected.')
+            self.flash(_('No batch selected.'))
             return
         if isinstance(batches, basestring):
@@ -56,9 +58,10 @@
             batch = self.context[name]
             csv_file = batch.archive()
-            self.flash('Archived %s (%s)' % (name, csv_file))
+            self.flash(_('Archived ${a} (${b})',
+                mapping = {'a':name, 'b':csv_file}))
             if delete is None:
                 continue
             del self.context[name]
-            self.flash('Deleted batch %s' % name)
+            self.flash(_('Deleted batch ${a}', mapping = {'a':name}))
 
 class AddBatchPage(SIRPAddFormPage):
@@ -67,5 +70,5 @@
     grok.require('waeup.manageACBatches')
 
-    label = 'Create Access Code Batch'
+    label = _('Create Access Code Batch')
     pnav = 0
 
@@ -73,5 +76,5 @@
         'prefix', 'entry_num', 'cost')
 
-    @action('Create batch', style='primary')
+    @action(_('Create batch'), style='primary')
     def createBatch(self, **data):
         creator = self.request.principal.id
@@ -85,7 +88,7 @@
         self.redirect(self.url(self.context))
 
-    @action('Cancel', validator=NullValidator)
+    @action(_('Cancel'), validator=NullValidator)
     def cancel(self, *args, **kw):
-        self.flash('Batch creation cancelled.')
+        self.flash(_('Batch creation cancelled.'))
         self.redirect(self.url(self.context))
 
@@ -97,11 +100,13 @@
     grok.template('reimportbatchpage')
     grok.require('waeup.manageACBatches')
-
-    label = 'Reimport Access Code Batches'
+    reimport_button = _('Reimport')
+    cancel_button = _('Cancel')
+
+    label = _('Reimport Access Code Batches')
     pnav = 0
 
     def update(self, filenames=None, reimport=None, cancel=None):
         if cancel is not None:
-            self.flash('Reimport cancelled.')
+            self.flash(_('Reimport cancelled.'))
             self.redirect(self.url(self.context))
             return
@@ -109,5 +114,5 @@
             return
         if not filenames:
-            self.flash('No file chosen. Action cancelled.')
+            self.flash(_('No file chosen. Action cancelled.'))
             self.redirect(self.url(self.context))
             return
@@ -119,7 +124,9 @@
                 self.context.reimport(filename, userid)
             except KeyError:
-                self.flash('This batch already exists: %s' % filename)
+                self.flash(_('This batch already exists: ${a}',
+                    mapping = {'a':filename}))
                 continue
-            self.flash('Successfully reimported: %s' % filename)
+            self.flash(_('Successfully reimported: ${a}',
+                mapping = {'a':filename}))
         self.redirect(self.url(self.context))
 
@@ -130,5 +137,8 @@
     grok.require('waeup.manageACBatches')
     pnav = 0
-    label = 'Search and Manage Access Codes'
+    label = _('Search and Manage Access Codes')
+    search_button = _('Search')
+    disable_button = _('Disable ACs')
+    enable_button = _('Enable ACs')
 
     def update(self, *args, **kw):
@@ -154,16 +164,17 @@
             if 'disable' in form:
                 try:
-                    comment = u"AC disabled"
+                    comment = _(u"AC disabled")
                     self.context.disable(entry, comment)
-                    self.flash('%s disabled.' % entry)
+                    self.flash(_('${a} disabled.', mapping = {'a':entry}))
                 except InvalidTransitionError:
-                    self.flash('%s: Disable transition not allowed.' % entry)
+                    self.flash(_('${a}: Disable transition not allowed.',
+                        mapping = {'a':entry}))
             elif 'enable' in form:
                 try:
-                    comment = u"AC re-enabled"
+                    comment = _(u"AC re-enabled")
                     self.context.enable(entry, comment)
-                    self.flash('%s (re-)enabled.' % entry)
+                    self.flash(_('${a} (re-)enabled.', mapping = {'a':entry}))
                 except InvalidTransitionError:
-                    self.flash('%s: Re-enable transition not allowed.' % entry)
+                    self.flash(_('${a}: Re-enable transition not allowed.', mapping = {'a':entry}))
         self.hitlist = search(query=self.searchterm,
             searchtype=self.searchtype, view=self)
@@ -175,5 +186,5 @@
     grok.require('waeup.manageACBatches')
     grok.context(IAccessCodeBatchContainer)
-    title = u'Access Code Batches'
+    title = _(u'Access Code Batches')
     parent_viewname = 'administration'
 
@@ -195,5 +206,5 @@
     grok.template('admintaskacbatches')
 
-    link_title = 'Access Code Batches'
+    link_title = _('Access Code Batches')
     target_viewname = 'accesscodes'
 
@@ -204,5 +215,5 @@
     grok.view(BatchContainerPage)
     grok.require('waeup.manageACBatches')
-    text = 'Add Access Code Batch'
+    text = _('Add Access Code Batch')
 
 class ReimportBatchButton(BatchOpButton):
@@ -213,5 +224,5 @@
     grok.require('waeup.manageACBatches')
     target = 'reimport'
-    text = 'Reimport Access Code Batch'
+    text = _('Reimport Access Code Batch')
 
 class SearchAccessCodeButton(SearchActionButton):
@@ -221,5 +232,5 @@
     grok.view(BatchContainerPage)
     grok.require('waeup.manageACBatches')
-    text = 'Search Access Codes'
+    text = _('Search Access Codes')
 
 class ManageAccessCodes(ManageLink):
@@ -230,3 +241,3 @@
 
     link = u'accesscodes'
-    text = u'Access Codes'
+    text = _(u'Access Codes')
Index: main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser.txt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser.txt	(revision 7718)
+++ main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser.txt	(revision 7719)
@@ -175,5 +175,5 @@
     >>> ctrl = browser.getControl(name='batches')
     >>> ctrl.getControl(value='BLA-1').selected = True
-    >>> browser.getControl('Archive and Delete').click()
+    >>> browser.getControl('Archive and delete').click()
     >>> print browser.contents
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
@@ -284,5 +284,5 @@
       <td>APP-1-...</td>
       <td>initialized</td>
-      <td>... - AC initialized by Manager</td>
+      <td>... - initialized by Manager</td>
     ...
 
@@ -303,9 +303,9 @@
       <td>APP-1-...</td>
       <td>initialized</td>
-      <td>... - AC initialized by Manager</td>
+      <td>... - initialized by Manager</td>
     ...
 
 And we can search for text in history messages of access
-codes. Looking for the string ``AC initialized`` we get nearly all
+codes. Looking for the string ``initialized`` we get nearly all
 entries:
 
@@ -313,5 +313,5 @@
     >>> ctrl = browser.getControl(name='searchtype')
     >>> ctrl.getControl(value='history').selected = True
-    >>> browser.getControl(name='searchterm').value = 'AC initialized'
+    >>> browser.getControl(name='searchterm').value = 'initialized'
     >>> browser.getControl('Search').click()
     >>> print browser.contents
@@ -322,5 +322,5 @@
       <td>APP-1-<10-DIGITS></td>
       <td>initialized</td>
-      <td>... - AC initialized by Manager</td>
+      <td>... - initialized by Manager</td>
     ...
 
@@ -334,5 +334,5 @@
     >>> ctrl = browser.getControl(name='searchtype')
     >>> ctrl.getControl(value='history').selected = True
-    >>> browser.getControl(name='searchterm').value = 'AC initialized'
+    >>> browser.getControl(name='searchterm').value = 'initialized'
     >>> browser.getControl('Search').click()
 
Index: main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser_templates/admintaskacbatches.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser_templates/admintaskacbatches.pt	(revision 7718)
+++ main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser_templates/admintaskacbatches.pt	(revision 7719)
@@ -2,4 +2,4 @@
 <a href=""
    tal:attributes="href viewlet/link_target"
-   tal:content="viewlet/link_title">Manage</a>
+   tal:content="viewlet/link_title">MANAGE</a>
 </p>
Index: main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser_templates/batchcontainer.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser_templates/batchcontainer.pt	(revision 7718)
+++ main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser_templates/batchcontainer.pt	(revision 7719)
@@ -1,13 +1,15 @@
-<form method="POST">
-  <p>
+<form i18n:domain="waeup.sirp" method="POST">
+  <p i18n:translate="">
     The following batches are available:
   </p>
-
   <table>
     <thead>
       <tr>
         <th>&nbsp;</th>
-  <th>Prefix</th><th>Entries/(invalidated)</th><th>Cost</th>
-  <th>Created</th><th>Creator</th>
+        <th i18n:translate="">Prefix</th>
+        <th i18n:translate="">Entries/(invalidated)</th>
+        <th i18n:translate="">Cost</th>
+        <th i18n:translate="">Date of Creation</th>
+        <th i18n:translate="">Creator</th>
       </tr>
     </thead>
@@ -32,12 +34,14 @@
       2011-11-22 18:04:55
   </td>
-  <td tal:content="batch/creator">some user</td>
+  <td tal:content="batch/creator">SOMEUSER</td>
       </tr>
       <tr tal:condition="not: context/values">
-  <td colspan="5"><b>No batches yet</b></td>
+      <td colspan="5"><b i18n:translate="">No batches yet</b></td>
       </tr>
     </tbody>
   </table>
-  <input type="submit" class="btn" name="archive" value="Archive" />
-  <input type="submit" class="btn" name="delete" value="Archive and Delete" />
+  <input type="submit" class="btn" name="archive"
+      tal:attributes="value view/archive_button" />
+  <input type="submit" class="btn" name="delete"
+       tal:attributes="value view/delete_button" />
 </form>
Index: main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser_templates/reimportbatchpage.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser_templates/reimportbatchpage.pt	(revision 7718)
+++ main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser_templates/reimportbatchpage.pt	(revision 7719)
@@ -1,5 +1,7 @@
-<p> Please select the files to reimport. Please note, that batches with  same name have to be deleted before.
+<p i18n:domain="waeup.sirp">
+Please select the files to reimport. Please note, that batches with
+same name have to be deleted before.
 </p>
-<form method="POST">
+<form method="POST" i18n:domain="waeup.sirp">
   <table>
     <thead>
@@ -7,19 +9,23 @@
         <th>&nbsp;
         </th>
-        <th>File
+        <th i18n:translate="">File
         </th>
       </tr>
     </thead>
     <tbody>
-      <tr tal:repeat="filename context/getImportFiles"  tal:attributes="class python: repeat['filename'].odd() and 'even' or 'odd'"> <td>
-          <input type="checkbox" name="filenames" value="filename"  tal:attributes="value filename" /> </td>
-        <td tal:content="filename">file.name</td>
+      <tr tal:repeat="filename context/getImportFiles"
+          tal:attributes="class python: repeat['filename'].odd() and 'even' or 'odd'"> <td>
+          <input type="checkbox" name="filenames" value="filename"
+              tal:attributes="value filename" /> </td>
+        <td tal:content="filename">FILENAME</td>
       </tr>
       <tr tal:condition="python: len(list(context.getImportFiles())) == 0">
-        <td colspan="5"><b>No import batches available</b></td>
+        <td colspan="5"><b i18n:translate="">No import batches available</b></td>
       </tr>
     </tbody>
   </table>
-  <input type="submit" class="btn primary" name="reimport" value="Reimport" />
-  <input type="submit" class="btn" name="cancel" value="Cancel" />
+  <input type="submit" class="btn primary" name="reimport"
+      tal:attributes="value view/reimport_button" />
+  <input type="submit" class="btn" name="cancel"
+      tal:attributes="value view/cancel_button" />
 </form>
Index: main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser_templates/searchpage.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser_templates/searchpage.pt	(revision 7718)
+++ main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser_templates/searchpage.pt	(revision 7719)
@@ -1,17 +1,13 @@
-<form method="POST">
-
+<form method="POST" i18n:domain="waeup.sirp">
 <br />
-
-  <input type="submit" class="btn primary" name="search" value="Search" />
-  for access codes
-
+  <input type="submit" class="btn primary" name="search"
+      tal:attributes="value view/search_button" />
+  <span i18n:translate="">for access codes</span>
   <select name="searchtype">
-    <option value="code">with PIN</option>
-    <option value="batch_serial">with serial</option>
-    <option value="history">with message term</option>
+    <option i18n:translate="" value="code">with PIN</option>
+    <option i18n:translate="" value="batch_serial">with serial</option>
+    <option i18n:translate="" value="history">with message term</option>
   </select>
-
   <input type="text" name="searchterm" />
-
   <p>&nbsp;</p>
   <div tal:condition="view/hitlist">
@@ -25,9 +21,9 @@
       <tr>
         <th>&nbsp;</th>
-        <th width="50px">Serial</th>
-        <th>AC</th>
-        <th>State</th>
-        <th>Owner</th>
-        <th>History</th>
+        <th width="50px" i18n:translate="">Serial</th>
+        <th i18n:translate="">AC</th>
+        <th i18n:translate="">State</th>
+        <th i18n:translate="">Owner</th>
+        <th i18n:translate="">History</th>
       </tr>
       </thead>
@@ -47,6 +43,8 @@
     </table>
     <div>
-      <input type="submit" class="btn" name="disable" value="Disable ACs" />
-      <input type="submit" class="btn" name="enable" value="Enable ACs" />
+      <input type="submit" class="btn" name="disable"
+          tal:attributes="value view/disable_button" />
+      <input type="submit" class="btn" name="enable"
+          tal:attributes="value view/enable_button" />
     </div>
 
Index: main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/interfaces.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/interfaces.py	(revision 7718)
+++ main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/interfaces.py	(revision 7719)
@@ -21,4 +21,5 @@
 from zope.interface import Interface
 from waeup.sirp.interfaces import ISIRPObject
+from waeup.sirp.interfaces import MessageFactory as _
 
 class IAccessCode(ISIRPObject):
@@ -26,30 +27,30 @@
     """
     batch_serial = schema.Int(
-        title = u'Serial number inside batch',
+        title = _(u'Serial number inside batch'),
         )
     batch_prefix = schema.TextLine(
-        title = u'Prefix inside batch',
+        title = _(u'Prefix inside batch'),
         )
     batch_num = schema.Int(
-        title = u'Batch number',
+        title = _(u'Batch number'),
         )
     random_num = schema.TextLine(
-        title = u'Random part of access code.',
+        title = _(u'Random part of access code.'),
         )
     cost = schema.Float(
-        title = u'Cost of access code',
+        title = _(u'Cost of access code'),
         default = 0.0, min = 0.0,
         )
     state = schema.TextLine(
-        title = u'Workflow state',
+        title = _(u'Workflow state'),
         )
     representation = schema.TextLine(
-        title = u'Complete title of access code',
+        title = _(u'Complete title of access code'),
         )
     owner = schema.TextLine(
-        title = u'Purchaser',
+        title = _(u'Purchaser'),
         )
     history = schema.Text(
-        title = u'The history of access code as lines',
+        title = _(u'The history of access code as lines'),
         default = u'',
         readonly = True,
@@ -60,31 +61,31 @@
     """
     creation_date = schema.Date(
-        title = u'Creation date',
+        title = _(u'Creation date'),
         )
     creator = schema.TextLine(
-        title = u'Batch creator',
+        title = _(u'Batch creator'),
         )
     prefix = schema.TextLine(
-        title = u'Batch prefix',
+        title = _(u'Batch prefix'),
         )
     num = schema.Int(
-        title = u'Batch number (1-3 digits)',
+        title = _(u'Batch number (1-3 digits)'),
         min = 0, max = 999,
         )
     entry_num = schema.Int(
-        title = u'Number of access codes',
+        title = _(u'Number of access codes'),
         default = 1000, min = 0,
         )
     cost = schema.Float(
-        title = u'Cost of access code',
+        title = _(u'Cost of access code'),
         default = 0.0, min = 0.0,
         )
     disabled_num = schema.Int(
-        title = u'Number of disabled access codes inside the batch',
+        title = _(u'Number of disabled access codes inside the batch'),
         default = 0,
         readonly = True,
         )
     used_num = schema.Int(
-        title = u'Number of used access codes inside the batch',
+        title = _(u'Number of used access codes inside the batch'),
         default = 0,
         readonly = True,
Index: main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/tests/test_accesscode.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/tests/test_accesscode.py	(revision 7718)
+++ main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/tests/test_accesscode.py	(revision 7719)
@@ -188,5 +188,5 @@
         history = IObjectHistory(self.ac1)
         msgs = history.messages
-        assert msgs[-1].endswith('AC used by system')
+        assert msgs[-1].endswith('used by system')
 
 class AccessCodeTests(FunctionalTestCase):
@@ -232,5 +232,5 @@
         # Access codes have a history.
         match = re.match(
-            '^....-..-.. ..:..:.. - AC initialized by system',
+            '^....-..-.. ..:..:.. - initialized by system',
             self.ac1.history)
         assert match is not None
Index: main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/workflow.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/workflow.py	(revision 7718)
+++ main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/workflow.py	(revision 7719)
@@ -20,9 +20,11 @@
 """
 import grok
+from zope.i18n import translate
+from zope.component import getUtility
 from datetime import datetime
 from hurry.workflow.workflow import Transition, WorkflowState, NullCondition
 from hurry.workflow.interfaces import IWorkflowState, IWorkflowTransitionEvent
 from waeup.sirp.accesscodes.interfaces import IAccessCode
-from waeup.sirp.interfaces import IObjectHistory, ISIRPWorkflowInfo
+from waeup.sirp.interfaces import IObjectHistory, ISIRPWorkflowInfo, ISIRPUtils
 from waeup.sirp.interfaces import MessageFactory as _
 from waeup.sirp.workflow import SIRPWorkflow, SIRPWorkflowInfo
@@ -131,9 +133,9 @@
 def handle_accesscode_transition_event(obj, event):
     # append message to history
+    portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
     if event.comment is not None:
-        msg = '%s' % event.comment
+        msg = event.comment
     else:
-        msg = 'AC %s' % event.destination
-
+        msg = ac_states_dict[event.destination]
     history = IObjectHistory(obj)
     history.addMessage(msg)
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 7718)
+++ main/waeup.sirp/trunk/src/waeup/sirp/locales/de/LC_MESSAGES/waeup.sirp.po	(revision 7719)
@@ -15,6 +15,6 @@
 msgstr ""
 "Project-Id-Version: WAeUP.SIRP\n"
-"POT-Creation-Date: Tue Feb 28 18:06:20 2012\n"
-"PO-Revision-Date: 2012-02-28 18:10+0100\n"
+"POT-Creation-Date: Tue Feb 28 21:45:08 2012\n"
+"PO-Revision-Date: 2012-02-28 21:49+0100\n"
 "Last-Translator: Henrik Bettermann <henrik@waeup.org>\n"
 "Language-Team: WAeUP Germany <henrik@waeup.org>\n"
@@ -28,245 +28,130 @@
 "X-Poedit-SourceCharset: utf-8\n"
 
-#: waeup/sirp/accesscodes/workflow.py:100
-msgid "Disable used PIN"
-msgstr "Benutzte PIN deaktivieren"
-
-#: waeup/sirp/accesscodes/workflow.py:107
-msgid "Reenable disabled PIN"
-msgstr "Deaktivierte PIN reaktivieren"
-
-#: waeup/sirp/accesscodes/workflow.py:35
-#: waeup/sirp/applicants/workflow.py:37
-msgid "initialized"
-msgstr "initialisiert"
-
-#: waeup/sirp/accesscodes/workflow.py:36
-msgid "used"
-msgstr "verwendet"
-
-#: waeup/sirp/accesscodes/workflow.py:37
-msgid "disabled"
-msgstr "deaktiviert"
-
-#: waeup/sirp/accesscodes/workflow.py:79
-msgid "Initialize PIN"
-msgstr "PIN initialisieren"
-
-#: waeup/sirp/accesscodes/workflow.py:86
-msgid "Use PIN"
-msgstr "PIN verwenden"
-
-#: waeup/sirp/accesscodes/workflow.py:93
-msgid "Disable unused PIN"
-msgstr "Unbenutzte PIN deaktivieren"
-
-#: waeup/sirp/applicants/browser.py:117
-#: waeup/sirp/applicants/browser.py:324
-#: waeup/sirp/applicants/browser.py:743
-msgid "Could not delete:"
-msgstr "Konnte nicht gelöscht werden:"
-
-#: waeup/sirp/applicants/browser.py:120
-#: waeup/sirp/applicants/browser.py:327
-#: waeup/sirp/applicants/browser.py:746
-msgid "Successfully removed:"
-msgstr "Erfolgreich entfernt:"
-
-#: waeup/sirp/applicants/browser.py:168
-msgid "An applicants container for the same application type and entrance year exists already in the database."
-msgstr "Ein Ordner für diesen Antragstypen mit gleichem Eingangsjahr existiert bereits."
-
-#: waeup/sirp/applicants/browser.py:177
-msgid "Added:"
-msgstr "Hinzugefügt:"
-
-#: waeup/sirp/applicants/browser.py:189
-#: waeup/sirp/applicants/viewlets.py:44
-#: waeup/sirp/applicants/browser_templates/applicantscontainermanagepage.pt:12
-#: waeup/sirp/applicants/browser_templates/applicantscontainermanagepage.pt:57
-msgid "Applicants"
-msgstr "Antragsteller"
-
-#: waeup/sirp/applicants/browser.py:253
-#: waeup/sirp/applicants/browser.py:300
-#: waeup/sirp/applicants/browser.py:652
-#: waeup/sirp/applicants/browser.py:686
-#: waeup/sirp/applicants/browser.py:788
-#: waeup/sirp/applicants/browser.py:791
-#: waeup/sirp/applicants/browser.py:835
-#: waeup/sirp/browser/pages.py:476
-#: waeup/sirp/browser/pages.py:631
-#: waeup/sirp/browser/pages.py:654
-#: waeup/sirp/browser/pages.py:728
-#: waeup/sirp/browser/pages.py:1164
-#: waeup/sirp/browser/pages.py:1335
-#: waeup/sirp/browser/pages.py:1376
-#: waeup/sirp/browser/pages.py:1502
-#: waeup/sirp/browser/pages.py:1555
-#: waeup/sirp/browser/pages.py:1698
-#: waeup/sirp/browser/pages.py:1749
-#: waeup/sirp/browser/pages.py:1770
-#: waeup/sirp/hostels/browser.py:209
-#: waeup/sirp/hostels/browser.py:231
-#: waeup/sirp/hostels/browser.py:317
-msgid "Save"
-msgstr "Speichern"
-
-#: waeup/sirp/applicants/browser.py:254
-#: waeup/sirp/applicants/browser.py:331
-#: waeup/sirp/applicants/browser.py:359
-msgid "Add applicant"
-msgstr "Antragsteller hinzufügen"
-
-#: waeup/sirp/applicants/browser.py:264
-#: waeup/sirp/applicants/viewlets.py:95
-msgid "Manage applicants container"
-msgstr "Ordner für Antragsteller verwalten"
-
-#: waeup/sirp/applicants/browser.py:304
-#: waeup/sirp/applicants/browser.py:715
-#: waeup/sirp/browser/pages.py:1379
-#: waeup/sirp/browser/pages.py:1701
-#: waeup/sirp/browser/pages.py:1773
-#: waeup/sirp/browser/pages.py:1885
-#: waeup/sirp/hostels/browser.py:54
-msgid "Form has been saved."
-msgstr "Das Formular wurde gespeichert."
-
-#: waeup/sirp/applicants/browser.py:313
-msgid "No applicant selected!"
-msgstr "Nichts ausgewählt!"
-
-#: waeup/sirp/applicants/browser.py:362
-msgid "Create application record"
-msgstr "Antrag hinzufügen"
-
-#: waeup/sirp/applicants/browser.py:367
-msgid "Applicant record created."
-msgstr "Antrag wurde erzeugt."
-
-#: waeup/sirp/applicants/browser.py:380
-msgid "Applicant"
-msgstr "Antragsteller"
-
-#: waeup/sirp/applicants/browser.py:395
-msgid "set"
-msgstr "gesetzt"
-
-#: waeup/sirp/applicants/browser.py:396
-msgid "unset"
-msgstr "ungesetzt"
-
-#. Default: ""
-#: waeup/sirp/applicants/browser.py:401
-msgid "${a} Application Record ${b}"
-msgstr "${a} Antrag ${b}"
-
-#: waeup/sirp/applicants/browser.py:452
-msgid "Session configuration object is not available."
-msgstr "Session-Konfiguration ist nicht verfügbar."
-
-#: waeup/sirp/applicants/browser.py:459
-msgid "This type of payment has already been made."
-msgstr "Diese Bezahlung wurde bereits ausgeführt."
-
-#: waeup/sirp/applicants/browser.py:472
-msgid "Payment ticket created."
-msgstr "Bezahl-Ticket wurde erzeugt."
-
-#. Default: ""
-#: waeup/sirp/applicants/browser.py:499
-msgid "${a}: Online Payment Ticket ${b}"
-msgstr "${a}: Online-Bezahl-Ticket ${b}"
-
-#: waeup/sirp/applicants/browser.py:527
-msgid "Valid callback received."
-msgstr "Gültigen Rückruf erhalten."
-
-#: waeup/sirp/applicants/browser.py:548
-msgid "Payment Data"
-msgstr "Zahlung"
-
-#: waeup/sirp/applicants/browser.py:554
-msgid "Online Payment Receipt"
-msgstr "Quittung"
-
-#: waeup/sirp/applicants/browser.py:560
-msgid "Ticket not yet paid."
-msgstr "Ticket wurde noch nicht bezahlt."
-
-#: waeup/sirp/applicants/browser.py:625
-msgid "Uploaded image is too big!"
-msgstr "Das hochgeladene Bild ist zu groß!"
-
-#: waeup/sirp/applicants/browser.py:630
-msgid "jpg file extension expected."
-msgstr "jpg-Dateiendung erwartet."
-
-#: waeup/sirp/applicants/browser.py:64
-msgid "Application Section"
-msgstr "Antragstellung"
-
-#: waeup/sirp/applicants/browser.py:652
-#: waeup/sirp/applicants/browser.py:791
-#: waeup/sirp/applicants/browser.py:843
-msgid "Final Submit"
-msgstr "Endgültiges Einreichen"
-
-#: waeup/sirp/applicants/browser.py:653
-#: waeup/sirp/applicants/browser.py:755
-#: waeup/sirp/applicants/browser.py:789
-#: waeup/sirp/applicants/browser.py:824
-msgid "Add online payment ticket"
-msgstr "Ticket für Online-Bezahlung hinzufügen"
-
-#: waeup/sirp/applicants/browser.py:653
-#: waeup/sirp/applicants/browser.py:760
-#: waeup/sirp/applicants/browser.py:789
-#: waeup/sirp/applicants/browser.py:792
-#: waeup/sirp/applicants/browser.py:829
-msgid "Remove selected tickets"
-msgstr "Ausgewählte Tickets löschen"
-
-#. Default: ""
-#: waeup/sirp/applicants/browser.py:672
-msgid "${a} Application Form ${b}"
-msgstr "${a} Antragsformular ${b}"
-
-#: waeup/sirp/applicants/browser.py:683
-#: waeup/sirp/students/browser.py:344
-msgid "No transition"
-msgstr "Keine Änderung"
-
-#: waeup/sirp/applicants/browser.py:730
-msgid "No payment selected."
-msgstr "Nichts ausgewählt!"
-
-#: waeup/sirp/applicants/browser.py:76
-#: waeup/sirp/applicants/viewlets.py:88
-msgid "Manage application section"
-msgstr "Antragstellungsverfahren verwalten"
-
-#: waeup/sirp/applicants/browser.py:79
-#: waeup/sirp/applicants/browser.py:105
-#: waeup/sirp/applicants/browser.py:254
-#: waeup/sirp/applicants/browser.py:307
-#: waeup/sirp/browser/pages.py:634
-#: waeup/sirp/browser/pages.py:675
-#: waeup/sirp/browser/pages.py:1259
-#: waeup/sirp/browser/pages.py:1270
-#: waeup/sirp/browser/pages.py:1336
-#: waeup/sirp/browser/pages.py:1371
-#: waeup/sirp/hostels/browser.py:131
-msgid "Remove selected"
-msgstr "Ausgewählte Objekte löschen"
-
-#: waeup/sirp/applicants/browser.py:79
-#: waeup/sirp/applicants/browser.py:124
-#: waeup/sirp/applicants/browser.py:147
-#: waeup/sirp/applicants/browser.py:159
-msgid "Add applicants container"
-msgstr "Ordner für Antragsteller hinzufügen"
-
+#: waeup/sirp/accesscodes/browser.py:102
+msgid "Reimport"
+msgstr "Reimportieren"
+
+#: waeup/sirp/accesscodes/browser.py:105
+msgid "Reimport Access Code Batches"
+msgstr "Zugangscode-Stapel reimportieren"
+
+#: waeup/sirp/accesscodes/browser.py:110
+msgid "Reimport cancelled."
+msgstr "Reimport abgebrochen."
+
+#: waeup/sirp/accesscodes/browser.py:116
+msgid "No file chosen. Action cancelled."
+msgstr "Keine Datei ausgewählt, Aktion abgebrochen."
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:126
+msgid "This batch already exists: ${a}"
+msgstr "Dieser Stapel existiert bereits: ${a}"
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:129
+msgid "Successfully reimported: ${a}"
+msgstr "Erfolgreich reimportiert: ${a}"
+
+#: waeup/sirp/accesscodes/browser.py:139
+msgid "Search and Manage Access Codes"
+msgstr "Suche und verwalte Zugangscodes"
+
+#: waeup/sirp/accesscodes/browser.py:140
+#: waeup/sirp/browser/pages.py:592
+#: waeup/sirp/browser/viewlets.py:187
+msgid "Search"
+msgstr "Suchen"
+
+#: waeup/sirp/accesscodes/browser.py:141
+msgid "Disable ACs"
+msgstr "Zugangscode deaktivieren"
+
+#: waeup/sirp/accesscodes/browser.py:142
+msgid "Enable ACs"
+msgstr "Aktiviere Zugangscode"
+
+#: waeup/sirp/accesscodes/browser.py:166
+msgid "AC disabled"
+msgstr "Zugangscode deaktiviert"
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:168
+msgid "${a} disabled."
+msgstr "${a} deaktiviert"
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:170
+msgid "${a}: Disable transition not allowed."
+msgstr "${a}: Deaktivierung nicht möglich."
+
+#: waeup/sirp/accesscodes/browser.py:174
+msgid "AC re-enabled"
+msgstr "Zugangscode reaktiviert"
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:176
+msgid "${a} (re-)enabled."
+msgstr "${a} (re-)aktiviert."
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:178
+msgid "${a}: Re-enable transition not allowed."
+msgstr "${a}: Reaktivieren nich möglich."
+
+#: waeup/sirp/accesscodes/browser.py:217
+msgid "Add Access Code Batch"
+msgstr "Zugangscode-Stapel hinzufügen"
+
+#: waeup/sirp/accesscodes/browser.py:226
+msgid "Reimport Access Code Batch"
+msgstr "Zugangscode-Stapel reimportieren"
+
+#: waeup/sirp/accesscodes/browser.py:234
+msgid "Search Access Codes"
+msgstr "Zugangscode suchen"
+
+#: waeup/sirp/accesscodes/browser.py:243
+msgid "Access Codes"
+msgstr "Zugangscodes"
+
+#: waeup/sirp/accesscodes/browser.py:43
+msgid "Archive"
+msgstr "Archivieren"
+
+#: waeup/sirp/accesscodes/browser.py:44
+msgid "Archive and delete"
+msgstr "Archivieren und löschen"
+
+#: waeup/sirp/accesscodes/browser.py:46
+#: waeup/sirp/accesscodes/browser.py:188
+#: waeup/sirp/accesscodes/browser.py:208
+msgid "Access Code Batches"
+msgstr "Zugangscode-Stapel"
+
+#: waeup/sirp/accesscodes/browser.py:53
+msgid "No batch selected."
+msgstr "Keinen Stapel ausgewählt."
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:60
+msgid "Archived ${a} (${b})"
+msgstr "${a} (${b}) archiviert"
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:65
+msgid "Deleted batch ${a}"
+msgstr "Stapel ${a} gelöscht"
+
+#: waeup/sirp/accesscodes/browser.py:72
+msgid "Create Access Code Batch"
+msgstr "Zugangscode-Stapel erzeugen"
+
+#: waeup/sirp/accesscodes/browser.py:78
+msgid "Create batch"
+msgstr "Stapel erzeugen"
+
+#: waeup/sirp/accesscodes/browser.py:90
+#: waeup/sirp/accesscodes/browser.py:103
 #: waeup/sirp/applicants/browser.py:80
 #: waeup/sirp/applicants/browser.py:129
@@ -305,4 +190,385 @@
 msgstr "Abbruch"
 
+#: waeup/sirp/accesscodes/browser.py:92
+msgid "Batch creation cancelled."
+msgstr "Stapelerzeugung abgebrochen."
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:10
+msgid "Entries/(invalidated)"
+msgstr "Einträge / (verbraucht)"
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:11
+msgid "Cost"
+msgstr "Preis"
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:12
+msgid "Date of Creation"
+msgstr "Erzeugungsdatum"
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:13
+msgid "Creator"
+msgstr "Erzeuger"
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:2
+msgid "The following batches are available:"
+msgstr "Die folgenden Stapel sind vorhanden:"
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:39
+msgid "No batches yet"
+msgstr "Keine Stapel vorhanden"
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:9
+msgid "Prefix"
+msgstr "Prefix"
+
+#: waeup/sirp/accesscodes/browser_templates/reimportbatchpage.pt:23
+msgid "No import batches available"
+msgstr "Keine Importstapel verfügbar"
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:23
+msgid "Serial"
+msgstr "Seriennummer"
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:24
+msgid "AC"
+msgstr "Zugangscode"
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:25
+#: waeup/sirp/applicants/browser_templates/applicanteditpage.pt:105
+#: waeup/sirp/applicants/browser_templates/applicantdisplaypage.pt:54
+msgid "State"
+msgstr "Status"
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:26
+#: waeup/sirp/hostels/browser_templates/hostelmanagepage.pt:56
+msgid "Owner"
+msgstr "Eigentümer"
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:27
+msgid "History"
+msgstr "Historie"
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:5
+msgid "for access codes"
+msgstr "nach Zugangscodes"
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:7
+msgid "with PIN"
+msgstr "mit PIN"
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:8
+msgid "with serial"
+msgstr "mit Seriennummer"
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:9
+msgid "with message term"
+msgstr "mit Mitteilung"
+
+#: waeup/sirp/accesscodes/interfaces.py:29
+msgid "Serial number inside batch"
+msgstr "Seriennummer innerhalb eines Stapels"
+
+#: waeup/sirp/accesscodes/interfaces.py:32
+msgid "Prefix inside batch"
+msgstr "Prefix innerhalb eines Stapels"
+
+#: waeup/sirp/accesscodes/interfaces.py:35
+msgid "Batch number"
+msgstr "Batch-Nummer"
+
+#: waeup/sirp/accesscodes/interfaces.py:38
+msgid "Random part of access code."
+msgstr "Zufallsteil des Zugangscodes"
+
+#: waeup/sirp/accesscodes/interfaces.py:41
+#: waeup/sirp/accesscodes/interfaces.py:80
+msgid "Cost of access code"
+msgstr "Preis des Zugangscodes"
+
+#: waeup/sirp/accesscodes/interfaces.py:45
+msgid "Workflow state"
+msgstr "Workflow-Status"
+
+#: waeup/sirp/accesscodes/interfaces.py:48
+msgid "Complete title of access code"
+msgstr "Vollständiger Titel des Zugangscodes"
+
+#: waeup/sirp/accesscodes/interfaces.py:51
+msgid "Purchaser"
+msgstr "Käufer"
+
+#: waeup/sirp/accesscodes/interfaces.py:54
+msgid "The history of access code as lines"
+msgstr "Die Historie eines Zugangscodes"
+
+#: waeup/sirp/accesscodes/interfaces.py:63
+msgid "Creation date"
+msgstr "Erstellungsdatum"
+
+#: waeup/sirp/accesscodes/interfaces.py:66
+msgid "Batch creator"
+msgstr "Stapel-Erzeuger"
+
+#: waeup/sirp/accesscodes/interfaces.py:69
+msgid "Batch prefix"
+msgstr "Stapel-Prefix"
+
+#: waeup/sirp/accesscodes/interfaces.py:72
+msgid "Batch number (1-3 digits)"
+msgstr "Stapelnummer (1-3 Zeichen)"
+
+#: waeup/sirp/accesscodes/interfaces.py:76
+msgid "Number of access codes"
+msgstr "Zugangscode-Nummer"
+
+#: waeup/sirp/accesscodes/interfaces.py:84
+msgid "Number of disabled access codes inside the batch"
+msgstr "Anzahl der deaktivierten Zugangscodes"
+
+#: waeup/sirp/accesscodes/interfaces.py:89
+msgid "Number of used access codes inside the batch"
+msgstr "Anzahl der verbrauchten Zugangscodes"
+
+#: waeup/sirp/accesscodes/workflow.py:102
+msgid "Disable used PIN"
+msgstr "Benutzte PIN deaktivieren"
+
+#: waeup/sirp/accesscodes/workflow.py:109
+msgid "Reenable disabled PIN"
+msgstr "Deaktivierte PIN reaktivieren"
+
+#: waeup/sirp/accesscodes/workflow.py:37
+#: waeup/sirp/applicants/workflow.py:37
+msgid "initialized"
+msgstr "initialisiert"
+
+#: waeup/sirp/accesscodes/workflow.py:38
+msgid "used"
+msgstr "verwendet"
+
+#: waeup/sirp/accesscodes/workflow.py:39
+msgid "disabled"
+msgstr "deaktiviert"
+
+#: waeup/sirp/accesscodes/workflow.py:81
+msgid "Initialize PIN"
+msgstr "PIN initialisieren"
+
+#: waeup/sirp/accesscodes/workflow.py:88
+msgid "Use PIN"
+msgstr "PIN verwenden"
+
+#: waeup/sirp/accesscodes/workflow.py:95
+msgid "Disable unused PIN"
+msgstr "Unbenutzte PIN deaktivieren"
+
+#: waeup/sirp/applicants/browser.py:117
+#: waeup/sirp/applicants/browser.py:324
+#: waeup/sirp/applicants/browser.py:743
+msgid "Could not delete:"
+msgstr "Konnte nicht gelöscht werden:"
+
+#: waeup/sirp/applicants/browser.py:120
+#: waeup/sirp/applicants/browser.py:327
+#: waeup/sirp/applicants/browser.py:746
+msgid "Successfully removed:"
+msgstr "Erfolgreich entfernt:"
+
+#: waeup/sirp/applicants/browser.py:168
+msgid "An applicants container for the same application type and entrance year exists already in the database."
+msgstr "Ein Ordner für diesen Antragstypen mit gleichem Eingangsjahr existiert bereits."
+
+#: waeup/sirp/applicants/browser.py:177
+msgid "Added:"
+msgstr "Hinzugefügt:"
+
+#: waeup/sirp/applicants/browser.py:189
+#: waeup/sirp/applicants/viewlets.py:44
+#: waeup/sirp/applicants/browser_templates/applicantscontainermanagepage.pt:12
+#: waeup/sirp/applicants/browser_templates/applicantscontainermanagepage.pt:57
+msgid "Applicants"
+msgstr "Antragsteller"
+
+#: waeup/sirp/applicants/browser.py:253
+#: waeup/sirp/applicants/browser.py:300
+#: waeup/sirp/applicants/browser.py:652
+#: waeup/sirp/applicants/browser.py:686
+#: waeup/sirp/applicants/browser.py:788
+#: waeup/sirp/applicants/browser.py:791
+#: waeup/sirp/applicants/browser.py:835
+#: waeup/sirp/browser/pages.py:476
+#: waeup/sirp/browser/pages.py:631
+#: waeup/sirp/browser/pages.py:654
+#: waeup/sirp/browser/pages.py:728
+#: waeup/sirp/browser/pages.py:1164
+#: waeup/sirp/browser/pages.py:1335
+#: waeup/sirp/browser/pages.py:1376
+#: waeup/sirp/browser/pages.py:1502
+#: waeup/sirp/browser/pages.py:1555
+#: waeup/sirp/browser/pages.py:1698
+#: waeup/sirp/browser/pages.py:1749
+#: waeup/sirp/browser/pages.py:1770
+#: waeup/sirp/hostels/browser.py:209
+#: waeup/sirp/hostels/browser.py:231
+#: waeup/sirp/hostels/browser.py:319
+msgid "Save"
+msgstr "Speichern"
+
+#: waeup/sirp/applicants/browser.py:254
+#: waeup/sirp/applicants/browser.py:331
+#: waeup/sirp/applicants/browser.py:359
+msgid "Add applicant"
+msgstr "Antragsteller hinzufügen"
+
+#: waeup/sirp/applicants/browser.py:264
+#: waeup/sirp/applicants/viewlets.py:95
+msgid "Manage applicants container"
+msgstr "Ordner für Antragsteller verwalten"
+
+#: waeup/sirp/applicants/browser.py:304
+#: waeup/sirp/applicants/browser.py:715
+#: waeup/sirp/browser/pages.py:1379
+#: waeup/sirp/browser/pages.py:1701
+#: waeup/sirp/browser/pages.py:1773
+#: waeup/sirp/browser/pages.py:1885
+#: waeup/sirp/hostels/browser.py:54
+msgid "Form has been saved."
+msgstr "Das Formular wurde gespeichert."
+
+#: waeup/sirp/applicants/browser.py:313
+msgid "No applicant selected!"
+msgstr "Nichts ausgewählt!"
+
+#: waeup/sirp/applicants/browser.py:362
+msgid "Create application record"
+msgstr "Antrag hinzufügen"
+
+#: waeup/sirp/applicants/browser.py:367
+msgid "Applicant record created."
+msgstr "Antrag wurde erzeugt."
+
+#: waeup/sirp/applicants/browser.py:380
+msgid "Applicant"
+msgstr "Antragsteller"
+
+#: waeup/sirp/applicants/browser.py:395
+msgid "set"
+msgstr "gesetzt"
+
+#: waeup/sirp/applicants/browser.py:396
+msgid "unset"
+msgstr "ungesetzt"
+
+#. Default: ""
+#: waeup/sirp/applicants/browser.py:401
+msgid "${a} Application Record ${b}"
+msgstr "${a} Antrag ${b}"
+
+#: waeup/sirp/applicants/browser.py:452
+msgid "Session configuration object is not available."
+msgstr "Session-Konfiguration ist nicht verfügbar."
+
+#: waeup/sirp/applicants/browser.py:459
+msgid "This type of payment has already been made."
+msgstr "Diese Bezahlung wurde bereits ausgeführt."
+
+#: waeup/sirp/applicants/browser.py:472
+msgid "Payment ticket created."
+msgstr "Bezahl-Ticket wurde erzeugt."
+
+#. Default: ""
+#: waeup/sirp/applicants/browser.py:499
+msgid "${a}: Online Payment Ticket ${b}"
+msgstr "${a}: Online-Bezahl-Ticket ${b}"
+
+#: waeup/sirp/applicants/browser.py:527
+msgid "Valid callback received."
+msgstr "Gültigen Rückruf erhalten."
+
+#: waeup/sirp/applicants/browser.py:548
+msgid "Payment Data"
+msgstr "Zahlung"
+
+#: waeup/sirp/applicants/browser.py:554
+msgid "Online Payment Receipt"
+msgstr "Quittung"
+
+#: waeup/sirp/applicants/browser.py:560
+msgid "Ticket not yet paid."
+msgstr "Ticket wurde noch nicht bezahlt."
+
+#: waeup/sirp/applicants/browser.py:625
+msgid "Uploaded image is too big!"
+msgstr "Das hochgeladene Bild ist zu groß!"
+
+#: waeup/sirp/applicants/browser.py:630
+msgid "jpg file extension expected."
+msgstr "jpg-Dateiendung erwartet."
+
+#: waeup/sirp/applicants/browser.py:64
+msgid "Application Section"
+msgstr "Antragstellung"
+
+#: waeup/sirp/applicants/browser.py:652
+#: waeup/sirp/applicants/browser.py:791
+#: waeup/sirp/applicants/browser.py:843
+msgid "Final Submit"
+msgstr "Endgültiges Einreichen"
+
+#: waeup/sirp/applicants/browser.py:653
+#: waeup/sirp/applicants/browser.py:755
+#: waeup/sirp/applicants/browser.py:789
+#: waeup/sirp/applicants/browser.py:824
+msgid "Add online payment ticket"
+msgstr "Ticket für Online-Bezahlung hinzufügen"
+
+#: waeup/sirp/applicants/browser.py:653
+#: waeup/sirp/applicants/browser.py:760
+#: waeup/sirp/applicants/browser.py:789
+#: waeup/sirp/applicants/browser.py:792
+#: waeup/sirp/applicants/browser.py:829
+msgid "Remove selected tickets"
+msgstr "Ausgewählte Tickets löschen"
+
+#. Default: ""
+#: waeup/sirp/applicants/browser.py:672
+msgid "${a} Application Form ${b}"
+msgstr "${a} Antragsformular ${b}"
+
+#: waeup/sirp/applicants/browser.py:683
+#: waeup/sirp/students/browser.py:344
+msgid "No transition"
+msgstr "Keine Änderung"
+
+#: waeup/sirp/applicants/browser.py:730
+msgid "No payment selected."
+msgstr "Nichts ausgewählt!"
+
+#: waeup/sirp/applicants/browser.py:76
+#: waeup/sirp/applicants/viewlets.py:88
+msgid "Manage application section"
+msgstr "Antragstellungsverfahren verwalten"
+
+#: waeup/sirp/applicants/browser.py:79
+#: waeup/sirp/applicants/browser.py:105
+#: waeup/sirp/applicants/browser.py:254
+#: waeup/sirp/applicants/browser.py:307
+#: waeup/sirp/browser/pages.py:634
+#: waeup/sirp/browser/pages.py:675
+#: waeup/sirp/browser/pages.py:1259
+#: waeup/sirp/browser/pages.py:1270
+#: waeup/sirp/browser/pages.py:1336
+#: waeup/sirp/browser/pages.py:1371
+#: waeup/sirp/hostels/browser.py:131
+msgid "Remove selected"
+msgstr "Ausgewählte Objekte löschen"
+
+#: waeup/sirp/applicants/browser.py:79
+#: waeup/sirp/applicants/browser.py:124
+#: waeup/sirp/applicants/browser.py:147
+#: waeup/sirp/applicants/browser.py:159
+msgid "Add applicants container"
+msgstr "Ordner für Antragsteller hinzufügen"
+
 #: waeup/sirp/applicants/browser.py:802
 msgid "The requested form is locked (read-only)."
@@ -403,9 +669,4 @@
 msgid "Item"
 msgstr "Gegenstand"
-
-#: waeup/sirp/applicants/browser_templates/applicanteditpage.pt:105
-#: waeup/sirp/applicants/browser_templates/applicantdisplaypage.pt:54
-msgid "State"
-msgstr "Status"
 
 #: waeup/sirp/applicants/browser_templates/applicanteditpage.pt:36
@@ -881,5 +1142,5 @@
 #: waeup/sirp/browser/pages.py:113
 #: waeup/sirp/hostels/browser.py:256
-#: waeup/sirp/hostels/browser.py:285
+#: waeup/sirp/hostels/browser.py:287
 msgid "No item selected."
 msgstr "Nichts ausgewählt."
@@ -1162,9 +1423,4 @@
 msgstr "Akademie durchsuchen"
 
-#: waeup/sirp/browser/pages.py:592
-#: waeup/sirp/browser/viewlets.py:187
-msgid "Search"
-msgstr "Suchen"
-
 #: waeup/sirp/browser/pages.py:617
 msgid "View portal configuration"
@@ -1407,4 +1663,5 @@
 #: waeup/sirp/browser/templates/datacenterlogspage.pt:10
 #: waeup/sirp/browser/templates/datacenterpage.pt:14
+#: waeup/sirp/accesscodes/browser_templates/reimportbatchpage.pt:11
 msgid "File"
 msgstr "Datei"
@@ -1718,5 +1975,5 @@
 
 #: waeup/sirp/hostels/browser.py:212
-#: waeup/sirp/hostels/browser.py:279
+#: waeup/sirp/hostels/browser.py:281
 msgid "Release selected beds"
 msgstr "Ausgewählte Betten freigeben"
@@ -1728,18 +1985,18 @@
 
 #. Default: ""
-#: waeup/sirp/hostels/browser.py:273
+#: waeup/sirp/hostels/browser.py:275
 msgid "Successfully switched beds: ${a}"
 msgstr "Erfolgreich geänderte Betten: ${a}"
 
 #. Default: ""
-#: waeup/sirp/hostels/browser.py:297
+#: waeup/sirp/hostels/browser.py:299
 msgid "Successfully released beds: ${a}"
 msgstr "Erfolgreich freigegebene Betten: ${a}"
 
-#: waeup/sirp/hostels/browser.py:302
+#: waeup/sirp/hostels/browser.py:304
 msgid "No allocated bed selected."
 msgstr "Keine Betten ausgewählt."
 
-#: waeup/sirp/hostels/browser.py:314
+#: waeup/sirp/hostels/browser.py:316
 msgid "Allocate student"
 msgstr "Student zuweisen"
@@ -1765,8 +2022,4 @@
 msgstr "Nummer"
 
-#: waeup/sirp/hostels/browser_templates/hostelmanagepage.pt:56
-msgid "Owner"
-msgstr "Eigentümer"
-
 #: waeup/sirp/hostels/browser_templates/hostelmanagepage.pt:6
 msgid "Hostel Data"
@@ -1781,9 +2034,9 @@
 msgstr "Betten"
 
-#: waeup/sirp/hostels/hostel.py:163
+#: waeup/sirp/hostels/hostel.py:180
 msgid "unreserved"
 msgstr "nicht reserviert"
 
-#: waeup/sirp/hostels/hostel.py:176
+#: waeup/sirp/hostels/hostel.py:187
 msgid "reserved"
 msgstr "reserviert"
@@ -2110,5 +2363,5 @@
 #: waeup/sirp/payments/interfaces.py:94
 msgid "Payment Access Code"
-msgstr "Zugangs-Code der Zahlung"
+msgstr "Zugangscode der Zahlung"
 
 #. Default: "Please solve the captcha<br />to prevent misuse of this service:"
@@ -2421,4 +2674,7 @@
 msgstr "8. Studienjahr"
 
+#~ msgid "Created"
+#~ msgstr "Erzeugt"
+
 #~ msgid "Could not switch: ${a}: ${b}: ${c}"
 #~ msgstr "Konnte nicht geändert werden: ${a}: ${b}: ${c}"
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 7718)
+++ main/waeup.sirp/trunk/src/waeup/sirp/locales/fr/LC_MESSAGES/waeup.sirp.po	(revision 7719)
@@ -15,5 +15,5 @@
 msgstr ""
 "Project-Id-Version: WAeUP.SIRP\n"
-"POT-Creation-Date: Tue Feb 28 18:06:20 2012\n"
+"POT-Creation-Date: Tue Feb 28 21:45:08 2012\n"
 "PO-Revision-Date: 2012-02-22 11:28+0100\n"
 "Last-Translator: Henrik Bettermann <henrik@waeup.org>\n"
@@ -28,213 +28,127 @@
 "X-Poedit-SourceCharset: utf-8\n"
 
-#: waeup/sirp/accesscodes/workflow.py:100
-msgid "Disable used PIN"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:107
-msgid "Reenable disabled PIN"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:35 waeup/sirp/applicants/workflow.py:37
-msgid "initialized"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:36
-msgid "used"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:37
-msgid "disabled"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:79
-msgid "Initialize PIN"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:86
-msgid "Use PIN"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:93
-msgid "Disable unused PIN"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:117 waeup/sirp/applicants/browser.py:324
-#: waeup/sirp/applicants/browser.py:743
-msgid "Could not delete:"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:120 waeup/sirp/applicants/browser.py:327
-#: waeup/sirp/applicants/browser.py:746
-msgid "Successfully removed:"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:168
-msgid ""
-"An applicants container for the same application type and entrance year "
-"exists already in the database."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:177
-msgid "Added:"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:189 waeup/sirp/applicants/viewlets.py:44
-#: waeup/sirp/applicants/browser_templates/applicantscontainermanagepage.pt:12
-#: waeup/sirp/applicants/browser_templates/applicantscontainermanagepage.pt:57
-msgid "Applicants"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:253 waeup/sirp/applicants/browser.py:300
-#: waeup/sirp/applicants/browser.py:652 waeup/sirp/applicants/browser.py:686
-#: waeup/sirp/applicants/browser.py:788 waeup/sirp/applicants/browser.py:791
-#: waeup/sirp/applicants/browser.py:835 waeup/sirp/browser/pages.py:476
-#: waeup/sirp/browser/pages.py:631 waeup/sirp/browser/pages.py:654
-#: waeup/sirp/browser/pages.py:728 waeup/sirp/browser/pages.py:1164
-#: waeup/sirp/browser/pages.py:1335 waeup/sirp/browser/pages.py:1376
-#: waeup/sirp/browser/pages.py:1502 waeup/sirp/browser/pages.py:1555
-#: waeup/sirp/browser/pages.py:1698 waeup/sirp/browser/pages.py:1749
-#: waeup/sirp/browser/pages.py:1770 waeup/sirp/hostels/browser.py:209
-#: waeup/sirp/hostels/browser.py:231 waeup/sirp/hostels/browser.py:317
-msgid "Save"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:254 waeup/sirp/applicants/browser.py:331
-#: waeup/sirp/applicants/browser.py:359
-msgid "Add applicant"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:264 waeup/sirp/applicants/viewlets.py:95
-msgid "Manage applicants container"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:304 waeup/sirp/applicants/browser.py:715
-#: waeup/sirp/browser/pages.py:1379 waeup/sirp/browser/pages.py:1701
-#: waeup/sirp/browser/pages.py:1773 waeup/sirp/browser/pages.py:1885
-#: waeup/sirp/hostels/browser.py:54
-msgid "Form has been saved."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:313
-msgid "No applicant selected!"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:362
-msgid "Create application record"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:367
-msgid "Applicant record created."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:380
-msgid "Applicant"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:395
-msgid "set"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:396
-msgid "unset"
-msgstr ""
-
-#. Default: ""
-#: waeup/sirp/applicants/browser.py:401
-msgid "${a} Application Record ${b}"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:452
-msgid "Session configuration object is not available."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:459
-msgid "This type of payment has already been made."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:472
-msgid "Payment ticket created."
-msgstr ""
-
-#. Default: ""
-#: waeup/sirp/applicants/browser.py:499
-msgid "${a}: Online Payment Ticket ${b}"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:527
-msgid "Valid callback received."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:548
-msgid "Payment Data"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:554
-msgid "Online Payment Receipt"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:560
-msgid "Ticket not yet paid."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:625
-msgid "Uploaded image is too big!"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:630
-msgid "jpg file extension expected."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:64
-msgid "Application Section"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:652 waeup/sirp/applicants/browser.py:791
-#: waeup/sirp/applicants/browser.py:843
-msgid "Final Submit"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:653 waeup/sirp/applicants/browser.py:755
-#: waeup/sirp/applicants/browser.py:789 waeup/sirp/applicants/browser.py:824
-msgid "Add online payment ticket"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:653 waeup/sirp/applicants/browser.py:760
-#: waeup/sirp/applicants/browser.py:789 waeup/sirp/applicants/browser.py:792
-#: waeup/sirp/applicants/browser.py:829
-msgid "Remove selected tickets"
-msgstr ""
-
-#. Default: ""
-#: waeup/sirp/applicants/browser.py:672
-msgid "${a} Application Form ${b}"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:683 waeup/sirp/students/browser.py:344
-msgid "No transition"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:730
-msgid "No payment selected."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:76 waeup/sirp/applicants/viewlets.py:88
-msgid "Manage application section"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:79 waeup/sirp/applicants/browser.py:105
-#: waeup/sirp/applicants/browser.py:254 waeup/sirp/applicants/browser.py:307
-#: waeup/sirp/browser/pages.py:634 waeup/sirp/browser/pages.py:675
-#: waeup/sirp/browser/pages.py:1259 waeup/sirp/browser/pages.py:1270
-#: waeup/sirp/browser/pages.py:1336 waeup/sirp/browser/pages.py:1371
-#: waeup/sirp/hostels/browser.py:131
-msgid "Remove selected"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:79 waeup/sirp/applicants/browser.py:124
-#: waeup/sirp/applicants/browser.py:147 waeup/sirp/applicants/browser.py:159
-msgid "Add applicants container"
-msgstr ""
-
+#: waeup/sirp/accesscodes/browser.py:102
+msgid "Reimport"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:105
+msgid "Reimport Access Code Batches"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:110
+msgid "Reimport cancelled."
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:116
+msgid "No file chosen. Action cancelled."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:126
+msgid "This batch already exists: ${a}"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:129
+msgid "Successfully reimported: ${a}"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:139
+msgid "Search and Manage Access Codes"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:140 waeup/sirp/browser/pages.py:592
+#: waeup/sirp/browser/viewlets.py:187
+msgid "Search"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:141
+msgid "Disable ACs"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:142
+msgid "Enable ACs"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:166
+msgid "AC disabled"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:168
+msgid "${a} disabled."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:170
+msgid "${a}: Disable transition not allowed."
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:174
+msgid "AC re-enabled"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:176
+msgid "${a} (re-)enabled."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:178
+msgid "${a}: Re-enable transition not allowed."
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:217
+msgid "Add Access Code Batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:226
+msgid "Reimport Access Code Batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:234
+msgid "Search Access Codes"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:243
+msgid "Access Codes"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:43
+msgid "Archive"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:44
+msgid "Archive and delete"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:46 waeup/sirp/accesscodes/browser.py:188
+#: waeup/sirp/accesscodes/browser.py:208
+msgid "Access Code Batches"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:53
+msgid "No batch selected."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:60
+msgid "Archived ${a} (${b})"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:65
+msgid "Deleted batch ${a}"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:72
+msgid "Create Access Code Batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:78
+msgid "Create batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:90 waeup/sirp/accesscodes/browser.py:103
 #: waeup/sirp/applicants/browser.py:80 waeup/sirp/applicants/browser.py:129
 #: waeup/sirp/applicants/browser.py:181 waeup/sirp/applicants/browser.py:253
@@ -257,4 +171,353 @@
 msgstr ""
 
+#: waeup/sirp/accesscodes/browser.py:92
+msgid "Batch creation cancelled."
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:10
+msgid "Entries/(invalidated)"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:11
+msgid "Cost"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:12
+msgid "Date of Creation"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:13
+msgid "Creator"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:2
+msgid "The following batches are available:"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:39
+msgid "No batches yet"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:9
+msgid "Prefix"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/reimportbatchpage.pt:23
+msgid "No import batches available"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:23
+msgid "Serial"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:24
+msgid "AC"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:25
+#: waeup/sirp/applicants/browser_templates/applicanteditpage.pt:105
+#: waeup/sirp/applicants/browser_templates/applicantdisplaypage.pt:54
+msgid "State"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:26
+#: waeup/sirp/hostels/browser_templates/hostelmanagepage.pt:56
+msgid "Owner"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:27
+msgid "History"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:5
+msgid "for access codes"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:7
+msgid "with PIN"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:8
+msgid "with serial"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:9
+msgid "with message term"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:29
+msgid "Serial number inside batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:32
+msgid "Prefix inside batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:35
+msgid "Batch number"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:38
+msgid "Random part of access code."
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:41
+#: waeup/sirp/accesscodes/interfaces.py:80
+msgid "Cost of access code"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:45
+msgid "Workflow state"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:48
+msgid "Complete title of access code"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:51
+msgid "Purchaser"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:54
+msgid "The history of access code as lines"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:63
+msgid "Creation date"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:66
+msgid "Batch creator"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:69
+msgid "Batch prefix"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:72
+msgid "Batch number (1-3 digits)"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:76
+msgid "Number of access codes"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:84
+msgid "Number of disabled access codes inside the batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:89
+msgid "Number of used access codes inside the batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:102
+msgid "Disable used PIN"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:109
+msgid "Reenable disabled PIN"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:37 waeup/sirp/applicants/workflow.py:37
+msgid "initialized"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:38
+msgid "used"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:39
+msgid "disabled"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:81
+msgid "Initialize PIN"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:88
+msgid "Use PIN"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:95
+msgid "Disable unused PIN"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:117 waeup/sirp/applicants/browser.py:324
+#: waeup/sirp/applicants/browser.py:743
+msgid "Could not delete:"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:120 waeup/sirp/applicants/browser.py:327
+#: waeup/sirp/applicants/browser.py:746
+msgid "Successfully removed:"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:168
+msgid ""
+"An applicants container for the same application type and entrance year "
+"exists already in the database."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:177
+msgid "Added:"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:189 waeup/sirp/applicants/viewlets.py:44
+#: waeup/sirp/applicants/browser_templates/applicantscontainermanagepage.pt:12
+#: waeup/sirp/applicants/browser_templates/applicantscontainermanagepage.pt:57
+msgid "Applicants"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:253 waeup/sirp/applicants/browser.py:300
+#: waeup/sirp/applicants/browser.py:652 waeup/sirp/applicants/browser.py:686
+#: waeup/sirp/applicants/browser.py:788 waeup/sirp/applicants/browser.py:791
+#: waeup/sirp/applicants/browser.py:835 waeup/sirp/browser/pages.py:476
+#: waeup/sirp/browser/pages.py:631 waeup/sirp/browser/pages.py:654
+#: waeup/sirp/browser/pages.py:728 waeup/sirp/browser/pages.py:1164
+#: waeup/sirp/browser/pages.py:1335 waeup/sirp/browser/pages.py:1376
+#: waeup/sirp/browser/pages.py:1502 waeup/sirp/browser/pages.py:1555
+#: waeup/sirp/browser/pages.py:1698 waeup/sirp/browser/pages.py:1749
+#: waeup/sirp/browser/pages.py:1770 waeup/sirp/hostels/browser.py:209
+#: waeup/sirp/hostels/browser.py:231 waeup/sirp/hostels/browser.py:319
+msgid "Save"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:254 waeup/sirp/applicants/browser.py:331
+#: waeup/sirp/applicants/browser.py:359
+msgid "Add applicant"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:264 waeup/sirp/applicants/viewlets.py:95
+msgid "Manage applicants container"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:304 waeup/sirp/applicants/browser.py:715
+#: waeup/sirp/browser/pages.py:1379 waeup/sirp/browser/pages.py:1701
+#: waeup/sirp/browser/pages.py:1773 waeup/sirp/browser/pages.py:1885
+#: waeup/sirp/hostels/browser.py:54
+msgid "Form has been saved."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:313
+msgid "No applicant selected!"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:362
+msgid "Create application record"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:367
+msgid "Applicant record created."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:380
+msgid "Applicant"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:395
+msgid "set"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:396
+msgid "unset"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/applicants/browser.py:401
+msgid "${a} Application Record ${b}"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:452
+msgid "Session configuration object is not available."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:459
+msgid "This type of payment has already been made."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:472
+msgid "Payment ticket created."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/applicants/browser.py:499
+msgid "${a}: Online Payment Ticket ${b}"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:527
+msgid "Valid callback received."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:548
+msgid "Payment Data"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:554
+msgid "Online Payment Receipt"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:560
+msgid "Ticket not yet paid."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:625
+msgid "Uploaded image is too big!"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:630
+msgid "jpg file extension expected."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:64
+msgid "Application Section"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:652 waeup/sirp/applicants/browser.py:791
+#: waeup/sirp/applicants/browser.py:843
+msgid "Final Submit"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:653 waeup/sirp/applicants/browser.py:755
+#: waeup/sirp/applicants/browser.py:789 waeup/sirp/applicants/browser.py:824
+msgid "Add online payment ticket"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:653 waeup/sirp/applicants/browser.py:760
+#: waeup/sirp/applicants/browser.py:789 waeup/sirp/applicants/browser.py:792
+#: waeup/sirp/applicants/browser.py:829
+msgid "Remove selected tickets"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/applicants/browser.py:672
+msgid "${a} Application Form ${b}"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:683 waeup/sirp/students/browser.py:344
+msgid "No transition"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:730
+msgid "No payment selected."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:76 waeup/sirp/applicants/viewlets.py:88
+msgid "Manage application section"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:79 waeup/sirp/applicants/browser.py:105
+#: waeup/sirp/applicants/browser.py:254 waeup/sirp/applicants/browser.py:307
+#: waeup/sirp/browser/pages.py:634 waeup/sirp/browser/pages.py:675
+#: waeup/sirp/browser/pages.py:1259 waeup/sirp/browser/pages.py:1270
+#: waeup/sirp/browser/pages.py:1336 waeup/sirp/browser/pages.py:1371
+#: waeup/sirp/hostels/browser.py:131
+msgid "Remove selected"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:79 waeup/sirp/applicants/browser.py:124
+#: waeup/sirp/applicants/browser.py:147 waeup/sirp/applicants/browser.py:159
+msgid "Add applicants container"
+msgstr ""
+
 #: waeup/sirp/applicants/browser.py:802
 msgid "The requested form is locked (read-only)."
@@ -344,9 +607,4 @@
 #: waeup/sirp/applicants/browser_templates/applicantdisplaypage.pt:53
 msgid "Item"
-msgstr ""
-
-#: waeup/sirp/applicants/browser_templates/applicanteditpage.pt:105
-#: waeup/sirp/applicants/browser_templates/applicantdisplaypage.pt:54
-msgid "State"
 msgstr ""
 
@@ -811,5 +1069,5 @@
 
 #: waeup/sirp/browser/pages.py:113 waeup/sirp/hostels/browser.py:256
-#: waeup/sirp/hostels/browser.py:285
+#: waeup/sirp/hostels/browser.py:287
 msgid "No item selected."
 msgstr ""
@@ -1063,8 +1321,4 @@
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:592 waeup/sirp/browser/viewlets.py:187
-msgid "Search"
-msgstr ""
-
 #: waeup/sirp/browser/pages.py:617
 msgid "View portal configuration"
@@ -1304,4 +1558,5 @@
 #: waeup/sirp/browser/templates/datacenterlogspage.pt:10
 #: waeup/sirp/browser/templates/datacenterpage.pt:14
+#: waeup/sirp/accesscodes/browser_templates/reimportbatchpage.pt:11
 msgid "File"
 msgstr ""
@@ -1611,5 +1866,5 @@
 msgstr ""
 
-#: waeup/sirp/hostels/browser.py:212 waeup/sirp/hostels/browser.py:279
+#: waeup/sirp/hostels/browser.py:212 waeup/sirp/hostels/browser.py:281
 msgid "Release selected beds"
 msgstr ""
@@ -1622,18 +1877,18 @@
 
 #. Default: ""
-#: waeup/sirp/hostels/browser.py:273
+#: waeup/sirp/hostels/browser.py:275
 msgid "Successfully switched beds: ${a}"
 msgstr ""
 
 #. Default: ""
-#: waeup/sirp/hostels/browser.py:297
+#: waeup/sirp/hostels/browser.py:299
 msgid "Successfully released beds: ${a}"
 msgstr ""
 
-#: waeup/sirp/hostels/browser.py:302
+#: waeup/sirp/hostels/browser.py:304
 msgid "No allocated bed selected."
 msgstr ""
 
-#: waeup/sirp/hostels/browser.py:314
+#: waeup/sirp/hostels/browser.py:316
 msgid "Allocate student"
 msgstr ""
@@ -1658,8 +1913,4 @@
 msgstr ""
 
-#: waeup/sirp/hostels/browser_templates/hostelmanagepage.pt:56
-msgid "Owner"
-msgstr ""
-
 #: waeup/sirp/hostels/browser_templates/hostelmanagepage.pt:6
 msgid "Hostel Data"
@@ -1674,9 +1925,9 @@
 msgstr ""
 
-#: waeup/sirp/hostels/hostel.py:163
+#: waeup/sirp/hostels/hostel.py:180
 msgid "unreserved"
 msgstr ""
 
-#: waeup/sirp/hostels/hostel.py:176
+#: waeup/sirp/hostels/hostel.py:187
 msgid "reserved"
 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 7718)
+++ main/waeup.sirp/trunk/src/waeup/sirp/locales/ha/LC_MESSAGES/waeup.sirp.po	(revision 7719)
@@ -15,5 +15,5 @@
 msgstr ""
 "Project-Id-Version: WAeUP.SIRP\n"
-"POT-Creation-Date: Tue Feb 28 18:06:20 2012\n"
+"POT-Creation-Date: Tue Feb 28 21:45:08 2012\n"
 "PO-Revision-Date: 2012-02-22 11:28+0100\n"
 "Last-Translator: Henrik Bettermann <henrik@waeup.org>\n"
@@ -28,213 +28,127 @@
 "X-Poedit-SourceCharset: utf-8\n"
 
-#: waeup/sirp/accesscodes/workflow.py:100
-msgid "Disable used PIN"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:107
-msgid "Reenable disabled PIN"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:35 waeup/sirp/applicants/workflow.py:37
-msgid "initialized"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:36
-msgid "used"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:37
-msgid "disabled"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:79
-msgid "Initialize PIN"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:86
-msgid "Use PIN"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:93
-msgid "Disable unused PIN"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:117 waeup/sirp/applicants/browser.py:324
-#: waeup/sirp/applicants/browser.py:743
-msgid "Could not delete:"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:120 waeup/sirp/applicants/browser.py:327
-#: waeup/sirp/applicants/browser.py:746
-msgid "Successfully removed:"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:168
-msgid ""
-"An applicants container for the same application type and entrance year "
-"exists already in the database."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:177
-msgid "Added:"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:189 waeup/sirp/applicants/viewlets.py:44
-#: waeup/sirp/applicants/browser_templates/applicantscontainermanagepage.pt:12
-#: waeup/sirp/applicants/browser_templates/applicantscontainermanagepage.pt:57
-msgid "Applicants"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:253 waeup/sirp/applicants/browser.py:300
-#: waeup/sirp/applicants/browser.py:652 waeup/sirp/applicants/browser.py:686
-#: waeup/sirp/applicants/browser.py:788 waeup/sirp/applicants/browser.py:791
-#: waeup/sirp/applicants/browser.py:835 waeup/sirp/browser/pages.py:476
-#: waeup/sirp/browser/pages.py:631 waeup/sirp/browser/pages.py:654
-#: waeup/sirp/browser/pages.py:728 waeup/sirp/browser/pages.py:1164
-#: waeup/sirp/browser/pages.py:1335 waeup/sirp/browser/pages.py:1376
-#: waeup/sirp/browser/pages.py:1502 waeup/sirp/browser/pages.py:1555
-#: waeup/sirp/browser/pages.py:1698 waeup/sirp/browser/pages.py:1749
-#: waeup/sirp/browser/pages.py:1770 waeup/sirp/hostels/browser.py:209
-#: waeup/sirp/hostels/browser.py:231 waeup/sirp/hostels/browser.py:317
-msgid "Save"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:254 waeup/sirp/applicants/browser.py:331
-#: waeup/sirp/applicants/browser.py:359
-msgid "Add applicant"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:264 waeup/sirp/applicants/viewlets.py:95
-msgid "Manage applicants container"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:304 waeup/sirp/applicants/browser.py:715
-#: waeup/sirp/browser/pages.py:1379 waeup/sirp/browser/pages.py:1701
-#: waeup/sirp/browser/pages.py:1773 waeup/sirp/browser/pages.py:1885
-#: waeup/sirp/hostels/browser.py:54
-msgid "Form has been saved."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:313
-msgid "No applicant selected!"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:362
-msgid "Create application record"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:367
-msgid "Applicant record created."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:380
-msgid "Applicant"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:395
-msgid "set"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:396
-msgid "unset"
-msgstr ""
-
-#. Default: ""
-#: waeup/sirp/applicants/browser.py:401
-msgid "${a} Application Record ${b}"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:452
-msgid "Session configuration object is not available."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:459
-msgid "This type of payment has already been made."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:472
-msgid "Payment ticket created."
-msgstr ""
-
-#. Default: ""
-#: waeup/sirp/applicants/browser.py:499
-msgid "${a}: Online Payment Ticket ${b}"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:527
-msgid "Valid callback received."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:548
-msgid "Payment Data"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:554
-msgid "Online Payment Receipt"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:560
-msgid "Ticket not yet paid."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:625
-msgid "Uploaded image is too big!"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:630
-msgid "jpg file extension expected."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:64
-msgid "Application Section"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:652 waeup/sirp/applicants/browser.py:791
-#: waeup/sirp/applicants/browser.py:843
-msgid "Final Submit"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:653 waeup/sirp/applicants/browser.py:755
-#: waeup/sirp/applicants/browser.py:789 waeup/sirp/applicants/browser.py:824
-msgid "Add online payment ticket"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:653 waeup/sirp/applicants/browser.py:760
-#: waeup/sirp/applicants/browser.py:789 waeup/sirp/applicants/browser.py:792
-#: waeup/sirp/applicants/browser.py:829
-msgid "Remove selected tickets"
-msgstr ""
-
-#. Default: ""
-#: waeup/sirp/applicants/browser.py:672
-msgid "${a} Application Form ${b}"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:683 waeup/sirp/students/browser.py:344
-msgid "No transition"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:730
-msgid "No payment selected."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:76 waeup/sirp/applicants/viewlets.py:88
-msgid "Manage application section"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:79 waeup/sirp/applicants/browser.py:105
-#: waeup/sirp/applicants/browser.py:254 waeup/sirp/applicants/browser.py:307
-#: waeup/sirp/browser/pages.py:634 waeup/sirp/browser/pages.py:675
-#: waeup/sirp/browser/pages.py:1259 waeup/sirp/browser/pages.py:1270
-#: waeup/sirp/browser/pages.py:1336 waeup/sirp/browser/pages.py:1371
-#: waeup/sirp/hostels/browser.py:131
-msgid "Remove selected"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:79 waeup/sirp/applicants/browser.py:124
-#: waeup/sirp/applicants/browser.py:147 waeup/sirp/applicants/browser.py:159
-msgid "Add applicants container"
-msgstr ""
-
+#: waeup/sirp/accesscodes/browser.py:102
+msgid "Reimport"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:105
+msgid "Reimport Access Code Batches"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:110
+msgid "Reimport cancelled."
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:116
+msgid "No file chosen. Action cancelled."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:126
+msgid "This batch already exists: ${a}"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:129
+msgid "Successfully reimported: ${a}"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:139
+msgid "Search and Manage Access Codes"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:140 waeup/sirp/browser/pages.py:592
+#: waeup/sirp/browser/viewlets.py:187
+msgid "Search"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:141
+msgid "Disable ACs"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:142
+msgid "Enable ACs"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:166
+msgid "AC disabled"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:168
+msgid "${a} disabled."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:170
+msgid "${a}: Disable transition not allowed."
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:174
+msgid "AC re-enabled"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:176
+msgid "${a} (re-)enabled."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:178
+msgid "${a}: Re-enable transition not allowed."
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:217
+msgid "Add Access Code Batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:226
+msgid "Reimport Access Code Batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:234
+msgid "Search Access Codes"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:243
+msgid "Access Codes"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:43
+msgid "Archive"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:44
+msgid "Archive and delete"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:46 waeup/sirp/accesscodes/browser.py:188
+#: waeup/sirp/accesscodes/browser.py:208
+msgid "Access Code Batches"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:53
+msgid "No batch selected."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:60
+msgid "Archived ${a} (${b})"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:65
+msgid "Deleted batch ${a}"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:72
+msgid "Create Access Code Batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:78
+msgid "Create batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:90 waeup/sirp/accesscodes/browser.py:103
 #: waeup/sirp/applicants/browser.py:80 waeup/sirp/applicants/browser.py:129
 #: waeup/sirp/applicants/browser.py:181 waeup/sirp/applicants/browser.py:253
@@ -257,4 +171,353 @@
 msgstr ""
 
+#: waeup/sirp/accesscodes/browser.py:92
+msgid "Batch creation cancelled."
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:10
+msgid "Entries/(invalidated)"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:11
+msgid "Cost"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:12
+msgid "Date of Creation"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:13
+msgid "Creator"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:2
+msgid "The following batches are available:"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:39
+msgid "No batches yet"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:9
+msgid "Prefix"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/reimportbatchpage.pt:23
+msgid "No import batches available"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:23
+msgid "Serial"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:24
+msgid "AC"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:25
+#: waeup/sirp/applicants/browser_templates/applicanteditpage.pt:105
+#: waeup/sirp/applicants/browser_templates/applicantdisplaypage.pt:54
+msgid "State"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:26
+#: waeup/sirp/hostels/browser_templates/hostelmanagepage.pt:56
+msgid "Owner"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:27
+msgid "History"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:5
+msgid "for access codes"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:7
+msgid "with PIN"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:8
+msgid "with serial"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:9
+msgid "with message term"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:29
+msgid "Serial number inside batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:32
+msgid "Prefix inside batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:35
+msgid "Batch number"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:38
+msgid "Random part of access code."
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:41
+#: waeup/sirp/accesscodes/interfaces.py:80
+msgid "Cost of access code"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:45
+msgid "Workflow state"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:48
+msgid "Complete title of access code"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:51
+msgid "Purchaser"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:54
+msgid "The history of access code as lines"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:63
+msgid "Creation date"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:66
+msgid "Batch creator"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:69
+msgid "Batch prefix"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:72
+msgid "Batch number (1-3 digits)"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:76
+msgid "Number of access codes"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:84
+msgid "Number of disabled access codes inside the batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:89
+msgid "Number of used access codes inside the batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:102
+msgid "Disable used PIN"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:109
+msgid "Reenable disabled PIN"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:37 waeup/sirp/applicants/workflow.py:37
+msgid "initialized"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:38
+msgid "used"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:39
+msgid "disabled"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:81
+msgid "Initialize PIN"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:88
+msgid "Use PIN"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:95
+msgid "Disable unused PIN"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:117 waeup/sirp/applicants/browser.py:324
+#: waeup/sirp/applicants/browser.py:743
+msgid "Could not delete:"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:120 waeup/sirp/applicants/browser.py:327
+#: waeup/sirp/applicants/browser.py:746
+msgid "Successfully removed:"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:168
+msgid ""
+"An applicants container for the same application type and entrance year "
+"exists already in the database."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:177
+msgid "Added:"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:189 waeup/sirp/applicants/viewlets.py:44
+#: waeup/sirp/applicants/browser_templates/applicantscontainermanagepage.pt:12
+#: waeup/sirp/applicants/browser_templates/applicantscontainermanagepage.pt:57
+msgid "Applicants"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:253 waeup/sirp/applicants/browser.py:300
+#: waeup/sirp/applicants/browser.py:652 waeup/sirp/applicants/browser.py:686
+#: waeup/sirp/applicants/browser.py:788 waeup/sirp/applicants/browser.py:791
+#: waeup/sirp/applicants/browser.py:835 waeup/sirp/browser/pages.py:476
+#: waeup/sirp/browser/pages.py:631 waeup/sirp/browser/pages.py:654
+#: waeup/sirp/browser/pages.py:728 waeup/sirp/browser/pages.py:1164
+#: waeup/sirp/browser/pages.py:1335 waeup/sirp/browser/pages.py:1376
+#: waeup/sirp/browser/pages.py:1502 waeup/sirp/browser/pages.py:1555
+#: waeup/sirp/browser/pages.py:1698 waeup/sirp/browser/pages.py:1749
+#: waeup/sirp/browser/pages.py:1770 waeup/sirp/hostels/browser.py:209
+#: waeup/sirp/hostels/browser.py:231 waeup/sirp/hostels/browser.py:319
+msgid "Save"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:254 waeup/sirp/applicants/browser.py:331
+#: waeup/sirp/applicants/browser.py:359
+msgid "Add applicant"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:264 waeup/sirp/applicants/viewlets.py:95
+msgid "Manage applicants container"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:304 waeup/sirp/applicants/browser.py:715
+#: waeup/sirp/browser/pages.py:1379 waeup/sirp/browser/pages.py:1701
+#: waeup/sirp/browser/pages.py:1773 waeup/sirp/browser/pages.py:1885
+#: waeup/sirp/hostels/browser.py:54
+msgid "Form has been saved."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:313
+msgid "No applicant selected!"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:362
+msgid "Create application record"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:367
+msgid "Applicant record created."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:380
+msgid "Applicant"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:395
+msgid "set"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:396
+msgid "unset"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/applicants/browser.py:401
+msgid "${a} Application Record ${b}"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:452
+msgid "Session configuration object is not available."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:459
+msgid "This type of payment has already been made."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:472
+msgid "Payment ticket created."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/applicants/browser.py:499
+msgid "${a}: Online Payment Ticket ${b}"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:527
+msgid "Valid callback received."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:548
+msgid "Payment Data"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:554
+msgid "Online Payment Receipt"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:560
+msgid "Ticket not yet paid."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:625
+msgid "Uploaded image is too big!"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:630
+msgid "jpg file extension expected."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:64
+msgid "Application Section"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:652 waeup/sirp/applicants/browser.py:791
+#: waeup/sirp/applicants/browser.py:843
+msgid "Final Submit"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:653 waeup/sirp/applicants/browser.py:755
+#: waeup/sirp/applicants/browser.py:789 waeup/sirp/applicants/browser.py:824
+msgid "Add online payment ticket"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:653 waeup/sirp/applicants/browser.py:760
+#: waeup/sirp/applicants/browser.py:789 waeup/sirp/applicants/browser.py:792
+#: waeup/sirp/applicants/browser.py:829
+msgid "Remove selected tickets"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/applicants/browser.py:672
+msgid "${a} Application Form ${b}"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:683 waeup/sirp/students/browser.py:344
+msgid "No transition"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:730
+msgid "No payment selected."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:76 waeup/sirp/applicants/viewlets.py:88
+msgid "Manage application section"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:79 waeup/sirp/applicants/browser.py:105
+#: waeup/sirp/applicants/browser.py:254 waeup/sirp/applicants/browser.py:307
+#: waeup/sirp/browser/pages.py:634 waeup/sirp/browser/pages.py:675
+#: waeup/sirp/browser/pages.py:1259 waeup/sirp/browser/pages.py:1270
+#: waeup/sirp/browser/pages.py:1336 waeup/sirp/browser/pages.py:1371
+#: waeup/sirp/hostels/browser.py:131
+msgid "Remove selected"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:79 waeup/sirp/applicants/browser.py:124
+#: waeup/sirp/applicants/browser.py:147 waeup/sirp/applicants/browser.py:159
+msgid "Add applicants container"
+msgstr ""
+
 #: waeup/sirp/applicants/browser.py:802
 msgid "The requested form is locked (read-only)."
@@ -344,9 +607,4 @@
 #: waeup/sirp/applicants/browser_templates/applicantdisplaypage.pt:53
 msgid "Item"
-msgstr ""
-
-#: waeup/sirp/applicants/browser_templates/applicanteditpage.pt:105
-#: waeup/sirp/applicants/browser_templates/applicantdisplaypage.pt:54
-msgid "State"
 msgstr ""
 
@@ -811,5 +1069,5 @@
 
 #: waeup/sirp/browser/pages.py:113 waeup/sirp/hostels/browser.py:256
-#: waeup/sirp/hostels/browser.py:285
+#: waeup/sirp/hostels/browser.py:287
 msgid "No item selected."
 msgstr ""
@@ -1063,8 +1321,4 @@
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:592 waeup/sirp/browser/viewlets.py:187
-msgid "Search"
-msgstr ""
-
 #: waeup/sirp/browser/pages.py:617
 msgid "View portal configuration"
@@ -1304,4 +1558,5 @@
 #: waeup/sirp/browser/templates/datacenterlogspage.pt:10
 #: waeup/sirp/browser/templates/datacenterpage.pt:14
+#: waeup/sirp/accesscodes/browser_templates/reimportbatchpage.pt:11
 msgid "File"
 msgstr ""
@@ -1611,5 +1866,5 @@
 msgstr ""
 
-#: waeup/sirp/hostels/browser.py:212 waeup/sirp/hostels/browser.py:279
+#: waeup/sirp/hostels/browser.py:212 waeup/sirp/hostels/browser.py:281
 msgid "Release selected beds"
 msgstr ""
@@ -1622,18 +1877,18 @@
 
 #. Default: ""
-#: waeup/sirp/hostels/browser.py:273
+#: waeup/sirp/hostels/browser.py:275
 msgid "Successfully switched beds: ${a}"
 msgstr ""
 
 #. Default: ""
-#: waeup/sirp/hostels/browser.py:297
+#: waeup/sirp/hostels/browser.py:299
 msgid "Successfully released beds: ${a}"
 msgstr ""
 
-#: waeup/sirp/hostels/browser.py:302
+#: waeup/sirp/hostels/browser.py:304
 msgid "No allocated bed selected."
 msgstr ""
 
-#: waeup/sirp/hostels/browser.py:314
+#: waeup/sirp/hostels/browser.py:316
 msgid "Allocate student"
 msgstr ""
@@ -1658,8 +1913,4 @@
 msgstr ""
 
-#: waeup/sirp/hostels/browser_templates/hostelmanagepage.pt:56
-msgid "Owner"
-msgstr ""
-
 #: waeup/sirp/hostels/browser_templates/hostelmanagepage.pt:6
 msgid "Hostel Data"
@@ -1674,9 +1925,9 @@
 msgstr ""
 
-#: waeup/sirp/hostels/hostel.py:163
+#: waeup/sirp/hostels/hostel.py:180
 msgid "unreserved"
 msgstr ""
 
-#: waeup/sirp/hostels/hostel.py:176
+#: waeup/sirp/hostels/hostel.py:187
 msgid "reserved"
 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 7718)
+++ main/waeup.sirp/trunk/src/waeup/sirp/locales/waeup.sirp.pot	(revision 7719)
@@ -15,5 +15,5 @@
 msgstr ""
 "Project-Id-Version: Development/Unknown\n"
-"POT-Creation-Date: Tue Feb 28 18:06:20 2012\n"
+"POT-Creation-Date: Tue Feb 28 21:45:08 2012\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
@@ -24,245 +24,130 @@
 "Generated-By: zope/app/locales/extract.py\n"
 
-#: waeup/sirp/accesscodes/workflow.py:100
-msgid "Disable used PIN"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:107
-msgid "Reenable disabled PIN"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:35
-#: waeup/sirp/applicants/workflow.py:37
-msgid "initialized"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:36
-msgid "used"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:37
-msgid "disabled"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:79
-msgid "Initialize PIN"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:86
-msgid "Use PIN"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:93
-msgid "Disable unused PIN"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:117
-#: waeup/sirp/applicants/browser.py:324
-#: waeup/sirp/applicants/browser.py:743
-msgid "Could not delete:"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:120
-#: waeup/sirp/applicants/browser.py:327
-#: waeup/sirp/applicants/browser.py:746
-msgid "Successfully removed:"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:168
-msgid "An applicants container for the same application type and entrance year exists already in the database."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:177
-msgid "Added:"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:189
-#: waeup/sirp/applicants/viewlets.py:44
-#: waeup/sirp/applicants/browser_templates/applicantscontainermanagepage.pt:12
-#: waeup/sirp/applicants/browser_templates/applicantscontainermanagepage.pt:57
-msgid "Applicants"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:253
-#: waeup/sirp/applicants/browser.py:300
-#: waeup/sirp/applicants/browser.py:652
-#: waeup/sirp/applicants/browser.py:686
-#: waeup/sirp/applicants/browser.py:788
-#: waeup/sirp/applicants/browser.py:791
-#: waeup/sirp/applicants/browser.py:835
-#: waeup/sirp/browser/pages.py:476
-#: waeup/sirp/browser/pages.py:631
-#: waeup/sirp/browser/pages.py:654
-#: waeup/sirp/browser/pages.py:728
-#: waeup/sirp/browser/pages.py:1164
-#: waeup/sirp/browser/pages.py:1335
-#: waeup/sirp/browser/pages.py:1376
-#: waeup/sirp/browser/pages.py:1502
-#: waeup/sirp/browser/pages.py:1555
-#: waeup/sirp/browser/pages.py:1698
-#: waeup/sirp/browser/pages.py:1749
-#: waeup/sirp/browser/pages.py:1770
-#: waeup/sirp/hostels/browser.py:209
-#: waeup/sirp/hostels/browser.py:231
-#: waeup/sirp/hostels/browser.py:317
-msgid "Save"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:254
-#: waeup/sirp/applicants/browser.py:331
-#: waeup/sirp/applicants/browser.py:359
-msgid "Add applicant"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:264
-#: waeup/sirp/applicants/viewlets.py:95
-msgid "Manage applicants container"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:304
-#: waeup/sirp/applicants/browser.py:715
-#: waeup/sirp/browser/pages.py:1379
-#: waeup/sirp/browser/pages.py:1701
-#: waeup/sirp/browser/pages.py:1773
-#: waeup/sirp/browser/pages.py:1885
-#: waeup/sirp/hostels/browser.py:54
-msgid "Form has been saved."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:313
-msgid "No applicant selected!"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:362
-msgid "Create application record"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:367
-msgid "Applicant record created."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:380
-msgid "Applicant"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:395
-msgid "set"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:396
-msgid "unset"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:401
-#. Default: ""
-msgid "${a} Application Record ${b}"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:452
-msgid "Session configuration object is not available."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:459
-msgid "This type of payment has already been made."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:472
-msgid "Payment ticket created."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:499
-#. Default: ""
-msgid "${a}: Online Payment Ticket ${b}"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:527
-msgid "Valid callback received."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:548
-msgid "Payment Data"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:554
-msgid "Online Payment Receipt"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:560
-msgid "Ticket not yet paid."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:625
-msgid "Uploaded image is too big!"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:630
-msgid "jpg file extension expected."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:64
-msgid "Application Section"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:652
-#: waeup/sirp/applicants/browser.py:791
-#: waeup/sirp/applicants/browser.py:843
-msgid "Final Submit"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:653
-#: waeup/sirp/applicants/browser.py:755
-#: waeup/sirp/applicants/browser.py:789
-#: waeup/sirp/applicants/browser.py:824
-msgid "Add online payment ticket"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:653
-#: waeup/sirp/applicants/browser.py:760
-#: waeup/sirp/applicants/browser.py:789
-#: waeup/sirp/applicants/browser.py:792
-#: waeup/sirp/applicants/browser.py:829
-msgid "Remove selected tickets"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:672
-#. Default: ""
-msgid "${a} Application Form ${b}"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:683
-#: waeup/sirp/students/browser.py:344
-msgid "No transition"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:730
-msgid "No payment selected."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:76
-#: waeup/sirp/applicants/viewlets.py:88
-msgid "Manage application section"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:79
-#: waeup/sirp/applicants/browser.py:105
-#: waeup/sirp/applicants/browser.py:254
-#: waeup/sirp/applicants/browser.py:307
-#: waeup/sirp/browser/pages.py:634
-#: waeup/sirp/browser/pages.py:675
-#: waeup/sirp/browser/pages.py:1259
-#: waeup/sirp/browser/pages.py:1270
-#: waeup/sirp/browser/pages.py:1336
-#: waeup/sirp/browser/pages.py:1371
-#: waeup/sirp/hostels/browser.py:131
-msgid "Remove selected"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:79
-#: waeup/sirp/applicants/browser.py:124
-#: waeup/sirp/applicants/browser.py:147
-#: waeup/sirp/applicants/browser.py:159
-msgid "Add applicants container"
-msgstr ""
-
+#: waeup/sirp/accesscodes/browser.py:102
+msgid "Reimport"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:105
+msgid "Reimport Access Code Batches"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:110
+msgid "Reimport cancelled."
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:116
+msgid "No file chosen. Action cancelled."
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:126
+#. Default: ""
+msgid "This batch already exists: ${a}"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:129
+#. Default: ""
+msgid "Successfully reimported: ${a}"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:139
+msgid "Search and Manage Access Codes"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:140
+#: waeup/sirp/browser/pages.py:592
+#: waeup/sirp/browser/viewlets.py:187
+msgid "Search"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:141
+msgid "Disable ACs"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:142
+msgid "Enable ACs"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:166
+msgid "AC disabled"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:168
+#. Default: ""
+msgid "${a} disabled."
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:170
+#. Default: ""
+msgid "${a}: Disable transition not allowed."
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:174
+msgid "AC re-enabled"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:176
+#. Default: ""
+msgid "${a} (re-)enabled."
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:178
+#. Default: ""
+msgid "${a}: Re-enable transition not allowed."
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:217
+msgid "Add Access Code Batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:226
+msgid "Reimport Access Code Batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:234
+msgid "Search Access Codes"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:243
+msgid "Access Codes"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:43
+msgid "Archive"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:44
+msgid "Archive and delete"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:46
+#: waeup/sirp/accesscodes/browser.py:188
+#: waeup/sirp/accesscodes/browser.py:208
+msgid "Access Code Batches"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:53
+msgid "No batch selected."
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:60
+#. Default: ""
+msgid "Archived ${a} (${b})"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:65
+#. Default: ""
+msgid "Deleted batch ${a}"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:72
+msgid "Create Access Code Batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:78
+msgid "Create batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:90
+#: waeup/sirp/accesscodes/browser.py:103
 #: waeup/sirp/applicants/browser.py:80
 #: waeup/sirp/applicants/browser.py:129
@@ -301,4 +186,385 @@
 msgstr ""
 
+#: waeup/sirp/accesscodes/browser.py:92
+msgid "Batch creation cancelled."
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:10
+msgid "Entries/(invalidated)"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:11
+msgid "Cost"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:12
+msgid "Date of Creation"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:13
+msgid "Creator"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:2
+msgid "The following batches are available:"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:39
+msgid "No batches yet"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:9
+msgid "Prefix"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/reimportbatchpage.pt:23
+msgid "No import batches available"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:23
+msgid "Serial"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:24
+msgid "AC"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:25
+#: waeup/sirp/applicants/browser_templates/applicanteditpage.pt:105
+#: waeup/sirp/applicants/browser_templates/applicantdisplaypage.pt:54
+msgid "State"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:26
+#: waeup/sirp/hostels/browser_templates/hostelmanagepage.pt:56
+msgid "Owner"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:27
+msgid "History"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:5
+msgid "for access codes"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:7
+msgid "with PIN"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:8
+msgid "with serial"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:9
+msgid "with message term"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:29
+msgid "Serial number inside batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:32
+msgid "Prefix inside batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:35
+msgid "Batch number"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:38
+msgid "Random part of access code."
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:41
+#: waeup/sirp/accesscodes/interfaces.py:80
+msgid "Cost of access code"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:45
+msgid "Workflow state"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:48
+msgid "Complete title of access code"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:51
+msgid "Purchaser"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:54
+msgid "The history of access code as lines"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:63
+msgid "Creation date"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:66
+msgid "Batch creator"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:69
+msgid "Batch prefix"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:72
+msgid "Batch number (1-3 digits)"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:76
+msgid "Number of access codes"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:84
+msgid "Number of disabled access codes inside the batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:89
+msgid "Number of used access codes inside the batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:102
+msgid "Disable used PIN"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:109
+msgid "Reenable disabled PIN"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:37
+#: waeup/sirp/applicants/workflow.py:37
+msgid "initialized"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:38
+msgid "used"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:39
+msgid "disabled"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:81
+msgid "Initialize PIN"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:88
+msgid "Use PIN"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:95
+msgid "Disable unused PIN"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:117
+#: waeup/sirp/applicants/browser.py:324
+#: waeup/sirp/applicants/browser.py:743
+msgid "Could not delete:"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:120
+#: waeup/sirp/applicants/browser.py:327
+#: waeup/sirp/applicants/browser.py:746
+msgid "Successfully removed:"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:168
+msgid "An applicants container for the same application type and entrance year exists already in the database."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:177
+msgid "Added:"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:189
+#: waeup/sirp/applicants/viewlets.py:44
+#: waeup/sirp/applicants/browser_templates/applicantscontainermanagepage.pt:12
+#: waeup/sirp/applicants/browser_templates/applicantscontainermanagepage.pt:57
+msgid "Applicants"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:253
+#: waeup/sirp/applicants/browser.py:300
+#: waeup/sirp/applicants/browser.py:652
+#: waeup/sirp/applicants/browser.py:686
+#: waeup/sirp/applicants/browser.py:788
+#: waeup/sirp/applicants/browser.py:791
+#: waeup/sirp/applicants/browser.py:835
+#: waeup/sirp/browser/pages.py:476
+#: waeup/sirp/browser/pages.py:631
+#: waeup/sirp/browser/pages.py:654
+#: waeup/sirp/browser/pages.py:728
+#: waeup/sirp/browser/pages.py:1164
+#: waeup/sirp/browser/pages.py:1335
+#: waeup/sirp/browser/pages.py:1376
+#: waeup/sirp/browser/pages.py:1502
+#: waeup/sirp/browser/pages.py:1555
+#: waeup/sirp/browser/pages.py:1698
+#: waeup/sirp/browser/pages.py:1749
+#: waeup/sirp/browser/pages.py:1770
+#: waeup/sirp/hostels/browser.py:209
+#: waeup/sirp/hostels/browser.py:231
+#: waeup/sirp/hostels/browser.py:319
+msgid "Save"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:254
+#: waeup/sirp/applicants/browser.py:331
+#: waeup/sirp/applicants/browser.py:359
+msgid "Add applicant"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:264
+#: waeup/sirp/applicants/viewlets.py:95
+msgid "Manage applicants container"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:304
+#: waeup/sirp/applicants/browser.py:715
+#: waeup/sirp/browser/pages.py:1379
+#: waeup/sirp/browser/pages.py:1701
+#: waeup/sirp/browser/pages.py:1773
+#: waeup/sirp/browser/pages.py:1885
+#: waeup/sirp/hostels/browser.py:54
+msgid "Form has been saved."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:313
+msgid "No applicant selected!"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:362
+msgid "Create application record"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:367
+msgid "Applicant record created."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:380
+msgid "Applicant"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:395
+msgid "set"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:396
+msgid "unset"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:401
+#. Default: ""
+msgid "${a} Application Record ${b}"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:452
+msgid "Session configuration object is not available."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:459
+msgid "This type of payment has already been made."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:472
+msgid "Payment ticket created."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:499
+#. Default: ""
+msgid "${a}: Online Payment Ticket ${b}"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:527
+msgid "Valid callback received."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:548
+msgid "Payment Data"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:554
+msgid "Online Payment Receipt"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:560
+msgid "Ticket not yet paid."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:625
+msgid "Uploaded image is too big!"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:630
+msgid "jpg file extension expected."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:64
+msgid "Application Section"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:652
+#: waeup/sirp/applicants/browser.py:791
+#: waeup/sirp/applicants/browser.py:843
+msgid "Final Submit"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:653
+#: waeup/sirp/applicants/browser.py:755
+#: waeup/sirp/applicants/browser.py:789
+#: waeup/sirp/applicants/browser.py:824
+msgid "Add online payment ticket"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:653
+#: waeup/sirp/applicants/browser.py:760
+#: waeup/sirp/applicants/browser.py:789
+#: waeup/sirp/applicants/browser.py:792
+#: waeup/sirp/applicants/browser.py:829
+msgid "Remove selected tickets"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:672
+#. Default: ""
+msgid "${a} Application Form ${b}"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:683
+#: waeup/sirp/students/browser.py:344
+msgid "No transition"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:730
+msgid "No payment selected."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:76
+#: waeup/sirp/applicants/viewlets.py:88
+msgid "Manage application section"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:79
+#: waeup/sirp/applicants/browser.py:105
+#: waeup/sirp/applicants/browser.py:254
+#: waeup/sirp/applicants/browser.py:307
+#: waeup/sirp/browser/pages.py:634
+#: waeup/sirp/browser/pages.py:675
+#: waeup/sirp/browser/pages.py:1259
+#: waeup/sirp/browser/pages.py:1270
+#: waeup/sirp/browser/pages.py:1336
+#: waeup/sirp/browser/pages.py:1371
+#: waeup/sirp/hostels/browser.py:131
+msgid "Remove selected"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:79
+#: waeup/sirp/applicants/browser.py:124
+#: waeup/sirp/applicants/browser.py:147
+#: waeup/sirp/applicants/browser.py:159
+msgid "Add applicants container"
+msgstr ""
+
 #: waeup/sirp/applicants/browser.py:802
 msgid "The requested form is locked (read-only)."
@@ -398,9 +664,4 @@
 #: waeup/sirp/applicants/browser_templates/applicantdisplaypage.pt:53
 msgid "Item"
-msgstr ""
-
-#: waeup/sirp/applicants/browser_templates/applicanteditpage.pt:105
-#: waeup/sirp/applicants/browser_templates/applicantdisplaypage.pt:54
-msgid "State"
 msgstr ""
 
@@ -877,5 +1138,5 @@
 #: waeup/sirp/browser/pages.py:113
 #: waeup/sirp/hostels/browser.py:256
-#: waeup/sirp/hostels/browser.py:285
+#: waeup/sirp/hostels/browser.py:287
 msgid "No item selected."
 msgstr ""
@@ -1158,9 +1419,4 @@
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:592
-#: waeup/sirp/browser/viewlets.py:187
-msgid "Search"
-msgstr ""
-
 #: waeup/sirp/browser/pages.py:617
 msgid "View portal configuration"
@@ -1403,4 +1659,5 @@
 #: waeup/sirp/browser/templates/datacenterlogspage.pt:10
 #: waeup/sirp/browser/templates/datacenterpage.pt:14
+#: waeup/sirp/accesscodes/browser_templates/reimportbatchpage.pt:11
 msgid "File"
 msgstr ""
@@ -1714,5 +1971,5 @@
 
 #: waeup/sirp/hostels/browser.py:212
-#: waeup/sirp/hostels/browser.py:279
+#: waeup/sirp/hostels/browser.py:281
 msgid "Release selected beds"
 msgstr ""
@@ -1723,19 +1980,19 @@
 msgstr ""
 
-#: waeup/sirp/hostels/browser.py:273
+#: waeup/sirp/hostels/browser.py:275
 #. Default: ""
 msgid "Successfully switched beds: ${a}"
 msgstr ""
 
-#: waeup/sirp/hostels/browser.py:297
+#: waeup/sirp/hostels/browser.py:299
 #. Default: ""
 msgid "Successfully released beds: ${a}"
 msgstr ""
 
-#: waeup/sirp/hostels/browser.py:302
+#: waeup/sirp/hostels/browser.py:304
 msgid "No allocated bed selected."
 msgstr ""
 
-#: waeup/sirp/hostels/browser.py:314
+#: waeup/sirp/hostels/browser.py:316
 msgid "Allocate student"
 msgstr ""
@@ -1761,8 +2018,4 @@
 msgstr ""
 
-#: waeup/sirp/hostels/browser_templates/hostelmanagepage.pt:56
-msgid "Owner"
-msgstr ""
-
 #: waeup/sirp/hostels/browser_templates/hostelmanagepage.pt:6
 msgid "Hostel Data"
@@ -1777,9 +2030,9 @@
 msgstr ""
 
-#: waeup/sirp/hostels/hostel.py:163
+#: waeup/sirp/hostels/hostel.py:180
 msgid "unreserved"
 msgstr ""
 
-#: waeup/sirp/hostels/hostel.py:176
+#: waeup/sirp/hostels/hostel.py:187
 msgid "reserved"
 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 7718)
+++ main/waeup.sirp/trunk/src/waeup/sirp/locales/yo/LC_MESSAGES/waeup.sirp.po	(revision 7719)
@@ -15,5 +15,5 @@
 msgstr ""
 "Project-Id-Version: WAeUP.SIRP\n"
-"POT-Creation-Date: Tue Feb 28 18:06:20 2012\n"
+"POT-Creation-Date: Tue Feb 28 21:45:08 2012\n"
 "PO-Revision-Date: 2012-02-22 11:28+0100\n"
 "Last-Translator: Henrik Bettermann <henrik@waeup.org>\n"
@@ -28,213 +28,127 @@
 "X-Poedit-SourceCharset: utf-8\n"
 
-#: waeup/sirp/accesscodes/workflow.py:100
-msgid "Disable used PIN"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:107
-msgid "Reenable disabled PIN"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:35 waeup/sirp/applicants/workflow.py:37
-msgid "initialized"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:36
-msgid "used"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:37
-msgid "disabled"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:79
-msgid "Initialize PIN"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:86
-msgid "Use PIN"
-msgstr ""
-
-#: waeup/sirp/accesscodes/workflow.py:93
-msgid "Disable unused PIN"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:117 waeup/sirp/applicants/browser.py:324
-#: waeup/sirp/applicants/browser.py:743
-msgid "Could not delete:"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:120 waeup/sirp/applicants/browser.py:327
-#: waeup/sirp/applicants/browser.py:746
-msgid "Successfully removed:"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:168
-msgid ""
-"An applicants container for the same application type and entrance year "
-"exists already in the database."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:177
-msgid "Added:"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:189 waeup/sirp/applicants/viewlets.py:44
-#: waeup/sirp/applicants/browser_templates/applicantscontainermanagepage.pt:12
-#: waeup/sirp/applicants/browser_templates/applicantscontainermanagepage.pt:57
-msgid "Applicants"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:253 waeup/sirp/applicants/browser.py:300
-#: waeup/sirp/applicants/browser.py:652 waeup/sirp/applicants/browser.py:686
-#: waeup/sirp/applicants/browser.py:788 waeup/sirp/applicants/browser.py:791
-#: waeup/sirp/applicants/browser.py:835 waeup/sirp/browser/pages.py:476
-#: waeup/sirp/browser/pages.py:631 waeup/sirp/browser/pages.py:654
-#: waeup/sirp/browser/pages.py:728 waeup/sirp/browser/pages.py:1164
-#: waeup/sirp/browser/pages.py:1335 waeup/sirp/browser/pages.py:1376
-#: waeup/sirp/browser/pages.py:1502 waeup/sirp/browser/pages.py:1555
-#: waeup/sirp/browser/pages.py:1698 waeup/sirp/browser/pages.py:1749
-#: waeup/sirp/browser/pages.py:1770 waeup/sirp/hostels/browser.py:209
-#: waeup/sirp/hostels/browser.py:231 waeup/sirp/hostels/browser.py:317
-msgid "Save"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:254 waeup/sirp/applicants/browser.py:331
-#: waeup/sirp/applicants/browser.py:359
-msgid "Add applicant"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:264 waeup/sirp/applicants/viewlets.py:95
-msgid "Manage applicants container"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:304 waeup/sirp/applicants/browser.py:715
-#: waeup/sirp/browser/pages.py:1379 waeup/sirp/browser/pages.py:1701
-#: waeup/sirp/browser/pages.py:1773 waeup/sirp/browser/pages.py:1885
-#: waeup/sirp/hostels/browser.py:54
-msgid "Form has been saved."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:313
-msgid "No applicant selected!"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:362
-msgid "Create application record"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:367
-msgid "Applicant record created."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:380
-msgid "Applicant"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:395
-msgid "set"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:396
-msgid "unset"
-msgstr ""
-
-#. Default: ""
-#: waeup/sirp/applicants/browser.py:401
-msgid "${a} Application Record ${b}"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:452
-msgid "Session configuration object is not available."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:459
-msgid "This type of payment has already been made."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:472
-msgid "Payment ticket created."
-msgstr ""
-
-#. Default: ""
-#: waeup/sirp/applicants/browser.py:499
-msgid "${a}: Online Payment Ticket ${b}"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:527
-msgid "Valid callback received."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:548
-msgid "Payment Data"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:554
-msgid "Online Payment Receipt"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:560
-msgid "Ticket not yet paid."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:625
-msgid "Uploaded image is too big!"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:630
-msgid "jpg file extension expected."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:64
-msgid "Application Section"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:652 waeup/sirp/applicants/browser.py:791
-#: waeup/sirp/applicants/browser.py:843
-msgid "Final Submit"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:653 waeup/sirp/applicants/browser.py:755
-#: waeup/sirp/applicants/browser.py:789 waeup/sirp/applicants/browser.py:824
-msgid "Add online payment ticket"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:653 waeup/sirp/applicants/browser.py:760
-#: waeup/sirp/applicants/browser.py:789 waeup/sirp/applicants/browser.py:792
-#: waeup/sirp/applicants/browser.py:829
-msgid "Remove selected tickets"
-msgstr ""
-
-#. Default: ""
-#: waeup/sirp/applicants/browser.py:672
-msgid "${a} Application Form ${b}"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:683 waeup/sirp/students/browser.py:344
-msgid "No transition"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:730
-msgid "No payment selected."
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:76 waeup/sirp/applicants/viewlets.py:88
-msgid "Manage application section"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:79 waeup/sirp/applicants/browser.py:105
-#: waeup/sirp/applicants/browser.py:254 waeup/sirp/applicants/browser.py:307
-#: waeup/sirp/browser/pages.py:634 waeup/sirp/browser/pages.py:675
-#: waeup/sirp/browser/pages.py:1259 waeup/sirp/browser/pages.py:1270
-#: waeup/sirp/browser/pages.py:1336 waeup/sirp/browser/pages.py:1371
-#: waeup/sirp/hostels/browser.py:131
-msgid "Remove selected"
-msgstr ""
-
-#: waeup/sirp/applicants/browser.py:79 waeup/sirp/applicants/browser.py:124
-#: waeup/sirp/applicants/browser.py:147 waeup/sirp/applicants/browser.py:159
-msgid "Add applicants container"
-msgstr ""
-
+#: waeup/sirp/accesscodes/browser.py:102
+msgid "Reimport"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:105
+msgid "Reimport Access Code Batches"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:110
+msgid "Reimport cancelled."
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:116
+msgid "No file chosen. Action cancelled."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:126
+msgid "This batch already exists: ${a}"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:129
+msgid "Successfully reimported: ${a}"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:139
+msgid "Search and Manage Access Codes"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:140 waeup/sirp/browser/pages.py:592
+#: waeup/sirp/browser/viewlets.py:187
+msgid "Search"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:141
+msgid "Disable ACs"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:142
+msgid "Enable ACs"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:166
+msgid "AC disabled"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:168
+msgid "${a} disabled."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:170
+msgid "${a}: Disable transition not allowed."
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:174
+msgid "AC re-enabled"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:176
+msgid "${a} (re-)enabled."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:178
+msgid "${a}: Re-enable transition not allowed."
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:217
+msgid "Add Access Code Batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:226
+msgid "Reimport Access Code Batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:234
+msgid "Search Access Codes"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:243
+msgid "Access Codes"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:43
+msgid "Archive"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:44
+msgid "Archive and delete"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:46 waeup/sirp/accesscodes/browser.py:188
+#: waeup/sirp/accesscodes/browser.py:208
+msgid "Access Code Batches"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:53
+msgid "No batch selected."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:60
+msgid "Archived ${a} (${b})"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/accesscodes/browser.py:65
+msgid "Deleted batch ${a}"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:72
+msgid "Create Access Code Batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:78
+msgid "Create batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser.py:90 waeup/sirp/accesscodes/browser.py:103
 #: waeup/sirp/applicants/browser.py:80 waeup/sirp/applicants/browser.py:129
 #: waeup/sirp/applicants/browser.py:181 waeup/sirp/applicants/browser.py:253
@@ -257,4 +171,353 @@
 msgstr ""
 
+#: waeup/sirp/accesscodes/browser.py:92
+msgid "Batch creation cancelled."
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:10
+msgid "Entries/(invalidated)"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:11
+msgid "Cost"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:12
+msgid "Date of Creation"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:13
+msgid "Creator"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:2
+msgid "The following batches are available:"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:39
+msgid "No batches yet"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/batchcontainer.pt:9
+msgid "Prefix"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/reimportbatchpage.pt:23
+msgid "No import batches available"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:23
+msgid "Serial"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:24
+msgid "AC"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:25
+#: waeup/sirp/applicants/browser_templates/applicanteditpage.pt:105
+#: waeup/sirp/applicants/browser_templates/applicantdisplaypage.pt:54
+msgid "State"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:26
+#: waeup/sirp/hostels/browser_templates/hostelmanagepage.pt:56
+msgid "Owner"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:27
+msgid "History"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:5
+msgid "for access codes"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:7
+msgid "with PIN"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:8
+msgid "with serial"
+msgstr ""
+
+#: waeup/sirp/accesscodes/browser_templates/searchpage.pt:9
+msgid "with message term"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:29
+msgid "Serial number inside batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:32
+msgid "Prefix inside batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:35
+msgid "Batch number"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:38
+msgid "Random part of access code."
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:41
+#: waeup/sirp/accesscodes/interfaces.py:80
+msgid "Cost of access code"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:45
+msgid "Workflow state"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:48
+msgid "Complete title of access code"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:51
+msgid "Purchaser"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:54
+msgid "The history of access code as lines"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:63
+msgid "Creation date"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:66
+msgid "Batch creator"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:69
+msgid "Batch prefix"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:72
+msgid "Batch number (1-3 digits)"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:76
+msgid "Number of access codes"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:84
+msgid "Number of disabled access codes inside the batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/interfaces.py:89
+msgid "Number of used access codes inside the batch"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:102
+msgid "Disable used PIN"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:109
+msgid "Reenable disabled PIN"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:37 waeup/sirp/applicants/workflow.py:37
+msgid "initialized"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:38
+msgid "used"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:39
+msgid "disabled"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:81
+msgid "Initialize PIN"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:88
+msgid "Use PIN"
+msgstr ""
+
+#: waeup/sirp/accesscodes/workflow.py:95
+msgid "Disable unused PIN"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:117 waeup/sirp/applicants/browser.py:324
+#: waeup/sirp/applicants/browser.py:743
+msgid "Could not delete:"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:120 waeup/sirp/applicants/browser.py:327
+#: waeup/sirp/applicants/browser.py:746
+msgid "Successfully removed:"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:168
+msgid ""
+"An applicants container for the same application type and entrance year "
+"exists already in the database."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:177
+msgid "Added:"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:189 waeup/sirp/applicants/viewlets.py:44
+#: waeup/sirp/applicants/browser_templates/applicantscontainermanagepage.pt:12
+#: waeup/sirp/applicants/browser_templates/applicantscontainermanagepage.pt:57
+msgid "Applicants"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:253 waeup/sirp/applicants/browser.py:300
+#: waeup/sirp/applicants/browser.py:652 waeup/sirp/applicants/browser.py:686
+#: waeup/sirp/applicants/browser.py:788 waeup/sirp/applicants/browser.py:791
+#: waeup/sirp/applicants/browser.py:835 waeup/sirp/browser/pages.py:476
+#: waeup/sirp/browser/pages.py:631 waeup/sirp/browser/pages.py:654
+#: waeup/sirp/browser/pages.py:728 waeup/sirp/browser/pages.py:1164
+#: waeup/sirp/browser/pages.py:1335 waeup/sirp/browser/pages.py:1376
+#: waeup/sirp/browser/pages.py:1502 waeup/sirp/browser/pages.py:1555
+#: waeup/sirp/browser/pages.py:1698 waeup/sirp/browser/pages.py:1749
+#: waeup/sirp/browser/pages.py:1770 waeup/sirp/hostels/browser.py:209
+#: waeup/sirp/hostels/browser.py:231 waeup/sirp/hostels/browser.py:319
+msgid "Save"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:254 waeup/sirp/applicants/browser.py:331
+#: waeup/sirp/applicants/browser.py:359
+msgid "Add applicant"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:264 waeup/sirp/applicants/viewlets.py:95
+msgid "Manage applicants container"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:304 waeup/sirp/applicants/browser.py:715
+#: waeup/sirp/browser/pages.py:1379 waeup/sirp/browser/pages.py:1701
+#: waeup/sirp/browser/pages.py:1773 waeup/sirp/browser/pages.py:1885
+#: waeup/sirp/hostels/browser.py:54
+msgid "Form has been saved."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:313
+msgid "No applicant selected!"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:362
+msgid "Create application record"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:367
+msgid "Applicant record created."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:380
+msgid "Applicant"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:395
+msgid "set"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:396
+msgid "unset"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/applicants/browser.py:401
+msgid "${a} Application Record ${b}"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:452
+msgid "Session configuration object is not available."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:459
+msgid "This type of payment has already been made."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:472
+msgid "Payment ticket created."
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/applicants/browser.py:499
+msgid "${a}: Online Payment Ticket ${b}"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:527
+msgid "Valid callback received."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:548
+msgid "Payment Data"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:554
+msgid "Online Payment Receipt"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:560
+msgid "Ticket not yet paid."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:625
+msgid "Uploaded image is too big!"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:630
+msgid "jpg file extension expected."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:64
+msgid "Application Section"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:652 waeup/sirp/applicants/browser.py:791
+#: waeup/sirp/applicants/browser.py:843
+msgid "Final Submit"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:653 waeup/sirp/applicants/browser.py:755
+#: waeup/sirp/applicants/browser.py:789 waeup/sirp/applicants/browser.py:824
+msgid "Add online payment ticket"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:653 waeup/sirp/applicants/browser.py:760
+#: waeup/sirp/applicants/browser.py:789 waeup/sirp/applicants/browser.py:792
+#: waeup/sirp/applicants/browser.py:829
+msgid "Remove selected tickets"
+msgstr ""
+
+#. Default: ""
+#: waeup/sirp/applicants/browser.py:672
+msgid "${a} Application Form ${b}"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:683 waeup/sirp/students/browser.py:344
+msgid "No transition"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:730
+msgid "No payment selected."
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:76 waeup/sirp/applicants/viewlets.py:88
+msgid "Manage application section"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:79 waeup/sirp/applicants/browser.py:105
+#: waeup/sirp/applicants/browser.py:254 waeup/sirp/applicants/browser.py:307
+#: waeup/sirp/browser/pages.py:634 waeup/sirp/browser/pages.py:675
+#: waeup/sirp/browser/pages.py:1259 waeup/sirp/browser/pages.py:1270
+#: waeup/sirp/browser/pages.py:1336 waeup/sirp/browser/pages.py:1371
+#: waeup/sirp/hostels/browser.py:131
+msgid "Remove selected"
+msgstr ""
+
+#: waeup/sirp/applicants/browser.py:79 waeup/sirp/applicants/browser.py:124
+#: waeup/sirp/applicants/browser.py:147 waeup/sirp/applicants/browser.py:159
+msgid "Add applicants container"
+msgstr ""
+
 #: waeup/sirp/applicants/browser.py:802
 msgid "The requested form is locked (read-only)."
@@ -344,9 +607,4 @@
 #: waeup/sirp/applicants/browser_templates/applicantdisplaypage.pt:53
 msgid "Item"
-msgstr ""
-
-#: waeup/sirp/applicants/browser_templates/applicanteditpage.pt:105
-#: waeup/sirp/applicants/browser_templates/applicantdisplaypage.pt:54
-msgid "State"
 msgstr ""
 
@@ -811,5 +1069,5 @@
 
 #: waeup/sirp/browser/pages.py:113 waeup/sirp/hostels/browser.py:256
-#: waeup/sirp/hostels/browser.py:285
+#: waeup/sirp/hostels/browser.py:287
 msgid "No item selected."
 msgstr ""
@@ -1063,8 +1321,4 @@
 msgstr ""
 
-#: waeup/sirp/browser/pages.py:592 waeup/sirp/browser/viewlets.py:187
-msgid "Search"
-msgstr ""
-
 #: waeup/sirp/browser/pages.py:617
 msgid "View portal configuration"
@@ -1304,4 +1558,5 @@
 #: waeup/sirp/browser/templates/datacenterlogspage.pt:10
 #: waeup/sirp/browser/templates/datacenterpage.pt:14
+#: waeup/sirp/accesscodes/browser_templates/reimportbatchpage.pt:11
 msgid "File"
 msgstr ""
@@ -1611,5 +1866,5 @@
 msgstr ""
 
-#: waeup/sirp/hostels/browser.py:212 waeup/sirp/hostels/browser.py:279
+#: waeup/sirp/hostels/browser.py:212 waeup/sirp/hostels/browser.py:281
 msgid "Release selected beds"
 msgstr ""
@@ -1622,18 +1877,18 @@
 
 #. Default: ""
-#: waeup/sirp/hostels/browser.py:273
+#: waeup/sirp/hostels/browser.py:275
 msgid "Successfully switched beds: ${a}"
 msgstr ""
 
 #. Default: ""
-#: waeup/sirp/hostels/browser.py:297
+#: waeup/sirp/hostels/browser.py:299
 msgid "Successfully released beds: ${a}"
 msgstr ""
 
-#: waeup/sirp/hostels/browser.py:302
+#: waeup/sirp/hostels/browser.py:304
 msgid "No allocated bed selected."
 msgstr ""
 
-#: waeup/sirp/hostels/browser.py:314
+#: waeup/sirp/hostels/browser.py:316
 msgid "Allocate student"
 msgstr ""
@@ -1658,8 +1913,4 @@
 msgstr ""
 
-#: waeup/sirp/hostels/browser_templates/hostelmanagepage.pt:56
-msgid "Owner"
-msgstr ""
-
 #: waeup/sirp/hostels/browser_templates/hostelmanagepage.pt:6
 msgid "Hostel Data"
@@ -1674,9 +1925,9 @@
 msgstr ""
 
-#: waeup/sirp/hostels/hostel.py:163
+#: waeup/sirp/hostels/hostel.py:180
 msgid "unreserved"
 msgstr ""
 
-#: waeup/sirp/hostels/hostel.py:176
+#: waeup/sirp/hostels/hostel.py:187
 msgid "reserved"
 msgstr ""
