Edgewall Software

Ticket #7858: i18n_udiff.patch

File i18n_udiff.patch, 9.4 KB (added by olemis@…, 3 years ago)

The aforementioned patch ;)

  • \Trac-0.11.1\trac\ticket\web_ui.py

    old new  
    10621062            elif name == 'owner': 
    10631063                field['skip'] = True 
    10641064                if not ticket.exists: 
    1065                     field['label'] = 'Assign to' 
     1065                    field['label'] = _('Assign to') 
    10661066                    if 'TICKET_MODIFY' in req.perm(ticket.resource): 
    10671067                        field['skip'] = False 
    10681068            elif name == 'milestone': 
     
    11261126            field.setdefault('optional', False) 
    11271127            field.setdefault('options', []) 
    11281128            field.setdefault('skip', False) 
     1129            # translate field labels 
     1130            field['label'] = _(field['label']) 
    11291131            fields.append(field) 
    11301132        return fields 
    11311133         
  • \Trac-0.11.1\trac\timeline\web_ui.py

    old new  
    206206            add_link(req, 'next', req.href.timeline(from_=next_start, 
    207207                                                    daysback=daysback), 
    208208                     _('Next period')) 
    209         prevnext_nav(req, 'Period') 
     209        prevnext_nav(req, _('Period')) 
    210210         
    211211        return 'timeline.html', data, None 
    212212 
     
    318318                  exc_name, ': ', to_unicode(exc), class_='message'), 
    319319            tag.p('You may want to see the other kind of events from the ', 
    320320                  tag.a('Timeline', href=href)))) 
     321  
  • \Trac-0.11.1\trac\util\translation.py

    old new  
    1919 
    2020__all__ = ['gettext', 'ngettext', 'gettext_noop', 'ngettext_noop'] 
    2121 
     22__gettext = lambda msg: msg 
     23 
     24def __ngettext(singular, plural, num): 
     25    if num == 1: 
     26        return singular 
     27    else: 
     28        return plural 
     29     
     30 
    2231def gettext_noop(string, **kwargs): 
    23     retval = string 
     32    retval = __gettext(string) 
    2433    if kwargs: 
    2534        retval %= kwargs 
    2635    return retval 
     
    2837gettext = _ = gettext_noop 
    2938 
    3039def ngettext_noop(singular, plural, num, **kwargs): 
    31     if num == 1: 
    32         retval = singular 
    33     else: 
    34         retval = plural 
     40    retval = __ngettext(singular, plural, num) 
    3541    kwargs.setdefault('num', num) 
    3642    return retval % kwargs 
    3743ngettext = ngettext_noop 
  • \Trac-0.11.1\trac\web\main.py

    old new  
    349349            if not env_name: 
    350350                # No specific environment requested, so render an environment 
    351351                # index page 
     352                req = Request(environ, start_response) 
     353                action = req.args.get('action', None) 
     354                if action:      # None or empty are not considered 
     355                   handler_cfg = os.getenv('TRAC_GLOBAL_ACTIONS') 
     356                   if handler_cfg is not None: 
     357                       prefix = action + '=' 
     358                       if handler_cfg.startswith(prefix): 
     359                           i = 0 
     360                       else: 
     361                           prefix = ';' + prefix 
     362                           i = handler_cfg.find(prefix) 
     363                       if i != -1: 
     364                           i+= len(prefix) 
     365                           handler_name = handler_cfg[i: \ 
     366                                   handler_cfg.find(';', i)] 
     367                           mod_name, attr_nm = handler_name.rsplit( \ 
     368                                   '.', 1) 
     369                           try: 
     370                               __import__(mod_name, {}, None, \ 
     371                                       [attr_nm]) 
     372                               mod = sys.modules[mod_name] 
     373                               handler = getattr(mod, attr_nm) 
     374                               return handler(req, action,  
     375                                            env_parent_dir, env_paths) 
     376                           except RequestDone: 
     377                               return [] 
     378                           except : 
     379                               exc_info = sys.exc_info() 
     380                               from traceback import format_exc 
     381                               write = start_response('500 Internal server error', [], exc_info) 
     382                               write(format_exc()) 
     383                               return [] 
     384                 
    352385                send_project_index(environ, start_response, env_parent_dir, 
    353386                                   env_paths) 
    354387                return [] 
  • \Trac-0.11.1\trac\ticket\templates\query.html

    old new  
    5151                    <tr class="${field_name}" py:if="multiline or constraint_idx == 0"> 
    5252                      <py:choose test="constraint_idx"> 
    5353                        <py:when test="0"> 
    54                           <th scope="row"><label>$field.label</label></th> 
     54                          <th scope="row"><label>${_(field.label)}</label></th> 
    5555                          <td py:if="field.type not in ('radio', 'checkbox')" class="mode"> 
    5656                            <select name="${field_name}_mode"> 
    5757                              <option py:for="mode in modes[field.type]" value="$mode.value" 
     
    122122                            disabled="${(field.type == 'radio' and 
    123123                                         field_name in constraints and 
    124124                                         len(constraints[field_name])) or None}"> 
    125                       ${field.label} 
     125                      ${_(field.label)} 
    126126                    </option> 
    127127                  </select> 
    128128                  <input type="submit" name="add" value="+" /> 
     
    141141                <input type="checkbox" name="col" value="$column" 
    142142                       checked="${any([(value == column) for value in col]) 
    143143                                  and 'checked' or None}" /> 
    144                 ${labels.get(column, column or 'none')} 
     144                ${_(labels.get(column, column or 'none'))} 
    145145              </label> 
    146146            </py:for> 
    147147          </div> 
     
    154154            <option py:for="field_name, field in fields.items()" 
    155155                    py:if="field.type in ('select', 'radio') or field_name in ('owner', 'reporter')" 
    156156                    selected="${field_name == query.group or None}" 
    157                     value="${field_name}">${field.label}</option> 
     157                    value="${field_name}">${_(field.label)}</option> 
    158158          </select> 
    159159          <input type="checkbox" name="groupdesc" id="groupdesc" 
    160160                 checked="${query.groupdesc or None}" /> 
     
    167167          <py:for each="column in all_textareas"> 
    168168            <label><input type="checkbox" name="row" value="$column" 
    169169                checked="${any([(value == column) for value in row]) and 'checked' or None}" /> 
    170             ${labels.get(column, column or 'none')}</label> 
     170            ${_(labels.get(column, column or 'none'))}</label> 
    171171          </py:for> 
    172172        </p> 
    173173 
     
    188188      <script type="text/javascript"> 
    189189        var properties={ 
    190190        <py:for each="(field_name, field), sep in separated(fields.iteritems())"> 
    191           $field_name: { type: "$field.type", label: "$field.label" 
     191          $field_name: { type: "$field.type", label: "${_(field.label)}" 
    192192          <py:if test="'options' in field">, options: [ 
    193193            <py:for each="option, sep in separated(field.options)">"$option"$sep 
    194194            </py:for>] 
  • \Trac-0.11.1\trac\ticket\templates\query_results.html

    old new  
    3838          <th py:for="header in headers" 
    3939            class="$header.name${query.order == header.name and (query.desc and ' desc' or ' asc') or ''}"> 
    4040            <a title="Sort by $header.label${query.order == header.name and not query.desc and ' (descending)' or ''}" 
    41               href="$header.href">${header.label}</a> 
     41              href="$header.href">${_(header.label)}</a> 
    4242          </th> 
    4343        </tr> 
    4444      </thead> 
  • \Trac-0.11.1\trac\ticket\templates\report_view.html

    old new  
    5757                <a py:strip="not sorting_enabled" 
    5858                   py:with="filtered_args = dict([(k,v) for k,v in args.items() if k not in ('sort', 'asc')])" 
    5959                  href="${href.report(report.id, sort=header.col, asc=not header.asc and '1' or '0', **filtered_args)}"> 
    60                   $header.title 
     60                  ${_(header.title)} 
    6161                </a> 
    6262              </th> 
    6363            </tr> 
  • \Trac-0.11.1\trac\timeline\templates\timeline.html

    old new  
    3232      </form> 
    3333 
    3434      <py:for each="day, events in groupby(events, key=lambda e: format_date(e.date))"> 
    35         <h2>${day}: ${day == today and 'Today' or day == yesterday and 'Yesterday' or None}</h2> 
     35        <h2>${day}: ${day == today and _('Today') or day == yesterday and _('Yesterday') or None}</h2> 
    3636        <dl> 
    3737          <py:for each="event in events" 
    3838            py:with="highlight = precision and precisedate and timedelta(0) &lt;= (event.date - precisedate) &lt; precision">