Index: trac/ticket/roadmap.py
===================================================================
--- trac/ticket/roadmap.py	(revision 7912)
+++ trac/ticket/roadmap.py	(working copy)
@@ -20,6 +20,7 @@
 from time import localtime, strftime, time
 
 from genshi.builder import tag
+from genshi.core import Markup
 
 from trac import __version__
 from trac.attachment import AttachmentModule
@@ -529,7 +530,7 @@
         if field == 'url':
             return context.href.milestone(milestone.id)
         elif field == 'title':
-            return tag('Milestone ', tag.em(milestone.id), ' completed')
+            return Markup(_('Milestone %(ms)s completed',ms=tag.em(milestone.id)))
         elif field == 'description':
             return format_to(self.env, None, context(resource=milestone),
                              description)
Index: trac/attachment.py
===================================================================
--- trac/attachment.py	(revision 7912)
+++ trac/attachment.py	(working copy)
@@ -24,6 +24,7 @@
 import unicodedata
 
 from genshi.builder import tag
+from genshi.core import Markup
 
 from trac import perm, util
 from trac.config import BoolOption, IntOption
@@ -474,8 +475,7 @@
         elif field == 'title':
             name = get_resource_name(self.env, attachment.parent)
             title = get_resource_summary(self.env, attachment.parent)
-            return tag(tag.em(os.path.basename(attachment.id)),
-                       _(" attached to "), tag.em(name, title=title))
+            return Markup(_("%(file)s attached to %(page)s",file=tag.em(os.path.basename(attachment.id)),page=tag.em(name, title=title)))
         elif field == 'description':
             return format_to(self.env, None, context(attachment.parent), descr)
    
Index: trac/versioncontrol/web_ui/changeset.py
===================================================================
--- trac/versioncontrol/web_ui/changeset.py	(revision 7912)
+++ trac/versioncontrol/web_ui/changeset.py	(working copy)
@@ -27,6 +27,7 @@
 import time
 
 from genshi.builder import tag
+from genshi.core import Markup
 
 from trac.config import Option, BoolOption, IntOption
 from trac.core import *
@@ -868,9 +869,9 @@
             return markup
 
         if rev_a == rev_b:
-            title = tag('Changeset ', tag.em('[%s]' % rev_a))
+            title = Markup(_('Changeset %(rev)s commited',rev=tag.em('[%s]' % rev_a)))
         else:
-            title = tag('Changesets ', tag.em('[', rev_a, '-', rev_b, ']'))
+            title = Markup(_('Changesets %(rev)s commited',rev=tag.em('[', rev_a, '-', rev_b, ']')))
             
         if field == 'title':
             return title
Index: trac/timeline/web_ui.py
===================================================================
--- trac/timeline/web_ui.py	(revision 7912)
+++ trac/timeline/web_ui.py	(working copy)
@@ -234,8 +234,12 @@
                                                     authors=authors,
                                                     daysback=daysback),
                      _('Next period'))
-        prevnext_nav(req, 'Period')
-        
+        prevnext_nav(req, _('Period'))
+        from genshi.builder import tag
+        data['tag'] = tag
+        from genshi.core import Markup
+        data['Markup'] = Markup
+
         return 'timeline.html', data, None
 
     # ITemplateProvider methods
Index: trac/timeline/templates/timeline.html
===================================================================
--- trac/timeline/templates/timeline.html	(revision 7912)
+++ trac/timeline/templates/timeline.html	(working copy)
@@ -40,8 +40,11 @@
             py:with="highlight = precision and precisedate and timedelta(0) &lt;= (event.date - precisedate) &lt; precision">
             <dt class="${classes(event.kind, highlight=highlight)}">
               <a href="${event.render('url', context)}">
-                <span class="time">${format_time(event.date, str('%H:%M'))}</span> ${event.render('title', context)}
-                <py:if test="event.author">by <span class="author">${format_author(event.author)}</span></py:if>
+                <span class="time">${format_time(event.date, str('%H:%M'))}</span>
+                <py:if test="not event.author">${event.render('title', context)}</py:if>
+                <py:if test="event.author">
+                ${Markup(_('%(cont)s by %(auth)s',cont=event.render('title', context),
+                        auth=tag.span(format_author(event.author),class_="author")))}</py:if>
               </a>
             </dt>
             <dd class="${classes(event.kind, highlight=highlight)}">

