Changeset - 91fae60bf2b6
[Not reviewed]
.hgignore
Show inline comments
 
@@ -19,3 +19,4 @@ syntax: regexp
 
^RhodeCode\.egg-info$
 
^rc\.ini$
 
^fabfile.py
 
^\.rhodecode$
docs/api/api.rst
Show inline comments
 
@@ -59,6 +59,47 @@ All responses from API will be `HTTP/1.0
 
calling api *error* key from response will contain failure description
 
and result will be null.
 

	
 

	
 
API CLIENT
 
++++++++++
 

	
 
From version 1.4 RhodeCode adds a binary script that allows to easily
 
communicate with API. After installing RhodeCode a `rhodecode-api` script
 
will be available.
 

	
 
To get started quickly simply run::
 

	
 
  rhodecode-api _create_config --apikey=<youapikey> --apihost=<rhodecode host>
 
 
 
This will create a file named .config in the directory you executed it storing
 
json config file with credentials. You can skip this step and always provide
 
both of the arguments to be able to communicate with server
 

	
 

	
 
after that simply run any api command for example get_repo::
 
 
 
 rhodecode-api get_repo
 

	
 
 calling {"api_key": "<apikey>", "id": 75, "args": {}, "method": "get_repo"} to http://127.0.0.1:5000
 
 rhodecode said:
 
 {'error': 'Missing non optional `repoid` arg in JSON DATA',
 
  'id': 75,
 
  'result': None}
 

	
 
Ups looks like we forgot to add an argument
 

	
 
Let's try again now giving the repoid as parameters::
 

	
 
    rhodecode-api get_repo repoid:rhodecode   
 
 
 
    calling {"api_key": "<apikey>", "id": 39, "args": {"repoid": "rhodecode"}, "method": "get_repo"} to http://127.0.0.1:5000
 
    rhodecode said:
 
    {'error': None,
 
     'id': 39,
 
     'result': <json data...>}
 

	
 

	
 

	
 
API METHODS
 
+++++++++++
 

	
 
@@ -187,7 +228,18 @@ OUTPUT::
 

	
 
    result: {
 
              "id" : "<new_user_id>",
 
              "msg" : "created new user <username>"
 
              "msg" : "created new user <username>",
 
              "user": {
 
                "id" :       "<id>",
 
                "username" : "<username>",
 
                "firstname": "<firstname>",
 
                "lastname" : "<lastname>",
 
                "email" :    "<email>",
 
                "active" :   "<bool>",
 
                "admin" :    "<bool>",
 
                "ldap_dn" :  "<ldap_dn>",
 
                "last_login": "<last_login>",
 
              },
 
            }
 
    error:  null
 

	
 
@@ -195,7 +247,7 @@ OUTPUT::
 
update_user
 
-----------
 

	
 
updates current one if such user exists. This command can 
 
updates given user if such user exists. This command can 
 
be executed only using api_key belonging to user with admin rights.
 

	
 

	
 
@@ -220,7 +272,33 @@ OUTPUT::
 

	
 
    result: {
 
              "id" : "<edited_user_id>",
 
              "msg" : "updated user <username>"
 
              "msg" : "updated user ID:<userid> <username>"
 
            }
 
    error:  null
 

	
 

	
 
delete_user
 
-----------
 

	
 

	
 
deletes givenuser if such user exists. This command can 
 
be executed only using api_key belonging to user with admin rights.
 

	
 

	
 
INPUT::
 

	
 
    id : <id_for_response>
 
    api_key : "<api_key>"
 
    method :  "delete_user"
 
    args :    {
 
                "userid" : "<user_id or username>",
 
              }
 

	
 
OUTPUT::
 

	
 
    result: {
 
              "id" : "<edited_user_id>",
 
              "msg" : "deleted user ID:<userid> <username>"
 
            }
 
    error:  null
 

	
 
@@ -534,6 +612,15 @@ OUTPUT::
 
    result: {
 
              "id": "<newrepoid>",
 
              "msg": "Created new repository <reponame>",
 
              "repo": {
 
                "id" :          "<id>",
 
                "repo_name" :   "<reponame>"
 
                "type" :        "<type>",
 
                "description" : "<description>",
 
                "clone_uri" :   "<clone_uri>",
 
                "private": :    "<bool>",
 
                "created_on" :  "<datetimecreated>",
 
              },
 
            }
 
    error:  null
 

	
docs/changelog.rst
Show inline comments
 
@@ -18,6 +18,13 @@ news
 
  their accounts
 
- changed setup-app into setup-rhodecode and added default options to it.
 
- new git repos are created as bare now by default
 
- #464 added links to groups in permission box
 
- #465 mentions autocomplete inside comments boxes
 
- #469 added --update-only option to whoosh to re-index only given list
 
  of repos in index 
 
- rhodecode-api CLI client
 
- new git http protocol replaced buggy dulwich implementation.
 
  Now based on pygrack & gitweb
 

	
 
fixes
 
+++++
requires.txt
Show inline comments
 
@@ -13,5 +13,6 @@ dulwich>=0.8.5,<0.9.0
 
webob==1.0.8
 
markdown==2.1.1
 
docutils==0.8.1
 
simplejson==2.5.2
 
py-bcrypt
 
mercurial>=2.2.1,<2.3
 
\ No newline at end of file
 
mercurial>=2.2.2,<2.3
 
\ No newline at end of file
rhodecode/__init__.py
Show inline comments
 
@@ -72,10 +72,10 @@ if __py_version__ < (2, 6):
 
    requirements.append("pysqlite")
 

	
 
if is_windows:
 
    requirements.append("mercurial>=2.2.1,<2.3")
 
    requirements.append("mercurial>=2.2.2,<2.3")
 
else:
 
    requirements.append("py-bcrypt")
 
    requirements.append("mercurial>=2.2.1,<2.3")
 
    requirements.append("mercurial>=2.2.2,<2.3")
 

	
 

	
 
def get_version():
rhodecode/bin/__init__.py
Show inline comments
 
new file 100644
rhodecode/bin/rhodecode_api.py
Show inline comments
 
new file 100755
 
# -*- coding: utf-8 -*-
 
"""
 
    rhodecode.bin.backup_manager
 
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 

	
 
    Api CLI client for RhodeCode
 

	
 
    :created_on: Jun 3, 2012
 
    :author: marcink
 
    :copyright: (C) 2010-2012 Marcin Kuzminski <marcin@python-works.com>
 
    :license: GPLv3, see COPYING for more details.
 
"""
 
# This program is free software: you can redistribute it and/or modify
 
# it under the terms of the GNU General Public License as published by
 
# the Free Software Foundation, either version 3 of the License, or
 
# (at your option) any later version.
 
#
 
# This program is distributed in the hope that it will be useful,
 
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
# GNU General Public License for more details.
 
#
 
# You should have received a copy of the GNU General Public License
 
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 

	
 
from __future__ import with_statement
 
import os
 
import sys
 
import random
 
import urllib2
 
import pprint
 
import argparse
 

	
 
try:
 
    from rhodecode.lib.ext_json import json
 
except ImportError:
 
    try:
 
        import simplejson as json
 
    except ImportError:
 
        import json
 

	
 

	
 
CONFIG_NAME = '.rhodecode'
 
FORMAT_PRETTY = 'pretty'
 
FORMAT_JSON = 'json'
 

	
 

	
 
class RcConf(object):
 
    """
 
    RhodeCode config for API
 

	
 
    conf = RcConf()
 
    conf['key']
 

	
 
    """
 

	
 
    def __init__(self, autoload=True, autocreate=False, config=None):
 
        self._conf_name = CONFIG_NAME
 
        self._conf = {}
 
        if autocreate:
 
            self.make_config(config)
 
        if autoload:
 
            self._conf = self.load_config()
 

	
 
    def __getitem__(self, key):
 
        return self._conf[key]
 

	
 
    def __nonzero__(self):
 
        if self._conf:
 
            return True
 
        return False
 

	
 
    def __eq__(self):
 
        return self._conf.__eq__()
 

	
 
    def __repr__(self):
 
        return 'RcConf<%s>' % self._conf.__repr__()
 

	
 
    def make_config(self, config):
 
        """
 
        Saves given config as a JSON dump in the _conf_name location
 

	
 
        :param config:
 
        :type config:
 
        """
 
        with open(self._conf_name, 'wb') as f:
 
            json.dump(config, f, indent=4)
 
            sys.stdout.write('Updated conf\n')
 

	
 
    def update_config(self, new_config):
 
        """
 
        Reads the JSON config updates it's values with new_config and
 
        saves it back as JSON dump
 

	
 
        :param new_config:
 
        """
 
        config = {}
 
        try:
 
            with open(self._conf_name, 'rb') as conf:
 
                config = json.load(conf)
 
        except IOError, e:
 
            sys.stderr.write(str(e) + '\n')
 

	
 
        config.update(new_config)
 
        self.make_config(config)
 

	
 
    def load_config(self):
 
        """
 
        Loads config from file and returns loaded JSON object
 
        """
 
        try:
 
            with open(self._conf_name, 'rb') as conf:
 
                return  json.load(conf)
 
        except IOError, e:
 
            #sys.stderr.write(str(e) + '\n')
 
            pass
 

	
 

	
 
def api_call(apikey, apihost, format, method=None, **kw):
 
    """
 
    Api_call wrapper for RhodeCode
 

	
 
    :param apikey:
 
    :param apihost:
 
    :param format: formatting, pretty means prints and pprint of json
 
     json returns unparsed json
 
    :param method:
 
    """
 
    def _build_data(random_id):
 
        """
 
        Builds API data with given random ID
 

	
 
        :param random_id:
 
        :type random_id:
 
        """
 
        return {
 
            "id": random_id,
 
            "api_key": apikey,
 
            "method": method,
 
            "args": kw
 
        }
 

	
 
    if not method:
 
        raise Exception('please specify method name !')
 
    id_ = random.randrange(1, 200)
 
    req = urllib2.Request('%s/_admin/api' % apihost,
 
                      data=json.dumps(_build_data(id_)),
 
                      headers={'content-type': 'text/plain'})
 
    if format == FORMAT_PRETTY:
 
        sys.stdout.write('calling %s to %s \n' % (req.get_data(), apihost))
 
    ret = urllib2.urlopen(req)
 
    raw_json = ret.read()
 
    json_data = json.loads(raw_json)
 
    id_ret = json_data['id']
 
    _formatted_json = pprint.pformat(json_data)
 
    if id_ret == id_:
 
        if format == FORMAT_JSON:
 
            sys.stdout.write(str(raw_json))
 
        else:
 
            sys.stdout.write('rhodecode returned:\n%s\n' % (_formatted_json))
 

	
 
    else:
 
        raise Exception('something went wrong. '
 
                        'ID mismatch got %s, expected %s | %s' % (
 
                                            id_ret, id_, _formatted_json))
 

	
 

	
 
def argparser(argv):
 
    usage = ("rhodecode_api [-h] [--format=FORMAT] [--apikey=APIKEY] [--apihost=APIHOST] "
 
             "_create_config or METHOD <key:val> <key2:val> ...")
 

	
 
    parser = argparse.ArgumentParser(description='RhodeCode API cli',
 
                                     usage=usage)
 

	
 
    ## config
 
    group = parser.add_argument_group('config')
 
    group.add_argument('--apikey', help='api access key')
 
    group.add_argument('--apihost', help='api host')
 

	
 
    group = parser.add_argument_group('API')
 
    group.add_argument('method', metavar='METHOD', type=str,
 
            help='API method name to call followed by key:value attributes',
 
    )
 
    group.add_argument('--format', dest='format', type=str,
 
            help='output format default: `pretty` can '
 
                 'be also `%s`' % FORMAT_JSON,
 
            default=FORMAT_PRETTY
 
    )
 
    args, other = parser.parse_known_args()
 
    return parser, args, other
 

	
 

	
 
def main(argv=None):
 
    """
 
    Main execution function for cli
 

	
 
    :param argv:
 
    :type argv:
 
    """
 
    if argv is None:
 
        argv = sys.argv
 

	
 
    conf = None
 
    parser, args, other = argparser(argv)
 

	
 
    api_credentials_given = (args.apikey and args.apihost)
 
    if args.method == '_create_config':
 
        if not api_credentials_given:
 
            raise parser.error('_create_config requires --apikey and --apihost')
 
        conf = RcConf(autocreate=True, config={'apikey': args.apikey,
 
                                               'apihost': args.apihost})
 
        sys.stdout.write('Create new config in %s\n' % CONFIG_NAME)
 

	
 
    if not conf:
 
        conf = RcConf(autoload=True)
 
        if not conf:
 
            if not api_credentials_given:
 
                parser.error('Could not find config file and missing '
 
                             '--apikey or --apihost in params')
 

	
 
    apikey = args.apikey or conf['apikey']
 
    host = args.apihost or conf['apihost']
 
    method = args.method
 
    margs = dict(map(lambda s: s.split(':', 1), other))
 

	
 
    api_call(apikey, host, args.format, method, **margs)
 
    return 0
 

	
 
if __name__ == '__main__':
 
    sys.exit(main(sys.argv))
rhodecode/bin/rhodecode_backup.py
Show inline comments
 
modified file chmod 100644 => 100755
 
file renamed from rhodecode/lib/backup_manager.py to rhodecode/bin/rhodecode_backup.py
 
# -*- coding: utf-8 -*-
 
"""
 
    rhodecode.lib.backup_manager
 
    rhodecode.bin.backup_manager
 
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 

	
 
    Mercurial repositories backup manager, it allows to backups all
 
    Repositories backup manager, it allows to backups all
 
    repositories and send it to backup server using RSA key via ssh.
 

	
 
    :created_on: Feb 28, 2010
 
@@ -39,7 +39,7 @@ logging.basicConfig(level=logging.DEBUG,
 
class BackupManager(object):
 
    def __init__(self, repos_location, rsa_key, backup_server):
 
        today = datetime.datetime.now().weekday() + 1
 
        self.backup_file_name = "mercurial_repos.%s.tar.gz" % today
 
        self.backup_file_name = "rhodecode_repos.%s.tar.gz" % today
 

	
 
        self.id_rsa_path = self.get_id_rsa(rsa_key)
 
        self.repos_path = self.get_repos_path(repos_location)
rhodecode/config/routing.py
Show inline comments
 
@@ -217,7 +217,7 @@ def make_map(config):
 
        m.connect("user_emails_delete", "/users_emails/{id}",
 
                  action="delete_email", conditions=dict(method=["DELETE"]))
 

	
 
    #ADMIN USERS REST ROUTES
 
    #ADMIN USERS GROUPS REST ROUTES
 
    with rmap.submapper(path_prefix=ADMIN_PREFIX,
 
                        controller='admin/users_groups') as m:
 
        m.connect("users_groups", "/users_groups",
 
@@ -346,10 +346,17 @@ def make_map(config):
 
    rmap.connect('public_journal', '%s/public_journal' % ADMIN_PREFIX,
 
                 controller='journal', action="public_journal")
 

	
 
    rmap.connect('public_journal_rss', '%s/public_journal_rss' % ADMIN_PREFIX,
 
    rmap.connect('public_journal_rss', '%s/public_journal/rss' % ADMIN_PREFIX,
 
                 controller='journal', action="public_journal_rss")
 

	
 
    rmap.connect('public_journal_rss_old', '%s/public_journal_rss' % ADMIN_PREFIX,
 
                 controller='journal', action="public_journal_rss")
 

	
 
    rmap.connect('public_journal_atom',
 
                 '%s/public_journal/atom' % ADMIN_PREFIX, controller='journal',
 
                 action="public_journal_atom")
 

	
 
    rmap.connect('public_journal_atom_old',
 
                 '%s/public_journal_atom' % ADMIN_PREFIX, controller='journal',
 
                 action="public_journal_atom")
 

	
rhodecode/controllers/admin/repos.py
Show inline comments
 
@@ -151,10 +151,12 @@ class ReposController(BaseController):
 
            if request.POST.get('user_created'):
 
                # created by regular non admin user
 
                action_logger(self.rhodecode_user, 'user_created_repo',
 
                              form_result['repo_name_full'], '', self.sa)
 
                              form_result['repo_name_full'], self.ip_addr,
 
                              self.sa)
 
            else:
 
                action_logger(self.rhodecode_user, 'admin_created_repo',
 
                              form_result['repo_name_full'], '', self.sa)
 
                              form_result['repo_name_full'], self.ip_addr,
 
                              self.sa)
 
            Session.commit()
 
        except formencode.Invalid, errors:
 

	
 
@@ -212,7 +214,7 @@ class ReposController(BaseController):
 
                    category='success')
 
            changed_name = repo.repo_name
 
            action_logger(self.rhodecode_user, 'admin_updated_repo',
 
                              changed_name, '', self.sa)
 
                              changed_name, self.ip_addr, self.sa)
 
            Session.commit()
 
        except formencode.Invalid, errors:
 
            defaults = self.__load_data(repo_name)
 
@@ -253,7 +255,7 @@ class ReposController(BaseController):
 
            return redirect(url('repos'))
 
        try:
 
            action_logger(self.rhodecode_user, 'admin_deleted_repo',
 
                              repo_name, '', self.sa)
 
                              repo_name, self.ip_addr, self.sa)
 
            repo_model.delete(repo)
 
            invalidate_cache('get_repo_cached_%s' % repo_name)
 
            h.flash(_('deleted repository %s') % repo_name, category='success')
rhodecode/controllers/admin/users.py
Show inline comments
 
@@ -42,6 +42,7 @@ from rhodecode.model.db import User, Per
 
from rhodecode.model.forms import UserForm
 
from rhodecode.model.user import UserModel
 
from rhodecode.model.meta import Session
 
from rhodecode.lib.utils import action_logger
 

	
 
log = logging.getLogger(__name__)
 

	
 
@@ -76,10 +77,12 @@ class UsersController(BaseController):
 
        try:
 
            form_result = user_form.to_python(dict(request.POST))
 
            user_model.create(form_result)
 
            h.flash(_('created user %s') % form_result['username'],
 
            usr = form_result['username']
 
            action_logger(self.rhodecode_user, 'admin_created_user:%s' % usr,
 
                          None, self.ip_addr, self.sa)
 
            h.flash(_('created user %s') % usr,
 
                    category='success')
 
            Session.commit()
 
            #action_logger(self.rhodecode_user, 'new_user', '', '', self.sa)
 
        except formencode.Invalid, errors:
 
            return htmlfill.render(
 
                render('admin/users/user_add.html'),
 
@@ -115,6 +118,9 @@ class UsersController(BaseController):
 
        try:
 
            form_result = _form.to_python(dict(request.POST))
 
            user_model.update(id, form_result)
 
            usr = form_result['username']
 
            action_logger(self.rhodecode_user, 'admin_updated_user:%s' % usr,
 
                          None, self.ip_addr, self.sa)
 
            h.flash(_('User updated successfully'), category='success')
 
            Session.commit()
 
        except formencode.Invalid, errors:
rhodecode/controllers/admin/users_groups.py
Show inline comments
 
@@ -43,6 +43,7 @@ from rhodecode.model.users_group import 
 
from rhodecode.model.db import User, UsersGroup, Permission, UsersGroupToPerm
 
from rhodecode.model.forms import UsersGroupForm
 
from rhodecode.model.meta import Session
 
from rhodecode.lib.utils import action_logger
 

	
 
log = logging.getLogger(__name__)
 

	
 
@@ -76,9 +77,11 @@ class UsersGroupsController(BaseControll
 
            form_result = users_group_form.to_python(dict(request.POST))
 
            UsersGroupModel().create(name=form_result['users_group_name'],
 
                                     active=form_result['users_group_active'])
 
            h.flash(_('created users group %s') \
 
                    % form_result['users_group_name'], category='success')
 
            #action_logger(self.rhodecode_user, 'new_user', '', '', self.sa)
 
            gr = form_result['users_group_name']
 
            action_logger(self.rhodecode_user,
 
                          'admin_created_users_group:%s' % gr,
 
                          None, self.ip_addr, self.sa)
 
            h.flash(_('created users group %s') % gr, category='success')
 
            Session.commit()
 
        except formencode.Invalid, errors:
 
            return htmlfill.render(
 
@@ -125,10 +128,11 @@ class UsersGroupsController(BaseControll
 
        try:
 
            form_result = users_group_form.to_python(request.POST)
 
            UsersGroupModel().update(c.users_group, form_result)
 
            h.flash(_('updated users group %s') \
 
                        % form_result['users_group_name'],
 
                    category='success')
 
            #action_logger(self.rhodecode_user, 'new_user', '', '', self.sa)
 
            gr = form_result['users_group_name']
 
            action_logger(self.rhodecode_user,
 
                          'admin_updated_users_group:%s' % gr,
 
                          None, self.ip_addr, self.sa)
 
            h.flash(_('updated users group %s') % gr, category='success')
 
            Session.commit()
 
        except formencode.Invalid, errors:
 
            e = errors.error_dict or {}
rhodecode/controllers/api/__init__.py
Show inline comments
 
@@ -57,15 +57,16 @@ class JSONRPCError(BaseException):
 
        return str(self.message)
 

	
 

	
 
def jsonrpc_error(message, code=None):
 
def jsonrpc_error(message, retid=None, code=None):
 
    """
 
    Generate a Response object with a JSON-RPC error body
 
    """
 
    from pylons.controllers.util import Response
 
    resp = Response(body=json.dumps(dict(id=None, result=None, error=message)),
 
                    status=code,
 
                    content_type='application/json')
 
    return resp
 
    return Response(
 
            body=json.dumps(dict(id=retid, result=None, error=message)),
 
            status=code,
 
            content_type='application/json'
 
    )
 

	
 

	
 
class JSONRPCController(WSGIController):
 
@@ -94,9 +95,11 @@ class JSONRPCController(WSGIController):
 
        Parse the request body as JSON, look up the method on the
 
        controller and if it exists, dispatch to it.
 
        """
 
        self._req_id = None
 
        if 'CONTENT_LENGTH' not in environ:
 
            log.debug("No Content-Length")
 
            return jsonrpc_error(message="No Content-Length in request")
 
            return jsonrpc_error(retid=self._req_id,
 
                                 message="No Content-Length in request")
 
        else:
 
            length = environ['CONTENT_LENGTH'] or 0
 
            length = int(environ['CONTENT_LENGTH'])
 
@@ -104,7 +107,8 @@ class JSONRPCController(WSGIController):
 

	
 
        if length == 0:
 
            log.debug("Content-Length is 0")
 
            return jsonrpc_error(message="Content-Length is 0")
 
            return jsonrpc_error(retid=self._req_id,
 
                                 message="Content-Length is 0")
 

	
 
        raw_body = environ['wsgi.input'].read(length)
 

	
 
@@ -112,7 +116,8 @@ class JSONRPCController(WSGIController):
 
            json_body = json.loads(urllib.unquote_plus(raw_body))
 
        except ValueError, e:
 
            # catch JSON errors Here
 
            return jsonrpc_error(message="JSON parse error ERR:%s RAW:%r" \
 
            return jsonrpc_error(retid=self._req_id,
 
                                 message="JSON parse error ERR:%s RAW:%r" \
 
                                 % (e, urllib.unquote_plus(raw_body)))
 

	
 
        # check AUTH based on API KEY
 
@@ -126,22 +131,26 @@ class JSONRPCController(WSGIController):
 
                                            self._request_params)
 
            )
 
        except KeyError, e:
 
            return jsonrpc_error(message='Incorrect JSON query missing %s' % e)
 
            return jsonrpc_error(retid=self._req_id,
 
                                 message='Incorrect JSON query missing %s' % e)
 

	
 
        # check if we can find this session using api_key
 
        try:
 
            u = User.get_by_api_key(self._req_api_key)
 
            if u is None:
 
                return jsonrpc_error(message='Invalid API KEY')
 
                return jsonrpc_error(retid=self._req_id,
 
                                     message='Invalid API KEY')
 
            auth_u = AuthUser(u.user_id, self._req_api_key)
 
        except Exception, e:
 
            return jsonrpc_error(message='Invalid API KEY')
 
            return jsonrpc_error(retid=self._req_id,
 
                                 message='Invalid API KEY')
 

	
 
        self._error = None
 
        try:
 
            self._func = self._find_method()
 
        except AttributeError, e:
 
            return jsonrpc_error(message=str(e))
 
            return jsonrpc_error(retid=self._req_id,
 
                                 message=str(e))
 

	
 
        # now that we have a method, add self._req_params to
 
        # self.kargs and dispatch control to WGIController
 
@@ -164,9 +173,12 @@ class JSONRPCController(WSGIController):
 
        USER_SESSION_ATTR = 'apiuser'
 

	
 
        if USER_SESSION_ATTR not in arglist:
 
            return jsonrpc_error(message='This method [%s] does not support '
 
                                 'authentication (missing %s param)' %
 
                                 (self._func.__name__, USER_SESSION_ATTR))
 
            return jsonrpc_error(
 
                retid=self._req_id,
 
                message='This method [%s] does not support '
 
                         'authentication (missing %s param)' % (
 
                                    self._func.__name__, USER_SESSION_ATTR)
 
            )
 

	
 
        # get our arglist and check if we provided them as args
 
        for arg, default in func_kwargs.iteritems():
 
@@ -179,6 +191,7 @@ class JSONRPCController(WSGIController):
 
            # NotImplementedType (default_empty)
 
            if (default == default_empty and arg not in self._request_params):
 
                return jsonrpc_error(
 
                    retid=self._req_id,
 
                    message=(
 
                        'Missing non optional `%s` arg in JSON DATA' % arg
 
                    )
rhodecode/controllers/api/api.py
Show inline comments
 
@@ -156,14 +156,25 @@ class ApiController(JSONRPCController):
 
            password = PasswordGenerator().gen_password(length=8)
 

	
 
        try:
 
            usr = UserModel().create_or_update(
 
            user = UserModel().create_or_update(
 
                username, password, email, firstname,
 
                lastname, active, admin, ldap_dn
 
            )
 
            Session.commit()
 
            return dict(
 
                id=usr.user_id,
 
                msg='created new user %s' % username
 
                id=user.user_id,
 
                msg='created new user %s' % username,
 
                user=dict(
 
                    id=user.user_id,
 
                    username=user.username,
 
                    firstname=user.name,
 
                    lastname=user.lastname,
 
                    email=user.email,
 
                    active=user.active,
 
                    admin=user.admin,
 
                    ldap_dn=user.ldap_dn,
 
                    last_login=user.last_login,
 
                )
 
            )
 
        except Exception:
 
            log.error(traceback.format_exc())
 
@@ -185,8 +196,9 @@ class ApiController(JSONRPCController):
 
        :param admin:
 
        :param ldap_dn:
 
        """
 
        if not UserModel().get_user(userid):
 
            raise JSONRPCError("user %s does not exist" % username)
 
        usr = UserModel().get_user(userid)
 
        if not usr:
 
            raise JSONRPCError("user ID:%s does not exist" % userid)
 

	
 
        try:
 
            usr = UserModel().create_or_update(
 
@@ -196,11 +208,34 @@ class ApiController(JSONRPCController):
 
            Session.commit()
 
            return dict(
 
                id=usr.user_id,
 
                msg='updated user %s' % username
 
                msg='updated user ID:%s %s' % (usr.user_id, usr.username)
 
            )
 
        except Exception:
 
            log.error(traceback.format_exc())
 
            raise JSONRPCError('failed to update user %s' % username)
 
            raise JSONRPCError('failed to update user %s' % userid)
 

	
 
    @HasPermissionAllDecorator('hg.admin')
 
    def delete_user(self, apiuser, userid):
 
        """"
 
        Deletes an user
 

	
 
        :param apiuser:
 
        """
 
        usr = UserModel().get_user(userid)
 
        if not usr:
 
            raise JSONRPCError("user ID:%s does not exist" % userid)
 

	
 
        try:
 
            UserModel().delete(userid)
 
            Session.commit()
 
            return dict(
 
                id=usr.user_id,
 
                msg='deleted user ID:%s %s' % (usr.user_id, usr.username)
 
            )
 
        except Exception:
 
            log.error(traceback.format_exc())
 
            raise JSONRPCError('failed to delete ID:%s %s' % (usr.user_id,
 
                                                              usr.username))
 

	
 
    @HasPermissionAllDecorator('hg.admin')
 
    def get_users_group(self, apiuser, group_name):
 
@@ -354,7 +389,7 @@ class ApiController(JSONRPCController):
 

	
 
        repo = RepoModel().get_repo(repoid)
 
        if repo is None:
 
            raise JSONRPCError('unknown repository %s' % repo)
 
            raise JSONRPCError('unknown repository "%s"' % (repo or repoid))
 

	
 
        members = []
 
        for user in repo.repo_to_perm:
 
@@ -486,14 +521,22 @@ class ApiController(JSONRPCController):
 
                    repo_type=repo_type,
 
                    repo_group=group.group_id if group else None,
 
                    clone_uri=clone_uri
 
                ),
 
                owner
 
                )
 
            )
 
            Session.commit()
 

	
 
            return dict(
 
                id=repo.repo_id,
 
                msg="Created new repository %s" % repo.repo_name
 
                msg="Created new repository %s" % (repo.repo_name),
 
                repo=dict(
 
                    id=repo.repo_id,
 
                    repo_name=repo.repo_name,
 
                    type=repo.repo_type,
 
                    clone_uri=repo.clone_uri,
 
                    private=repo.private,
 
                    created_on=repo.created_on,
 
                    description=repo.description,
 
                )
 
            )
 

	
 
        except Exception:
 
@@ -501,6 +544,15 @@ class ApiController(JSONRPCController):
 
            raise JSONRPCError('failed to create repository %s' % repo_name)
 

	
 
    @HasPermissionAnyDecorator('hg.admin')
 
    def fork_repo(self, apiuser, repoid):
 
        repo = RepoModel().get_repo(repoid)
 
        if repo is None:
 
            raise JSONRPCError('unknown repository "%s"' % (repo or repoid))
 

	
 
        RepoModel().create_fork(form_data, cur_user)
 

	
 

	
 
    @HasPermissionAnyDecorator('hg.admin')
 
    def delete_repo(self, apiuser, repo_name):
 
        """
 
        Deletes a given repository
rhodecode/controllers/changelog.py
Show inline comments
 
@@ -26,7 +26,6 @@
 
import logging
 
import traceback
 

	
 
from mercurial import graphmod
 
from pylons import request, url, session, tmpl_context as c
 
from pylons.controllers.util import redirect
 
from pylons.i18n.translation import _
 
@@ -36,9 +35,8 @@ from rhodecode.lib.auth import LoginRequ
 
from rhodecode.lib.base import BaseRepoController, render
 
from rhodecode.lib.helpers import RepoPage
 
from rhodecode.lib.compat import json
 

	
 
from rhodecode.lib.graphmod import _colored, _dagwalker
 
from rhodecode.lib.vcs.exceptions import RepositoryError, ChangesetDoesNotExistError
 
from rhodecode.model.db import Repository
 

	
 
log = logging.getLogger(__name__)
 

	
 
@@ -118,18 +116,9 @@ class ChangelogController(BaseRepoContro
 
        data = []
 
        revs = [x.revision for x in collection]
 

	
 
        if repo.alias == 'git':
 
            for _ in revs:
 
                vtx = [0, 1]
 
                edges = [[0, 0, 1]]
 
                data.append(['', vtx, edges])
 

	
 
        elif repo.alias == 'hg':
 
            dag = graphmod.dagwalker(repo._repo, revs)
 
            c.dag = graphmod.colored(dag, repo._repo)
 
            for (id, type, ctx, vtx, edges) in c.dag:
 
                if type != graphmod.CHANGESET:
 
                    continue
 
                data.append(['', vtx, edges])
 
        dag = _dagwalker(repo, revs, repo.alias)
 
        dag = _colored(dag)
 
        for (id, type, ctx, vtx, edges) in dag:
 
            data.append(['', vtx, edges])
 

	
 
        c.jsdata = json.dumps(data)
rhodecode/controllers/changeset.py
Show inline comments
 
@@ -40,7 +40,7 @@ from rhodecode.lib.vcs.nodes import File
 
import rhodecode.lib.helpers as h
 
from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
 
from rhodecode.lib.base import BaseRepoController, render
 
from rhodecode.lib.utils import EmptyChangeset
 
from rhodecode.lib.utils import EmptyChangeset, action_logger
 
from rhodecode.lib.compat import OrderedDict
 
from rhodecode.lib import diffs
 
from rhodecode.model.db import ChangesetComment, ChangesetStatus
 
@@ -48,6 +48,7 @@ from rhodecode.model.comment import Chan
 
from rhodecode.model.changeset_status import ChangesetStatusModel
 
from rhodecode.model.meta import Session
 
from rhodecode.lib.diffs import wrapped_diff
 
from rhodecode.model.repo import RepoModel
 

	
 
log = logging.getLogger(__name__)
 

	
 
@@ -166,6 +167,9 @@ class ChangesetController(BaseRepoContro
 
    def __before__(self):
 
        super(ChangesetController, self).__before__()
 
        c.affected_files_cut_off = 60
 
        repo_model = RepoModel()
 
        c.users_array = repo_model.get_users_js()
 
        c.users_groups_array = repo_model.get_users_groups_js()
 

	
 
    def index(self, revision):
 

	
 
@@ -391,8 +395,12 @@ class ChangesetController(BaseRepoContro
 
                c.rhodecode_user.user_id,
 
                comm,
 
            )
 
        action_logger(self.rhodecode_user,
 
                      'user_commented_revision:%s' % revision,
 
                      c.rhodecode_db_repo, self.ip_addr, self.sa)
 

	
 
        Session.commit()
 

	
 
        if not request.environ.get('HTTP_X_PARTIAL_XHR'):
 
            return redirect(h.url('changeset_home', repo_name=repo_name,
 
                                  revision=revision))
rhodecode/controllers/feed.py
Show inline comments
 
@@ -28,11 +28,12 @@ import logging
 
from pylons import url, response, tmpl_context as c
 
from pylons.i18n.translation import _
 

	
 
from rhodecode.lib.utils2 import safe_unicode
 
from webhelpers.feedgenerator import Atom1Feed, Rss201rev2Feed
 

	
 
from rhodecode.lib import helpers as h
 
from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
 
from rhodecode.lib.base import BaseRepoController
 

	
 
from webhelpers.feedgenerator import Atom1Feed, Rss201rev2Feed
 
from rhodecode.lib.diffs import DiffProcessor
 

	
 
log = logging.getLogger(__name__)
 

	
 
@@ -49,31 +50,36 @@ class FeedController(BaseRepoController)
 
        self.title = self.title = _('%s %s feed') % (c.rhodecode_name, '%s')
 
        self.language = 'en-us'
 
        self.ttl = "5"
 
        self.feed_nr = 10
 
        self.feed_nr = 20
 

	
 
    def _get_title(self, cs):
 
        return "R%s:%s - %s" % (
 
            cs.revision, cs.short_id, cs.message
 
        return "%s" % (
 
            h.shorter(cs.message, 160)
 
        )
 

	
 
    def __changes(self, cs):
 
        changes = []
 

	
 
        a = [safe_unicode(n.path) for n in cs.added]
 
        if a:
 
            changes.append('\nA ' + '\nA '.join(a))
 

	
 
        m = [safe_unicode(n.path) for n in cs.changed]
 
        if m:
 
            changes.append('\nM ' + '\nM '.join(m))
 
        diffprocessor = DiffProcessor(cs.diff())
 
        stats = diffprocessor.prepare(inline_diff=False)
 
        for st in stats:
 
            st.update({'added': st['stats'][0],
 
                       'removed': st['stats'][1]})
 
            changes.append('\n %(operation)s %(filename)s '
 
                           '(%(added)s lines added, %(removed)s lines removed)'
 
                            % st)
 
        return changes
 

	
 
        d = [safe_unicode(n.path) for n in cs.removed]
 
        if d:
 
            changes.append('\nD ' + '\nD '.join(d))
 

	
 
        changes.append('</pre>')
 

	
 
        return ''.join(changes)
 
    def __get_desc(self, cs):
 
        desc_msg = []
 
        desc_msg.append('%s %s %s:<br/>' % (cs.author, _('commited on'),
 
                                           cs.date))
 
        desc_msg.append('<pre>')
 
        desc_msg.append(cs.message)
 
        desc_msg.append('\n')
 
        desc_msg.extend(self.__changes(cs))
 
        desc_msg.append('</pre>')
 
        return desc_msg
 

	
 
    def atom(self, repo_name):
 
        """Produce an atom-1.0 feed via feedgenerator module"""
 
@@ -87,15 +93,13 @@ class FeedController(BaseRepoController)
 
        )
 

	
 
        for cs in reversed(list(c.rhodecode_repo[-self.feed_nr:])):
 
            desc_msg = []
 
            desc_msg.append('%s - %s<br/><pre>' % (cs.author, cs.date))
 
            desc_msg.append(self.__changes(cs))
 

	
 
            feed.add_item(title=self._get_title(cs),
 
                          link=url('changeset_home', repo_name=repo_name,
 
                                   revision=cs.raw_id, qualified=True),
 
                          author_name=cs.author,
 
                          description=''.join(desc_msg))
 
                          description=''.join(self.__get_desc(cs)),
 
                          pubdate=cs.date,
 
                          )
 

	
 
        response.content_type = feed.mime_type
 
        return feed.writeString('utf-8')
 
@@ -112,15 +116,12 @@ class FeedController(BaseRepoController)
 
        )
 

	
 
        for cs in reversed(list(c.rhodecode_repo[-self.feed_nr:])):
 
            desc_msg = []
 
            desc_msg.append('%s - %s<br/><pre>' % (cs.author, cs.date))
 
            desc_msg.append(self.__changes(cs))
 

	
 
            feed.add_item(title=self._get_title(cs),
 
                          link=url('changeset_home', repo_name=repo_name,
 
                                   revision=cs.raw_id, qualified=True),
 
                          author_name=cs.author,
 
                          description=''.join(desc_msg),
 
                          description=''.join(self.__get_desc(cs)),
 
                          pubdate=cs.date,
 
                         )
 

	
 
        response.content_type = feed.mime_type
rhodecode/controllers/journal.py
Show inline comments
 
@@ -192,9 +192,8 @@ class JournalController(BaseController):
 
                         ttl=self.ttl)
 

	
 
        for entry in journal[:self.feed_nr]:
 
            #tmpl = h.action_parser(entry)[0]
 
            action, action_extra = h.action_parser(entry, feed=True)
 
            title = "%s - %s %s" % (entry.user.short_contact, action,
 
            action, action_extra, ico = h.action_parser(entry, feed=True)
 
            title = "%s - %s %s" % (entry.user.short_contact, action(),
 
                                 entry.repository.repo_name)
 
            desc = action_extra()
 
            feed.add_item(title=title,
 
@@ -226,9 +225,8 @@ class JournalController(BaseController):
 
                         ttl=self.ttl)
 

	
 
        for entry in journal[:self.feed_nr]:
 
            #tmpl = h.action_parser(entry)[0]
 
            action, action_extra = h.action_parser(entry, feed=True)
 
            title = "%s - %s %s" % (entry.user.short_contact, action,
 
            action, action_extra, ico = h.action_parser(entry, feed=True)
 
            title = "%s - %s %s" % (entry.user.short_contact, action(),
 
                                 entry.repository.repo_name)
 
            desc = action_extra()
 
            feed.add_item(title=title,
rhodecode/controllers/settings.py
Show inline comments
 
@@ -104,7 +104,7 @@ class SettingsController(BaseRepoControl
 
                    category='success')
 
            changed_name = form_result['repo_name_full']
 
            action_logger(self.rhodecode_user, 'user_updated_repo',
 
                          changed_name, '', self.sa)
 
                          changed_name, self.ip_addr, self.sa)
 
            Session.commit()
 
        except formencode.Invalid, errors:
 
            c.repo_info = repo_model.get_by_repo_name(repo_name)
 
@@ -145,7 +145,7 @@ class SettingsController(BaseRepoControl
 
            return redirect(url('home'))
 
        try:
 
            action_logger(self.rhodecode_user, 'user_deleted_repo',
 
                              repo_name, '', self.sa)
 
                              repo_name, self.ip_addr, self.sa)
 
            repo_model.delete(repo)
 
            invalidate_cache('get_repo_cached_%s' % repo_name)
 
            h.flash(_('deleted repository %s') % repo_name, category='success')
rhodecode/i18n/en/LC_MESSAGES/rhodecode.po
Show inline comments
 
@@ -7,7 +7,7 @@ msgid ""
 
msgstr ""
 
"Project-Id-Version: rhodecode 0.1\n"
 
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
 
"POT-Creation-Date: 2012-05-27 17:41+0200\n"
 
"POT-Creation-Date: 2012-06-03 01:06+0200\n"
 
"PO-Revision-Date: 2011-02-25 19:13+0100\n"
 
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 
"Language-Team: en <LL@li.org>\n"
 
@@ -17,25 +17,25 @@ msgstr ""
 
"Content-Transfer-Encoding: 8bit\n"
 
"Generated-By: Babel 0.9.6\n"
 

	
 
#: rhodecode/controllers/changelog.py:96
 
#: rhodecode/controllers/changelog.py:95
 
msgid "All Branches"
 
msgstr ""
 

	
 
#: rhodecode/controllers/changeset.py:79
 
#: rhodecode/controllers/changeset.py:80
 
msgid "show white space"
 
msgstr ""
 

	
 
#: rhodecode/controllers/changeset.py:86 rhodecode/controllers/changeset.py:93
 
#: rhodecode/controllers/changeset.py:87 rhodecode/controllers/changeset.py:94
 
msgid "ignore white space"
 
msgstr ""
 

	
 
#: rhodecode/controllers/changeset.py:153
 
#: rhodecode/controllers/changeset.py:154
 
#, python-format
 
msgid "%s line context"
 
msgstr ""
 

	
 
#: rhodecode/controllers/changeset.py:320
 
#: rhodecode/controllers/changeset.py:335 rhodecode/lib/diffs.py:62
 
#: rhodecode/controllers/changeset.py:324
 
#: rhodecode/controllers/changeset.py:339 rhodecode/lib/diffs.py:62
 
msgid "binary file"
 
msgstr ""
 

	
 
@@ -181,7 +181,7 @@ msgstr ""
 
msgid "%s public journal %s feed"
 
msgstr ""
 

	
 
#: rhodecode/controllers/journal.py:190 rhodecode/controllers/journal.py:224
 
#: rhodecode/controllers/journal.py:190 rhodecode/controllers/journal.py:223
 
#: rhodecode/templates/admin/repos/repo_edit.html:177
 
#: rhodecode/templates/base/base.html:307
 
#: rhodecode/templates/base/base.html:309
 
@@ -216,19 +216,19 @@ msgid "An error occurred during this sea
 
msgstr ""
 

	
 
#: rhodecode/controllers/settings.py:103
 
#: rhodecode/controllers/admin/repos.py:211
 
#: rhodecode/controllers/admin/repos.py:213
 
#, python-format
 
msgid "Repository %s updated successfully"
 
msgstr ""
 

	
 
#: rhodecode/controllers/settings.py:121
 
#: rhodecode/controllers/admin/repos.py:229
 
#: rhodecode/controllers/admin/repos.py:231
 
#, python-format
 
msgid "error occurred during update of repository %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/settings.py:139
 
#: rhodecode/controllers/admin/repos.py:247
 
#: rhodecode/controllers/admin/repos.py:249
 
#, python-format
 
msgid ""
 
"%s repository is not mapped to db perhaps it was moved or renamed  from "
 
@@ -237,14 +237,14 @@ msgid ""
 
msgstr ""
 

	
 
#: rhodecode/controllers/settings.py:151
 
#: rhodecode/controllers/admin/repos.py:259
 
#: rhodecode/controllers/admin/repos.py:261
 
#, python-format
 
msgid "deleted repository %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/settings.py:155
 
#: rhodecode/controllers/admin/repos.py:269
 
#: rhodecode/controllers/admin/repos.py:275
 
#: rhodecode/controllers/admin/repos.py:271
 
#: rhodecode/controllers/admin/repos.py:277
 
#, python-format
 
msgid "An error occurred during deletion of %s"
 
msgstr ""
 
@@ -393,62 +393,62 @@ msgstr ""
 
msgid "created repository %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:177
 
#: rhodecode/controllers/admin/repos.py:179
 
#, python-format
 
msgid "error occurred during creation of repository %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:264
 
#: rhodecode/controllers/admin/repos.py:266
 
#, python-format
 
msgid "Cannot delete %s it still contains attached forks"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:293
 
#: rhodecode/controllers/admin/repos.py:295
 
msgid "An error occurred during deletion of repository user"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:312
 
#: rhodecode/controllers/admin/repos.py:314
 
msgid "An error occurred during deletion of repository users groups"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:329
 
#: rhodecode/controllers/admin/repos.py:331
 
msgid "An error occurred during deletion of repository stats"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:345
 
#: rhodecode/controllers/admin/repos.py:347
 
msgid "An error occurred during cache invalidation"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:365
 
#: rhodecode/controllers/admin/repos.py:367
 
msgid "Updated repository visibility in public journal"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:369
 
#: rhodecode/controllers/admin/repos.py:371
 
msgid "An error occurred during setting this repository in public journal"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:374 rhodecode/model/forms.py:54
 
#: rhodecode/controllers/admin/repos.py:376 rhodecode/model/forms.py:54
 
msgid "Token mismatch"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:387
 
msgid "Pulled from remote location"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:389
 
msgid "Pulled from remote location"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:391
 
msgid "An error occurred during pull from remote location"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:405
 
msgid "Nothing"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:407
 
msgid "Nothing"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:409
 
#, python-format
 
msgid "Marked repo %s as fork of %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:411
 
#: rhodecode/controllers/admin/repos.py:413
 
msgid "An error occurred during this operation"
 
msgstr ""
 

	
 
@@ -542,77 +542,77 @@ msgstr ""
 
msgid "You can't edit this user since it's crucial for entire application"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/settings.py:365
 
#: rhodecode/controllers/admin/settings.py:367
 
msgid "Your account was updated successfully"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/settings.py:384
 
#: rhodecode/controllers/admin/users.py:132
 
#: rhodecode/controllers/admin/settings.py:387
 
#: rhodecode/controllers/admin/users.py:138
 
#, python-format
 
msgid "error occurred during update of user %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:79
 
#: rhodecode/controllers/admin/users.py:83
 
#, python-format
 
msgid "created user %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:92
 
#: rhodecode/controllers/admin/users.py:95
 
#, python-format
 
msgid "error occurred during creation of user %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:118
 
#: rhodecode/controllers/admin/users.py:124
 
msgid "User updated successfully"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:149
 
#: rhodecode/controllers/admin/users.py:155
 
msgid "successfully deleted user"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:154
 
#: rhodecode/controllers/admin/users.py:160
 
msgid "An error occurred during deletion of user"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:169
 
#: rhodecode/controllers/admin/users.py:175
 
msgid "You can't edit this user"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:199
 
#: rhodecode/controllers/admin/users_groups.py:215
 
#: rhodecode/controllers/admin/users.py:205
 
#: rhodecode/controllers/admin/users_groups.py:219
 
msgid "Granted 'repository create' permission to user"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:208
 
#: rhodecode/controllers/admin/users_groups.py:225
 
#: rhodecode/controllers/admin/users.py:214
 
#: rhodecode/controllers/admin/users_groups.py:229
 
msgid "Revoked 'repository create' permission to user"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users_groups.py:79
 
#: rhodecode/controllers/admin/users_groups.py:84
 
#, python-format
 
msgid "created users group %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users_groups.py:92
 
#: rhodecode/controllers/admin/users_groups.py:95
 
#, python-format
 
msgid "error occurred during creation of users group %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users_groups.py:128
 
#: rhodecode/controllers/admin/users_groups.py:135
 
#, python-format
 
msgid "updated users group %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users_groups.py:148
 
#: rhodecode/controllers/admin/users_groups.py:152
 
#, python-format
 
msgid "error occurred during update of users group %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users_groups.py:165
 
#: rhodecode/controllers/admin/users_groups.py:169
 
msgid "successfully deleted users group"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users_groups.py:170
 
#: rhodecode/controllers/admin/users_groups.py:174
 
msgid "An error occurred during deletion of users group"
 
msgstr ""
 

	
 
@@ -670,60 +670,80 @@ msgstr ""
 
msgid "fork name "
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:540
 
#: rhodecode/lib/helpers.py:550
 
msgid "[deleted] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:541 rhodecode/lib/helpers.py:546
 
#: rhodecode/lib/helpers.py:552 rhodecode/lib/helpers.py:562
 
msgid "[created] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:542
 
msgid "[created] repository as fork"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:543 rhodecode/lib/helpers.py:547
 
msgid "[forked] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:544 rhodecode/lib/helpers.py:548
 
msgid "[updated] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:545
 
msgid "[delete] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:549
 
msgid "[pushed] into"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:550
 
msgid "[committed via RhodeCode] into"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:551
 
msgid "[pulled from remote] into"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:552
 
msgid "[pulled] from"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:553
 
msgid "[started following] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:554
 
msgid "[created] repository as fork"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:556 rhodecode/lib/helpers.py:564
 
msgid "[forked] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:558 rhodecode/lib/helpers.py:566
 
msgid "[updated] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:560
 
msgid "[delete] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:568
 
msgid "[created] user"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:570
 
msgid "[updated] user"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:572
 
msgid "[created] users group"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:574
 
msgid "[updated] users group"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:576
 
msgid "[commented] on revision in repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:578
 
msgid "[pushed] into"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:580
 
msgid "[committed via RhodeCode] into repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:582
 
msgid "[pulled from remote] into repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:584
 
msgid "[pulled] from"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:586
 
msgid "[started following] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:588
 
msgid "[stopped following] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:732
 
#: rhodecode/lib/helpers.py:752
 
#, python-format
 
msgid " and %s more"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:736
 
#: rhodecode/lib/helpers.py:756
 
msgid "No Files"
 
msgstr ""
 

	
 
@@ -971,7 +991,7 @@ msgid "Dashboard"
 
msgstr ""
 

	
 
#: rhodecode/templates/index_base.html:6
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:115
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:31
 
#: rhodecode/templates/bookmarks/bookmarks.html:10
 
#: rhodecode/templates/branches/branches.html:9
 
#: rhodecode/templates/journal/journal.html:31
 
@@ -1026,10 +1046,10 @@ msgstr ""
 
#: rhodecode/templates/admin/repos/repo_edit.html:32
 
#: rhodecode/templates/admin/repos/repos.html:36
 
#: rhodecode/templates/admin/repos/repos.html:82
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:133
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:183
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:249
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:284
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:49
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:99
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:165
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:200
 
#: rhodecode/templates/bookmarks/bookmarks.html:36
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:6
 
#: rhodecode/templates/branches/branches.html:36
 
@@ -1054,7 +1074,7 @@ msgstr ""
 
#: rhodecode/templates/index_base.html:161
 
#: rhodecode/templates/admin/repos/repos.html:39
 
#: rhodecode/templates/admin/repos/repos.html:87
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:251
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:167
 
#: rhodecode/templates/journal/journal.html:179
 
msgid "Tip"
 
msgstr ""
 
@@ -1097,7 +1117,7 @@ msgstr ""
 
#: rhodecode/templates/index_base.html:148
 
#: rhodecode/templates/index_base.html:188
 
#: rhodecode/templates/admin/repos/repos.html:112
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:270
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:186
 
#: rhodecode/templates/bookmarks/bookmarks.html:60
 
#: rhodecode/templates/branches/branches.html:60
 
#: rhodecode/templates/journal/journal.html:202
 
@@ -1108,7 +1128,7 @@ msgstr ""
 
#: rhodecode/templates/index_base.html:149
 
#: rhodecode/templates/index_base.html:189
 
#: rhodecode/templates/admin/repos/repos.html:113
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:271
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:187
 
#: rhodecode/templates/bookmarks/bookmarks.html:61
 
#: rhodecode/templates/branches/branches.html:61
 
#: rhodecode/templates/journal/journal.html:203
 
@@ -1123,7 +1143,7 @@ msgstr ""
 

	
 
#: rhodecode/templates/index_base.html:190
 
#: rhodecode/templates/admin/repos/repos.html:114
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:272
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:188
 
#: rhodecode/templates/bookmarks/bookmarks.html:62
 
#: rhodecode/templates/branches/branches.html:62
 
#: rhodecode/templates/journal/journal.html:204
 
@@ -1133,7 +1153,7 @@ msgstr ""
 

	
 
#: rhodecode/templates/index_base.html:191
 
#: rhodecode/templates/admin/repos/repos.html:115
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:273
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:189
 
#: rhodecode/templates/bookmarks/bookmarks.html:63
 
#: rhodecode/templates/branches/branches.html:63
 
#: rhodecode/templates/journal/journal.html:205
 
@@ -1143,7 +1163,7 @@ msgstr ""
 

	
 
#: rhodecode/templates/index_base.html:192
 
#: rhodecode/templates/admin/repos/repos.html:116
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:274
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:190
 
#: rhodecode/templates/bookmarks/bookmarks.html:64
 
#: rhodecode/templates/branches/branches.html:64
 
#: rhodecode/templates/journal/journal.html:206
 
@@ -1163,7 +1183,7 @@ msgstr ""
 
#: rhodecode/templates/admin/admin_log.html:5
 
#: rhodecode/templates/admin/users/user_add.html:32
 
#: rhodecode/templates/admin/users/user_edit.html:50
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:49
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:26
 
#: rhodecode/templates/base/base.html:83
 
#: rhodecode/templates/summary/summary.html:113
 
msgid "Username"
 
@@ -1223,21 +1243,21 @@ msgstr ""
 
#: rhodecode/templates/register.html:47
 
#: rhodecode/templates/admin/users/user_add.html:59
 
#: rhodecode/templates/admin/users/user_edit.html:86
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:76
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:53
 
msgid "First Name"
 
msgstr ""
 

	
 
#: rhodecode/templates/register.html:56
 
#: rhodecode/templates/admin/users/user_add.html:68
 
#: rhodecode/templates/admin/users/user_edit.html:95
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:85
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:62
 
msgid "Last Name"
 
msgstr ""
 

	
 
#: rhodecode/templates/register.html:65
 
#: rhodecode/templates/admin/users/user_add.html:77
 
#: rhodecode/templates/admin/users/user_edit.html:104
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:94
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:71
 
#: rhodecode/templates/summary/summary.html:115
 
msgid "Email"
 
msgstr ""
 
@@ -1300,8 +1320,8 @@ msgstr ""
 
#: rhodecode/templates/admin/admin_log.html:6
 
#: rhodecode/templates/admin/repos/repos.html:41
 
#: rhodecode/templates/admin/repos/repos.html:90
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:135
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:136
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:51
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:52
 
#: rhodecode/templates/journal/journal.html:52
 
#: rhodecode/templates/journal/journal.html:53
 
msgid "Action"
 
@@ -1324,7 +1344,7 @@ msgstr ""
 
msgid "From IP"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/admin_log.html:52
 
#: rhodecode/templates/admin/admin_log.html:53
 
msgid "No actions yet"
 
msgstr ""
 

	
 
@@ -1405,7 +1425,7 @@ msgstr ""
 
#: rhodecode/templates/admin/settings/hooks.html:73
 
#: rhodecode/templates/admin/users/user_edit.html:129
 
#: rhodecode/templates/admin/users/user_edit.html:154
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:102
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:79
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:115
 
#: rhodecode/templates/settings/repo_settings.html:84
 
msgid "Save"
 
@@ -1557,7 +1577,7 @@ msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:13
 
#: rhodecode/templates/admin/users/user_edit.html:13
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:155
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:71
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:13
 
#: rhodecode/templates/files/files_source.html:32
 
#: rhodecode/templates/journal/journal.html:72
 
@@ -1715,38 +1735,27 @@ msgid "private repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:33
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:53
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:58
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:23
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:42
 
msgid "revoke"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:75
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:80
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:64
 
msgid "Add another member"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:89
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:94
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:78
 
msgid "Failed to remove user"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:104
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:109
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:93
 
msgid "Failed to remove users group"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:123
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:112
 
msgid "Group"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:124
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:113
 
#: rhodecode/templates/admin/users_groups/users_groups.html:33
 
msgid "members"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repos.html:5
 
msgid "Repositories administration"
 
msgstr ""
 
@@ -1764,7 +1773,7 @@ msgid "delete"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repos.html:68
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:158
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:74
 
#, python-format
 
msgid "Confirm to delete this repository: %s"
 
msgstr ""
 
@@ -1815,7 +1824,7 @@ msgstr ""
 
#: rhodecode/templates/admin/settings/settings.html:177
 
#: rhodecode/templates/admin/users/user_edit.html:130
 
#: rhodecode/templates/admin/users/user_edit.html:155
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:103
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:80
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:116
 
#: rhodecode/templates/files/files_add.html:82
 
#: rhodecode/templates/files/files_edit.html:68
 
@@ -2039,17 +2048,17 @@ msgid "Edit user"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:34
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:33
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:10
 
msgid "Change your avatar at"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:35
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:34
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:11
 
msgid "Using"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:43
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:43
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:20
 
msgid "API key"
 
msgstr ""
 

	
 
@@ -2058,12 +2067,12 @@ msgid "LDAP DN"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:68
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:58
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:35
 
msgid "New password"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:77
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:67
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:44
 
msgid "New password confirmation"
 
msgstr ""
 

	
 
@@ -2081,21 +2090,21 @@ msgstr ""
 
msgid "My Account"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:116
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:32
 
#: rhodecode/templates/journal/journal.html:32
 
msgid "My repos"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:116
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:32
 
msgid "My permissions"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:121
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:37
 
#: rhodecode/templates/journal/journal.html:37
 
msgid "ADD"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:134
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:50
 
#: rhodecode/templates/bookmarks/bookmarks.html:40
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:9
 
#: rhodecode/templates/branches/branches.html:40
 
@@ -2105,23 +2114,23 @@ msgstr ""
 
msgid "Revision"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:155
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:71
 
#: rhodecode/templates/journal/journal.html:72
 
msgid "private"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:165
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:81
 
#: rhodecode/templates/journal/journal.html:85
 
msgid "No repositories yet"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:167
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:83
 
#: rhodecode/templates/journal/journal.html:87
 
msgid "create one now"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:184
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:285
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:100
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:201
 
msgid "Permission"
 
msgstr ""
 

	
 
@@ -2222,6 +2231,11 @@ msgstr ""
 
msgid "group name"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users_groups/users_groups.html:33
 
#: rhodecode/templates/base/root.html:46
 
msgid "members"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users_groups/users_groups.html:45
 
#, python-format
 
msgid "Confirm to delete this users group: %s"
 
@@ -2381,21 +2395,25 @@ msgstr ""
 
msgid "Search"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:53
 
#: rhodecode/templates/base/root.html:42
 
msgid "add another comment"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:54
 
#: rhodecode/templates/base/root.html:43
 
#: rhodecode/templates/journal/journal.html:111
 
#: rhodecode/templates/summary/summary.html:52
 
msgid "Stop following this repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:55
 
#: rhodecode/templates/base/root.html:44
 
#: rhodecode/templates/summary/summary.html:56
 
msgid "Start following this repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:45
 
msgid "Group"
 
msgstr ""
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:5
 
msgid "Bookmarks"
 
msgstr ""
 
@@ -2524,7 +2542,7 @@ msgid "download diff"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:42
 
#: rhodecode/templates/changeset/changeset_file_comment.html:69
 
#: rhodecode/templates/changeset/changeset_file_comment.html:71
 
#, python-format
 
msgid "%d comment"
 
msgid_plural "%d comments"
 
@@ -2532,7 +2550,7 @@ msgstr[0] ""
 
msgstr[1] ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:42
 
#: rhodecode/templates/changeset/changeset_file_comment.html:69
 
#: rhodecode/templates/changeset/changeset_file_comment.html:71
 
#, python-format
 
msgid "(%d inline)"
 
msgid_plural "(%d inline)"
 
@@ -2557,35 +2575,35 @@ msgid "Commenting on line {1}."
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:39
 
#: rhodecode/templates/changeset/changeset_file_comment.html:100
 
#: rhodecode/templates/changeset/changeset_file_comment.html:102
 
#, python-format
 
msgid "Comments parsed using %s syntax with %s support."
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:41
 
#: rhodecode/templates/changeset/changeset_file_comment.html:102
 
#: rhodecode/templates/changeset/changeset_file_comment.html:104
 
msgid "Use @username inside this text to send notification to this RhodeCode user"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:47
 
#: rhodecode/templates/changeset/changeset_file_comment.html:107
 
#: rhodecode/templates/changeset/changeset_file_comment.html:49
 
#: rhodecode/templates/changeset/changeset_file_comment.html:110
 
msgid "Comment"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:48
 
#: rhodecode/templates/changeset/changeset_file_comment.html:59
 
#: rhodecode/templates/changeset/changeset_file_comment.html:50
 
#: rhodecode/templates/changeset/changeset_file_comment.html:61
 
msgid "Hide"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:55
 
#: rhodecode/templates/changeset/changeset_file_comment.html:57
 
msgid "You need to be logged in to comment."
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:55
 
#: rhodecode/templates/changeset/changeset_file_comment.html:57
 
msgid "Login now"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:97
 
#: rhodecode/templates/changeset/changeset_file_comment.html:99
 
msgid "Leave a comment"
 
msgstr ""
 

	
 
@@ -3070,9 +3088,9 @@ msgstr ""
 
msgid "file removed"
 
msgstr ""
 

	
 
#~ msgid ""
 
#~ "Changeset was to big and was cut"
 
#~ " off, use diff menu to display "
 
#~ "this diff"
 
#~ msgid "[committed via RhodeCode] into"
 
#~ msgstr ""
 

	
 
#~ msgid "[pulled from remote] into"
 
#~ msgstr ""
 

	
rhodecode/i18n/fr/LC_MESSAGES/rhodecode.po
Show inline comments
 
@@ -7,7 +7,7 @@ msgid ""
 
msgstr ""
 
"Project-Id-Version: RhodeCode 1.1.5\n"
 
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
 
"POT-Creation-Date: 2012-05-27 17:41+0200\n"
 
"POT-Creation-Date: 2012-06-03 01:06+0200\n"
 
"PO-Revision-Date: 2012-05-20 11:36+0100\n"
 
"Last-Translator: Vincent Duvert <vincent@duvert.net>\n"
 
"Language-Team: fr <LL@li.org>\n"
 
@@ -17,25 +17,25 @@ msgstr ""
 
"Content-Transfer-Encoding: 8bit\n"
 
"Generated-By: Babel 0.9.6\n"
 

	
 
#: rhodecode/controllers/changelog.py:96
 
#: rhodecode/controllers/changelog.py:95
 
msgid "All Branches"
 
msgstr "Toutes les branches"
 

	
 
#: rhodecode/controllers/changeset.py:79
 
#: rhodecode/controllers/changeset.py:80
 
msgid "show white space"
 
msgstr "afficher les espaces et tabulations"
 

	
 
#: rhodecode/controllers/changeset.py:86 rhodecode/controllers/changeset.py:93
 
#: rhodecode/controllers/changeset.py:87 rhodecode/controllers/changeset.py:94
 
msgid "ignore white space"
 
msgstr "ignorer les espaces et tabulations"
 

	
 
#: rhodecode/controllers/changeset.py:153
 
#: rhodecode/controllers/changeset.py:154
 
#, python-format
 
msgid "%s line context"
 
msgstr "afficher %s lignes de contexte"
 

	
 
#: rhodecode/controllers/changeset.py:320
 
#: rhodecode/controllers/changeset.py:335 rhodecode/lib/diffs.py:62
 
#: rhodecode/controllers/changeset.py:324
 
#: rhodecode/controllers/changeset.py:339 rhodecode/lib/diffs.py:62
 
msgid "binary file"
 
msgstr "fichier binaire"
 

	
 
@@ -191,7 +191,7 @@ msgstr "Une erreur est survenue durant le fork du dépôt %s."
 
msgid "%s public journal %s feed"
 
msgstr "%s — Flux %s du journal public"
 

	
 
#: rhodecode/controllers/journal.py:190 rhodecode/controllers/journal.py:224
 
#: rhodecode/controllers/journal.py:190 rhodecode/controllers/journal.py:223
 
#: rhodecode/templates/admin/repos/repo_edit.html:177
 
#: rhodecode/templates/base/base.html:307
 
#: rhodecode/templates/base/base.html:309
 
@@ -230,19 +230,19 @@ msgid "An error occurred during this sea
 
msgstr "Une erreur est survenue durant l’opération de recherche."
 

	
 
#: rhodecode/controllers/settings.py:103
 
#: rhodecode/controllers/admin/repos.py:211
 
#: rhodecode/controllers/admin/repos.py:213
 
#, python-format
 
msgid "Repository %s updated successfully"
 
msgstr "Dépôt %s mis à jour avec succès."
 

	
 
#: rhodecode/controllers/settings.py:121
 
#: rhodecode/controllers/admin/repos.py:229
 
#: rhodecode/controllers/admin/repos.py:231
 
#, python-format
 
msgid "error occurred during update of repository %s"
 
msgstr "Une erreur est survenue lors de la mise à jour du dépôt %s."
 

	
 
#: rhodecode/controllers/settings.py:139
 
#: rhodecode/controllers/admin/repos.py:247
 
#: rhodecode/controllers/admin/repos.py:249
 
#, python-format
 
msgid ""
 
"%s repository is not mapped to db perhaps it was moved or renamed  from "
 
@@ -254,14 +254,14 @@ msgstr ""
 
"l’application pour rescanner les dépôts."
 

	
 
#: rhodecode/controllers/settings.py:151
 
#: rhodecode/controllers/admin/repos.py:259
 
#: rhodecode/controllers/admin/repos.py:261
 
#, python-format
 
msgid "deleted repository %s"
 
msgstr "Dépôt %s supprimé"
 

	
 
#: rhodecode/controllers/settings.py:155
 
#: rhodecode/controllers/admin/repos.py:269
 
#: rhodecode/controllers/admin/repos.py:275
 
#: rhodecode/controllers/admin/repos.py:271
 
#: rhodecode/controllers/admin/repos.py:277
 
#, python-format
 
msgid "An error occurred during deletion of %s"
 
msgstr "Erreur pendant la suppression de %s"
 
@@ -410,66 +410,66 @@ msgstr "Le dépôt %s a été créé depuis %s."
 
msgid "created repository %s"
 
msgstr "Le dépôt %s a été créé."
 

	
 
#: rhodecode/controllers/admin/repos.py:177
 
#: rhodecode/controllers/admin/repos.py:179
 
#, python-format
 
msgid "error occurred during creation of repository %s"
 
msgstr "Une erreur est survenue durant la création du dépôt %s."
 

	
 
#: rhodecode/controllers/admin/repos.py:264
 
#: rhodecode/controllers/admin/repos.py:266
 
#, python-format
 
msgid "Cannot delete %s it still contains attached forks"
 
msgstr "Impossible de supprimer le dépôt %s : Des forks y sont attachés."
 

	
 
#: rhodecode/controllers/admin/repos.py:293
 
#: rhodecode/controllers/admin/repos.py:295
 
msgid "An error occurred during deletion of repository user"
 
msgstr "Une erreur est survenue durant la suppression de l’utilisateur du dépôt."
 

	
 
#: rhodecode/controllers/admin/repos.py:312
 
#: rhodecode/controllers/admin/repos.py:314
 
msgid "An error occurred during deletion of repository users groups"
 
msgstr ""
 
"Une erreur est survenue durant la suppression du groupe d’utilisateurs de"
 
" ce dépôt."
 

	
 
#: rhodecode/controllers/admin/repos.py:329
 
#: rhodecode/controllers/admin/repos.py:331
 
msgid "An error occurred during deletion of repository stats"
 
msgstr "Une erreur est survenue durant la suppression des statistiques du dépôt."
 

	
 
#: rhodecode/controllers/admin/repos.py:345
 
#: rhodecode/controllers/admin/repos.py:347
 
msgid "An error occurred during cache invalidation"
 
msgstr "Une erreur est survenue durant l’invalidation du cache."
 

	
 
#: rhodecode/controllers/admin/repos.py:365
 
#: rhodecode/controllers/admin/repos.py:367
 
msgid "Updated repository visibility in public journal"
 
msgstr "La visibilité du dépôt dans le journal public a été mise à jour."
 

	
 
#: rhodecode/controllers/admin/repos.py:369
 
#: rhodecode/controllers/admin/repos.py:371
 
msgid "An error occurred during setting this repository in public journal"
 
msgstr ""
 
"Une erreur est survenue durant la configuration du journal public pour ce"
 
" dépôt."
 

	
 
#: rhodecode/controllers/admin/repos.py:374 rhodecode/model/forms.py:54
 
#: rhodecode/controllers/admin/repos.py:376 rhodecode/model/forms.py:54
 
msgid "Token mismatch"
 
msgstr "Jeton d’authentification incorrect."
 

	
 
#: rhodecode/controllers/admin/repos.py:387
 
msgid "Pulled from remote location"
 
msgstr "Les changements distants ont été récupérés."
 

	
 
#: rhodecode/controllers/admin/repos.py:389
 
msgid "Pulled from remote location"
 
msgstr "Les changements distants ont été récupérés."
 

	
 
#: rhodecode/controllers/admin/repos.py:391
 
msgid "An error occurred during pull from remote location"
 
msgstr "Une erreur est survenue durant le pull depuis la source distante."
 

	
 
#: rhodecode/controllers/admin/repos.py:405
 
#: rhodecode/controllers/admin/repos.py:407
 
msgid "Nothing"
 
msgstr "[Aucun dépôt]"
 

	
 
#: rhodecode/controllers/admin/repos.py:407
 
#: rhodecode/controllers/admin/repos.py:409
 
#, python-format
 
msgid "Marked repo %s as fork of %s"
 
msgstr "Le dépôt %s a été marké comme fork de %s"
 

	
 
#: rhodecode/controllers/admin/repos.py:411
 
#: rhodecode/controllers/admin/repos.py:413
 
msgid "An error occurred during this operation"
 
msgstr "Une erreur est survenue durant cette opération."
 

	
 
@@ -569,77 +569,77 @@ msgstr ""
 
"Vous ne pouvez pas éditer cet utilisateur ; il est nécessaire pour le bon"
 
" fonctionnement de l’application."
 

	
 
#: rhodecode/controllers/admin/settings.py:365
 
#: rhodecode/controllers/admin/settings.py:367
 
msgid "Your account was updated successfully"
 
msgstr "Votre compte a été mis à jour avec succès"
 

	
 
#: rhodecode/controllers/admin/settings.py:384
 
#: rhodecode/controllers/admin/users.py:132
 
#: rhodecode/controllers/admin/settings.py:387
 
#: rhodecode/controllers/admin/users.py:138
 
#, python-format
 
msgid "error occurred during update of user %s"
 
msgstr "Une erreur est survenue durant la mise à jour de l’utilisateur %s."
 

	
 
#: rhodecode/controllers/admin/users.py:79
 
#: rhodecode/controllers/admin/users.py:83
 
#, python-format
 
msgid "created user %s"
 
msgstr "utilisateur %s créé"
 

	
 
#: rhodecode/controllers/admin/users.py:92
 
#: rhodecode/controllers/admin/users.py:95
 
#, python-format
 
msgid "error occurred during creation of user %s"
 
msgstr "Une erreur est survenue durant la création de l’utilisateur %s."
 

	
 
#: rhodecode/controllers/admin/users.py:118
 
#: rhodecode/controllers/admin/users.py:124
 
msgid "User updated successfully"
 
msgstr "L’utilisateur a été mis à jour avec succès."
 

	
 
#: rhodecode/controllers/admin/users.py:149
 
#: rhodecode/controllers/admin/users.py:155
 
msgid "successfully deleted user"
 
msgstr "L’utilisateur a été supprimé avec succès."
 

	
 
#: rhodecode/controllers/admin/users.py:154
 
#: rhodecode/controllers/admin/users.py:160
 
msgid "An error occurred during deletion of user"
 
msgstr "Une erreur est survenue durant la suppression de l’utilisateur."
 

	
 
#: rhodecode/controllers/admin/users.py:169
 
#: rhodecode/controllers/admin/users.py:175
 
msgid "You can't edit this user"
 
msgstr "Vous ne pouvez pas éditer cet utilisateur"
 

	
 
#: rhodecode/controllers/admin/users.py:199
 
#: rhodecode/controllers/admin/users_groups.py:215
 
#: rhodecode/controllers/admin/users.py:205
 
#: rhodecode/controllers/admin/users_groups.py:219
 
msgid "Granted 'repository create' permission to user"
 
msgstr "La permission de création de dépôts a été accordée à l’utilisateur."
 

	
 
#: rhodecode/controllers/admin/users.py:208
 
#: rhodecode/controllers/admin/users_groups.py:225
 
#: rhodecode/controllers/admin/users.py:214
 
#: rhodecode/controllers/admin/users_groups.py:229
 
msgid "Revoked 'repository create' permission to user"
 
msgstr "La permission de création de dépôts a été révoquée à l’utilisateur."
 

	
 
#: rhodecode/controllers/admin/users_groups.py:79
 
#: rhodecode/controllers/admin/users_groups.py:84
 
#, python-format
 
msgid "created users group %s"
 
msgstr "Le groupe d’utilisateurs %s a été créé."
 

	
 
#: rhodecode/controllers/admin/users_groups.py:92
 
#: rhodecode/controllers/admin/users_groups.py:95
 
#, python-format
 
msgid "error occurred during creation of users group %s"
 
msgstr "Une erreur est survenue durant la création du groupe d’utilisateurs %s."
 

	
 
#: rhodecode/controllers/admin/users_groups.py:128
 
#: rhodecode/controllers/admin/users_groups.py:135
 
#, python-format
 
msgid "updated users group %s"
 
msgstr "Le groupe d’utilisateurs %s a été mis à jour."
 

	
 
#: rhodecode/controllers/admin/users_groups.py:148
 
#: rhodecode/controllers/admin/users_groups.py:152
 
#, python-format
 
msgid "error occurred during update of users group %s"
 
msgstr "Une erreur est survenue durant la mise à jour du groupe d’utilisateurs %s."
 

	
 
#: rhodecode/controllers/admin/users_groups.py:165
 
#: rhodecode/controllers/admin/users_groups.py:169
 
msgid "successfully deleted users group"
 
msgstr "Le groupe d’utilisateurs a été supprimé avec succès."
 

	
 
#: rhodecode/controllers/admin/users_groups.py:170
 
#: rhodecode/controllers/admin/users_groups.py:174
 
msgid "An error occurred during deletion of users group"
 
msgstr "Une erreur est survenue lors de la suppression du groupe d’utilisateurs."
 

	
 
@@ -700,60 +700,94 @@ msgstr "révisions"
 
msgid "fork name "
 
msgstr "Nom du fork"
 

	
 
#: rhodecode/lib/helpers.py:540
 
#: rhodecode/lib/helpers.py:550
 
msgid "[deleted] repository"
 
msgstr "[a supprimé] le dépôt"
 

	
 
#: rhodecode/lib/helpers.py:541 rhodecode/lib/helpers.py:546
 
#: rhodecode/lib/helpers.py:552 rhodecode/lib/helpers.py:562
 
msgid "[created] repository"
 
msgstr "[a créé] le dépôt"
 

	
 
#: rhodecode/lib/helpers.py:542
 
#: rhodecode/lib/helpers.py:554
 
msgid "[created] repository as fork"
 
msgstr "[a créé] le dépôt en tant que fork"
 

	
 
#: rhodecode/lib/helpers.py:543 rhodecode/lib/helpers.py:547
 
#: rhodecode/lib/helpers.py:556 rhodecode/lib/helpers.py:564
 
msgid "[forked] repository"
 
msgstr "[a forké] le dépôt"
 

	
 
#: rhodecode/lib/helpers.py:544 rhodecode/lib/helpers.py:548
 
#: rhodecode/lib/helpers.py:558 rhodecode/lib/helpers.py:566
 
msgid "[updated] repository"
 
msgstr "[a mis à jour] le dépôt"
 

	
 
#: rhodecode/lib/helpers.py:545
 
#: rhodecode/lib/helpers.py:560
 
msgid "[delete] repository"
 
msgstr "[a supprimé] le dépôt"
 

	
 
#: rhodecode/lib/helpers.py:549
 
#: rhodecode/lib/helpers.py:568
 
#, fuzzy, python-format
 
#| msgid "created user %s"
 
msgid "[created] user"
 
msgstr "utilisateur %s créé"
 

	
 
#: rhodecode/lib/helpers.py:570
 
#, fuzzy, python-format
 
#| msgid "updated users group %s"
 
msgid "[updated] user"
 
msgstr "Le groupe d’utilisateurs %s a été mis à jour."
 

	
 
#: rhodecode/lib/helpers.py:572
 
#, fuzzy, python-format
 
#| msgid "created users group %s"
 
msgid "[created] users group"
 
msgstr "Le groupe d’utilisateurs %s a été créé."
 

	
 
#: rhodecode/lib/helpers.py:574
 
#, fuzzy, python-format
 
#| msgid "updated users group %s"
 
msgid "[updated] users group"
 
msgstr "Le groupe d’utilisateurs %s a été mis à jour."
 

	
 
#: rhodecode/lib/helpers.py:576
 
#, fuzzy
 
#| msgid "[created] repository"
 
msgid "[commented] on revision in repository"
 
msgstr "[a créé] le dépôt"
 

	
 
#: rhodecode/lib/helpers.py:578
 
msgid "[pushed] into"
 
msgstr "[a pushé] dans"
 

	
 
#: rhodecode/lib/helpers.py:550
 
msgid "[committed via RhodeCode] into"
 
#: rhodecode/lib/helpers.py:580
 
#, fuzzy
 
#| msgid "[committed via RhodeCode] into"
 
msgid "[committed via RhodeCode] into repository"
 
msgstr "[a commité via RhodeCode] dans"
 

	
 
#: rhodecode/lib/helpers.py:551
 
msgid "[pulled from remote] into"
 
#: rhodecode/lib/helpers.py:582
 
#, fuzzy
 
#| msgid "[pulled from remote] into"
 
msgid "[pulled from remote] into repository"
 
msgstr "[a pullé depuis un site distant] dans"
 

	
 
#: rhodecode/lib/helpers.py:552
 
#: rhodecode/lib/helpers.py:584
 
msgid "[pulled] from"
 
msgstr "[a pullé] depuis"
 

	
 
#: rhodecode/lib/helpers.py:553
 
#: rhodecode/lib/helpers.py:586
 
msgid "[started following] repository"
 
msgstr "[suit maintenant] le dépôt"
 

	
 
#: rhodecode/lib/helpers.py:554
 
#: rhodecode/lib/helpers.py:588
 
msgid "[stopped following] repository"
 
msgstr "[ne suit plus] le dépôt"
 

	
 
#: rhodecode/lib/helpers.py:732
 
#: rhodecode/lib/helpers.py:752
 
#, python-format
 
msgid " and %s more"
 
msgstr "et %s de plus"
 

	
 
#: rhodecode/lib/helpers.py:736
 
#: rhodecode/lib/helpers.py:756
 
msgid "No Files"
 
msgstr "Aucun fichier"
 

	
 
@@ -1017,7 +1051,7 @@ msgid "Dashboard"
 
msgstr "Tableau de bord"
 

	
 
#: rhodecode/templates/index_base.html:6
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:115
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:31
 
#: rhodecode/templates/bookmarks/bookmarks.html:10
 
#: rhodecode/templates/branches/branches.html:9
 
#: rhodecode/templates/journal/journal.html:31
 
@@ -1072,10 +1106,10 @@ msgstr "Groupe de dépôts"
 
#: rhodecode/templates/admin/repos/repo_edit.html:32
 
#: rhodecode/templates/admin/repos/repos.html:36
 
#: rhodecode/templates/admin/repos/repos.html:82
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:133
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:183
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:249
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:284
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:49
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:99
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:165
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:200
 
#: rhodecode/templates/bookmarks/bookmarks.html:36
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:6
 
#: rhodecode/templates/branches/branches.html:36
 
@@ -1100,7 +1134,7 @@ msgstr "Dernière modification"
 
#: rhodecode/templates/index_base.html:161
 
#: rhodecode/templates/admin/repos/repos.html:39
 
#: rhodecode/templates/admin/repos/repos.html:87
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:251
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:167
 
#: rhodecode/templates/journal/journal.html:179
 
msgid "Tip"
 
msgstr "Sommet"
 
@@ -1143,7 +1177,7 @@ msgstr "Nom du groupe"
 
#: rhodecode/templates/index_base.html:148
 
#: rhodecode/templates/index_base.html:188
 
#: rhodecode/templates/admin/repos/repos.html:112
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:270
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:186
 
#: rhodecode/templates/bookmarks/bookmarks.html:60
 
#: rhodecode/templates/branches/branches.html:60
 
#: rhodecode/templates/journal/journal.html:202
 
@@ -1154,7 +1188,7 @@ msgstr "Tri ascendant"
 
#: rhodecode/templates/index_base.html:149
 
#: rhodecode/templates/index_base.html:189
 
#: rhodecode/templates/admin/repos/repos.html:113
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:271
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:187
 
#: rhodecode/templates/bookmarks/bookmarks.html:61
 
#: rhodecode/templates/branches/branches.html:61
 
#: rhodecode/templates/journal/journal.html:203
 
@@ -1169,7 +1203,7 @@ msgstr "Dernière modification"
 

	
 
#: rhodecode/templates/index_base.html:190
 
#: rhodecode/templates/admin/repos/repos.html:114
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:272
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:188
 
#: rhodecode/templates/bookmarks/bookmarks.html:62
 
#: rhodecode/templates/branches/branches.html:62
 
#: rhodecode/templates/journal/journal.html:204
 
@@ -1179,7 +1213,7 @@ msgstr "Aucun élément n’a été trouvé."
 

	
 
#: rhodecode/templates/index_base.html:191
 
#: rhodecode/templates/admin/repos/repos.html:115
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:273
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:189
 
#: rhodecode/templates/bookmarks/bookmarks.html:63
 
#: rhodecode/templates/branches/branches.html:63
 
#: rhodecode/templates/journal/journal.html:205
 
@@ -1189,7 +1223,7 @@ msgstr "Erreur d’intégrité des données."
 

	
 
#: rhodecode/templates/index_base.html:192
 
#: rhodecode/templates/admin/repos/repos.html:116
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:274
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:190
 
#: rhodecode/templates/bookmarks/bookmarks.html:64
 
#: rhodecode/templates/branches/branches.html:64
 
#: rhodecode/templates/journal/journal.html:206
 
@@ -1209,7 +1243,7 @@ msgstr "Connexion à"
 
#: rhodecode/templates/admin/admin_log.html:5
 
#: rhodecode/templates/admin/users/user_add.html:32
 
#: rhodecode/templates/admin/users/user_edit.html:50
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:49
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:26
 
#: rhodecode/templates/base/base.html:83
 
#: rhodecode/templates/summary/summary.html:113
 
msgid "Username"
 
@@ -1269,21 +1303,21 @@ msgstr "Confirmation"
 
#: rhodecode/templates/register.html:47
 
#: rhodecode/templates/admin/users/user_add.html:59
 
#: rhodecode/templates/admin/users/user_edit.html:86
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:76
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:53
 
msgid "First Name"
 
msgstr "Prénom"
 

	
 
#: rhodecode/templates/register.html:56
 
#: rhodecode/templates/admin/users/user_add.html:68
 
#: rhodecode/templates/admin/users/user_edit.html:95
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:85
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:62
 
msgid "Last Name"
 
msgstr "Nom"
 

	
 
#: rhodecode/templates/register.html:65
 
#: rhodecode/templates/admin/users/user_add.html:77
 
#: rhodecode/templates/admin/users/user_edit.html:104
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:94
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:71
 
#: rhodecode/templates/summary/summary.html:115
 
msgid "Email"
 
msgstr "E-mail"
 
@@ -1346,8 +1380,8 @@ msgstr "Historique d’administration"
 
#: rhodecode/templates/admin/admin_log.html:6
 
#: rhodecode/templates/admin/repos/repos.html:41
 
#: rhodecode/templates/admin/repos/repos.html:90
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:135
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:136
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:51
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:52
 
#: rhodecode/templates/journal/journal.html:52
 
#: rhodecode/templates/journal/journal.html:53
 
msgid "Action"
 
@@ -1370,7 +1404,7 @@ msgstr "Date"
 
msgid "From IP"
 
msgstr "Depuis l’adresse IP"
 

	
 
#: rhodecode/templates/admin/admin_log.html:52
 
#: rhodecode/templates/admin/admin_log.html:53
 
msgid "No actions yet"
 
msgstr "Aucune action n’a été enregistrée pour le moment."
 

	
 
@@ -1451,7 +1485,7 @@ msgstr "Attribut pour l’e-mail"
 
#: rhodecode/templates/admin/settings/hooks.html:73
 
#: rhodecode/templates/admin/users/user_edit.html:129
 
#: rhodecode/templates/admin/users/user_edit.html:154
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:102
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:79
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:115
 
#: rhodecode/templates/settings/repo_settings.html:84
 
msgid "Save"
 
@@ -1610,7 +1644,7 @@ msgstr "Éditer le dépôt"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:13
 
#: rhodecode/templates/admin/users/user_edit.html:13
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:155
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:71
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:13
 
#: rhodecode/templates/files/files_source.html:32
 
#: rhodecode/templates/journal/journal.html:72
 
@@ -1774,38 +1808,27 @@ msgid "private repository"
 
msgstr "Dépôt privé"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:33
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:53
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:58
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:23
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:42
 
msgid "revoke"
 
msgstr "Révoquer"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:75
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:80
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:64
 
msgid "Add another member"
 
msgstr "Ajouter un utilisateur"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:89
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:94
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:78
 
msgid "Failed to remove user"
 
msgstr "Échec de suppression de l’utilisateur"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:104
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:109
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:93
 
msgid "Failed to remove users group"
 
msgstr "Erreur lors de la suppression du groupe d’utilisateurs."
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:123
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:112
 
msgid "Group"
 
msgstr "Groupe"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:124
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:113
 
#: rhodecode/templates/admin/users_groups/users_groups.html:33
 
msgid "members"
 
msgstr "Membres"
 

	
 
#: rhodecode/templates/admin/repos/repos.html:5
 
msgid "Repositories administration"
 
msgstr "Administration des dépôts"
 
@@ -1823,7 +1846,7 @@ msgid "delete"
 
msgstr "Supprimer"
 

	
 
#: rhodecode/templates/admin/repos/repos.html:68
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:158
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:74
 
#, python-format
 
msgid "Confirm to delete this repository: %s"
 
msgstr "Voulez-vous vraiment supprimer le dépôt %s ?"
 
@@ -1874,7 +1897,7 @@ msgstr "Édition du groupe de dépôt"
 
#: rhodecode/templates/admin/settings/settings.html:177
 
#: rhodecode/templates/admin/users/user_edit.html:130
 
#: rhodecode/templates/admin/users/user_edit.html:155
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:103
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:80
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:116
 
#: rhodecode/templates/files/files_add.html:82
 
#: rhodecode/templates/files/files_edit.html:68
 
@@ -2103,17 +2126,17 @@ msgid "Edit user"
 
msgstr "Éditer l'utilisateur"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:34
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:33
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:10
 
msgid "Change your avatar at"
 
msgstr "Vous pouvez changer votre avatar sur"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:35
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:34
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:11
 
msgid "Using"
 
msgstr "en utilisant l’adresse"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:43
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:43
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:20
 
msgid "API key"
 
msgstr "Clé d’API"
 

	
 
@@ -2122,12 +2145,12 @@ msgid "LDAP DN"
 
msgstr "DN LDAP"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:68
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:58
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:35
 
msgid "New password"
 
msgstr "Nouveau mot de passe"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:77
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:67
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:44
 
msgid "New password confirmation"
 
msgstr "Confirmation du nouveau mot de passe"
 

	
 
@@ -2145,21 +2168,21 @@ msgstr "Mon compte"
 
msgid "My Account"
 
msgstr "Mon compte"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:116
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:32
 
#: rhodecode/templates/journal/journal.html:32
 
msgid "My repos"
 
msgstr "Mes dépôts"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:116
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:32
 
msgid "My permissions"
 
msgstr "Mes permissions"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:121
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:37
 
#: rhodecode/templates/journal/journal.html:37
 
msgid "ADD"
 
msgstr "AJOUTER"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:134
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:50
 
#: rhodecode/templates/bookmarks/bookmarks.html:40
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:9
 
#: rhodecode/templates/branches/branches.html:40
 
@@ -2169,23 +2192,23 @@ msgstr "AJOUTER"
 
msgid "Revision"
 
msgstr "Révision"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:155
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:71
 
#: rhodecode/templates/journal/journal.html:72
 
msgid "private"
 
msgstr "privé"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:165
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:81
 
#: rhodecode/templates/journal/journal.html:85
 
msgid "No repositories yet"
 
msgstr "Aucun dépôt pour le moment"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:167
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:83
 
#: rhodecode/templates/journal/journal.html:87
 
msgid "create one now"
 
msgstr "En créer un maintenant"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:184
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:285
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:100
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:201
 
msgid "Permission"
 
msgstr "Permission"
 

	
 
@@ -2286,6 +2309,11 @@ msgstr "AJOUTER UN NOUVEAU GROUPE"
 
msgid "group name"
 
msgstr "Nom du groupe"
 

	
 
#: rhodecode/templates/admin/users_groups/users_groups.html:33
 
#: rhodecode/templates/base/root.html:46
 
msgid "members"
 
msgstr "Membres"
 

	
 
#: rhodecode/templates/admin/users_groups/users_groups.html:45
 
#, python-format
 
msgid "Confirm to delete this users group: %s"
 
@@ -2445,21 +2473,25 @@ msgstr "Forks"
 
msgid "Search"
 
msgstr "Rechercher"
 

	
 
#: rhodecode/templates/base/root.html:53
 
#: rhodecode/templates/base/root.html:42
 
msgid "add another comment"
 
msgstr "Nouveau commentaire"
 

	
 
#: rhodecode/templates/base/root.html:54
 
#: rhodecode/templates/base/root.html:43
 
#: rhodecode/templates/journal/journal.html:111
 
#: rhodecode/templates/summary/summary.html:52
 
msgid "Stop following this repository"
 
msgstr "Arrêter de suivre ce dépôt"
 

	
 
#: rhodecode/templates/base/root.html:55
 
#: rhodecode/templates/base/root.html:44
 
#: rhodecode/templates/summary/summary.html:56
 
msgid "Start following this repository"
 
msgstr "Suivre ce dépôt"
 

	
 
#: rhodecode/templates/base/root.html:45
 
msgid "Group"
 
msgstr "Groupe"
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:5
 
msgid "Bookmarks"
 
msgstr "Signets"
 
@@ -2588,7 +2620,7 @@ msgid "download diff"
 
msgstr "Télécharger le diff"
 

	
 
#: rhodecode/templates/changeset/changeset.html:42
 
#: rhodecode/templates/changeset/changeset_file_comment.html:69
 
#: rhodecode/templates/changeset/changeset_file_comment.html:71
 
#, python-format
 
msgid "%d comment"
 
msgid_plural "%d comments"
 
@@ -2596,7 +2628,7 @@ msgstr[0] "%d commentaire"
 
msgstr[1] "%d commentaires"
 

	
 
#: rhodecode/templates/changeset/changeset.html:42
 
#: rhodecode/templates/changeset/changeset_file_comment.html:69
 
#: rhodecode/templates/changeset/changeset_file_comment.html:71
 
#, python-format
 
msgid "(%d inline)"
 
msgid_plural "(%d inline)"
 
@@ -2621,7 +2653,7 @@ msgid "Commenting on line {1}."
 
msgstr "Commentaire sur la ligne {1}."
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:39
 
#: rhodecode/templates/changeset/changeset_file_comment.html:100
 
#: rhodecode/templates/changeset/changeset_file_comment.html:102
 
#, python-format
 
msgid "Comments parsed using %s syntax with %s support."
 
msgstr ""
 
@@ -2629,31 +2661,31 @@ msgstr ""
 
"commande %s."
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:41
 
#: rhodecode/templates/changeset/changeset_file_comment.html:102
 
#: rhodecode/templates/changeset/changeset_file_comment.html:104
 
msgid "Use @username inside this text to send notification to this RhodeCode user"
 
msgstr ""
 
"Utilisez @nomutilisateur dans ce texte pour envoyer une notification à "
 
"l’utilisateur RhodeCode en question."
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:47
 
#: rhodecode/templates/changeset/changeset_file_comment.html:107
 
#: rhodecode/templates/changeset/changeset_file_comment.html:49
 
#: rhodecode/templates/changeset/changeset_file_comment.html:110
 
msgid "Comment"
 
msgstr "Commentaire"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:48
 
#: rhodecode/templates/changeset/changeset_file_comment.html:59
 
#: rhodecode/templates/changeset/changeset_file_comment.html:50
 
#: rhodecode/templates/changeset/changeset_file_comment.html:61
 
msgid "Hide"
 
msgstr "Masquer"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:55
 
#: rhodecode/templates/changeset/changeset_file_comment.html:57
 
msgid "You need to be logged in to comment."
 
msgstr "Vous devez être connecté pour poster des commentaires."
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:55
 
#: rhodecode/templates/changeset/changeset_file_comment.html:57
 
msgid "Login now"
 
msgstr "Se connecter maintenant"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:97
 
#: rhodecode/templates/changeset/changeset_file_comment.html:99
 
msgid "Leave a comment"
 
msgstr "Laisser un commentaire"
 

	
rhodecode/i18n/pt_BR/LC_MESSAGES/rhodecode.po
Show inline comments
 
@@ -7,7 +7,7 @@ msgid ""
 
msgstr ""
 
"Project-Id-Version: RhodeCode 1.2.0\n"
 
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
 
"POT-Creation-Date: 2012-05-27 17:41+0200\n"
 
"POT-Creation-Date: 2012-06-03 01:06+0200\n"
 
"PO-Revision-Date: 2012-05-22 16:47-0300\n"
 
"Last-Translator: Augusto Herrmann <augusto.herrmann@gmail.com>\n"
 
"Language-Team: pt_BR <LL@li.org>\n"
 
@@ -17,25 +17,25 @@ msgstr ""
 
"Content-Transfer-Encoding: 8bit\n"
 
"Generated-By: Babel 0.9.6\n"
 

	
 
#: rhodecode/controllers/changelog.py:96
 
#: rhodecode/controllers/changelog.py:95
 
msgid "All Branches"
 
msgstr "Todos os Ramos"
 

	
 
#: rhodecode/controllers/changeset.py:79
 
#: rhodecode/controllers/changeset.py:80
 
msgid "show white space"
 
msgstr "mostrar espaços em branco"
 

	
 
#: rhodecode/controllers/changeset.py:86 rhodecode/controllers/changeset.py:93
 
#: rhodecode/controllers/changeset.py:87 rhodecode/controllers/changeset.py:94
 
msgid "ignore white space"
 
msgstr "ignorar espaços em branco"
 

	
 
#: rhodecode/controllers/changeset.py:153
 
#: rhodecode/controllers/changeset.py:154
 
#, python-format
 
msgid "%s line context"
 
msgstr "contexto de %s linhas"
 

	
 
#: rhodecode/controllers/changeset.py:320
 
#: rhodecode/controllers/changeset.py:335 rhodecode/lib/diffs.py:62
 
#: rhodecode/controllers/changeset.py:324
 
#: rhodecode/controllers/changeset.py:339 rhodecode/lib/diffs.py:62
 
msgid "binary file"
 
msgstr "arquivo binário"
 

	
 
@@ -191,7 +191,7 @@ msgstr "Ocorreu um erro ao bifurcar o repositório %s"
 
msgid "%s public journal %s feed"
 
msgstr "diário público de %s - feed %s"
 

	
 
#: rhodecode/controllers/journal.py:190 rhodecode/controllers/journal.py:224
 
#: rhodecode/controllers/journal.py:190 rhodecode/controllers/journal.py:223
 
#: rhodecode/templates/admin/repos/repo_edit.html:177
 
#: rhodecode/templates/base/base.html:307
 
#: rhodecode/templates/base/base.html:309
 
@@ -228,19 +228,19 @@ msgid "An error occurred during this sea
 
msgstr "Ocorreu um erro durante essa operação de busca"
 

	
 
#: rhodecode/controllers/settings.py:103
 
#: rhodecode/controllers/admin/repos.py:211
 
#: rhodecode/controllers/admin/repos.py:213
 
#, python-format
 
msgid "Repository %s updated successfully"
 
msgstr "Repositório %s atualizado com sucesso"
 

	
 
#: rhodecode/controllers/settings.py:121
 
#: rhodecode/controllers/admin/repos.py:229
 
#: rhodecode/controllers/admin/repos.py:231
 
#, python-format
 
msgid "error occurred during update of repository %s"
 
msgstr "ocorreu um erro ao atualizar o repositório %s"
 

	
 
#: rhodecode/controllers/settings.py:139
 
#: rhodecode/controllers/admin/repos.py:247
 
#: rhodecode/controllers/admin/repos.py:249
 
#, python-format
 
msgid ""
 
"%s repository is not mapped to db perhaps it was moved or renamed  from "
 
@@ -252,14 +252,14 @@ msgstr ""
 
"outra vez para varrer novamente por repositórios"
 

	
 
#: rhodecode/controllers/settings.py:151
 
#: rhodecode/controllers/admin/repos.py:259
 
#: rhodecode/controllers/admin/repos.py:261
 
#, python-format
 
msgid "deleted repository %s"
 
msgstr "excluído o repositório %s"
 

	
 
#: rhodecode/controllers/settings.py:155
 
#: rhodecode/controllers/admin/repos.py:269
 
#: rhodecode/controllers/admin/repos.py:275
 
#: rhodecode/controllers/admin/repos.py:271
 
#: rhodecode/controllers/admin/repos.py:277
 
#, python-format
 
msgid "An error occurred during deletion of %s"
 
msgstr "Ocorreu um erro durante a exclusão de %s"
 
@@ -408,62 +408,62 @@ msgstr "repositório %s criado a partir de %s"
 
msgid "created repository %s"
 
msgstr "repositório %s criado"
 

	
 
#: rhodecode/controllers/admin/repos.py:177
 
#: rhodecode/controllers/admin/repos.py:179
 
#, python-format
 
msgid "error occurred during creation of repository %s"
 
msgstr "ocorreu um erro ao criar o repositório %s"
 

	
 
#: rhodecode/controllers/admin/repos.py:264
 
#: rhodecode/controllers/admin/repos.py:266
 
#, python-format
 
msgid "Cannot delete %s it still contains attached forks"
 
msgstr "Nao é possível excluir %s pois ele ainda contém bifurcações vinculadas"
 

	
 
#: rhodecode/controllers/admin/repos.py:293
 
#: rhodecode/controllers/admin/repos.py:295
 
msgid "An error occurred during deletion of repository user"
 
msgstr "Ocorreu um erro ao excluir usuário de repositório"
 

	
 
#: rhodecode/controllers/admin/repos.py:312
 
#: rhodecode/controllers/admin/repos.py:314
 
msgid "An error occurred during deletion of repository users groups"
 
msgstr "Ocorreu um erro ao excluir grupo de usuário de repositório"
 

	
 
#: rhodecode/controllers/admin/repos.py:329
 
#: rhodecode/controllers/admin/repos.py:331
 
msgid "An error occurred during deletion of repository stats"
 
msgstr "Ocorreu um erro ao excluir estatísticas de repositório"
 

	
 
#: rhodecode/controllers/admin/repos.py:345
 
#: rhodecode/controllers/admin/repos.py:347
 
msgid "An error occurred during cache invalidation"
 
msgstr "Ocorreu um erro ao invalidar o cache"
 

	
 
#: rhodecode/controllers/admin/repos.py:365
 
#: rhodecode/controllers/admin/repos.py:367
 
msgid "Updated repository visibility in public journal"
 
msgstr "Atualizada a visibilidade do repositório no diário público"
 

	
 
#: rhodecode/controllers/admin/repos.py:369
 
#: rhodecode/controllers/admin/repos.py:371
 
msgid "An error occurred during setting this repository in public journal"
 
msgstr "Ocorreu um erro ao ajustar esse repositório no diário público"
 

	
 
#: rhodecode/controllers/admin/repos.py:374 rhodecode/model/forms.py:54
 
#: rhodecode/controllers/admin/repos.py:376 rhodecode/model/forms.py:54
 
msgid "Token mismatch"
 
msgstr "Descompasso de Token"
 

	
 
#: rhodecode/controllers/admin/repos.py:387
 
#: rhodecode/controllers/admin/repos.py:389
 
msgid "Pulled from remote location"
 
msgstr "Realizado pull de localização remota"
 

	
 
#: rhodecode/controllers/admin/repos.py:389
 
#: rhodecode/controllers/admin/repos.py:391
 
msgid "An error occurred during pull from remote location"
 
msgstr "Ocorreu um erro ao realizar pull de localização remota"
 

	
 
#: rhodecode/controllers/admin/repos.py:405
 
#: rhodecode/controllers/admin/repos.py:407
 
msgid "Nothing"
 
msgstr "Nada"
 

	
 
#: rhodecode/controllers/admin/repos.py:407
 
#: rhodecode/controllers/admin/repos.py:409
 
#, python-format
 
msgid "Marked repo %s as fork of %s"
 
msgstr "Marcado repositório %s como bifurcação de %s"
 

	
 
#: rhodecode/controllers/admin/repos.py:411
 
#: rhodecode/controllers/admin/repos.py:413
 
msgid "An error occurred during this operation"
 
msgstr "Ocorreu um erro durante essa operação"
 

	
 
@@ -557,77 +557,77 @@ msgstr "Tarefa de e-mail criada"
 
msgid "You can't edit this user since it's crucial for entire application"
 
msgstr "Você não pode editar esse usuário pois ele é crucial para toda a aplicação"
 

	
 
#: rhodecode/controllers/admin/settings.py:365
 
#: rhodecode/controllers/admin/settings.py:367
 
msgid "Your account was updated successfully"
 
msgstr "Sua conta foi atualizada com sucesso"
 

	
 
#: rhodecode/controllers/admin/settings.py:384
 
#: rhodecode/controllers/admin/users.py:132
 
#: rhodecode/controllers/admin/settings.py:387
 
#: rhodecode/controllers/admin/users.py:138
 
#, python-format
 
msgid "error occurred during update of user %s"
 
msgstr "ocorreu um erro ao atualizar o usuário %s"
 

	
 
#: rhodecode/controllers/admin/users.py:79
 
#: rhodecode/controllers/admin/users.py:83
 
#, python-format
 
msgid "created user %s"
 
msgstr "usuário %s criado"
 

	
 
#: rhodecode/controllers/admin/users.py:92
 
#: rhodecode/controllers/admin/users.py:95
 
#, python-format
 
msgid "error occurred during creation of user %s"
 
msgstr "ocorreu um erro ao criar o usuário %s"
 

	
 
#: rhodecode/controllers/admin/users.py:118
 
#: rhodecode/controllers/admin/users.py:124
 
msgid "User updated successfully"
 
msgstr "Usuário atualizado com sucesso"
 

	
 
#: rhodecode/controllers/admin/users.py:149
 
#: rhodecode/controllers/admin/users.py:155
 
msgid "successfully deleted user"
 
msgstr "usuário excluído com sucesso"
 

	
 
#: rhodecode/controllers/admin/users.py:154
 
#: rhodecode/controllers/admin/users.py:160
 
msgid "An error occurred during deletion of user"
 
msgstr "Ocorreu um erro ao excluir o usuário"
 

	
 
#: rhodecode/controllers/admin/users.py:169
 
#: rhodecode/controllers/admin/users.py:175
 
msgid "You can't edit this user"
 
msgstr "Você não pode editar esse usuário"
 

	
 
#: rhodecode/controllers/admin/users.py:199
 
#: rhodecode/controllers/admin/users_groups.py:215
 
#: rhodecode/controllers/admin/users.py:205
 
#: rhodecode/controllers/admin/users_groups.py:219
 
msgid "Granted 'repository create' permission to user"
 
msgstr "Concedida permissão de 'criar repositório' ao usuário"
 

	
 
#: rhodecode/controllers/admin/users.py:208
 
#: rhodecode/controllers/admin/users_groups.py:225
 
#: rhodecode/controllers/admin/users.py:214
 
#: rhodecode/controllers/admin/users_groups.py:229
 
msgid "Revoked 'repository create' permission to user"
 
msgstr "Revogada permissão de 'criar repositório' ao usuário"
 

	
 
#: rhodecode/controllers/admin/users_groups.py:79
 
#: rhodecode/controllers/admin/users_groups.py:84
 
#, python-format
 
msgid "created users group %s"
 
msgstr "criado grupo de usuários %s"
 

	
 
#: rhodecode/controllers/admin/users_groups.py:92
 
#: rhodecode/controllers/admin/users_groups.py:95
 
#, python-format
 
msgid "error occurred during creation of users group %s"
 
msgstr "ocorreu um erro ao criar o grupo de usuários %s"
 

	
 
#: rhodecode/controllers/admin/users_groups.py:128
 
#: rhodecode/controllers/admin/users_groups.py:135
 
#, python-format
 
msgid "updated users group %s"
 
msgstr "grupo de usuários %s atualizado"
 

	
 
#: rhodecode/controllers/admin/users_groups.py:148
 
#: rhodecode/controllers/admin/users_groups.py:152
 
#, python-format
 
msgid "error occurred during update of users group %s"
 
msgstr "ocorreu um erro ao atualizar o grupo de usuários %s"
 

	
 
#: rhodecode/controllers/admin/users_groups.py:165
 
#: rhodecode/controllers/admin/users_groups.py:169
 
msgid "successfully deleted users group"
 
msgstr "grupo de usuários excluído com sucesso"
 

	
 
#: rhodecode/controllers/admin/users_groups.py:170
 
#: rhodecode/controllers/admin/users_groups.py:174
 
msgid "An error occurred during deletion of users group"
 
msgstr "Ocorreu um erro ao excluir o grupo de usuários"
 

	
 
@@ -687,60 +687,94 @@ msgstr "revisões"
 
msgid "fork name "
 
msgstr "nome da bifurcação"
 

	
 
#: rhodecode/lib/helpers.py:540
 
#: rhodecode/lib/helpers.py:550
 
msgid "[deleted] repository"
 
msgstr "repositório [excluído]"
 

	
 
#: rhodecode/lib/helpers.py:541 rhodecode/lib/helpers.py:546
 
#: rhodecode/lib/helpers.py:552 rhodecode/lib/helpers.py:562
 
msgid "[created] repository"
 
msgstr "repositório [criado]"
 

	
 
#: rhodecode/lib/helpers.py:542
 
#: rhodecode/lib/helpers.py:554
 
msgid "[created] repository as fork"
 
msgstr "repositório [criado] como uma bifurcação"
 

	
 
#: rhodecode/lib/helpers.py:543 rhodecode/lib/helpers.py:547
 
#: rhodecode/lib/helpers.py:556 rhodecode/lib/helpers.py:564
 
msgid "[forked] repository"
 
msgstr "repositório [bifurcado]"
 

	
 
#: rhodecode/lib/helpers.py:544 rhodecode/lib/helpers.py:548
 
#: rhodecode/lib/helpers.py:558 rhodecode/lib/helpers.py:566
 
msgid "[updated] repository"
 
msgstr "repositório [atualizado]"
 

	
 
#: rhodecode/lib/helpers.py:545
 
#: rhodecode/lib/helpers.py:560
 
msgid "[delete] repository"
 
msgstr "[excluir] repositório"
 

	
 
#: rhodecode/lib/helpers.py:549
 
#: rhodecode/lib/helpers.py:568
 
#, fuzzy, python-format
 
#| msgid "created user %s"
 
msgid "[created] user"
 
msgstr "usuário %s criado"
 

	
 
#: rhodecode/lib/helpers.py:570
 
#, fuzzy, python-format
 
#| msgid "updated users group %s"
 
msgid "[updated] user"
 
msgstr "grupo de usuários %s atualizado"
 

	
 
#: rhodecode/lib/helpers.py:572
 
#, fuzzy, python-format
 
#| msgid "created users group %s"
 
msgid "[created] users group"
 
msgstr "criado grupo de usuários %s"
 

	
 
#: rhodecode/lib/helpers.py:574
 
#, fuzzy, python-format
 
#| msgid "updated users group %s"
 
msgid "[updated] users group"
 
msgstr "grupo de usuários %s atualizado"
 

	
 
#: rhodecode/lib/helpers.py:576
 
#, fuzzy
 
#| msgid "[created] repository"
 
msgid "[commented] on revision in repository"
 
msgstr "repositório [criado]"
 

	
 
#: rhodecode/lib/helpers.py:578
 
msgid "[pushed] into"
 
msgstr "[realizado push] para"
 

	
 
#: rhodecode/lib/helpers.py:550
 
msgid "[committed via RhodeCode] into"
 
#: rhodecode/lib/helpers.py:580
 
#, fuzzy
 
#| msgid "[committed via RhodeCode] into"
 
msgid "[committed via RhodeCode] into repository"
 
msgstr "[realizado commit via RhodeCode] para"
 

	
 
#: rhodecode/lib/helpers.py:551
 
msgid "[pulled from remote] into"
 
#: rhodecode/lib/helpers.py:582
 
#, fuzzy
 
#| msgid "[pulled from remote] into"
 
msgid "[pulled from remote] into repository"
 
msgstr "[realizado pull remoto] para"
 

	
 
#: rhodecode/lib/helpers.py:552
 
#: rhodecode/lib/helpers.py:584
 
msgid "[pulled] from"
 
msgstr "[realizado pull] a partir de"
 

	
 
#: rhodecode/lib/helpers.py:553
 
#: rhodecode/lib/helpers.py:586
 
msgid "[started following] repository"
 
msgstr "[passou a seguir] o repositório"
 

	
 
#: rhodecode/lib/helpers.py:554
 
#: rhodecode/lib/helpers.py:588
 
msgid "[stopped following] repository"
 
msgstr "[parou de seguir] o repositório"
 

	
 
#: rhodecode/lib/helpers.py:732
 
#: rhodecode/lib/helpers.py:752
 
#, python-format
 
msgid " and %s more"
 
msgstr " e mais %s"
 

	
 
#: rhodecode/lib/helpers.py:736
 
#: rhodecode/lib/helpers.py:756
 
msgid "No Files"
 
msgstr "Nenhum Arquivo"
 

	
 
@@ -1001,7 +1035,7 @@ msgid "Dashboard"
 
msgstr "Painel de Controle"
 

	
 
#: rhodecode/templates/index_base.html:6
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:115
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:31
 
#: rhodecode/templates/bookmarks/bookmarks.html:10
 
#: rhodecode/templates/branches/branches.html:9
 
#: rhodecode/templates/journal/journal.html:31
 
@@ -1056,10 +1090,10 @@ msgstr "Grupo de repositórios"
 
#: rhodecode/templates/admin/repos/repo_edit.html:32
 
#: rhodecode/templates/admin/repos/repos.html:36
 
#: rhodecode/templates/admin/repos/repos.html:82
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:133
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:183
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:249
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:284
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:49
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:99
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:165
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:200
 
#: rhodecode/templates/bookmarks/bookmarks.html:36
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:6
 
#: rhodecode/templates/branches/branches.html:36
 
@@ -1084,7 +1118,7 @@ msgstr "Última alteração"
 
#: rhodecode/templates/index_base.html:161
 
#: rhodecode/templates/admin/repos/repos.html:39
 
#: rhodecode/templates/admin/repos/repos.html:87
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:251
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:167
 
#: rhodecode/templates/journal/journal.html:179
 
msgid "Tip"
 
msgstr "Ponta"
 
@@ -1127,7 +1161,7 @@ msgstr "Nome do Grupo"
 
#: rhodecode/templates/index_base.html:148
 
#: rhodecode/templates/index_base.html:188
 
#: rhodecode/templates/admin/repos/repos.html:112
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:270
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:186
 
#: rhodecode/templates/bookmarks/bookmarks.html:60
 
#: rhodecode/templates/branches/branches.html:60
 
#: rhodecode/templates/journal/journal.html:202
 
@@ -1138,7 +1172,7 @@ msgstr "Clique para ordenar em ordem cre
 
#: rhodecode/templates/index_base.html:149
 
#: rhodecode/templates/index_base.html:189
 
#: rhodecode/templates/admin/repos/repos.html:113
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:271
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:187
 
#: rhodecode/templates/bookmarks/bookmarks.html:61
 
#: rhodecode/templates/branches/branches.html:61
 
#: rhodecode/templates/journal/journal.html:203
 
@@ -1153,7 +1187,7 @@ msgstr "Última Alteração"
 

	
 
#: rhodecode/templates/index_base.html:190
 
#: rhodecode/templates/admin/repos/repos.html:114
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:272
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:188
 
#: rhodecode/templates/bookmarks/bookmarks.html:62
 
#: rhodecode/templates/branches/branches.html:62
 
#: rhodecode/templates/journal/journal.html:204
 
@@ -1163,7 +1197,7 @@ msgstr "Nenhum registro encontrado."
 

	
 
#: rhodecode/templates/index_base.html:191
 
#: rhodecode/templates/admin/repos/repos.html:115
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:273
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:189
 
#: rhodecode/templates/bookmarks/bookmarks.html:63
 
#: rhodecode/templates/branches/branches.html:63
 
#: rhodecode/templates/journal/journal.html:205
 
@@ -1173,7 +1207,7 @@ msgstr "Erro de dados."
 

	
 
#: rhodecode/templates/index_base.html:192
 
#: rhodecode/templates/admin/repos/repos.html:116
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:274
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:190
 
#: rhodecode/templates/bookmarks/bookmarks.html:64
 
#: rhodecode/templates/branches/branches.html:64
 
#: rhodecode/templates/journal/journal.html:206
 
@@ -1193,7 +1227,7 @@ msgstr "Entrar em"
 
#: rhodecode/templates/admin/admin_log.html:5
 
#: rhodecode/templates/admin/users/user_add.html:32
 
#: rhodecode/templates/admin/users/user_edit.html:50
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:49
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:26
 
#: rhodecode/templates/base/base.html:83
 
#: rhodecode/templates/summary/summary.html:113
 
msgid "Username"
 
@@ -1255,21 +1289,21 @@ msgstr "Repita a senha"
 
#: rhodecode/templates/register.html:47
 
#: rhodecode/templates/admin/users/user_add.html:59
 
#: rhodecode/templates/admin/users/user_edit.html:86
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:76
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:53
 
msgid "First Name"
 
msgstr "Primeiro Nome"
 

	
 
#: rhodecode/templates/register.html:56
 
#: rhodecode/templates/admin/users/user_add.html:68
 
#: rhodecode/templates/admin/users/user_edit.html:95
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:85
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:62
 
msgid "Last Name"
 
msgstr "Último Nome"
 

	
 
#: rhodecode/templates/register.html:65
 
#: rhodecode/templates/admin/users/user_add.html:77
 
#: rhodecode/templates/admin/users/user_edit.html:104
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:94
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:71
 
#: rhodecode/templates/summary/summary.html:115
 
msgid "Email"
 
msgstr "E-mail"
 
@@ -1332,8 +1366,8 @@ msgstr "Diário do administrador"
 
#: rhodecode/templates/admin/admin_log.html:6
 
#: rhodecode/templates/admin/repos/repos.html:41
 
#: rhodecode/templates/admin/repos/repos.html:90
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:135
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:136
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:51
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:52
 
#: rhodecode/templates/journal/journal.html:52
 
#: rhodecode/templates/journal/journal.html:53
 
msgid "Action"
 
@@ -1356,7 +1390,7 @@ msgstr "Data"
 
msgid "From IP"
 
msgstr "A partir do IP"
 

	
 
#: rhodecode/templates/admin/admin_log.html:52
 
#: rhodecode/templates/admin/admin_log.html:53
 
msgid "No actions yet"
 
msgstr "Ainda não há ações"
 

	
 
@@ -1437,7 +1471,7 @@ msgstr "Atributo de E-mail"
 
#: rhodecode/templates/admin/settings/hooks.html:73
 
#: rhodecode/templates/admin/users/user_edit.html:129
 
#: rhodecode/templates/admin/users/user_edit.html:154
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:102
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:79
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:115
 
#: rhodecode/templates/settings/repo_settings.html:84
 
msgid "Save"
 
@@ -1596,7 +1630,7 @@ msgstr "Editar repositório"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:13
 
#: rhodecode/templates/admin/users/user_edit.html:13
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:155
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:71
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:13
 
#: rhodecode/templates/files/files_source.html:32
 
#: rhodecode/templates/journal/journal.html:72
 
@@ -1760,38 +1794,27 @@ msgid "private repository"
 
msgstr "repositório privado"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:33
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:53
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:58
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:23
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:42
 
msgid "revoke"
 
msgstr "revogar"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:75
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:80
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:64
 
msgid "Add another member"
 
msgstr "Adicionar outro membro"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:89
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:94
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:78
 
msgid "Failed to remove user"
 
msgstr "Falha ao reomver usuário"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:104
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:109
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:93
 
msgid "Failed to remove users group"
 
msgstr "Falha ao remover grupo de usuários"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:123
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:112
 
msgid "Group"
 
msgstr "Grupo"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:124
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:113
 
#: rhodecode/templates/admin/users_groups/users_groups.html:33
 
msgid "members"
 
msgstr "membros"
 

	
 
#: rhodecode/templates/admin/repos/repos.html:5
 
msgid "Repositories administration"
 
msgstr "Administração de repositórios"
 
@@ -1809,7 +1832,7 @@ msgid "delete"
 
msgstr "excluir"
 

	
 
#: rhodecode/templates/admin/repos/repos.html:68
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:158
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:74
 
#, python-format
 
msgid "Confirm to delete this repository: %s"
 
msgstr "Confirma excluir esse repositório: %s"
 
@@ -1860,7 +1883,7 @@ msgstr "editar grupo de repositórios"
 
#: rhodecode/templates/admin/settings/settings.html:177
 
#: rhodecode/templates/admin/users/user_edit.html:130
 
#: rhodecode/templates/admin/users/user_edit.html:155
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:103
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:80
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:116
 
#: rhodecode/templates/files/files_add.html:82
 
#: rhodecode/templates/files/files_edit.html:68
 
@@ -2090,17 +2113,17 @@ msgid "Edit user"
 
msgstr "Editar usuário"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:34
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:33
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:10
 
msgid "Change your avatar at"
 
msgstr "Altere o seu avatar em"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:35
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:34
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:11
 
msgid "Using"
 
msgstr "Usando"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:43
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:43
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:20
 
msgid "API key"
 
msgstr "Chave de API"
 

	
 
@@ -2109,12 +2132,12 @@ msgid "LDAP DN"
 
msgstr "DN LDAP"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:68
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:58
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:35
 
msgid "New password"
 
msgstr "Nova senha"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:77
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:67
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:44
 
msgid "New password confirmation"
 
msgstr "Confirmação de nova senha"
 

	
 
@@ -2132,21 +2155,21 @@ msgstr "Minha conta"
 
msgid "My Account"
 
msgstr "Minha Conta"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:116
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:32
 
#: rhodecode/templates/journal/journal.html:32
 
msgid "My repos"
 
msgstr "Meus repositórios"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:116
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:32
 
msgid "My permissions"
 
msgstr "Minhas permissões"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:121
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:37
 
#: rhodecode/templates/journal/journal.html:37
 
msgid "ADD"
 
msgstr "ADICIONAR"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:134
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:50
 
#: rhodecode/templates/bookmarks/bookmarks.html:40
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:9
 
#: rhodecode/templates/branches/branches.html:40
 
@@ -2156,23 +2179,23 @@ msgstr "ADICIONAR"
 
msgid "Revision"
 
msgstr "Revisão"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:155
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:71
 
#: rhodecode/templates/journal/journal.html:72
 
msgid "private"
 
msgstr "privado"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:165
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:81
 
#: rhodecode/templates/journal/journal.html:85
 
msgid "No repositories yet"
 
msgstr "Ainda não há repositórios"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:167
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:83
 
#: rhodecode/templates/journal/journal.html:87
 
msgid "create one now"
 
msgstr "criar um agora"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:184
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:285
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:100
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:201
 
msgid "Permission"
 
msgstr "Permissão"
 

	
 
@@ -2273,6 +2296,11 @@ msgstr "ADICIONAR NOVO GRUPO DE USUÁRIOS"
 
msgid "group name"
 
msgstr "nome do grupo"
 

	
 
#: rhodecode/templates/admin/users_groups/users_groups.html:33
 
#: rhodecode/templates/base/root.html:46
 
msgid "members"
 
msgstr "membros"
 

	
 
#: rhodecode/templates/admin/users_groups/users_groups.html:45
 
#, python-format
 
msgid "Confirm to delete this users group: %s"
 
@@ -2432,21 +2460,25 @@ msgstr "Bifurcações"
 
msgid "Search"
 
msgstr "Pesquisar"
 

	
 
#: rhodecode/templates/base/root.html:53
 
#: rhodecode/templates/base/root.html:42
 
msgid "add another comment"
 
msgstr "adicionar outro comentário"
 

	
 
#: rhodecode/templates/base/root.html:54
 
#: rhodecode/templates/base/root.html:43
 
#: rhodecode/templates/journal/journal.html:111
 
#: rhodecode/templates/summary/summary.html:52
 
msgid "Stop following this repository"
 
msgstr "Parar de seguir este repositório"
 

	
 
#: rhodecode/templates/base/root.html:55
 
#: rhodecode/templates/base/root.html:44
 
#: rhodecode/templates/summary/summary.html:56
 
msgid "Start following this repository"
 
msgstr "Passar a seguir este repositório"
 

	
 
#: rhodecode/templates/base/root.html:45
 
msgid "Group"
 
msgstr "Grupo"
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:5
 
msgid "Bookmarks"
 
msgstr "Marcadores"
 
@@ -2575,7 +2607,7 @@ msgid "download diff"
 
msgstr "descarregar diff"
 

	
 
#: rhodecode/templates/changeset/changeset.html:42
 
#: rhodecode/templates/changeset/changeset_file_comment.html:69
 
#: rhodecode/templates/changeset/changeset_file_comment.html:71
 
#, python-format
 
msgid "%d comment"
 
msgid_plural "%d comments"
 
@@ -2583,7 +2615,7 @@ msgstr[0] "%d comentário"
 
msgstr[1] "%d comentários"
 

	
 
#: rhodecode/templates/changeset/changeset.html:42
 
#: rhodecode/templates/changeset/changeset_file_comment.html:69
 
#: rhodecode/templates/changeset/changeset_file_comment.html:71
 
#, python-format
 
msgid "(%d inline)"
 
msgid_plural "(%d inline)"
 
@@ -2608,37 +2640,37 @@ msgid "Commenting on line {1}."
 
msgstr "Comentando a linha {1}."
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:39
 
#: rhodecode/templates/changeset/changeset_file_comment.html:100
 
#: rhodecode/templates/changeset/changeset_file_comment.html:102
 
#, python-format
 
msgid "Comments parsed using %s syntax with %s support."
 
msgstr "Comentários interpretados usando a sintaxe %s com suporte a %s."
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:41
 
#: rhodecode/templates/changeset/changeset_file_comment.html:102
 
#: rhodecode/templates/changeset/changeset_file_comment.html:104
 
msgid "Use @username inside this text to send notification to this RhodeCode user"
 
msgstr ""
 
"Use @nomedeusuário dentro desse texto para enviar notificação a este "
 
"usuário do RhodeCode"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:47
 
#: rhodecode/templates/changeset/changeset_file_comment.html:107
 
#: rhodecode/templates/changeset/changeset_file_comment.html:49
 
#: rhodecode/templates/changeset/changeset_file_comment.html:110
 
msgid "Comment"
 
msgstr "Comentário"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:48
 
#: rhodecode/templates/changeset/changeset_file_comment.html:59
 
#: rhodecode/templates/changeset/changeset_file_comment.html:50
 
#: rhodecode/templates/changeset/changeset_file_comment.html:61
 
msgid "Hide"
 
msgstr "Ocultar"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:55
 
#: rhodecode/templates/changeset/changeset_file_comment.html:57
 
msgid "You need to be logged in to comment."
 
msgstr "Você precisa estar logado para comentar."
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:55
 
#: rhodecode/templates/changeset/changeset_file_comment.html:57
 
msgid "Login now"
 
msgstr "Entrar agora"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:97
 
#: rhodecode/templates/changeset/changeset_file_comment.html:99
 
msgid "Leave a comment"
 
msgstr "Deixar um comentário"
 

	
rhodecode/i18n/rhodecode.pot
Show inline comments
 
@@ -8,7 +8,7 @@ msgid ""
 
msgstr ""
 
"Project-Id-Version: RhodeCode 1.4.0\n"
 
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
 
"POT-Creation-Date: 2012-05-27 17:41+0200\n"
 
"POT-Creation-Date: 2012-06-03 01:06+0200\n"
 
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 
"Language-Team: LANGUAGE <LL@li.org>\n"
 
@@ -17,24 +17,24 @@ msgstr ""
 
"Content-Transfer-Encoding: 8bit\n"
 
"Generated-By: Babel 0.9.6\n"
 

	
 
#: rhodecode/controllers/changelog.py:96
 
#: rhodecode/controllers/changelog.py:95
 
msgid "All Branches"
 
msgstr ""
 

	
 
#: rhodecode/controllers/changeset.py:79
 
#: rhodecode/controllers/changeset.py:80
 
msgid "show white space"
 
msgstr ""
 

	
 
#: rhodecode/controllers/changeset.py:86 rhodecode/controllers/changeset.py:93
 
#: rhodecode/controllers/changeset.py:87 rhodecode/controllers/changeset.py:94
 
msgid "ignore white space"
 
msgstr ""
 

	
 
#: rhodecode/controllers/changeset.py:153
 
#: rhodecode/controllers/changeset.py:154
 
#, python-format
 
msgid "%s line context"
 
msgstr ""
 

	
 
#: rhodecode/controllers/changeset.py:320 rhodecode/controllers/changeset.py:335
 
#: rhodecode/controllers/changeset.py:324 rhodecode/controllers/changeset.py:339
 
#: rhodecode/lib/diffs.py:62
 
msgid "binary file"
 
msgstr ""
 
@@ -179,7 +179,7 @@ msgstr ""
 
msgid "%s public journal %s feed"
 
msgstr ""
 

	
 
#: rhodecode/controllers/journal.py:190 rhodecode/controllers/journal.py:224
 
#: rhodecode/controllers/journal.py:190 rhodecode/controllers/journal.py:223
 
#: rhodecode/templates/admin/repos/repo_edit.html:177
 
#: rhodecode/templates/base/base.html:307 rhodecode/templates/base/base.html:309
 
#: rhodecode/templates/base/base.html:311
 
@@ -210,30 +210,30 @@ msgstr ""
 
msgid "An error occurred during this search operation"
 
msgstr ""
 

	
 
#: rhodecode/controllers/settings.py:103 rhodecode/controllers/admin/repos.py:211
 
#: rhodecode/controllers/settings.py:103 rhodecode/controllers/admin/repos.py:213
 
#, python-format
 
msgid "Repository %s updated successfully"
 
msgstr ""
 

	
 
#: rhodecode/controllers/settings.py:121 rhodecode/controllers/admin/repos.py:229
 
#: rhodecode/controllers/settings.py:121 rhodecode/controllers/admin/repos.py:231
 
#, python-format
 
msgid "error occurred during update of repository %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/settings.py:139 rhodecode/controllers/admin/repos.py:247
 
#: rhodecode/controllers/settings.py:139 rhodecode/controllers/admin/repos.py:249
 
#, python-format
 
msgid ""
 
"%s repository is not mapped to db perhaps it was moved or renamed  from the "
 
"filesystem please run the application again in order to rescan repositories"
 
msgstr ""
 

	
 
#: rhodecode/controllers/settings.py:151 rhodecode/controllers/admin/repos.py:259
 
#: rhodecode/controllers/settings.py:151 rhodecode/controllers/admin/repos.py:261
 
#, python-format
 
msgid "deleted repository %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/settings.py:155 rhodecode/controllers/admin/repos.py:269
 
#: rhodecode/controllers/admin/repos.py:275
 
#: rhodecode/controllers/settings.py:155 rhodecode/controllers/admin/repos.py:271
 
#: rhodecode/controllers/admin/repos.py:277
 
#, python-format
 
msgid "An error occurred during deletion of %s"
 
msgstr ""
 
@@ -380,62 +380,62 @@ msgstr ""
 
msgid "created repository %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:177
 
#: rhodecode/controllers/admin/repos.py:179
 
#, python-format
 
msgid "error occurred during creation of repository %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:264
 
#: rhodecode/controllers/admin/repos.py:266
 
#, python-format
 
msgid "Cannot delete %s it still contains attached forks"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:293
 
#: rhodecode/controllers/admin/repos.py:295
 
msgid "An error occurred during deletion of repository user"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:312
 
#: rhodecode/controllers/admin/repos.py:314
 
msgid "An error occurred during deletion of repository users groups"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:329
 
#: rhodecode/controllers/admin/repos.py:331
 
msgid "An error occurred during deletion of repository stats"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:345
 
#: rhodecode/controllers/admin/repos.py:347
 
msgid "An error occurred during cache invalidation"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:365
 
#: rhodecode/controllers/admin/repos.py:367
 
msgid "Updated repository visibility in public journal"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:369
 
#: rhodecode/controllers/admin/repos.py:371
 
msgid "An error occurred during setting this repository in public journal"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:374 rhodecode/model/forms.py:54
 
#: rhodecode/controllers/admin/repos.py:376 rhodecode/model/forms.py:54
 
msgid "Token mismatch"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:387
 
msgid "Pulled from remote location"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:389
 
msgid "Pulled from remote location"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:391
 
msgid "An error occurred during pull from remote location"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:405
 
msgid "Nothing"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:407
 
msgid "Nothing"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:409
 
#, python-format
 
msgid "Marked repo %s as fork of %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:411
 
#: rhodecode/controllers/admin/repos.py:413
 
msgid "An error occurred during this operation"
 
msgstr ""
 

	
 
@@ -529,77 +529,77 @@ msgstr ""
 
msgid "You can't edit this user since it's crucial for entire application"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/settings.py:365
 
#: rhodecode/controllers/admin/settings.py:367
 
msgid "Your account was updated successfully"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/settings.py:384
 
#: rhodecode/controllers/admin/users.py:132
 
#: rhodecode/controllers/admin/settings.py:387
 
#: rhodecode/controllers/admin/users.py:138
 
#, python-format
 
msgid "error occurred during update of user %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:79
 
#: rhodecode/controllers/admin/users.py:83
 
#, python-format
 
msgid "created user %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:92
 
#: rhodecode/controllers/admin/users.py:95
 
#, python-format
 
msgid "error occurred during creation of user %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:118
 
#: rhodecode/controllers/admin/users.py:124
 
msgid "User updated successfully"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:149
 
#: rhodecode/controllers/admin/users.py:155
 
msgid "successfully deleted user"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:154
 
#: rhodecode/controllers/admin/users.py:160
 
msgid "An error occurred during deletion of user"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:169
 
#: rhodecode/controllers/admin/users.py:175
 
msgid "You can't edit this user"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:199
 
#: rhodecode/controllers/admin/users_groups.py:215
 
#: rhodecode/controllers/admin/users.py:205
 
#: rhodecode/controllers/admin/users_groups.py:219
 
msgid "Granted 'repository create' permission to user"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:208
 
#: rhodecode/controllers/admin/users_groups.py:225
 
#: rhodecode/controllers/admin/users.py:214
 
#: rhodecode/controllers/admin/users_groups.py:229
 
msgid "Revoked 'repository create' permission to user"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users_groups.py:79
 
#: rhodecode/controllers/admin/users_groups.py:84
 
#, python-format
 
msgid "created users group %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users_groups.py:92
 
#: rhodecode/controllers/admin/users_groups.py:95
 
#, python-format
 
msgid "error occurred during creation of users group %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users_groups.py:128
 
#: rhodecode/controllers/admin/users_groups.py:135
 
#, python-format
 
msgid "updated users group %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users_groups.py:148
 
#: rhodecode/controllers/admin/users_groups.py:152
 
#, python-format
 
msgid "error occurred during update of users group %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users_groups.py:165
 
#: rhodecode/controllers/admin/users_groups.py:169
 
msgid "successfully deleted users group"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users_groups.py:170
 
#: rhodecode/controllers/admin/users_groups.py:174
 
msgid "An error occurred during deletion of users group"
 
msgstr ""
 

	
 
@@ -657,60 +657,80 @@ msgstr ""
 
msgid "fork name "
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:540
 
#: rhodecode/lib/helpers.py:550
 
msgid "[deleted] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:541 rhodecode/lib/helpers.py:546
 
#: rhodecode/lib/helpers.py:552 rhodecode/lib/helpers.py:562
 
msgid "[created] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:542
 
msgid "[created] repository as fork"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:543 rhodecode/lib/helpers.py:547
 
msgid "[forked] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:544 rhodecode/lib/helpers.py:548
 
msgid "[updated] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:545
 
msgid "[delete] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:549
 
msgid "[pushed] into"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:550
 
msgid "[committed via RhodeCode] into"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:551
 
msgid "[pulled from remote] into"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:552
 
msgid "[pulled] from"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:553
 
msgid "[started following] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:554
 
msgid "[created] repository as fork"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:556 rhodecode/lib/helpers.py:564
 
msgid "[forked] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:558 rhodecode/lib/helpers.py:566
 
msgid "[updated] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:560
 
msgid "[delete] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:568
 
msgid "[created] user"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:570
 
msgid "[updated] user"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:572
 
msgid "[created] users group"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:574
 
msgid "[updated] users group"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:576
 
msgid "[commented] on revision in repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:578
 
msgid "[pushed] into"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:580
 
msgid "[committed via RhodeCode] into repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:582
 
msgid "[pulled from remote] into repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:584
 
msgid "[pulled] from"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:586
 
msgid "[started following] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:588
 
msgid "[stopped following] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:732
 
#: rhodecode/lib/helpers.py:752
 
#, python-format
 
msgid " and %s more"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:736
 
#: rhodecode/lib/helpers.py:756
 
msgid "No Files"
 
msgstr ""
 

	
 
@@ -958,7 +978,7 @@ msgid "Dashboard"
 
msgstr ""
 

	
 
#: rhodecode/templates/index_base.html:6
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:115
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:31
 
#: rhodecode/templates/bookmarks/bookmarks.html:10
 
#: rhodecode/templates/branches/branches.html:9
 
#: rhodecode/templates/journal/journal.html:31
 
@@ -1009,10 +1029,10 @@ msgstr ""
 
#: rhodecode/templates/admin/repos/repo_edit.html:32
 
#: rhodecode/templates/admin/repos/repos.html:36
 
#: rhodecode/templates/admin/repos/repos.html:82
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:133
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:183
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:249
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:284
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:49
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:99
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:165
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:200
 
#: rhodecode/templates/bookmarks/bookmarks.html:36
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:6
 
#: rhodecode/templates/branches/branches.html:36
 
@@ -1035,7 +1055,7 @@ msgstr ""
 
#: rhodecode/templates/index_base.html:69 rhodecode/templates/index_base.html:161
 
#: rhodecode/templates/admin/repos/repos.html:39
 
#: rhodecode/templates/admin/repos/repos.html:87
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:251
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:167
 
#: rhodecode/templates/journal/journal.html:179
 
msgid "Tip"
 
msgstr ""
 
@@ -1074,7 +1094,7 @@ msgstr ""
 

	
 
#: rhodecode/templates/index_base.html:148 rhodecode/templates/index_base.html:188
 
#: rhodecode/templates/admin/repos/repos.html:112
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:270
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:186
 
#: rhodecode/templates/bookmarks/bookmarks.html:60
 
#: rhodecode/templates/branches/branches.html:60
 
#: rhodecode/templates/journal/journal.html:202
 
@@ -1084,7 +1104,7 @@ msgstr ""
 

	
 
#: rhodecode/templates/index_base.html:149 rhodecode/templates/index_base.html:189
 
#: rhodecode/templates/admin/repos/repos.html:113
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:271
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:187
 
#: rhodecode/templates/bookmarks/bookmarks.html:61
 
#: rhodecode/templates/branches/branches.html:61
 
#: rhodecode/templates/journal/journal.html:203
 
@@ -1099,7 +1119,7 @@ msgstr ""
 

	
 
#: rhodecode/templates/index_base.html:190
 
#: rhodecode/templates/admin/repos/repos.html:114
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:272
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:188
 
#: rhodecode/templates/bookmarks/bookmarks.html:62
 
#: rhodecode/templates/branches/branches.html:62
 
#: rhodecode/templates/journal/journal.html:204
 
@@ -1109,7 +1129,7 @@ msgstr ""
 

	
 
#: rhodecode/templates/index_base.html:191
 
#: rhodecode/templates/admin/repos/repos.html:115
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:273
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:189
 
#: rhodecode/templates/bookmarks/bookmarks.html:63
 
#: rhodecode/templates/branches/branches.html:63
 
#: rhodecode/templates/journal/journal.html:205
 
@@ -1119,7 +1139,7 @@ msgstr ""
 

	
 
#: rhodecode/templates/index_base.html:192
 
#: rhodecode/templates/admin/repos/repos.html:116
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:274
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:190
 
#: rhodecode/templates/bookmarks/bookmarks.html:64
 
#: rhodecode/templates/branches/branches.html:64
 
#: rhodecode/templates/journal/journal.html:206
 
@@ -1139,7 +1159,7 @@ msgstr ""
 
#: rhodecode/templates/admin/admin_log.html:5
 
#: rhodecode/templates/admin/users/user_add.html:32
 
#: rhodecode/templates/admin/users/user_edit.html:50
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:49
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:26
 
#: rhodecode/templates/base/base.html:83
 
#: rhodecode/templates/summary/summary.html:113
 
msgid "Username"
 
@@ -1199,21 +1219,21 @@ msgstr ""
 
#: rhodecode/templates/register.html:47
 
#: rhodecode/templates/admin/users/user_add.html:59
 
#: rhodecode/templates/admin/users/user_edit.html:86
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:76
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:53
 
msgid "First Name"
 
msgstr ""
 

	
 
#: rhodecode/templates/register.html:56
 
#: rhodecode/templates/admin/users/user_add.html:68
 
#: rhodecode/templates/admin/users/user_edit.html:95
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:85
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:62
 
msgid "Last Name"
 
msgstr ""
 

	
 
#: rhodecode/templates/register.html:65
 
#: rhodecode/templates/admin/users/user_add.html:77
 
#: rhodecode/templates/admin/users/user_edit.html:104
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:94
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:71
 
#: rhodecode/templates/summary/summary.html:115
 
msgid "Email"
 
msgstr ""
 
@@ -1275,8 +1295,8 @@ msgstr ""
 
#: rhodecode/templates/admin/admin_log.html:6
 
#: rhodecode/templates/admin/repos/repos.html:41
 
#: rhodecode/templates/admin/repos/repos.html:90
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:135
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:136
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:51
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:52
 
#: rhodecode/templates/journal/journal.html:52
 
#: rhodecode/templates/journal/journal.html:53
 
msgid "Action"
 
@@ -1298,7 +1318,7 @@ msgstr ""
 
msgid "From IP"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/admin_log.html:52
 
#: rhodecode/templates/admin/admin_log.html:53
 
msgid "No actions yet"
 
msgstr ""
 

	
 
@@ -1379,7 +1399,7 @@ msgstr ""
 
#: rhodecode/templates/admin/settings/hooks.html:73
 
#: rhodecode/templates/admin/users/user_edit.html:129
 
#: rhodecode/templates/admin/users/user_edit.html:154
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:102
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:79
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:115
 
#: rhodecode/templates/settings/repo_settings.html:84
 
msgid "Save"
 
@@ -1531,7 +1551,7 @@ msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:13
 
#: rhodecode/templates/admin/users/user_edit.html:13
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:155
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:71
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:13
 
#: rhodecode/templates/files/files_source.html:32
 
#: rhodecode/templates/journal/journal.html:72
 
@@ -1689,38 +1709,27 @@ msgid "private repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:33
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:53
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:58
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:23
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:42
 
msgid "revoke"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:75
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:80
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:64
 
msgid "Add another member"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:89
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:94
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:78
 
msgid "Failed to remove user"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:104
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:109
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:93
 
msgid "Failed to remove users group"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:123
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:112
 
msgid "Group"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:124
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:113
 
#: rhodecode/templates/admin/users_groups/users_groups.html:33
 
msgid "members"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repos.html:5
 
msgid "Repositories administration"
 
msgstr ""
 
@@ -1738,7 +1747,7 @@ msgid "delete"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repos.html:68
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:158
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:74
 
#, python-format
 
msgid "Confirm to delete this repository: %s"
 
msgstr ""
 
@@ -1789,7 +1798,7 @@ msgstr ""
 
#: rhodecode/templates/admin/settings/settings.html:177
 
#: rhodecode/templates/admin/users/user_edit.html:130
 
#: rhodecode/templates/admin/users/user_edit.html:155
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:103
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:80
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:116
 
#: rhodecode/templates/files/files_add.html:82
 
#: rhodecode/templates/files/files_edit.html:68
 
@@ -2013,17 +2022,17 @@ msgid "Edit user"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:34
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:33
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:10
 
msgid "Change your avatar at"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:35
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:34
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:11
 
msgid "Using"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:43
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:43
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:20
 
msgid "API key"
 
msgstr ""
 

	
 
@@ -2032,12 +2041,12 @@ msgid "LDAP DN"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:68
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:58
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:35
 
msgid "New password"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:77
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:67
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:44
 
msgid "New password confirmation"
 
msgstr ""
 

	
 
@@ -2055,21 +2064,21 @@ msgstr ""
 
msgid "My Account"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:116
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:32
 
#: rhodecode/templates/journal/journal.html:32
 
msgid "My repos"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:116
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:32
 
msgid "My permissions"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:121
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:37
 
#: rhodecode/templates/journal/journal.html:37
 
msgid "ADD"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:134
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:50
 
#: rhodecode/templates/bookmarks/bookmarks.html:40
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:9
 
#: rhodecode/templates/branches/branches.html:40
 
@@ -2078,23 +2087,23 @@ msgstr ""
 
msgid "Revision"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:155
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:71
 
#: rhodecode/templates/journal/journal.html:72
 
msgid "private"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:165
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:81
 
#: rhodecode/templates/journal/journal.html:85
 
msgid "No repositories yet"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:167
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:83
 
#: rhodecode/templates/journal/journal.html:87
 
msgid "create one now"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:184
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:285
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:100
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:201
 
msgid "Permission"
 
msgstr ""
 

	
 
@@ -2195,6 +2204,11 @@ msgstr ""
 
msgid "group name"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users_groups/users_groups.html:33
 
#: rhodecode/templates/base/root.html:46
 
msgid "members"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users_groups/users_groups.html:45
 
#, python-format
 
msgid "Confirm to delete this users group: %s"
 
@@ -2338,21 +2352,25 @@ msgstr ""
 
msgid "Search"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:53
 
#: rhodecode/templates/base/root.html:42
 
msgid "add another comment"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:54
 
#: rhodecode/templates/base/root.html:43
 
#: rhodecode/templates/journal/journal.html:111
 
#: rhodecode/templates/summary/summary.html:52
 
msgid "Stop following this repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:55
 
#: rhodecode/templates/base/root.html:44
 
#: rhodecode/templates/summary/summary.html:56
 
msgid "Start following this repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:45
 
msgid "Group"
 
msgstr ""
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:5
 
msgid "Bookmarks"
 
msgstr ""
 
@@ -2480,7 +2498,7 @@ msgid "download diff"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:42
 
#: rhodecode/templates/changeset/changeset_file_comment.html:69
 
#: rhodecode/templates/changeset/changeset_file_comment.html:71
 
#, python-format
 
msgid "%d comment"
 
msgid_plural "%d comments"
 
@@ -2488,7 +2506,7 @@ msgstr[0] ""
 
msgstr[1] ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:42
 
#: rhodecode/templates/changeset/changeset_file_comment.html:69
 
#: rhodecode/templates/changeset/changeset_file_comment.html:71
 
#, python-format
 
msgid "(%d inline)"
 
msgid_plural "(%d inline)"
 
@@ -2513,35 +2531,35 @@ msgid "Commenting on line {1}."
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:39
 
#: rhodecode/templates/changeset/changeset_file_comment.html:100
 
#: rhodecode/templates/changeset/changeset_file_comment.html:102
 
#, python-format
 
msgid "Comments parsed using %s syntax with %s support."
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:41
 
#: rhodecode/templates/changeset/changeset_file_comment.html:102
 
#: rhodecode/templates/changeset/changeset_file_comment.html:104
 
msgid "Use @username inside this text to send notification to this RhodeCode user"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:47
 
#: rhodecode/templates/changeset/changeset_file_comment.html:107
 
#: rhodecode/templates/changeset/changeset_file_comment.html:49
 
#: rhodecode/templates/changeset/changeset_file_comment.html:110
 
msgid "Comment"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:48
 
#: rhodecode/templates/changeset/changeset_file_comment.html:59
 
#: rhodecode/templates/changeset/changeset_file_comment.html:50
 
#: rhodecode/templates/changeset/changeset_file_comment.html:61
 
msgid "Hide"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:55
 
#: rhodecode/templates/changeset/changeset_file_comment.html:57
 
msgid "You need to be logged in to comment."
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:55
 
#: rhodecode/templates/changeset/changeset_file_comment.html:57
 
msgid "Login now"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:97
 
#: rhodecode/templates/changeset/changeset_file_comment.html:99
 
msgid "Leave a comment"
 
msgstr ""
 

	
rhodecode/i18n/zh_CN/LC_MESSAGES/rhodecode.po
Show inline comments
 
@@ -7,7 +7,7 @@ msgid ""
 
msgstr ""
 
"Project-Id-Version: RhodeCode 1.2.0\n"
 
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
 
"POT-Creation-Date: 2012-05-27 17:41+0200\n"
 
"POT-Creation-Date: 2012-06-03 01:06+0200\n"
 
"PO-Revision-Date: 2012-04-05 17:37+0800\n"
 
"Last-Translator: mikespook <mikespook@gmail.com>\n"
 
"Language-Team: mikespook\n"
 
@@ -17,26 +17,26 @@ msgstr ""
 
"Content-Transfer-Encoding: 8bit\n"
 
"Generated-By: Babel 0.9.6\n"
 

	
 
#: rhodecode/controllers/changelog.py:96
 
#: rhodecode/controllers/changelog.py:95
 
#, fuzzy
 
msgid "All Branches"
 
msgstr "分支"
 

	
 
#: rhodecode/controllers/changeset.py:79
 
#: rhodecode/controllers/changeset.py:80
 
msgid "show white space"
 
msgstr ""
 

	
 
#: rhodecode/controllers/changeset.py:86 rhodecode/controllers/changeset.py:93
 
#: rhodecode/controllers/changeset.py:87 rhodecode/controllers/changeset.py:94
 
msgid "ignore white space"
 
msgstr ""
 

	
 
#: rhodecode/controllers/changeset.py:153
 
#: rhodecode/controllers/changeset.py:154
 
#, fuzzy, python-format
 
msgid "%s line context"
 
msgstr "文件内容"
 

	
 
#: rhodecode/controllers/changeset.py:320
 
#: rhodecode/controllers/changeset.py:335 rhodecode/lib/diffs.py:62
 
#: rhodecode/controllers/changeset.py:324
 
#: rhodecode/controllers/changeset.py:339 rhodecode/lib/diffs.py:62
 
msgid "binary file"
 
msgstr "二进制文件"
 

	
 
@@ -184,7 +184,7 @@ msgstr ""
 
msgid "%s public journal %s feed"
 
msgstr "公共日志 %s %s 订阅"
 

	
 
#: rhodecode/controllers/journal.py:190 rhodecode/controllers/journal.py:224
 
#: rhodecode/controllers/journal.py:190 rhodecode/controllers/journal.py:223
 
#: rhodecode/templates/admin/repos/repo_edit.html:177
 
#: rhodecode/templates/base/base.html:307
 
#: rhodecode/templates/base/base.html:309
 
@@ -219,19 +219,19 @@ msgid "An error occurred during this sea
 
msgstr "在搜索操作中发生异常"
 

	
 
#: rhodecode/controllers/settings.py:103
 
#: rhodecode/controllers/admin/repos.py:211
 
#: rhodecode/controllers/admin/repos.py:213
 
#, python-format
 
msgid "Repository %s updated successfully"
 
msgstr "版本库 %s 成功更新"
 

	
 
#: rhodecode/controllers/settings.py:121
 
#: rhodecode/controllers/admin/repos.py:229
 
#: rhodecode/controllers/admin/repos.py:231
 
#, python-format
 
msgid "error occurred during update of repository %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/settings.py:139
 
#: rhodecode/controllers/admin/repos.py:247
 
#: rhodecode/controllers/admin/repos.py:249
 
#, python-format
 
msgid ""
 
"%s repository is not mapped to db perhaps it was moved or renamed  from "
 
@@ -240,14 +240,14 @@ msgid ""
 
msgstr ""
 

	
 
#: rhodecode/controllers/settings.py:151
 
#: rhodecode/controllers/admin/repos.py:259
 
#: rhodecode/controllers/admin/repos.py:261
 
#, python-format
 
msgid "deleted repository %s"
 
msgstr "已经删除版本库 %s"
 

	
 
#: rhodecode/controllers/settings.py:155
 
#: rhodecode/controllers/admin/repos.py:269
 
#: rhodecode/controllers/admin/repos.py:275
 
#: rhodecode/controllers/admin/repos.py:271
 
#: rhodecode/controllers/admin/repos.py:277
 
#, python-format
 
msgid "An error occurred during deletion of %s"
 
msgstr ""
 
@@ -396,62 +396,62 @@ msgstr "新版本库 %s 基于 %s 建立。"
 
msgid "created repository %s"
 
msgstr "建立版本库 %s"
 

	
 
#: rhodecode/controllers/admin/repos.py:177
 
#: rhodecode/controllers/admin/repos.py:179
 
#, python-format
 
msgid "error occurred during creation of repository %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:264
 
#: rhodecode/controllers/admin/repos.py:266
 
#, python-format
 
msgid "Cannot delete %s it still contains attached forks"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:293
 
#: rhodecode/controllers/admin/repos.py:295
 
msgid "An error occurred during deletion of repository user"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:312
 
#: rhodecode/controllers/admin/repos.py:314
 
msgid "An error occurred during deletion of repository users groups"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:329
 
#: rhodecode/controllers/admin/repos.py:331
 
msgid "An error occurred during deletion of repository stats"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:345
 
#: rhodecode/controllers/admin/repos.py:347
 
msgid "An error occurred during cache invalidation"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:365
 
#: rhodecode/controllers/admin/repos.py:367
 
msgid "Updated repository visibility in public journal"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:369
 
#: rhodecode/controllers/admin/repos.py:371
 
msgid "An error occurred during setting this repository in public journal"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:374 rhodecode/model/forms.py:54
 
#: rhodecode/controllers/admin/repos.py:376 rhodecode/model/forms.py:54
 
msgid "Token mismatch"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:387
 
msgid "Pulled from remote location"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:389
 
msgid "An error occurred during pull from remote location"
 
msgid "Pulled from remote location"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:405
 
msgid "Nothing"
 
#: rhodecode/controllers/admin/repos.py:391
 
msgid "An error occurred during pull from remote location"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:407
 
msgid "Nothing"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:409
 
#, fuzzy, python-format
 
msgid "Marked repo %s as fork of %s"
 
msgstr "新版本库 %s 基于 %s 建立。"
 

	
 
#: rhodecode/controllers/admin/repos.py:411
 
#: rhodecode/controllers/admin/repos.py:413
 
#, fuzzy
 
msgid "An error occurred during this operation"
 
msgstr "在搜索操作中发生异常"
 
@@ -547,77 +547,77 @@ msgstr ""
 
msgid "You can't edit this user since it's crucial for entire application"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/settings.py:365
 
#: rhodecode/controllers/admin/settings.py:367
 
msgid "Your account was updated successfully"
 
msgstr "你的帐号已经更新完成"
 

	
 
#: rhodecode/controllers/admin/settings.py:384
 
#: rhodecode/controllers/admin/users.py:132
 
#: rhodecode/controllers/admin/settings.py:387
 
#: rhodecode/controllers/admin/users.py:138
 
#, python-format
 
msgid "error occurred during update of user %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:79
 
#: rhodecode/controllers/admin/users.py:83
 
#, python-format
 
msgid "created user %s"
 
msgstr "创建用户 %s"
 

	
 
#: rhodecode/controllers/admin/users.py:92
 
#: rhodecode/controllers/admin/users.py:95
 
#, python-format
 
msgid "error occurred during creation of user %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:118
 
#: rhodecode/controllers/admin/users.py:124
 
msgid "User updated successfully"
 
msgstr "用户更新成功"
 

	
 
#: rhodecode/controllers/admin/users.py:149
 
#: rhodecode/controllers/admin/users.py:155
 
msgid "successfully deleted user"
 
msgstr "用户删除成功"
 

	
 
#: rhodecode/controllers/admin/users.py:154
 
#: rhodecode/controllers/admin/users.py:160
 
msgid "An error occurred during deletion of user"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:169
 
#: rhodecode/controllers/admin/users.py:175
 
msgid "You can't edit this user"
 
msgstr "无法编辑该用户"
 

	
 
#: rhodecode/controllers/admin/users.py:199
 
#: rhodecode/controllers/admin/users_groups.py:215
 
#: rhodecode/controllers/admin/users.py:205
 
#: rhodecode/controllers/admin/users_groups.py:219
 
msgid "Granted 'repository create' permission to user"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:208
 
#: rhodecode/controllers/admin/users_groups.py:225
 
#: rhodecode/controllers/admin/users.py:214
 
#: rhodecode/controllers/admin/users_groups.py:229
 
msgid "Revoked 'repository create' permission to user"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users_groups.py:79
 
#: rhodecode/controllers/admin/users_groups.py:84
 
#, python-format
 
msgid "created users group %s"
 
msgstr "建立用户组 %s"
 

	
 
#: rhodecode/controllers/admin/users_groups.py:92
 
#: rhodecode/controllers/admin/users_groups.py:95
 
#, python-format
 
msgid "error occurred during creation of users group %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users_groups.py:128
 
#: rhodecode/controllers/admin/users_groups.py:135
 
#, python-format
 
msgid "updated users group %s"
 
msgstr "更新用户组 %s"
 

	
 
#: rhodecode/controllers/admin/users_groups.py:148
 
#: rhodecode/controllers/admin/users_groups.py:152
 
#, python-format
 
msgid "error occurred during update of users group %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users_groups.py:165
 
#: rhodecode/controllers/admin/users_groups.py:169
 
msgid "successfully deleted users group"
 
msgstr "删除用户组成功"
 

	
 
#: rhodecode/controllers/admin/users_groups.py:170
 
#: rhodecode/controllers/admin/users_groups.py:174
 
msgid "An error occurred during deletion of users group"
 
msgstr ""
 

	
 
@@ -677,61 +677,89 @@ msgstr "修订"
 
msgid "fork name "
 
msgstr "分支名称"
 

	
 
#: rhodecode/lib/helpers.py:540
 
#: rhodecode/lib/helpers.py:550
 
msgid "[deleted] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:541 rhodecode/lib/helpers.py:546
 
#: rhodecode/lib/helpers.py:552 rhodecode/lib/helpers.py:562
 
msgid "[created] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:542
 
#: rhodecode/lib/helpers.py:554
 
#, fuzzy
 
msgid "[created] repository as fork"
 
msgstr "建立版本库 %s"
 

	
 
#: rhodecode/lib/helpers.py:543 rhodecode/lib/helpers.py:547
 
#: rhodecode/lib/helpers.py:556 rhodecode/lib/helpers.py:564
 
msgid "[forked] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:544 rhodecode/lib/helpers.py:548
 
#: rhodecode/lib/helpers.py:558 rhodecode/lib/helpers.py:566
 
msgid "[updated] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:545
 
#: rhodecode/lib/helpers.py:560
 
msgid "[delete] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:549
 
#: rhodecode/lib/helpers.py:568
 
#, fuzzy, python-format
 
#| msgid "created user %s"
 
msgid "[created] user"
 
msgstr "创建用户 %s"
 

	
 
#: rhodecode/lib/helpers.py:570
 
#, fuzzy, python-format
 
#| msgid "updated users group %s"
 
msgid "[updated] user"
 
msgstr "更新用户组 %s"
 

	
 
#: rhodecode/lib/helpers.py:572
 
#, fuzzy, python-format
 
#| msgid "created users group %s"
 
msgid "[created] users group"
 
msgstr "建立用户组 %s"
 

	
 
#: rhodecode/lib/helpers.py:574
 
#, fuzzy, python-format
 
#| msgid "updated users group %s"
 
msgid "[updated] users group"
 
msgstr "更新用户组 %s"
 

	
 
#: rhodecode/lib/helpers.py:576
 
msgid "[commented] on revision in repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:578
 
msgid "[pushed] into"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:550
 
msgid "[committed via RhodeCode] into"
 
#: rhodecode/lib/helpers.py:580
 
msgid "[committed via RhodeCode] into repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:551
 
msgid "[pulled from remote] into"
 
#: rhodecode/lib/helpers.py:582
 
msgid "[pulled from remote] into repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:552
 
#: rhodecode/lib/helpers.py:584
 
msgid "[pulled] from"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:553
 
#: rhodecode/lib/helpers.py:586
 
msgid "[started following] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:554
 
#: rhodecode/lib/helpers.py:588
 
msgid "[stopped following] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:732
 
#: rhodecode/lib/helpers.py:752
 
#, python-format
 
msgid " and %s more"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:736
 
#: rhodecode/lib/helpers.py:756
 
msgid "No Files"
 
msgstr "没有文件"
 

	
 
@@ -979,7 +1007,7 @@ msgid "Dashboard"
 
msgstr ""
 

	
 
#: rhodecode/templates/index_base.html:6
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:115
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:31
 
#: rhodecode/templates/bookmarks/bookmarks.html:10
 
#: rhodecode/templates/branches/branches.html:9
 
#: rhodecode/templates/journal/journal.html:31
 
@@ -1034,10 +1062,10 @@ msgstr "版本库组"
 
#: rhodecode/templates/admin/repos/repo_edit.html:32
 
#: rhodecode/templates/admin/repos/repos.html:36
 
#: rhodecode/templates/admin/repos/repos.html:82
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:133
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:183
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:249
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:284
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:49
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:99
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:165
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:200
 
#: rhodecode/templates/bookmarks/bookmarks.html:36
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:6
 
#: rhodecode/templates/branches/branches.html:36
 
@@ -1062,7 +1090,7 @@ msgstr "最后修改"
 
#: rhodecode/templates/index_base.html:161
 
#: rhodecode/templates/admin/repos/repos.html:39
 
#: rhodecode/templates/admin/repos/repos.html:87
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:251
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:167
 
#: rhodecode/templates/journal/journal.html:179
 
msgid "Tip"
 
msgstr ""
 
@@ -1106,7 +1134,7 @@ msgstr "组名"
 
#: rhodecode/templates/index_base.html:148
 
#: rhodecode/templates/index_base.html:188
 
#: rhodecode/templates/admin/repos/repos.html:112
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:270
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:186
 
#: rhodecode/templates/bookmarks/bookmarks.html:60
 
#: rhodecode/templates/branches/branches.html:60
 
#: rhodecode/templates/journal/journal.html:202
 
@@ -1117,7 +1145,7 @@ msgstr ""
 
#: rhodecode/templates/index_base.html:149
 
#: rhodecode/templates/index_base.html:189
 
#: rhodecode/templates/admin/repos/repos.html:113
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:271
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:187
 
#: rhodecode/templates/bookmarks/bookmarks.html:61
 
#: rhodecode/templates/branches/branches.html:61
 
#: rhodecode/templates/journal/journal.html:203
 
@@ -1133,7 +1161,7 @@ msgstr "最后修改"
 

	
 
#: rhodecode/templates/index_base.html:190
 
#: rhodecode/templates/admin/repos/repos.html:114
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:272
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:188
 
#: rhodecode/templates/bookmarks/bookmarks.html:62
 
#: rhodecode/templates/branches/branches.html:62
 
#: rhodecode/templates/journal/journal.html:204
 
@@ -1143,7 +1171,7 @@ msgstr ""
 

	
 
#: rhodecode/templates/index_base.html:191
 
#: rhodecode/templates/admin/repos/repos.html:115
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:273
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:189
 
#: rhodecode/templates/bookmarks/bookmarks.html:63
 
#: rhodecode/templates/branches/branches.html:63
 
#: rhodecode/templates/journal/journal.html:205
 
@@ -1153,7 +1181,7 @@ msgstr ""
 

	
 
#: rhodecode/templates/index_base.html:192
 
#: rhodecode/templates/admin/repos/repos.html:116
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:274
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:190
 
#: rhodecode/templates/bookmarks/bookmarks.html:64
 
#: rhodecode/templates/branches/branches.html:64
 
#: rhodecode/templates/journal/journal.html:206
 
@@ -1174,7 +1202,7 @@ msgstr "登录到"
 
#: rhodecode/templates/admin/admin_log.html:5
 
#: rhodecode/templates/admin/users/user_add.html:32
 
#: rhodecode/templates/admin/users/user_edit.html:50
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:49
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:26
 
#: rhodecode/templates/base/base.html:83
 
#: rhodecode/templates/summary/summary.html:113
 
msgid "Username"
 
@@ -1235,21 +1263,21 @@ msgstr "确认密码"
 
#: rhodecode/templates/register.html:47
 
#: rhodecode/templates/admin/users/user_add.html:59
 
#: rhodecode/templates/admin/users/user_edit.html:86
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:76
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:53
 
msgid "First Name"
 
msgstr "名"
 

	
 
#: rhodecode/templates/register.html:56
 
#: rhodecode/templates/admin/users/user_add.html:68
 
#: rhodecode/templates/admin/users/user_edit.html:95
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:85
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:62
 
msgid "Last Name"
 
msgstr "姓"
 

	
 
#: rhodecode/templates/register.html:65
 
#: rhodecode/templates/admin/users/user_add.html:77
 
#: rhodecode/templates/admin/users/user_edit.html:104
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:94
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:71
 
#: rhodecode/templates/summary/summary.html:115
 
msgid "Email"
 
msgstr "电子邮件"
 
@@ -1313,8 +1341,8 @@ msgstr "管理员日志"
 
#: rhodecode/templates/admin/admin_log.html:6
 
#: rhodecode/templates/admin/repos/repos.html:41
 
#: rhodecode/templates/admin/repos/repos.html:90
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:135
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:136
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:51
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:52
 
#: rhodecode/templates/journal/journal.html:52
 
#: rhodecode/templates/journal/journal.html:53
 
msgid "Action"
 
@@ -1337,7 +1365,7 @@ msgstr "日期"
 
msgid "From IP"
 
msgstr "来源 IP"
 

	
 
#: rhodecode/templates/admin/admin_log.html:52
 
#: rhodecode/templates/admin/admin_log.html:53
 
msgid "No actions yet"
 
msgstr "尚无操作"
 

	
 
@@ -1418,7 +1446,7 @@ msgstr "电子邮件属性"
 
#: rhodecode/templates/admin/settings/hooks.html:73
 
#: rhodecode/templates/admin/users/user_edit.html:129
 
#: rhodecode/templates/admin/users/user_edit.html:154
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:102
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:79
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:115
 
#: rhodecode/templates/settings/repo_settings.html:84
 
msgid "Save"
 
@@ -1574,7 +1602,7 @@ msgstr "编辑版本库"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:13
 
#: rhodecode/templates/admin/users/user_edit.html:13
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:155
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:71
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:13
 
#: rhodecode/templates/files/files_source.html:32
 
#: rhodecode/templates/journal/journal.html:72
 
@@ -1733,38 +1761,27 @@ msgid "private repository"
 
msgstr "私有版本库"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:33
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:53
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:58
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:23
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:42
 
msgid "revoke"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:75
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:80
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:64
 
msgid "Add another member"
 
msgstr "添加成员"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:89
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:94
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:78
 
msgid "Failed to remove user"
 
msgstr "删除用户失败"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:104
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:109
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:93
 
msgid "Failed to remove users group"
 
msgstr "删除用户组失败"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:123
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:112
 
msgid "Group"
 
msgstr "组"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:124
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:113
 
#: rhodecode/templates/admin/users_groups/users_groups.html:33
 
msgid "members"
 
msgstr "成员"
 

	
 
#: rhodecode/templates/admin/repos/repos.html:5
 
msgid "Repositories administration"
 
msgstr "版本库管理员"
 
@@ -1782,7 +1799,7 @@ msgid "delete"
 
msgstr "删除"
 

	
 
#: rhodecode/templates/admin/repos/repos.html:68
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:158
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:74
 
#, fuzzy, python-format
 
msgid "Confirm to delete this repository: %s"
 
msgstr "确认删除版本库"
 
@@ -1833,7 +1850,7 @@ msgstr "编辑版本库组"
 
#: rhodecode/templates/admin/settings/settings.html:177
 
#: rhodecode/templates/admin/users/user_edit.html:130
 
#: rhodecode/templates/admin/users/user_edit.html:155
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:103
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:80
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:116
 
#: rhodecode/templates/files/files_add.html:82
 
#: rhodecode/templates/files/files_edit.html:68
 
@@ -2062,17 +2079,17 @@ msgid "Edit user"
 
msgstr "编辑用户"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:34
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:33
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:10
 
msgid "Change your avatar at"
 
msgstr "修改你的头像"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:35
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:34
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:11
 
msgid "Using"
 
msgstr "使用中"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:43
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:43
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:20
 
msgid "API key"
 
msgstr ""
 

	
 
@@ -2081,12 +2098,12 @@ msgid "LDAP DN"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:68
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:58
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:35
 
msgid "New password"
 
msgstr "新密码"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:77
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:67
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:44
 
msgid "New password confirmation"
 
msgstr ""
 

	
 
@@ -2104,24 +2121,24 @@ msgstr "我的账户"
 
msgid "My Account"
 
msgstr "我的账户"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:116
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:32
 
#: rhodecode/templates/journal/journal.html:32
 
#, fuzzy
 
msgid "My repos"
 
msgstr "空版本库"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:116
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:32
 
#, fuzzy
 
msgid "My permissions"
 
msgstr "权限"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:121
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:37
 
#: rhodecode/templates/journal/journal.html:37
 
#, fuzzy
 
msgid "ADD"
 
msgstr "新增"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:134
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:50
 
#: rhodecode/templates/bookmarks/bookmarks.html:40
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:9
 
#: rhodecode/templates/branches/branches.html:40
 
@@ -2131,23 +2148,23 @@ msgstr "新增"
 
msgid "Revision"
 
msgstr "修订"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:155
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:71
 
#: rhodecode/templates/journal/journal.html:72
 
msgid "private"
 
msgstr "私有"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:165
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:81
 
#: rhodecode/templates/journal/journal.html:85
 
msgid "No repositories yet"
 
msgstr "没有任何版本库"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:167
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:83
 
#: rhodecode/templates/journal/journal.html:87
 
msgid "create one now"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:184
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:285
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:100
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:201
 
#, fuzzy
 
msgid "Permission"
 
msgstr "权限"
 
@@ -2250,6 +2267,11 @@ msgstr "添加新用户组"
 
msgid "group name"
 
msgstr "组名"
 

	
 
#: rhodecode/templates/admin/users_groups/users_groups.html:33
 
#: rhodecode/templates/base/root.html:46
 
msgid "members"
 
msgstr "成员"
 

	
 
#: rhodecode/templates/admin/users_groups/users_groups.html:45
 
#, fuzzy, python-format
 
msgid "Confirm to delete this users group: %s"
 
@@ -2410,22 +2432,26 @@ msgstr ""
 
msgid "Search"
 
msgstr "搜索"
 

	
 
#: rhodecode/templates/base/root.html:53
 
#: rhodecode/templates/base/root.html:42
 
#, fuzzy
 
msgid "add another comment"
 
msgstr "添加成员"
 

	
 
#: rhodecode/templates/base/root.html:54
 
#: rhodecode/templates/base/root.html:43
 
#: rhodecode/templates/journal/journal.html:111
 
#: rhodecode/templates/summary/summary.html:52
 
msgid "Stop following this repository"
 
msgstr "停止跟随该版本库"
 

	
 
#: rhodecode/templates/base/root.html:55
 
#: rhodecode/templates/base/root.html:44
 
#: rhodecode/templates/summary/summary.html:56
 
msgid "Start following this repository"
 
msgstr "开始跟随该版本库"
 

	
 
#: rhodecode/templates/base/root.html:45
 
msgid "Group"
 
msgstr "组"
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:5
 
msgid "Bookmarks"
 
msgstr ""
 
@@ -2554,14 +2580,14 @@ msgid "download diff"
 
msgstr "下载 diff"
 

	
 
#: rhodecode/templates/changeset/changeset.html:42
 
#: rhodecode/templates/changeset/changeset_file_comment.html:69
 
#: rhodecode/templates/changeset/changeset_file_comment.html:71
 
#, fuzzy, python-format
 
msgid "%d comment"
 
msgid_plural "%d comments"
 
msgstr[0] "提交"
 

	
 
#: rhodecode/templates/changeset/changeset.html:42
 
#: rhodecode/templates/changeset/changeset_file_comment.html:69
 
#: rhodecode/templates/changeset/changeset_file_comment.html:71
 
#, python-format
 
msgid "(%d inline)"
 
msgid_plural "(%d inline)"
 
@@ -2585,37 +2611,37 @@ msgid "Commenting on line {1}."
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:39
 
#: rhodecode/templates/changeset/changeset_file_comment.html:100
 
#: rhodecode/templates/changeset/changeset_file_comment.html:102
 
#, python-format
 
msgid "Comments parsed using %s syntax with %s support."
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:41
 
#: rhodecode/templates/changeset/changeset_file_comment.html:102
 
#: rhodecode/templates/changeset/changeset_file_comment.html:104
 
msgid "Use @username inside this text to send notification to this RhodeCode user"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:47
 
#: rhodecode/templates/changeset/changeset_file_comment.html:107
 
#: rhodecode/templates/changeset/changeset_file_comment.html:49
 
#: rhodecode/templates/changeset/changeset_file_comment.html:110
 
#, fuzzy
 
msgid "Comment"
 
msgstr "提交"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:48
 
#: rhodecode/templates/changeset/changeset_file_comment.html:59
 
#: rhodecode/templates/changeset/changeset_file_comment.html:50
 
#: rhodecode/templates/changeset/changeset_file_comment.html:61
 
msgid "Hide"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:55
 
#: rhodecode/templates/changeset/changeset_file_comment.html:57
 
#, fuzzy
 
msgid "You need to be logged in to comment."
 
msgstr "必须登录才能访问该页面"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:55
 
#: rhodecode/templates/changeset/changeset_file_comment.html:57
 
msgid "Login now"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:97
 
#: rhodecode/templates/changeset/changeset_file_comment.html:99
 
msgid "Leave a comment"
 
msgstr ""
 

	
 
@@ -3119,3 +3145,9 @@ msgstr "文件已更改"
 
msgid "file removed"
 
msgstr "文件已删除"
 

	
 
#~ msgid "[committed via RhodeCode] into"
 
#~ msgstr ""
 

	
 
#~ msgid "[pulled from remote] into"
 
#~ msgstr ""
 

	
rhodecode/i18n/zh_TW/LC_MESSAGES/rhodecode.po
Show inline comments
 
@@ -7,7 +7,7 @@ msgid ""
 
msgstr ""
 
"Project-Id-Version: RhodeCode 1.2.0\n"
 
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
 
"POT-Creation-Date: 2012-05-27 17:41+0200\n"
 
"POT-Creation-Date: 2012-06-03 01:06+0200\n"
 
"PO-Revision-Date: 2012-05-09 22:23+0800\n"
 
"Last-Translator: Nansen <nansenat16@gmail.com>\n"
 
"Language-Team: zh_TW <LL@li.org>\n"
 
@@ -17,26 +17,26 @@ msgstr ""
 
"Content-Transfer-Encoding: 8bit\n"
 
"Generated-By: Babel 0.9.6\n"
 

	
 
#: rhodecode/controllers/changelog.py:96
 
#: rhodecode/controllers/changelog.py:95
 
#, fuzzy
 
msgid "All Branches"
 
msgstr "分支"
 

	
 
#: rhodecode/controllers/changeset.py:79
 
#: rhodecode/controllers/changeset.py:80
 
msgid "show white space"
 
msgstr ""
 

	
 
#: rhodecode/controllers/changeset.py:86 rhodecode/controllers/changeset.py:93
 
#: rhodecode/controllers/changeset.py:87 rhodecode/controllers/changeset.py:94
 
msgid "ignore white space"
 
msgstr ""
 

	
 
#: rhodecode/controllers/changeset.py:153
 
#: rhodecode/controllers/changeset.py:154
 
#, fuzzy, python-format
 
msgid "%s line context"
 
msgstr "文件內容"
 

	
 
#: rhodecode/controllers/changeset.py:320
 
#: rhodecode/controllers/changeset.py:335 rhodecode/lib/diffs.py:62
 
#: rhodecode/controllers/changeset.py:324
 
#: rhodecode/controllers/changeset.py:339 rhodecode/lib/diffs.py:62
 
msgid "binary file"
 
msgstr "二進位檔"
 

	
 
@@ -184,7 +184,7 @@ msgstr ""
 
msgid "%s public journal %s feed"
 
msgstr "%s 公開日誌 %s feed"
 

	
 
#: rhodecode/controllers/journal.py:190 rhodecode/controllers/journal.py:224
 
#: rhodecode/controllers/journal.py:190 rhodecode/controllers/journal.py:223
 
#: rhodecode/templates/admin/repos/repo_edit.html:177
 
#: rhodecode/templates/base/base.html:307
 
#: rhodecode/templates/base/base.html:309
 
@@ -219,19 +219,19 @@ msgid "An error occurred during this sea
 
msgstr ""
 

	
 
#: rhodecode/controllers/settings.py:103
 
#: rhodecode/controllers/admin/repos.py:211
 
#: rhodecode/controllers/admin/repos.py:213
 
#, python-format
 
msgid "Repository %s updated successfully"
 
msgstr "版本庫 %s 更新完成"
 

	
 
#: rhodecode/controllers/settings.py:121
 
#: rhodecode/controllers/admin/repos.py:229
 
#: rhodecode/controllers/admin/repos.py:231
 
#, python-format
 
msgid "error occurred during update of repository %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/settings.py:139
 
#: rhodecode/controllers/admin/repos.py:247
 
#: rhodecode/controllers/admin/repos.py:249
 
#, python-format
 
msgid ""
 
"%s repository is not mapped to db perhaps it was moved or renamed  from "
 
@@ -240,14 +240,14 @@ msgid ""
 
msgstr ""
 

	
 
#: rhodecode/controllers/settings.py:151
 
#: rhodecode/controllers/admin/repos.py:259
 
#: rhodecode/controllers/admin/repos.py:261
 
#, python-format
 
msgid "deleted repository %s"
 
msgstr "刪除版本庫 %s"
 

	
 
#: rhodecode/controllers/settings.py:155
 
#: rhodecode/controllers/admin/repos.py:269
 
#: rhodecode/controllers/admin/repos.py:275
 
#: rhodecode/controllers/admin/repos.py:271
 
#: rhodecode/controllers/admin/repos.py:277
 
#, python-format
 
msgid "An error occurred during deletion of %s"
 
msgstr ""
 
@@ -396,62 +396,62 @@ msgstr "建立版本庫 %s 到 %s"
 
msgid "created repository %s"
 
msgstr "建立版本庫 %s"
 

	
 
#: rhodecode/controllers/admin/repos.py:177
 
#: rhodecode/controllers/admin/repos.py:179
 
#, python-format
 
msgid "error occurred during creation of repository %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:264
 
#: rhodecode/controllers/admin/repos.py:266
 
#, python-format
 
msgid "Cannot delete %s it still contains attached forks"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:293
 
#: rhodecode/controllers/admin/repos.py:295
 
msgid "An error occurred during deletion of repository user"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:312
 
#: rhodecode/controllers/admin/repos.py:314
 
msgid "An error occurred during deletion of repository users groups"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:329
 
#: rhodecode/controllers/admin/repos.py:331
 
msgid "An error occurred during deletion of repository stats"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:345
 
#: rhodecode/controllers/admin/repos.py:347
 
msgid "An error occurred during cache invalidation"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:365
 
#: rhodecode/controllers/admin/repos.py:367
 
msgid "Updated repository visibility in public journal"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:369
 
#: rhodecode/controllers/admin/repos.py:371
 
msgid "An error occurred during setting this repository in public journal"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:374 rhodecode/model/forms.py:54
 
#: rhodecode/controllers/admin/repos.py:376 rhodecode/model/forms.py:54
 
msgid "Token mismatch"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:387
 
msgid "Pulled from remote location"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:389
 
msgid "An error occurred during pull from remote location"
 
msgid "Pulled from remote location"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:405
 
msgid "Nothing"
 
#: rhodecode/controllers/admin/repos.py:391
 
msgid "An error occurred during pull from remote location"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:407
 
msgid "Nothing"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:409
 
#, fuzzy, python-format
 
msgid "Marked repo %s as fork of %s"
 
msgstr "建立版本庫 %s 到 %s"
 

	
 
#: rhodecode/controllers/admin/repos.py:411
 
#: rhodecode/controllers/admin/repos.py:413
 
msgid "An error occurred during this operation"
 
msgstr ""
 

	
 
@@ -545,77 +545,77 @@ msgstr ""
 
msgid "You can't edit this user since it's crucial for entire application"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/settings.py:365
 
#: rhodecode/controllers/admin/settings.py:367
 
msgid "Your account was updated successfully"
 
msgstr "您的帳號已更新完成"
 

	
 
#: rhodecode/controllers/admin/settings.py:384
 
#: rhodecode/controllers/admin/users.py:132
 
#: rhodecode/controllers/admin/settings.py:387
 
#: rhodecode/controllers/admin/users.py:138
 
#, python-format
 
msgid "error occurred during update of user %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:79
 
#: rhodecode/controllers/admin/users.py:83
 
#, python-format
 
msgid "created user %s"
 
msgstr "建立使用者 %s"
 

	
 
#: rhodecode/controllers/admin/users.py:92
 
#: rhodecode/controllers/admin/users.py:95
 
#, python-format
 
msgid "error occurred during creation of user %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:118
 
#: rhodecode/controllers/admin/users.py:124
 
msgid "User updated successfully"
 
msgstr "使用者更新完成"
 

	
 
#: rhodecode/controllers/admin/users.py:149
 
#: rhodecode/controllers/admin/users.py:155
 
msgid "successfully deleted user"
 
msgstr "成功刪除使用者"
 

	
 
#: rhodecode/controllers/admin/users.py:154
 
#: rhodecode/controllers/admin/users.py:160
 
msgid "An error occurred during deletion of user"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:169
 
#: rhodecode/controllers/admin/users.py:175
 
msgid "You can't edit this user"
 
msgstr "您無法編輯這位使用者"
 

	
 
#: rhodecode/controllers/admin/users.py:199
 
#: rhodecode/controllers/admin/users_groups.py:215
 
#: rhodecode/controllers/admin/users.py:205
 
#: rhodecode/controllers/admin/users_groups.py:219
 
msgid "Granted 'repository create' permission to user"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:208
 
#: rhodecode/controllers/admin/users_groups.py:225
 
#: rhodecode/controllers/admin/users.py:214
 
#: rhodecode/controllers/admin/users_groups.py:229
 
msgid "Revoked 'repository create' permission to user"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users_groups.py:79
 
#: rhodecode/controllers/admin/users_groups.py:84
 
#, python-format
 
msgid "created users group %s"
 
msgstr "建立使用者群組 %s"
 

	
 
#: rhodecode/controllers/admin/users_groups.py:92
 
#: rhodecode/controllers/admin/users_groups.py:95
 
#, python-format
 
msgid "error occurred during creation of users group %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users_groups.py:128
 
#: rhodecode/controllers/admin/users_groups.py:135
 
#, python-format
 
msgid "updated users group %s"
 
msgstr "更新使用者群組 %s"
 

	
 
#: rhodecode/controllers/admin/users_groups.py:148
 
#: rhodecode/controllers/admin/users_groups.py:152
 
#, python-format
 
msgid "error occurred during update of users group %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users_groups.py:165
 
#: rhodecode/controllers/admin/users_groups.py:169
 
msgid "successfully deleted users group"
 
msgstr "成功移除使用者群組"
 

	
 
#: rhodecode/controllers/admin/users_groups.py:170
 
#: rhodecode/controllers/admin/users_groups.py:174
 
msgid "An error occurred during deletion of users group"
 
msgstr ""
 

	
 
@@ -674,61 +674,89 @@ msgstr "修訂"
 
msgid "fork name "
 
msgstr "fork 名稱"
 

	
 
#: rhodecode/lib/helpers.py:540
 
#: rhodecode/lib/helpers.py:550
 
msgid "[deleted] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:541 rhodecode/lib/helpers.py:546
 
#: rhodecode/lib/helpers.py:552 rhodecode/lib/helpers.py:562
 
msgid "[created] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:542
 
#: rhodecode/lib/helpers.py:554
 
#, fuzzy
 
msgid "[created] repository as fork"
 
msgstr "建立版本庫 %s"
 

	
 
#: rhodecode/lib/helpers.py:543 rhodecode/lib/helpers.py:547
 
#: rhodecode/lib/helpers.py:556 rhodecode/lib/helpers.py:564
 
msgid "[forked] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:544 rhodecode/lib/helpers.py:548
 
#: rhodecode/lib/helpers.py:558 rhodecode/lib/helpers.py:566
 
msgid "[updated] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:545
 
#: rhodecode/lib/helpers.py:560
 
msgid "[delete] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:549
 
#: rhodecode/lib/helpers.py:568
 
#, fuzzy, python-format
 
#| msgid "created user %s"
 
msgid "[created] user"
 
msgstr "建立使用者 %s"
 

	
 
#: rhodecode/lib/helpers.py:570
 
#, fuzzy, python-format
 
#| msgid "updated users group %s"
 
msgid "[updated] user"
 
msgstr "更新使用者群組 %s"
 

	
 
#: rhodecode/lib/helpers.py:572
 
#, fuzzy, python-format
 
#| msgid "created users group %s"
 
msgid "[created] users group"
 
msgstr "建立使用者群組 %s"
 

	
 
#: rhodecode/lib/helpers.py:574
 
#, fuzzy, python-format
 
#| msgid "updated users group %s"
 
msgid "[updated] users group"
 
msgstr "更新使用者群組 %s"
 

	
 
#: rhodecode/lib/helpers.py:576
 
msgid "[commented] on revision in repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:578
 
msgid "[pushed] into"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:550
 
msgid "[committed via RhodeCode] into"
 
#: rhodecode/lib/helpers.py:580
 
msgid "[committed via RhodeCode] into repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:551
 
msgid "[pulled from remote] into"
 
#: rhodecode/lib/helpers.py:582
 
msgid "[pulled from remote] into repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:552
 
#: rhodecode/lib/helpers.py:584
 
msgid "[pulled] from"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:553
 
#: rhodecode/lib/helpers.py:586
 
msgid "[started following] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:554
 
#: rhodecode/lib/helpers.py:588
 
msgid "[stopped following] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:732
 
#: rhodecode/lib/helpers.py:752
 
#, python-format
 
msgid " and %s more"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:736
 
#: rhodecode/lib/helpers.py:756
 
msgid "No Files"
 
msgstr "沒有檔案"
 

	
 
@@ -976,7 +1004,7 @@ msgid "Dashboard"
 
msgstr "儀表板"
 

	
 
#: rhodecode/templates/index_base.html:6
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:115
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:31
 
#: rhodecode/templates/bookmarks/bookmarks.html:10
 
#: rhodecode/templates/branches/branches.html:9
 
#: rhodecode/templates/journal/journal.html:31
 
@@ -1031,10 +1059,10 @@ msgstr "版本庫群組"
 
#: rhodecode/templates/admin/repos/repo_edit.html:32
 
#: rhodecode/templates/admin/repos/repos.html:36
 
#: rhodecode/templates/admin/repos/repos.html:82
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:133
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:183
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:249
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:284
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:49
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:99
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:165
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:200
 
#: rhodecode/templates/bookmarks/bookmarks.html:36
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:6
 
#: rhodecode/templates/branches/branches.html:36
 
@@ -1059,7 +1087,7 @@ msgstr "最後修改"
 
#: rhodecode/templates/index_base.html:161
 
#: rhodecode/templates/admin/repos/repos.html:39
 
#: rhodecode/templates/admin/repos/repos.html:87
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:251
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:167
 
#: rhodecode/templates/journal/journal.html:179
 
msgid "Tip"
 
msgstr ""
 
@@ -1103,7 +1131,7 @@ msgstr "群組名稱"
 
#: rhodecode/templates/index_base.html:148
 
#: rhodecode/templates/index_base.html:188
 
#: rhodecode/templates/admin/repos/repos.html:112
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:270
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:186
 
#: rhodecode/templates/bookmarks/bookmarks.html:60
 
#: rhodecode/templates/branches/branches.html:60
 
#: rhodecode/templates/journal/journal.html:202
 
@@ -1114,7 +1142,7 @@ msgstr ""
 
#: rhodecode/templates/index_base.html:149
 
#: rhodecode/templates/index_base.html:189
 
#: rhodecode/templates/admin/repos/repos.html:113
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:271
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:187
 
#: rhodecode/templates/bookmarks/bookmarks.html:61
 
#: rhodecode/templates/branches/branches.html:61
 
#: rhodecode/templates/journal/journal.html:203
 
@@ -1130,7 +1158,7 @@ msgstr "最後修改"
 

	
 
#: rhodecode/templates/index_base.html:190
 
#: rhodecode/templates/admin/repos/repos.html:114
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:272
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:188
 
#: rhodecode/templates/bookmarks/bookmarks.html:62
 
#: rhodecode/templates/branches/branches.html:62
 
#: rhodecode/templates/journal/journal.html:204
 
@@ -1140,7 +1168,7 @@ msgstr ""
 

	
 
#: rhodecode/templates/index_base.html:191
 
#: rhodecode/templates/admin/repos/repos.html:115
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:273
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:189
 
#: rhodecode/templates/bookmarks/bookmarks.html:63
 
#: rhodecode/templates/branches/branches.html:63
 
#: rhodecode/templates/journal/journal.html:205
 
@@ -1150,7 +1178,7 @@ msgstr ""
 

	
 
#: rhodecode/templates/index_base.html:192
 
#: rhodecode/templates/admin/repos/repos.html:116
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:274
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:190
 
#: rhodecode/templates/bookmarks/bookmarks.html:64
 
#: rhodecode/templates/branches/branches.html:64
 
#: rhodecode/templates/journal/journal.html:206
 
@@ -1171,7 +1199,7 @@ msgstr "登入"
 
#: rhodecode/templates/admin/admin_log.html:5
 
#: rhodecode/templates/admin/users/user_add.html:32
 
#: rhodecode/templates/admin/users/user_edit.html:50
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:49
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:26
 
#: rhodecode/templates/base/base.html:83
 
#: rhodecode/templates/summary/summary.html:113
 
msgid "Username"
 
@@ -1232,21 +1260,21 @@ msgstr "確認密碼"
 
#: rhodecode/templates/register.html:47
 
#: rhodecode/templates/admin/users/user_add.html:59
 
#: rhodecode/templates/admin/users/user_edit.html:86
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:76
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:53
 
msgid "First Name"
 
msgstr "名"
 

	
 
#: rhodecode/templates/register.html:56
 
#: rhodecode/templates/admin/users/user_add.html:68
 
#: rhodecode/templates/admin/users/user_edit.html:95
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:85
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:62
 
msgid "Last Name"
 
msgstr "姓"
 

	
 
#: rhodecode/templates/register.html:65
 
#: rhodecode/templates/admin/users/user_add.html:77
 
#: rhodecode/templates/admin/users/user_edit.html:104
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:94
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:71
 
#: rhodecode/templates/summary/summary.html:115
 
msgid "Email"
 
msgstr "電子郵件"
 
@@ -1310,8 +1338,8 @@ msgstr "管理員日誌"
 
#: rhodecode/templates/admin/admin_log.html:6
 
#: rhodecode/templates/admin/repos/repos.html:41
 
#: rhodecode/templates/admin/repos/repos.html:90
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:135
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:136
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:51
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:52
 
#: rhodecode/templates/journal/journal.html:52
 
#: rhodecode/templates/journal/journal.html:53
 
msgid "Action"
 
@@ -1334,7 +1362,7 @@ msgstr "時間"
 
msgid "From IP"
 
msgstr "來源IP"
 

	
 
#: rhodecode/templates/admin/admin_log.html:52
 
#: rhodecode/templates/admin/admin_log.html:53
 
msgid "No actions yet"
 
msgstr ""
 

	
 
@@ -1415,7 +1443,7 @@ msgstr "電子郵件屬性"
 
#: rhodecode/templates/admin/settings/hooks.html:73
 
#: rhodecode/templates/admin/users/user_edit.html:129
 
#: rhodecode/templates/admin/users/user_edit.html:154
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:102
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:79
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:115
 
#: rhodecode/templates/settings/repo_settings.html:84
 
msgid "Save"
 
@@ -1570,7 +1598,7 @@ msgstr "編輯版本庫"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:13
 
#: rhodecode/templates/admin/users/user_edit.html:13
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:155
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:71
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:13
 
#: rhodecode/templates/files/files_source.html:32
 
#: rhodecode/templates/journal/journal.html:72
 
@@ -1729,38 +1757,27 @@ msgid "private repository"
 
msgstr "私有版本庫"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:33
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:53
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:58
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:23
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:42
 
msgid "revoke"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:75
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:80
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:64
 
msgid "Add another member"
 
msgstr "新增另ㄧ位成員"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:89
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:94
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:78
 
msgid "Failed to remove user"
 
msgstr "移除使用者失敗"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:104
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:109
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:93
 
msgid "Failed to remove users group"
 
msgstr "移除使用者群組失敗"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:123
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:112
 
msgid "Group"
 
msgstr "群組"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:124
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:113
 
#: rhodecode/templates/admin/users_groups/users_groups.html:33
 
msgid "members"
 
msgstr "成員"
 

	
 
#: rhodecode/templates/admin/repos/repos.html:5
 
msgid "Repositories administration"
 
msgstr "版本庫管理員"
 
@@ -1778,7 +1795,7 @@ msgid "delete"
 
msgstr "刪除"
 

	
 
#: rhodecode/templates/admin/repos/repos.html:68
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:158
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:74
 
#, fuzzy, python-format
 
msgid "Confirm to delete this repository: %s"
 
msgstr "確認移除這個版本庫"
 
@@ -1829,7 +1846,7 @@ msgstr "編輯版本庫群組"
 
#: rhodecode/templates/admin/settings/settings.html:177
 
#: rhodecode/templates/admin/users/user_edit.html:130
 
#: rhodecode/templates/admin/users/user_edit.html:155
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:103
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:80
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:116
 
#: rhodecode/templates/files/files_add.html:82
 
#: rhodecode/templates/files/files_edit.html:68
 
@@ -2058,17 +2075,17 @@ msgid "Edit user"
 
msgstr "編輯使用者"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:34
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:33
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:10
 
msgid "Change your avatar at"
 
msgstr "修改您的頭像於"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:35
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:34
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:11
 
msgid "Using"
 
msgstr "使用中"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:43
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:43
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:20
 
msgid "API key"
 
msgstr ""
 

	
 
@@ -2077,12 +2094,12 @@ msgid "LDAP DN"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:68
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:58
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:35
 
msgid "New password"
 
msgstr "新密碼"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:77
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:67
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:44
 
msgid "New password confirmation"
 
msgstr ""
 

	
 
@@ -2100,24 +2117,24 @@ msgstr "我的帳號"
 
msgid "My Account"
 
msgstr "我的帳號"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:116
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:32
 
#: rhodecode/templates/journal/journal.html:32
 
#, fuzzy
 
msgid "My repos"
 
msgstr "空的版本庫"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:116
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:32
 
#, fuzzy
 
msgid "My permissions"
 
msgstr "權限"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:121
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:37
 
#: rhodecode/templates/journal/journal.html:37
 
#, fuzzy
 
msgid "ADD"
 
msgstr "新增"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:134
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:50
 
#: rhodecode/templates/bookmarks/bookmarks.html:40
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:9
 
#: rhodecode/templates/branches/branches.html:40
 
@@ -2127,23 +2144,23 @@ msgstr "新增"
 
msgid "Revision"
 
msgstr "修訂"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:155
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:71
 
#: rhodecode/templates/journal/journal.html:72
 
msgid "private"
 
msgstr "私有"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:165
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:81
 
#: rhodecode/templates/journal/journal.html:85
 
msgid "No repositories yet"
 
msgstr "沒有任何版本庫"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:167
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:83
 
#: rhodecode/templates/journal/journal.html:87
 
msgid "create one now"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:184
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:285
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:100
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:201
 
#, fuzzy
 
msgid "Permission"
 
msgstr "權限"
 
@@ -2246,6 +2263,11 @@ msgstr "建立新的使用者群組"
 
msgid "group name"
 
msgstr "群組名稱"
 

	
 
#: rhodecode/templates/admin/users_groups/users_groups.html:33
 
#: rhodecode/templates/base/root.html:46
 
msgid "members"
 
msgstr "成員"
 

	
 
#: rhodecode/templates/admin/users_groups/users_groups.html:45
 
#, fuzzy, python-format
 
msgid "Confirm to delete this users group: %s"
 
@@ -2406,22 +2428,26 @@ msgstr ""
 
msgid "Search"
 
msgstr "搜尋"
 

	
 
#: rhodecode/templates/base/root.html:53
 
#: rhodecode/templates/base/root.html:42
 
#, fuzzy
 
msgid "add another comment"
 
msgstr "新增另ㄧ位成員"
 

	
 
#: rhodecode/templates/base/root.html:54
 
#: rhodecode/templates/base/root.html:43
 
#: rhodecode/templates/journal/journal.html:111
 
#: rhodecode/templates/summary/summary.html:52
 
msgid "Stop following this repository"
 
msgstr "停止追蹤這個版本庫"
 

	
 
#: rhodecode/templates/base/root.html:55
 
#: rhodecode/templates/base/root.html:44
 
#: rhodecode/templates/summary/summary.html:56
 
msgid "Start following this repository"
 
msgstr "開始追蹤這個版本庫"
 

	
 
#: rhodecode/templates/base/root.html:45
 
msgid "Group"
 
msgstr "群組"
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:5
 
msgid "Bookmarks"
 
msgstr ""
 
@@ -2550,14 +2576,14 @@ msgid "download diff"
 
msgstr "下載差異"
 

	
 
#: rhodecode/templates/changeset/changeset.html:42
 
#: rhodecode/templates/changeset/changeset_file_comment.html:69
 
#: rhodecode/templates/changeset/changeset_file_comment.html:71
 
#, fuzzy, python-format
 
msgid "%d comment"
 
msgid_plural "%d comments"
 
msgstr[0] "遞交"
 

	
 
#: rhodecode/templates/changeset/changeset.html:42
 
#: rhodecode/templates/changeset/changeset_file_comment.html:69
 
#: rhodecode/templates/changeset/changeset_file_comment.html:71
 
#, python-format
 
msgid "(%d inline)"
 
msgid_plural "(%d inline)"
 
@@ -2581,37 +2607,37 @@ msgid "Commenting on line {1}."
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:39
 
#: rhodecode/templates/changeset/changeset_file_comment.html:100
 
#: rhodecode/templates/changeset/changeset_file_comment.html:102
 
#, python-format
 
msgid "Comments parsed using %s syntax with %s support."
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:41
 
#: rhodecode/templates/changeset/changeset_file_comment.html:102
 
#: rhodecode/templates/changeset/changeset_file_comment.html:104
 
msgid "Use @username inside this text to send notification to this RhodeCode user"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:47
 
#: rhodecode/templates/changeset/changeset_file_comment.html:107
 
#: rhodecode/templates/changeset/changeset_file_comment.html:49
 
#: rhodecode/templates/changeset/changeset_file_comment.html:110
 
#, fuzzy
 
msgid "Comment"
 
msgstr "遞交"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:48
 
#: rhodecode/templates/changeset/changeset_file_comment.html:59
 
#: rhodecode/templates/changeset/changeset_file_comment.html:50
 
#: rhodecode/templates/changeset/changeset_file_comment.html:61
 
msgid "Hide"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:55
 
#: rhodecode/templates/changeset/changeset_file_comment.html:57
 
#, fuzzy
 
msgid "You need to be logged in to comment."
 
msgstr "您必須登入後才能瀏覽這個頁面"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:55
 
#: rhodecode/templates/changeset/changeset_file_comment.html:57
 
msgid "Login now"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:97
 
#: rhodecode/templates/changeset/changeset_file_comment.html:99
 
msgid "Leave a comment"
 
msgstr ""
 

	
 
@@ -3116,9 +3142,9 @@ msgstr "檔案修改"
 
msgid "file removed"
 
msgstr "移除檔案"
 

	
 
#~ msgid ""
 
#~ "Changeset was to big and was cut"
 
#~ " off, use diff menu to display "
 
#~ "this diff"
 
#~ msgid "[committed via RhodeCode] into"
 
#~ msgstr ""
 

	
 
#~ msgid "[pulled from remote] into"
 
#~ msgstr ""
 

	
rhodecode/lib/base.py
Show inline comments
 
@@ -30,6 +30,16 @@ from rhodecode.model.scm import ScmModel
 
log = logging.getLogger(__name__)
 

	
 

	
 
def _get_ip_addr(environ):
 
    proxy_key = 'HTTP_X_REAL_IP'
 
    proxy_key2 = 'HTTP_X_FORWARDED_FOR'
 
    def_key = 'REMOTE_ADDR'
 

	
 
    return environ.get(proxy_key2,
 
                       environ.get(proxy_key, environ.get(def_key, '0.0.0.0'))
 
                       )
 

	
 

	
 
class BasicAuth(AuthBasicAuthenticator):
 

	
 
    def __init__(self, realm, authfunc, auth_http_code=None):
 
@@ -117,15 +127,7 @@ class BaseVCSController(object):
 
        return True
 

	
 
    def _get_ip_addr(self, environ):
 
        proxy_key = 'HTTP_X_REAL_IP'
 
        proxy_key2 = 'HTTP_X_FORWARDED_FOR'
 
        def_key = 'REMOTE_ADDR'
 

	
 
        return environ.get(proxy_key2,
 
                           environ.get(proxy_key,
 
                                       environ.get(def_key, '0.0.0.0')
 
                            )
 
                        )
 
        return _get_ip_addr(environ)
 

	
 
    def __call__(self, environ, start_response):
 
        start = time.time()
 
@@ -153,6 +155,7 @@ class BaseController(WSGIController):
 

	
 
        self.sa = meta.Session
 
        self.scm_model = ScmModel(self.sa)
 
        self.ip_addr = ''
 

	
 
    def __call__(self, environ, start_response):
 
        """Invoke the Controller"""
 
@@ -161,6 +164,7 @@ class BaseController(WSGIController):
 
        # available in environ['pylons.routes_dict']
 
        start = time.time()
 
        try:
 
            self.ip_addr = _get_ip_addr(environ)
 
            # make sure that we update permissions each time we call controller
 
            api_key = request.GET.get('api_key')
 
            cookie_store = CookieStoreWrapper(session.get('rhodecode_user'))
rhodecode/lib/diffs.py
Show inline comments
 
@@ -135,7 +135,7 @@ class DiffProcessor(object):
 
    """
 
    _chunk_re = re.compile(r'@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@(.*)')
 

	
 
    def __init__(self, diff, differ='diff', format='udiff'):
 
    def __init__(self, diff, differ='diff', format='gitdiff'):
 
        """
 
        :param diff:   a text in diff format or generator
 
        :param format: format of diff passed, `udiff` or `gitdiff`
 
@@ -289,7 +289,7 @@ class DiffProcessor(object):
 
            do(line)
 
            do(next_)
 

	
 
    def _parse_udiff(self):
 
    def _parse_udiff(self, inline_diff=True):
 
        """
 
        Parse the diff an return data for the template.
 
        """
 
@@ -386,9 +386,14 @@ class DiffProcessor(object):
 
                            })
 

	
 
                        line = lineiter.next()
 

	
 
        except StopIteration:
 
            pass
 

	
 
        sorter = lambda info: {'A': 0, 'M': 1, 'D': 2}.get(info['operation'])
 
        if inline_diff is False:
 
            return sorted(files, key=sorter)
 

	
 
        # highlight inline changes
 
        for diff_data in files:
 
            for chunk in diff_data['chunks']:
 
@@ -404,14 +409,15 @@ class DiffProcessor(object):
 
                            self.differ(line, nextline)
 
                except StopIteration:
 
                    pass
 
        return files
 

	
 
    def prepare(self):
 
        return sorted(files, key=sorter)
 

	
 
    def prepare(self, inline_diff=True):
 
        """
 
        Prepare the passed udiff for HTML rendering. It'l return a list
 
        of dicts
 
        """
 
        return self._parse_udiff()
 
        return self._parse_udiff(inline_diff=inline_diff)
 

	
 
    def _safe_id(self, idstring):
 
        """Make a string safe for including in an id attribute.
rhodecode/lib/graphmod.py
Show inline comments
 
new file 100644
 
"""
 
Modified mercurial DAG graph functions that re-uses VCS structure
 

	
 
It allows to have a shared codebase for DAG generation for hg and git repos
 
"""
 

	
 
nullrev = -1
 

	
 

	
 
def grandparent(parentrev_func, lowestrev, roots, head):
 
    """
 
    Return all ancestors of head in roots which revision is
 
    greater or equal to lowestrev.
 
    """
 
    pending = set([head])
 
    seen = set()
 
    kept = set()
 
    llowestrev = max(nullrev, lowestrev)
 
    while pending:
 
        r = pending.pop()
 
        if r >= llowestrev and r not in seen:
 
            if r in roots:
 
                kept.add(r)
 
            else:
 
                pending.update([p for p in parentrev_func(r)])
 
            seen.add(r)
 
    return sorted(kept)
 

	
 

	
 
def _dagwalker(repo, revs, alias):
 
    if not revs:
 
        return
 

	
 
    if alias == 'hg':
 
        cl = repo._repo.changelog.parentrevs
 
        repo = repo
 
    elif alias == 'git':
 
        def cl(rev):
 
            return [x.revision for x in repo[rev].parents()]
 
        repo = repo
 

	
 
    lowestrev = min(revs)
 
    gpcache = {}
 

	
 
    knownrevs = set(revs)
 
    for rev in revs:
 
        ctx = repo[rev]
 
        parents = sorted(set([p.revision for p in ctx.parents
 
                              if p.revision in knownrevs]))
 
        mpars = [p.revision for p in ctx.parents if
 
                 p.revision != nullrev and p.revision not in parents]
 

	
 
        for mpar in mpars:
 
            gp = gpcache.get(mpar)
 
            if gp is None:
 
                gp = gpcache[mpar] = grandparent(cl, lowestrev, revs, mpar)
 
            if not gp:
 
                parents.append(mpar)
 
            else:
 
                parents.extend(g for g in gp if g not in parents)
 

	
 
        yield (ctx.revision, 'C', ctx, parents)
 

	
 

	
 
def _colored(dag):
 
    """annotates a DAG with colored edge information
 

	
 
    For each DAG node this function emits tuples::
 

	
 
      (id, type, data, (col, color), [(col, nextcol, color)])
 

	
 
    with the following new elements:
 

	
 
      - Tuple (col, color) with column and color index for the current node
 
      - A list of tuples indicating the edges between the current node and its
 
        parents.
 
    """
 
    seen = []
 
    colors = {}
 
    newcolor = 1
 

	
 
    getconf = lambda rev: {}
 

	
 
    for (cur, type, data, parents) in dag:
 

	
 
        # Compute seen and next
 
        if cur not in seen:
 
            seen.append(cur)  # new head
 
            colors[cur] = newcolor
 
            newcolor += 1
 

	
 
        col = seen.index(cur)
 
        color = colors.pop(cur)
 
        next = seen[:]
 

	
 
        # Add parents to next
 
        addparents = [p for p in parents if p not in next]
 
        next[col:col + 1] = addparents
 

	
 
        # Set colors for the parents
 
        for i, p in enumerate(addparents):
 
            if not i:
 
                colors[p] = color
 
            else:
 
                colors[p] = newcolor
 
                newcolor += 1
 

	
 
        # Add edges to the graph
 
        edges = []
 
        for ecol, eid in enumerate(seen):
 
            if eid in next:
 
                bconf = getconf(eid)
 
                edges.append((
 
                    ecol, next.index(eid), colors[eid],
 
                    bconf.get('width', -1),
 
                    bconf.get('color', '')))
 
            elif eid == cur:
 
                for p in parents:
 
                    bconf = getconf(p)
 
                    edges.append((
 
                        ecol, next.index(p), color,
 
                        bconf.get('width', -1),
 
                        bconf.get('color', '')))
 

	
 
        # Yield and move on
 
        yield (cur, type, data, (col, color), edges)
 
        seen = next
rhodecode/lib/helpers.py
Show inline comments
 
@@ -455,7 +455,7 @@ def action_parser(user_log, feed=False):
 

	
 
            if isinstance(rev, BaseChangeset):
 
                lbl = 'r%s:%s' % (rev.revision, rev.short_id)
 
                _url = url('changeset_home', repo_name=repo_name, 
 
                _url = url('changeset_home', repo_name=repo_name,
 
                           revision=rev.raw_id)
 
                title = tooltip(rev.message)
 
            else:
 
@@ -538,22 +538,57 @@ def action_parser(user_log, feed=False):
 
        return _('fork name ') + str(link_to(action_params, url('summary_home',
 
                                          repo_name=repo_name,)))
 

	
 
    action_map = {'user_deleted_repo': (_('[deleted] repository'), None),
 
           'user_created_repo': (_('[created] repository'), None),
 
           'user_created_fork': (_('[created] repository as fork'), None),
 
           'user_forked_repo': (_('[forked] repository'), get_fork_name),
 
           'user_updated_repo': (_('[updated] repository'), None),
 
           'admin_deleted_repo': (_('[delete] repository'), None),
 
           'admin_created_repo': (_('[created] repository'), None),
 
           'admin_forked_repo': (_('[forked] repository'), None),
 
           'admin_updated_repo': (_('[updated] repository'), None),
 
           'push': (_('[pushed] into'), get_cs_links),
 
           'push_local': (_('[committed via RhodeCode] into'), get_cs_links),
 
           'push_remote': (_('[pulled from remote] into'), get_cs_links),
 
           'pull': (_('[pulled] from'), None),
 
           'started_following_repo': (_('[started following] repository'), None),
 
           'stopped_following_repo': (_('[stopped following] repository'), None),
 
            }
 
    def get_user_name():
 
        user_name = action_params
 
        return user_name
 

	
 
    def get_users_group():
 
        group_name = action_params
 
        return group_name
 

	
 
    # action : translated str, callback(extractor), icon
 
    action_map = {
 
    'user_deleted_repo':         (_('[deleted] repository'),
 
                                  None, 'database_delete.png'),
 
    'user_created_repo':         (_('[created] repository'),
 
                                  None, 'database_add.png'),
 
    'user_created_fork':         (_('[created] repository as fork'),
 
                                  None, 'arrow_divide.png'),
 
    'user_forked_repo':          (_('[forked] repository'),
 
                                  get_fork_name, 'arrow_divide.png'),
 
    'user_updated_repo':         (_('[updated] repository'),
 
                                  None, 'database_edit.png'),
 
    'admin_deleted_repo':        (_('[delete] repository'),
 
                                  None, 'database_delete.png'),
 
    'admin_created_repo':        (_('[created] repository'),
 
                                  None, 'database_add.png'),
 
    'admin_forked_repo':         (_('[forked] repository'),
 
                                  None, 'arrow_divide.png'),
 
    'admin_updated_repo':        (_('[updated] repository'),
 
                                  None, 'database_edit.png'),
 
    'admin_created_user':        (_('[created] user'),
 
                                  get_user_name, 'user_add.png'),
 
    'admin_updated_user':        (_('[updated] user'),
 
                                  get_user_name, 'user_edit.png'),
 
    'admin_created_users_group': (_('[created] users group'),
 
                                  get_users_group, 'group_add.png'),
 
    'admin_updated_users_group': (_('[updated] users group'),
 
                                  get_users_group, 'group_edit.png'),
 
    'user_commented_revision':   (_('[commented] on revision in repository'),
 
                                  get_cs_links, 'comment_add.png'),
 
    'push':                      (_('[pushed] into'),
 
                                  get_cs_links, 'script_add.png'),
 
    'push_local':                (_('[committed via RhodeCode] into repository'),
 
                                  get_cs_links, 'script_edit.png'),
 
    'push_remote':               (_('[pulled from remote] into repository'),
 
                                  get_cs_links, 'connect.png'),
 
    'pull':                      (_('[pulled] from'),
 
                                  None, 'down_16.png'),
 
    'started_following_repo':    (_('[started following] repository'),
 
                                  None, 'heart_add.png'),
 
    'stopped_following_repo':    (_('[stopped following] repository'),
 
                                  None, 'heart_delete.png'),
 
    }
 

	
 
    action_str = action_map.get(action, action)
 
    if feed:
 
@@ -568,36 +603,21 @@ def action_parser(user_log, feed=False):
 
    if callable(action_str[1]):
 
        action_params_func = action_str[1]
 

	
 
    return [literal(action), action_params_func]
 

	
 
    def action_parser_icon():
 
        action = user_log.action
 
        action_params = None
 
        x = action.split(':')
 

	
 
def action_parser_icon(user_log):
 
    action = user_log.action
 
    action_params = None
 
    x = action.split(':')
 

	
 
    if len(x) > 1:
 
        action, action_params = x
 
        if len(x) > 1:
 
            action, action_params = x
 

	
 
    tmpl = """<img src="%s%s" alt="%s"/>"""
 
    map = {'user_deleted_repo':'database_delete.png',
 
           'user_created_repo':'database_add.png',
 
           'user_created_fork':'arrow_divide.png',
 
           'user_forked_repo':'arrow_divide.png',
 
           'user_updated_repo':'database_edit.png',
 
           'admin_deleted_repo':'database_delete.png',
 
           'admin_created_repo':'database_add.png',
 
           'admin_forked_repo':'arrow_divide.png',
 
           'admin_updated_repo':'database_edit.png',
 
           'push':'script_add.png',
 
           'push_local':'script_edit.png',
 
           'push_remote':'connect.png',
 
           'pull':'down_16.png',
 
           'started_following_repo':'heart_add.png',
 
           'stopped_following_repo':'heart_delete.png',
 
            }
 
    return literal(tmpl % ((url('/images/icons/')),
 
                           map.get(action, action), action))
 
        tmpl = """<img src="%s%s" alt="%s"/>"""
 
        ico = action_map.get(action, ['', '', ''])[2]
 
        return literal(tmpl % ((url('/images/icons/')), ico, action))
 

	
 
    # returned callbacks we need to call to get
 
    return [lambda: literal(action), action_params_func, action_parser_icon]
 

	
 

	
 

	
 
#==============================================================================
rhodecode/lib/indexers/__init__.py
Show inline comments
 
@@ -40,7 +40,7 @@ from whoosh.index import create_in, open
 
from whoosh.formats import Characters
 
from whoosh.highlight import highlight, HtmlFormatter, ContextFragmenter
 

	
 
from webhelpers.html.builder import escape
 
from webhelpers.html.builder import escape, literal
 
from sqlalchemy import engine_from_config
 

	
 
from rhodecode.model import init_model
 
@@ -57,6 +57,7 @@ ANALYZER = RegexTokenizer(expression=r"\
 

	
 
#INDEX SCHEMA DEFINITION
 
SCHEMA = Schema(
 
    fileid=ID(unique=True),
 
    owner=TEXT(),
 
    repository=TEXT(stored=True),
 
    path=TEXT(stored=True),
 
@@ -93,6 +94,8 @@ class MakeIndex(BasePasterCommand):
 
            if self.options.repo_location else RepoModel().repos_path
 
        repo_list = map(strip, self.options.repo_list.split(',')) \
 
            if self.options.repo_list else None
 
        repo_update_list = map(strip, self.options.repo_update_list.split(',')) \
 
            if self.options.repo_update_list else None
 
        load_rcextensions(config['here'])
 
        #======================================================================
 
        # WHOOSH DAEMON
 
@@ -103,7 +106,8 @@ class MakeIndex(BasePasterCommand):
 
            l = DaemonLock(file_=jn(dn(dn(index_location)), 'make_index.lock'))
 
            WhooshIndexingDaemon(index_location=index_location,
 
                                 repo_location=repo_location,
 
                                 repo_list=repo_list,)\
 
                                 repo_list=repo_list,
 
                                 repo_update_list=repo_update_list)\
 
                .run(full_index=self.options.full_index)
 
            l.release()
 
        except LockHeld:
 
@@ -119,7 +123,14 @@ class MakeIndex(BasePasterCommand):
 
                          action='store',
 
                          dest='repo_list',
 
                          help="Specifies a comma separated list of repositores "
 
                                "to build index on OPTIONAL",
 
                                "to build index on. If not given all repositories "
 
                                "are scanned for indexing. OPTIONAL",
 
                          )
 
        self.parser.add_option('--update-only',
 
                          action='store',
 
                          dest='repo_update_list',
 
                          help="Specifies a comma separated list of repositores "
 
                                "to re-build index on. OPTIONAL",
 
                          )
 
        self.parser.add_option('-f',
 
                          action='store_true',
 
@@ -220,7 +231,7 @@ class WhooshResultWrapper(object):
 
        if self.search_type != 'content':
 
            return ''
 
        hl = highlight(
 
            text=escape(content),
 
            text=content,
 
            terms=self.highlight_items,
 
            analyzer=ANALYZER,
 
            fragmenter=FRAGMENTER,
rhodecode/lib/indexers/daemon.py
Show inline comments
 
@@ -53,11 +53,12 @@ log = logging.getLogger('whoosh_indexer'
 

	
 
class WhooshIndexingDaemon(object):
 
    """
 
    Daemon for atomic jobs
 
    Daemon for atomic indexing jobs
 
    """
 

	
 
    def __init__(self, indexname=IDX_NAME, index_location=None,
 
                 repo_location=None, sa=None, repo_list=None):
 
                 repo_location=None, sa=None, repo_list=None,
 
                 repo_update_list=None):
 
        self.indexname = indexname
 

	
 
        self.index_location = index_location
 
@@ -70,13 +71,23 @@ class WhooshIndexingDaemon(object):
 

	
 
        self.repo_paths = ScmModel(sa).repo_scan(self.repo_location)
 

	
 
        #filter repo list
 
        if repo_list:
 
            filtered_repo_paths = {}
 
            self.filtered_repo_paths = {}
 
            for repo_name, repo in self.repo_paths.items():
 
                if repo_name in repo_list:
 
                    filtered_repo_paths[repo_name] = repo
 
                    self.filtered_repo_paths[repo_name] = repo
 

	
 
            self.repo_paths = self.filtered_repo_paths
 

	
 
            self.repo_paths = filtered_repo_paths
 
        #filter update repo list
 
        self.filtered_repo_update_paths = {}
 
        if repo_update_list:
 
            self.filtered_repo_update_paths = {}
 
            for repo_name, repo in self.repo_paths.items():
 
                if repo_name in repo_update_list:
 
                    self.filtered_repo_update_paths[repo_name] = repo
 
            self.repo_paths = self.filtered_repo_update_paths
 

	
 
        self.initial = False
 
        if not os.path.isdir(self.index_location):
 
@@ -135,10 +146,12 @@ class WhooshIndexingDaemon(object):
 
            u_content = u''
 
            indexed += 1
 

	
 
        p = safe_unicode(path)
 
        writer.add_document(
 
            fileid=p,
 
            owner=unicode(repo.contact),
 
            repository=safe_unicode(repo_name),
 
            path=safe_unicode(path),
 
            path=p,
 
            content=u_content,
 
            modtime=self.get_node_mtime(node),
 
            extension=node.extension
 
@@ -172,8 +185,8 @@ class WhooshIndexingDaemon(object):
 
        log.debug('>>> FINISHED BUILDING INDEX <<<')
 

	
 
    def update_index(self):
 
        log.debug('STARTING INCREMENTAL INDEXING UPDATE FOR EXTENSIONS %s' %
 
                  INDEX_EXTENSIONS)
 
        log.debug((u'STARTING INCREMENTAL INDEXING UPDATE FOR EXTENSIONS %s '
 
                   'AND REPOS %s') % (INDEX_EXTENSIONS, self.repo_paths.keys()))
 

	
 
        idx = open_dir(self.index_location, indexname=self.indexname)
 
        # The set of all paths in the index
 
@@ -187,27 +200,32 @@ class WhooshIndexingDaemon(object):
 
        # Loop over the stored fields in the index
 
        for fields in reader.all_stored_fields():
 
            indexed_path = fields['path']
 
            indexed_repo_path = fields['repository']
 
            indexed_paths.add(indexed_path)
 

	
 
            repo = self.repo_paths[fields['repository']]
 
            if not indexed_repo_path in self.filtered_repo_update_paths:
 
                continue
 

	
 
            repo = self.repo_paths[indexed_repo_path]
 

	
 
            try:
 
                node = self.get_node(repo, indexed_path)
 
            except (ChangesetError, NodeDoesNotExistError):
 
                # This file was deleted since it was indexed
 
                log.debug('removing from index %s' % indexed_path)
 
                writer.delete_by_term('path', indexed_path)
 

	
 
            else:
 
                # Check if this file was changed since it was indexed
 
                indexed_time = fields['modtime']
 
                mtime = self.get_node_mtime(node)
 
                if mtime > indexed_time:
 
                    # The file has changed, delete it and add it to the list of
 
                    # files to reindex
 
                    log.debug('adding to reindex list %s' % indexed_path)
 
                    writer.delete_by_term('path', indexed_path)
 
                    log.debug('adding to reindex list %s mtime: %s vs %s' % (
 
                                    indexed_path, mtime, indexed_time)
 
                    )
 
                    writer.delete_by_term('fileid', indexed_path)
 

	
 
                    to_index.add(indexed_path)
 
            except (ChangesetError, NodeDoesNotExistError):
 
                # This file was deleted since it was indexed
 
                log.debug('removing from index %s' % indexed_path)
 
                writer.delete_by_term('path', indexed_path)
 

	
 
        # Loop over the files in the filesystem
 
        # Assume we have a function that gathers the filenames of the
 
@@ -215,7 +233,9 @@ class WhooshIndexingDaemon(object):
 
        ri_cnt = riwc_cnt = 0
 
        for repo_name, repo in self.repo_paths.items():
 
            for path in self.get_paths(repo):
 
                path = safe_unicode(path)
 
                if path in to_index or path not in indexed_paths:
 

	
 
                    # This is either a file that's changed, or a new file
 
                    # that wasn't indexed before. So index it!
 
                    i, iwc = self.add_doc(writer, path, repo, repo_name)
rhodecode/lib/middleware/pygrack.py
Show inline comments
 
new file 100644
 
import os
 
import socket
 
import logging
 
import subprocess
 

	
 
from webob import Request, Response, exc
 

	
 
from rhodecode.lib import subprocessio
 

	
 
log = logging.getLogger(__name__)
 

	
 

	
 
class FileWrapper(object):
 

	
 
    def __init__(self, fd, content_length):
 
        self.fd = fd
 
        self.content_length = content_length
 
        self.remain = content_length
 

	
 
    def read(self, size):
 
        if size <= self.remain:
 
            try:
 
                data = self.fd.read(size)
 
            except socket.error:
 
                raise IOError(self)
 
            self.remain -= size
 
        elif self.remain:
 
            data = self.fd.read(self.remain)
 
            self.remain = 0
 
        else:
 
            data = None
 
        return data
 

	
 
    def __repr__(self):
 
        return '<FileWrapper %s len: %s, read: %s>' % (
 
            self.fd, self.content_length, self.content_length - self.remain
 
        )
 

	
 

	
 
class GitRepository(object):
 
    git_folder_signature = set(['config', 'head', 'info', 'objects', 'refs'])
 
    commands = ['git-upload-pack', 'git-receive-pack']
 

	
 
    def __init__(self, repo_name, content_path):
 
        files = set([f.lower() for f in os.listdir(content_path)])
 
        if  not (self.git_folder_signature.intersection(files)
 
                == self.git_folder_signature):
 
            raise OSError('%s missing git signature' % content_path)
 
        self.content_path = content_path
 
        self.valid_accepts = ['application/x-%s-result' %
 
                              c for c in self.commands]
 
        self.repo_name = repo_name
 

	
 
    def _get_fixedpath(self, path):
 
        """
 
        Small fix for repo_path
 

	
 
        :param path:
 
        :type path:
 
        """
 
        return path.split(self.repo_name, 1)[-1].strip('/')
 

	
 
    def inforefs(self, request, environ):
 
        """
 
        WSGI Response producer for HTTP GET Git Smart
 
        HTTP /info/refs request.
 
        """
 

	
 
        git_command = request.GET['service']
 
        if git_command not in self.commands:
 
            log.debug('command %s not allowed' % git_command)
 
            return exc.HTTPMethodNotAllowed()
 

	
 
        # note to self:
 
        # please, resist the urge to add '\n' to git capture and increment
 
        # line count by 1.
 
        # The code in Git client not only does NOT need '\n', but actually
 
        # blows up if you sprinkle "flush" (0000) as "0001\n".
 
        # It reads binary, per number of bytes specified.
 
        # if you do add '\n' as part of data, count it.
 
        smart_server_advert = '# service=%s' % git_command
 
        try:
 
            out = subprocessio.SubprocessIOChunker(
 
                r'git %s --stateless-rpc --advertise-refs "%s"' % (
 
                                git_command[4:], self.content_path),
 
                starting_values=[
 
                    str(hex(len(smart_server_advert) + 4)[2:]
 
                        .rjust(4, '0') + smart_server_advert + '0000')
 
                ]
 
            )
 
        except EnvironmentError, e:
 
            log.exception(e)
 
            raise exc.HTTPExpectationFailed()
 
        resp = Response()
 
        resp.content_type = 'application/x-%s-advertisement' % str(git_command)
 
        resp.app_iter = out
 
        return resp
 

	
 
    def backend(self, request, environ):
 
        """
 
        WSGI Response producer for HTTP POST Git Smart HTTP requests.
 
        Reads commands and data from HTTP POST's body.
 
        returns an iterator obj with contents of git command's
 
        response to stdout
 
        """
 
        git_command = self._get_fixedpath(request.path_info)
 
        if git_command not in self.commands:
 
            log.debug('command %s not allowed' % git_command)
 
            return exc.HTTPMethodNotAllowed()
 

	
 
        if 'CONTENT_LENGTH' in environ:
 
            inputstream = FileWrapper(environ['wsgi.input'],
 
                                      request.content_length)
 
        else:
 
            inputstream = environ['wsgi.input']
 

	
 
        try:
 
            out = subprocessio.SubprocessIOChunker(
 
                r'git %s --stateless-rpc "%s"' % (git_command[4:],
 
                                                  self.content_path),
 
                inputstream=inputstream
 
                )
 
        except EnvironmentError, e:
 
            log.exception(e)
 
            raise exc.HTTPExpectationFailed()
 

	
 
        if git_command in [u'git-receive-pack']:
 
            # updating refs manually after each push.
 
            # Needed for pre-1.7.0.4 git clients using regular HTTP mode.
 
            subprocess.call(u'git --git-dir "%s" '
 
                            'update-server-info' % self.content_path,
 
                            shell=True)
 

	
 
        resp = Response()
 
        resp.content_type = 'application/x-%s-result' % git_command.encode('utf8')
 
        resp.app_iter = out
 
        return resp
 

	
 
    def __call__(self, environ, start_response):
 
        request = Request(environ)
 
        _path = self._get_fixedpath(request.path_info)
 
        if _path.startswith('info/refs'):
 
            app = self.inforefs
 
        elif [a for a in self.valid_accepts if a in request.accept]:
 
            app = self.backend
 
        try:
 
            resp = app(request, environ)
 
        except exc.HTTPException, e:
 
            resp = e
 
            log.exception(e)
 
        except Exception, e:
 
            log.exception(e)
 
            resp = exc.HTTPInternalServerError()
 
        return resp(environ, start_response)
 

	
 

	
 
class GitDirectory(object):
 

	
 
    def __init__(self, repo_root, repo_name):
 
        repo_location = os.path.join(repo_root, repo_name)
 
        if not os.path.isdir(repo_location):
 
            raise OSError(repo_location)
 

	
 
        self.content_path = repo_location
 
        self.repo_name = repo_name
 
        self.repo_location = repo_location
 

	
 
    def __call__(self, environ, start_response):
 
        content_path = self.content_path
 
        try:
 
            app = GitRepository(self.repo_name, content_path)
 
        except (AssertionError, OSError):
 
            if os.path.isdir(os.path.join(content_path, '.git')):
 
                app = GitRepository(os.path.join(content_path, '.git'))
 
            else:
 
                return exc.HTTPNotFound()(environ, start_response)
 
        return app(environ, start_response)
 

	
 

	
 
def make_wsgi_app(repo_name, repo_root):
 
    return GitDirectory(repo_root, repo_name)
rhodecode/lib/middleware/simplegit.py
Show inline comments
 
@@ -218,11 +218,13 @@ class SimpleGit(BaseVCSController):
 
        :param repo_name: name of the repository
 
        :param repo_path: full path to the repository
 
        """
 
        _d = {'/' + repo_name: Repo(repo_path)}
 
        backend = dulserver.DictBackend(_d)
 
        gitserve = make_wsgi_chain(backend)
 

	
 
        return gitserve
 
        from rhodecode.lib.middleware.pygrack import make_wsgi_app
 
        app = make_wsgi_app(
 
            repo_root=os.path.dirname(repo_path),
 
            repo_name=repo_name,
 
        )
 
        return app
 

	
 
    def __get_repository(self, environ):
 
        """

Changeset was too big and was cut off... Show full diff anyway

0 comments (0 inline, 0 general)