Changeset 55

Show
Ignore:
Timestamp:
2008年08月30日 17时42分05秒 (4 years ago)
Author:
jiangx
Message:

Fix #10:

  • upgrade to 0.3.0; add requires;
  • update template for pylons 0.9.7
  • webhelpers upgrade from 0.3 to 0.6
  • Babel upgrade to 0.9.4
  • new routing format
  • function tests passed for new routes
  • link_to from webhelpers.html is different with link_to from webhelpers.rails
  • scriptaculous and prototype no longer maintain by pylons
  • do not check against authz file using svn swig bidings if ImportError?
  • bugfix: wrong tuple for role_list_opts
  • import literal

Push info:

    ------------------------------------------------------------------------
    r118 | jiangxin | 2008-08-30 16:57:18 +0800 (Sat, 30 Aug 2008) | 1 line

    if svn swig binding not exist, ignore testcase
    ------------------------------------------------------------------------
    r117 | jiangxin | 2008-08-30 16:33:53 +0800 (Sat, 30 Aug 2008) | 1 line

    function tests passed for new routes
    ------------------------------------------------------------------------
    r113 | jiangxin | 2008-08-30 15:47:39 +0800 (Sat, 30 Aug 2008) | 1 line

    upgrade to 0.3.0; add requires;
    ------------------------------------------------------------------------
    r112 | jiangxin | 2008-08-30 14:38:00 +0800 (Sat, 30 Aug 2008) | 1 line

    link_to from webhelpers.html is different with link_to from webhelpers.rails
    ------------------------------------------------------------------------
    r108 | jiangxin | 2008-08-30 14:02:36 +0800 (Sat, 30 Aug 2008) | 1 line

    do not check against authz file using svn swig bidings if ImportError
    ------------------------------------------------------------------------
    r106 | jiangxin | 2008-08-30 13:15:05 +0800 (Sat, 30 Aug 2008) | 1 line

    Babel upgrade to 0.9.4
    ------------------------------------------------------------------------
    r104 | jiangxin | 2008-08-30 00:00:31 +0800 (Sat, 30 Aug 2008) | 1 line

    scriptaculous and prototype no longer maintain by pylons
    ------------------------------------------------------------------------
    r103 | jiangxin | 2008-08-29 23:59:50 +0800 (Fri, 29 Aug 2008) | 1 line

    bugfix: wrong tuple for role_list_opts
    ------------------------------------------------------------------------
    r102 | jiangxin | 2008-08-29 23:37:49 +0800 (Fri, 29 Aug 2008) | 1 line

    new routing format
    ------------------------------------------------------------------------
    r101 | jiangxin | 2008-08-29 23:00:42 +0800 (Fri, 29 Aug 2008) | 1 line

    import literal
    ------------------------------------------------------------------------
    r100 | jiangxin | 2008-08-29 22:53:08 +0800 (Fri, 29 Aug 2008) | 1 line

    update template for pylons 0.9.7
    ------------------------------------------------------------------------
    r99 | jiangxin | 2008-08-29 21:50:12 +0800 (Fri, 29 Aug 2008) | 1 line

    webhelpers upgrade from 0.3 to 0.6
    ------------------------------------------------------------------------
Location:
trunk
Files:
11 added
34 modified

Legend:

Unmodified
Added
Removed
  • trunk/MANIFEST.in

    r4 r55  
    11recursive-include pysvnmanager/public * 
    22recursive-include pysvnmanager/templates * 
    3 recursive-include pysvnmanager/config * 
     3recursive-include pysvnmanager/config *.py *.in 
    44recursive-include pysvnmanager/i18n * 
     5recursive-include pysvnmanager/hooks *.py 
     6recursive-include pysvnmanager/hooks/init/hook* * 
  • trunk/development.ini

    r45 r55  
    6464# Logging configuration 
    6565[loggers] 
    66 keys = root, pysvnmanager 
     66keys = root, routes, pysvnmanager 
    6767 
    6868[handlers] 
     
    7575level = INFO 
    7676handlers = console 
     77 
     78[logger_routes] 
     79level = INFO 
     80handlers = 
     81qualname = routes.middleware 
     82# "level = DEBUG" logs the route matched and routing variables. 
    7783 
    7884[logger_pysvnmanager] 
  • trunk/docs/index.txt

    r4 r55  
    99    setup.py pudge 
    1010 
    11 For this to work you will need to download and install ``buildutils`` and 
    12 ``pudge``. 
     11For this to work you will need to download and install `buildutils`_, 
     12`pudge`_, and `pygments`_.  The ``pudge`` command is disabled by 
     13default; to ativate it in your project, run:: 
     14 
     15    setup.py addcommand -p buildutils.pudge_command 
     16 
     17.. _buildutils: http://pypi.python.org/pypi/buildutils 
     18.. _pudge: http://pudge.lesscode.org/ 
     19.. _pygments: http://pygments.org/ 
  • trunk/pySvnManager.egg-info/SOURCES.txt

    r48 r55  
    22README.txt 
    33development.ini 
     4ez_setup.py 
    45init.d 
    56setup.cfg 
     
    136137pysvnmanager/public/img/icon-error.png 
    137138pysvnmanager/public/img/icon-info.png 
     139pysvnmanager/public/javascripts/builder.js 
     140pysvnmanager/public/javascripts/controls.js 
     141pysvnmanager/public/javascripts/dragdrop.js 
     142pysvnmanager/public/javascripts/effects.js 
     143pysvnmanager/public/javascripts/prototype.js 
     144pysvnmanager/public/javascripts/scriptaculous.js 
     145pysvnmanager/public/javascripts/slider.js 
     146pysvnmanager/public/javascripts/sound.js 
     147pysvnmanager/public/javascripts/unittest.js 
    138148pysvnmanager/templates/auth_failed.mako 
    139149pysvnmanager/templates/base.mako 
  • trunk/pySvnManager.egg-info/paster_plugins.txt

    r6 r55  
     1PasteScript 
    12Pylons 
    2 WebHelpers 
    3 PasteScript 
  • trunk/pySvnManager.egg-info/requires.txt

    r49 r55  
    1 Pylons>=0.9.6.2 
     1Pylons>=0.9.7rc1 
    22docutils 
     3Babel 
  • trunk/pysvnmanager/config/environment.py

    r4 r55  
    33import os 
    44 
     5from mako.lookup import TemplateLookup 
    56from pylons import config 
    67 
     
    2122 
    2223    # Initialize config with the basic options 
    23     config.init_app(global_conf, app_conf, package='pysvnmanager', 
    24                     template_engine='mako', paths=paths) 
     24    config.init_app(global_conf, app_conf, package='pysvnmanager', paths=paths) 
    2525 
    2626    config['routes.map'] = make_map() 
    27     config['pylons.g'] = app_globals.Globals() 
     27    config['pylons.app_globals'] = app_globals.Globals() 
    2828    config['pylons.h'] = pysvnmanager.lib.helpers 
    2929 
    30     # Customize templating options via this variable 
    31     tmpl_options = config['buffet.template_options'] 
    32      
    33     # 设置缺省编码为 utf8 
    34     tmpl_options['mako.input_encoding'] = 'UTF-8' 
    35     tmpl_options['mako.output_encoding'] = 'UTF-8' 
    36     #tmpl_options['mako.default_filters'] = ['decode.utf8'] 
    37  
    38  
     30    # Create the Mako TemplateLookup, with the default auto-escaping 
     31    config['pylons.app_globals'].mako_lookup = TemplateLookup( 
     32        directories=paths['templates'], 
     33        module_directory=os.path.join(app_conf['cache_dir'], 'templates'), 
     34        input_encoding='utf-8', output_encoding='utf-8', 
     35        imports=['from webhelpers.html import escape'], 
     36        ) 
     37        #default_filters=['escape']) 
     38         
    3939    # CONFIGURATION OPTIONS HERE (note: all config options will override 
    4040    # any Pylons config options) 
  • trunk/pysvnmanager/config/middleware.py

    r4 r55  
    11"""Pylons middleware initialization""" 
     2from beaker.middleware import CacheMiddleware, SessionMiddleware 
    23from paste.cascade import Cascade 
    34from paste.registry import RegistryManager 
    45from paste.urlparser import StaticURLParser 
    56from paste.deploy.converters import asbool 
    6  
    77from pylons import config 
    8 from pylons.error import error_template 
    9 from pylons.middleware import error_mapper, ErrorDocuments, ErrorHandler, \ 
    10     StaticJavascripts 
     8from pylons.middleware import ErrorHandler, StatusCodeRedirect 
    119from pylons.wsgiapp import PylonsApp 
     10from routes.middleware import RoutesMiddleware 
    1211 
    1312from pysvnmanager.config.environment import load_environment 
     
    2726 
    2827    ``app_conf`` 
    29         The application's local configuration. Normally specified in the 
    30         [app:<name>] section of the Paste ini file (where <name> 
     28        The application's local configuration. Normally specified in 
     29        the [app:<name>] section of the Paste ini file (where <name> 
    3130        defaults to main). 
     31 
    3232    """ 
    3333    # Configure the Pylons environment 
     
    3636    # The Pylons WSGI app 
    3737    app = PylonsApp() 
    38  
     38     
    3939    # CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares) 
    40  
     40     
     41    # Routing/Session/Cache Middleware 
     42    app = RoutesMiddleware(app, config['routes.map']) 
     43    app = SessionMiddleware(app, config) 
     44    app = CacheMiddleware(app, config) 
     45     
    4146    if asbool(full_stack): 
    4247        # Handle Python exceptions 
    43         app = ErrorHandler(app, global_conf, error_template=error_template, 
    44                            **config['pylons.errorware']) 
     48        app = ErrorHandler(app, global_conf, **config['pylons.errorware']) 
    4549 
    4650        # Display error documents for 401, 403, 404 status codes (and 
    4751        # 500 when debug is disabled) 
    48         app = ErrorDocuments(app, global_conf, mapper=error_mapper, **app_conf) 
     52        if asbool(config['debug']): 
     53            app = StatusCodeRedirect(app) 
     54        else: 
     55            app = StatusCodeRedirect(app, [400, 401, 403, 404, 500]) 
    4956 
    5057    # Establish the Registry for this application 
    5158    app = RegistryManager(app) 
    5259 
    53     # Static files 
    54     javascripts_app = StaticJavascripts() 
     60    # Static files (If running in production, and Apache or another web  
     61    # server is handling this static content, remove the following 3 lines) 
    5562    static_app = StaticURLParser(config['pylons.paths']['static_files']) 
    56     app = Cascade([static_app, javascripts_app, app]) 
     63    app = Cascade([static_app, app]) 
    5764    return app 
  • trunk/pysvnmanager/config/routing.py

    r2 r55  
    1212    map = Mapper(directory=config['pylons.paths']['controllers'], 
    1313                 always_scan=config['debug']) 
    14  
     14    map.minimization = False 
     15     
    1516    # The ErrorController route (handles 404/500 error pages); it should 
    1617    # likely stay at the top, ensuring it can always be resolved 
    17     map.connect('error/:action/:id', controller='error') 
     18    map.connect('/error/{action}', controller='error') 
     19    map.connect('/error/{action}/{id}', controller='error') 
    1820 
    1921    # CUSTOM ROUTES HERE 
    20     map.connect('', controller='check', action='index') 
    21     map.connect('login', controller='security', action='index') 
    22     map.connect('logout', controller='security', action='logout') 
     22    map.connect('/', controller='check', action='index') 
     23    map.connect('/login', controller='security', action='index') 
     24    map.connect('/logout', controller='security', action='logout') 
    2325 
    24     map.connect(':controller/:action/:id') 
    25     map.connect('*url', controller='template', action='view') 
     26    map.connect('/{controller}') 
     27    map.connect('/{controller}/{action}') 
     28    map.connect('/{controller}/{action}/{id}') 
    2629 
    2730    return map 
  • trunk/pysvnmanager/controllers/error.py

    r50 r55  
    2121 
    2222from paste.urlparser import StaticURLParser 
     23from pylons import request 
     24from pylons.controllers.util import forward 
    2325from pylons.middleware import error_document_template, media_path 
     26from webhelpers.html.builder import literal 
    2427 
    25 from pysvnmanager.lib.base import * 
     28from pysvnmanager.lib.base import BaseController 
    2629 
    2730class ErrorController(BaseController): 
     
    3740    def document(self): 
    3841        """Render the error document""" 
     42        resp = request.environ.get('pylons.original_response') 
     43        content = literal(resp.body) or cgi.escape(request.GET.get('message')) 
    3944        page = error_document_template % \ 
    4045            dict(prefix=request.environ.get('SCRIPT_NAME', ''), 
    41                  code=cgi.escape(request.params.get('code', '')), 
    42                  message=cgi.escape(request.params.get('message', ''))) 
     46                 code=cgi.escape(request.GET.get('code', str(resp.status_int))), 
     47                 message=content) 
    4348        return page 
    4449 
  • trunk/pysvnmanager/controllers/logs.py

    r50 r55  
    8888            'when': logs[i].get('date',''),  
    8989            'why' : h.link_to(logs[i].get('log',''), \ 
    90                               h.url(action='view', id=logs[i].get('revision','')), \ 
    91                               popup=['view_logs'] 
     90                              h.url_for(action='view', id=logs[i].get('revision','')), \ 
     91                              onclick="window.open(this.href,'view_logs','location=0,toolbar=0,width=780,height=580');return false;" 
    9292                              ),  
    9393            } 
  • trunk/pysvnmanager/i18n/en/LC_MESSAGES/pysvnmanager.po

    r47 r55  
    1010"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 
    1111"POT-Creation-Date: 2008-07-03 22:14+0800\n" 
    12 "PO-Revision-Date: 2008-08-28 19:02+0800\n" 
     12"PO-Revision-Date: 2008-08-30 13:12+0800\n" 
    1313"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 
    1414"Language-Team: en <LL@li.org>\n" 
     
    1717"Content-Type: text/plain; charset=utf-8\n" 
    1818"Content-Transfer-Encoding: 8bit\n" 
    19 "Generated-By: Babel 0.9.2\n" 
    20  
    21 #: pysvnmanager/controllers/authz.py:43 
     19"Generated-By: Babel 0.9.4\n" 
     20 
     21#: pysvnmanager/controllers/authz.py:60 
    2222#: pysvnmanager/templates/authz/index.mako:152 
    2323#: pysvnmanager/templates/check/index.mako:10 
     
    2525msgstr "" 
    2626 
    27 #: pysvnmanager/controllers/authz.py:44 
     27#: pysvnmanager/controllers/authz.py:61 
    2828#: pysvnmanager/templates/authz/index.mako:154 
    2929#: pysvnmanager/templates/check/index.mako:11 
     
    3131msgstr "" 
    3232 
    33 #: pysvnmanager/controllers/authz.py:45 
     33#: pysvnmanager/controllers/authz.py:62 
    3434#: pysvnmanager/templates/authz/index.mako:156 
    3535#: pysvnmanager/templates/check/index.mako:12 
     
    3737msgstr "" 
    3838 
    39 #: pysvnmanager/controllers/authz.py:50 pysvnmanager/controllers/role.py:50 
    40 #: pysvnmanager/controllers/role.py:70 
     39#: pysvnmanager/controllers/authz.py:67 pysvnmanager/controllers/role.py:67 
     40#: pysvnmanager/controllers/role.py:87 
    4141#: pysvnmanager/templates/authz/index.mako:148 
    4242#: pysvnmanager/templates/check/index.mako:17 
     
    4848msgstr "" 
    4949 
    50 #: pysvnmanager/controllers/authz.py:53 pysvnmanager/controllers/role.py:55 
    51 #: pysvnmanager/controllers/role.py:72 
     50#: pysvnmanager/controllers/authz.py:70 pysvnmanager/controllers/role.py:72 
     51#: pysvnmanager/controllers/role.py:89 
    5252#: pysvnmanager/templates/authz/index.mako:150 
    5353#: pysvnmanager/templates/check/index.mako:19 
     
    5959msgstr "" 
    6060 
    61 #: pysvnmanager/controllers/authz.py:68 pysvnmanager/controllers/authz.py:99 
    62 #: pysvnmanager/controllers/check.py:89 pysvnmanager/controllers/repos.py:40 
    63 #: pysvnmanager/controllers/repos.py:59 pysvnmanager/controllers/role.py:43 
     61#: pysvnmanager/controllers/authz.py:85 pysvnmanager/controllers/authz.py:116 
     62#: pysvnmanager/controllers/check.py:106 pysvnmanager/controllers/repos.py:57 
     63#: pysvnmanager/controllers/repos.py:76 pysvnmanager/controllers/role.py:60 
    6464#: pysvnmanager/templates/check/index.mako:9 
    6565#: pysvnmanager/templates/check/index.mako:23 
     
    6969msgstr "" 
    7070 
    71 #: pysvnmanager/controllers/authz.py:160 
     71#: pysvnmanager/controllers/authz.py:177 
    7272#, python-format 
    7373msgid "User %(user)s changed authz rules. (rev:%(rev)s)" 
    7474msgstr "" 
    7575 
    76 #: pysvnmanager/controllers/authz.py:173 
     76#: pysvnmanager/controllers/authz.py:190 
    7777#, python-format 
    7878msgid "Repository %s not exist." 
    7979msgstr "" 
    8080 
    81 #: pysvnmanager/controllers/authz.py:181 
     81#: pysvnmanager/controllers/authz.py:198 
    8282#, python-format 
    8383msgid "Module %s not exist." 
    8484msgstr "" 
    8585 
    86 #: pysvnmanager/controllers/authz.py:187 
     86#: pysvnmanager/controllers/authz.py:204 
    8787msgid "You can not delete yourself from admin list." 
    8888msgstr "" 
    8989 
    90 #: pysvnmanager/controllers/authz.py:212 
     90#: pysvnmanager/controllers/authz.py:229 
    9191#, python-format 
    9292msgid "User %(user)s delete authz rules. (rev:%(rev)s)" 
    9393msgstr "" 
    9494 
    95 #: pysvnmanager/controllers/check.py:69 
     95#: pysvnmanager/controllers/check.py:86 
    9696#: pysvnmanager/templates/auth_failed.mako:3 
    9797msgid "Permission denied." 
    9898msgstr "" 
    9999 
    100 #: pysvnmanager/controllers/logs.py:50 
     100#: pysvnmanager/controllers/logs.py:68 
    101101msgid "Rev" 
    102102msgstr "" 
    103103 
    104 #: pysvnmanager/controllers/logs.py:51 
     104#: pysvnmanager/controllers/logs.py:69 
    105105msgid "Who" 
    106106msgstr "" 
    107107 
    108 #: pysvnmanager/controllers/logs.py:52 
     108#: pysvnmanager/controllers/logs.py:70 
    109109msgid "When" 
    110110msgstr "" 
    111111 
    112 #: pysvnmanager/controllers/logs.py:53 
     112#: pysvnmanager/controllers/logs.py:71 
    113113msgid "Why" 
    114114msgstr "" 
    115115 
    116 #: pysvnmanager/controllers/logs.py:54 
     116#: pysvnmanager/controllers/logs.py:72 
    117117msgid "Compare" 
    118118msgstr "" 
    119119 
    120 #: pysvnmanager/controllers/logs.py:97 
     120#: pysvnmanager/controllers/logs.py:115 
    121121msgid "Page: " 
    122122msgstr "" 
    123123 
    124 #: pysvnmanager/controllers/logs.py:133 
     124#: pysvnmanager/controllers/logs.py:151 
    125125msgid "Compares between" 
    126126msgstr "" 
    127127 
    128 #: pysvnmanager/controllers/logs.py:152 
     128#: pysvnmanager/controllers/logs.py:170 
    129129#, python-format 
    130130msgid "Rollback successfully to revision: %s" 
    131131msgstr "" 
    132132 
    133 #: pysvnmanager/controllers/logs.py:161 
     133#: pysvnmanager/controllers/logs.py:179 
    134134#, python-format 
    135135msgid "Rollback failed: %s" 
    136136msgstr "" 
    137137 
    138 #: pysvnmanager/controllers/repos.py:74 
     138#: pysvnmanager/controllers/repos.py:91 
    139139msgid "Installed hooks:" 
    140140msgstr "" 
    141141 
    142 #: pysvnmanager/controllers/repos.py:80 
     142#: pysvnmanager/controllers/repos.py:97 
    143143msgid "Id" 
    144144msgstr "" 
    145145 
    146 #: pysvnmanager/controllers/repos.py:81 
     146#: pysvnmanager/controllers/repos.py:98 
    147147msgid "Plugin name" 
    148148msgstr "" 
    149149 
    150 #: pysvnmanager/controllers/repos.py:82 
    151 #: pysvnmanager/hooks/plugins/__init__.py:314 
     150#: pysvnmanager/controllers/repos.py:99 
     151#: pysvnmanager/hooks/plugins/__init__.py:330 
    152152msgid "Type" 
    153153msgstr "" 
    154154 
    155 #: pysvnmanager/controllers/repos.py:96 
     155#: pysvnmanager/controllers/repos.py:113 
    156156msgid "Remove selected hooks" 
    157157msgstr "" 
    158158 
    159 #: pysvnmanager/controllers/repos.py:119 
     159#: pysvnmanager/controllers/repos.py:136 
    160160#, python-format 
    161161msgid "" 
     
    164164msgstr "" 
    165165 
    166 #: pysvnmanager/controllers/repos.py:122 
     166#: pysvnmanager/controllers/repos.py:139 
    167167#, python-format 
    168168msgid "Apply plugin '%(plugin)s' on '%(repos)s' success." 
    169169msgstr "" 
    170170 
    171 #: pysvnmanager/controllers/repos.py:143 
     171#: pysvnmanager/controllers/repos.py:160 
    172172#, python-format 
    173173msgid "" 
     
    176176msgstr "" 
    177177 
    178 #: pysvnmanager/controllers/repos.py:146 
     178#: pysvnmanager/controllers/repos.py:163 
    179179#, python-format 
    180180msgid "Delete plugin '%(plugin)s' on '%(repos)s' success." 
    181181msgstr "" 
    182182 
    183 #: pysvnmanager/controllers/repos.py:149 
     183#: pysvnmanager/controllers/repos.py:166 
    184184#, python-format 
    185185msgid "No plugin has been deleted for '%(repos)s'." 
    186186msgstr "" 
    187187 
    188 #: pysvnmanager/controllers/repos.py:158 
     188#: pysvnmanager/controllers/repos.py:175 
    189189#, python-format 
    190190msgid "" 
     
    193193msgstr "" 
    194194 
    195 #: pysvnmanager/controllers/repos.py:161 
     195#: pysvnmanager/controllers/repos.py:178 
    196196#, python-format 
    197197msgid "Create repository '%(repos)s' success." 
    198198msgstr "" 
    199199 
    200 #: pysvnmanager/controllers/repos.py:174 
     200#: pysvnmanager/controllers/repos.py:191 
    201201#, python-format 
    202202msgid "" 
     
    205205msgstr "" 
    206206 
    207 #: pysvnmanager/controllers/repos.py:177 
     207#: pysvnmanager/controllers/repos.py:194 
    208208#, python-format 
    209209msgid "Delete blank repository '%(repos)s' success." 
    210210msgstr "" 
    211211 
    212 #: pysvnmanager/controllers/role.py:103 
     212#: pysvnmanager/controllers/role.py:120 
    213213#, python-format 
    214214msgid "User %(user)s changed group: %(grp)s. (rev:%(rev)s)" 
    215215msgstr "" 
    216216 
    217 #: pysvnmanager/controllers/role.py:123 
     217#: pysvnmanager/controllers/role.py:140 
    218218#, python-format 
    219219msgid "User %(user)s delete group: %(grp)s. (rev:%(rev)s)" 
    220220msgstr "" 
    221221 
    222 #: pysvnmanager/controllers/role.py:145 
     222#: pysvnmanager/controllers/role.py:162 
    223223#, python-format 
    224224msgid "User %(user)s changed alias: %(alias)s. (rev:%(rev)s)" 
    225225msgstr "" 
    226226 
    227 #: pysvnmanager/controllers/role.py:165 
     227#: pysvnmanager/controllers/role.py:182 
    228228#, python-format 
    229229msgid "User %(user)s delete alias: %(alias)s. (rev:%(rev)s,%(msg)s)" 
    230230msgstr "" 
    231231 
    232 #: pysvnmanager/controllers/security.py:34 
     232#: pysvnmanager/controllers/security.py:52 
    233233#, python-format 
    234234msgid "User %s logged in" 
    235235msgstr "" 
    236236 
    237 #: pysvnmanager/controllers/security.py:45 
     237#: pysvnmanager/controllers/security.py:63 
    238238#, python-format 
    239239msgid "Login failed for user: %s" 
    240240msgstr "" 
    241241 
    242 #: pysvnmanager/controllers/security.py:53 
     242#: pysvnmanager/controllers/security.py:71 
    243243#, python-format 
    244244msgid "User %s logged out" 
    245245msgstr "" 
    246246 
    247 #: pysvnmanager/hooks/plugins/AllowRevpropChange.py:10 
     247#: pysvnmanager/hooks/plugins/AllowRevpropChange.py:26 
    248248msgid "Allow revprop change" 
    249249msgstr "" 
    250250 
    251 #: pysvnmanager/hooks/plugins/AllowRevpropChange.py:16 
     251#: pysvnmanager/hooks/plugins/AllowRevpropChange.py:32 
    252252msgid "Allow user change commit-log or other rev-properties." 
    253253msgstr "" 
    254254 
    255 #: pysvnmanager/hooks/plugins/AllowRevpropChange.py:19 
     255#: pysvnmanager/hooks/plugins/AllowRevpropChange.py:35 
    256256msgid "" 
    257257"Commit-log is the only rev-prop we allow to change. Because the changes " 
     
    260260msgstr "" 
    261261 
    262 #: pysvnmanager/hooks/plugins/BugtrackMantis.py:10 
     262#: pysvnmanager/hooks/plugins/BugtrackMantis.py:26 
    263263msgid "Mantis bugtracking integration" 
    264264msgstr "" 
    265265 
    266 #: pysvnmanager/hooks/plugins/BugtrackMantis.py:16 
     266#: pysvnmanager/hooks/plugins/BugtrackMantis.py:32 
    267267msgid "" 
    268268"Integration Subversion with Mantis bugtracking. If commit-log has proper " 
     
    271271msgstr "" 
    272272 
    273 #: pysvnmanager/hooks/plugins/CapCheckMergeInfo.py:10 
     273#: pysvnmanager/hooks/plugins/CapCheckMergeInfo.py:26 
    274274msgid "Subversion client version check (>1.5.0)" 
    275275msgstr "" 
    276276 
    277 #: pysvnmanager/hooks/plugins/CapCheckMergeInfo.py:16 
     277#: pysvnmanager/hooks/plugins/CapCheckMergeInfo.py:32 
    278278msgid "Check subversion client version. if version below 1.5.0, checkin denied." 
    279279msgstr "" 
    280280 
    281 #: pysvnmanager/hooks/plugins/CapCheckMergeInfo.py:19 
     281#: pysvnmanager/hooks/plugins/CapCheckMergeInfo.py:35 
    282282msgid "" 
    283283"SVN below 1.5.0 can not handle mergeinfo properly.It can mess up our " 
     
    285285msgstr "" 
    286286 
    287 #: pysvnmanager/hooks/plugins/CaseInsensitive.py:10 
     287#: pysvnmanager/hooks/plugins/CaseInsensitive.py:26 
    288288msgid "Detect case-insensitive filename clashes" 
    289289msgstr "" 
    290290 
    291 #: pysvnmanager/hooks/plugins/CaseInsensitive.py:16 
     291#: pysvnmanager/hooks/plugins/CaseInsensitive.py:32 
    292292msgid "A pre-commit hook to detect case-insensitive filename clashes." 
    293293msgstr "" 
    294294 
    295 #: pysvnmanager/hooks/plugins/CaseInsensitive.py:19 
     295#: pysvnmanager/hooks/plugins/CaseInsensitive.py:35 
    296296msgid "" 
    297297"Subversion services may host on a filename case-sensitive OS,\n" 
     
    305305msgstr "" 
    306306 
    307 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:11 
     307#: pysvnmanager/hooks/plugins/CommitLogCheck.py:27 
    308308msgid "Check commit log message" 
    309309msgstr "" 
    310310 
    311 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:17 
     311#: pysvnmanager/hooks/plugins/CommitLogCheck.py:33 
    312312msgid "User must provide commit-log message when checkin." 
    313313msgstr "" 
    314314 
    315 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:50 
    316 #: pysvnmanager/hooks/plugins/EmailNotify.py:73 
    317 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:49 
     315#: pysvnmanager/hooks/plugins/CommitLogCheck.py:66 
     316#: pysvnmanager/hooks/plugins/EmailNotify.py:89 
     317#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:65 
    318318msgid "Current configuration" 
    319319msgstr "" 
    320320 
    321 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:52 
     321#: pysvnmanager/hooks/plugins/CommitLogCheck.py:68 
    322322msgid "Commit log check is enabled." 
    323323msgstr "" 
    324324 
    325 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:54 
     325#: pysvnmanager/hooks/plugins/CommitLogCheck.py:70 
    326326msgid "Commit log check is disabled." 
    327327msgstr "" 
    328328 
    329 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:56 
    330 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:95 
     329#: pysvnmanager/hooks/plugins/CommitLogCheck.py:72 
     330#: pysvnmanager/hooks/plugins/CommitLogCheck.py:111 
    331331msgid "Minimal size of commit log: " 
    332332msgstr "" 
    333333 
    334 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:61 
    335 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:101 
     334#: pysvnmanager/hooks/plugins/CommitLogCheck.py:77 
     335#: pysvnmanager/hooks/plugins/CommitLogCheck.py:117 
    336336msgid "Pattern which commit log must match against: " 
    337337msgstr "" 
    338338 
    339 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:64 
     339#: pysvnmanager/hooks/plugins/CommitLogCheck.py:80 
    340340msgid "Pattern which commit log must **NOT** match against: " 
    341341msgstr "" 
    342342 
    343 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:83 
    344 #: pysvnmanager/hooks/plugins/EmailNotify.py:97 
    345 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:73 
     343#: pysvnmanager/hooks/plugins/CommitLogCheck.py:99 
     344#: pysvnmanager/hooks/plugins/EmailNotify.py:113 
     345#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:89 
    346346msgid "Fill this form" 
    347347msgstr "" 
    348348 
    349 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:87 
     349#: pysvnmanager/hooks/plugins/CommitLogCheck.py:103 
    350350msgid "Enable commit log check: " 
    351351msgstr "" 
    352352 
    353 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:90 
    354 #: pysvnmanager/hooks/plugins/EmailNotify.py:104 
    355 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:80 
     353#: pysvnmanager/hooks/plugins/CommitLogCheck.py:106 
     354#: pysvnmanager/hooks/plugins/EmailNotify.py:120 
     355#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:96 
    356356msgid "Enable" 
    357357msgstr "" 
    358358 
    359 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:92 
    360 #: pysvnmanager/hooks/plugins/EmailNotify.py:106 
    361 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:82 
     359#: pysvnmanager/hooks/plugins/CommitLogCheck.py:108 
     360#: pysvnmanager/hooks/plugins/EmailNotify.py:122 
     361#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:98 
    362362msgid "Disable" 
    363363msgstr "" 
    364364 
    365 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:107 
     365#: pysvnmanager/hooks/plugins/CommitLogCheck.py:123 
    366366msgid "Pattern which commit log must <b>NOT</b> match against: " 
    367367msgstr "" 
    368368 
    369 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:140 
     369#: pysvnmanager/hooks/plugins/CommitLogCheck.py:156 
    370370msgid "Commit log size must > 0." 
    371371msgstr "" 
    372372 
    373 #: pysvnmanager/hooks/plugins/EmailNotify.py:11 
     373#: pysvnmanager/hooks/plugins/EmailNotify.py:27 
    374374msgid "Send email notify for commit event" 
    375375msgstr "" 
    376376 
    377 #: pysvnmanager/hooks/plugins/EmailNotify.py:17 
     377#: pysvnmanager/hooks/plugins/EmailNotify.py:33 
    378378msgid "" 
    379379"Send a notification email describing either a commit or a revprop-change " 
     
    381381msgstr "" 
    382382 
    383 #: pysvnmanager/hooks/plugins/EmailNotify.py:21 
     383#: pysvnmanager/hooks/plugins/EmailNotify.py:37 
    384384msgid "" 
    385385"\n" 
     
    407407msgstr "" 
    408408 
    409 #: pysvnmanager/hooks/plugins/EmailNotify.py:75 
     409#: pysvnmanager/hooks/plugins/EmailNotify.py:91 
    410410msgid "Email notify enabled." 
    411411msgstr "" 
    412412 
    413 #: pysvnmanager/hooks/plugins/EmailNotify.py:77 
     413#: pysvnmanager/hooks/plugins/EmailNotify.py:93 
    414414msgid "Email notify disabled." 
    415415msgstr "" 
    416416 
    417 #: pysvnmanager/hooks/plugins/EmailNotify.py:79 
     417#: pysvnmanager/hooks/plugins/EmailNotify.py:95 
    418418msgid "Parameters: " 
    419419msgstr "" 
    420420 
    421 #: pysvnmanager/hooks/plugins/EmailNotify.py:101 
     421#: pysvnmanager/hooks/plugins/EmailNotify.py:117 
    422422msgid "Enable email notify." 
    423423msgstr "" 
    424424 
    425 #: pysvnmanager/hooks/plugins/EmailNotify.py:109 
     425#: pysvnmanager/hooks/plugins/EmailNotify.py:125 
    426426msgid "Input email notify configurations: " 
    427427msgstr "" 
    428428 
    429 #: pysvnmanager/hooks/plugins/EmailNotify.py:139 
    430 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:115 
     429#: pysvnmanager/hooks/plugins/EmailNotify.py:155 
     430#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:131 
    431431msgid "Wrong configuration." 
    432432msgstr "" 
    433433 
    434 #: pysvnmanager/hooks/plugins/EolStyleCheck.py:10 
     434#: pysvnmanager/hooks/plugins/EolStyleCheck.py:26 
    435435msgid "mime-type and eol-style check" 
    436436msgstr "" 
    437437 
    438 #: pysvnmanager/hooks/plugins/EolStyleCheck.py:16 
     438#: pysvnmanager/hooks/plugins/EolStyleCheck.py:32 
    439439msgid "New file must provide svn:eol-style if not binary file." 
    440440msgstr "" 
    441441 
    442 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:10 
     442#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:26 
    443443msgid "Subversion readonly mirror" 
    444444msgstr "" 
    445445 
    446 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:16 
     446#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:32 
    447447msgid "" 
    448448"This subversion repository is a svnsync readonly mirror. Nobody can " 
     
    450450msgstr "" 
    451451 
    452 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:20 
     452#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:36 
    453453msgid "" 
    454454"Commit to the remote svn server, this repository is a readonly svn " 
     
    457457msgstr "" 
    458458 
    459 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:51 
     459#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:67 
    460460msgid "Readonly mirror enabled." 
    461461msgstr "" 
    462462 
    463 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:53 
     463#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:69 
    464464msgid "Readonly mirror disabled." 
    465465msgstr "" 
    466466 
    467 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:55 
     467#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:71 
    468468msgid "Admin user: " 
    469469msgstr "" 
    470470 
    471 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:77 
     471#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:93 
    472472msgid "Enable readonly mirror: " 
    473473msgstr "" 
    474474 
    475 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:85 
     475#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:101 
    476476msgid "Svnsync administrator: " 
    477477msgstr "" 
    478478 
    479 #: pysvnmanager/hooks/plugins/__init__.py:95 
     479#: pysvnmanager/hooks/plugins/__init__.py:111 
    480480#, python-format 
    481481msgid "repos '%s' not exist!" 
    482482msgstr "" 
    483483 
    484 #: pysvnmanager/hooks/plugins/__init__.py:152 
     484#: pysvnmanager/hooks/plugins/__init__.py:168 
    485485#, python-format 
    486486msgid "Conflict: plugin '%s' is modified by others." 
    487487msgstr "" 
    488488 
    489 #: pysvnmanager/hooks/plugins/__init__.py:182 
    490 #: pysvnmanager/hooks/plugins/__init__.py:209 
    491 #: pysvnmanager/hooks/plugins/__init__.py:215 
    492 #: pysvnmanager/hooks/plugins/__init__.py:234 
    493 #: pysvnmanager/hooks/plugins/__init__.py:332 
    494 #: pysvnmanager/hooks/plugins/__init__.py:339 
     489#: pysvnmanager/hooks/plugins/__init__.py:198 
     490#: pysvnmanager/hooks/plugins/__init__.py:225 
     491#: pysvnmanager/hooks/plugins/__init__.py:231 
     492#: pysvnmanager/hooks/plugins/__init__.py:250 
    495493#: pysvnmanager/hooks/plugins/__init__.py:348 
     494#: pysvnmanager/hooks/plugins/__init__.py:355 
     495#: pysvnmanager/hooks/plugins/__init__.py:364 
    496496msgid "Plugin not fully implemented." 
    497497msgstr "" 
    498498 
    499 #: pysvnmanager/hooks/plugins/__init__.py:313 
     499#: pysvnmanager/hooks/plugins/__init__.py:329 
    500500msgid "Name" 
    501501msgstr "" 
    502502 
    503 #: pysvnmanager/hooks/plugins/__init__.py:315 
     503#: pysvnmanager/hooks/plugins/__init__.py:331 
    504504msgid "Description" 
    505505msgstr "" 
    506506 
    507 #: pysvnmanager/model/repos.py:39 
     507#: pysvnmanager/model/repos.py:55 
    508508#, python-format 
    509509msgid "Repos root does not exist: %s" 
    510510msgstr "" 
    511511 
    512 #: pysvnmanager/model/repos.py:68 
     512#: pysvnmanager/model/repos.py:84 
    513513#, python-format 
    514514msgid "Repos %s already exists." 
    515515msgstr "" 
    516516 
    517 #: pysvnmanager/model/repos.py:139 
     517#: pysvnmanager/model/repos.py:166 
    518518#, python-format 
    519519msgid "Repos %s is not a blank repository." 
    520520msgstr "" 
    521521 
    522 #: pysvnmanager/model/svnauthz.py:61 
     522#: pysvnmanager/model/svnauthz.py:77 
    523523msgid "Name is not given." 
    524524msgstr "" 
    525525 
    526 #: pysvnmanager/model/svnauthz.py:63 
     526#: pysvnmanager/model/svnauthz.py:79 
    527527msgid "Name is not string." 
    528528msgstr "" 
    529529 
    530 #: pysvnmanager/model/svnauthz.py:67 
     530#: pysvnmanager/model/svnauthz.py:83 
    531531#, python-format 
    532532msgid "Name (%s) contains invalid characters." 
    533533msgstr "" 
    534534 
    535 #: pysvnmanager/model/svnauthz.py:475 
     535#: pysvnmanager/model/svnauthz.py:491 
    536536#, python-format 
    537537msgid "Recursive group membership for %s" 
    538538msgstr "" 
    539539 
    540 #: pysvnmanager/model/svnauthz.py:569 
     540#: pysvnmanager/model/svnauthz.py:585 
    541541#, python-format 
    542542msgid "Not a valid username: %s" 
    543543msgstr "" 
    544544 
    545 #: pysvnmanager/model/svnauthz.py:686 
     545#: pysvnmanager/model/svnauthz.py:702 
    546546#, python-format 
    547547msgid "Group %s is referenced by group %s." 
    548548msgstr "" 
    549549 
    550 #: pysvnmanager/model/svnauthz.py:1232 
     550#: pysvnmanager/model/svnauthz.py:1248 
    551551msgid "Update failed! You are working on a out-of-date revision." 
    552552msgstr "" 
    553553 
    554 #: pysvnmanager/model/svnauthz.py:1486 pysvnmanager/model/svnauthz.py:1493 
    555 #: pysvnmanager/model/svnauthz.py:1497 
     554#: pysvnmanager/model/svnauthz.py:1502 pysvnmanager/model/svnauthz.py:1509 
     555#: pysvnmanager/model/svnauthz.py:1513 
    556556#, python-format 
    557557msgid "Unknown rule format: %s" 
    558558msgstr "" 
    559559 
    560 #: pysvnmanager/model/svnauthz.py:1511 
     560#: pysvnmanager/model/svnauthz.py:1527 
    561561#, python-format 
    562562msgid "No module exist for %s:%s" 
    563563msgstr "" 
    564564 
    565 #: pysvnmanager/model/svnauthz.py:1621 
     565#: pysvnmanager/model/svnauthz.py:1637 
    566566#, python-format 
    567567msgid "Alias %s is referenced by group %s." 
    568568msgstr "" 
    569569 
    570 #: pysvnmanager/model/svnauthz.py:1633 
     570#: pysvnmanager/model/svnauthz.py:1649 
    571571#, python-format 
    572572msgid "%s is referenced by [%s]." 
    573573msgstr "" 
    574574 
    575 #: pysvnmanager/model/svnauthz.py:1769 
     575#: pysvnmanager/model/svnauthz.py:1785 
    576576#, python-format 
    577577msgid "User %(username)s has Full (RW) rights for module %(repos)s:%(path)s" 
    578578msgstr "" 
    579579 
    580 #: pysvnmanager/model/svnauthz.py:1771 
     580#: pysvnmanager/model/svnauthz.py:1787 
    581581#, python-format 
    582582msgid "User %(username)s has ReadOnly (RO) rights for module %(repos)s:%(path)s" 
    583583msgstr "" 
    584584 
    585 #: pysvnmanager/model/svnauthz.py:1773 
     585#: pysvnmanager/model/svnauthz.py:1789 
    586586#, python-format 
    587587msgid "User %(username)s can *NOT* access to module %(repos)s:%(path)s" 
    588588msgstr "" 
    589589 
    590 #: pysvnmanager/model/svnauthz.py:1813 
     590#: pysvnmanager/model/svnauthz.py:1829 
    591591#, python-format 
    592592msgid "" 
     
    600600msgstr "" 
    601601 
    602 #: pysvnmanager/model/svnauthz.py:1832 
     602#: pysvnmanager/model/svnauthz.py:1848 
    603603#, python-format 
    604604msgid "" 
     
    764764 
    765765#: pysvnmanager/templates/authz/index.mako:678 
    766 #: pysvnmanager/templates/role/index.mako:711 
     766#: pysvnmanager/templates/role/index.mako:708 
    767767msgid "Save" 
    768768msgstr "" 
    769769 
    770770#: pysvnmanager/templates/authz/index.mako:679 
    771 #: pysvnmanager/templates/role/index.mako:712 
     771#: pysvnmanager/templates/role/index.mako:709 
    772772msgid "Delete" 
    773773msgstr "" 
    774774 
    775775#: pysvnmanager/templates/authz/index.mako:680 
    776 #: pysvnmanager/templates/role/index.mako:713 
     776#: pysvnmanager/templates/role/index.mako:710 
    777777msgid "Cancel" 
    778778msgstr "" 
     
    780780#: pysvnmanager/templates/check/index.mako:5 
    781781#: pysvnmanager/templates/check/index.mako:106 
    782 #: pysvnmanager/templates/check/index.mako:176 
     782#: pysvnmanager/templates/check/index.mako:173 
    783783msgid "Check Permissions" 
    784784msgstr "" 
     
    812812msgstr "" 
    813813 
    814 #: pysvnmanager/templates/check/index.mako:139 
    815 #: pysvnmanager/templates/check/index.mako:152 
    816 #: pysvnmanager/templates/check/index.mako:164 
     814#: pysvnmanager/templates/check/index.mako:138 
     815#: pysvnmanager/templates/check/index.mako:149 
     816#: pysvnmanager/templates/check/index.mako:161 
    817817msgid "Manual input" 
    818818msgstr "" 
    819819 
    820 #: pysvnmanager/templates/check/index.mako:146 
     820#: pysvnmanager/templates/check/index.mako:145 
    821821msgid "Select repository" 
    822822msgstr "" 
    823823 
    824 #: pysvnmanager/templates/check/index.mako:160 
     824#: pysvnmanager/templates/check/index.mako:157 
    825825msgid "Select module" 
    826826msgstr "" 
     
    950950msgstr "" 
    951951 
    952 #: pysvnmanager/templates/role/index.mako:636 
     952#: pysvnmanager/templates/role/index.mako:634 
    953953msgid "New Group" 
    954954msgstr "" 
    955955 
    956 #: pysvnmanager/templates/role/index.mako:637 
     956#: pysvnmanager/templates/role/index.mako:635 
    957957msgid "New Alias" 
    958958msgstr "" 
    959959 
    960 #: pysvnmanager/templates/role/index.mako:641 
     960#: pysvnmanager/templates/role/index.mako:639 
    961961msgid "New group name:" 
    962962msgstr "" 
    963963 
    964 #: pysvnmanager/templates/role/index.mako:645 
     964#: pysvnmanager/templates/role/index.mako:643 
    965965msgid "New alias name:" 
    966966msgstr "" 
    967967 
    968 #: pysvnmanager/templates/role/index.mako:657 
     968#: pysvnmanager/templates/role/index.mako:655 
    969969msgid "Members list" 
    970970msgstr "" 
    971971 
    972 #: pysvnmanager/templates/role/index.mako:662 
     972#: pysvnmanager/templates/role/index.mako:660 
    973973msgid "Other users" 
    974974msgstr "" 
    975975 
    976 #: pysvnmanager/templates/role/index.mako:681 
     976#: pysvnmanager/templates/role/index.mako:679 
    977977msgid "Ignore recursive" 
    978978msgstr "" 
    979979 
    980 #: pysvnmanager/templates/role/index.mako:693 
     980#: pysvnmanager/templates/role/index.mako:691 
    981981msgid "User name:" 
    982982msgstr "" 
    983983 
    984 #~ msgid "" 
    985 #~ "Subversion services may host on a filename case-sensitive OS,\n" 
    986 #~ "while client **may not** (Windows is " 
    987 #~ "case-insensitive). This may cause " 
    988 #~ "'clash'.\n" 
    989 #~ "    \n" 
    990 #~ "- Detects new paths that 'clash' with existing, or other new, paths.\n" 
    991 #~ "- Ignores existings paths that already 'clash'\n" 
    992 #~ "- Exits with an error code, and a diagnostic on stderr, if 'clashes'\n" 
    993 #~ "  are detected.\n" 
    994 #~ msgstr "" 
    995  
  • trunk/pysvnmanager/i18n/pysvnmanager.pot

    r47 r55  
    77msgid "" 
    88msgstr "" 
    9 "Project-Id-Version: pySvnManager 0.2.0\n" 
     9"Project-Id-Version: pySvnManager 0.2.1\n" 
    1010"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 
    11 "POT-Creation-Date: 2008-08-28 19:02+0800\n" 
     11"POT-Creation-Date: 2008-08-30 13:12+0800\n" 
    1212"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 
    1313"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 
     
    1616"Content-Type: text/plain; charset=utf-8\n" 
    1717"Content-Transfer-Encoding: 8bit\n" 
    18 "Generated-By: Babel 0.9.2\n" 
    19  
    20 #: pysvnmanager/controllers/authz.py:43 pysvnmanager/templates/authz/index.mako:152 
     18"Generated-By: Babel 0.9.4\n" 
     19 
     20#: pysvnmanager/controllers/authz.py:60 pysvnmanager/templates/authz/index.mako:152 
    2121#: pysvnmanager/templates/check/index.mako:10 
    2222msgid "All users(with anon)" 
    2323msgstr "" 
    2424 
    25 #: pysvnmanager/controllers/authz.py:44 pysvnmanager/templates/authz/index.mako:154 
     25#: pysvnmanager/controllers/authz.py:61 pysvnmanager/templates/authz/index.mako:154 
    2626#: pysvnmanager/templates/check/index.mako:11 
    2727msgid "Known users" 
    2828msgstr "" 
    2929 
    30 #: pysvnmanager/controllers/authz.py:45 pysvnmanager/templates/authz/index.mako:156 
     30#: pysvnmanager/controllers/authz.py:62 pysvnmanager/templates/authz/index.mako:156 
    3131#: pysvnmanager/templates/check/index.mako:12 
    3232msgid "Anonymous" 
    3333msgstr "" 
    3434 
    35 #: pysvnmanager/controllers/authz.py:50 pysvnmanager/controllers/role.py:50 
    36 #: pysvnmanager/controllers/role.py:70 pysvnmanager/templates/authz/index.mako:148 
     35#: pysvnmanager/controllers/authz.py:67 pysvnmanager/controllers/role.py:67 
     36#: pysvnmanager/controllers/role.py:87 pysvnmanager/templates/authz/index.mako:148 
    3737#: pysvnmanager/templates/check/index.mako:17 
    3838#: pysvnmanager/templates/role/index.mako:18 
     
    4343msgstr "" 
    4444 
    45 #: pysvnmanager/controllers/authz.py:53 pysvnmanager/controllers/role.py:55 
    46 #: pysvnmanager/controllers/role.py:72 pysvnmanager/templates/authz/index.mako:150 
     45#: pysvnmanager/controllers/authz.py:70 pysvnmanager/controllers/role.py:72 
     46#: pysvnmanager/controllers/role.py:89 pysvnmanager/templates/authz/index.mako:150 
    4747#: pysvnmanager/templates/check/index.mako:19 
    4848#: pysvnmanager/templates/role/index.mako:23 
     
    5353msgstr "" 
    5454 
    55 #: pysvnmanager/controllers/authz.py:68 pysvnmanager/controllers/authz.py:99 
    56 #: pysvnmanager/controllers/check.py:89 pysvnmanager/controllers/repos.py:40 
    57 #: pysvnmanager/controllers/repos.py:59 pysvnmanager/controllers/role.py:43 
     55#: pysvnmanager/controllers/authz.py:85 pysvnmanager/controllers/authz.py:116 
     56#: pysvnmanager/controllers/check.py:106 pysvnmanager/controllers/repos.py:57 
     57#: pysvnmanager/controllers/repos.py:76 pysvnmanager/controllers/role.py:60 
    5858#: pysvnmanager/templates/check/index.mako:9 
    5959#: pysvnmanager/templates/check/index.mako:23 
     
    6363msgstr "" 
    6464 
    65 #: pysvnmanager/controllers/authz.py:160 
     65#: pysvnmanager/controllers/authz.py:177 
    6666#, python-format 
    6767msgid "User %(user)s changed authz rules. (rev:%(rev)s)" 
    6868msgstr "" 
    6969 
    70 #: pysvnmanager/controllers/authz.py:173 
     70#: pysvnmanager/controllers/authz.py:190 
    7171#, python-format 
    7272msgid "Repository %s not exist." 
    7373msgstr "" 
    7474 
    75 #: pysvnmanager/controllers/authz.py:181 
     75#: pysvnmanager/controllers/authz.py:198 
    7676#, python-format 
    7777msgid "Module %s not exist." 
    7878msgstr "" 
    7979 
    80 #: pysvnmanager/controllers/authz.py:187 
     80#: pysvnmanager/controllers/authz.py:204 
    8181msgid "You can not delete yourself from admin list." 
    8282msgstr "" 
    8383 
    84 #: pysvnmanager/controllers/authz.py:212 
     84#: pysvnmanager/controllers/authz.py:229 
    8585#, python-format 
    8686msgid "User %(user)s delete authz rules. (rev:%(rev)s)" 
    8787msgstr "" 
    8888 
    89 #: pysvnmanager/controllers/check.py:69 pysvnmanager/templates/auth_failed.mako:3 
     89#: pysvnmanager/controllers/check.py:86 pysvnmanager/templates/auth_failed.mako:3 
    9090msgid "Permission denied." 
    9191msgstr "" 
    9292 
    93 #: pysvnmanager/controllers/logs.py:50 
     93#: pysvnmanager/controllers/logs.py:68 
    9494msgid "Rev" 
    9595msgstr "" 
    9696 
    97 #: pysvnmanager/controllers/logs.py:51 
     97#: pysvnmanager/controllers/logs.py:69 
    9898msgid "Who" 
    9999msgstr "" 
    100100 
    101 #: pysvnmanager/controllers/logs.py:52 
     101#: pysvnmanager/controllers/logs.py:70 
    102102msgid "When" 
    103103msgstr "" 
    104104 
    105 #: pysvnmanager/controllers/logs.py:53 
     105#: pysvnmanager/controllers/logs.py:71 
    106106msgid "Why" 
    107107msgstr "" 
    108108 
    109 #: pysvnmanager/controllers/logs.py:54 
     109#: pysvnmanager/controllers/logs.py:72 
    110110msgid "Compare" 
    111111msgstr "" 
    112112 
    113 #: pysvnmanager/controllers/logs.py:97 
     113#: pysvnmanager/controllers/logs.py:115 
    114114msgid "Page: " 
    115115msgstr "" 
    116116 
    117 #: pysvnmanager/controllers/logs.py:133 
     117#: pysvnmanager/controllers/logs.py:151 
    118118msgid "Compares between" 
    119119msgstr "" 
    120120 
    121 #: pysvnmanager/controllers/logs.py:152 
     121#: pysvnmanager/controllers/logs.py:170 
    122122#, python-format 
    123123msgid "Rollback successfully to revision: %s" 
    124124msgstr "" 
    125125 
    126 #: pysvnmanager/controllers/logs.py:161 
     126#: pysvnmanager/controllers/logs.py:179 
    127127#, python-format 
    128128msgid "Rollback failed: %s" 
    129129msgstr "" 
    130130 
    131 #: pysvnmanager/controllers/repos.py:74 
     131#: pysvnmanager/controllers/repos.py:91 
    132132msgid "Installed hooks:" 
    133133msgstr "" 
    134134 
    135 #: pysvnmanager/controllers/repos.py:80 
     135#: pysvnmanager/controllers/repos.py:97 
    136136msgid "Id" 
    137137msgstr "" 
    138138 
    139 #: pysvnmanager/controllers/repos.py:81 
     139#: pysvnmanager/controllers/repos.py:98 
    140140msgid "Plugin name" 
    141141msgstr "" 
    142142 
    143 #: pysvnmanager/controllers/repos.py:82 pysvnmanager/hooks/plugins/__init__.py:314 
     143#: pysvnmanager/controllers/repos.py:99 pysvnmanager/hooks/plugins/__init__.py:330 
    144144msgid "Type" 
    145145msgstr "" 
    146146 
    147 #: pysvnmanager/controllers/repos.py:96 
     147#: pysvnmanager/controllers/repos.py:113 
    148148msgid "Remove selected hooks" 
    149149msgstr "" 
    150150 
    151 #: pysvnmanager/controllers/repos.py:119 
     151#: pysvnmanager/controllers/repos.py:136 
    152152#, python-format 
    153153msgid "" 
     
    156156msgstr "" 
    157157 
    158 #: pysvnmanager/controllers/repos.py:122 
     158#: pysvnmanager/controllers/repos.py:139 
    159159#, python-format 
    160160msgid "Apply plugin '%(plugin)s' on '%(repos)s' success." 
    161161msgstr "" 
    162162 
    163 #: pysvnmanager/controllers/repos.py:143 
     163#: pysvnmanager/controllers/repos.py:160 
    164164#, python-format 
    165165msgid "" 
     
    168168msgstr "" 
    169169 
    170 #: pysvnmanager/controllers/repos.py:146 
     170#: pysvnmanager/controllers/repos.py:163 
    171171#, python-format 
    172172msgid "Delete plugin '%(plugin)s' on '%(repos)s' success." 
    173173msgstr "" 
    174174 
    175 #: pysvnmanager/controllers/repos.py:149 
     175#: pysvnmanager/controllers/repos.py:166 
    176176#, python-format 
    177177msgid "No plugin has been deleted for '%(repos)s'." 
    178178msgstr "" 
    179179 
    180 #: pysvnmanager/controllers/repos.py:158 
     180#: pysvnmanager/controllers/repos.py:175 
    181181#, python-format 
    182182msgid "" 
     
    185185msgstr "" 
    186186 
    187 #: pysvnmanager/controllers/repos.py:161 
     187#: pysvnmanager/controllers/repos.py:178 
    188188#, python-format 
    189189msgid "Create repository '%(repos)s' success." 
    190190msgstr "" 
    191191 
    192 #: pysvnmanager/controllers/repos.py:174 
     192#: pysvnmanager/controllers/repos.py:191 
    193193#, python-format 
    194194msgid "" 
     
    197197msgstr "" 
    198198 
    199 #: pysvnmanager/controllers/repos.py:177 
     199#: pysvnmanager/controllers/repos.py:194 
    200200#, python-format 
    201201msgid "Delete blank repository '%(repos)s' success." 
    202202msgstr "" 
    203203 
    204 #: pysvnmanager/controllers/role.py:103 
     204#: pysvnmanager/controllers/role.py:120 
    205205#, python-format 
    206206msgid "User %(user)s changed group: %(grp)s. (rev:%(rev)s)" 
    207207msgstr "" 
    208208 
    209 #: pysvnmanager/controllers/role.py:123 
     209#: pysvnmanager/controllers/role.py:140 
    210210#, python-format 
    211211msgid "User %(user)s delete group: %(grp)s. (rev:%(rev)s)" 
    212212msgstr "" 
    213213 
    214 #: pysvnmanager/controllers/role.py:145 
     214#: pysvnmanager/controllers/role.py:162 
    215215#, python-format 
    216216msgid "User %(user)s changed alias: %(alias)s. (rev:%(rev)s)" 
    217217msgstr "" 
    218218 
    219 #: pysvnmanager/controllers/role.py:165 
     219#: pysvnmanager/controllers/role.py:182 
    220220#, python-format 
    221221msgid "User %(user)s delete alias: %(alias)s. (rev:%(rev)s,%(msg)s)" 
    222222msgstr "" 
    223223 
    224 #: pysvnmanager/controllers/security.py:34 
     224#: pysvnmanager/controllers/security.py:52 
    225225#, python-format 
    226226msgid "User %s logged in" 
    227227msgstr "" 
    228228 
    229 #: pysvnmanager/controllers/security.py:45 
     229#: pysvnmanager/controllers/security.py:63 
    230230#, python-format 
    231231msgid "Login failed for user: %s" 
    232232msgstr "" 
    233233 
    234 #: pysvnmanager/controllers/security.py:53 
     234#: pysvnmanager/controllers/security.py:71 
    235235#, python-format 
    236236msgid "User %s logged out" 
    237237msgstr "" 
    238238 
    239 #: pysvnmanager/hooks/plugins/AllowRevpropChange.py:10 
     239#: pysvnmanager/hooks/plugins/AllowRevpropChange.py:26 
    240240msgid "Allow revprop change" 
    241241msgstr "" 
    242242 
    243 #: pysvnmanager/hooks/plugins/AllowRevpropChange.py:16 
     243#: pysvnmanager/hooks/plugins/AllowRevpropChange.py:32 
    244244msgid "Allow user change commit-log or other rev-properties." 
    245245msgstr "" 
    246246 
    247 #: pysvnmanager/hooks/plugins/AllowRevpropChange.py:19 
     247#: pysvnmanager/hooks/plugins/AllowRevpropChange.py:35 
    248248msgid "" 
    249249"Commit-log is the only rev-prop we allow to change. Because the changes of " 
     
    252252msgstr "" 
    253253 
    254 #: pysvnmanager/hooks/plugins/BugtrackMantis.py:10 
     254#: pysvnmanager/hooks/plugins/BugtrackMantis.py:26 
    255255msgid "Mantis bugtracking integration" 
    256256msgstr "" 
    257257 
    258 #: pysvnmanager/hooks/plugins/BugtrackMantis.py:16 
     258#: pysvnmanager/hooks/plugins/BugtrackMantis.py:32 
    259259msgid "" 
    260260"Integration Subversion with Mantis bugtracking. If commit-log has proper " 
     
    263263msgstr "" 
    264264 
    265 #: pysvnmanager/hooks/plugins/CapCheckMergeInfo.py:10 
     265#: pysvnmanager/hooks/plugins/CapCheckMergeInfo.py:26 
    266266msgid "Subversion client version check (>1.5.0)" 
    267267msgstr "" 
    268268 
    269 #: pysvnmanager/hooks/plugins/CapCheckMergeInfo.py:16 
     269#: pysvnmanager/hooks/plugins/CapCheckMergeInfo.py:32 
    270270msgid "Check subversion client version. if version below 1.5.0, checkin denied." 
    271271msgstr "" 
    272272 
    273 #: pysvnmanager/hooks/plugins/CapCheckMergeInfo.py:19 
     273#: pysvnmanager/hooks/plugins/CapCheckMergeInfo.py:35 
    274274msgid "" 
    275275"SVN below 1.5.0 can not handle mergeinfo properly.It can mess up our " 
     
    277277msgstr "" 
    278278 
    279 #: pysvnmanager/hooks/plugins/CaseInsensitive.py:10 
     279#: pysvnmanager/hooks/plugins/CaseInsensitive.py:26 
    280280msgid "Detect case-insensitive filename clashes" 
    281281msgstr "" 
    282282 
    283 #: pysvnmanager/hooks/plugins/CaseInsensitive.py:16 
     283#: pysvnmanager/hooks/plugins/CaseInsensitive.py:32 
    284284msgid "A pre-commit hook to detect case-insensitive filename clashes." 
    285285msgstr "" 
    286286 
    287 #: pysvnmanager/hooks/plugins/CaseInsensitive.py:19 
     287#: pysvnmanager/hooks/plugins/CaseInsensitive.py:35 
    288288msgid "" 
    289289"Subversion services may host on a filename case-sensitive OS,\n" 
     
    297297msgstr "" 
    298298 
    299 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:11 
     299#: pysvnmanager/hooks/plugins/CommitLogCheck.py:27 
    300300msgid "Check commit log message" 
    301301msgstr "" 
    302302 
    303 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:17 
     303#: pysvnmanager/hooks/plugins/CommitLogCheck.py:33 
    304304msgid "User must provide commit-log message when checkin." 
    305305msgstr "" 
    306306 
    307 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:50 
    308 #: pysvnmanager/hooks/plugins/EmailNotify.py:73 
    309 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:49 
     307#: pysvnmanager/hooks/plugins/CommitLogCheck.py:66 
     308#: pysvnmanager/hooks/plugins/EmailNotify.py:89 
     309#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:65 
    310310msgid "Current configuration" 
    311311msgstr "" 
    312312 
    313 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:52 
     313#: pysvnmanager/hooks/plugins/CommitLogCheck.py:68 
    314314msgid "Commit log check is enabled." 
    315315msgstr "" 
    316316 
    317 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:54 
     317#: pysvnmanager/hooks/plugins/CommitLogCheck.py:70 
    318318msgid "Commit log check is disabled." 
    319319msgstr "" 
    320320 
    321 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:56 
    322 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:95 
     321#: pysvnmanager/hooks/plugins/CommitLogCheck.py:72 
     322#: pysvnmanager/hooks/plugins/CommitLogCheck.py:111 
    323323msgid "Minimal size of commit log: " 
    324324msgstr "" 
    325325 
    326 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:61 
    327 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:101 
     326#: pysvnmanager/hooks/plugins/CommitLogCheck.py:77 
     327#: pysvnmanager/hooks/plugins/CommitLogCheck.py:117 
    328328msgid "Pattern which commit log must match against: " 
    329329msgstr "" 
    330330 
    331 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:64 
     331#: pysvnmanager/hooks/plugins/CommitLogCheck.py:80 
    332332msgid "Pattern which commit log must **NOT** match against: " 
    333333msgstr "" 
    334334 
    335 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:83 
    336 #: pysvnmanager/hooks/plugins/EmailNotify.py:97 
    337 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:73 
     335#: pysvnmanager/hooks/plugins/CommitLogCheck.py:99 
     336#: pysvnmanager/hooks/plugins/EmailNotify.py:113 
     337#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:89 
    338338msgid "Fill this form" 
    339339msgstr "" 
    340340 
    341 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:87 
     341#: pysvnmanager/hooks/plugins/CommitLogCheck.py:103 
    342342msgid "Enable commit log check: " 
    343343msgstr "" 
    344344 
    345 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:90 
    346 #: pysvnmanager/hooks/plugins/EmailNotify.py:104 
    347 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:80 
     345#: pysvnmanager/hooks/plugins/CommitLogCheck.py:106 
     346#: pysvnmanager/hooks/plugins/EmailNotify.py:120 
     347#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:96 
    348348msgid "Enable" 
    349349msgstr "" 
    350350 
    351 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:92 
    352 #: pysvnmanager/hooks/plugins/EmailNotify.py:106 
    353 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:82 
     351#: pysvnmanager/hooks/plugins/CommitLogCheck.py:108 
     352#: pysvnmanager/hooks/plugins/EmailNotify.py:122 
     353#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:98 
    354354msgid "Disable" 
    355355msgstr "" 
    356356 
    357 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:107 
     357#: pysvnmanager/hooks/plugins/CommitLogCheck.py:123 
    358358msgid "Pattern which commit log must <b>NOT</b> match against: " 
    359359msgstr "" 
    360360 
    361 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:140 
     361#: pysvnmanager/hooks/plugins/CommitLogCheck.py:156 
    362362msgid "Commit log size must > 0." 
    363363msgstr "" 
    364364 
    365 #: pysvnmanager/hooks/plugins/EmailNotify.py:11 
     365#: pysvnmanager/hooks/plugins/EmailNotify.py:27 
    366366msgid "Send email notify for commit event" 
    367367msgstr "" 
    368368 
    369 #: pysvnmanager/hooks/plugins/EmailNotify.py:17 
     369#: pysvnmanager/hooks/plugins/EmailNotify.py:33 
    370370msgid "" 
    371371"Send a notification email describing either a commit or a revprop-change " 
     
    373373msgstr "" 
    374374 
    375 #: pysvnmanager/hooks/plugins/EmailNotify.py:21 
     375#: pysvnmanager/hooks/plugins/EmailNotify.py:37 
    376376msgid "" 
    377377"\n" 
     
    399399msgstr "" 
    400400 
    401 #: pysvnmanager/hooks/plugins/EmailNotify.py:75 
     401#: pysvnmanager/hooks/plugins/EmailNotify.py:91 
    402402msgid "Email notify enabled." 
    403403msgstr "" 
    404404 
    405 #: pysvnmanager/hooks/plugins/EmailNotify.py:77 
     405#: pysvnmanager/hooks/plugins/EmailNotify.py:93 
    406406msgid "Email notify disabled." 
    407407msgstr "" 
    408408 
    409 #: pysvnmanager/hooks/plugins/EmailNotify.py:79 
     409#: pysvnmanager/hooks/plugins/EmailNotify.py:95 
    410410msgid "Parameters: " 
    411411msgstr "" 
    412412 
    413 #: pysvnmanager/hooks/plugins/EmailNotify.py:101 
     413#: pysvnmanager/hooks/plugins/EmailNotify.py:117 
    414414msgid "Enable email notify." 
    415415msgstr "" 
    416416 
    417 #: pysvnmanager/hooks/plugins/EmailNotify.py:109 
     417#: pysvnmanager/hooks/plugins/EmailNotify.py:125 
    418418msgid "Input email notify configurations: " 
    419419msgstr "" 
    420420 
    421 #: pysvnmanager/hooks/plugins/EmailNotify.py:139 
    422 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:115 
     421#: pysvnmanager/hooks/plugins/EmailNotify.py:155 
     422#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:131 
    423423msgid "Wrong configuration." 
    424424msgstr "" 
    425425 
    426 #: pysvnmanager/hooks/plugins/EolStyleCheck.py:10 
     426#: pysvnmanager/hooks/plugins/EolStyleCheck.py:26 
    427427msgid "mime-type and eol-style check" 
    428428msgstr "" 
    429429 
    430 #: pysvnmanager/hooks/plugins/EolStyleCheck.py:16 
     430#: pysvnmanager/hooks/plugins/EolStyleCheck.py:32 
    431431msgid "New file must provide svn:eol-style if not binary file." 
    432432msgstr "" 
    433433 
    434 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:10 
     434#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:26 
    435435msgid "Subversion readonly mirror" 
    436436msgstr "" 
    437437 
    438 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:16 
     438#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:32 
    439439msgid "" 
    440440"This subversion repository is a svnsync readonly mirror. Nobody can checkin, " 
     
    442442msgstr "" 
    443443 
    444 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:20 
     444#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:36 
    445445msgid "" 
    446446"Commit to the remote svn server, this repository is a readonly svn mirror.It " 
     
    448448msgstr "" 
    449449 
    450 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:51 
     450#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:67 
    451451msgid "Readonly mirror enabled." 
    452452msgstr "" 
    453453 
    454 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:53 
     454#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:69 
    455455msgid "Readonly mirror disabled." 
    456456msgstr "" 
    457457 
    458 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:55 
     458#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:71 
    459459msgid "Admin user: " 
    460460msgstr "" 
    461461 
    462 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:77 
     462#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:93 
    463463msgid "Enable readonly mirror: " 
    464464msgstr "" 
    465465 
    466 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:85 
     466#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:101 
    467467msgid "Svnsync administrator: " 
    468468msgstr "" 
    469469 
    470 #: pysvnmanager/hooks/plugins/__init__.py:95 
     470#: pysvnmanager/hooks/plugins/__init__.py:111 
    471471#, python-format 
    472472msgid "repos '%s' not exist!" 
    473473msgstr "" 
    474474 
    475 #: pysvnmanager/hooks/plugins/__init__.py:152 
     475#: pysvnmanager/hooks/plugins/__init__.py:168 
    476476#, python-format 
    477477msgid "Conflict: plugin '%s' is modified by others." 
    478478msgstr "" 
    479479 
    480 #: pysvnmanager/hooks/plugins/__init__.py:182 
    481 #: pysvnmanager/hooks/plugins/__init__.py:209 
    482 #: pysvnmanager/hooks/plugins/__init__.py:215 
    483 #: pysvnmanager/hooks/plugins/__init__.py:234 
    484 #: pysvnmanager/hooks/plugins/__init__.py:332 
    485 #: pysvnmanager/hooks/plugins/__init__.py:339 
     480#: pysvnmanager/hooks/plugins/__init__.py:198 
     481#: pysvnmanager/hooks/plugins/__init__.py:225 
     482#: pysvnmanager/hooks/plugins/__init__.py:231 
     483#: pysvnmanager/hooks/plugins/__init__.py:250 
    486484#: pysvnmanager/hooks/plugins/__init__.py:348 
     485#: pysvnmanager/hooks/plugins/__init__.py:355 
     486#: pysvnmanager/hooks/plugins/__init__.py:364 
    487487msgid "Plugin not fully implemented." 
    488488msgstr "" 
    489489 
    490 #: pysvnmanager/hooks/plugins/__init__.py:313 
     490#: pysvnmanager/hooks/plugins/__init__.py:329 
    491491msgid "Name" 
    492492msgstr "" 
    493493 
    494 #: pysvnmanager/hooks/plugins/__init__.py:315 
     494#: pysvnmanager/hooks/plugins/__init__.py:331 
    495495msgid "Description" 
    496496msgstr "" 
    497497 
    498 #: pysvnmanager/model/repos.py:39 
     498#: pysvnmanager/model/repos.py:55 
    499499#, python-format 
    500500msgid "Repos root does not exist: %s" 
    501501msgstr "" 
    502502 
    503 #: pysvnmanager/model/repos.py:68 
     503#: pysvnmanager/model/repos.py:84 
    504504#, python-format 
    505505msgid "Repos %s already exists." 
    506506msgstr "" 
    507507 
    508 #: pysvnmanager/model/repos.py:139 
     508#: pysvnmanager/model/repos.py:166 
    509509#, python-format 
    510510msgid "Repos %s is not a blank repository." 
    511511msgstr "" 
    512512 
    513 #: pysvnmanager/model/svnauthz.py:61 
     513#: pysvnmanager/model/svnauthz.py:77 
    514514msgid "Name is not given." 
    515515msgstr "" 
    516516 
    517 #: pysvnmanager/model/svnauthz.py:63 
     517#: pysvnmanager/model/svnauthz.py:79 
    518518msgid "Name is not string." 
    519519msgstr "" 
    520520 
    521 #: pysvnmanager/model/svnauthz.py:67 
     521#: pysvnmanager/model/svnauthz.py:83 
    522522#, python-format 
    523523msgid "Name (%s) contains invalid characters." 
    524524msgstr "" 
    525525 
    526 #: pysvnmanager/model/svnauthz.py:475 
     526#: pysvnmanager/model/svnauthz.py:491 
    527527#, python-format 
    528528msgid "Recursive group membership for %s" 
    529529msgstr "" 
    530530 
    531 #: pysvnmanager/model/svnauthz.py:569 
     531#: pysvnmanager/model/svnauthz.py:585 
    532532#, python-format 
    533533msgid "Not a valid username: %s" 
    534534msgstr "" 
    535535 
    536 #: pysvnmanager/model/svnauthz.py:686 
     536#: pysvnmanager/model/svnauthz.py:702 
    537537#, python-format 
    538538msgid "Group %s is referenced by group %s." 
    539539msgstr "" 
    540540 
    541 #: pysvnmanager/model/svnauthz.py:1232 
     541#: pysvnmanager/model/svnauthz.py:1248 
    542542msgid "Update failed! You are working on a out-of-date revision." 
    543543msgstr "" 
    544544 
    545 #: pysvnmanager/model/svnauthz.py:1486 pysvnmanager/model/svnauthz.py:1493 
    546 #: pysvnmanager/model/svnauthz.py:1497 
     545#: pysvnmanager/model/svnauthz.py:1502 pysvnmanager/model/svnauthz.py:1509 
     546#: pysvnmanager/model/svnauthz.py:1513 
    547547#, python-format 
    548548msgid "Unknown rule format: %s" 
    549549msgstr "" 
    550550 
    551 #: pysvnmanager/model/svnauthz.py:1511 
     551#: pysvnmanager/model/svnauthz.py:1527 
    552552#, python-format 
    553553msgid "No module exist for %s:%s" 
    554554msgstr "" 
    555555 
    556 #: pysvnmanager/model/svnauthz.py:1621 
     556#: pysvnmanager/model/svnauthz.py:1637 
    557557#, python-format 
    558558msgid "Alias %s is referenced by group %s." 
    559559msgstr "" 
    560560 
    561 #: pysvnmanager/model/svnauthz.py:1633 
     561#: pysvnmanager/model/svnauthz.py:1649 
    562562#, python-format 
    563563msgid "%s is referenced by [%s]." 
    564564msgstr "" 
    565565 
    566 #: pysvnmanager/model/svnauthz.py:1769 
     566#: pysvnmanager/model/svnauthz.py:1785 
    567567#, python-format 
    568568msgid "User %(username)s has Full (RW) rights for module %(repos)s:%(path)s" 
    569569msgstr "" 
    570570 
    571 #: pysvnmanager/model/svnauthz.py:1771 
     571#: pysvnmanager/model/svnauthz.py:1787 
    572572#, python-format 
    573573msgid "User %(username)s has ReadOnly (RO) rights for module %(repos)s:%(path)s" 
    574574msgstr "" 
    575575 
    576 #: pysvnmanager/model/svnauthz.py:1773 
     576#: pysvnmanager/model/svnauthz.py:1789 
    577577#, python-format 
    578578msgid "User %(username)s can *NOT* access to module %(repos)s:%(path)s" 
    579579msgstr "" 
    580580 
    581 #: pysvnmanager/model/svnauthz.py:1813 
     581#: pysvnmanager/model/svnauthz.py:1829 
    582582#, python-format 
    583583msgid "" 
     
    591591msgstr "" 
    592592 
    593 #: pysvnmanager/model/svnauthz.py:1832 
     593#: pysvnmanager/model/svnauthz.py:1848 
    594594#, python-format 
    595595msgid "" 
     
    753753 
    754754#: pysvnmanager/templates/authz/index.mako:678 
    755 #: pysvnmanager/templates/role/index.mako:711 
     755#: pysvnmanager/templates/role/index.mako:708 
    756756msgid "Save" 
    757757msgstr "" 
    758758 
    759759#: pysvnmanager/templates/authz/index.mako:679 
    760 #: pysvnmanager/templates/role/index.mako:712 
     760#: pysvnmanager/templates/role/index.mako:709 
    761761msgid "Delete" 
    762762msgstr "" 
    763763 
    764764#: pysvnmanager/templates/authz/index.mako:680 
    765 #: pysvnmanager/templates/role/index.mako:713 
     765#: pysvnmanager/templates/role/index.mako:710 
    766766msgid "Cancel" 
    767767msgstr "" 
     
    769769#: pysvnmanager/templates/check/index.mako:5 
    770770#: pysvnmanager/templates/check/index.mako:106 
    771 #: pysvnmanager/templates/check/index.mako:176 
     771#: pysvnmanager/templates/check/index.mako:173 
    772772msgid "Check Permissions" 
    773773msgstr "" 
     
    801801msgstr "" 
    802802 
    803 #: pysvnmanager/templates/check/index.mako:139 
    804 #: pysvnmanager/templates/check/index.mako:152 
    805 #: pysvnmanager/templates/check/index.mako:164 
     803#: pysvnmanager/templates/check/index.mako:138 
     804#: pysvnmanager/templates/check/index.mako:149 
     805#: pysvnmanager/templates/check/index.mako:161 
    806806msgid "Manual input" 
    807807msgstr "" 
    808808 
    809 #: pysvnmanager/templates/check/index.mako:146 
     809#: pysvnmanager/templates/check/index.mako:145 
    810810msgid "Select repository" 
    811811msgstr "" 
    812812 
    813 #: pysvnmanager/templates/check/index.mako:160 
     813#: pysvnmanager/templates/check/index.mako:157 
    814814msgid "Select module" 
    815815msgstr "" 
     
    939939msgstr "" 
    940940 
    941 #: pysvnmanager/templates/role/index.mako:636 
     941#: pysvnmanager/templates/role/index.mako:634 
    942942msgid "New Group" 
    943943msgstr "" 
    944944 
    945 #: pysvnmanager/templates/role/index.mako:637 
     945#: pysvnmanager/templates/role/index.mako:635 
    946946msgid "New Alias" 
    947947msgstr "" 
    948948 
    949 #: pysvnmanager/templates/role/index.mako:641 
     949#: pysvnmanager/templates/role/index.mako:639 
    950950msgid "New group name:" 
    951951msgstr "" 
    952952 
    953 #: pysvnmanager/templates/role/index.mako:645 
     953#: pysvnmanager/templates/role/index.mako:643 
    954954msgid "New alias name:" 
    955955msgstr "" 
    956956 
    957 #: pysvnmanager/templates/role/index.mako:657 
     957#: pysvnmanager/templates/role/index.mako:655 
    958958msgid "Members list" 
    959959msgstr "" 
    960960 
    961 #: pysvnmanager/templates/role/index.mako:662 
     961#: pysvnmanager/templates/role/index.mako:660 
    962962msgid "Other users" 
    963963msgstr "" 
    964964 
    965 #: pysvnmanager/templates/role/index.mako:681 
     965#: pysvnmanager/templates/role/index.mako:679 
    966966msgid "Ignore recursive" 
    967967msgstr "" 
    968968 
    969 #: pysvnmanager/templates/role/index.mako:693 
     969#: pysvnmanager/templates/role/index.mako:691 
    970970msgid "User name:" 
    971971msgstr "" 
  • trunk/pysvnmanager/i18n/zh/LC_MESSAGES/pysvnmanager.po

    r47 r55  
    99msgid "" 
    1010msgstr "" 
    11 "Project-Id-Version: pysvnmanager\n" 
     11"Project-Id-Version:  pysvnmanager\n" 
    1212"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 
    1313"POT-Creation-Date: 2008-07-03 22:14+0800\n" 
    14 "PO-Revision-Date: 2008-08-28 19:04+0800\n" 
     14"PO-Revision-Date: 2008-08-30 13:12+0800\n" 
    1515"Last-Translator: Jiang Xin <worldhello.net@gmail.com>\n" 
    16 "Language-Team:  <zh@li.org>\n" 
    17 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION\n" 
     16"Language-Team: <zh@li.org>\n" 
     17"Plural-Forms: nplurals=2; plural=(n != 1)\n" 
    1818"MIME-Version: 1.0\n" 
    19 "Content-Type: text/plain; charset=UTF-8\n" 
     19"Content-Type: text/plain; charset=utf-8\n" 
    2020"Content-Transfer-Encoding: 8bit\n" 
    21 "Generated-By: Babel 0.9.2\n" 
    22 "X-Generator: KBabel 1.11.4\n" 
    23  
    24 #: pysvnmanager/controllers/authz.py:43 
     21"Generated-By: Babel 0.9.4\n" 
     22 
     23#: pysvnmanager/controllers/authz.py:60 
    2524#: pysvnmanager/templates/authz/index.mako:152 
    2625#: pysvnmanager/templates/check/index.mako:10 
     
    2827msgstr "所有用户(含匿名)" 
    2928 
    30 #: pysvnmanager/controllers/authz.py:44 
     29#: pysvnmanager/controllers/authz.py:61 
    3130#: pysvnmanager/templates/authz/index.mako:154 
    3231#: pysvnmanager/templates/check/index.mako:11 
     
    3433msgstr "注册用户" 
    3534 
    36 #: pysvnmanager/controllers/authz.py:45 
     35#: pysvnmanager/controllers/authz.py:62 
    3736#: pysvnmanager/templates/authz/index.mako:156 
    3837#: pysvnmanager/templates/check/index.mako:12 
     
    4039msgstr "匿名用户" 
    4140 
    42 #: pysvnmanager/controllers/authz.py:50 pysvnmanager/controllers/role.py:50 
    43 #: pysvnmanager/controllers/role.py:70 
     41#: pysvnmanager/controllers/authz.py:67 pysvnmanager/controllers/role.py:67 
     42#: pysvnmanager/controllers/role.py:87 
    4443#: pysvnmanager/templates/authz/index.mako:148 
    4544#: pysvnmanager/templates/check/index.mako:17 
     
    5150msgstr "团队:" 
    5251 
    53 #: pysvnmanager/controllers/authz.py:53 pysvnmanager/controllers/role.py:55 
    54 #: pysvnmanager/controllers/role.py:72 
     52#: pysvnmanager/controllers/authz.py:70 pysvnmanager/controllers/role.py:72 
     53#: pysvnmanager/controllers/role.py:89 
    5554#: pysvnmanager/templates/authz/index.mako:150 
    5655#: pysvnmanager/templates/check/index.mako:19 
     
    6261msgstr "别名:" 
    6362 
    64 #: pysvnmanager/controllers/authz.py:68 pysvnmanager/controllers/authz.py:99 
    65 #: pysvnmanager/controllers/check.py:89 pysvnmanager/controllers/repos.py:40 
    66 #: pysvnmanager/controllers/repos.py:59 pysvnmanager/controllers/role.py:43 
     63#: pysvnmanager/controllers/authz.py:85 pysvnmanager/controllers/authz.py:116 
     64#: pysvnmanager/controllers/check.py:106 pysvnmanager/controllers/repos.py:57 
     65#: pysvnmanager/controllers/repos.py:76 pysvnmanager/controllers/role.py:60 
    6766#: pysvnmanager/templates/check/index.mako:9 
    6867#: pysvnmanager/templates/check/index.mako:23 
     
    7271msgstr "请选择..." 
    7372 
    74 #: pysvnmanager/controllers/authz.py:160 
     73#: pysvnmanager/controllers/authz.py:177 
    7574#, python-format 
    7675msgid "User %(user)s changed authz rules. (rev:%(rev)s)" 
    7776msgstr "用户 %(user)s 修改了授权策略。(rev:%(rev)s)" 
    7877 
    79 #: pysvnmanager/controllers/authz.py:173 
     78#: pysvnmanager/controllers/authz.py:190 
    8079#, python-format 
    8180msgid "Repository %s not exist." 
    8281msgstr "版本库 %s 不存在。" 
    8382 
    84 #: pysvnmanager/controllers/authz.py:181 
     83#: pysvnmanager/controllers/authz.py:198 
    8584#, python-format 
    8685msgid "Module %s not exist." 
    8786msgstr "模组 %s 不存在。" 
    8887 
    89 #: pysvnmanager/controllers/authz.py:187 
     88#: pysvnmanager/controllers/authz.py:204 
    9089msgid "You can not delete yourself from admin list." 
    9190msgstr "您不能将自己从管理员列表中删除。" 
    9291 
    93 #: pysvnmanager/controllers/authz.py:212 
     92#: pysvnmanager/controllers/authz.py:229 
    9493#, python-format 
    9594msgid "User %(user)s delete authz rules. (rev:%(rev)s)" 
    9695msgstr "用户 %(user)s 删除了授权策略。(rev:%(rev)s)" 
    9796 
    98 #: pysvnmanager/controllers/check.py:69 
     97#: pysvnmanager/controllers/check.py:86 
    9998#: pysvnmanager/templates/auth_failed.mako:3 
    10099msgid "Permission denied." 
    101100msgstr "没有权限。" 
    102101 
    103 #: pysvnmanager/controllers/logs.py:50 
     102#: pysvnmanager/controllers/logs.py:68 
    104103msgid "Rev" 
    105104msgstr "版本" 
    106105 
    107 #: pysvnmanager/controllers/logs.py:51 
     106#: pysvnmanager/controllers/logs.py:69 
    108107msgid "Who" 
    109108msgstr "管理员" 
    110109 
    111 #: pysvnmanager/controllers/logs.py:52 
     110#: pysvnmanager/controllers/logs.py:70 
    112111msgid "When" 
    113112msgstr "时间" 
    114113 
    115 #: pysvnmanager/controllers/logs.py:53 
     114#: pysvnmanager/controllers/logs.py:71 
    116115msgid "Why" 
    117116msgstr "说明" 
    118117 
    119 #: pysvnmanager/controllers/logs.py:54 
     118#: pysvnmanager/controllers/logs.py:72 
    120119msgid "Compare" 
    121120msgstr "比较" 
    122121 
    123 #: pysvnmanager/controllers/logs.py:97 
     122#: pysvnmanager/controllers/logs.py:115 
    124123msgid "Page: " 
    125124msgstr "页面: " 
    126125 
    127 #: pysvnmanager/controllers/logs.py:133 
     126#: pysvnmanager/controllers/logs.py:151 
    128127msgid "Compares between" 
    129128msgstr "版本间比较" 
    130129 
    131 #: pysvnmanager/controllers/logs.py:152 
     130#: pysvnmanager/controllers/logs.py:170 
    132131#, python-format 
    133132msgid "Rollback successfully to revision: %s" 
    134133msgstr "成功回滚至版本: %s" 
    135134 
    136 #: pysvnmanager/controllers/logs.py:161 
     135#: pysvnmanager/controllers/logs.py:179 
    137136#, python-format 
    138137msgid "Rollback failed: %s" 
    139138msgstr "回滚失败: %s" 
    140139 
    141 #: pysvnmanager/controllers/repos.py:74 
     140#: pysvnmanager/controllers/repos.py:91 
    142141msgid "Installed hooks:" 
    143142msgstr "已安装插件:" 
    144143 
    145 #: pysvnmanager/controllers/repos.py:80 
     144#: pysvnmanager/controllers/repos.py:97 
    146145msgid "Id" 
    147146msgstr "Id" 
    148147 
    149 #: pysvnmanager/controllers/repos.py:81 
     148#: pysvnmanager/controllers/repos.py:98 
    150149msgid "Plugin name" 
    151150msgstr "插件名称" 
    152151 
    153 #: pysvnmanager/controllers/repos.py:82 
    154 #: pysvnmanager/hooks/plugins/__init__.py:314 
     152#: pysvnmanager/controllers/repos.py:99 
     153#: pysvnmanager/hooks/plugins/__init__.py:330 
    155154msgid "Type" 
    156155msgstr "类型" 
    157156 
    158 #: pysvnmanager/controllers/repos.py:96 
     157#: pysvnmanager/controllers/repos.py:113 
    159158msgid "Remove selected hooks" 
    160159msgstr "删除选择的插件" 
    161160 
    162 #: pysvnmanager/controllers/repos.py:119 
     161#: pysvnmanager/controllers/repos.py:136 
    163162#, python-format 
    164163msgid "" 
     
    169168"%(msg)s" 
    170169 
    171 #: pysvnmanager/controllers/repos.py:122 
     170#: pysvnmanager/controllers/repos.py:139 
    172171#, python-format 
    173172msgid "Apply plugin '%(plugin)s' on '%(repos)s' success." 
    174173msgstr "成功启用版本库'%(repos)s'的插件'%(plugin)s'。 " 
    175174 
    176 #: pysvnmanager/controllers/repos.py:143 
     175#: pysvnmanager/controllers/repos.py:160 
    177176#, python-format 
    178177msgid "" 
     
    183182"%(msg)s" 
    184183 
    185 #: pysvnmanager/controllers/repos.py:146 
     184#: pysvnmanager/controllers/repos.py:163 
    186185#, python-format 
    187186msgid "Delete plugin '%(plugin)s' on '%(repos)s' success." 
    188187msgstr "成功删除版本库'%(repos)s'的插件'%(plugin)s'。" 
    189188 
    190 #: pysvnmanager/controllers/repos.py:149 
     189#: pysvnmanager/controllers/repos.py:166 
    191190#, python-format 
    192191msgid "No plugin has been deleted for '%(repos)s'." 
    193192msgstr "未删除版本库'%(repos)s'的插件。" 
    194193 
    195 #: pysvnmanager/controllers/repos.py:158 
     194#: pysvnmanager/controllers/repos.py:175 
    196195#, python-format 
    197196msgid "" 
     
    202201"%(msg)s" 
    203202 
    204 #: pysvnmanager/controllers/repos.py:161 
     203#: pysvnmanager/controllers/repos.py:178 
    205204#, python-format 
    206205msgid "Create repository '%(repos)s' success." 
    207206msgstr "成功创建版本库'%(repos)s'。" 
    208207 
    209 #: pysvnmanager/controllers/repos.py:174 
     208#: pysvnmanager/controllers/repos.py:191 
    210209#, python-format 
    211210msgid "" 
     
    216215"%(msg)s" 
    217216 
    218 #: pysvnmanager/controllers/repos.py:177 
     217#: pysvnmanager/controllers/repos.py:194 
    219218#, python-format 
    220219msgid "Delete blank repository '%(repos)s' success." 
    221220msgstr "成功删除版本库'%(repos)s'。" 
    222221 
    223 #: pysvnmanager/controllers/role.py:103 
     222#: pysvnmanager/controllers/role.py:120 
    224223#, python-format 
    225224msgid "User %(user)s changed group: %(grp)s. (rev:%(rev)s)" 
    226225msgstr "用户 %(user)s 修改用户组: %(grp)s。(rev:%(rev)s)" 
    227226 
    228 #: pysvnmanager/controllers/role.py:123 
     227#: pysvnmanager/controllers/role.py:140 
    229228#, python-format 
    230229msgid "User %(user)s delete group: %(grp)s. (rev:%(rev)s)" 
    231230msgstr "用户 %(user)s 删除用户组: %(grp)s。(rev:%(rev)s)" 
    232231 
    233 #: pysvnmanager/controllers/role.py:145 
     232#: pysvnmanager/controllers/role.py:162 
    234233#, python-format 
    235234msgid "User %(user)s changed alias: %(alias)s. (rev:%(rev)s)" 
    236235msgstr "用户 %(user)s 修改别名: %(alias)s。(rev:%(rev)s)" 
    237236 
    238 #: pysvnmanager/controllers/role.py:165 
     237#: pysvnmanager/controllers/role.py:182 
    239238#, python-format 
    240239msgid "User %(user)s delete alias: %(alias)s. (rev:%(rev)s,%(msg)s)" 
    241240msgstr "用户 %(user)s 删除别名: %(alias)s。(rev:%(rev)s,%(msg)s)" 
    242241 
    243 #: pysvnmanager/controllers/security.py:34 
     242#: pysvnmanager/controllers/security.py:52 
    244243#, python-format 
    245244msgid "User %s logged in" 
    246245msgstr "用户 %s 登录" 
    247246 
    248 #: pysvnmanager/controllers/security.py:45 
     247#: pysvnmanager/controllers/security.py:63 
    249248#, python-format 
    250249msgid "Login failed for user: %s" 
    251250msgstr "以 %s 身份登录失败" 
    252251 
    253 #: pysvnmanager/controllers/security.py:53 
     252#: pysvnmanager/controllers/security.py:71 
    254253#, python-format 
    255254msgid "User %s logged out" 
    256255msgstr "用户 %s 登出" 
    257256 
    258 #: pysvnmanager/hooks/plugins/AllowRevpropChange.py:10 
     257#: pysvnmanager/hooks/plugins/AllowRevpropChange.py:26 
    259258msgid "Allow revprop change" 
    260259msgstr "允许修改版本属性" 
    261260 
    262 #: pysvnmanager/hooks/plugins/AllowRevpropChange.py:16 
     261#: pysvnmanager/hooks/plugins/AllowRevpropChange.py:32 
    263262msgid "Allow user change commit-log or other rev-properties." 
    264263msgstr "允许用户修改提交说明等版本属性" 
    265264 
    266 #: pysvnmanager/hooks/plugins/AllowRevpropChange.py:19 
     265#: pysvnmanager/hooks/plugins/AllowRevpropChange.py:35 
    267266msgid "" 
    268267"Commit-log is the only rev-prop we allow to change. Because the changes " 
     
    271270msgstr "提交说明是我们唯一允许修改的版本属性。因为版本属性本身未被版本控制,修改版本属性是不可恢复的操作,所以管理员在启用本功能前,应该考虑设置变更通知以记录修改事件。" 
    272271 
    273 #: pysvnmanager/hooks/plugins/BugtrackMantis.py:10 
     272#: pysvnmanager/hooks/plugins/BugtrackMantis.py:26 
    274273msgid "Mantis bugtracking integration" 
    275274msgstr "整合 Mantis 缺陷跟踪系统" 
    276275 
    277 #: pysvnmanager/hooks/plugins/BugtrackMantis.py:16 
     276#: pysvnmanager/hooks/plugins/BugtrackMantis.py:32 
    278277msgid "" 
    279278"Integration Subversion with Mantis bugtracking. If commit-log has proper " 
     
    284283"的状态修改为已修改,并将commit-log 以及代码变更添加到说明中。" 
    285284 
    286 #: pysvnmanager/hooks/plugins/CapCheckMergeInfo.py:10 
     285#: pysvnmanager/hooks/plugins/CapCheckMergeInfo.py:26 
    287286msgid "Subversion client version check (>1.5.0)" 
    288287msgstr "Subversion 客户端版本检查 (>1.5.0)" 
    289288 
    290 #: pysvnmanager/hooks/plugins/CapCheckMergeInfo.py:16 
     289#: pysvnmanager/hooks/plugins/CapCheckMergeInfo.py:32 
    291290msgid "Check subversion client version. if version below 1.5.0, checkin denied." 
    292291msgstr "检查 subversion 客户端版本。如果版本号小于 1.5.0,禁止客户端提交。" 
    293292 
    294 #: pysvnmanager/hooks/plugins/CapCheckMergeInfo.py:19 
     293#: pysvnmanager/hooks/plugins/CapCheckMergeInfo.py:35 
    295294msgid "" 
    296295"SVN below 1.5.0 can not handle mergeinfo properly.It can mess up our " 
     
    298297msgstr "小于 1.5.0 版本的 SVN 客户端不能正确处理 mergeinfo。会破坏自动的合并追踪功能!" 
    299298 
    300 #: pysvnmanager/hooks/plugins/CaseInsensitive.py:10 
     299#: pysvnmanager/hooks/plugins/CaseInsensitive.py:26 
    301300msgid "Detect case-insensitive filename clashes" 
    302301msgstr "检查大小写引起的文件名冲突" 
    303302 
    304 #: pysvnmanager/hooks/plugins/CaseInsensitive.py:16 
     303#: pysvnmanager/hooks/plugins/CaseInsensitive.py:32 
    305304msgid "A pre-commit hook to detect case-insensitive filename clashes." 
    306305msgstr "在 pre-commit 钩子中执行,检查文件名大小写引起的文件名冲突。" 
    307306 
    308 #: pysvnmanager/hooks/plugins/CaseInsensitive.py:19 
     307#: pysvnmanager/hooks/plugins/CaseInsensitive.py:35 
    309308msgid "" 
    310309"Subversion services may host on a filename case-sensitive OS,\n" 
     
    324323"- 如果发现冲突,拒绝提交,并报错。\n" 
    325324 
    326 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:11 
     325#: pysvnmanager/hooks/plugins/CommitLogCheck.py:27 
    327326msgid "Check commit log message" 
    328327msgstr "检查提交说明" 
    329328 
    330 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:17 
     329#: pysvnmanager/hooks/plugins/CommitLogCheck.py:33 
    331330msgid "User must provide commit-log message when checkin." 
    332331msgstr "用户在代码提交时,必须提供提交说明。" 
    333332 
    334 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:50 
    335 #: pysvnmanager/hooks/plugins/EmailNotify.py:73 
    336 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:49 
     333#: pysvnmanager/hooks/plugins/CommitLogCheck.py:66 
     334#: pysvnmanager/hooks/plugins/EmailNotify.py:89 
     335#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:65 
    337336msgid "Current configuration" 
    338337msgstr "当前设置" 
    339338 
    340 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:52 
     339#: pysvnmanager/hooks/plugins/CommitLogCheck.py:68 
    341340msgid "Commit log check is enabled." 
    342341msgstr "提交说明检查已经启用。" 
    343342 
    344 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:54 
     343#: pysvnmanager/hooks/plugins/CommitLogCheck.py:70 
    345344msgid "Commit log check is disabled." 
    346345msgstr "提交说明检查已经禁用。" 
    347346 
    348 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:56 
    349 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:95 
     347#: pysvnmanager/hooks/plugins/CommitLogCheck.py:72 
     348#: pysvnmanager/hooks/plugins/CommitLogCheck.py:111 
    350349msgid "Minimal size of commit log: " 
    351350msgstr "提交说明长度检查,最少:" 
    352351 
    353 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:61 
    354 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:101 
     352#: pysvnmanager/hooks/plugins/CommitLogCheck.py:77 
     353#: pysvnmanager/hooks/plugins/CommitLogCheck.py:117 
    355354msgid "Pattern which commit log must match against: " 
    356355msgstr "提交说明必须与该模板匹配:" 
    357356 
    358 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:64 
     357#: pysvnmanager/hooks/plugins/CommitLogCheck.py:80 
    359358msgid "Pattern which commit log must **NOT** match against: " 
    360359msgstr "提交说明 **不能** 出现类似内容:" 
    361360 
    362 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:83 
    363 #: pysvnmanager/hooks/plugins/EmailNotify.py:97 
    364 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:73 
     361#: pysvnmanager/hooks/plugins/CommitLogCheck.py:99 
     362#: pysvnmanager/hooks/plugins/EmailNotify.py:113 
     363#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:89 
    365364msgid "Fill this form" 
    366365msgstr "填写表单" 
    367366 
    368 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:87 
     367#: pysvnmanager/hooks/plugins/CommitLogCheck.py:103 
    369368msgid "Enable commit log check: " 
    370369msgstr "启用提交说明检查:" 
    371370 
    372 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:90 
    373 #: pysvnmanager/hooks/plugins/EmailNotify.py:104 
    374 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:80 
     371#: pysvnmanager/hooks/plugins/CommitLogCheck.py:106 
     372#: pysvnmanager/hooks/plugins/EmailNotify.py:120 
     373#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:96 
    375374msgid "Enable" 
    376375msgstr "启用" 
    377376 
    378 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:92 
    379 #: pysvnmanager/hooks/plugins/EmailNotify.py:106 
    380 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:82 
     377#: pysvnmanager/hooks/plugins/CommitLogCheck.py:108 
     378#: pysvnmanager/hooks/plugins/EmailNotify.py:122 
     379#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:98 
    381380msgid "Disable" 
    382381msgstr "关闭" 
    383382 
    384 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:107 
     383#: pysvnmanager/hooks/plugins/CommitLogCheck.py:123 
    385384msgid "Pattern which commit log must <b>NOT</b> match against: " 
    386385msgstr "提交说明<b>不能</b>出现类似内容:" 
    387386 
    388 #: pysvnmanager/hooks/plugins/CommitLogCheck.py:140 
     387#: pysvnmanager/hooks/plugins/CommitLogCheck.py:156 
    389388msgid "Commit log size must > 0." 
    390389msgstr "提交说明最小长度阈值必须大于零。" 
    391390 
    392 #: pysvnmanager/hooks/plugins/EmailNotify.py:11 
     391#: pysvnmanager/hooks/plugins/EmailNotify.py:27 
    393392msgid "Send email notify for commit event" 
    394393msgstr "针对代码变更发出邮件通知" 
    395394 
    396 #: pysvnmanager/hooks/plugins/EmailNotify.py:17 
     395#: pysvnmanager/hooks/plugins/EmailNotify.py:33 
    397396msgid "" 
    398397"Send a notification email describing either a commit or a revprop-change " 
     
    400399msgstr "当对 Subversion 代码库中的代码修改或者修改状态,发出邮件通知。" 
    401400 
    402 #: pysvnmanager/hooks/plugins/EmailNotify.py:21 
     401#: pysvnmanager/hooks/plugins/EmailNotify.py:37 
    403402msgid "" 
    404403"\n" 
     
    446445"--diff n              不包含代码差异(缺省包含)\n" 
    447446 
    448 #: pysvnmanager/hooks/plugins/EmailNotify.py:75 
     447#: pysvnmanager/hooks/plugins/EmailNotify.py:91 
    449448msgid "Email notify enabled." 
    450449msgstr "邮件通知启用。" 
    451450 
    452 #: pysvnmanager/hooks/plugins/EmailNotify.py:77 
     451#: pysvnmanager/hooks/plugins/EmailNotify.py:93 
    453452msgid "Email notify disabled." 
    454453msgstr "邮件通知关闭。" 
    455454 
    456 #: pysvnmanager/hooks/plugins/EmailNotify.py:79 
     455#: pysvnmanager/hooks/plugins/EmailNotify.py:95 
    457456msgid "Parameters: " 
    458457msgstr "参数: " 
    459458 
    460 #: pysvnmanager/hooks/plugins/EmailNotify.py:101 
     459#: pysvnmanager/hooks/plugins/EmailNotify.py:117 
    461460msgid "Enable email notify." 
    462461msgstr "启用邮件通知。" 
    463462 
    464 #: pysvnmanager/hooks/plugins/EmailNotify.py:109 
     463#: pysvnmanager/hooks/plugins/EmailNotify.py:125 
    465464msgid "Input email notify configurations: " 
    466465msgstr "输入邮件通知配置参数: " 
    467466 
    468 #: pysvnmanager/hooks/plugins/EmailNotify.py:139 
    469 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:115 
     467#: pysvnmanager/hooks/plugins/EmailNotify.py:155 
     468#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:131 
    470469msgid "Wrong configuration." 
    471470msgstr "错误的配置" 
    472471 
    473 #: pysvnmanager/hooks/plugins/EolStyleCheck.py:10 
     472#: pysvnmanager/hooks/plugins/EolStyleCheck.py:26 
    474473msgid "mime-type and eol-style check" 
    475474msgstr "文件类型和换行符设置检查" 
    476475 
    477 #: pysvnmanager/hooks/plugins/EolStyleCheck.py:16 
     476#: pysvnmanager/hooks/plugins/EolStyleCheck.py:32 
    478477msgid "New file must provide svn:eol-style if not binary file." 
    479478msgstr "新增的文本文件,必须设置换行符。" 
    480479 
    481 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:10 
     480#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:26 
    482481msgid "Subversion readonly mirror" 
    483482msgstr "SVN 只读镜像" 
    484483 
    485 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:16 
     484#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:32 
    486485msgid "" 
    487486"This subversion repository is a svnsync readonly mirror. Nobody can " 
     
    489488msgstr "本 SVN 版本库是一个 svnsync 的只读镜像。除了 svnsync 管理员,任何人都不能提交。" 
    490489 
    491 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:20 
     490#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:36 
    492491msgid "" 
    493492"Commit to the remote svn server, this repository is a readonly svn " 
     
    496495msgstr "提交到远程的 SVN 服务器,本地服务器是一个只读的 SVN 镜像。同步远程与本地的 SVN 服务器,是管理员的职责。" 
    497496 
    498 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:51 
     497#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:67 
    499498msgid "Readonly mirror enabled." 
    500499msgstr "只读镜像启用。" 
    501500 
    502 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:53 
     501#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:69 
    503502msgid "Readonly mirror disabled." 
    504503msgstr "只读镜像关闭。" 
    505504 
    506 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:55 
     505#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:71 
    507506msgid "Admin user: " 
    508507msgstr "管理员: " 
    509508 
    510 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:77 
     509#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:93 
    511510msgid "Enable readonly mirror: " 
    512511msgstr "启用只读镜像:" 
    513512 
    514 #: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:85 
     513#: pysvnmanager/hooks/plugins/ReadonlySvnMirror.py:101 
    515514msgid "Svnsync administrator: " 
    516515msgstr "Svnsync 管理员:" 
    517516 
    518 #: pysvnmanager/hooks/plugins/__init__.py:95 
     517#: pysvnmanager/hooks/plugins/__init__.py:111 
    519518#, python-format 
    520519msgid "repos '%s' not exist!" 
    521520msgstr "版本库 %s 不存在!" 
    522521 
    523 #: pysvnmanager/hooks/plugins/__init__.py:152 
     522#: pysvnmanager/hooks/plugins/__init__.py:168 
    524523#, python-format 
    525524msgid "Conflict: plugin '%s' is modified by others." 
    526525msgstr "冲突:插件'%s'被其他人修改了。" 
    527526 
    528 #: pysvnmanager/hooks/plugins/__init__.py:182 
    529 #: pysvnmanager/hooks/plugins/__init__.py:209 
    530 #: pysvnmanager/hooks/plugins/__init__.py:215 
    531 #: pysvnmanager/hooks/plugins/__init__.py:234 
    532 #: pysvnmanager/hooks/plugins/__init__.py:332 
    533 #: pysvnmanager/hooks/plugins/__init__.py:339 
     527#: pysvnmanager/hooks/plugins/__init__.py:198 
     528#: pysvnmanager/hooks/plugins/__init__.py:225 
     529#: pysvnmanager/hooks/plugins/__init__.py:231 
     530#: pysvnmanager/hooks/plugins/__init__.py:250 
    534531#: pysvnmanager/hooks/plugins/__init__.py:348 
     532#: pysvnmanager/hooks/plugins/__init__.py:355 
     533#: pysvnmanager/hooks/plugins/__init__.py:364 
    535534msgid "Plugin not fully implemented." 
    536535msgstr "插件未完全实现。" 
    537536 
    538 #: pysvnmanager/hooks/plugins/__init__.py:313 
     537#: pysvnmanager/hooks/plugins/__init__.py:329 
    539538msgid "Name" 
    540539msgstr "名称" 
    541540 
    542 #: pysvnmanager/hooks/plugins/__init__.py:315 
     541#: pysvnmanager/hooks/plugins/__init__.py:331 
    543542msgid "Description" 
    544543msgstr "说明" 
    545544 
    546 #: pysvnmanager/model/repos.py:39 
     545#: pysvnmanager/model/repos.py:55 
    547546#, python-format 
    548547msgid "Repos root does not exist: %s" 
    549548msgstr "版本库根不存在:%s" 
    550549 
    551 #: pysvnmanager/model/repos.py:68 
     550#: pysvnmanager/model/repos.py:84 
    552551#, python-format 
    553552msgid "Repos %s already exists." 
    554553msgstr "版本库 %s 已经存在。" 
    555554 
    556 #: pysvnmanager/model/repos.py:139 
     555#: pysvnmanager/model/repos.py:166 
    557556#, python-format 
    558557msgid "Repos %s is not a blank repository." 
    559558msgstr "版本库 %s 不是一个空的版本库。" 
    560559 
    561 #: pysvnmanager/model/svnauthz.py:61 
     560#: pysvnmanager/model/svnauthz.py:77 
    562561msgid "Name is not given." 
    563562msgstr "未能提供名称。" 
    564563 
    565 #: pysvnmanager/model/svnauthz.py:63 
     564#: pysvnmanager/model/svnauthz.py:79 
    566565msgid "Name is not string." 
    567566msgstr "名称不是字符串" 
    568567 
    569 #: pysvnmanager/model/svnauthz.py:67 
     568#: pysvnmanager/model/svnauthz.py:83 
    570569#, python-format 
    571570msgid "Name (%s) contains invalid characters." 
    572571msgstr "名称(%s)中包含非法字符。" 
    573572 
    574 #: pysvnmanager/model/svnauthz.py:475 
     573#: pysvnmanager/model/svnauthz.py:491 
    575574#, python-format 
    576575msgid "Recursive group membership for %s" 
    577576msgstr "%s 出现了循环组引用。" 
    578577 
    579 #: pysvnmanager/model/svnauthz.py:569 
     578#: pysvnmanager/model/svnauthz.py:585 
    580579#, python-format 
    581580msgid "Not a valid username: %s" 
    582581msgstr "非法用户名: %s" 
    583582 
    584 #: pysvnmanager/model/svnauthz.py:686 
     583#: pysvnmanager/model/svnauthz.py:702 
    585584#, python-format 
    586585msgid "Group %s is referenced by group %s." 
    587586msgstr "用户组 %s 被组 %s 引用。" 
    588587 
    589 #: pysvnmanager/model/svnauthz.py:1232 
     588#: pysvnmanager/model/svnauthz.py:1248 
    590589msgid "Update failed! You are working on a out-of-date revision." 
    591590msgstr "更新失败!您的更改是基于一个过期的版本,请先刷新再更改。" 
    592591 
    593 #: pysvnmanager/model/svnauthz.py:1486 pysvnmanager/model/svnauthz.py:1493 
    594 #: pysvnmanager/model/svnauthz.py:1497 
     592#: pysvnmanager/model/svnauthz.py:1502 pysvnmanager/model/svnauthz.py:1509 
     593#: pysvnmanager/model/svnauthz.py:1513 
    595594#, python-format 
    596595msgid "Unknown rule format: %s" 
    597596msgstr "未知策略格式: %s" 
    598597 
    599 #: pysvnmanager/model/svnauthz.py:1511 
     598#: pysvnmanager/model/svnauthz.py:1527 
    600599#, python-format 
    601600msgid "No module exist for %s:%s" 
    602601msgstr "模块不存在: %s:%s" 
    603602 
    604 #: pysvnmanager/model/svnauthz.py:1621 
     603#: pysvnmanager/model/svnauthz.py:1637 
    605604#, python-format 
    606605msgid "Alias %s is referenced by group %s." 
    607606msgstr "别名 %s 为用户组 %s 引用。" 
    608607 
    609 #: pysvnmanager/model/svnauthz.py:1633 
     608#: pysvnmanager/model/svnauthz.py:1649 
    610609#, python-format 
    611610msgid "%s is referenced by [%s]." 
    612611msgstr "%s 在 [%s] 中被引用。" 
    613612 
    614 #: pysvnmanager/model/svnauthz.py:1769 
     613#: pysvnmanager/model/svnauthz.py:1785 
    615614#, python-format 
    616615msgid "User %(username)s has Full (RW) rights for module %(repos)s:%(path)s" 
    617616msgstr "用户 %(username)s 对模组 %(repos)s:%(path)s 具有完全权限 (RW)" 
    618617 
    619 #: pysvnmanager/model/svnauthz.py:1771 
     618#: pysvnmanager/model/svnauthz.py:1787 
    620619#, python-format 
    621620msgid "User %(username)s has ReadOnly (RO) rights for module %(repos)s:%(path)s" 
    622621msgstr "用户 %(username)s 对模组 %(repos)s:%(path)s 具有只读权限 (RO)" 
    623622 
    624 #: pysvnmanager/model/svnauthz.py:1773 
     623#: pysvnmanager/model/svnauthz.py:1789 
    625624#, python-format 
    626625msgid "User %(username)s can *NOT* access to module %(repos)s:%(path)s" 
    627626msgstr "用户 %(username)s 对模组 %(repos)s:%(path)s *没有* 访问权限 (XX)" 
    628627 
    629 #: pysvnmanager/model/svnauthz.py:1813 
     628#: pysvnmanager/model/svnauthz.py:1829 
    630629#, python-format 
    631630msgid "" 
     
    646645"\n" 
    647646 
    648 #: pysvnmanager/model/svnauthz.py:1832 
     647#: pysvnmanager/model/svnauthz.py:1848 
    649648#, python-format 
    650649msgid "" 
     
    823822 
    824823#: pysvnmanager/templates/authz/index.mako:678 
    825 #: pysvnmanager/templates/role/index.mako:711 
     824#: pysvnmanager/templates/role/index.mako:708 
    826825msgid "Save" 
    827826msgstr "保存" 
    828827 
    829828#: pysvnmanager/templates/authz/index.mako:679 
    830 #: pysvnmanager/templates/role/index.mako:712 
     829#: pysvnmanager/templates/role/index.mako:709 
    831830msgid "Delete" 
    832831msgstr "删除" 
    833832 
    834833#: pysvnmanager/templates/authz/index.mako:680 
    835 #: pysvnmanager/templates/role/index.mako:713 
     834#: pysvnmanager/templates/role/index.mako:710 
    836835msgid "Cancel" 
    837836msgstr "取消" 
     
    839838#: pysvnmanager/templates/check/index.mako:5 
    840839#: pysvnmanager/templates/check/index.mako:106 
    841 #: pysvnmanager/templates/check/index.mako:176 
     840#: pysvnmanager/templates/check/index.mako:173 
    842841msgid "Check Permissions" 
    843842msgstr "权限检查" 
     
    871870msgstr "选择用户名" 
    872871 
    873 #: pysvnmanager/templates/check/index.mako:139 
    874 #: pysvnmanager/templates/check/index.mako:152 
    875 #: pysvnmanager/templates/check/index.mako:164 
     872#: pysvnmanager/templates/check/index.mako:138 
     873#: pysvnmanager/templates/check/index.mako:149 
     874#: pysvnmanager/templates/check/index.mako:161 
    876875msgid "Manual input" 
    877876msgstr "手工输入" 
    878877 
    879 #: pysvnmanager/templates/check/index.mako:146 
     878#: pysvnmanager/templates/check/index.mako:145 
    880879msgid "Select repository" 
    881880msgstr "选择版本库" 
    882881 
    883 #: pysvnmanager/templates/check/index.mako:160 
     882#: pysvnmanager/templates/check/index.mako:157 
    884883msgid "Select module" 
    885884msgstr "选择模组" 
     
    10091008msgstr "选择一个角色:" 
    10101009 
    1011 #: pysvnmanager/templates/role/index.mako:636 
     1010#: pysvnmanager/templates/role/index.mako:634 
    10121011msgid "New Group" 
    10131012msgstr "新用户组" 
    10141013 
    1015 #: pysvnmanager/templates/role/index.mako:637 
     1014#: pysvnmanager/templates/role/index.mako:635 
    10161015msgid "New Alias" 
    10171016msgstr "新别名" 
    10181017 
    1019 #: pysvnmanager/templates/role/index.mako:641 
     1018#: pysvnmanager/templates/role/index.mako:639 
    10201019msgid "New group name:" 
    10211020msgstr "新用户组名称:" 
    10221021 
    1023 #: pysvnmanager/templates/role/index.mako:645 
     1022#: pysvnmanager/templates/role/index.mako:643 
    10241023msgid "New alias name:" 
    10251024msgstr "新别名名称:" 
    10261025 
    1027 #: pysvnmanager/templates/role/index.mako:657 
     1026#: pysvnmanager/templates/role/index.mako:655 
    10281027msgid "Members list" 
    10291028msgstr "成员列表" 
    10301029 
    1031 #: pysvnmanager/templates/role/index.mako:662 
     1030#: pysvnmanager/templates/role/index.mako:660 
    10321031msgid "Other users" 
    10331032msgstr "其他用户" 
    10341033 
    1035 #: pysvnmanager/templates/role/index.mako:681 
     1034#: pysvnmanager/templates/role/index.mako:679 
    10361035msgid "Ignore recursive" 
    10371036msgstr "忽略组间循环引用" 
    10381037 
    1039 #: pysvnmanager/templates/role/index.mako:693 
     1038#: pysvnmanager/templates/role/index.mako:691 
    10401039msgid "User name:" 
    10411040msgstr "用户名:" 
  • trunk/pysvnmanager/lib/app_globals.py

    r50 r55  
    1717 
    1818"""The application's Globals object""" 
    19 from pylons import config 
    2019 
    2120class Globals(object): 
  • trunk/pysvnmanager/lib/base.py

    r50 r55  
    1818"""The base Controller API 
    1919 
    20 Provides the BaseController class for subclassing, and other objects 
    21 utilized by Controllers. 
     20Provides the BaseController class for subclassing. 
    2221""" 
     22from pylons.controllers import WSGIController 
     23from pylons.templating import render_mako as render 
     24 
    2325from pylons import c, cache, config, g, request, response, session 
    24 from pylons.controllers import WSGIController 
    2526from pylons.controllers.util import abort, etag_cache, redirect_to 
    2627from pylons.decorators import jsonify, validate 
    2728from pylons.i18n import _, ungettext, N_ 
    28 from pylons.templating import render 
    2929from pylons.i18n import set_lang, add_fallback 
    3030import pysvnmanager.lib.helpers as h 
     
    9292        # the request is routed to. This routing information is 
    9393        # available in environ['pylons.routes_dict'] 
     94 
    9495        return WSGIController.__call__(self, environ, start_response) 
    9596 
  • trunk/pysvnmanager/lib/helpers.py

    r50 r55  
    2121available to Controllers. This module is available to both as 'h'. 
    2222""" 
    23 from webhelpers import * 
     23# Import helpers as desired, or define your own, ie: 
     24# from webhelpers.html.tags import checkbox, password 
     25 
     26from routes import url_for, redirect_to 
     27from webhelpers.html import escape, HTML, literal, url_escape 
     28from webhelpers.html.tags import * 
     29from webhelpers.rails.prototype import link_to_remote, form_remote_tag 
     30from webhelpers.rails.scriptaculous import visual_effect 
     31from webhelpers.rails.asset_tag import javascript_include_tag, stylesheet_link_tag 
  • trunk/pysvnmanager/model/svnauthz.py

    r50 r55  
    12791279                raise Exception, "Size of file (%s) is zero!" % filename 
    12801280             
    1281             from svn import repos as _repos 
    1282             _repos.authz_read(filename, 1) 
     1281            try: 
     1282                from svn import repos as _repos 
     1283                _repos.authz_read(filename, 1) 
     1284            except ImportError: 
     1285                pass 
    12831286     
    12841287    def __str__(self): 
  • trunk/pysvnmanager/templates/base.mako

    r45 r55  
    3232      <tr> 
    3333          <td>${h.link_to(_("Check permissions"), h.url_for(controller="check", id=None))}</td> 
    34           <td>${h.link_to(_("Role management"), h.url(controller="role", id=None))}</td> 
    35           <td>${h.link_to(_("ACL management"), h.url(controller="authz", id=None))}</td> 
    36           <td>${h.link_to(_("Repos management"), h.url(controller="repos", id=None))}</td> 
    37           <td>${h.link_to(_("Change log"), h.url(controller="logs", id=None))}</td> 
     34          <td>${h.link_to(_("Role management"), h.url_for(controller="role", id=None))}</td> 
     35          <td>${h.link_to(_("ACL management"), h.url_for(controller="authz", id=None))}</td> 
     36          <td>${h.link_to(_("Repos management"), h.url_for(controller="repos", id=None))}</td> 
     37          <td>${h.link_to(_("Change log"), h.url_for(controller="logs", id=None))}</td> 
    3838          <td>welcome ${session.get('user')}</td> 
    39           <td>${h.link_to(_("Logout"), h.url(controller="logout", id=None))}</td> 
     39          <td>${h.link_to(_("Logout"), h.url_for(controller="logout", id=None))}</td> 
    4040      </tr> 
    4141  </table> 
  • trunk/pysvnmanager/templates/check/index.mako

    r45 r55  
    77 
    88<% 
    9 userlist = [[_("Please choose..."), '...'],  
    10             [_("All users(with anon)"), '*'],  
    11             [_("Known users"), '$authenticated'],  
    12             [_("Anonymous"), '$anonymous'],] 
     9userlist = [('...', _("Please choose...")),  
     10            ('*', _("All users(with anon)")),  
     11            ('$authenticated', _("Known users")),  
     12            ('$anonymous', _("Anonymous")),] 
    1313for i in c.userlist: 
    1414    if i == '*' or i =='$authenticated' or i == '$anonymous': 
    1515        continue 
    1616    if i[0] == '@': 
    17         userlist.append([_("Group:")+i[1:], i]) 
     17        userlist.append((i, _("Group:")+i[1:])) 
    1818    elif i[0] == '&': 
    19         userlist.append([_("Alias:")+i[1:], i]) 
     19        userlist.append((i, _("Alias:")+i[1:])) 
    2020    else: 
    2121        userlist.append([i, i]) 
    2222 
    23 reposlist = [[_("Please choose..."), '...'], [_("All repos"), '*']] 
     23reposlist = [('...', _("Please choose...")), ('*', _("All repos"))] 
    2424if '/' in c.reposlist: 
    25         reposlist.append([_("Default"), '/']) 
     25        reposlist.append(('/', _("Default"))) 
    2626for i in c.reposlist: 
    2727    if i == '/': 
    2828        continue 
    29     reposlist.append([i, i]) 
     29    reposlist.append((i, i)) 
    3030 
    3131pathlist = [[_("All modules"), '*'],] 
     
    107107 
    108108## Classic Form 
    109 ##     ${h.form(h.url(action='permission'), method='post')} 
     109##     ${h.form(h.url_for(action='permission'), method='post')} 
    110110 
    111111## AJAX Form 
     
    114114        h.form_remote_tag( 
    115115            html={'id':'main_form'},  
    116             url=h.url(action='access_map'),  
     116            url=h.url_for(action='access_map'),  
    117117            update=dict(success="acl_msg", failure="message"),  
    118118            method='post', before='showNoticesPopup()', 
     
    133133        <input type="radio" name="userinput" value="select" Checked> 
    134134            ${_("Select username")} 
    135             <select name="userselector" size="1" onFocus="select_username(this.form)"> 
    136                 ${h.options_for_select(userlist, c.selected_username)} 
    137             </select><br/> 
     135            ${h.select("userselector", c.selected_username, userlist, onFocus="select_username(this.form)")} 
     136            <br/> 
    138137        <input type="radio" name="userinput" value="manual"> 
    139138            ${_("Manual input")} 
     
    145144        <input type="radio" name="reposinput" value="select" Checked onClick="update_path(this.form)"> 
    146145            ${_("Select repository")} 
    147             <select name="reposselector" size="0" onFocus="select_repos(this.form)"  
    148                 onChange="update_path(this.form)"> 
    149                 ${h.options_for_select(reposlist, c.selected_repos)} 
    150             </select><br/> 
     146            ${h.select("reposselector", c.selected_repos, reposlist, onFocus="select_repos(this.form)", onChange="update_path(this.form)")} 
     147            <br/> 
    151148        <input type="radio" name="reposinput" value="manual">  
    152149            ${_("Manual input")} 
  • trunk/pysvnmanager/templates/repos/create.mako

    r44 r55  
    1313        h.form_remote_tag( 
    1414            html={'id':'main_form'},  
    15             url=h.url(action='create_submit'),  
     15            url=h.url_for(action='create_submit'),  
    1616            update="message", 
    1717            method='post', before='showNoticesPopup()', 
  • trunk/pysvnmanager/templates/repos/hooks.mako

    r46 r55  
    189189    <select name="repos_list" size="1" onChange='repos_changed()'> 
    190190    </select> 
    191 ${h.link_to(_("Add repository"), h.url(action="create"))} 
    192 ${h.link_to(_("Remove repository"), h.url(action="remove"))} 
     191${h.link_to(_("Add repository"), h.url_for(action="create"))} 
     192${h.link_to(_("Remove repository"), h.url_for(action="remove"))} 
    193193</DIV> 
    194194 
     
    207207        h.form_remote_tag( 
    208208            html={'id':'hook_setting_form'},  
    209             url=h.url(action='setup_hook'),  
     209            url=h.url_for(action='setup_hook'),  
    210210            update="message",  
    211211            method='post', before='showNoticesPopup()', 
     
    237237        h.form_remote_tag( 
    238238            html={'id':'installed_hook_form'},  
    239             url=h.url(action='uninstall_hook'),  
     239            url=h.url_for(action='uninstall_hook'),  
    240240            update="message", 
    241241            method='post', before='installed_hook_form_submit(this); showNoticesPopup()', 
  • trunk/pysvnmanager/templates/repos/remove.mako

    r44 r55  
    5454        h.form_remote_tag( 
    5555            html={'id':'main_form'},  
    56             url=h.url(action='remove_submit'),  
     56            url=h.url_for(action='remove_submit'),  
    5757            update="message", 
    5858            method='post', before='showNoticesPopup()', 
  • trunk/pysvnmanager/templates/role/index.mako

    r45 r55  
    1010<% 
    1111 
    12 role_list_opts = [[_("Please choose..."), '...'],] 
     12role_list_opts = [('...', _("Please choose...")),] 
    1313 
    1414for i in c.grouplist: 
     
    1616        continue 
    1717    elif i[0] == '@': 
    18         role_list_opts.append([_("Group:")+i[1:], i]) 
     18        role_list_opts.append((i, _("Group:")+i[1:])) 
    1919    else: 
    20         role_list_opts.append([i, i]) 
     20        role_list_opts.append((i, i)) 
    2121for i in c.aliaslist: 
    2222    if i[0] == '&': 
    23         role_list_opts.append([_("Alias:")+i[1:], i]) 
     23        role_list_opts.append((i, _("Alias:")+i[1:])) 
    2424    else: 
    25         role_list_opts.append([i, i]) 
    26  
    27 alias_as_list_opts = [[_("Please choose..."), '...'],] 
     25        role_list_opts.append((i, i)) 
     26 
     27alias_as_list_opts = [('...', _("Please choose...")),] 
    2828 
    2929for i in c.userlist: 
    30     alias_as_list_opts.append([i, i]) 
     30    alias_as_list_opts.append((i, i)) 
    3131 
    3232all_avail_users = [] 
     
    631631<div id='role_list_box' style="position:relative;" class=gainlayout> 
    632632${_("Select a role name:")} 
    633     <select name="role_list" size="1" onChange='role_changed()'> 
    634         ${h.options_for_select(role_list_opts)} 
    635     </select> 
     633    ${h.select("role_list", "", role_list_opts, onChange='role_changed()')} 
    636634<a href="#" onclick='new_group()'>[+${_("New Group")}]</a> 
    637635<a href="#" onclick='new_alias()'>[+${_("New Alias")}]</a> 
     
    694692  </td> 
    695693  <td> 
    696     <select name="alias_as_list" size="1" onChange="enable_save_btn();disable_delete_btn()"> 
    697         ${h.options_for_select(alias_as_list_opts)} 
    698     </select><br> 
     694    ${h.select("alias_as_list", "", alias_as_list_opts, onChange="enable_save_btn();disable_delete_btn()")} 
     695    <br> 
    699696    <input type="text" name="alias_as_input" size="10" maxlength="50" onChange="enable_save_btn();disable_delete_btn()"> 
    700697  </td> 
  • trunk/pysvnmanager/tests/__init__.py

    r50 r55  
    1818"""Pylons application test package 
    1919 
    20 When the test runner finds and executes tests within this directory, 
    21 this file will be loaded to setup the test environment. 
     20This package assumes the Pylons environment is already loaded, such as 
     21when this script is imported from the `nosetests --with-pylons=test.ini` 
     22command. 
    2223 
    23 It registers the root directory of the project in sys.path and 
    24 pkg_resources, in case the project hasn't been installed with 
    25 setuptools. It also initializes the application via websetup (paster 
    26 setup-app) with the project's test.ini configuration file. 
     24This module initializes the application via ``websetup`` (`paster 
     25setup-app`) and provides the base testing objects. 
    2726""" 
    2827import os 
    2928import sys 
    3029from shutil import copyfile 
     30from pylons import config 
     31 
    3132from unittest import TestCase 
    3233 
    33 import pkg_resources 
    34 import paste.fixture 
    35 import paste.script.appinstall 
    3634from paste.deploy import loadapp 
     35from paste.fixture import TestApp 
     36from paste.script.appinstall import SetupCommand 
     37from pylons import config 
    3738from routes import url_for 
    3839 
    39 from pylons import config 
     40import pylons.test 
     41import pkg_resources 
    4042 
    4143__all__ = ['url_for', 'TestController'] 
     
    5052 
    5153test_file = os.path.join(conf_dir, 'test.ini') 
    52 cmd = paste.script.appinstall.SetupCommand('setup-app') 
    53 cmd.run([test_file]) 
     54 
     55# Invoke websetup with the current config file 
     56SetupCommand('setup-app').run([config['__file__']]) 
    5457 
    5558class TestController(TestCase): 
     
    5760    def __init__(self, *args, **kwargs): 
    5861        self.authz_file = os.path.dirname(__file__) + '/../../config/svn.access.test' 
    59         wsgiapp = loadapp('config:test.ini', relative_to=conf_dir) 
    60         self.app = paste.fixture.TestApp(wsgiapp) 
     62        if pylons.test.pylonsapp: 
     63            wsgiapp = pylons.test.pylonsapp 
     64        else: 
     65            wsgiapp = loadapp('config:%s' % config['__file__']) 
     66        self.app = TestApp(wsgiapp) 
    6167        TestCase.__init__(self, *args, **kwargs) 
    6268 
  • trunk/pysvnmanager/tests/functional/test_authz.py

    r50 r55  
    2525        res = self.app.get(url_for(controller='authz')) 
    2626        assert res.status == 302 
    27         self.assertEqual(res.header('location'), '/security') 
     27        self.assertEqual(res.header('location'), 'http://localhost/login') 
    2828 
    2929        # Login as common user 
     
    3131        res = self.app.get(url_for(controller='authz')) 
    3232        assert res.status == 302 
    33         self.assertEqual(res.header('location'), '/security/failed', res.header('location')) 
     33        self.assertEqual(res.header('location'), 'http://localhost/security/failed', res.header('location')) 
    3434         
    3535        # Login as repos admin 
     
    5151        res = self.app.get(url_for(controller='authz', action='init_repos_list')) 
    5252        assert res.status == 302 
    53         self.assertEqual(res.header('location'), '/security') 
     53        self.assertEqual(res.header('location'), 'http://localhost/login') 
    5454 
    5555        # authz test 
     
    5757        res = self.app.get(url_for(controller='authz', action='init_repos_list')) 
    5858        assert res.status == 302, res.status 
    59         assert res.header('location')== '/security/failed', res.header('location') 
     59        assert res.header('location')=='http://localhost/security/failed', res.header('location') 
    6060 
    6161        # Login as superuser 
     
    7979        res = self.app.get(url_for(controller='authz', action='repos_changed')) 
    8080        assert res.status == 302 
    81         self.assertEqual(res.header('location'), '/security') 
     81        self.assertEqual(res.header('location'), 'http://localhost/login') 
    8282 
    8383        # authz test 
     
    8585        res = self.app.get(url_for(controller='authz', action='repos_changed')) 
    8686        assert res.status == 302, res.status 
    87         assert res.header('location')== '/security/failed', res.header('location') 
     87        assert res.header('location')=='http://localhost/security/failed', res.header('location') 
    8888 
    8989        # Login as superuser 
     
    120120        res = self.app.get(url_for(controller='authz', action='path_changed')) 
    121121        assert res.status == 302 
    122         self.assertEqual(res.header('location'), '/security') 
     122        self.assertEqual(res.header('location'), 'http://localhost/login') 
    123123 
    124124        # authz test 
     
    126126        res = self.app.get(url_for(controller='authz', action='path_changed')) 
    127127        assert res.status == 302, res.status 
    128         assert res.header('location')== '/security/failed', res.header('location') 
     128        assert res.header('location')=='http://localhost/security/failed', res.header('location') 
    129129 
    130130        self.login('root') 
     
    166166            res = self.app.get(url_for(controller='authz', action='save_authz')) 
    167167            assert res.status == 302 
    168             self.assertEqual(res.header('location'), '/security') 
     168            self.assertEqual(res.header('location'), 'http://localhost/login') 
    169169 
    170170            # authz test 
     
    172172            res = self.app.get(url_for(controller='authz', action='save_authz')) 
    173173            assert res.status == 302, res.status 
    174             assert res.header('location')== '/security/failed', res.header('location') 
     174            assert res.header('location')=='http://localhost/security/failed', res.header('location') 
    175175             
    176176            # Login as superuser 
     
    334334        res = self.app.get(url_for(controller='authz', action='delete_authz')) 
    335335        assert res.status == 302 
    336         assert res.header('location')== '/security', res.header('location') 
     336        assert res.header('location')== 'http://localhost/login', res.header('location') 
    337337 
    338338        # authz test 
     
    340340        res = self.app.get(url_for(controller='authz', action='delete_authz')) 
    341341        assert res.status == 302, res.status 
    342         assert res.header('location')== '/security/failed', res.header('location') 
     342        assert res.header('location')=='http://localhost/security/failed', res.header('location') 
    343343 
    344344        authz = self.load_authz() 
  • trunk/pysvnmanager/tests/functional/test_check.py

    r50 r55  
    2626        res = self.app.get(url_for(controller='check')) 
    2727        assert res.status == 302 
    28         self.assertEqual(res.header('location'), '/security') 
     28        self.assertEqual(res.header('location'), 'http://localhost/login') 
    2929 
    3030        # Login as common user 
     
    3232        res = self.app.get(url_for(controller='check')) 
    3333        assert res.status == 302, res.status 
    34         assert res.header('location')== '/security/failed', res.header('location') 
     34        assert res.header('location')=='http://localhost/security/failed', res.header('location') 
    3535         
    3636        # Login as repos admin 
     
    5656        res = self.app.get(url_for(controller='check', action='access_map')) 
    5757        assert res.status == 302 
    58         self.assertEqual(res.header('location'), '/security') 
     58        self.assertEqual(res.header('location'), 'http://localhost/login') 
    5959 
    6060        # authz test 
     
    6262        res = self.app.get(url_for(controller='check', action='access_map')) 
    6363        assert res.status == 302, res.status 
    64         assert res.header('location')== '/security/failed', res.header('location') 
     64        assert res.header('location')=='http://localhost/security/failed', res.header('location') 
    6565         
    6666        # Login as superuser 
     
    229229        res = self.app.get(url_for(controller='check', action='get_auth_path')) 
    230230        assert res.status == 302 
    231         assert res.header('location')== '/security', res.header('location') 
     231        assert res.header('location')== 'http://localhost/login', res.header('location') 
    232232 
    233233        # authz test 
     
    235235        res = self.app.get(url_for(controller='check', action='get_auth_path')) 
    236236        assert res.status == 302, res.status 
    237         assert res.header('location')== '/security/failed', res.header('location') 
     237        assert res.header('location')=='http://localhost/security/failed', res.header('location') 
    238238 
    239239        self.login('root') 
  • trunk/pysvnmanager/tests/functional/test_login.py

    r50 r55  
    3131        res = self.app.get(url_for(controller='security', action='submit'), params) 
    3232        self.assert_(res.status == 302) 
    33         self.assert_(res.all_headers('location') == ['/check']) 
     33        self.assert_(res.all_headers('location') == ['http://localhost/'], res.all_headers('location')) 
    3434        self.assert_(res.session['user'] == 'root', res.session) 
    3535         
     
    5454        res = self.app.get(url_for(controller='security', action='logout')) 
    5555        self.assert_(res.status == 302) 
    56         self.assert_(res.all_headers('location') == ['/security']) 
     56        self.assert_(res.all_headers('location') == ['http://localhost/login'], res.all_headers('location')) 
    5757        self.assert_(res.session.get('user') == None, res.session.get('user')) 
  • trunk/pysvnmanager/tests/functional/test_repos.py

    r50 r55  
    2626        res = self.app.get(url_for(controller='repos')) 
    2727        assert res.status == 302 
    28         self.assertEqual(res.header('location'), '/security') 
     28        self.assertEqual(res.header('location'), 'http://localhost/login') 
    2929 
    3030        # Login as common user 
     
    3232        res = self.app.get(url_for(controller='repos')) 
    3333        assert res.status == 302, res.status 
    34         assert res.header('location')== '/security/failed', res.header('location') 
     34        assert res.header('location')=='http://localhost/security/failed', res.header('location') 
    3535         
    3636        # Permission denied for repos admin(not root admin) 
     
    3838        res = self.app.get(url_for(controller='repos')) 
    3939        assert res.status == 302, res.status 
    40         assert res.header('location')== '/security/failed', res.header('location') 
     40        assert res.header('location')=='http://localhost/security/failed', res.header('location') 
    4141 
    4242        # Login as superuser 
  • trunk/pysvnmanager/tests/functional/test_role.py

    r50 r55  
    2626        res = self.app.get(url_for(controller='role')) 
    2727        assert res.status == 302 
    28         self.assertEqual(res.header('location'), '/security') 
     28        self.assertEqual(res.header('location'), 'http://localhost/login') 
    2929 
    3030        # Login as common user 
     
    3232        res = self.app.get(url_for(controller='role')) 
    3333        assert res.status == 302, res.status 
    34         assert res.header('location')== '/security/failed', res.header('location') 
     34        assert res.header('location')=='http://localhost/security/failed', res.header('location') 
    3535         
    3636        # Permission denied for repos admin(not root admin) 
     
    3838        res = self.app.get(url_for(controller='role')) 
    3939        assert res.status == 302, res.status 
    40         assert res.header('location')== '/security/failed', res.header('location') 
     40        assert res.header('location')=='http://localhost/security/failed', res.header('location') 
    4141 
    4242        # Login as superuser 
     
    5050        res = self.app.get(url_for(controller='role', action='get_role_info')) 
    5151        assert res.status == 302 
    52         self.assertEqual(res.header('location'), '/security') 
     52        self.assertEqual(res.header('location'), 'http://localhost/login') 
    5353 
    5454        # authz test 
     
    5656        res = self.app.get(url_for(controller='role', action='get_role_info')) 
    5757        assert res.status == 302, res.status 
    58         assert res.header('location')== '/security/failed', res.header('location') 
     58        assert res.header('location')=='http://localhost/security/failed', res.header('location') 
    5959         
    6060        # Login as superuser 
     
    125125        res = self.app.get(url_for(controller='role', action='save_group')) 
    126126        assert res.status == 302 
    127         self.assertEqual(res.header('location'), '/security') 
     127        self.assertEqual(res.header('location'), 'http://localhost/login') 
    128128 
    129129        # authz test 
     
    131131        res = self.app.get(url_for(controller='role', action='save_group')) 
    132132        assert res.status == 302, res.status 
    133         assert res.header('location')== '/security/failed', res.header('location') 
     133        assert res.header('location')=='http://localhost/security/failed', res.header('location') 
    134134 
    135135        # Change group members, autodrop=no 
     
    209209        res = self.app.get(url_for(controller='role', action='delete_group')) 
    210210        assert res.status == 302 
    211         self.assertEqual(res.header('location'), '/security') 
     211        self.assertEqual(res.header('location'), 'http://localhost/login') 
    212212 
    213213        # authz test 
     
    215215        res = self.app.get(url_for(controller='role', action='delete_group')) 
    216216        assert res.status == 302, res.status 
    217         assert res.header('location')== '/security/failed', res.header('location') 
     217        assert res.header('location')=='http://localhost/security/failed', res.header('location') 
    218218 
    219219        # Delete group failed, ref by other group. 
     
    271271        res = self.app.get(url_for(controller='role', action='save_alias')) 
    272272        assert res.status == 302 
    273         self.assertEqual(res.header('location'), '/security') 
     273        self.assertEqual(res.header('location'), 'http://localhost/login') 
    274274 
    275275        # authz test 
     
    277277        res = self.app.get(url_for(controller='role', action='save_alias')) 
    278278        assert res.status == 302, res.status 
    279         assert res.header('location')== '/security/failed', res.header('location') 
     279        assert res.header('location')=='http://localhost/security/failed', res.header('location') 
    280280 
    281281        # Change alias successfully 
     
    348348        res = self.app.get(url_for(controller='role', action='delete_alias')) 
    349349        assert res.status == 302 
    350         self.assertEqual(res.header('location'), '/security') 
     350        self.assertEqual(res.header('location'), 'http://localhost/login') 
    351351 
    352352        # authz test 
     
    354354        res = self.app.get(url_for(controller='role', action='delete_alias')) 
    355355        assert res.status == 302, res.status 
    356         assert res.header('location')== '/security/failed', res.header('location') 
     356        assert res.header('location')=='http://localhost/security/failed', res.header('location') 
    357357 
    358358        # Delete alias successfully 
  • trunk/pysvnmanager/tests/test_repos.py

    r50 r55  
    5151    def testReposCreate(self): 
    5252        self.assertRaises(Exception, self.repos.create, 'repos3') 
    53         self.repos.delete('repos3') 
    54         self.repos.create('repos3') 
    55         self.assert_(sorted(self.repos.repos_list) == [u'project1', u'project2', u'repos3'], self.repos.repos_list) 
     53        try: 
     54            self.repos.delete('repos3') 
     55            self.repos.create('repos3') 
     56            self.assert_(sorted(self.repos.repos_list) == [u'project1', u'project2', u'repos3'], self.repos.repos_list) 
     57        except ImportError: 
     58            pass 
    5659 
    5760    def testReposDelete(self): 
    58         self.assertRaises(Exception, self.repos.delete, 'project1') 
     61        try: 
     62            self.repos.delete('project1') 
     63        except Exception, e: 
     64            self.assert_(str(e) == 'Repos project1 is not a blank repository.', str(e)) 
    5965     
    6066    def testReposRoot(self): 
  • trunk/pysvnmanager/websetup.py

    r50 r55  
    3030log = logging.getLogger(__name__) 
    3131 
    32 def setup_config(command, filename, section, vars): 
     32def setup_app(command, conf, vars): 
    3333    """Place any commands to setup pysvnmanager here""" 
    34     conf = appconfig('config:' + filename) 
    3534    load_environment(conf.global_conf, conf.local_conf) 
    3635 
  • trunk/setup.cfg

    r24 r55  
    55[easy_install] 
    66find_links = http://www.pylonshq.com/download/ 
    7  
    8 [pudge] 
    9 theme = pythonpaste.org 
    10  
    11 # Add extra doc files here with spaces between them 
    12 docs = docs/index.txt 
    13  
    14 # Doc Settings 
    15 doc_base = docs/ 
    16 dest = docs/html 
    17  
    18 # Add extra modules here separated with commas 
    19 modules = pysvnmanager 
    20 title = Pysvnmanager 
    21 organization = Pylons 
    22  
    23 # Highlight code-block sections with Pygments 
    24 highlighter = pygments 
    25  
    26 # Optionally add extra links 
    27 #organization_url = http://pylonshq.com/ 
    28 #trac_url = http://pylonshq.com/project 
    29 settings = no_about=true 
    30  
    31 # Optionally add extra settings 
    32 #           link1=/community/ Community 
    33 #           link2=/download/ Download 
    34  
    35 [publish] 
    36 doc-dir=docs/html 
    37 make-dirs=1 
    387 
    398# Babel configuration 
  • trunk/setup.py

    r50 r55  
    2626setup( 
    2727    name='pySvnManager', 
    28     version="0.2.1", 
     28    version="0.3.0", 
    2929    description='SVN authz web management tools.', 
    3030    author='Jiang Xin', 
    3131    author_email='jiangxin@ossxp.com', 
    3232    url='https://sourceforge.net/projects/pysvnmanager', 
    33     #install_requires=["Pylons>=0.9.6.2", "docutils", "python-ldap"], 
    34     install_requires=["Pylons>=0.9.6.2", "docutils"], 
     33    install_requires=[ 
     34            "Pylons>=0.9.7rc1", 
     35            "docutils", 
     36            "Babel", 
     37            #"Mako>=0.2.2", 
     38            #"WebHelpers>=0.6.1", 
     39            #"Routes>=1.9.2", 
     40            #"python-ldap", 
     41    ], 
     42    setup_requires=["PasteScript==dev,>=1.6.3dev-r7326"], 
    3543    packages=find_packages(exclude=['ez_setup']), 
    3644    include_package_data=True, 
     
    4149            ('templates/**.mako', 'mako', None), 
    4250            ('public/**', 'ignore', None)]}, 
     51    zip_safe = False, 
     52    paster_plugins=['PasteScript', 'Pylons'], 
    4353    entry_points=""" 
    4454    [paste.app_factory] 
     
    4858    main = pylons.util:PylonsInstaller 
    4959    """, 
    50     zip_safe = False, 
    5160)