diff --git a/invenio/modules/formatter/format_elements/bfe_authority_author.py b/invenio/modules/formatter/format_elements/bfe_authority_author.py
index 3bc1270a8..6537a89ee 100644
--- a/invenio/modules/formatter/format_elements/bfe_authority_author.py
+++ b/invenio/modules/formatter/format_elements/bfe_authority_author.py
@@ -1,73 +1,73 @@
 # -*- coding: utf-8 -*-
 ##
 ## This file is part of Invenio.
 ## Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 CERN.
 ##
 ## Invenio is free software; you can redistribute it and/or
 ## modify it under the terms of the GNU General Public License as
 ## published by the Free Software Foundation; either version 2 of the
 ## License, or (at your option) any later version.
 ##
 ## Invenio is distributed in the hope that it will be useful, but
 ## WITHOUT ANY WARRANTY; without even the implied warranty of
 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 ## General Public License for more details.
 ##
 ## You should have received a copy of the GNU General Public License
 ## along with Invenio; if not, write to the Free Software Foundation, Inc.,
 ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
 """BibFormat element - Prints author data from an Authority Record.
 """
 
 import re
 
 __revision__ = "$Id$"
 
 def format_element(bfo, detail='no'):
     """ Prints the data of an author authority record in HTML. By default prints
     brief version.
 
     @param detail: whether the 'detailed' rather than the 'brief' format
     @type detail: 'yes' or 'no'
     """
 
     from invenio.base.i18n import gettext_set_language
     _ = gettext_set_language(bfo.lang)    # load the right message language
     # return value
     out = ""
     # local function
     def stringify_dict(d):
         """ return string composed values in d """
         _str = ""
         if 'a' in d:
             _str += d['a']
             if 'd' in d:
                 _str += ", " + d['d']
         return _str or ''
     # brief
     main_dicts = bfo.fields('100%%')
     if len(main_dicts):
         main_dict = main_dicts[0]
         main = stringify_dict(main_dict)
-        out += "<p>" + "<strong>" + _("Main %s name") % _("author") + "</strong>" + ": " + main + "</p>"
+        out += "<p>" + "<strong>" + _("Main %(x_name)s name", x_name=_("author")).encode('utf8') + "</strong>" + ": " + main + "</p>"
     # detail
     if detail.lower() == "yes":
         sees = [stringify_dict(see_dict) for see_dict in bfo.fields('400%%')]
         sees = filter(None, sees) # fastest way to remove empty ""s
         sees = [re.sub(",{2,}",",", x) for x in sees] # prevent ",,"
         if len(sees):
             out += "<p>" + "<strong>" + _("Variant(s)") + "</strong>" + ": " + ", ".join(sees) + "</p>"
         see_alsos = [stringify_dict(see_also_dict) for see_also_dict in bfo.fields('500%%')]
-        see_alsos = filter(None, see_alsos) # fastest way to remove empty ""s    
+        see_alsos = filter(None, see_alsos) # fastest way to remove empty ""s
         see_alsos = [re.sub(",{2,}",",", x) for x in see_alsos] # prevent ",,"
         if len(see_alsos):
             out += "<p>" + "<strong>" + _("See also") + "</strong>" + ": " + ", ".join(see_alsos) + "</p>"
     # return
     return out
 
 def escape_values(bfo):
     """
     Called by BibFormat in order to check if output of this element
     should be escaped.
     """
     return 0
diff --git a/invenio/modules/formatter/format_elements/bfe_authority_institution.py b/invenio/modules/formatter/format_elements/bfe_authority_institution.py
index 0317ab6f6..05b90478b 100644
--- a/invenio/modules/formatter/format_elements/bfe_authority_institution.py
+++ b/invenio/modules/formatter/format_elements/bfe_authority_institution.py
@@ -1,205 +1,205 @@
 # -*- coding: utf-8 -*-
 ##
 ## This file is part of Invenio.
 ## Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 CERN.
 ##
 ## Invenio is free software; you can redistribute it and/or
 ## modify it under the terms of the GNU General Public License as
 ## published by the Free Software Foundation; either version 2 of the
 ## License, or (at your option) any later version.
 ##
 ## Invenio is distributed in the hope that it will be useful, but
 ## WITHOUT ANY WARRANTY; without even the implied warranty of
 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 ## General Public License for more details.
 ##
 ## You should have received a copy of the GNU General Public License
 ## along with Invenio; if not, write to the Free Software Foundation, Inc.,
 ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
 """BibFormat element - Prints institution data from an Authority Record.
 """
 
 __revision__ = "$Id$"
 
 from invenio.config import CFG_SITE_URL
 from invenio.legacy.bibauthority.config import \
     CFG_BIBAUTHORITY_RECORD_CONTROL_NUMBER_FIELD, \
     CFG_BIBAUTHORITY_AUTHORITY_COLLECTION_NAME
 
 from invenio.legacy.bibauthority.engine import \
     get_control_nos_from_recID, \
     guess_main_name_from_authority_recID
 from invenio.legacy.search_engine import \
     perform_request_search, \
     get_record
-    
+
 def format_element(bfo, detail='no'):
     """ Prints the data of an institution authority record in HTML. By default prints
     brief version.
 
     @param detail: whether the 'detailed' rather than the 'brief' format
     @type detail: 'yes' or 'no'
     """
     from invenio.base.i18n import gettext_set_language
     _ = gettext_set_language(bfo.lang)    # load the right message language
-    
+
     # return value
     out = ""
     # brief
     main_dicts = bfo.fields('110%%')
     if len(main_dicts):
         main = main_dicts[0].get('a') or ""
-        out += "<p>" + "<strong>" + _("Main %s name") % _("institution") + "</strong>" + ": " + main + "</p>"
+        out += "<p>" + "<strong>" + _("Main %(x_name)s name", x_name=_("institution")).encode('utf8') + "</strong>" + ": " + main + "</p>"
     # detail
     if detail.lower() == "yes":
         sees = [see_dict['a'] for see_dict in bfo.fields('410%%') if 'a' in see_dict]
         sees = filter(None, sees) # fastest way to remove empty ""s
         if len(sees):
             out += "<p>" + "<strong>" + _("Variant(s)") + "</strong>" + ": " + ", ".join(sees) + "</p>"
         see_also_dicts = bfo.fields('510%%')
         cc_val = CFG_BIBAUTHORITY_AUTHORITY_COLLECTION_NAME
         c_val = "Authority Institution"
         record_url_pattern = "/record/" + "%s"
         search_url_pattern = "/search?" + \
             "cc=" + "%s" + \
             "&c=" + "%s" + \
             "&p=" + "%s" + \
             "&sc=" + "%s"
         link_pattern = "<a href='" + CFG_SITE_URL + '%s' + "'>" + '%s' + "</a>"
         # populate the first 3 lists
         parent_htmls, predecessor_htmls, successor_htmls = \
             get_main_htmls(see_also_dicts, cc_val, c_val, record_url_pattern,
                            search_url_pattern, link_pattern)
         # populate the list of children
         child_htmls = \
-            get_child_htmls(bfo.recID, cc_val, c_val, record_url_pattern, 
+            get_child_htmls(bfo.recID, cc_val, c_val, record_url_pattern,
                             link_pattern)
         # put it all together
         if len(parent_htmls):
             out += "<p>" + "<strong>" + _("Parent") + "</strong>" + ": " + ", ".join(parent_htmls) + "</p>"
         if len(child_htmls):
             out += "<p>" + "<strong>" + _("Children") + "</strong>" + ": " + ", ".join(child_htmls) + "</p>"
         if len(predecessor_htmls):
             out += "<p>" + "<strong>" + _("Predecessor") + "</strong>" + ": " + ", ".join(predecessor_htmls) + "</p>"
         if len(successor_htmls):
-            out += "<p>" + "<strong>" + _("Successor") + "</strong>" + ": " + ", ".join(successor_htmls) + "</p>"   
+            out += "<p>" + "<strong>" + _("Successor") + "</strong>" + ": " + ", ".join(successor_htmls) + "</p>"
     # return
     return out
 
-def get_main_htmls(see_also_dicts, cc_val, c_val, record_url_pattern, 
+def get_main_htmls(see_also_dicts, cc_val, c_val, record_url_pattern,
                    search_url_pattern, link_pattern):
     """parent_htmls, predecessor_htmls, successor_htmls can all be deduced
     directly from the metadata of the record"""
     # reusable vars
     f_val = CFG_BIBAUTHORITY_RECORD_CONTROL_NUMBER_FIELD
     sc_val = "1"
     parent_htmls = []
     predecessor_htmls = []
     successor_htmls = []
-    
+
     # start processing
     for see_also_dict in see_also_dicts:
         if 'w' in see_also_dict:
             # $w contains 'a' for predecessor, 'b' for successor, etc.
             w_subfield = see_also_dict.get('w')
             # $4 contains control_no of linked authority record
-            _4_subfield = see_also_dict.get('4') 
+            _4_subfield = see_also_dict.get('4')
             # $a contains the name of the linked institution
             out_string = see_also_dict.get('a') or _4_subfield
             # if we have something to display
             if out_string:
                 url = ''
                 # if we have a control number
                 if _4_subfield:
                     p_val = _4_subfield
 #                    if CFG_BIBAUTHORITY_PREFIX_SEP in _4_subfield:
 #                        unused, p_val = _4_subfield.split(CFG_BIBAUTHORITY_PREFIX_SEP);
                     recIDs = perform_request_search(cc=cc_val,
                                                     c=c_val,
                                                     p=p_val,
                                                     f=f_val)
                     if len(recIDs) == 1:
                         url = record_url_pattern % (recIDs[0])
                     elif len(recIDs) > 1:
                         p_val = "recid:" + \
                             " or recid:".join([str(r) for r in recIDs])
                         url = search_url_pattern % (cc_val,
                                                       c_val,
                                                       p_val,
                                                       sc_val)
                 # if we found one or multiple records for the control_no,
                 # make the out_string a clickable url towards those records
                 if url:
                     out_string = link_pattern % (url, out_string)
                 # add the out_string to the appropriate list
                 if w_subfield == 't':
                     parent_htmls.append(out_string)
                 elif w_subfield == 'a':
                     predecessor_htmls.append(out_string)
                 elif w_subfield == 'b':
                     successor_htmls.append(out_string)
-    # return 
+    # return
     return parent_htmls, predecessor_htmls, successor_htmls
 
-def get_child_htmls(this_recID, cc_val, c_val, record_url_pattern, 
+def get_child_htmls(this_recID, cc_val, c_val, record_url_pattern,
                     link_pattern):
-    """children aren'r referenced by parents, so we need special treatment to find 
+    """children aren'r referenced by parents, so we need special treatment to find
     them"""
     control_nos = get_control_nos_from_recID(this_recID)
     for control_no in control_nos:
         url = ''
         p_val = '510%4:"' + control_no + '" and 510%w:t'
-        # find a first, fuzzy result set 
+        # find a first, fuzzy result set
         # narrowing down on a few possible recIDs
         recIDs = perform_request_search(cc=cc_val,
                                         c=c_val,
                                         p=p_val)
-        # now filter to find the ones where the subfield conditions of p_val 
+        # now filter to find the ones where the subfield conditions of p_val
         # are both true within the exact same field
         sf_req = [('w', 't'), ('4', control_no)]
-        recIDs = filter(lambda x: 
-                            match_all_subfields_for_tag(x, '510', sf_req), 
+        recIDs = filter(lambda x:
+                            match_all_subfields_for_tag(x, '510', sf_req),
                         recIDs)
         # proceed with assembling the html link
         child_htmls = []
         for recID in recIDs:
             url = record_url_pattern % str(recID)
             display = guess_main_name_from_authority_recID(recID) or str(recID)
             out_html = link_pattern % (url, display)
             child_htmls.append(out_html)
         return child_htmls
 
 def match_all_subfields_for_tag(recID, field_tag, subfields_required=[]):
     """
-    Tests whether the record with recID has at least one field with 'field_tag' 
+    Tests whether the record with recID has at least one field with 'field_tag'
     where all of the required subfields in subfields_required match a subfield
     in the given field both in code and value
-    
+
     @param recID: record ID
     @type recID: int
-    
+
     @param field_tag: a 3 digit code for the field tag code
     @type field_tag: string
-    
+
     @param subfields_required: a list of subfield code/value tuples
     @type subfields_required: list of tuples of strings.
-        same format as in get_record(): 
-            e.g. [('w', 't'), 
+        same format as in get_record():
+            e.g. [('w', 't'),
                   ('4', 'XYZ123')]
-    
+
     @return: boolean
     """
     rec = get_record(recID)
     for field in rec[field_tag]:
         subfields_present = field[0]
         intersection = set(subfields_present) & set(subfields_required)
         if set(subfields_required) == intersection:
             return True
-    return False 
+    return False
 
 def escape_values(bfo):
     """
     Called by BibFormat in order to check if output of this element
     should be escaped.
     """
     return 0
diff --git a/invenio/modules/formatter/format_elements/bfe_authority_subject.py b/invenio/modules/formatter/format_elements/bfe_authority_subject.py
index ffc360052..7bbaac632 100644
--- a/invenio/modules/formatter/format_elements/bfe_authority_subject.py
+++ b/invenio/modules/formatter/format_elements/bfe_authority_subject.py
@@ -1,70 +1,70 @@
 # -*- coding: utf-8 -*-
 ##
 ## This file is part of Invenio.
 ## Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 CERN.
 ##
 ## Invenio is free software; you can redistribute it and/or
 ## modify it under the terms of the GNU General Public License as
 ## published by the Free Software Foundation; either version 2 of the
 ## License, or (at your option) any later version.
 ##
 ## Invenio is distributed in the hope that it will be useful, but
 ## WITHOUT ANY WARRANTY; without even the implied warranty of
 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 ## General Public License for more details.
 ##
 ## You should have received a copy of the GNU General Public License
 ## along with Invenio; if not, write to the Free Software Foundation, Inc.,
 ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
 """BibFormat element - Prints subject data from an Authority Record.
 """
 
 import re
 
 __revision__ = "$Id$"
 
 def format_element(bfo, detail='no'):
     """ Prints the data of a subject authority record in HTML. By default prints
     brief version.
 
     @param detail: whether the 'detailed' rather than the 'brief' format
     @type detail: 'yes' or 'no'
     """
     from invenio.base.i18n import gettext_set_language
     _ = gettext_set_language(bfo.lang)    # load the right message language
     # return value
     out = ""
     # local function
     def stringify_dict(d):
         """ return string composed values in d """
         _str = ""
         if 'a' in d:
             _str += d['a']
         return _str or ''
     # brief
     main_dicts = bfo.fields('150%%')
     if len(main_dicts):
         main_dict = main_dicts[0]
         main = stringify_dict(main_dict)
-        out += "<p>" + "<strong>" + _("Main %s name") % _("subject") + "</strong>" + ": " + main + "</p>"
+        out += "<p>" + "<strong>" + _("Main %(x_name)s name", x_name=_("subject")).encode('utf8') + "</strong>" + ": " + main + "</p>"
     # detail
     if detail.lower() == "yes":
         sees = [stringify_dict(see_dict) for see_dict in bfo.fields('450%%')]
         sees = filter(None, sees) # fastest way to remove empty ""s
         sees = [re.sub(",{2,}",",", x) for x in sees] # prevent ",,"
         if len(sees):
             out += "<p>" + "<strong>" + _("Variant(s)") + "</strong>" + ": " + ", ".join(sees) + "</p>"
         see_alsos = [stringify_dict(see_also_dict) for see_also_dict in bfo.fields('550%%')]
-        see_alsos = filter(None, see_alsos) # fastest way to remove empty ""s    
+        see_alsos = filter(None, see_alsos) # fastest way to remove empty ""s
         see_alsos = [re.sub(",{2,}",",", x) for x in see_alsos] # prevent ",,"
         if len(see_alsos):
             out += "<p>" + "<strong>" + _("See also") + "</strong>" + ": " + ", ".join(see_alsos) + "</p>"
     # return
     return out
 
 def escape_values(bfo):
     """
     Called by BibFormat in order to check if output of this element
     should be escaped.
     """
     return 0