--- F:\soft\Tools\PM\trac\Trac-0.11.1\trac\ticket\web_ui.py 
+++ F:\projects\trac-dev\i18n\Trac-0.11.1\trac\ticket\web_ui.py 
@@ -1062,7 +1062,7 @@
             elif name == 'owner':
                 field['skip'] = True
                 if not ticket.exists:
-                    field['label'] = 'Assign to'
+                    field['label'] = _('Assign to')
                     if 'TICKET_MODIFY' in req.perm(ticket.resource):
                         field['skip'] = False
             elif name == 'milestone':
@@ -1126,6 +1126,8 @@
             field.setdefault('optional', False)
             field.setdefault('options', [])
             field.setdefault('skip', False)
+            # translate field labels
+            field['label'] = _(field['label'])
             fields.append(field)
         return fields
         
--- F:\soft\Tools\PM\trac\Trac-0.11.1\trac\timeline\web_ui.py 
+++ F:\projects\trac-dev\i18n\Trac-0.11.1\trac\timeline\web_ui.py 
@@ -206,7 +206,7 @@
             add_link(req, 'next', req.href.timeline(from_=next_start,
                                                     daysback=daysback),
                      _('Next period'))
-        prevnext_nav(req, 'Period')
+        prevnext_nav(req, _('Period'))
         
         return 'timeline.html', data, None
 
@@ -318,3 +318,4 @@
                   exc_name, ': ', to_unicode(exc), class_='message'),
             tag.p('You may want to see the other kind of events from the ',
                   tag.a('Timeline', href=href))))
+ 

--- F:\soft\Tools\PM\trac\Trac-0.11.1\trac\ticket\templates\query.html 
+++ F:\projects\trac-dev\i18n\Trac-0.11.1\trac\ticket\templates\query.html 
@@ -51,7 +51,7 @@
                     <tr class="${field_name}" py:if="multiline or constraint_idx == 0">
                       <py:choose test="constraint_idx">
                         <py:when test="0">
-                          <th scope="row"><label>$field.label</label></th>
+                          <th scope="row"><label>${_(field.label)}</label></th>
                           <td py:if="field.type not in ('radio', 'checkbox')" class="mode">
                             <select name="${field_name}_mode">
                               <option py:for="mode in modes[field.type]" value="$mode.value"
@@ -122,7 +122,7 @@
                             disabled="${(field.type == 'radio' and
                                          field_name in constraints and
                                          len(constraints[field_name])) or None}">
-                      ${field.label}
+                      ${_(field.label)}
                     </option>
                   </select>
                   <input type="submit" name="add" value="+" />
@@ -141,7 +141,7 @@
                 <input type="checkbox" name="col" value="$column"
                        checked="${any([(value == column) for value in col])
                                   and 'checked' or None}" />
-                ${labels.get(column, column or 'none')}
+                ${_(labels.get(column, column or 'none'))}
               </label>
             </py:for>
           </div>
@@ -154,7 +154,7 @@
             <option py:for="field_name, field in fields.items()"
                     py:if="field.type in ('select', 'radio') or field_name in ('owner', 'reporter')"
                     selected="${field_name == query.group or None}"
-                    value="${field_name}">${field.label}</option>
+                    value="${field_name}">${_(field.label)}</option>
           </select>
           <input type="checkbox" name="groupdesc" id="groupdesc"
                  checked="${query.groupdesc or None}" />
@@ -167,7 +167,7 @@
           <py:for each="column in all_textareas">
             <label><input type="checkbox" name="row" value="$column"
                 checked="${any([(value == column) for value in row]) and 'checked' or None}" />
-            ${labels.get(column, column or 'none')}</label>
+            ${_(labels.get(column, column or 'none'))}</label>
           </py:for>
         </p>
 
@@ -188,7 +188,7 @@
       <script type="text/javascript">
         var properties={
         <py:for each="(field_name, field), sep in separated(fields.iteritems())">
-          $field_name: { type: "$field.type", label: "$field.label"
+          $field_name: { type: "$field.type", label: "${_(field.label)}"
           <py:if test="'options' in field">, options: [
             <py:for each="option, sep in separated(field.options)">"$option"$sep
             </py:for>]

--- F:\soft\Tools\PM\trac\Trac-0.11.1\trac\ticket\templates\query_results.html 
+++ F:\projects\trac-dev\i18n\Trac-0.11.1\trac\ticket\templates\query_results.html 
@@ -38,7 +38,7 @@
           <th py:for="header in headers"
             class="$header.name${query.order == header.name and (query.desc and ' desc' or ' asc') or ''}">
             <a title="Sort by $header.label${query.order == header.name and not query.desc and ' (descending)' or ''}"
-              href="$header.href">${header.label}</a>
+              href="$header.href">${_(header.label)}</a>
           </th>
         </tr>
       </thead>

--- F:\soft\Tools\PM\trac\Trac-0.11.1\trac\ticket\templates\report_view.html 
+++ F:\projects\trac-dev\i18n\Trac-0.11.1\trac\ticket\templates\report_view.html 
@@ -57,7 +57,7 @@
                 <a py:strip="not sorting_enabled"
                    py:with="filtered_args = dict([(k,v) for k,v in args.items() if k not in ('sort', 'asc')])"
                   href="${href.report(report.id, sort=header.col, asc=not header.asc and '1' or '0', **filtered_args)}">
-                  $header.title
+                  ${_(header.title)}
                 </a>
               </th>
             </tr>

--- F:\soft\Tools\PM\trac\Trac-0.11.1\trac\timeline\templates\timeline.html 
+++ F:\projects\trac-dev\i18n\Trac-0.11.1\trac\timeline\templates\timeline.html 
@@ -32,7 +32,7 @@
       </form>
 
       <py:for each="day, events in groupby(events, key=lambda e: format_date(e.date))">
-        <h2>${day}: ${day == today and 'Today' or day == yesterday and 'Yesterday' or None}</h2>
+        <h2>${day}: ${day == today and _('Today') or day == yesterday and _('Yesterday') or None}</h2>
         <dl>
           <py:for each="event in events"
             py:with="highlight = precision and precisedate and timedelta(0) &lt;= (event.date - precisedate) &lt; precision">

