Changeset 106
- Timestamp:
- 05/03/08 21:38:55 (7 months ago)
- Files:
-
- trunk/trac/setup.cfg (modified) (1 diff)
- trunk/trac/setup.py (modified) (4 diffs)
- trunk/trac/THANKS (modified) (6 diffs)
- trunk/trac/trac/admin/templates/admin_components.html (modified) (2 diffs)
- trunk/trac/trac/admin/templates/admin_milestones.html (modified) (2 diffs)
- trunk/trac/trac/admin/templates/admin_versions.html (modified) (2 diffs)
- trunk/trac/trac/core.py (modified) (1 diff)
- trunk/trac/trac/db/api.py (modified) (2 diffs)
- trunk/trac/trac/db/mysql_backend.py (modified) (1 diff)
- trunk/trac/trac/db/pool.py (modified) (1 diff)
- trunk/trac/trac/db/sqlite_backend.py (modified) (3 diffs)
- trunk/trac/trac/locale (added)
- trunk/trac/trac/locale/cs_CZ (added)
- trunk/trac/trac/locale/cs_CZ/LC_MESSAGES (added)
- trunk/trac/trac/locale/cs_CZ/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/cy_GB (added)
- trunk/trac/trac/locale/cy_GB/LC_MESSAGES (added)
- trunk/trac/trac/locale/cy_GB/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/de_DE (added)
- trunk/trac/trac/locale/de_DE/LC_MESSAGES (added)
- trunk/trac/trac/locale/de_DE/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/el_GR (added)
- trunk/trac/trac/locale/el_GR/LC_MESSAGES (added)
- trunk/trac/trac/locale/el_GR/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/en_US (added)
- trunk/trac/trac/locale/en_US/LC_MESSAGES (added)
- trunk/trac/trac/locale/en_US/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/es_AR (added)
- trunk/trac/trac/locale/es_AR/LC_MESSAGES (added)
- trunk/trac/trac/locale/es_AR/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/es_ES (added)
- trunk/trac/trac/locale/es_ES/LC_MESSAGES (added)
- trunk/trac/trac/locale/es_ES/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/fa_IR (added)
- trunk/trac/trac/locale/fa_IR/LC_MESSAGES (added)
- trunk/trac/trac/locale/fa_IR/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/fi_FI (added)
- trunk/trac/trac/locale/fi_FI/LC_MESSAGES (added)
- trunk/trac/trac/locale/fi_FI/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/fr_FR (added)
- trunk/trac/trac/locale/fr_FR/LC_MESSAGES (added)
- trunk/trac/trac/locale/fr_FR/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/hu_HU (added)
- trunk/trac/trac/locale/hu_HU/LC_MESSAGES (added)
- trunk/trac/trac/locale/hu_HU/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/it_IT (added)
- trunk/trac/trac/locale/it_IT/LC_MESSAGES (added)
- trunk/trac/trac/locale/it_IT/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/ja_JP (added)
- trunk/trac/trac/locale/ja_JP/LC_MESSAGES (added)
- trunk/trac/trac/locale/ja_JP/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/ko_KR (added)
- trunk/trac/trac/locale/ko_KR/LC_MESSAGES (added)
- trunk/trac/trac/locale/ko_KR/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/lv_LV (added)
- trunk/trac/trac/locale/lv_LV/LC_MESSAGES (added)
- trunk/trac/trac/locale/lv_LV/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/messages.pot (added)
- trunk/trac/trac/locale/nb_NO (added)
- trunk/trac/trac/locale/nb_NO/LC_MESSAGES (added)
- trunk/trac/trac/locale/nb_NO/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/nl_NL (added)
- trunk/trac/trac/locale/nl_NL/LC_MESSAGES (added)
- trunk/trac/trac/locale/nl_NL/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/pl_PL (added)
- trunk/trac/trac/locale/pl_PL/LC_MESSAGES (added)
- trunk/trac/trac/locale/pl_PL/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/pt_BR (added)
- trunk/trac/trac/locale/pt_BR/LC_MESSAGES (added)
- trunk/trac/trac/locale/pt_BR/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/pt_PT (added)
- trunk/trac/trac/locale/pt_PT/LC_MESSAGES (added)
- trunk/trac/trac/locale/pt_PT/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/ru_RU (added)
- trunk/trac/trac/locale/ru_RU/LC_MESSAGES (added)
- trunk/trac/trac/locale/ru_RU/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/sv_SE (added)
- trunk/trac/trac/locale/sv_SE/LC_MESSAGES (added)
- trunk/trac/trac/locale/sv_SE/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/th_TH (added)
- trunk/trac/trac/locale/th_TH/LC_MESSAGES (added)
- trunk/trac/trac/locale/th_TH/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/tr_TR (added)
- trunk/trac/trac/locale/tr_TR/LC_MESSAGES (added)
- trunk/trac/trac/locale/tr_TR/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/vi_VN (added)
- trunk/trac/trac/locale/vi_VN/LC_MESSAGES (added)
- trunk/trac/trac/locale/vi_VN/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/zh_CN (added)
- trunk/trac/trac/locale/zh_CN/LC_MESSAGES (added)
- trunk/trac/trac/locale/zh_CN/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/locale/zh_TW (added)
- trunk/trac/trac/locale/zh_TW/LC_MESSAGES (added)
- trunk/trac/trac/locale/zh_TW/LC_MESSAGES/messages.po (added)
- trunk/trac/trac/mimeview/tests/patch.py (modified) (1 diff)
- trunk/trac/trac/prefs/templates/prefs_datetime.html (modified) (1 diff)
- trunk/trac/trac/prefs/templates/prefs_language.html (added)
- trunk/trac/trac/prefs/web_ui.py (modified) (4 diffs)
- trunk/trac/trac/resource.py (modified) (1 diff)
- trunk/trac/trac/ticket/admin.py (modified) (4 diffs)
- trunk/trac/trac/ticket/default_workflow.py (modified) (7 diffs)
- trunk/trac/trac/ticket/model.py (modified) (3 diffs)
- trunk/trac/trac/ticket/roadmap.py (modified) (2 diffs)
- trunk/trac/trac/ticket/templates/milestone_edit.html (modified) (2 diffs)
- trunk/trac/trac/ticket/templates/report_edit.html (modified) (2 diffs)
- trunk/trac/trac/ticket/templates/ticket.html (modified) (2 diffs)
- trunk/trac/trac/ticket/tests/conversion.py (modified) (1 diff)
- trunk/trac/trac/util/translation.py (modified) (3 diffs)
- trunk/trac/trac/web/api.py (modified) (3 diffs)
- trunk/trac/trac/web/auth.py (modified) (2 diffs)
- trunk/trac/trac/web/chrome.py (modified) (5 diffs)
- trunk/trac/trac/web/main.py (modified) (5 diffs)
- trunk/trac/trac/web/tests/api.py (modified) (1 diff)
- trunk/trac/trac/wiki/templates/wiki_edit.html (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/trac/setup.cfg
r46 r106 5 5 [bdist_wininst] 6 6 bitmap = setup_wininst.bmp 7 8 [extract_messages] 9 add_comments = TRANSLATOR: 10 copyright_holder = Edgewall Software 11 msgid_bugs_address = trac-dev@googlegroups.com 12 output_file = trac/locale/messages.pot 13 14 [init_catalog] 15 input_file = trac/locale/messages.pot 16 output_dir = trac/locale 17 18 [compile_catalog] 19 directory = trac/locale 20 21 [update_catalog] 22 input_file = trac/locale/messages.pot 23 output_dir = trac/locale trunk/trac/setup.py
r103 r106 14 14 15 15 from setuptools import setup, find_packages 16 17 extra = {} 18 19 try: 20 import babel 21 extra['message_extractors'] = { 22 'trac': [ 23 ('**.py', 'python', None), 24 ('**/templates/**.html', 'genshi', None), 25 ('**/templates/**.txt', 'genshi', { 26 'template_class': 'genshi.template:TextTemplate' 27 }) 28 ], 29 } 30 except ImportError: 31 pass 16 32 17 33 setup( … … 45 61 '': ['templates/*'], 46 62 'trac': ['htdocs/*.*', 'htdocs/README', 'htdocs/js/*', 'htdocs/css/*', 47 'htdocs/guide/*' ],63 'htdocs/guide/*', 'locale/*.*', 'locale/*/LC_MESSAGES/*.*'], 48 64 'trac.wiki': ['default-pages/*'], 49 65 'trac.ticket': ['workflows/*.ini'], … … 57 73 'Genshi>=0.4.1' 58 74 ], 59 60 75 extras_require = { 76 'Babel': ['Babel>=0.9.2'], 61 77 'Pygments': ['Pygments>=0.6'], 62 78 'reST': ['docutils>=0.3'], … … 99 115 trac.wiki.web_ui = trac.wiki.web_ui 100 116 """, 117 118 **extra 101 119 ) trunk/trac/THANKS
r57 r106 10 10 * Eli Carter eli.carter@commprove.com 11 11 * Michele Cella 12 * Sergey S. Chernov sergeych@tancher.com 12 13 * Felix Colins felix@keyghost.com 13 14 * Wesley Crucius wcrucius@sandc.com … … 21 22 * Shun-ichi Goto gotoh@taiyo.co.jp 22 23 * Chris Green cmgreen@uab.edu 24 * Gruffudd Prys cbs201@bangor.ac.uk 23 25 * Mikael Hallendal micke@imendio.com 24 26 * Stephen Hansen shansen@advpubtech.com … … 27 29 * Tim Hatch trac@timhatch.com 28 30 * Michael Hope michael.hope@hamjet.co.nz 31 * Zheng Hui Hu huzhengh@gmail.com 29 32 * Richard Hult richard@imendio.com 30 33 * Paul Irish paul.irishEWWSPAM@gmail.com … … 32 35 * Waldemar Kornewald wkornew@gmx.net 33 36 * Nuutti Kotivuori naked@iki.fi 37 * Jasmin Lapalme 34 38 * Ian Leader ian.leader@line.co.uk 35 39 * Christopher Lenz cmlenz@gmx.de 40 * Richard Liao 36 41 * Ivo Looser ivo.looser@gmail.com 37 42 * Rui Lopes rgl ruilopes com … … 40 45 * James Moger jamesm@transonic.com 41 46 * Tim Moloney moloney@mrsl.com 47 * Ramiro Morales cramm0@gmail.com 48 * Manuel Muradas 42 49 * Jennifer Murtell jen@jmurtell.com 43 50 * Jacob Norda jacobnorda@gmail.com 51 * Seungseo Park sseopark@gmail.com 52 * Jeroen Ruigrok van der Werven asmodai@in-nomine.org 44 53 * Juracy Filho juracy@gmail.com 45 54 * Cap Petschulat cap@cdres.com … … 59 68 * Ludvig Strigeus 60 69 * Markus Tacker m@tacker.org 70 * Kim Taedong tdkim@unimo.co.kr 71 * Kyosuke Takayama support@mc.neweb.ne.jp 72 * Rayentray Tappa 61 73 * Alec Thomas alec@swapoff.org 62 74 * Jani Tiainen redetin@luukku.com 75 * Ghassem Tofighi tofighi@gmail.com 63 76 * Zilvinas Valinskas zilvinas@gemtek.lt 64 77 * Jason Vasquez jason@mugfu.com 78 * Leslie H. Watter 65 79 * Jeff Weiss trac@jeffweiss.org 66 80 * Dmitry Yusupov dmitry_yus@yahoo.com trunk/trac/trac/admin/templates/admin_components.html
r103 r106 4 4 <html xmlns="http://www.w3.org/1999/xhtml" 5 5 xmlns:xi="http://www.w3.org/2001/XInclude" 6 xmlns:py="http://genshi.edgewall.org/"> 6 xmlns:py="http://genshi.edgewall.org/" 7 xmlns:i18n="http://genshi.edgewall.org/i18n"> 7 8 <xi:include href="admin.html" /> 8 9 <head> … … 39 40 <div class="field"> 40 41 <fieldset class="iefix"> 41 <label for="description" >42 <label for="description" i18n:msg=""> 42 43 Description (you may use 43 44 <a tabindex="42" href="${href.wiki('WikiFormatting')}">WikiFormatting</a> trunk/trac/trac/admin/templates/admin_milestones.html
r103 r106 4 4 <html xmlns="http://www.w3.org/1999/xhtml" 5 5 xmlns:xi="http://www.w3.org/2001/XInclude" 6 xmlns:py="http://genshi.edgewall.org/"> 6 xmlns:py="http://genshi.edgewall.org/" 7 xmlns:i18n="http://genshi.edgewall.org/i18n"> 7 8 <xi:include href="admin.html" /> 8 9 <head> … … 52 53 <div class="field"> 53 54 <fieldset class="iefix"> 54 <label for="description" >55 <label for="description" i18n:msg=""> 55 56 Description (you may use <a tabindex="42" href="${href.wiki('WikiFormatting')}">WikiFormatting</a> here): 56 57 </label> trunk/trac/trac/admin/templates/admin_versions.html
r103 r106 4 4 <html xmlns="http://www.w3.org/1999/xhtml" 5 5 xmlns:xi="http://www.w3.org/2001/XInclude" 6 xmlns:py="http://genshi.edgewall.org/"> 6 xmlns:py="http://genshi.edgewall.org/" 7 xmlns:i18n="http://genshi.edgewall.org/i18n"> 7 8 <xi:include href="admin.html" /> 8 9 <head> … … 32 33 <div class="field"> 33 34 <fieldset class="iefix"> 34 <label for="description" >35 <label for="description" i18n:msg=""> 35 36 Description (you may use <a tabindex="42" href="${href.wiki('WikiFormatting')}">WikiFormatting</a> here): 36 37 </label> trunk/trac/trac/core.py
r103 r106 39 39 self.show_traceback = show_traceback 40 40 41 def __unicode__(self): 42 return unicode(self.message) 41 43 42 44 class Interface(object): trunk/trac/trac/db/api.py
r46 r106 95 95 connector = candidates.get(scheme, [None])[0] 96 96 if not connector: 97 raise TracError('Unsupported database type "%s"' % scheme) 97 raise TracError(_('Unsupported database type "%(scheme)s"', 98 scheme=scheme)) 98 99 99 100 if scheme == 'sqlite': … … 117 118 path = rest 118 119 else: 119 raise TracError( 'Database connection string must start with '120 'scheme:/')120 raise TracError(_('Database connection string must start with ' 121 'scheme:/')) 121 122 else: 122 123 if not rest.startswith('//'): trunk/trac/trac/db/mysql_backend.py
r103 r106 146 146 vers = tuple([ int(n) for n in cnx.get_server_info().split('.')[:2] ]) 147 147 if vers < (4, 1): 148 raise TracError, 'MySQL servers older than 4.1 are not supported!' 148 raise TracError(_('MySQL servers older than 4.1 are not ' 149 'supported!')) 149 150 cnx.query('SET NAMES %s' % charset) 150 151 cnx.store_result() trunk/trac/trac/db/pool.py
r46 r106 105 105 if timeout: 106 106 if (time.time() - start) >= timeout: 107 raise TimeoutError( 'Unable to get database '108 'connection within %d seconds'109 % timeout)107 raise TimeoutError(_('Unable to get database ' 108 'connection within %(time)d ' 109 'seconds', time=timeout)) 110 110 self._available.wait(timeout) 111 111 else: # Warning: without timeout, Trac *might* hang trunk/trac/trac/db/sqlite_backend.py
r46 r106 129 129 # make the directory to hold the database 130 130 if os.path.exists(path): 131 raise TracError('Database already exists at %s' % path) 131 raise TracError(_('Database already exists at %(path)s', 132 path=path)) 132 133 os.makedirs(os.path.split(path)[0]) 133 134 if isinstance(path, unicode): # needed with 2.4.0 … … 156 157 if path != ':memory:': 157 158 if not os.access(path, os.F_OK): 158 raise TracError( 'Database "%s" not found.' % path)159 raise TracError(_('Database "%(path)s" not found.', path=path)) 159 160 160 161 dbdir = os.path.dirname(path) … … 162 163 not os.access(dbdir, os.R_OK + os.W_OK): 163 164 from getpass import getuser 164 raise TracError( 'The user %s requires read _and_ write ' \165 'permission to the database file %s and the ' \166 'directory it is located in.' \167 % (getuser(),path))165 raise TracError(_('The user %(user)s requires read _and_ write ' 166 'permission to the database file %(path)s ' 167 'and the directory it is located in.', 168 user=getuser(), path=path)) 168 169 169 170 if have_pysqlite == 2: trunk/trac/trac/mimeview/tests/patch.py
r46 r106 32 32 env = EnvironmentStub(enable=[Chrome, PatchRenderer]) 33 33 req = Mock(base_path='',chrome={}, args={}, 34 abs_href=Href('/'), href=Href('/'), 34 abs_href=Href('/'), href=Href('/'), locale='', 35 35 perm=MockPerm(), authname=None, tz=None) 36 36 self.context = Context.from_request(req) trunk/trac/trac/prefs/templates/prefs_datetime.html
r57 r106 35 35 <p class="hint"> 36 36 Note: Universal Co-ordinated Time (UTC) is also known as Greenwich Mean Time (GMT). <br /> 37 A positive offset is used to indicate a timezone at the east of Greenw hich, i.e. ahead of Universal Time.37 A positive offset is used to indicate a timezone at the east of Greenwich, i.e. ahead of Universal Time. 38 38 </p> 39 39 trunk/trac/trac/prefs/web_ui.py
r103 r106 19 19 import re 20 20 21 try: 22 from babel.core import Locale 23 except ImportError: 24 Locale = None 25 21 26 from genshi.builder import tag 22 27 23 28 from trac.core import * 24 29 from trac.prefs.api import IPreferencePanelProvider 30 from trac.util.compat import sorted 25 31 from trac.util.datefmt import all_timezones, get_timezone, localtz 26 from trac.util.translation import _ 32 from trac.util.translation import _, get_available_locales 27 33 from trac.web import HTTPNotFound, IRequestHandler 28 34 from trac.web.chrome import add_stylesheet, INavigationContributor, \ … … 37 43 IRequestHandler, ITemplateProvider) 38 44 39 _form_fields = ['newsid', 'name', 'email', 'tz', ' accesskeys']45 _form_fields = ['newsid', 'name', 'email', 'tz', 'language', 'accesskeys'] 40 46 41 47 # INavigationContributor methods … … 80 86 81 87 def get_preference_panels(self, req): 88 global Locale 82 89 yield (None, _('General')) 83 90 yield ('datetime', _('Date & Time')) 84 91 yield ('keybindings', _('Keyboard Shortcuts')) 92 if Locale: 93 yield ('language', _('Language')) 85 94 if not req.authname or req.authname == 'anonymous': 86 95 yield ('advanced', _('Advanced')) 87 96 88 97 def render_preference_panel(self, req, panel): 98 global Locale 89 99 if req.method == 'POST': 90 100 if 'restore' in req.args: … … 94 104 req.redirect(req.href.prefs(panel or None)) 95 105 96 return 'prefs_%s.html' % (panel or 'general'),{106 data = { 97 107 'settings': {'session': req.session, 'session_id': req.session.sid}, 98 108 'timezones': all_timezones, 'timezone': get_timezone, 99 109 'localtz': localtz 100 110 } 111 112 if Locale: 113 locales = map(Locale.parse, get_available_locales()) 114 languages = sorted([(str(locale).replace('_','-'), 115 locale.display_name) for locale in locales]) 116 data['locales'] = locales 117 data['languages'] = languages 118 119 return 'prefs_%s.html' % (panel or 'general'), data 101 120 102 121 # ITemplateProvider methods trunk/trac/trac/resource.py
r103 r106 314 314 >>> main = Resource('generic', 'Main') 315 315 >>> get_resource_description(env, main) 316 'generic:Main'316 u'generic:Main' 317 317 318 318 >>> get_resource_description(env, main(version=3)) 319 'generic:Main'319 u'generic:Main' 320 320 321 321 >>> get_resource_description(env, main(version=3), format='summary') 322 'generic:Main at version 3'322 u'generic:Main at version 3' 323 323 324 324 """ 325 325 manager = ResourceSystem(env).get_resource_manager(resource.realm) 326 326 if not manager or not hasattr(manager, 'get_resource_description'): 327 name = '%s:%s' % (resource.realm, resource.id)327 name = u'%s:%s' % (resource.realm, resource.id) 328 328 if format == 'summary': 329 329 name += _(' at version %(version)s', version=resource.version) trunk/trac/trac/ticket/admin.py
r103 r106 85 85 req.redirect(req.href.admin(cat, page)) 86 86 else: 87 raise TracError(_('Component %s already exists.') % name) 87 raise TracError(_('Component %(name)s already exists.', 88 name=name)) 88 89 89 90 # Remove components … … 180 181 req.redirect(req.href.admin(cat, page)) 181 182 else: 182 raise TracError(_('Milestone %s already exists.') % name) 183 raise TracError(_('Milestone %(name)s already exists.', 184 name=name)) 183 185 184 186 # Remove milestone … … 259 261 req.redirect(req.href.admin(cat, page)) 260 262 else: 261 raise TracError(_('Version %s already exists.') % name) 263 raise TracError(_('Version %(name)s already exists.', 264 name=name)) 262 265 263 266 # Remove versions … … 337 340 req.redirect(req.href.admin(cat, page)) 338 341 else: 339 raise TracError(_('%s %s already exists') % (self._type.title(), name)) 342 raise TracError(_('%(type)s %(name)s already exists', 343 type=self._type.title(), name=name)) 340 344 341 345 # Remove enums trunk/trac/trac/ticket/default_workflow.py
r103 r106 178 178 allowed_actions = [] 179 179 for action_name, action_info in self.actions.items(): 180 if 'hidden' in action_info['operations']:181 continue182 180 oldstates = action_info['oldstates'] 183 181 if oldstates == ['*'] or status in oldstates: … … 251 249 control.append(tag('to %s ' % owners[0])) 252 250 if ticket['owner'] != owners[0]: 253 hints.append(_("The owner will change to %s") % owners[0]) 251 hints.append(_("The owner will change to %(name)s", 252 name=owners[0])) 254 253 else: 255 254 control.append(tag([_("to "), tag.select( … … 260 259 if 'set_owner_to_self' in operations and \ 261 260 ticket['owner'] != req.authname: 262 hints.append(_("The owner will change to %s") % req.authname) 261 hints.append(_("The owner will change to %(name)s", 262 name=req.authname)) 263 263 if 'set_resolution' in operations: 264 264 if this_action.has_key('set_resolution'): … … 271 271 if len(resolutions) == 1: 272 272 control.append(tag('as %s' % resolutions[0])) 273 hints.append(_("The resolution will be set to % s") %274 resolutions[0])273 hints.append(_("The resolution will be set to %(name)s", 274 name=resolutions[0])) 275 275 else: 276 276 id = action + '_resolve_resolution' … … 286 286 else: 287 287 if status != '*': 288 hints.append(_("Next status will be '% s'") % status)288 hints.append(_("Next status will be '%(name)s'", name=status)) 289 289 return (this_action['name'], tag(*control), '. '.join(hints)) 290 290 … … 327 327 updated['resolution'] = newresolution 328 328 329 # leave_status and hidden are just no-ops here, so we don't look 330 # for them. 329 # leave_status is just a no-op here, so we don't look for it. 331 330 return updated 332 331 … … 362 361 363 362 If state='*' (the default), all actions with the given operation are 364 returned (including those that are 'hidden').363 returned. 365 364 """ 366 365 actions = [(info['default'], action) for action, info trunk/trac/trac/ticket/model.py
r103 r106 360 360 if not row: 361 361 raise ResourceNotFound(_('%(type)s %(name)s does not exist.', 362 type=self.type, name=name))362 type=self.type, name=name)) 363 363 self.value = self._old_value = row[0] 364 364 self.name = self._old_name = name … … 504 504 if not row: 505 505 raise ResourceNotFound(_('Component %(name)s does not exist.', 506 name=name))506 name=name)) 507 507 self.name = self._old_name = name 508 508 self.owner = row[0] or None … … 734 734 if not row: 735 735 raise ResourceNotFound(_('Version %(name)s does not exist.', 736 name=name))736 name=name)) 737 737 self.name = self._old_name = name 738 738 self.time = row[0] and datetime.fromtimestamp(int(row[0]), utc) or None trunk/trac/trac/ticket/roadmap.py
r103 r106 426 426 write_utctime('DTSTAMP', milestone.due) 427 427 write_date('DTSTART', milestone.due) 428 write_prop('SUMMARY', _('Milestone %(name)s') % { 429 'name': milestone.name 430 }) 428 write_prop('SUMMARY', _('Milestone %(name)s', 429 name=milestone.name)) 431 430 write_prop('URL', req.base_url + '/milestone/' + 432 431 milestone.name) … … 446 445 write_prop('RELATED-TO', uid) 447 446 write_date('DUE', milestone.due) 448 write_prop('SUMMARY', _('Ticket #%(num)s: %(summary)s' ) % {449 'num': ticket.id, 'summary': ticket['summary']450 })447 write_prop('SUMMARY', _('Ticket #%(num)s: %(summary)s', 448 num=ticket.id, 449 summary=ticket['summary'])) 451 450 write_prop('URL', req.abs_href.ticket(ticket.id)) 452 451 write_prop('DESCRIPTION', ticket['description']) trunk/trac/trac/ticket/templates/milestone_edit.html
r103 r106 4 4 <html xmlns="http://www.w3.org/1999/xhtml" 5 5 xmlns:py="http://genshi.edgewall.org/" 6 xmlns:i18n="http://genshi.edgewall.org/i18n" 6 7 xmlns:xi="http://www.w3.org/2001/XInclude"> 7 8 <xi:include href="layout.html" /> … … 79 80 <div class="field"> 80 81 <fieldset class="iefix"> 81 <label for="description" >Description (you may use <a tabindex="42"82 <label for="description" i18n:msg="">Description (you may use <a tabindex="42" 82 83 href="${href.wiki('WikiFormatting')}">WikiFormatting</a> here):</label> 83 84 <p><textarea id="description" name="description" class="wikitext" rows="10" cols="78"> trunk/trac/trac/ticket/templates/report_edit.html
r103 r106 4 4 <html xmlns="http://www.w3.org/1999/xhtml" 5 5 xmlns:py="http://genshi.edgewall.org/" 6 xmlns:i18n="http://genshi.edgewall.org/i18n" 6 7 xmlns:xi="http://www.w3.org/2001/XInclude"> 7 8 <xi:include href="layout.html" /> … … 22 23 </div> 23 24 <div class="field"> 24 <label for="description" >25 <label for="description" i18n:msg=""> 25 26 Description: (you may use <a tabindex="42" href="${href.wiki('WikiFormatting')}">WikiFormatting</a> here) 26 27 </label> trunk/trac/trac/ticket/templates/ticket.html
r103 r106 3 3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 4 4 <html xmlns="http://www.w3.org/1999/xhtml" 5 xmlns:xi="http://www.w3.org/2001/XInclude" 5 6 xmlns:py="http://genshi.edgewall.org/" 6 xmlns: xi="http://www.w3.org/2001/XInclude">7 xmlns:i18n="http://genshi.edgewall.org/i18n"> 7 8 <xi:include href="layout.html" /> 8 9 <xi:include href="macros.html" /> … … 257 258 <div py:if="ticket.exists" class="field"> 258 259 <fieldset class="iefix"> 259 <label for="comment" >Comment (you may use260 <label for="comment" i18n:msg="">Comment (you may use 260 261 <a tabindex="42" href="${href.wiki('WikiFormatting')}">WikiFormatting</a> 261 262 here): trunk/trac/trac/ticket/tests/conversion.py
r46 r106 24 24 abs_href=Href('http://example.org/trac.cgi'), 25 25 environ={}, perm=[], authname='-', args={}, tz=None, 26 session=None, form_token=None)26 locale='', session=None, form_token=None) 27 27 28 28 def _create_a_ticket(self): trunk/trac/trac/util/translation.py
r103 r106 12 12 # history and logs, available at http://trac.edgewall.org/log/. 13 13