Index: /main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser.py	(revision 7737)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser.py	(revision 7738)
@@ -118,5 +118,6 @@
                         id, sys.exc_info()[0], sys.exc_info()[1]))
         if len(deleted):
-            self.flash(_('Successfully removed:') + ' %s' % ', '.join(deleted))
+            self.flash(_('Successfully removed: ${a}',
+                mapping = {'a':', '.join(deleted)}))
         self.redirect(self.url(self.context, '@@manage'))
         return
@@ -325,5 +326,6 @@
                         id, sys.exc_info()[0], sys.exc_info()[1]))
         if len(deleted):
-            self.flash(_('Successfully removed:') + ' %s' % ', '.join(deleted))
+            self.flash(_('Successfully removed: %s',
+                mapping = {'a':', '.join(deleted)}))
         self.redirect(self.url(self.context, u'@@manage')+'?tab2')
         return
@@ -744,5 +746,6 @@
                             id, sys.exc_info()[0], sys.exc_info()[1]))
         if len(deleted):
-            self.flash(_('Successfully removed:') + ' %s' % ', '.join(deleted))
+            self.flash(_('Successfully removed: %s',
+                mapping = {'a':', '.join(deleted)}))
             ob_class = self.__implemented__.__name__.replace('waeup.sirp.','')
             self.context.loggerInfo(
Index: /main/waeup.sirp/trunk/src/waeup/sirp/browser/pages.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/browser/pages.py	(revision 7737)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/browser/pages.py	(revision 7738)
@@ -1180,8 +1180,9 @@
             not_copied = self.context.setStoragePath(newpath, move=move)
             for name in not_copied:
-                self.flash(_('File already existed (not copied):') + ' %s' % name)
+                self.flash(_('File already existed (not copied): ${a}',
+                    mapping = {'a':name}))
         except:
             self.flash(_('Given storage path cannot be used.'))
-            self.flash(_('Error:') + '%s' %sys.exc_info()[1])
+            self.flash(_('Error: %s', mapping = {'a':sys.exc_info()[1]}))
             return
         if newpath:
Index: /main/waeup.sirp/trunk/src/waeup/sirp/students/browser.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/students/browser.py	(revision 7737)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/students/browser.py	(revision 7738)
@@ -1874,4 +1874,5 @@
     ac_prefix = 'PWD'
     pnav = 0
+    set_button = _('Set')
 
     def update(self, SUBMIT=None):
Index: /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/imageupload.pt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/imageupload.pt	(revision 7737)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/imageupload.pt	(revision 7738)
@@ -1,3 +1,3 @@
-<tr>
+<tr i18n:domain="waeup.sirp">
   <td class="fieldname">
     <span tal:replace="viewlet/label">FILENAME</span>:
@@ -18,5 +18,5 @@
                   name python:('upload_%s' % viewlet.input_name)"
                value="Upload" class="btn primary" />
-      <span i18n:translate="max_file_size">
+      <span i18n:translate="">
         Max. file size:
       </span>
Index: /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/mydatadropdowntabs.pt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/mydatadropdowntabs.pt	(revision 7737)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/mydatadropdowntabs.pt	(revision 7738)
@@ -1,8 +1,9 @@
 <li tal:attributes="class viewlet/active" data-dropdown="dropdown" >
-  <a href="#" class="dropdown-toggle" tal:content="viewlet/tab_title">Tab Title</a>
+  <a href="#" class="dropdown-toggle"
+    tal:content="viewlet/tab_title">Tab Title</a>
   <ul class="dropdown-menu">
     <li tal:repeat="target viewlet/targets">
       <a tal:attributes="href target/url"
-         tal:content="target/title">Link Title</a>
+         tal:content="target/title">LINKTITLE</a>
     </li>
   </ul>
Index: /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/paymentsmanagepage.pt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/paymentsmanagepage.pt	(revision 7737)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/paymentsmanagepage.pt	(revision 7738)
@@ -1,16 +1,16 @@
 <form action="." tal:attributes="action request/URL" method="POST"
-      enctype="multipart/form-data">
+      i18n:domain="waeup.sirp" enctype="multipart/form-data">
 
   <table class="display dataTableManage">
     <thead>
     <tr>
-      <th>&nbsp;</th>
-      <th>Payment Id</th>
-      <th>Creation Date</th>
-      <th>Payment Date</th>
-      <th>Category</th>
-      <th>Item</th>
-      <th>Session</th>
-      <th>State</th>
+      <th i18n:translate="">&nbsp;</th>
+      <th i18n:translate="">Payment Id</th>
+      <th i18n:translate="">Creation Date</th>
+      <th i18n:translate="">Payment Date</th>
+      <th i18n:translate="">Category</th>
+      <th i18n:translate="">Item</th>
+      <th i18n:translate="">Session</th>
+      <th i18n:translate="">State</th>
     </tr>
     </thead>
Index: /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/setpassword.pt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/setpassword.pt	(revision 7737)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/setpassword.pt	(revision 7738)
@@ -1,7 +1,7 @@
-<form method="POST">
+<form i18n:domain="waeup.sirp" method="POST">
   <table class="form-table">
     <tbody>
       <tr>
-      <td class="fieldname">
+      <td class="fieldname" i18n:translate="">
           Registration Number:
       </td>
@@ -12,9 +12,10 @@
       </tr>
       <tr>
-        <td class="fieldname">
+        <td class="fieldname" i18n:translate="">
           Access Code:
         </td>
         <td>
-          <span tal:replace="view/ac_prefix">PIN Prefix
+          <span tal:replace="view/ac_prefix">
+            PINPREFIX
           </span> -
           <input class="span1" name="ac_series" type="text"
@@ -26,8 +27,9 @@
   </table>
   <input type="submit" name="SUBMIT" class="btn primary"
-         value="Set" />
+         tal:attributes="value view/set_button" />
 </form>
-<div><h3>Instructions:</h3>
-  <ul class="list">
+<div i18n:domain="waeup.sirp" >
+  <h3 i18n:translate="">Instructions:</h3>
+  <ul class="list" i18n:translate="">
     <li> Acquire a password access code (PWD).
     </li>
Index: /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studenthistory.pt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studenthistory.pt	(revision 7737)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studenthistory.pt	(revision 7738)
@@ -1,5 +1,5 @@
 <div class="workflow">
   <div tal:repeat="msg context/history/messages">
-    <span tal:replace="msg">message</span><br />
+    <span tal:replace="msg">MESSAGE</span><br />
   </div>
 </div>
Index: /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studycoursemanagepage.pt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studycoursemanagepage.pt	(revision 7737)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studycoursemanagepage.pt	(revision 7738)
@@ -1,8 +1,12 @@
 <form action="." tal:attributes="action request/URL" method="POST"
-      enctype="multipart/form-data"> 
+      i18n:domain="waeup.sirp" enctype="multipart/form-data">
 
   <ul class="tabs" data-tabs="tabs">
-    <li tal:attributes="class view/tab1"><a href="#tab-1"><span>Study Course Data</span></a></li>
-    <li tal:attributes="class view/tab2"><a href="#tab-2"><span>Study Levels</span></a></li>
+    <li tal:attributes="class view/tab1"><a href="#tab-1">
+      <span i18n:translate="">Study Course Data</span></a>
+    </li>
+    <li tal:attributes="class view/tab2"><a href="#tab-2">
+      <span i18n:translate="">Study Levels</span></a>
+    </li>
   </ul>
 
@@ -24,9 +28,11 @@
 
     <div id="tab-2" tal:attributes="class view/tab2">
-      <h3>Study Levels (Course Lists)</h3>
+      <h3 i18n:translate="">Study Levels (Course Lists)</h3>
       <table class="display dataTableManage">
         <thead>
           <tr>
-            <th>&nbsp;</th><th>Level Code</th><th>Level Title</th>
+            <th>&nbsp;</th>
+            <th i18n:translate="">Level Code</th>
+            <th i18n:translate="">Level Title</th>
           </tr>
         </thead>
Index: /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studycoursepage.pt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studycoursepage.pt	(revision 7737)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studycoursepage.pt	(revision 7738)
@@ -1,61 +1,60 @@
-<table class="form-table">
-<thead>
-</thead>
-<tbody>
-  <tal:block repeat="widget view/widgets">
-    <tr>
-      <td class="filedname">
-        <span tal:content="widget/label">label</span>:
-      </td>
-      <td tal:on-error="default">
-        <div class="widget" tal:content="structure widget">
-          <input type="text" />
-        </div>
-      </td>
-    </tr>
-  </tal:block>
-    <tr>
-      <td>
-          Study Mode:
-      </td>
-      <td class="field">
-        <div class="widget" tal:content="view/current_mode">
-          <input type="text" />
-        </div>
-      </td>
-    </tr>
-    <tr tal:condition="python: view.department is not None">
-      <td>
-          Department:
-      </td>
-      <td class="field">
-        <a tal:attributes="href python: view.url(view.department)" class="widget"
-             tal:content="view/department/longtitle">
-          DEPARTMENT
-        </a>
-      </td>
-    </tr>
-    <tr tal:condition="python: view.faculty is not None">
-      <td>
-          Faculty:
-      </td>
-      <td class="field">
-        <a tal:attributes="href python: view.url(view.faculty)" class="widget"
-             tal:content="view/faculty/longtitle">
-          FACULTY
-        </a>
-      </td>
-    </tr>
-</tbody>
+<table class="form-table" i18n:domain="waeup.sirp">
+  <thead>
+  </thead>
+  <tbody>
+    <tal:block repeat="widget view/widgets">
+      <tr>
+        <td class="filedname">
+          <span tal:content="widget/label">label</span>:
+        </td>
+        <td tal:on-error="default">
+          <div class="widget" tal:content="structure widget">
+            <input type="text" />
+          </div>
+        </td>
+      </tr>
+    </tal:block>
+      <tr>
+        <td i18n:translate="">
+            Study Mode:
+        </td>
+        <td class="field">
+          <div class="widget" tal:content="view/current_mode">
+            <input type="text" />
+          </div>
+        </td>
+      </tr>
+      <tr tal:condition="python: view.department is not None">
+        <td i18n:translate="">
+            Department:
+        </td>
+        <td class="field">
+          <a tal:attributes="href python: view.url(view.department)" class="widget"
+               tal:content="view/department/longtitle">
+            DEPARTMENT
+          </a>
+        </td>
+      </tr>
+      <tr tal:condition="python: view.faculty is not None">
+        <td i18n:translate="">
+            Faculty:
+        </td>
+        <td class="field">
+          <a tal:attributes="href python: view.url(view.faculty)" class="widget"
+               tal:content="view/faculty/longtitle">
+            FACULTY
+          </a>
+        </td>
+      </tr>
+  </tbody>
 </table>
 
-<h3>Study Levels (Course Lists)</h3>
+<h3 i18n:domain="waeup.sirp" i18n:translate="">Study Levels (Course Lists)</h3>
 
-
-<table>
+<table i18n:domain="waeup.sirp">
   <thead>
     <tr>
-      <th>Level Code</th>
-      <th>Level Title</th>
+      <th i18n:translate="">Level Code</th>
+      <th i18n:translate="">Level Title</th>
     </tr>
   </thead>
@@ -70,5 +69,6 @@
 
 
-<div tal:condition="python: not len(context.keys())">
-There are no levels registered yet.
+<div tal:condition="python: not len(context.keys())"
+    i18n:domain="waeup.sirp" i18n:translate="">
+  There are no levels registered yet.
 </div>
Index: /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studyleveladdpage.pt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studyleveladdpage.pt	(revision 7737)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studyleveladdpage.pt	(revision 7738)
@@ -1,6 +1,6 @@
 <form action="." tal:attributes="action request/URL" method="POST"
-      enctype="multipart/form-data"> 
+      i18n:domain="waeup.sirp" enctype="multipart/form-data">
 
-  <p>Text to explain course registration procedure.</p>
+  <p i18n:translate="">Text to explain course registration procedure.</p>
 
   <div class="actionButtons" tal:condition="view/availableActions">
Index: /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studyleveleditpage.pt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studyleveleditpage.pt	(revision 7737)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studyleveleditpage.pt	(revision 7738)
@@ -1,18 +1,21 @@
 <form action="." tal:attributes="action request/URL" method="POST"
-      enctype="multipart/form-data"> 
+      i18n:domain="waeup.sirp" enctype="multipart/form-data">
 
-  <h3>Course Tickets (Total Credits: <span tal:replace="view/total_credits">TOTAL</span>)</h3>
+  <h3 i18n:translate="">
+    Course Tickets
+    (Total Credits: <span tal:replace="view/total_credits">TOTAL</span>)
+  </h3>
   <table class="display dataTableManage">
   <thead>
     <tr>
       <th>&nbsp;</th>
-      <th>Sem.</th>
-      <th>Code</th>
-      <th>Title</th>
-      <th>Department</th>
-      <th>Faculty</th>
-      <th>Credits</th>
-      <th>Score</th>
-      <th>CO</th>
+      <th i18n:translate="">Sem.</th>
+      <th i18n:translate="">Code</th>
+      <th i18n:translate="">Title</th>
+      <th i18n:translate="">Department</th>
+      <th i18n:translate="">Faculty</th>
+      <th i18n:translate="">Credits</th>
+      <th i18n:translate="">Score</th>
+      <th i18n:translate="">CO</th>
     </tr>
   </thead>
Index: /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studylevelmanagepage.pt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studylevelmanagepage.pt	(revision 7737)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studylevelmanagepage.pt	(revision 7738)
@@ -1,8 +1,12 @@
 <form action="." tal:attributes="action request/URL" method="POST"
-      enctype="multipart/form-data"> 
+      i18n:domain="waeup.sirp" enctype="multipart/form-data">
 
   <ul class="tabs" data-tabs="tabs">
-    <li tal:attributes="class view/tab1"><a href="#tab-1"><span>Study Level Data</span></a></li>
-    <li tal:attributes="class view/tab2"><a href="#tab-2"><span>Course Tickets</span></a></li>
+    <li tal:attributes="class view/tab1"><a href="#tab-1">
+      <span i18n:translate="">Study Level Data</span></a>
+    </li>
+    <li tal:attributes="class view/tab2"><a href="#tab-2">
+      <span i18n:translate="">Course Tickets</span>
+    </a></li>
   </ul>
 
@@ -24,19 +28,19 @@
 
     <div id="tab-2" tal:attributes="class view/tab2">
-      <h3>Course Tickets</h3>
+      <h3 i18n:translate="">Course Tickets</h3>
       <table class="display dataTableManage">
       <thead>
         <tr>
           <th>&nbsp;</th>
-          <th>Sem.</th>
-          <th>Code</th>
-          <th>Title</th>
-          <th>Dept.</th>
-          <th>Fact.</th>
-          <th>Cred.</th>
-          <th>Mand.</th>
-          <th>Score</th>
-          <th>CO</th>
-          <th>Auto</th>
+          <th i18n:translate="">Sem.</th>
+          <th i18n:translate="">Code</th>
+          <th i18n:translate="">Title</th>
+          <th i18n:translate="">Dept.</th>
+          <th i18n:translate="">Fact.</th>
+          <th i18n:translate="">Cred.</th>
+          <th i18n:translate="">Mand.</th>
+          <th i18n:translate="">Score</th>
+          <th i18n:translate="">CO</th>
+          <th i18n:translate="">Auto</th>
         </tr>
       </thead>
Index: /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studylevelpage.pt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studylevelpage.pt	(revision 7737)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studylevelpage.pt	(revision 7738)
@@ -1,44 +1,44 @@
-<table class="form-table">
-<thead>
-</thead>
-<tbody>
-  <tal:block repeat="widget view/widgets">
+<table class="form-table" i18n:domain="waeup.sirp">
+  <thead>
+  </thead>
+  <tbody>
+    <tal:block repeat="widget view/widgets">
+      <tr>
+        <td class="fieldname">
+          <span tal:content="widget/label">label</span>:
+        </td>
+        <td tal:on-error="default">
+          <div class="widget" tal:content="structure widget">
+            <input type="text" />
+          </div>
+        </td>
+      </tr>
+    </tal:block>
     <tr>
-      <td class="fieldname">
-        <span tal:content="widget/label">label</span>:
+      <td i18n:translate="">
+        Total Credits:
       </td>
-      <td tal:on-error="default">
-        <div class="widget" tal:content="structure widget">
-          <input type="text" />
-        </div>
+      <td>
+        <span tal:replace="view/total_credits">TOTAL</span>
       </td>
     </tr>
-  </tal:block>
-  <tr>
-    <td>
-      Total Credits:
-    </td>
-    <td>
-      <span tal:replace="view/total_credits">TOTAL</span>
-    </td>
-  </tr>
-</tbody>
+  </tbody>
 </table>
 
-<h3>Course Tickets</h3>
+<h3 i18n:domain="waeup.sirp" i18n:translate="">Course Tickets</h3>
 
-<table class="display dataTable">
+<table class="display dataTable" i18n:domain="waeup.sirp">
   <thead>
     <tr>
-      <th>Sem.</th>
-      <th>Code</th>
-      <th>Title</th>
-      <th>Dept.</th>
-      <th>Fact.</th>
-      <th>Cred.</th>
-      <th>Mand.</th>
-      <th>Score</th>
-      <th>CO</th>
-      <th>Auto</th>
+      <th i18n:translate="">Sem.</th>
+      <th i18n:translate="">Code</th>
+      <th i18n:translate="">Title</th>
+      <th i18n:translate="">Dept.</th>
+      <th i18n:translate="">Fact.</th>
+      <th i18n:translate="">Cred.</th>
+      <th i18n:translate="">Mand.</th>
+      <th i18n:translate="">Score</th>
+      <th i18n:translate="">CO</th>
+      <th i18n:translate="">Auto</th>
     </tr>
   </thead>
@@ -62,5 +62,6 @@
 
 
-<div tal:condition="python: not len(context.keys())">
-There no tickets added yet.
+<div i18n:domain="waeup.sirp"
+  tal:condition="python: not len(context.keys())" i18n:translate="">
+  There no tickets added yet.
 </div>
Index: /main/waeup.sirp/trunk/src/waeup/sirp/students/viewlets.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/students/viewlets.py	(revision 7737)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/students/viewlets.py	(revision 7738)
@@ -68,5 +68,5 @@
 
     link = 'index'
-    text = u'Base Data'
+    text = _(u'Base Data')
 
     def render(self):
@@ -78,5 +78,5 @@
     grok.order(1)
     link = 'application_slip'
-    text = u'Application Slip'
+    text = _(u'Application Slip')
 
     def render(self):
@@ -92,20 +92,20 @@
     grok.order(2)
     link = 'index'
-    text = u'Base Data'
+    text = _(u'Base Data')
 
 class StudentManageClearanceLink(StudentManageLink):
     grok.order(3)
     link = 'view_clearance'
-    text = u'Clearance Data'
+    text = _(u'Clearance Data')
 
 class StudentManagePersonalLink(StudentManageLink):
     grok.order(4)
     link = 'view_personal'
-    text = u'Personal Data'
+    text = _(u'Personal Data')
 
 class StudentManageStudyCourseLink(StudentManageLink):
     grok.order(5)
     link = 'studycourse'
-    text = u'Study Course'
+    text = _(u'Study Course')
 
 class StudentManagePaymentsLink(StudentManageLink):
@@ -113,5 +113,5 @@
     grok.require('waeup.payStudent')
     link = 'payments'
-    text = u'Payments'
+    text = _(u'Payments')
 
 class StudentManageAccommodationLink(StudentManageLink):
@@ -119,10 +119,10 @@
     grok.require('waeup.handleAccommodation')
     link = 'accommodation'
-    text = u'Accommodation'
+    text = _(u'Accommodation')
 
 class StudentManageHistoryLink(StudentManageLink):
     grok.order(8)
     link = 'history'
-    text = u'History'
+    text = _(u'History')
 
 
@@ -132,5 +132,5 @@
     grok.view(StudentsContainerPage)
     grok.require('waeup.manageStudent')
-    text = 'Manage student section'
+    text = _('Manage student section')
 
 class StudentsContainerAddActionButton(AddActionButton):
@@ -139,5 +139,5 @@
     grok.view(StudentsContainerManagePage)
     grok.require('waeup.manageStudent')
-    text = 'Add student'
+    text = _('Add student')
     target = 'addstudent'
 
@@ -148,5 +148,5 @@
     grok.require('waeup.manageStudent')
     icon = 'actionicon_mail.png'
-    text = 'Send email'
+    text = _('Send email')
     target = 'contactstudent'
 
@@ -156,5 +156,5 @@
     grok.view(StudentBaseDisplayFormPage)
     grok.require('waeup.manageStudent')
-    text = 'Manage'
+    text = _('Manage')
     target = 'manage_base'
 
@@ -164,5 +164,5 @@
     grok.view(StudentClearanceDisplayFormPage)
     grok.require('waeup.manageStudent')
-    text = 'Manage'
+    text = _('Manage')
     target = 'edit_clearance'
 
@@ -172,5 +172,5 @@
     grok.view(StudentClearanceDisplayFormPage)
     grok.require('waeup.clearStudent')
-    text = 'Clear student'
+    text = _('Clear student')
     target = 'clear'
     icon = 'actionicon_accept.png'
@@ -187,5 +187,5 @@
     grok.view(StudentClearanceDisplayFormPage)
     grok.require('waeup.clearStudent')
-    text = 'Reject clearance'
+    text = _('Reject clearance')
     target = 'reject_clearance'
     icon = 'actionicon_reject.png'
@@ -203,5 +203,5 @@
     grok.require('waeup.viewStudent')
     icon = 'actionicon_pdf.png'
-    text = 'Download clearance slip'
+    text = _('Download clearance slip')
     target = 'clearance.pdf'
 
@@ -211,5 +211,5 @@
     grok.view(StudentPersonalDisplayFormPage)
     grok.require('waeup.viewStudent')
-    text = 'Edit'
+    text = _('Edit')
     target = 'edit_personal'
 
@@ -219,5 +219,5 @@
     grok.view(StudyCourseDisplayFormPage)
     grok.require('waeup.manageStudent')
-    text = 'Manage'
+    text = _('Manage')
     target = 'manage'
 
@@ -228,5 +228,5 @@
     grok.require('waeup.viewStudent')
     icon = 'actionicon_pdf.png'
-    text = 'Download course registration slip'
+    text = _('Download course registration slip')
     target = 'course_registration.pdf'
 
@@ -236,5 +236,5 @@
     grok.view(StudyLevelDisplayFormPage)
     grok.require('waeup.manageStudent')
-    text = 'Manage'
+    text = _('Manage')
     target = 'manage'
 
@@ -244,5 +244,5 @@
     grok.view(StudyLevelDisplayFormPage)
     grok.require('waeup.validateStudent')
-    text = 'Validate courses'
+    text = _('Validate courses')
     target = 'validate_courses'
     icon = 'actionicon_accept.png'
@@ -260,5 +260,5 @@
     grok.view(StudyLevelDisplayFormPage)
     grok.require('waeup.validateStudent')
-    text = 'Reject courses'
+    text = _('Reject courses')
     target = 'reject_courses'
     icon = 'actionicon_reject.png'
@@ -276,5 +276,5 @@
     grok.view(CourseTicketDisplayFormPage)
     grok.require('waeup.manageStudent')
-    text = 'Manage'
+    text = _('Manage')
     target = 'manage'
 
@@ -293,5 +293,5 @@
     grok.require('waeup.viewStudent')
     icon = 'actionicon_pdf.png'
-    text = 'Download payment receipt'
+    text = _('Download payment receipt')
     target = 'payment_receipt.pdf'
 
@@ -308,5 +308,5 @@
     grok.require('waeup.payStudent')
     icon = 'actionicon_call.png'
-    text = 'Request callback'
+    text = _('Request callback')
     target = 'callback'
 
@@ -323,5 +323,5 @@
     grok.require('waeup.handleAccommodation')
     icon = 'actionicon_home.png'
-    text = 'Book accommodation'
+    text = _('Book accommodation')
     target = 'add'
 
@@ -332,5 +332,5 @@
     grok.require('waeup.handleAccommodation')
     icon = 'actionicon_pdf.png'
-    text = 'Download bed allocation slip'
+    text = _('Download bed allocation slip')
     target = 'bed_allocation.pdf'
 
@@ -341,5 +341,5 @@
     grok.require('waeup.manageHostels')
     icon = 'actionicon_reload.png'
-    text = 'Relocate student'
+    text = _('Relocate student')
     target = 'relocate'
 
@@ -349,5 +349,5 @@
     grok.view(StudentBaseDisplayFormPage)
     grok.require('waeup.handleStudent')
-    text = 'Edit base data'
+    text = _('Edit base data')
     target = 'edit_base'
 
@@ -358,5 +358,5 @@
     grok.require('waeup.handleStudent')
     icon = 'actionicon_key.png'
-    text = 'Change password'
+    text = _('Change password')
     target = 'change_password'
 
@@ -367,5 +367,5 @@
     grok.require('waeup.handleStudent')
     icon = 'actionicon_portrait.png'
-    text = 'Change portrait'
+    text = _('Change portrait')
     target = 'change_portrait'
 
@@ -382,5 +382,5 @@
     grok.require('waeup.handleStudent')
     icon = 'actionicon_start.gif'
-    text = 'Start clearance'
+    text = _('Start clearance')
     target = 'start_clearance'
 
@@ -396,5 +396,5 @@
     grok.view(StudentClearanceDisplayFormPage)
     grok.require('waeup.handleStudent')
-    text = 'Edit'
+    text = _('Edit')
     target = 'cedit'
 
@@ -411,5 +411,5 @@
     grok.require('waeup.handleStudent')
     icon = 'actionicon_start.gif'
-    text = 'Start course registration'
+    text = _('Start course registration')
     target = 'start_course_registration'
 
@@ -425,5 +425,5 @@
     grok.view(StudyCourseDisplayFormPage)
     grok.require('waeup.handleStudent')
-    text = 'Add course list'
+    text = _('Add course list')
     target = 'add'
 
@@ -443,5 +443,5 @@
     grok.view(StudyLevelDisplayFormPage)
     grok.require('waeup.handleStudent')
-    text = 'Add and remove courses'
+    text = _('Add and remove courses')
     target = 'edit'
 
@@ -505,5 +505,5 @@
     grok.template('mydatadropdowntabs')
     pnav = 4
-    tab_title = u'My Data'
+    tab_title = _(u'My Data')
 
     @property
@@ -525,10 +525,10 @@
         targets += [
             {'url':student_url, 'title':'Base Data'},
-            {'url':student_url + '/view_clearance', 'title':'Clearance Data'},
-            {'url':student_url + '/view_personal', 'title':'Personal Data'},
-            {'url':student_url + '/studycourse', 'title':'Study Course'},
-            {'url':student_url + '/payments', 'title':'Payments'},
-            {'url':student_url + '/accommodation', 'title':'Accommodation Data'},
-            {'url':student_url + '/history', 'title':'History'},
+            {'url':student_url + '/view_clearance', 'title':_('Clearance Data')},
+            {'url':student_url + '/view_personal', 'title':_('Personal Data')},
+            {'url':student_url + '/studycourse', 'title':_('Study Course')},
+            {'url':student_url + '/payments', 'title':_('Payments')},
+            {'url':student_url + '/accommodation', 'title':_('Accommodation Data')},
+            {'url':student_url + '/history', 'title':_('History')},
             ]
         return targets
@@ -541,5 +541,5 @@
     store.deleteFileByContext(context, attr=download_name)
     write_log_message(view, 'deleted: %s' % download_name)
-    view.flash('%s deleted.' % download_name)
+    view.flash(_('${a} deleted.', mapping = {'a':download_name}))
     return
 
@@ -554,8 +554,8 @@
     # Check some file requirements first
     if upload.filename.count('.') == 0:
-        view.flash('File name has no extension.')
+        view.flash(_('File name has no extension.'))
         return False
     if upload.filename.count('.') > 1:
-        view.flash('File name contains more than one dot.')
+        view.flash(_('File name contains more than one dot.'))
         return False
     basename, expected_ext = os.path.splitext(download_name)
@@ -564,17 +564,17 @@
     if expected_ext:
         if ext != expected_ext:
-            view.flash('%s file extension expected.' %
-                expected_ext.replace('.',''))
+            view.flash(_('${a} file extension expected.',
+                mapping = {'a':expected_ext.replace('.','')}))
             return False
     else:
         if not ext.replace('.','') in ALLOWED_FILE_EXTENSIONS:
             view.flash(
-                'Only the following extension are allowed: %s' %
-                ', '.join(ALLOWED_FILE_EXTENSIONS))
+                _('Only the following extension are allowed: ${a}',
+                mapping = {'a':', '.join(ALLOWED_FILE_EXTENSIONS)}))
             return False
         download_name += ext
     size = file_size(upload)
     if size > max_size:
-        view.flash('Uploaded file is too big.')
+        view.flash(_('Uploaded file is too big.'))
         return False
     upload.seek(0) # file pointer moved when determining size
@@ -583,5 +583,5 @@
     store.createFile(file_id, upload)
     write_log_message(view, 'uploaded: %s (%s)' % (download_name,upload.filename))
-    view.flash('File %s uploaded.' % download_name)
+    view.flash(_('File ${a} uploaded.', mapping = {'a':download_name}))
     return True
 
@@ -601,6 +601,6 @@
     grok.order(1)
     grok.require('waeup.viewStudent')
-    label = u'File'
-    title = u'Scan'
+    label = _(u'File')
+    title = _(u'Scan')
     download_name = u'filename.jpg'
 
@@ -656,5 +656,5 @@
                         self.context, self.view.__name__) + self.tab_redirect)
             else:
-                self.view.flash('No local file selected.')
+                self.view.flash(_('No local file selected.'))
                 self.view.redirect(
                     self.view.url(
@@ -670,5 +670,5 @@
     grok.require('waeup.viewStudent')
     grok.template('imagedisplay')
-    label = u'Passport Picture'
+    label = _(u'Passport Picture')
     download_name = u'passport.jpg'
 
@@ -681,5 +681,5 @@
     grok.require('waeup.manageStudent')
     grok.template('imageupload')
-    label = u'Passport Picture (jpg only)'
+    label = _(u'Passport Picture (jpg only)')
     mus = 1024 * 50
     download_name = u'passport.jpg'
@@ -696,6 +696,6 @@
     """
     grok.order(1)
-    label = u'Birth Certificate'
-    title = u'Birth Certificate Scan'
+    label = _(u'Birth Certificate')
+    title = _(u'Birth Certificate Scan')
     download_name = u'birth_certificate'
 
@@ -707,6 +707,6 @@
     """
     grok.order(1)
-    label = u'Birth Certificate'
-    title = u'Birth Certificate Scan'
+    label = _(u'Birth Certificate')
+    title = _(u'Birth Certificate Scan')
     mus = 1024 * 150
     download_name = u'birth_certificate'
@@ -717,6 +717,6 @@
     """
     grok.order(1)
-    label = u'Acceptance Letter'
-    title = u'Acceptance Letter Scan'
+    label = _(u'Acceptance Letter')
+    title = _(u'Acceptance Letter Scan')
     download_name = u'acceptance_letter'
 
@@ -728,6 +728,6 @@
     """
     grok.order(2)
-    label = u'Acceptance Letter'
-    title = u'Acceptance Letter Scan'
+    label = _(u'Acceptance Letter')
+    title = _(u'Acceptance Letter Scan')
     mus = 1024 * 150
     download_name = u'acceptance_letter'
