##// END OF EJS Templates
merge with beta
marcink -
r2391:91fae60b merge codereview
parent child Browse files
Show More

The requested changes are too big and content was truncated. Show full diff

1 NO CONTENT: new file 100644
NO CONTENT: new file 100644
@@ -0,0 +1,230 b''
1 # -*- coding: utf-8 -*-
2 """
3 rhodecode.bin.backup_manager
4 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5
6 Api CLI client for RhodeCode
7
8 :created_on: Jun 3, 2012
9 :author: marcink
10 :copyright: (C) 2010-2012 Marcin Kuzminski <marcin@python-works.com>
11 :license: GPLv3, see COPYING for more details.
12 """
13 # This program is free software: you can redistribute it and/or modify
14 # it under the terms of the GNU General Public License as published by
15 # the Free Software Foundation, either version 3 of the License, or
16 # (at your option) any later version.
17 #
18 # This program is distributed in the hope that it will be useful,
19 # but WITHOUT ANY WARRANTY; without even the implied warranty of
20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 # GNU General Public License for more details.
22 #
23 # You should have received a copy of the GNU General Public License
24 # along with this program. If not, see <http://www.gnu.org/licenses/>.
25
26 from __future__ import with_statement
27 import os
28 import sys
29 import random
30 import urllib2
31 import pprint
32 import argparse
33
34 try:
35 from rhodecode.lib.ext_json import json
36 except ImportError:
37 try:
38 import simplejson as json
39 except ImportError:
40 import json
41
42
43 CONFIG_NAME = '.rhodecode'
44 FORMAT_PRETTY = 'pretty'
45 FORMAT_JSON = 'json'
46
47
48 class RcConf(object):
49 """
50 RhodeCode config for API
51
52 conf = RcConf()
53 conf['key']
54
55 """
56
57 def __init__(self, autoload=True, autocreate=False, config=None):
58 self._conf_name = CONFIG_NAME
59 self._conf = {}
60 if autocreate:
61 self.make_config(config)
62 if autoload:
63 self._conf = self.load_config()
64
65 def __getitem__(self, key):
66 return self._conf[key]
67
68 def __nonzero__(self):
69 if self._conf:
70 return True
71 return False
72
73 def __eq__(self):
74 return self._conf.__eq__()
75
76 def __repr__(self):
77 return 'RcConf<%s>' % self._conf.__repr__()
78
79 def make_config(self, config):
80 """
81 Saves given config as a JSON dump in the _conf_name location
82
83 :param config:
84 :type config:
85 """
86 with open(self._conf_name, 'wb') as f:
87 json.dump(config, f, indent=4)
88 sys.stdout.write('Updated conf\n')
89
90 def update_config(self, new_config):
91 """
92 Reads the JSON config updates it's values with new_config and
93 saves it back as JSON dump
94
95 :param new_config:
96 """
97 config = {}
98 try:
99 with open(self._conf_name, 'rb') as conf:
100 config = json.load(conf)
101 except IOError, e:
102 sys.stderr.write(str(e) + '\n')
103
104 config.update(new_config)
105 self.make_config(config)
106
107 def load_config(self):
108 """
109 Loads config from file and returns loaded JSON object
110 """
111 try:
112 with open(self._conf_name, 'rb') as conf:
113 return json.load(conf)
114 except IOError, e:
115 #sys.stderr.write(str(e) + '\n')
116 pass
117
118
119 def api_call(apikey, apihost, format, method=None, **kw):
120 """
121 Api_call wrapper for RhodeCode
122
123 :param apikey:
124 :param apihost:
125 :param format: formatting, pretty means prints and pprint of json
126 json returns unparsed json
127 :param method:
128 """
129 def _build_data(random_id):
130 """
131 Builds API data with given random ID
132
133 :param random_id:
134 :type random_id:
135 """
136 return {
137 "id": random_id,
138 "api_key": apikey,
139 "method": method,
140 "args": kw
141 }
142
143 if not method:
144 raise Exception('please specify method name !')
145 id_ = random.randrange(1, 200)
146 req = urllib2.Request('%s/_admin/api' % apihost,
147 data=json.dumps(_build_data(id_)),
148 headers={'content-type': 'text/plain'})
149 if format == FORMAT_PRETTY:
150 sys.stdout.write('calling %s to %s \n' % (req.get_data(), apihost))
151 ret = urllib2.urlopen(req)
152 raw_json = ret.read()
153 json_data = json.loads(raw_json)
154 id_ret = json_data['id']
155 _formatted_json = pprint.pformat(json_data)
156 if id_ret == id_:
157 if format == FORMAT_JSON:
158 sys.stdout.write(str(raw_json))
159 else:
160 sys.stdout.write('rhodecode returned:\n%s\n' % (_formatted_json))
161
162 else:
163 raise Exception('something went wrong. '
164 'ID mismatch got %s, expected %s | %s' % (
165 id_ret, id_, _formatted_json))
166
167
168 def argparser(argv):
169 usage = ("rhodecode_api [-h] [--format=FORMAT] [--apikey=APIKEY] [--apihost=APIHOST] "
170 "_create_config or METHOD <key:val> <key2:val> ...")
171
172 parser = argparse.ArgumentParser(description='RhodeCode API cli',
173 usage=usage)
174
175 ## config
176 group = parser.add_argument_group('config')
177 group.add_argument('--apikey', help='api access key')
178 group.add_argument('--apihost', help='api host')
179
180 group = parser.add_argument_group('API')
181 group.add_argument('method', metavar='METHOD', type=str,
182 help='API method name to call followed by key:value attributes',
183 )
184 group.add_argument('--format', dest='format', type=str,
185 help='output format default: `pretty` can '
186 'be also `%s`' % FORMAT_JSON,
187 default=FORMAT_PRETTY
188 )
189 args, other = parser.parse_known_args()
190 return parser, args, other
191
192
193 def main(argv=None):
194 """
195 Main execution function for cli
196
197 :param argv:
198 :type argv:
199 """
200 if argv is None:
201 argv = sys.argv
202
203 conf = None
204 parser, args, other = argparser(argv)
205
206 api_credentials_given = (args.apikey and args.apihost)
207 if args.method == '_create_config':
208 if not api_credentials_given:
209 raise parser.error('_create_config requires --apikey and --apihost')
210 conf = RcConf(autocreate=True, config={'apikey': args.apikey,
211 'apihost': args.apihost})
212 sys.stdout.write('Create new config in %s\n' % CONFIG_NAME)
213
214 if not conf:
215 conf = RcConf(autoload=True)
216 if not conf:
217 if not api_credentials_given:
218 parser.error('Could not find config file and missing '
219 '--apikey or --apihost in params')
220
221 apikey = args.apikey or conf['apikey']
222 host = args.apihost or conf['apihost']
223 method = args.method
224 margs = dict(map(lambda s: s.split(':', 1), other))
225
226 api_call(apikey, host, args.format, method, **margs)
227 return 0
228
229 if __name__ == '__main__':
230 sys.exit(main(sys.argv))
@@ -0,0 +1,127 b''
1 """
2 Modified mercurial DAG graph functions that re-uses VCS structure
3
4 It allows to have a shared codebase for DAG generation for hg and git repos
5 """
6
7 nullrev = -1
8
9
10 def grandparent(parentrev_func, lowestrev, roots, head):
11 """
12 Return all ancestors of head in roots which revision is
13 greater or equal to lowestrev.
14 """
15 pending = set([head])
16 seen = set()
17 kept = set()
18 llowestrev = max(nullrev, lowestrev)
19 while pending:
20 r = pending.pop()
21 if r >= llowestrev and r not in seen:
22 if r in roots:
23 kept.add(r)
24 else:
25 pending.update([p for p in parentrev_func(r)])
26 seen.add(r)
27 return sorted(kept)
28
29
30 def _dagwalker(repo, revs, alias):
31 if not revs:
32 return
33
34 if alias == 'hg':
35 cl = repo._repo.changelog.parentrevs
36 repo = repo
37 elif alias == 'git':
38 def cl(rev):
39 return [x.revision for x in repo[rev].parents()]
40 repo = repo
41
42 lowestrev = min(revs)
43 gpcache = {}
44
45 knownrevs = set(revs)
46 for rev in revs:
47 ctx = repo[rev]
48 parents = sorted(set([p.revision for p in ctx.parents
49 if p.revision in knownrevs]))
50 mpars = [p.revision for p in ctx.parents if
51 p.revision != nullrev and p.revision not in parents]
52
53 for mpar in mpars:
54 gp = gpcache.get(mpar)
55 if gp is None:
56 gp = gpcache[mpar] = grandparent(cl, lowestrev, revs, mpar)
57 if not gp:
58 parents.append(mpar)
59 else:
60 parents.extend(g for g in gp if g not in parents)
61
62 yield (ctx.revision, 'C', ctx, parents)
63
64
65 def _colored(dag):
66 """annotates a DAG with colored edge information
67
68 For each DAG node this function emits tuples::
69
70 (id, type, data, (col, color), [(col, nextcol, color)])
71
72 with the following new elements:
73
74 - Tuple (col, color) with column and color index for the current node
75 - A list of tuples indicating the edges between the current node and its
76 parents.
77 """
78 seen = []
79 colors = {}
80 newcolor = 1
81
82 getconf = lambda rev: {}
83
84 for (cur, type, data, parents) in dag:
85
86 # Compute seen and next
87 if cur not in seen:
88 seen.append(cur) # new head
89 colors[cur] = newcolor
90 newcolor += 1
91
92 col = seen.index(cur)
93 color = colors.pop(cur)
94 next = seen[:]
95
96 # Add parents to next
97 addparents = [p for p in parents if p not in next]
98 next[col:col + 1] = addparents
99
100 # Set colors for the parents
101 for i, p in enumerate(addparents):
102 if not i:
103 colors[p] = color
104 else:
105 colors[p] = newcolor
106 newcolor += 1
107
108 # Add edges to the graph
109 edges = []
110 for ecol, eid in enumerate(seen):
111 if eid in next:
112 bconf = getconf(eid)
113 edges.append((
114 ecol, next.index(eid), colors[eid],
115 bconf.get('width', -1),
116 bconf.get('color', '')))
117 elif eid == cur:
118 for p in parents:
119 bconf = getconf(p)
120 edges.append((
121 ecol, next.index(p), color,
122 bconf.get('width', -1),
123 bconf.get('color', '')))
124
125 # Yield and move on
126 yield (cur, type, data, (col, color), edges)
127 seen = next
@@ -0,0 +1,181 b''
1 import os
2 import socket
3 import logging
4 import subprocess
5
6 from webob import Request, Response, exc
7
8 from rhodecode.lib import subprocessio
9
10 log = logging.getLogger(__name__)
11
12
13 class FileWrapper(object):
14
15 def __init__(self, fd, content_length):
16 self.fd = fd
17 self.content_length = content_length
18 self.remain = content_length
19
20 def read(self, size):
21 if size <= self.remain:
22 try:
23 data = self.fd.read(size)
24 except socket.error:
25 raise IOError(self)
26 self.remain -= size
27 elif self.remain:
28 data = self.fd.read(self.remain)
29 self.remain = 0
30 else:
31 data = None
32 return data
33
34 def __repr__(self):
35 return '<FileWrapper %s len: %s, read: %s>' % (
36 self.fd, self.content_length, self.content_length - self.remain
37 )
38
39
40 class GitRepository(object):
41 git_folder_signature = set(['config', 'head', 'info', 'objects', 'refs'])
42 commands = ['git-upload-pack', 'git-receive-pack']
43
44 def __init__(self, repo_name, content_path):
45 files = set([f.lower() for f in os.listdir(content_path)])
46 if not (self.git_folder_signature.intersection(files)
47 == self.git_folder_signature):
48 raise OSError('%s missing git signature' % content_path)
49 self.content_path = content_path
50 self.valid_accepts = ['application/x-%s-result' %
51 c for c in self.commands]
52 self.repo_name = repo_name
53
54 def _get_fixedpath(self, path):
55 """
56 Small fix for repo_path
57
58 :param path:
59 :type path:
60 """
61 return path.split(self.repo_name, 1)[-1].strip('/')
62
63 def inforefs(self, request, environ):
64 """
65 WSGI Response producer for HTTP GET Git Smart
66 HTTP /info/refs request.
67 """
68
69 git_command = request.GET['service']
70 if git_command not in self.commands:
71 log.debug('command %s not allowed' % git_command)
72 return exc.HTTPMethodNotAllowed()
73
74 # note to self:
75 # please, resist the urge to add '\n' to git capture and increment
76 # line count by 1.
77 # The code in Git client not only does NOT need '\n', but actually
78 # blows up if you sprinkle "flush" (0000) as "0001\n".
79 # It reads binary, per number of bytes specified.
80 # if you do add '\n' as part of data, count it.
81 smart_server_advert = '# service=%s' % git_command
82 try:
83 out = subprocessio.SubprocessIOChunker(
84 r'git %s --stateless-rpc --advertise-refs "%s"' % (
85 git_command[4:], self.content_path),
86 starting_values=[
87 str(hex(len(smart_server_advert) + 4)[2:]
88 .rjust(4, '0') + smart_server_advert + '0000')
89 ]
90 )
91 except EnvironmentError, e:
92 log.exception(e)
93 raise exc.HTTPExpectationFailed()
94 resp = Response()
95 resp.content_type = 'application/x-%s-advertisement' % str(git_command)
96 resp.app_iter = out
97 return resp
98
99 def backend(self, request, environ):
100 """
101 WSGI Response producer for HTTP POST Git Smart HTTP requests.
102 Reads commands and data from HTTP POST's body.
103 returns an iterator obj with contents of git command's
104 response to stdout
105 """
106 git_command = self._get_fixedpath(request.path_info)
107 if git_command not in self.commands:
108 log.debug('command %s not allowed' % git_command)
109 return exc.HTTPMethodNotAllowed()
110
111 if 'CONTENT_LENGTH' in environ:
112 inputstream = FileWrapper(environ['wsgi.input'],
113 request.content_length)
114 else:
115 inputstream = environ['wsgi.input']
116
117 try:
118 out = subprocessio.SubprocessIOChunker(
119 r'git %s --stateless-rpc "%s"' % (git_command[4:],
120 self.content_path),
121 inputstream=inputstream
122 )
123 except EnvironmentError, e:
124 log.exception(e)
125 raise exc.HTTPExpectationFailed()
126
127 if git_command in [u'git-receive-pack']:
128 # updating refs manually after each push.
129 # Needed for pre-1.7.0.4 git clients using regular HTTP mode.
130 subprocess.call(u'git --git-dir "%s" '
131 'update-server-info' % self.content_path,
132 shell=True)
133
134 resp = Response()
135 resp.content_type = 'application/x-%s-result' % git_command.encode('utf8')
136 resp.app_iter = out
137 return resp
138
139 def __call__(self, environ, start_response):
140 request = Request(environ)
141 _path = self._get_fixedpath(request.path_info)
142 if _path.startswith('info/refs'):
143 app = self.inforefs
144 elif [a for a in self.valid_accepts if a in request.accept]:
145 app = self.backend
146 try:
147 resp = app(request, environ)
148 except exc.HTTPException, e:
149 resp = e
150 log.exception(e)
151 except Exception, e:
152 log.exception(e)
153 resp = exc.HTTPInternalServerError()
154 return resp(environ, start_response)
155
156
157 class GitDirectory(object):
158
159 def __init__(self, repo_root, repo_name):
160 repo_location = os.path.join(repo_root, repo_name)
161 if not os.path.isdir(repo_location):
162 raise OSError(repo_location)
163
164 self.content_path = repo_location
165 self.repo_name = repo_name
166 self.repo_location = repo_location
167
168 def __call__(self, environ, start_response):
169 content_path = self.content_path
170 try:
171 app = GitRepository(self.repo_name, content_path)
172 except (AssertionError, OSError):
173 if os.path.isdir(os.path.join(content_path, '.git')):
174 app = GitRepository(os.path.join(content_path, '.git'))
175 else:
176 return exc.HTTPNotFound()(environ, start_response)
177 return app(environ, start_response)
178
179
180 def make_wsgi_app(repo_name, repo_root):
181 return GitDirectory(repo_root, repo_name)
@@ -0,0 +1,401 b''
1 '''
2 Module provides a class allowing to wrap communication over subprocess.Popen
3 input, output, error streams into a meaningfull, non-blocking, concurrent
4 stream processor exposing the output data as an iterator fitting to be a
5 return value passed by a WSGI applicaiton to a WSGI server per PEP 3333.
6
7 Copyright (c) 2011 Daniel Dotsenko <dotsa@hotmail.com>
8
9 This file is part of git_http_backend.py Project.
10
11 git_http_backend.py Project is free software: you can redistribute it and/or
12 modify it under the terms of the GNU Lesser General Public License as
13 published by the Free Software Foundation, either version 2.1 of the License,
14 or (at your option) any later version.
15
16 git_http_backend.py Project is distributed in the hope that it will be useful,
17 but WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 GNU Lesser General Public License for more details.
20
21 You should have received a copy of the GNU Lesser General Public License
22 along with git_http_backend.py Project.
23 If not, see <http://www.gnu.org/licenses/>.
24 '''
25 import os
26 import subprocess
27 import threading
28 from collections import deque
29
30
31 class StreamFeeder(threading.Thread):
32 """
33 Normal writing into pipe-like is blocking once the buffer is filled.
34 This thread allows a thread to seep data from a file-like into a pipe
35 without blocking the main thread.
36 We close inpipe once the end of the source stream is reached.
37 """
38 def __init__(self, source):
39 super(StreamFeeder, self).__init__()
40 self.daemon = True
41 filelike = False
42 self.bytes = b''
43 if type(source) in (type(''), bytes, bytearray): # string-like
44 self.bytes = bytes(source)
45 else: # can be either file pointer or file-like
46 if type(source) in (int, long): # file pointer it is
47 ## converting file descriptor (int) stdin into file-like
48 try:
49 source = os.fdopen(source, 'rb', 16384)
50 except:
51 pass
52 # let's see if source is file-like by now
53 try:
54 filelike = source.read
55 except:
56 pass
57 if not filelike and not self.bytes:
58 raise TypeError("StreamFeeder's source object must be a readable file-like, a file descriptor, or a string-like.")
59 self.source = source
60 self.readiface, self.writeiface = os.pipe()
61
62 def run(self):
63 t = self.writeiface
64 if self.bytes:
65 os.write(t, self.bytes)
66 else:
67 s = self.source
68 b = s.read(4096)
69 while b:
70 os.write(t, b)
71 b = s.read(4096)
72 os.close(t)
73
74 @property
75 def output(self):
76 return self.readiface
77
78
79 class InputStreamChunker(threading.Thread):
80 def __init__(self, source, target, buffer_size, chunk_size):
81
82 super(InputStreamChunker, self).__init__()
83
84 self.daemon = True # die die die.
85
86 self.source = source
87 self.target = target
88 self.chunk_count_max = int(buffer_size / chunk_size) + 1
89 self.chunk_size = chunk_size
90
91 self.data_added = threading.Event()
92 self.data_added.clear()
93
94 self.keep_reading = threading.Event()
95 self.keep_reading.set()
96
97 self.EOF = threading.Event()
98 self.EOF.clear()
99
100 self.go = threading.Event()
101 self.go.set()
102
103 def stop(self):
104 self.go.clear()
105 self.EOF.set()
106 try:
107 # this is not proper, but is done to force the reader thread let
108 # go of the input because, if successful, .close() will send EOF
109 # down the pipe.
110 self.source.close()
111 except:
112 pass
113
114 def run(self):
115 s = self.source
116 t = self.target
117 cs = self.chunk_size
118 ccm = self.chunk_count_max
119 kr = self.keep_reading
120 da = self.data_added
121 go = self.go
122 b = s.read(cs)
123 while b and go.is_set():
124 if len(t) > ccm:
125 kr.clear()
126 kr.wait(2)
127 # # this only works on 2.7.x and up
128 # if not kr.wait(10):
129 # raise Exception("Timed out while waiting for input to be read.")
130 # instead we'll use this
131 if len(t) > ccm + 3:
132 raise IOError("Timed out while waiting for input from subprocess.")
133 t.append(b)
134 da.set()
135 b = s.read(cs)
136 self.EOF.set()
137 da.set() # for cases when done but there was no input.
138
139
140 class BufferedGenerator():
141 '''
142 Class behaves as a non-blocking, buffered pipe reader.
143 Reads chunks of data (through a thread)
144 from a blocking pipe, and attaches these to an array (Deque) of chunks.
145 Reading is halted in the thread when max chunks is internally buffered.
146 The .next() may operate in blocking or non-blocking fashion by yielding
147 '' if no data is ready
148 to be sent or by not returning until there is some data to send
149 When we get EOF from underlying source pipe we raise the marker to raise
150 StopIteration after the last chunk of data is yielded.
151 '''
152
153 def __init__(self, source, buffer_size=65536, chunk_size=4096,
154 starting_values=[], bottomless=False):
155
156 if bottomless:
157 maxlen = int(buffer_size / chunk_size)
158 else:
159 maxlen = None
160
161 self.data = deque(starting_values, maxlen)
162
163 self.worker = InputStreamChunker(source, self.data, buffer_size,
164 chunk_size)
165 if starting_values:
166 self.worker.data_added.set()
167 self.worker.start()
168
169 ####################
170 # Generator's methods
171 ####################
172
173 def __iter__(self):
174 return self
175
176 def next(self):
177 while not len(self.data) and not self.worker.EOF.is_set():
178 self.worker.data_added.clear()
179 self.worker.data_added.wait(0.2)
180 if len(self.data):
181 self.worker.keep_reading.set()
182 return bytes(self.data.popleft())
183 elif self.worker.EOF.is_set():
184 raise StopIteration
185
186 def throw(self, type, value=None, traceback=None):
187 if not self.worker.EOF.is_set():
188 raise type(value)
189
190 def start(self):
191 self.worker.start()
192
193 def stop(self):
194 self.worker.stop()
195
196 def close(self):
197 try:
198 self.worker.stop()
199 self.throw(GeneratorExit)
200 except (GeneratorExit, StopIteration):
201 pass
202
203 def __del__(self):
204 self.close()
205
206 ####################
207 # Threaded reader's infrastructure.
208 ####################
209 @property
210 def input(self):
211 return self.worker.w
212
213 @property
214 def data_added_event(self):
215 return self.worker.data_added
216
217 @property
218 def data_added(self):
219 return self.worker.data_added.is_set()
220
221 @property
222 def reading_paused(self):
223 return not self.worker.keep_reading.is_set()
224
225 @property
226 def done_reading_event(self):
227 '''
228 Done_reding does not mean that the iterator's buffer is empty.
229 Iterator might have done reading from underlying source, but the read
230 chunks might still be available for serving through .next() method.
231
232 @return An Event class instance.
233 '''
234 return self.worker.EOF
235
236 @property
237 def done_reading(self):
238 '''
239 Done_reding does not mean that the iterator's buffer is empty.
240 Iterator might have done reading from underlying source, but the read
241 chunks might still be available for serving through .next() method.
242
243 @return An Bool value.
244 '''
245 return self.worker.EOF.is_set()
246
247 @property
248 def length(self):
249 '''
250 returns int.
251
252 This is the lenght of the que of chunks, not the length of
253 the combined contents in those chunks.
254
255 __len__() cannot be meaningfully implemented because this
256 reader is just flying throuh a bottomless pit content and
257 can only know the lenght of what it already saw.
258
259 If __len__() on WSGI server per PEP 3333 returns a value,
260 the responce's length will be set to that. In order not to
261 confuse WSGI PEP3333 servers, we will not implement __len__
262 at all.
263 '''
264 return len(self.data)
265
266 def prepend(self, x):
267 self.data.appendleft(x)
268
269 def append(self, x):
270 self.data.append(x)
271
272 def extend(self, o):
273 self.data.extend(o)
274
275 def __getitem__(self, i):
276 return self.data[i]
277
278
279 class SubprocessIOChunker():
280 '''
281 Processor class wrapping handling of subprocess IO.
282
283 In a way, this is a "communicate()" replacement with a twist.
284
285 - We are multithreaded. Writing in and reading out, err are all sep threads.
286 - We support concurrent (in and out) stream processing.
287 - The output is not a stream. It's a queue of read string (bytes, not unicode)
288 chunks. The object behaves as an iterable. You can "for chunk in obj:" us.
289 - We are non-blocking in more respects than communicate()
290 (reading from subprocess out pauses when internal buffer is full, but
291 does not block the parent calling code. On the flip side, reading from
292 slow-yielding subprocess may block the iteration until data shows up. This
293 does not block the parallel inpipe reading occurring parallel thread.)
294
295 The purpose of the object is to allow us to wrap subprocess interactions into
296 and interable that can be passed to a WSGI server as the application's return
297 value. Because of stream-processing-ability, WSGI does not have to read ALL
298 of the subprocess's output and buffer it, before handing it to WSGI server for
299 HTTP response. Instead, the class initializer reads just a bit of the stream
300 to figure out if error ocurred or likely to occur and if not, just hands the
301 further iteration over subprocess output to the server for completion of HTTP
302 response.
303
304 The real or perceived subprocess error is trapped and raised as one of
305 EnvironmentError family of exceptions
306
307 Example usage:
308 # try:
309 # answer = SubprocessIOChunker(
310 # cmd,
311 # input,
312 # buffer_size = 65536,
313 # chunk_size = 4096
314 # )
315 # except (EnvironmentError) as e:
316 # print str(e)
317 # raise e
318 #
319 # return answer
320
321
322 '''
323 def __init__(self, cmd, inputstream=None, buffer_size=65536,
324 chunk_size=4096, starting_values=[]):
325 '''
326 Initializes SubprocessIOChunker
327
328 @param cmd A Subprocess.Popen style "cmd". Can be string or array of strings
329 @param inputstream (Default: None) A file-like, string, or file pointer.
330 @param buffer_size (Default: 65536) A size of total buffer per stream in bytes.
331 @param chunk_size (Default: 4096) A max size of a chunk. Actual chunk may be smaller.
332 @param starting_values (Default: []) An array of strings to put in front of output que.
333 '''
334
335 if inputstream:
336 input_streamer = StreamFeeder(inputstream)
337 input_streamer.start()
338 inputstream = input_streamer.output
339
340 _p = subprocess.Popen(cmd,
341 bufsize=-1,
342 shell=True,
343 stdin=inputstream,
344 stdout=subprocess.PIPE,
345 stderr=subprocess.PIPE
346 )
347
348 bg_out = BufferedGenerator(_p.stdout, buffer_size, chunk_size, starting_values)
349 bg_err = BufferedGenerator(_p.stderr, 16000, 1, bottomless=True)
350
351 while not bg_out.done_reading and not bg_out.reading_paused and not bg_err.length:
352 # doing this until we reach either end of file, or end of buffer.
353 bg_out.data_added_event.wait(1)
354 bg_out.data_added_event.clear()
355
356 # at this point it's still ambiguous if we are done reading or just full buffer.
357 # Either way, if error (returned by ended process, or implied based on
358 # presence of stuff in stderr output) we error out.
359 # Else, we are happy.
360 _returncode = _p.poll()
361 if _returncode or (_returncode == None and bg_err.length):
362 try:
363 _p.terminate()
364 except:
365 pass
366 bg_out.stop()
367 bg_err.stop()
368 raise EnvironmentError("Subprocess exited due to an error.\n" + "".join(bg_err))
369
370 self.process = _p
371 self.output = bg_out
372 self.error = bg_err
373
374 def __iter__(self):
375 return self
376
377 def next(self):
378 if self.process.poll():
379 raise EnvironmentError("Subprocess exited due to an error:\n" + ''.join(self.error))
380 return self.output.next()
381
382 def throw(self, type, value=None, traceback=None):
383 if self.output.length or not self.output.done_reading:
384 raise type(value)
385
386 def close(self):
387 try:
388 self.process.terminate()
389 except:
390 pass
391 try:
392 self.output.close()
393 except:
394 pass
395 try:
396 self.error.close()
397 except:
398 pass
399
400 def __del__(self):
401 self.close()
@@ -19,3 +19,4 b' syntax: regexp'
19 ^RhodeCode\.egg-info$
19 ^RhodeCode\.egg-info$
20 ^rc\.ini$
20 ^rc\.ini$
21 ^fabfile.py
21 ^fabfile.py
22 ^\.rhodecode$
@@ -59,6 +59,47 b' All responses from API will be `HTTP/1.0'
59 calling api *error* key from response will contain failure description
59 calling api *error* key from response will contain failure description
60 and result will be null.
60 and result will be null.
61
61
62
63 API CLIENT
64 ++++++++++
65
66 From version 1.4 RhodeCode adds a binary script that allows to easily
67 communicate with API. After installing RhodeCode a `rhodecode-api` script
68 will be available.
69
70 To get started quickly simply run::
71
72 rhodecode-api _create_config --apikey=<youapikey> --apihost=<rhodecode host>
73
74 This will create a file named .config in the directory you executed it storing
75 json config file with credentials. You can skip this step and always provide
76 both of the arguments to be able to communicate with server
77
78
79 after that simply run any api command for example get_repo::
80
81 rhodecode-api get_repo
82
83 calling {"api_key": "<apikey>", "id": 75, "args": {}, "method": "get_repo"} to http://127.0.0.1:5000
84 rhodecode said:
85 {'error': 'Missing non optional `repoid` arg in JSON DATA',
86 'id': 75,
87 'result': None}
88
89 Ups looks like we forgot to add an argument
90
91 Let's try again now giving the repoid as parameters::
92
93 rhodecode-api get_repo repoid:rhodecode
94
95 calling {"api_key": "<apikey>", "id": 39, "args": {"repoid": "rhodecode"}, "method": "get_repo"} to http://127.0.0.1:5000
96 rhodecode said:
97 {'error': None,
98 'id': 39,
99 'result': <json data...>}
100
101
102
62 API METHODS
103 API METHODS
63 +++++++++++
104 +++++++++++
64
105
@@ -187,7 +228,18 b' OUTPUT::'
187
228
188 result: {
229 result: {
189 "id" : "<new_user_id>",
230 "id" : "<new_user_id>",
190 "msg" : "created new user <username>"
231 "msg" : "created new user <username>",
232 "user": {
233 "id" : "<id>",
234 "username" : "<username>",
235 "firstname": "<firstname>",
236 "lastname" : "<lastname>",
237 "email" : "<email>",
238 "active" : "<bool>",
239 "admin" :  "<bool>",
240 "ldap_dn" : "<ldap_dn>",
241 "last_login": "<last_login>",
242 },
191 }
243 }
192 error: null
244 error: null
193
245
@@ -195,7 +247,7 b' OUTPUT::'
195 update_user
247 update_user
196 -----------
248 -----------
197
249
198 updates current one if such user exists. This command can
250 updates given user if such user exists. This command can
199 be executed only using api_key belonging to user with admin rights.
251 be executed only using api_key belonging to user with admin rights.
200
252
201
253
@@ -220,7 +272,33 b' OUTPUT::'
220
272
221 result: {
273 result: {
222 "id" : "<edited_user_id>",
274 "id" : "<edited_user_id>",
223 "msg" : "updated user <username>"
275 "msg" : "updated user ID:<userid> <username>"
276 }
277 error: null
278
279
280 delete_user
281 -----------
282
283
284 deletes givenuser if such user exists. This command can
285 be executed only using api_key belonging to user with admin rights.
286
287
288 INPUT::
289
290 id : <id_for_response>
291 api_key : "<api_key>"
292 method : "delete_user"
293 args : {
294 "userid" : "<user_id or username>",
295 }
296
297 OUTPUT::
298
299 result: {
300 "id" : "<edited_user_id>",
301 "msg" : "deleted user ID:<userid> <username>"
224 }
302 }
225 error: null
303 error: null
226
304
@@ -534,6 +612,15 b' OUTPUT::'
534 result: {
612 result: {
535 "id": "<newrepoid>",
613 "id": "<newrepoid>",
536 "msg": "Created new repository <reponame>",
614 "msg": "Created new repository <reponame>",
615 "repo": {
616 "id" : "<id>",
617 "repo_name" : "<reponame>"
618 "type" : "<type>",
619 "description" : "<description>",
620 "clone_uri" : "<clone_uri>",
621 "private": : "<bool>",
622 "created_on" : "<datetimecreated>",
623 },
537 }
624 }
538 error: null
625 error: null
539
626
@@ -18,6 +18,13 b' news'
18 their accounts
18 their accounts
19 - changed setup-app into setup-rhodecode and added default options to it.
19 - changed setup-app into setup-rhodecode and added default options to it.
20 - new git repos are created as bare now by default
20 - new git repos are created as bare now by default
21 - #464 added links to groups in permission box
22 - #465 mentions autocomplete inside comments boxes
23 - #469 added --update-only option to whoosh to re-index only given list
24 of repos in index
25 - rhodecode-api CLI client
26 - new git http protocol replaced buggy dulwich implementation.
27 Now based on pygrack & gitweb
21
28
22 fixes
29 fixes
23 +++++
30 +++++
@@ -13,5 +13,6 b' dulwich>=0.8.5,<0.9.0'
13 webob==1.0.8
13 webob==1.0.8
14 markdown==2.1.1
14 markdown==2.1.1
15 docutils==0.8.1
15 docutils==0.8.1
16 simplejson==2.5.2
16 py-bcrypt
17 py-bcrypt
17 mercurial>=2.2.1,<2.3 No newline at end of file
18 mercurial>=2.2.2,<2.3 No newline at end of file
@@ -72,10 +72,10 b' if __py_version__ < (2, 6):'
72 requirements.append("pysqlite")
72 requirements.append("pysqlite")
73
73
74 if is_windows:
74 if is_windows:
75 requirements.append("mercurial>=2.2.1,<2.3")
75 requirements.append("mercurial>=2.2.2,<2.3")
76 else:
76 else:
77 requirements.append("py-bcrypt")
77 requirements.append("py-bcrypt")
78 requirements.append("mercurial>=2.2.1,<2.3")
78 requirements.append("mercurial>=2.2.2,<2.3")
79
79
80
80
81 def get_version():
81 def get_version():
@@ -1,9 +1,9 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 """
2 """
3 rhodecode.lib.backup_manager
3 rhodecode.bin.backup_manager
4 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5
5
6 Mercurial repositories backup manager, it allows to backups all
6 Repositories backup manager, it allows to backups all
7 repositories and send it to backup server using RSA key via ssh.
7 repositories and send it to backup server using RSA key via ssh.
8
8
9 :created_on: Feb 28, 2010
9 :created_on: Feb 28, 2010
@@ -39,7 +39,7 b' logging.basicConfig(level=logging.DEBUG,'
39 class BackupManager(object):
39 class BackupManager(object):
40 def __init__(self, repos_location, rsa_key, backup_server):
40 def __init__(self, repos_location, rsa_key, backup_server):
41 today = datetime.datetime.now().weekday() + 1
41 today = datetime.datetime.now().weekday() + 1
42 self.backup_file_name = "mercurial_repos.%s.tar.gz" % today
42 self.backup_file_name = "rhodecode_repos.%s.tar.gz" % today
43
43
44 self.id_rsa_path = self.get_id_rsa(rsa_key)
44 self.id_rsa_path = self.get_id_rsa(rsa_key)
45 self.repos_path = self.get_repos_path(repos_location)
45 self.repos_path = self.get_repos_path(repos_location)
@@ -217,7 +217,7 b' def make_map(config):'
217 m.connect("user_emails_delete", "/users_emails/{id}",
217 m.connect("user_emails_delete", "/users_emails/{id}",
218 action="delete_email", conditions=dict(method=["DELETE"]))
218 action="delete_email", conditions=dict(method=["DELETE"]))
219
219
220 #ADMIN USERS REST ROUTES
220 #ADMIN USERS GROUPS REST ROUTES
221 with rmap.submapper(path_prefix=ADMIN_PREFIX,
221 with rmap.submapper(path_prefix=ADMIN_PREFIX,
222 controller='admin/users_groups') as m:
222 controller='admin/users_groups') as m:
223 m.connect("users_groups", "/users_groups",
223 m.connect("users_groups", "/users_groups",
@@ -346,10 +346,17 b' def make_map(config):'
346 rmap.connect('public_journal', '%s/public_journal' % ADMIN_PREFIX,
346 rmap.connect('public_journal', '%s/public_journal' % ADMIN_PREFIX,
347 controller='journal', action="public_journal")
347 controller='journal', action="public_journal")
348
348
349 rmap.connect('public_journal_rss', '%s/public_journal_rss' % ADMIN_PREFIX,
349 rmap.connect('public_journal_rss', '%s/public_journal/rss' % ADMIN_PREFIX,
350 controller='journal', action="public_journal_rss")
351
352 rmap.connect('public_journal_rss_old', '%s/public_journal_rss' % ADMIN_PREFIX,
350 controller='journal', action="public_journal_rss")
353 controller='journal', action="public_journal_rss")
351
354
352 rmap.connect('public_journal_atom',
355 rmap.connect('public_journal_atom',
356 '%s/public_journal/atom' % ADMIN_PREFIX, controller='journal',
357 action="public_journal_atom")
358
359 rmap.connect('public_journal_atom_old',
353 '%s/public_journal_atom' % ADMIN_PREFIX, controller='journal',
360 '%s/public_journal_atom' % ADMIN_PREFIX, controller='journal',
354 action="public_journal_atom")
361 action="public_journal_atom")
355
362
@@ -151,10 +151,12 b' class ReposController(BaseController):'
151 if request.POST.get('user_created'):
151 if request.POST.get('user_created'):
152 # created by regular non admin user
152 # created by regular non admin user
153 action_logger(self.rhodecode_user, 'user_created_repo',
153 action_logger(self.rhodecode_user, 'user_created_repo',
154 form_result['repo_name_full'], '', self.sa)
154 form_result['repo_name_full'], self.ip_addr,
155 self.sa)
155 else:
156 else:
156 action_logger(self.rhodecode_user, 'admin_created_repo',
157 action_logger(self.rhodecode_user, 'admin_created_repo',
157 form_result['repo_name_full'], '', self.sa)
158 form_result['repo_name_full'], self.ip_addr,
159 self.sa)
158 Session.commit()
160 Session.commit()
159 except formencode.Invalid, errors:
161 except formencode.Invalid, errors:
160
162
@@ -212,7 +214,7 b' class ReposController(BaseController):'
212 category='success')
214 category='success')
213 changed_name = repo.repo_name
215 changed_name = repo.repo_name
214 action_logger(self.rhodecode_user, 'admin_updated_repo',
216 action_logger(self.rhodecode_user, 'admin_updated_repo',
215 changed_name, '', self.sa)
217 changed_name, self.ip_addr, self.sa)
216 Session.commit()
218 Session.commit()
217 except formencode.Invalid, errors:
219 except formencode.Invalid, errors:
218 defaults = self.__load_data(repo_name)
220 defaults = self.__load_data(repo_name)
@@ -253,7 +255,7 b' class ReposController(BaseController):'
253 return redirect(url('repos'))
255 return redirect(url('repos'))
254 try:
256 try:
255 action_logger(self.rhodecode_user, 'admin_deleted_repo',
257 action_logger(self.rhodecode_user, 'admin_deleted_repo',
256 repo_name, '', self.sa)
258 repo_name, self.ip_addr, self.sa)
257 repo_model.delete(repo)
259 repo_model.delete(repo)
258 invalidate_cache('get_repo_cached_%s' % repo_name)
260 invalidate_cache('get_repo_cached_%s' % repo_name)
259 h.flash(_('deleted repository %s') % repo_name, category='success')
261 h.flash(_('deleted repository %s') % repo_name, category='success')
@@ -42,6 +42,7 b' from rhodecode.model.db import User, Per'
42 from rhodecode.model.forms import UserForm
42 from rhodecode.model.forms import UserForm
43 from rhodecode.model.user import UserModel
43 from rhodecode.model.user import UserModel
44 from rhodecode.model.meta import Session
44 from rhodecode.model.meta import Session
45 from rhodecode.lib.utils import action_logger
45
46
46 log = logging.getLogger(__name__)
47 log = logging.getLogger(__name__)
47
48
@@ -76,10 +77,12 b' class UsersController(BaseController):'
76 try:
77 try:
77 form_result = user_form.to_python(dict(request.POST))
78 form_result = user_form.to_python(dict(request.POST))
78 user_model.create(form_result)
79 user_model.create(form_result)
79 h.flash(_('created user %s') % form_result['username'],
80 usr = form_result['username']
81 action_logger(self.rhodecode_user, 'admin_created_user:%s' % usr,
82 None, self.ip_addr, self.sa)
83 h.flash(_('created user %s') % usr,
80 category='success')
84 category='success')
81 Session.commit()
85 Session.commit()
82 #action_logger(self.rhodecode_user, 'new_user', '', '', self.sa)
83 except formencode.Invalid, errors:
86 except formencode.Invalid, errors:
84 return htmlfill.render(
87 return htmlfill.render(
85 render('admin/users/user_add.html'),
88 render('admin/users/user_add.html'),
@@ -115,6 +118,9 b' class UsersController(BaseController):'
115 try:
118 try:
116 form_result = _form.to_python(dict(request.POST))
119 form_result = _form.to_python(dict(request.POST))
117 user_model.update(id, form_result)
120 user_model.update(id, form_result)
121 usr = form_result['username']
122 action_logger(self.rhodecode_user, 'admin_updated_user:%s' % usr,
123 None, self.ip_addr, self.sa)
118 h.flash(_('User updated successfully'), category='success')
124 h.flash(_('User updated successfully'), category='success')
119 Session.commit()
125 Session.commit()
120 except formencode.Invalid, errors:
126 except formencode.Invalid, errors:
@@ -43,6 +43,7 b' from rhodecode.model.users_group import '
43 from rhodecode.model.db import User, UsersGroup, Permission, UsersGroupToPerm
43 from rhodecode.model.db import User, UsersGroup, Permission, UsersGroupToPerm
44 from rhodecode.model.forms import UsersGroupForm
44 from rhodecode.model.forms import UsersGroupForm
45 from rhodecode.model.meta import Session
45 from rhodecode.model.meta import Session
46 from rhodecode.lib.utils import action_logger
46
47
47 log = logging.getLogger(__name__)
48 log = logging.getLogger(__name__)
48
49
@@ -76,9 +77,11 b' class UsersGroupsController(BaseControll'
76 form_result = users_group_form.to_python(dict(request.POST))
77 form_result = users_group_form.to_python(dict(request.POST))
77 UsersGroupModel().create(name=form_result['users_group_name'],
78 UsersGroupModel().create(name=form_result['users_group_name'],
78 active=form_result['users_group_active'])
79 active=form_result['users_group_active'])
79 h.flash(_('created users group %s') \
80 gr = form_result['users_group_name']
80 % form_result['users_group_name'], category='success')
81 action_logger(self.rhodecode_user,
81 #action_logger(self.rhodecode_user, 'new_user', '', '', self.sa)
82 'admin_created_users_group:%s' % gr,
83 None, self.ip_addr, self.sa)
84 h.flash(_('created users group %s') % gr, category='success')
82 Session.commit()
85 Session.commit()
83 except formencode.Invalid, errors:
86 except formencode.Invalid, errors:
84 return htmlfill.render(
87 return htmlfill.render(
@@ -125,10 +128,11 b' class UsersGroupsController(BaseControll'
125 try:
128 try:
126 form_result = users_group_form.to_python(request.POST)
129 form_result = users_group_form.to_python(request.POST)
127 UsersGroupModel().update(c.users_group, form_result)
130 UsersGroupModel().update(c.users_group, form_result)
128 h.flash(_('updated users group %s') \
131 gr = form_result['users_group_name']
129 % form_result['users_group_name'],
132 action_logger(self.rhodecode_user,
130 category='success')
133 'admin_updated_users_group:%s' % gr,
131 #action_logger(self.rhodecode_user, 'new_user', '', '', self.sa)
134 None, self.ip_addr, self.sa)
135 h.flash(_('updated users group %s') % gr, category='success')
132 Session.commit()
136 Session.commit()
133 except formencode.Invalid, errors:
137 except formencode.Invalid, errors:
134 e = errors.error_dict or {}
138 e = errors.error_dict or {}
@@ -57,15 +57,16 b' class JSONRPCError(BaseException):'
57 return str(self.message)
57 return str(self.message)
58
58
59
59
60 def jsonrpc_error(message, code=None):
60 def jsonrpc_error(message, retid=None, code=None):
61 """
61 """
62 Generate a Response object with a JSON-RPC error body
62 Generate a Response object with a JSON-RPC error body
63 """
63 """
64 from pylons.controllers.util import Response
64 from pylons.controllers.util import Response
65 resp = Response(body=json.dumps(dict(id=None, result=None, error=message)),
65 return Response(
66 status=code,
66 body=json.dumps(dict(id=retid, result=None, error=message)),
67 content_type='application/json')
67 status=code,
68 return resp
68 content_type='application/json'
69 )
69
70
70
71
71 class JSONRPCController(WSGIController):
72 class JSONRPCController(WSGIController):
@@ -94,9 +95,11 b' class JSONRPCController(WSGIController):'
94 Parse the request body as JSON, look up the method on the
95 Parse the request body as JSON, look up the method on the
95 controller and if it exists, dispatch to it.
96 controller and if it exists, dispatch to it.
96 """
97 """
98 self._req_id = None
97 if 'CONTENT_LENGTH' not in environ:
99 if 'CONTENT_LENGTH' not in environ:
98 log.debug("No Content-Length")
100 log.debug("No Content-Length")
99 return jsonrpc_error(message="No Content-Length in request")
101 return jsonrpc_error(retid=self._req_id,
102 message="No Content-Length in request")
100 else:
103 else:
101 length = environ['CONTENT_LENGTH'] or 0
104 length = environ['CONTENT_LENGTH'] or 0
102 length = int(environ['CONTENT_LENGTH'])
105 length = int(environ['CONTENT_LENGTH'])
@@ -104,7 +107,8 b' class JSONRPCController(WSGIController):'
104
107
105 if length == 0:
108 if length == 0:
106 log.debug("Content-Length is 0")
109 log.debug("Content-Length is 0")
107 return jsonrpc_error(message="Content-Length is 0")
110 return jsonrpc_error(retid=self._req_id,
111 message="Content-Length is 0")
108
112
109 raw_body = environ['wsgi.input'].read(length)
113 raw_body = environ['wsgi.input'].read(length)
110
114
@@ -112,7 +116,8 b' class JSONRPCController(WSGIController):'
112 json_body = json.loads(urllib.unquote_plus(raw_body))
116 json_body = json.loads(urllib.unquote_plus(raw_body))
113 except ValueError, e:
117 except ValueError, e:
114 # catch JSON errors Here
118 # catch JSON errors Here
115 return jsonrpc_error(message="JSON parse error ERR:%s RAW:%r" \
119 return jsonrpc_error(retid=self._req_id,
120 message="JSON parse error ERR:%s RAW:%r" \
116 % (e, urllib.unquote_plus(raw_body)))
121 % (e, urllib.unquote_plus(raw_body)))
117
122
118 # check AUTH based on API KEY
123 # check AUTH based on API KEY
@@ -126,22 +131,26 b' class JSONRPCController(WSGIController):'
126 self._request_params)
131 self._request_params)
127 )
132 )
128 except KeyError, e:
133 except KeyError, e:
129 return jsonrpc_error(message='Incorrect JSON query missing %s' % e)
134 return jsonrpc_error(retid=self._req_id,
135 message='Incorrect JSON query missing %s' % e)
130
136
131 # check if we can find this session using api_key
137 # check if we can find this session using api_key
132 try:
138 try:
133 u = User.get_by_api_key(self._req_api_key)
139 u = User.get_by_api_key(self._req_api_key)
134 if u is None:
140 if u is None:
135 return jsonrpc_error(message='Invalid API KEY')
141 return jsonrpc_error(retid=self._req_id,
142 message='Invalid API KEY')
136 auth_u = AuthUser(u.user_id, self._req_api_key)
143 auth_u = AuthUser(u.user_id, self._req_api_key)
137 except Exception, e:
144 except Exception, e:
138 return jsonrpc_error(message='Invalid API KEY')
145 return jsonrpc_error(retid=self._req_id,
146 message='Invalid API KEY')
139
147
140 self._error = None
148 self._error = None
141 try:
149 try:
142 self._func = self._find_method()
150 self._func = self._find_method()
143 except AttributeError, e:
151 except AttributeError, e:
144 return jsonrpc_error(message=str(e))
152 return jsonrpc_error(retid=self._req_id,
153 message=str(e))
145
154
146 # now that we have a method, add self._req_params to
155 # now that we have a method, add self._req_params to
147 # self.kargs and dispatch control to WGIController
156 # self.kargs and dispatch control to WGIController
@@ -164,9 +173,12 b' class JSONRPCController(WSGIController):'
164 USER_SESSION_ATTR = 'apiuser'
173 USER_SESSION_ATTR = 'apiuser'
165
174
166 if USER_SESSION_ATTR not in arglist:
175 if USER_SESSION_ATTR not in arglist:
167 return jsonrpc_error(message='This method [%s] does not support '
176 return jsonrpc_error(
168 'authentication (missing %s param)' %
177 retid=self._req_id,
169 (self._func.__name__, USER_SESSION_ATTR))
178 message='This method [%s] does not support '
179 'authentication (missing %s param)' % (
180 self._func.__name__, USER_SESSION_ATTR)
181 )
170
182
171 # get our arglist and check if we provided them as args
183 # get our arglist and check if we provided them as args
172 for arg, default in func_kwargs.iteritems():
184 for arg, default in func_kwargs.iteritems():
@@ -179,6 +191,7 b' class JSONRPCController(WSGIController):'
179 # NotImplementedType (default_empty)
191 # NotImplementedType (default_empty)
180 if (default == default_empty and arg not in self._request_params):
192 if (default == default_empty and arg not in self._request_params):
181 return jsonrpc_error(
193 return jsonrpc_error(
194 retid=self._req_id,
182 message=(
195 message=(
183 'Missing non optional `%s` arg in JSON DATA' % arg
196 'Missing non optional `%s` arg in JSON DATA' % arg
184 )
197 )
@@ -156,14 +156,25 b' class ApiController(JSONRPCController):'
156 password = PasswordGenerator().gen_password(length=8)
156 password = PasswordGenerator().gen_password(length=8)
157
157
158 try:
158 try:
159 usr = UserModel().create_or_update(
159 user = UserModel().create_or_update(
160 username, password, email, firstname,
160 username, password, email, firstname,
161 lastname, active, admin, ldap_dn
161 lastname, active, admin, ldap_dn
162 )
162 )
163 Session.commit()
163 Session.commit()
164 return dict(
164 return dict(
165 id=usr.user_id,
165 id=user.user_id,
166 msg='created new user %s' % username
166 msg='created new user %s' % username,
167 user=dict(
168 id=user.user_id,
169 username=user.username,
170 firstname=user.name,
171 lastname=user.lastname,
172 email=user.email,
173 active=user.active,
174 admin=user.admin,
175 ldap_dn=user.ldap_dn,
176 last_login=user.last_login,
177 )
167 )
178 )
168 except Exception:
179 except Exception:
169 log.error(traceback.format_exc())
180 log.error(traceback.format_exc())
@@ -185,8 +196,9 b' class ApiController(JSONRPCController):'
185 :param admin:
196 :param admin:
186 :param ldap_dn:
197 :param ldap_dn:
187 """
198 """
188 if not UserModel().get_user(userid):
199 usr = UserModel().get_user(userid)
189 raise JSONRPCError("user %s does not exist" % username)
200 if not usr:
201 raise JSONRPCError("user ID:%s does not exist" % userid)
190
202
191 try:
203 try:
192 usr = UserModel().create_or_update(
204 usr = UserModel().create_or_update(
@@ -196,11 +208,34 b' class ApiController(JSONRPCController):'
196 Session.commit()
208 Session.commit()
197 return dict(
209 return dict(
198 id=usr.user_id,
210 id=usr.user_id,
199 msg='updated user %s' % username
211 msg='updated user ID:%s %s' % (usr.user_id, usr.username)
200 )
212 )
201 except Exception:
213 except Exception:
202 log.error(traceback.format_exc())
214 log.error(traceback.format_exc())
203 raise JSONRPCError('failed to update user %s' % username)
215 raise JSONRPCError('failed to update user %s' % userid)
216
217 @HasPermissionAllDecorator('hg.admin')
218 def delete_user(self, apiuser, userid):
219 """"
220 Deletes an user
221
222 :param apiuser:
223 """
224 usr = UserModel().get_user(userid)
225 if not usr:
226 raise JSONRPCError("user ID:%s does not exist" % userid)
227
228 try:
229 UserModel().delete(userid)
230 Session.commit()
231 return dict(
232 id=usr.user_id,
233 msg='deleted user ID:%s %s' % (usr.user_id, usr.username)
234 )
235 except Exception:
236 log.error(traceback.format_exc())
237 raise JSONRPCError('failed to delete ID:%s %s' % (usr.user_id,
238 usr.username))
204
239
205 @HasPermissionAllDecorator('hg.admin')
240 @HasPermissionAllDecorator('hg.admin')
206 def get_users_group(self, apiuser, group_name):
241 def get_users_group(self, apiuser, group_name):
@@ -354,7 +389,7 b' class ApiController(JSONRPCController):'
354
389
355 repo = RepoModel().get_repo(repoid)
390 repo = RepoModel().get_repo(repoid)
356 if repo is None:
391 if repo is None:
357 raise JSONRPCError('unknown repository %s' % repo)
392 raise JSONRPCError('unknown repository "%s"' % (repo or repoid))
358
393
359 members = []
394 members = []
360 for user in repo.repo_to_perm:
395 for user in repo.repo_to_perm:
@@ -486,14 +521,22 b' class ApiController(JSONRPCController):'
486 repo_type=repo_type,
521 repo_type=repo_type,
487 repo_group=group.group_id if group else None,
522 repo_group=group.group_id if group else None,
488 clone_uri=clone_uri
523 clone_uri=clone_uri
489 ),
524 )
490 owner
491 )
525 )
492 Session.commit()
526 Session.commit()
493
527
494 return dict(
528 return dict(
495 id=repo.repo_id,
529 id=repo.repo_id,
496 msg="Created new repository %s" % repo.repo_name
530 msg="Created new repository %s" % (repo.repo_name),
531 repo=dict(
532 id=repo.repo_id,
533 repo_name=repo.repo_name,
534 type=repo.repo_type,
535 clone_uri=repo.clone_uri,
536 private=repo.private,
537 created_on=repo.created_on,
538 description=repo.description,
539 )
497 )
540 )
498
541
499 except Exception:
542 except Exception:
@@ -501,6 +544,15 b' class ApiController(JSONRPCController):'
501 raise JSONRPCError('failed to create repository %s' % repo_name)
544 raise JSONRPCError('failed to create repository %s' % repo_name)
502
545
503 @HasPermissionAnyDecorator('hg.admin')
546 @HasPermissionAnyDecorator('hg.admin')
547 def fork_repo(self, apiuser, repoid):
548 repo = RepoModel().get_repo(repoid)
549 if repo is None:
550 raise JSONRPCError('unknown repository "%s"' % (repo or repoid))
551
552 RepoModel().create_fork(form_data, cur_user)
553
554
555 @HasPermissionAnyDecorator('hg.admin')
504 def delete_repo(self, apiuser, repo_name):
556 def delete_repo(self, apiuser, repo_name):
505 """
557 """
506 Deletes a given repository
558 Deletes a given repository
@@ -26,7 +26,6 b''
26 import logging
26 import logging
27 import traceback
27 import traceback
28
28
29 from mercurial import graphmod
30 from pylons import request, url, session, tmpl_context as c
29 from pylons import request, url, session, tmpl_context as c
31 from pylons.controllers.util import redirect
30 from pylons.controllers.util import redirect
32 from pylons.i18n.translation import _
31 from pylons.i18n.translation import _
@@ -36,9 +35,8 b' from rhodecode.lib.auth import LoginRequ'
36 from rhodecode.lib.base import BaseRepoController, render
35 from rhodecode.lib.base import BaseRepoController, render
37 from rhodecode.lib.helpers import RepoPage
36 from rhodecode.lib.helpers import RepoPage
38 from rhodecode.lib.compat import json
37 from rhodecode.lib.compat import json
39
38 from rhodecode.lib.graphmod import _colored, _dagwalker
40 from rhodecode.lib.vcs.exceptions import RepositoryError, ChangesetDoesNotExistError
39 from rhodecode.lib.vcs.exceptions import RepositoryError, ChangesetDoesNotExistError
41 from rhodecode.model.db import Repository
42
40
43 log = logging.getLogger(__name__)
41 log = logging.getLogger(__name__)
44
42
@@ -118,18 +116,9 b' class ChangelogController(BaseRepoContro'
118 data = []
116 data = []
119 revs = [x.revision for x in collection]
117 revs = [x.revision for x in collection]
120
118
121 if repo.alias == 'git':
119 dag = _dagwalker(repo, revs, repo.alias)
122 for _ in revs:
120 dag = _colored(dag)
123 vtx = [0, 1]
121 for (id, type, ctx, vtx, edges) in dag:
124 edges = [[0, 0, 1]]
122 data.append(['', vtx, edges])
125 data.append(['', vtx, edges])
126
127 elif repo.alias == 'hg':
128 dag = graphmod.dagwalker(repo._repo, revs)
129 c.dag = graphmod.colored(dag, repo._repo)
130 for (id, type, ctx, vtx, edges) in c.dag:
131 if type != graphmod.CHANGESET:
132 continue
133 data.append(['', vtx, edges])
134
123
135 c.jsdata = json.dumps(data)
124 c.jsdata = json.dumps(data)
@@ -40,7 +40,7 b' from rhodecode.lib.vcs.nodes import File'
40 import rhodecode.lib.helpers as h
40 import rhodecode.lib.helpers as h
41 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
41 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
42 from rhodecode.lib.base import BaseRepoController, render
42 from rhodecode.lib.base import BaseRepoController, render
43 from rhodecode.lib.utils import EmptyChangeset
43 from rhodecode.lib.utils import EmptyChangeset, action_logger
44 from rhodecode.lib.compat import OrderedDict
44 from rhodecode.lib.compat import OrderedDict
45 from rhodecode.lib import diffs
45 from rhodecode.lib import diffs
46 from rhodecode.model.db import ChangesetComment, ChangesetStatus
46 from rhodecode.model.db import ChangesetComment, ChangesetStatus
@@ -48,6 +48,7 b' from rhodecode.model.comment import Chan'
48 from rhodecode.model.changeset_status import ChangesetStatusModel
48 from rhodecode.model.changeset_status import ChangesetStatusModel
49 from rhodecode.model.meta import Session
49 from rhodecode.model.meta import Session
50 from rhodecode.lib.diffs import wrapped_diff
50 from rhodecode.lib.diffs import wrapped_diff
51 from rhodecode.model.repo import RepoModel
51
52
52 log = logging.getLogger(__name__)
53 log = logging.getLogger(__name__)
53
54
@@ -166,6 +167,9 b' class ChangesetController(BaseRepoContro'
166 def __before__(self):
167 def __before__(self):
167 super(ChangesetController, self).__before__()
168 super(ChangesetController, self).__before__()
168 c.affected_files_cut_off = 60
169 c.affected_files_cut_off = 60
170 repo_model = RepoModel()
171 c.users_array = repo_model.get_users_js()
172 c.users_groups_array = repo_model.get_users_groups_js()
169
173
170 def index(self, revision):
174 def index(self, revision):
171
175
@@ -391,8 +395,12 b' class ChangesetController(BaseRepoContro'
391 c.rhodecode_user.user_id,
395 c.rhodecode_user.user_id,
392 comm,
396 comm,
393 )
397 )
398 action_logger(self.rhodecode_user,
399 'user_commented_revision:%s' % revision,
400 c.rhodecode_db_repo, self.ip_addr, self.sa)
394
401
395 Session.commit()
402 Session.commit()
403
396 if not request.environ.get('HTTP_X_PARTIAL_XHR'):
404 if not request.environ.get('HTTP_X_PARTIAL_XHR'):
397 return redirect(h.url('changeset_home', repo_name=repo_name,
405 return redirect(h.url('changeset_home', repo_name=repo_name,
398 revision=revision))
406 revision=revision))
@@ -28,11 +28,12 b' import logging'
28 from pylons import url, response, tmpl_context as c
28 from pylons import url, response, tmpl_context as c
29 from pylons.i18n.translation import _
29 from pylons.i18n.translation import _
30
30
31 from rhodecode.lib.utils2 import safe_unicode
31 from webhelpers.feedgenerator import Atom1Feed, Rss201rev2Feed
32
33 from rhodecode.lib import helpers as h
32 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
34 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
33 from rhodecode.lib.base import BaseRepoController
35 from rhodecode.lib.base import BaseRepoController
34
36 from rhodecode.lib.diffs import DiffProcessor
35 from webhelpers.feedgenerator import Atom1Feed, Rss201rev2Feed
36
37
37 log = logging.getLogger(__name__)
38 log = logging.getLogger(__name__)
38
39
@@ -49,31 +50,36 b' class FeedController(BaseRepoController)'
49 self.title = self.title = _('%s %s feed') % (c.rhodecode_name, '%s')
50 self.title = self.title = _('%s %s feed') % (c.rhodecode_name, '%s')
50 self.language = 'en-us'
51 self.language = 'en-us'
51 self.ttl = "5"
52 self.ttl = "5"
52 self.feed_nr = 10
53 self.feed_nr = 20
53
54
54 def _get_title(self, cs):
55 def _get_title(self, cs):
55 return "R%s:%s - %s" % (
56 return "%s" % (
56 cs.revision, cs.short_id, cs.message
57 h.shorter(cs.message, 160)
57 )
58 )
58
59
59 def __changes(self, cs):
60 def __changes(self, cs):
60 changes = []
61 changes = []
61
62
62 a = [safe_unicode(n.path) for n in cs.added]
63 diffprocessor = DiffProcessor(cs.diff())
63 if a:
64 stats = diffprocessor.prepare(inline_diff=False)
64 changes.append('\nA ' + '\nA '.join(a))
65 for st in stats:
65
66 st.update({'added': st['stats'][0],
66 m = [safe_unicode(n.path) for n in cs.changed]
67 'removed': st['stats'][1]})
67 if m:
68 changes.append('\n %(operation)s %(filename)s '
68 changes.append('\nM ' + '\nM '.join(m))
69 '(%(added)s lines added, %(removed)s lines removed)'
70 % st)
71 return changes
69
72
70 d = [safe_unicode(n.path) for n in cs.removed]
73 def __get_desc(self, cs):
71 if d:
74 desc_msg = []
72 changes.append('\nD ' + '\nD '.join(d))
75 desc_msg.append('%s %s %s:<br/>' % (cs.author, _('commited on'),
73
76 cs.date))
74 changes.append('</pre>')
77 desc_msg.append('<pre>')
75
78 desc_msg.append(cs.message)
76 return ''.join(changes)
79 desc_msg.append('\n')
80 desc_msg.extend(self.__changes(cs))
81 desc_msg.append('</pre>')
82 return desc_msg
77
83
78 def atom(self, repo_name):
84 def atom(self, repo_name):
79 """Produce an atom-1.0 feed via feedgenerator module"""
85 """Produce an atom-1.0 feed via feedgenerator module"""
@@ -87,15 +93,13 b' class FeedController(BaseRepoController)'
87 )
93 )
88
94
89 for cs in reversed(list(c.rhodecode_repo[-self.feed_nr:])):
95 for cs in reversed(list(c.rhodecode_repo[-self.feed_nr:])):
90 desc_msg = []
91 desc_msg.append('%s - %s<br/><pre>' % (cs.author, cs.date))
92 desc_msg.append(self.__changes(cs))
93
94 feed.add_item(title=self._get_title(cs),
96 feed.add_item(title=self._get_title(cs),
95 link=url('changeset_home', repo_name=repo_name,
97 link=url('changeset_home', repo_name=repo_name,
96 revision=cs.raw_id, qualified=True),
98 revision=cs.raw_id, qualified=True),
97 author_name=cs.author,
99 author_name=cs.author,
98 description=''.join(desc_msg))
100 description=''.join(self.__get_desc(cs)),
101 pubdate=cs.date,
102 )
99
103
100 response.content_type = feed.mime_type
104 response.content_type = feed.mime_type
101 return feed.writeString('utf-8')
105 return feed.writeString('utf-8')
@@ -112,15 +116,12 b' class FeedController(BaseRepoController)'
112 )
116 )
113
117
114 for cs in reversed(list(c.rhodecode_repo[-self.feed_nr:])):
118 for cs in reversed(list(c.rhodecode_repo[-self.feed_nr:])):
115 desc_msg = []
116 desc_msg.append('%s - %s<br/><pre>' % (cs.author, cs.date))
117 desc_msg.append(self.__changes(cs))
118
119 feed.add_item(title=self._get_title(cs),
119 feed.add_item(title=self._get_title(cs),
120 link=url('changeset_home', repo_name=repo_name,
120 link=url('changeset_home', repo_name=repo_name,
121 revision=cs.raw_id, qualified=True),
121 revision=cs.raw_id, qualified=True),
122 author_name=cs.author,
122 author_name=cs.author,
123 description=''.join(desc_msg),
123 description=''.join(self.__get_desc(cs)),
124 pubdate=cs.date,
124 )
125 )
125
126
126 response.content_type = feed.mime_type
127 response.content_type = feed.mime_type
@@ -192,9 +192,8 b' class JournalController(BaseController):'
192 ttl=self.ttl)
192 ttl=self.ttl)
193
193
194 for entry in journal[:self.feed_nr]:
194 for entry in journal[:self.feed_nr]:
195 #tmpl = h.action_parser(entry)[0]
195 action, action_extra, ico = h.action_parser(entry, feed=True)
196 action, action_extra = h.action_parser(entry, feed=True)
196 title = "%s - %s %s" % (entry.user.short_contact, action(),
197 title = "%s - %s %s" % (entry.user.short_contact, action,
198 entry.repository.repo_name)
197 entry.repository.repo_name)
199 desc = action_extra()
198 desc = action_extra()
200 feed.add_item(title=title,
199 feed.add_item(title=title,
@@ -226,9 +225,8 b' class JournalController(BaseController):'
226 ttl=self.ttl)
225 ttl=self.ttl)
227
226
228 for entry in journal[:self.feed_nr]:
227 for entry in journal[:self.feed_nr]:
229 #tmpl = h.action_parser(entry)[0]
228 action, action_extra, ico = h.action_parser(entry, feed=True)
230 action, action_extra = h.action_parser(entry, feed=True)
229 title = "%s - %s %s" % (entry.user.short_contact, action(),
231 title = "%s - %s %s" % (entry.user.short_contact, action,
232 entry.repository.repo_name)
230 entry.repository.repo_name)
233 desc = action_extra()
231 desc = action_extra()
234 feed.add_item(title=title,
232 feed.add_item(title=title,
@@ -104,7 +104,7 b' class SettingsController(BaseRepoControl'
104 category='success')
104 category='success')
105 changed_name = form_result['repo_name_full']
105 changed_name = form_result['repo_name_full']
106 action_logger(self.rhodecode_user, 'user_updated_repo',
106 action_logger(self.rhodecode_user, 'user_updated_repo',
107 changed_name, '', self.sa)
107 changed_name, self.ip_addr, self.sa)
108 Session.commit()
108 Session.commit()
109 except formencode.Invalid, errors:
109 except formencode.Invalid, errors:
110 c.repo_info = repo_model.get_by_repo_name(repo_name)
110 c.repo_info = repo_model.get_by_repo_name(repo_name)
@@ -145,7 +145,7 b' class SettingsController(BaseRepoControl'
145 return redirect(url('home'))
145 return redirect(url('home'))
146 try:
146 try:
147 action_logger(self.rhodecode_user, 'user_deleted_repo',
147 action_logger(self.rhodecode_user, 'user_deleted_repo',
148 repo_name, '', self.sa)
148 repo_name, self.ip_addr, self.sa)
149 repo_model.delete(repo)
149 repo_model.delete(repo)
150 invalidate_cache('get_repo_cached_%s' % repo_name)
150 invalidate_cache('get_repo_cached_%s' % repo_name)
151 h.flash(_('deleted repository %s') % repo_name, category='success')
151 h.flash(_('deleted repository %s') % repo_name, category='success')
@@ -7,7 +7,7 b' msgid ""'
7 msgstr ""
7 msgstr ""
8 "Project-Id-Version: rhodecode 0.1\n"
8 "Project-Id-Version: rhodecode 0.1\n"
9 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
9 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
10 "POT-Creation-Date: 2012-05-27 17:41+0200\n"
10 "POT-Creation-Date: 2012-06-03 01:06+0200\n"
11 "PO-Revision-Date: 2011-02-25 19:13+0100\n"
11 "PO-Revision-Date: 2011-02-25 19:13+0100\n"
12 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13 "Language-Team: en <LL@li.org>\n"
13 "Language-Team: en <LL@li.org>\n"
@@ -17,25 +17,25 b' msgstr ""'
17 "Content-Transfer-Encoding: 8bit\n"
17 "Content-Transfer-Encoding: 8bit\n"
18 "Generated-By: Babel 0.9.6\n"
18 "Generated-By: Babel 0.9.6\n"
19
19
20 #: rhodecode/controllers/changelog.py:96
20 #: rhodecode/controllers/changelog.py:95
21 msgid "All Branches"
21 msgid "All Branches"
22 msgstr ""
22 msgstr ""
23
23
24 #: rhodecode/controllers/changeset.py:79
24 #: rhodecode/controllers/changeset.py:80
25 msgid "show white space"
25 msgid "show white space"
26 msgstr ""
26 msgstr ""
27
27
28 #: rhodecode/controllers/changeset.py:86 rhodecode/controllers/changeset.py:93
28 #: rhodecode/controllers/changeset.py:87 rhodecode/controllers/changeset.py:94
29 msgid "ignore white space"
29 msgid "ignore white space"
30 msgstr ""
30 msgstr ""
31
31
32 #: rhodecode/controllers/changeset.py:153
32 #: rhodecode/controllers/changeset.py:154
33 #, python-format
33 #, python-format
34 msgid "%s line context"
34 msgid "%s line context"
35 msgstr ""
35 msgstr ""
36
36
37 #: rhodecode/controllers/changeset.py:320
37 #: rhodecode/controllers/changeset.py:324
38 #: rhodecode/controllers/changeset.py:335 rhodecode/lib/diffs.py:62
38 #: rhodecode/controllers/changeset.py:339 rhodecode/lib/diffs.py:62
39 msgid "binary file"
39 msgid "binary file"
40 msgstr ""
40 msgstr ""
41
41
@@ -181,7 +181,7 b' msgstr ""'
181 msgid "%s public journal %s feed"
181 msgid "%s public journal %s feed"
182 msgstr ""
182 msgstr ""
183
183
184 #: rhodecode/controllers/journal.py:190 rhodecode/controllers/journal.py:224
184 #: rhodecode/controllers/journal.py:190 rhodecode/controllers/journal.py:223
185 #: rhodecode/templates/admin/repos/repo_edit.html:177
185 #: rhodecode/templates/admin/repos/repo_edit.html:177
186 #: rhodecode/templates/base/base.html:307
186 #: rhodecode/templates/base/base.html:307
187 #: rhodecode/templates/base/base.html:309
187 #: rhodecode/templates/base/base.html:309
@@ -216,19 +216,19 b' msgid "An error occurred during this sea'
216 msgstr ""
216 msgstr ""
217
217
218 #: rhodecode/controllers/settings.py:103
218 #: rhodecode/controllers/settings.py:103
219 #: rhodecode/controllers/admin/repos.py:211
219 #: rhodecode/controllers/admin/repos.py:213
220 #, python-format
220 #, python-format
221 msgid "Repository %s updated successfully"
221 msgid "Repository %s updated successfully"
222 msgstr ""
222 msgstr ""
223
223
224 #: rhodecode/controllers/settings.py:121
224 #: rhodecode/controllers/settings.py:121
225 #: rhodecode/controllers/admin/repos.py:229
225 #: rhodecode/controllers/admin/repos.py:231
226 #, python-format
226 #, python-format
227 msgid "error occurred during update of repository %s"
227 msgid "error occurred during update of repository %s"
228 msgstr ""
228 msgstr ""
229
229
230 #: rhodecode/controllers/settings.py:139
230 #: rhodecode/controllers/settings.py:139
231 #: rhodecode/controllers/admin/repos.py:247
231 #: rhodecode/controllers/admin/repos.py:249
232 #, python-format
232 #, python-format
233 msgid ""
233 msgid ""
234 "%s repository is not mapped to db perhaps it was moved or renamed from "
234 "%s repository is not mapped to db perhaps it was moved or renamed from "
@@ -237,14 +237,14 b' msgid ""'
237 msgstr ""
237 msgstr ""
238
238
239 #: rhodecode/controllers/settings.py:151
239 #: rhodecode/controllers/settings.py:151
240 #: rhodecode/controllers/admin/repos.py:259
240 #: rhodecode/controllers/admin/repos.py:261
241 #, python-format
241 #, python-format
242 msgid "deleted repository %s"
242 msgid "deleted repository %s"
243 msgstr ""
243 msgstr ""
244
244
245 #: rhodecode/controllers/settings.py:155
245 #: rhodecode/controllers/settings.py:155
246 #: rhodecode/controllers/admin/repos.py:269
246 #: rhodecode/controllers/admin/repos.py:271
247 #: rhodecode/controllers/admin/repos.py:275
247 #: rhodecode/controllers/admin/repos.py:277
248 #, python-format
248 #, python-format
249 msgid "An error occurred during deletion of %s"
249 msgid "An error occurred during deletion of %s"
250 msgstr ""
250 msgstr ""
@@ -393,62 +393,62 b' msgstr ""'
393 msgid "created repository %s"
393 msgid "created repository %s"
394 msgstr ""
394 msgstr ""
395
395
396 #: rhodecode/controllers/admin/repos.py:177
396 #: rhodecode/controllers/admin/repos.py:179
397 #, python-format
397 #, python-format
398 msgid "error occurred during creation of repository %s"
398 msgid "error occurred during creation of repository %s"
399 msgstr ""
399 msgstr ""
400
400
401 #: rhodecode/controllers/admin/repos.py:264
401 #: rhodecode/controllers/admin/repos.py:266
402 #, python-format
402 #, python-format
403 msgid "Cannot delete %s it still contains attached forks"
403 msgid "Cannot delete %s it still contains attached forks"
404 msgstr ""
404 msgstr ""
405
405
406 #: rhodecode/controllers/admin/repos.py:293
406 #: rhodecode/controllers/admin/repos.py:295
407 msgid "An error occurred during deletion of repository user"
407 msgid "An error occurred during deletion of repository user"
408 msgstr ""
408 msgstr ""
409
409
410 #: rhodecode/controllers/admin/repos.py:312
410 #: rhodecode/controllers/admin/repos.py:314
411 msgid "An error occurred during deletion of repository users groups"
411 msgid "An error occurred during deletion of repository users groups"
412 msgstr ""
412 msgstr ""
413
413
414 #: rhodecode/controllers/admin/repos.py:329
414 #: rhodecode/controllers/admin/repos.py:331
415 msgid "An error occurred during deletion of repository stats"
415 msgid "An error occurred during deletion of repository stats"
416 msgstr ""
416 msgstr ""
417
417
418 #: rhodecode/controllers/admin/repos.py:345
418 #: rhodecode/controllers/admin/repos.py:347
419 msgid "An error occurred during cache invalidation"
419 msgid "An error occurred during cache invalidation"
420 msgstr ""
420 msgstr ""
421
421
422 #: rhodecode/controllers/admin/repos.py:365
422 #: rhodecode/controllers/admin/repos.py:367
423 msgid "Updated repository visibility in public journal"
423 msgid "Updated repository visibility in public journal"
424 msgstr ""
424 msgstr ""
425
425
426 #: rhodecode/controllers/admin/repos.py:369
426 #: rhodecode/controllers/admin/repos.py:371
427 msgid "An error occurred during setting this repository in public journal"
427 msgid "An error occurred during setting this repository in public journal"
428 msgstr ""
428 msgstr ""
429
429
430 #: rhodecode/controllers/admin/repos.py:374 rhodecode/model/forms.py:54
430 #: rhodecode/controllers/admin/repos.py:376 rhodecode/model/forms.py:54
431 msgid "Token mismatch"
431 msgid "Token mismatch"
432 msgstr ""
432 msgstr ""
433
433
434 #: rhodecode/controllers/admin/repos.py:387
435 msgid "Pulled from remote location"
436 msgstr ""
437
438 #: rhodecode/controllers/admin/repos.py:389
434 #: rhodecode/controllers/admin/repos.py:389
435 msgid "Pulled from remote location"
436 msgstr ""
437
438 #: rhodecode/controllers/admin/repos.py:391
439 msgid "An error occurred during pull from remote location"
439 msgid "An error occurred during pull from remote location"
440 msgstr ""
440 msgstr ""
441
441
442 #: rhodecode/controllers/admin/repos.py:405
443 msgid "Nothing"
444 msgstr ""
445
446 #: rhodecode/controllers/admin/repos.py:407
442 #: rhodecode/controllers/admin/repos.py:407
443 msgid "Nothing"
444 msgstr ""
445
446 #: rhodecode/controllers/admin/repos.py:409
447 #, python-format
447 #, python-format
448 msgid "Marked repo %s as fork of %s"
448 msgid "Marked repo %s as fork of %s"
449 msgstr ""
449 msgstr ""
450
450
451 #: rhodecode/controllers/admin/repos.py:411
451 #: rhodecode/controllers/admin/repos.py:413
452 msgid "An error occurred during this operation"
452 msgid "An error occurred during this operation"
453 msgstr ""
453 msgstr ""
454
454
@@ -542,77 +542,77 b' msgstr ""'
542 msgid "You can't edit this user since it's crucial for entire application"
542 msgid "You can't edit this user since it's crucial for entire application"
543 msgstr ""
543 msgstr ""
544
544
545 #: rhodecode/controllers/admin/settings.py:365
545 #: rhodecode/controllers/admin/settings.py:367
546 msgid "Your account was updated successfully"
546 msgid "Your account was updated successfully"
547 msgstr ""
547 msgstr ""
548
548
549 #: rhodecode/controllers/admin/settings.py:384
549 #: rhodecode/controllers/admin/settings.py:387
550 #: rhodecode/controllers/admin/users.py:132
550 #: rhodecode/controllers/admin/users.py:138
551 #, python-format
551 #, python-format
552 msgid "error occurred during update of user %s"
552 msgid "error occurred during update of user %s"
553 msgstr ""
553 msgstr ""
554
554
555 #: rhodecode/controllers/admin/users.py:79
555 #: rhodecode/controllers/admin/users.py:83
556 #, python-format
556 #, python-format
557 msgid "created user %s"
557 msgid "created user %s"
558 msgstr ""
558 msgstr ""
559
559
560 #: rhodecode/controllers/admin/users.py:92
560 #: rhodecode/controllers/admin/users.py:95
561 #, python-format
561 #, python-format
562 msgid "error occurred during creation of user %s"
562 msgid "error occurred during creation of user %s"
563 msgstr ""
563 msgstr ""
564
564
565 #: rhodecode/controllers/admin/users.py:118
565 #: rhodecode/controllers/admin/users.py:124
566 msgid "User updated successfully"
566 msgid "User updated successfully"
567 msgstr ""
567 msgstr ""
568
568
569 #: rhodecode/controllers/admin/users.py:149
569 #: rhodecode/controllers/admin/users.py:155
570 msgid "successfully deleted user"
570 msgid "successfully deleted user"
571 msgstr ""
571 msgstr ""
572
572
573 #: rhodecode/controllers/admin/users.py:154
573 #: rhodecode/controllers/admin/users.py:160
574 msgid "An error occurred during deletion of user"
574 msgid "An error occurred during deletion of user"
575 msgstr ""
575 msgstr ""
576
576
577 #: rhodecode/controllers/admin/users.py:169
577 #: rhodecode/controllers/admin/users.py:175
578 msgid "You can't edit this user"
578 msgid "You can't edit this user"
579 msgstr ""
579 msgstr ""
580
580
581 #: rhodecode/controllers/admin/users.py:199
581 #: rhodecode/controllers/admin/users.py:205
582 #: rhodecode/controllers/admin/users_groups.py:215
582 #: rhodecode/controllers/admin/users_groups.py:219
583 msgid "Granted 'repository create' permission to user"
583 msgid "Granted 'repository create' permission to user"
584 msgstr ""
584 msgstr ""
585
585
586 #: rhodecode/controllers/admin/users.py:208
586 #: rhodecode/controllers/admin/users.py:214
587 #: rhodecode/controllers/admin/users_groups.py:225
587 #: rhodecode/controllers/admin/users_groups.py:229
588 msgid "Revoked 'repository create' permission to user"
588 msgid "Revoked 'repository create' permission to user"
589 msgstr ""
589 msgstr ""
590
590
591 #: rhodecode/controllers/admin/users_groups.py:79
591 #: rhodecode/controllers/admin/users_groups.py:84
592 #, python-format
592 #, python-format
593 msgid "created users group %s"
593 msgid "created users group %s"
594 msgstr ""
594 msgstr ""
595
595
596 #: rhodecode/controllers/admin/users_groups.py:92
596 #: rhodecode/controllers/admin/users_groups.py:95
597 #, python-format
597 #, python-format
598 msgid "error occurred during creation of users group %s"
598 msgid "error occurred during creation of users group %s"
599 msgstr ""
599 msgstr ""
600
600
601 #: rhodecode/controllers/admin/users_groups.py:128
601 #: rhodecode/controllers/admin/users_groups.py:135
602 #, python-format
602 #, python-format
603 msgid "updated users group %s"
603 msgid "updated users group %s"
604 msgstr ""
604 msgstr ""
605
605
606 #: rhodecode/controllers/admin/users_groups.py:148
606 #: rhodecode/controllers/admin/users_groups.py:152
607 #, python-format
607 #, python-format
608 msgid "error occurred during update of users group %s"
608 msgid "error occurred during update of users group %s"
609 msgstr ""
609 msgstr ""
610
610
611 #: rhodecode/controllers/admin/users_groups.py:165
611 #: rhodecode/controllers/admin/users_groups.py:169
612 msgid "successfully deleted users group"
612 msgid "successfully deleted users group"
613 msgstr ""
613 msgstr ""
614
614
615 #: rhodecode/controllers/admin/users_groups.py:170
615 #: rhodecode/controllers/admin/users_groups.py:174
616 msgid "An error occurred during deletion of users group"
616 msgid "An error occurred during deletion of users group"
617 msgstr ""
617 msgstr ""
618
618
@@ -670,60 +670,80 b' msgstr ""'
670 msgid "fork name "
670 msgid "fork name "
671 msgstr ""
671 msgstr ""
672
672
673 #: rhodecode/lib/helpers.py:540
673 #: rhodecode/lib/helpers.py:550
674 msgid "[deleted] repository"
674 msgid "[deleted] repository"
675 msgstr ""
675 msgstr ""
676
676
677 #: rhodecode/lib/helpers.py:541 rhodecode/lib/helpers.py:546
677 #: rhodecode/lib/helpers.py:552 rhodecode/lib/helpers.py:562
678 msgid "[created] repository"
678 msgid "[created] repository"
679 msgstr ""
679 msgstr ""
680
680
681 #: rhodecode/lib/helpers.py:542
682 msgid "[created] repository as fork"
683 msgstr ""
684
685 #: rhodecode/lib/helpers.py:543 rhodecode/lib/helpers.py:547
686 msgid "[forked] repository"
687 msgstr ""
688
689 #: rhodecode/lib/helpers.py:544 rhodecode/lib/helpers.py:548
690 msgid "[updated] repository"
691 msgstr ""
692
693 #: rhodecode/lib/helpers.py:545
694 msgid "[delete] repository"
695 msgstr ""
696
697 #: rhodecode/lib/helpers.py:549
698 msgid "[pushed] into"
699 msgstr ""
700
701 #: rhodecode/lib/helpers.py:550
702 msgid "[committed via RhodeCode] into"
703 msgstr ""
704
705 #: rhodecode/lib/helpers.py:551
706 msgid "[pulled from remote] into"
707 msgstr ""
708
709 #: rhodecode/lib/helpers.py:552
710 msgid "[pulled] from"
711 msgstr ""
712
713 #: rhodecode/lib/helpers.py:553
714 msgid "[started following] repository"
715 msgstr ""
716
717 #: rhodecode/lib/helpers.py:554
681 #: rhodecode/lib/helpers.py:554
682 msgid "[created] repository as fork"
683 msgstr ""
684
685 #: rhodecode/lib/helpers.py:556 rhodecode/lib/helpers.py:564
686 msgid "[forked] repository"
687 msgstr ""
688
689 #: rhodecode/lib/helpers.py:558 rhodecode/lib/helpers.py:566
690 msgid "[updated] repository"
691 msgstr ""
692
693 #: rhodecode/lib/helpers.py:560
694 msgid "[delete] repository"
695 msgstr ""
696
697 #: rhodecode/lib/helpers.py:568
698 msgid "[created] user"
699 msgstr ""
700
701 #: rhodecode/lib/helpers.py:570
702 msgid "[updated] user"
703 msgstr ""
704
705 #: rhodecode/lib/helpers.py:572
706 msgid "[created] users group"
707 msgstr ""
708
709 #: rhodecode/lib/helpers.py:574
710 msgid "[updated] users group"
711 msgstr ""
712
713 #: rhodecode/lib/helpers.py:576
714 msgid "[commented] on revision in repository"
715 msgstr ""
716
717 #: rhodecode/lib/helpers.py:578
718 msgid "[pushed] into"
719 msgstr ""
720
721 #: rhodecode/lib/helpers.py:580
722 msgid "[committed via RhodeCode] into repository"
723 msgstr ""
724
725 #: rhodecode/lib/helpers.py:582
726 msgid "[pulled from remote] into repository"
727 msgstr ""
728
729 #: rhodecode/lib/helpers.py:584
730 msgid "[pulled] from"
731 msgstr ""
732
733 #: rhodecode/lib/helpers.py:586
734 msgid "[started following] repository"
735 msgstr ""
736
737 #: rhodecode/lib/helpers.py:588
718 msgid "[stopped following] repository"
738 msgid "[stopped following] repository"
719 msgstr ""
739 msgstr ""
720
740
721 #: rhodecode/lib/helpers.py:732
741 #: rhodecode/lib/helpers.py:752
722 #, python-format
742 #, python-format
723 msgid " and %s more"
743 msgid " and %s more"
724 msgstr ""
744 msgstr ""
725
745
726 #: rhodecode/lib/helpers.py:736
746 #: rhodecode/lib/helpers.py:756
727 msgid "No Files"
747 msgid "No Files"
728 msgstr ""
748 msgstr ""
729
749
@@ -971,7 +991,7 b' msgid "Dashboard"'
971 msgstr ""
991 msgstr ""
972
992
973 #: rhodecode/templates/index_base.html:6
993 #: rhodecode/templates/index_base.html:6
974 #: rhodecode/templates/admin/users/user_edit_my_account.html:115
994 #: rhodecode/templates/admin/users/user_edit_my_account.html:31
975 #: rhodecode/templates/bookmarks/bookmarks.html:10
995 #: rhodecode/templates/bookmarks/bookmarks.html:10
976 #: rhodecode/templates/branches/branches.html:9
996 #: rhodecode/templates/branches/branches.html:9
977 #: rhodecode/templates/journal/journal.html:31
997 #: rhodecode/templates/journal/journal.html:31
@@ -1026,10 +1046,10 b' msgstr ""'
1026 #: rhodecode/templates/admin/repos/repo_edit.html:32
1046 #: rhodecode/templates/admin/repos/repo_edit.html:32
1027 #: rhodecode/templates/admin/repos/repos.html:36
1047 #: rhodecode/templates/admin/repos/repos.html:36
1028 #: rhodecode/templates/admin/repos/repos.html:82
1048 #: rhodecode/templates/admin/repos/repos.html:82
1029 #: rhodecode/templates/admin/users/user_edit_my_account.html:133
1049 #: rhodecode/templates/admin/users/user_edit_my_account.html:49
1030 #: rhodecode/templates/admin/users/user_edit_my_account.html:183
1050 #: rhodecode/templates/admin/users/user_edit_my_account.html:99
1031 #: rhodecode/templates/admin/users/user_edit_my_account.html:249
1051 #: rhodecode/templates/admin/users/user_edit_my_account.html:165
1032 #: rhodecode/templates/admin/users/user_edit_my_account.html:284
1052 #: rhodecode/templates/admin/users/user_edit_my_account.html:200
1033 #: rhodecode/templates/bookmarks/bookmarks.html:36
1053 #: rhodecode/templates/bookmarks/bookmarks.html:36
1034 #: rhodecode/templates/bookmarks/bookmarks_data.html:6
1054 #: rhodecode/templates/bookmarks/bookmarks_data.html:6
1035 #: rhodecode/templates/branches/branches.html:36
1055 #: rhodecode/templates/branches/branches.html:36
@@ -1054,7 +1074,7 b' msgstr ""'
1054 #: rhodecode/templates/index_base.html:161
1074 #: rhodecode/templates/index_base.html:161
1055 #: rhodecode/templates/admin/repos/repos.html:39
1075 #: rhodecode/templates/admin/repos/repos.html:39
1056 #: rhodecode/templates/admin/repos/repos.html:87
1076 #: rhodecode/templates/admin/repos/repos.html:87
1057 #: rhodecode/templates/admin/users/user_edit_my_account.html:251
1077 #: rhodecode/templates/admin/users/user_edit_my_account.html:167
1058 #: rhodecode/templates/journal/journal.html:179
1078 #: rhodecode/templates/journal/journal.html:179
1059 msgid "Tip"
1079 msgid "Tip"
1060 msgstr ""
1080 msgstr ""
@@ -1097,7 +1117,7 b' msgstr ""'
1097 #: rhodecode/templates/index_base.html:148
1117 #: rhodecode/templates/index_base.html:148
1098 #: rhodecode/templates/index_base.html:188
1118 #: rhodecode/templates/index_base.html:188
1099 #: rhodecode/templates/admin/repos/repos.html:112
1119 #: rhodecode/templates/admin/repos/repos.html:112
1100 #: rhodecode/templates/admin/users/user_edit_my_account.html:270
1120 #: rhodecode/templates/admin/users/user_edit_my_account.html:186
1101 #: rhodecode/templates/bookmarks/bookmarks.html:60
1121 #: rhodecode/templates/bookmarks/bookmarks.html:60
1102 #: rhodecode/templates/branches/branches.html:60
1122 #: rhodecode/templates/branches/branches.html:60
1103 #: rhodecode/templates/journal/journal.html:202
1123 #: rhodecode/templates/journal/journal.html:202
@@ -1108,7 +1128,7 b' msgstr ""'
1108 #: rhodecode/templates/index_base.html:149
1128 #: rhodecode/templates/index_base.html:149
1109 #: rhodecode/templates/index_base.html:189
1129 #: rhodecode/templates/index_base.html:189
1110 #: rhodecode/templates/admin/repos/repos.html:113
1130 #: rhodecode/templates/admin/repos/repos.html:113
1111 #: rhodecode/templates/admin/users/user_edit_my_account.html:271
1131 #: rhodecode/templates/admin/users/user_edit_my_account.html:187
1112 #: rhodecode/templates/bookmarks/bookmarks.html:61
1132 #: rhodecode/templates/bookmarks/bookmarks.html:61
1113 #: rhodecode/templates/branches/branches.html:61
1133 #: rhodecode/templates/branches/branches.html:61
1114 #: rhodecode/templates/journal/journal.html:203
1134 #: rhodecode/templates/journal/journal.html:203
@@ -1123,7 +1143,7 b' msgstr ""'
1123
1143
1124 #: rhodecode/templates/index_base.html:190
1144 #: rhodecode/templates/index_base.html:190
1125 #: rhodecode/templates/admin/repos/repos.html:114
1145 #: rhodecode/templates/admin/repos/repos.html:114
1126 #: rhodecode/templates/admin/users/user_edit_my_account.html:272
1146 #: rhodecode/templates/admin/users/user_edit_my_account.html:188
1127 #: rhodecode/templates/bookmarks/bookmarks.html:62
1147 #: rhodecode/templates/bookmarks/bookmarks.html:62
1128 #: rhodecode/templates/branches/branches.html:62
1148 #: rhodecode/templates/branches/branches.html:62
1129 #: rhodecode/templates/journal/journal.html:204
1149 #: rhodecode/templates/journal/journal.html:204
@@ -1133,7 +1153,7 b' msgstr ""'
1133
1153
1134 #: rhodecode/templates/index_base.html:191
1154 #: rhodecode/templates/index_base.html:191
1135 #: rhodecode/templates/admin/repos/repos.html:115
1155 #: rhodecode/templates/admin/repos/repos.html:115
1136 #: rhodecode/templates/admin/users/user_edit_my_account.html:273
1156 #: rhodecode/templates/admin/users/user_edit_my_account.html:189
1137 #: rhodecode/templates/bookmarks/bookmarks.html:63
1157 #: rhodecode/templates/bookmarks/bookmarks.html:63
1138 #: rhodecode/templates/branches/branches.html:63
1158 #: rhodecode/templates/branches/branches.html:63
1139 #: rhodecode/templates/journal/journal.html:205
1159 #: rhodecode/templates/journal/journal.html:205
@@ -1143,7 +1163,7 b' msgstr ""'
1143
1163
1144 #: rhodecode/templates/index_base.html:192
1164 #: rhodecode/templates/index_base.html:192
1145 #: rhodecode/templates/admin/repos/repos.html:116
1165 #: rhodecode/templates/admin/repos/repos.html:116
1146 #: rhodecode/templates/admin/users/user_edit_my_account.html:274
1166 #: rhodecode/templates/admin/users/user_edit_my_account.html:190
1147 #: rhodecode/templates/bookmarks/bookmarks.html:64
1167 #: rhodecode/templates/bookmarks/bookmarks.html:64
1148 #: rhodecode/templates/branches/branches.html:64
1168 #: rhodecode/templates/branches/branches.html:64
1149 #: rhodecode/templates/journal/journal.html:206
1169 #: rhodecode/templates/journal/journal.html:206
@@ -1163,7 +1183,7 b' msgstr ""'
1163 #: rhodecode/templates/admin/admin_log.html:5
1183 #: rhodecode/templates/admin/admin_log.html:5
1164 #: rhodecode/templates/admin/users/user_add.html:32
1184 #: rhodecode/templates/admin/users/user_add.html:32
1165 #: rhodecode/templates/admin/users/user_edit.html:50
1185 #: rhodecode/templates/admin/users/user_edit.html:50
1166 #: rhodecode/templates/admin/users/user_edit_my_account.html:49
1186 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:26
1167 #: rhodecode/templates/base/base.html:83
1187 #: rhodecode/templates/base/base.html:83
1168 #: rhodecode/templates/summary/summary.html:113
1188 #: rhodecode/templates/summary/summary.html:113
1169 msgid "Username"
1189 msgid "Username"
@@ -1223,21 +1243,21 b' msgstr ""'
1223 #: rhodecode/templates/register.html:47
1243 #: rhodecode/templates/register.html:47
1224 #: rhodecode/templates/admin/users/user_add.html:59
1244 #: rhodecode/templates/admin/users/user_add.html:59
1225 #: rhodecode/templates/admin/users/user_edit.html:86
1245 #: rhodecode/templates/admin/users/user_edit.html:86
1226 #: rhodecode/templates/admin/users/user_edit_my_account.html:76
1246 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:53
1227 msgid "First Name"
1247 msgid "First Name"
1228 msgstr ""
1248 msgstr ""
1229
1249
1230 #: rhodecode/templates/register.html:56
1250 #: rhodecode/templates/register.html:56
1231 #: rhodecode/templates/admin/users/user_add.html:68
1251 #: rhodecode/templates/admin/users/user_add.html:68
1232 #: rhodecode/templates/admin/users/user_edit.html:95
1252 #: rhodecode/templates/admin/users/user_edit.html:95
1233 #: rhodecode/templates/admin/users/user_edit_my_account.html:85
1253 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:62
1234 msgid "Last Name"
1254 msgid "Last Name"
1235 msgstr ""
1255 msgstr ""
1236
1256
1237 #: rhodecode/templates/register.html:65
1257 #: rhodecode/templates/register.html:65
1238 #: rhodecode/templates/admin/users/user_add.html:77
1258 #: rhodecode/templates/admin/users/user_add.html:77
1239 #: rhodecode/templates/admin/users/user_edit.html:104
1259 #: rhodecode/templates/admin/users/user_edit.html:104
1240 #: rhodecode/templates/admin/users/user_edit_my_account.html:94
1260 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:71
1241 #: rhodecode/templates/summary/summary.html:115
1261 #: rhodecode/templates/summary/summary.html:115
1242 msgid "Email"
1262 msgid "Email"
1243 msgstr ""
1263 msgstr ""
@@ -1300,8 +1320,8 b' msgstr ""'
1300 #: rhodecode/templates/admin/admin_log.html:6
1320 #: rhodecode/templates/admin/admin_log.html:6
1301 #: rhodecode/templates/admin/repos/repos.html:41
1321 #: rhodecode/templates/admin/repos/repos.html:41
1302 #: rhodecode/templates/admin/repos/repos.html:90
1322 #: rhodecode/templates/admin/repos/repos.html:90
1303 #: rhodecode/templates/admin/users/user_edit_my_account.html:135
1323 #: rhodecode/templates/admin/users/user_edit_my_account.html:51
1304 #: rhodecode/templates/admin/users/user_edit_my_account.html:136
1324 #: rhodecode/templates/admin/users/user_edit_my_account.html:52
1305 #: rhodecode/templates/journal/journal.html:52
1325 #: rhodecode/templates/journal/journal.html:52
1306 #: rhodecode/templates/journal/journal.html:53
1326 #: rhodecode/templates/journal/journal.html:53
1307 msgid "Action"
1327 msgid "Action"
@@ -1324,7 +1344,7 b' msgstr ""'
1324 msgid "From IP"
1344 msgid "From IP"
1325 msgstr ""
1345 msgstr ""
1326
1346
1327 #: rhodecode/templates/admin/admin_log.html:52
1347 #: rhodecode/templates/admin/admin_log.html:53
1328 msgid "No actions yet"
1348 msgid "No actions yet"
1329 msgstr ""
1349 msgstr ""
1330
1350
@@ -1405,7 +1425,7 b' msgstr ""'
1405 #: rhodecode/templates/admin/settings/hooks.html:73
1425 #: rhodecode/templates/admin/settings/hooks.html:73
1406 #: rhodecode/templates/admin/users/user_edit.html:129
1426 #: rhodecode/templates/admin/users/user_edit.html:129
1407 #: rhodecode/templates/admin/users/user_edit.html:154
1427 #: rhodecode/templates/admin/users/user_edit.html:154
1408 #: rhodecode/templates/admin/users/user_edit_my_account.html:102
1428 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:79
1409 #: rhodecode/templates/admin/users_groups/users_group_edit.html:115
1429 #: rhodecode/templates/admin/users_groups/users_group_edit.html:115
1410 #: rhodecode/templates/settings/repo_settings.html:84
1430 #: rhodecode/templates/settings/repo_settings.html:84
1411 msgid "Save"
1431 msgid "Save"
@@ -1557,7 +1577,7 b' msgstr ""'
1557
1577
1558 #: rhodecode/templates/admin/repos/repo_edit.html:13
1578 #: rhodecode/templates/admin/repos/repo_edit.html:13
1559 #: rhodecode/templates/admin/users/user_edit.html:13
1579 #: rhodecode/templates/admin/users/user_edit.html:13
1560 #: rhodecode/templates/admin/users/user_edit_my_account.html:155
1580 #: rhodecode/templates/admin/users/user_edit_my_account.html:71
1561 #: rhodecode/templates/admin/users_groups/users_group_edit.html:13
1581 #: rhodecode/templates/admin/users_groups/users_group_edit.html:13
1562 #: rhodecode/templates/files/files_source.html:32
1582 #: rhodecode/templates/files/files_source.html:32
1563 #: rhodecode/templates/journal/journal.html:72
1583 #: rhodecode/templates/journal/journal.html:72
@@ -1715,38 +1735,27 b' msgid "private repository"'
1715 msgstr ""
1735 msgstr ""
1716
1736
1717 #: rhodecode/templates/admin/repos/repo_edit_perms.html:33
1737 #: rhodecode/templates/admin/repos/repo_edit_perms.html:33
1718 #: rhodecode/templates/admin/repos/repo_edit_perms.html:53
1738 #: rhodecode/templates/admin/repos/repo_edit_perms.html:58
1719 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:23
1739 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:23
1720 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:42
1740 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:42
1721 msgid "revoke"
1741 msgid "revoke"
1722 msgstr ""
1742 msgstr ""
1723
1743
1724 #: rhodecode/templates/admin/repos/repo_edit_perms.html:75
1744 #: rhodecode/templates/admin/repos/repo_edit_perms.html:80
1725 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:64
1745 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:64
1726 msgid "Add another member"
1746 msgid "Add another member"
1727 msgstr ""
1747 msgstr ""
1728
1748
1729 #: rhodecode/templates/admin/repos/repo_edit_perms.html:89
1749 #: rhodecode/templates/admin/repos/repo_edit_perms.html:94
1730 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:78
1750 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:78
1731 msgid "Failed to remove user"
1751 msgid "Failed to remove user"
1732 msgstr ""
1752 msgstr ""
1733
1753
1734 #: rhodecode/templates/admin/repos/repo_edit_perms.html:104
1754 #: rhodecode/templates/admin/repos/repo_edit_perms.html:109
1735 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:93
1755 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:93
1736 msgid "Failed to remove users group"
1756 msgid "Failed to remove users group"
1737 msgstr ""
1757 msgstr ""
1738
1758
1739 #: rhodecode/templates/admin/repos/repo_edit_perms.html:123
1740 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:112
1741 msgid "Group"
1742 msgstr ""
1743
1744 #: rhodecode/templates/admin/repos/repo_edit_perms.html:124
1745 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:113
1746 #: rhodecode/templates/admin/users_groups/users_groups.html:33
1747 msgid "members"
1748 msgstr ""
1749
1750 #: rhodecode/templates/admin/repos/repos.html:5
1759 #: rhodecode/templates/admin/repos/repos.html:5
1751 msgid "Repositories administration"
1760 msgid "Repositories administration"
1752 msgstr ""
1761 msgstr ""
@@ -1764,7 +1773,7 b' msgid "delete"'
1764 msgstr ""
1773 msgstr ""
1765
1774
1766 #: rhodecode/templates/admin/repos/repos.html:68
1775 #: rhodecode/templates/admin/repos/repos.html:68
1767 #: rhodecode/templates/admin/users/user_edit_my_account.html:158
1776 #: rhodecode/templates/admin/users/user_edit_my_account.html:74
1768 #, python-format
1777 #, python-format
1769 msgid "Confirm to delete this repository: %s"
1778 msgid "Confirm to delete this repository: %s"
1770 msgstr ""
1779 msgstr ""
@@ -1815,7 +1824,7 b' msgstr ""'
1815 #: rhodecode/templates/admin/settings/settings.html:177
1824 #: rhodecode/templates/admin/settings/settings.html:177
1816 #: rhodecode/templates/admin/users/user_edit.html:130
1825 #: rhodecode/templates/admin/users/user_edit.html:130
1817 #: rhodecode/templates/admin/users/user_edit.html:155
1826 #: rhodecode/templates/admin/users/user_edit.html:155
1818 #: rhodecode/templates/admin/users/user_edit_my_account.html:103
1827 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:80
1819 #: rhodecode/templates/admin/users_groups/users_group_edit.html:116
1828 #: rhodecode/templates/admin/users_groups/users_group_edit.html:116
1820 #: rhodecode/templates/files/files_add.html:82
1829 #: rhodecode/templates/files/files_add.html:82
1821 #: rhodecode/templates/files/files_edit.html:68
1830 #: rhodecode/templates/files/files_edit.html:68
@@ -2039,17 +2048,17 b' msgid "Edit user"'
2039 msgstr ""
2048 msgstr ""
2040
2049
2041 #: rhodecode/templates/admin/users/user_edit.html:34
2050 #: rhodecode/templates/admin/users/user_edit.html:34
2042 #: rhodecode/templates/admin/users/user_edit_my_account.html:33
2051 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:10
2043 msgid "Change your avatar at"
2052 msgid "Change your avatar at"
2044 msgstr ""
2053 msgstr ""
2045
2054
2046 #: rhodecode/templates/admin/users/user_edit.html:35
2055 #: rhodecode/templates/admin/users/user_edit.html:35
2047 #: rhodecode/templates/admin/users/user_edit_my_account.html:34
2056 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:11
2048 msgid "Using"
2057 msgid "Using"
2049 msgstr ""
2058 msgstr ""
2050
2059
2051 #: rhodecode/templates/admin/users/user_edit.html:43
2060 #: rhodecode/templates/admin/users/user_edit.html:43
2052 #: rhodecode/templates/admin/users/user_edit_my_account.html:43
2061 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:20
2053 msgid "API key"
2062 msgid "API key"
2054 msgstr ""
2063 msgstr ""
2055
2064
@@ -2058,12 +2067,12 b' msgid "LDAP DN"'
2058 msgstr ""
2067 msgstr ""
2059
2068
2060 #: rhodecode/templates/admin/users/user_edit.html:68
2069 #: rhodecode/templates/admin/users/user_edit.html:68
2061 #: rhodecode/templates/admin/users/user_edit_my_account.html:58
2070 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:35
2062 msgid "New password"
2071 msgid "New password"
2063 msgstr ""
2072 msgstr ""
2064
2073
2065 #: rhodecode/templates/admin/users/user_edit.html:77
2074 #: rhodecode/templates/admin/users/user_edit.html:77
2066 #: rhodecode/templates/admin/users/user_edit_my_account.html:67
2075 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:44
2067 msgid "New password confirmation"
2076 msgid "New password confirmation"
2068 msgstr ""
2077 msgstr ""
2069
2078
@@ -2081,21 +2090,21 b' msgstr ""'
2081 msgid "My Account"
2090 msgid "My Account"
2082 msgstr ""
2091 msgstr ""
2083
2092
2084 #: rhodecode/templates/admin/users/user_edit_my_account.html:116
2093 #: rhodecode/templates/admin/users/user_edit_my_account.html:32
2085 #: rhodecode/templates/journal/journal.html:32
2094 #: rhodecode/templates/journal/journal.html:32
2086 msgid "My repos"
2095 msgid "My repos"
2087 msgstr ""
2096 msgstr ""
2088
2097
2089 #: rhodecode/templates/admin/users/user_edit_my_account.html:116
2098 #: rhodecode/templates/admin/users/user_edit_my_account.html:32
2090 msgid "My permissions"
2099 msgid "My permissions"
2091 msgstr ""
2100 msgstr ""
2092
2101
2093 #: rhodecode/templates/admin/users/user_edit_my_account.html:121
2102 #: rhodecode/templates/admin/users/user_edit_my_account.html:37
2094 #: rhodecode/templates/journal/journal.html:37
2103 #: rhodecode/templates/journal/journal.html:37
2095 msgid "ADD"
2104 msgid "ADD"
2096 msgstr ""
2105 msgstr ""
2097
2106
2098 #: rhodecode/templates/admin/users/user_edit_my_account.html:134
2107 #: rhodecode/templates/admin/users/user_edit_my_account.html:50
2099 #: rhodecode/templates/bookmarks/bookmarks.html:40
2108 #: rhodecode/templates/bookmarks/bookmarks.html:40
2100 #: rhodecode/templates/bookmarks/bookmarks_data.html:9
2109 #: rhodecode/templates/bookmarks/bookmarks_data.html:9
2101 #: rhodecode/templates/branches/branches.html:40
2110 #: rhodecode/templates/branches/branches.html:40
@@ -2105,23 +2114,23 b' msgstr ""'
2105 msgid "Revision"
2114 msgid "Revision"
2106 msgstr ""
2115 msgstr ""
2107
2116
2108 #: rhodecode/templates/admin/users/user_edit_my_account.html:155
2117 #: rhodecode/templates/admin/users/user_edit_my_account.html:71
2109 #: rhodecode/templates/journal/journal.html:72
2118 #: rhodecode/templates/journal/journal.html:72
2110 msgid "private"
2119 msgid "private"
2111 msgstr ""
2120 msgstr ""
2112
2121
2113 #: rhodecode/templates/admin/users/user_edit_my_account.html:165
2122 #: rhodecode/templates/admin/users/user_edit_my_account.html:81
2114 #: rhodecode/templates/journal/journal.html:85
2123 #: rhodecode/templates/journal/journal.html:85
2115 msgid "No repositories yet"
2124 msgid "No repositories yet"
2116 msgstr ""
2125 msgstr ""
2117
2126
2118 #: rhodecode/templates/admin/users/user_edit_my_account.html:167
2127 #: rhodecode/templates/admin/users/user_edit_my_account.html:83
2119 #: rhodecode/templates/journal/journal.html:87
2128 #: rhodecode/templates/journal/journal.html:87
2120 msgid "create one now"
2129 msgid "create one now"
2121 msgstr ""
2130 msgstr ""
2122
2131
2123 #: rhodecode/templates/admin/users/user_edit_my_account.html:184
2132 #: rhodecode/templates/admin/users/user_edit_my_account.html:100
2124 #: rhodecode/templates/admin/users/user_edit_my_account.html:285
2133 #: rhodecode/templates/admin/users/user_edit_my_account.html:201
2125 msgid "Permission"
2134 msgid "Permission"
2126 msgstr ""
2135 msgstr ""
2127
2136
@@ -2222,6 +2231,11 b' msgstr ""'
2222 msgid "group name"
2231 msgid "group name"
2223 msgstr ""
2232 msgstr ""
2224
2233
2234 #: rhodecode/templates/admin/users_groups/users_groups.html:33
2235 #: rhodecode/templates/base/root.html:46
2236 msgid "members"
2237 msgstr ""
2238
2225 #: rhodecode/templates/admin/users_groups/users_groups.html:45
2239 #: rhodecode/templates/admin/users_groups/users_groups.html:45
2226 #, python-format
2240 #, python-format
2227 msgid "Confirm to delete this users group: %s"
2241 msgid "Confirm to delete this users group: %s"
@@ -2381,21 +2395,25 b' msgstr ""'
2381 msgid "Search"
2395 msgid "Search"
2382 msgstr ""
2396 msgstr ""
2383
2397
2384 #: rhodecode/templates/base/root.html:53
2398 #: rhodecode/templates/base/root.html:42
2385 msgid "add another comment"
2399 msgid "add another comment"
2386 msgstr ""
2400 msgstr ""
2387
2401
2388 #: rhodecode/templates/base/root.html:54
2402 #: rhodecode/templates/base/root.html:43
2389 #: rhodecode/templates/journal/journal.html:111
2403 #: rhodecode/templates/journal/journal.html:111
2390 #: rhodecode/templates/summary/summary.html:52
2404 #: rhodecode/templates/summary/summary.html:52
2391 msgid "Stop following this repository"
2405 msgid "Stop following this repository"
2392 msgstr ""
2406 msgstr ""
2393
2407
2394 #: rhodecode/templates/base/root.html:55
2408 #: rhodecode/templates/base/root.html:44
2395 #: rhodecode/templates/summary/summary.html:56
2409 #: rhodecode/templates/summary/summary.html:56
2396 msgid "Start following this repository"
2410 msgid "Start following this repository"
2397 msgstr ""
2411 msgstr ""
2398
2412
2413 #: rhodecode/templates/base/root.html:45
2414 msgid "Group"
2415 msgstr ""
2416
2399 #: rhodecode/templates/bookmarks/bookmarks.html:5
2417 #: rhodecode/templates/bookmarks/bookmarks.html:5
2400 msgid "Bookmarks"
2418 msgid "Bookmarks"
2401 msgstr ""
2419 msgstr ""
@@ -2524,7 +2542,7 b' msgid "download diff"'
2524 msgstr ""
2542 msgstr ""
2525
2543
2526 #: rhodecode/templates/changeset/changeset.html:42
2544 #: rhodecode/templates/changeset/changeset.html:42
2527 #: rhodecode/templates/changeset/changeset_file_comment.html:69
2545 #: rhodecode/templates/changeset/changeset_file_comment.html:71
2528 #, python-format
2546 #, python-format
2529 msgid "%d comment"
2547 msgid "%d comment"
2530 msgid_plural "%d comments"
2548 msgid_plural "%d comments"
@@ -2532,7 +2550,7 b' msgstr[0] ""'
2532 msgstr[1] ""
2550 msgstr[1] ""
2533
2551
2534 #: rhodecode/templates/changeset/changeset.html:42
2552 #: rhodecode/templates/changeset/changeset.html:42
2535 #: rhodecode/templates/changeset/changeset_file_comment.html:69
2553 #: rhodecode/templates/changeset/changeset_file_comment.html:71
2536 #, python-format
2554 #, python-format
2537 msgid "(%d inline)"
2555 msgid "(%d inline)"
2538 msgid_plural "(%d inline)"
2556 msgid_plural "(%d inline)"
@@ -2557,35 +2575,35 b' msgid "Commenting on line {1}."'
2557 msgstr ""
2575 msgstr ""
2558
2576
2559 #: rhodecode/templates/changeset/changeset_file_comment.html:39
2577 #: rhodecode/templates/changeset/changeset_file_comment.html:39
2560 #: rhodecode/templates/changeset/changeset_file_comment.html:100
2578 #: rhodecode/templates/changeset/changeset_file_comment.html:102
2561 #, python-format
2579 #, python-format
2562 msgid "Comments parsed using %s syntax with %s support."
2580 msgid "Comments parsed using %s syntax with %s support."
2563 msgstr ""
2581 msgstr ""
2564
2582
2565 #: rhodecode/templates/changeset/changeset_file_comment.html:41
2583 #: rhodecode/templates/changeset/changeset_file_comment.html:41
2566 #: rhodecode/templates/changeset/changeset_file_comment.html:102
2584 #: rhodecode/templates/changeset/changeset_file_comment.html:104
2567 msgid "Use @username inside this text to send notification to this RhodeCode user"
2585 msgid "Use @username inside this text to send notification to this RhodeCode user"
2568 msgstr ""
2586 msgstr ""
2569
2587
2570 #: rhodecode/templates/changeset/changeset_file_comment.html:47
2588 #: rhodecode/templates/changeset/changeset_file_comment.html:49
2571 #: rhodecode/templates/changeset/changeset_file_comment.html:107
2589 #: rhodecode/templates/changeset/changeset_file_comment.html:110
2572 msgid "Comment"
2590 msgid "Comment"
2573 msgstr ""
2591 msgstr ""
2574
2592
2575 #: rhodecode/templates/changeset/changeset_file_comment.html:48
2593 #: rhodecode/templates/changeset/changeset_file_comment.html:50
2576 #: rhodecode/templates/changeset/changeset_file_comment.html:59
2594 #: rhodecode/templates/changeset/changeset_file_comment.html:61
2577 msgid "Hide"
2595 msgid "Hide"
2578 msgstr ""
2596 msgstr ""
2579
2597
2580 #: rhodecode/templates/changeset/changeset_file_comment.html:55
2598 #: rhodecode/templates/changeset/changeset_file_comment.html:57
2581 msgid "You need to be logged in to comment."
2599 msgid "You need to be logged in to comment."
2582 msgstr ""
2600 msgstr ""
2583
2601
2584 #: rhodecode/templates/changeset/changeset_file_comment.html:55
2602 #: rhodecode/templates/changeset/changeset_file_comment.html:57
2585 msgid "Login now"
2603 msgid "Login now"
2586 msgstr ""
2604 msgstr ""
2587
2605
2588 #: rhodecode/templates/changeset/changeset_file_comment.html:97
2606 #: rhodecode/templates/changeset/changeset_file_comment.html:99
2589 msgid "Leave a comment"
2607 msgid "Leave a comment"
2590 msgstr ""
2608 msgstr ""
2591
2609
@@ -3070,9 +3088,9 b' msgstr ""'
3070 msgid "file removed"
3088 msgid "file removed"
3071 msgstr ""
3089 msgstr ""
3072
3090
3073 #~ msgid ""
3091 #~ msgid "[committed via RhodeCode] into"
3074 #~ "Changeset was to big and was cut"
3075 #~ " off, use diff menu to display "
3076 #~ "this diff"
3077 #~ msgstr ""
3092 #~ msgstr ""
3078
3093
3094 #~ msgid "[pulled from remote] into"
3095 #~ msgstr ""
3096
@@ -7,7 +7,7 b' msgid ""'
7 msgstr ""
7 msgstr ""
8 "Project-Id-Version: RhodeCode 1.1.5\n"
8 "Project-Id-Version: RhodeCode 1.1.5\n"
9 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
9 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
10 "POT-Creation-Date: 2012-05-27 17:41+0200\n"
10 "POT-Creation-Date: 2012-06-03 01:06+0200\n"
11 "PO-Revision-Date: 2012-05-20 11:36+0100\n"
11 "PO-Revision-Date: 2012-05-20 11:36+0100\n"
12 "Last-Translator: Vincent Duvert <vincent@duvert.net>\n"
12 "Last-Translator: Vincent Duvert <vincent@duvert.net>\n"
13 "Language-Team: fr <LL@li.org>\n"
13 "Language-Team: fr <LL@li.org>\n"
@@ -17,25 +17,25 b' msgstr ""'
17 "Content-Transfer-Encoding: 8bit\n"
17 "Content-Transfer-Encoding: 8bit\n"
18 "Generated-By: Babel 0.9.6\n"
18 "Generated-By: Babel 0.9.6\n"
19
19
20 #: rhodecode/controllers/changelog.py:96
20 #: rhodecode/controllers/changelog.py:95
21 msgid "All Branches"
21 msgid "All Branches"
22 msgstr "Toutes les branches"
22 msgstr "Toutes les branches"
23
23
24 #: rhodecode/controllers/changeset.py:79
24 #: rhodecode/controllers/changeset.py:80
25 msgid "show white space"
25 msgid "show white space"
26 msgstr "afficher les espaces et tabulations"
26 msgstr "afficher les espaces et tabulations"
27
27
28 #: rhodecode/controllers/changeset.py:86 rhodecode/controllers/changeset.py:93
28 #: rhodecode/controllers/changeset.py:87 rhodecode/controllers/changeset.py:94
29 msgid "ignore white space"
29 msgid "ignore white space"
30 msgstr "ignorer les espaces et tabulations"
30 msgstr "ignorer les espaces et tabulations"
31
31
32 #: rhodecode/controllers/changeset.py:153
32 #: rhodecode/controllers/changeset.py:154
33 #, python-format
33 #, python-format
34 msgid "%s line context"
34 msgid "%s line context"
35 msgstr "afficher %s lignes de contexte"
35 msgstr "afficher %s lignes de contexte"
36
36
37 #: rhodecode/controllers/changeset.py:320
37 #: rhodecode/controllers/changeset.py:324
38 #: rhodecode/controllers/changeset.py:335 rhodecode/lib/diffs.py:62
38 #: rhodecode/controllers/changeset.py:339 rhodecode/lib/diffs.py:62
39 msgid "binary file"
39 msgid "binary file"
40 msgstr "fichier binaire"
40 msgstr "fichier binaire"
41
41
@@ -191,7 +191,7 b' msgstr "Une erreur est survenue durant le fork du d\xc3\xa9p\xc3\xb4t %s."'
191 msgid "%s public journal %s feed"
191 msgid "%s public journal %s feed"
192 msgstr "%s — Flux %s du journal public"
192 msgstr "%s — Flux %s du journal public"
193
193
194 #: rhodecode/controllers/journal.py:190 rhodecode/controllers/journal.py:224
194 #: rhodecode/controllers/journal.py:190 rhodecode/controllers/journal.py:223
195 #: rhodecode/templates/admin/repos/repo_edit.html:177
195 #: rhodecode/templates/admin/repos/repo_edit.html:177
196 #: rhodecode/templates/base/base.html:307
196 #: rhodecode/templates/base/base.html:307
197 #: rhodecode/templates/base/base.html:309
197 #: rhodecode/templates/base/base.html:309
@@ -230,19 +230,19 b' msgid "An error occurred during this sea'
230 msgstr "Une erreur est survenue durant l’opération de recherche."
230 msgstr "Une erreur est survenue durant l’opération de recherche."
231
231
232 #: rhodecode/controllers/settings.py:103
232 #: rhodecode/controllers/settings.py:103
233 #: rhodecode/controllers/admin/repos.py:211
233 #: rhodecode/controllers/admin/repos.py:213
234 #, python-format
234 #, python-format
235 msgid "Repository %s updated successfully"
235 msgid "Repository %s updated successfully"
236 msgstr "Dépôt %s mis à jour avec succès."
236 msgstr "Dépôt %s mis à jour avec succès."
237
237
238 #: rhodecode/controllers/settings.py:121
238 #: rhodecode/controllers/settings.py:121
239 #: rhodecode/controllers/admin/repos.py:229
239 #: rhodecode/controllers/admin/repos.py:231
240 #, python-format
240 #, python-format
241 msgid "error occurred during update of repository %s"
241 msgid "error occurred during update of repository %s"
242 msgstr "Une erreur est survenue lors de la mise à jour du dépôt %s."
242 msgstr "Une erreur est survenue lors de la mise à jour du dépôt %s."
243
243
244 #: rhodecode/controllers/settings.py:139
244 #: rhodecode/controllers/settings.py:139
245 #: rhodecode/controllers/admin/repos.py:247
245 #: rhodecode/controllers/admin/repos.py:249
246 #, python-format
246 #, python-format
247 msgid ""
247 msgid ""
248 "%s repository is not mapped to db perhaps it was moved or renamed from "
248 "%s repository is not mapped to db perhaps it was moved or renamed from "
@@ -254,14 +254,14 b' msgstr ""'
254 "l’application pour rescanner les dépôts."
254 "l’application pour rescanner les dépôts."
255
255
256 #: rhodecode/controllers/settings.py:151
256 #: rhodecode/controllers/settings.py:151
257 #: rhodecode/controllers/admin/repos.py:259
257 #: rhodecode/controllers/admin/repos.py:261
258 #, python-format
258 #, python-format
259 msgid "deleted repository %s"
259 msgid "deleted repository %s"
260 msgstr "Dépôt %s supprimé"
260 msgstr "Dépôt %s supprimé"
261
261
262 #: rhodecode/controllers/settings.py:155
262 #: rhodecode/controllers/settings.py:155
263 #: rhodecode/controllers/admin/repos.py:269
263 #: rhodecode/controllers/admin/repos.py:271
264 #: rhodecode/controllers/admin/repos.py:275
264 #: rhodecode/controllers/admin/repos.py:277
265 #, python-format
265 #, python-format
266 msgid "An error occurred during deletion of %s"
266 msgid "An error occurred during deletion of %s"
267 msgstr "Erreur pendant la suppression de %s"
267 msgstr "Erreur pendant la suppression de %s"
@@ -410,66 +410,66 b' msgstr "Le d\xc3\xa9p\xc3\xb4t %s a \xc3\xa9t\xc3\xa9 cr\xc3\xa9\xc3\xa9 depuis %s."'
410 msgid "created repository %s"
410 msgid "created repository %s"
411 msgstr "Le dépôt %s a été créé."
411 msgstr "Le dépôt %s a été créé."
412
412
413 #: rhodecode/controllers/admin/repos.py:177
413 #: rhodecode/controllers/admin/repos.py:179
414 #, python-format
414 #, python-format
415 msgid "error occurred during creation of repository %s"
415 msgid "error occurred during creation of repository %s"
416 msgstr "Une erreur est survenue durant la création du dépôt %s."
416 msgstr "Une erreur est survenue durant la création du dépôt %s."
417
417
418 #: rhodecode/controllers/admin/repos.py:264
418 #: rhodecode/controllers/admin/repos.py:266
419 #, python-format
419 #, python-format
420 msgid "Cannot delete %s it still contains attached forks"
420 msgid "Cannot delete %s it still contains attached forks"
421 msgstr "Impossible de supprimer le dépôt %s : Des forks y sont attachés."
421 msgstr "Impossible de supprimer le dépôt %s : Des forks y sont attachés."
422
422
423 #: rhodecode/controllers/admin/repos.py:293
423 #: rhodecode/controllers/admin/repos.py:295
424 msgid "An error occurred during deletion of repository user"
424 msgid "An error occurred during deletion of repository user"
425 msgstr "Une erreur est survenue durant la suppression de l’utilisateur du dépôt."
425 msgstr "Une erreur est survenue durant la suppression de l’utilisateur du dépôt."
426
426
427 #: rhodecode/controllers/admin/repos.py:312
427 #: rhodecode/controllers/admin/repos.py:314
428 msgid "An error occurred during deletion of repository users groups"
428 msgid "An error occurred during deletion of repository users groups"
429 msgstr ""
429 msgstr ""
430 "Une erreur est survenue durant la suppression du groupe d’utilisateurs de"
430 "Une erreur est survenue durant la suppression du groupe d’utilisateurs de"
431 " ce dépôt."
431 " ce dépôt."
432
432
433 #: rhodecode/controllers/admin/repos.py:329
433 #: rhodecode/controllers/admin/repos.py:331
434 msgid "An error occurred during deletion of repository stats"
434 msgid "An error occurred during deletion of repository stats"
435 msgstr "Une erreur est survenue durant la suppression des statistiques du dépôt."
435 msgstr "Une erreur est survenue durant la suppression des statistiques du dépôt."
436
436
437 #: rhodecode/controllers/admin/repos.py:345
437 #: rhodecode/controllers/admin/repos.py:347
438 msgid "An error occurred during cache invalidation"
438 msgid "An error occurred during cache invalidation"
439 msgstr "Une erreur est survenue durant l’invalidation du cache."
439 msgstr "Une erreur est survenue durant l’invalidation du cache."
440
440
441 #: rhodecode/controllers/admin/repos.py:365
441 #: rhodecode/controllers/admin/repos.py:367
442 msgid "Updated repository visibility in public journal"
442 msgid "Updated repository visibility in public journal"
443 msgstr "La visibilité du dépôt dans le journal public a été mise à jour."
443 msgstr "La visibilité du dépôt dans le journal public a été mise à jour."
444
444
445 #: rhodecode/controllers/admin/repos.py:369
445 #: rhodecode/controllers/admin/repos.py:371
446 msgid "An error occurred during setting this repository in public journal"
446 msgid "An error occurred during setting this repository in public journal"
447 msgstr ""
447 msgstr ""
448 "Une erreur est survenue durant la configuration du journal public pour ce"
448 "Une erreur est survenue durant la configuration du journal public pour ce"
449 " dépôt."
449 " dépôt."
450
450
451 #: rhodecode/controllers/admin/repos.py:374 rhodecode/model/forms.py:54
451 #: rhodecode/controllers/admin/repos.py:376 rhodecode/model/forms.py:54
452 msgid "Token mismatch"
452 msgid "Token mismatch"
453 msgstr "Jeton d’authentification incorrect."
453 msgstr "Jeton d’authentification incorrect."
454
454
455 #: rhodecode/controllers/admin/repos.py:387
456 msgid "Pulled from remote location"
457 msgstr "Les changements distants ont été récupérés."
458
459 #: rhodecode/controllers/admin/repos.py:389
455 #: rhodecode/controllers/admin/repos.py:389
456 msgid "Pulled from remote location"
457 msgstr "Les changements distants ont été récupérés."
458
459 #: rhodecode/controllers/admin/repos.py:391
460 msgid "An error occurred during pull from remote location"
460 msgid "An error occurred during pull from remote location"
461 msgstr "Une erreur est survenue durant le pull depuis la source distante."
461 msgstr "Une erreur est survenue durant le pull depuis la source distante."
462
462
463 #: rhodecode/controllers/admin/repos.py:405
463 #: rhodecode/controllers/admin/repos.py:407
464 msgid "Nothing"
464 msgid "Nothing"
465 msgstr "[Aucun dépôt]"
465 msgstr "[Aucun dépôt]"
466
466
467 #: rhodecode/controllers/admin/repos.py:407
467 #: rhodecode/controllers/admin/repos.py:409
468 #, python-format
468 #, python-format
469 msgid "Marked repo %s as fork of %s"
469 msgid "Marked repo %s as fork of %s"
470 msgstr "Le dépôt %s a été marké comme fork de %s"
470 msgstr "Le dépôt %s a été marké comme fork de %s"
471
471
472 #: rhodecode/controllers/admin/repos.py:411
472 #: rhodecode/controllers/admin/repos.py:413
473 msgid "An error occurred during this operation"
473 msgid "An error occurred during this operation"
474 msgstr "Une erreur est survenue durant cette opération."
474 msgstr "Une erreur est survenue durant cette opération."
475
475
@@ -569,77 +569,77 b' msgstr ""'
569 "Vous ne pouvez pas éditer cet utilisateur ; il est nécessaire pour le bon"
569 "Vous ne pouvez pas éditer cet utilisateur ; il est nécessaire pour le bon"
570 " fonctionnement de l’application."
570 " fonctionnement de l’application."
571
571
572 #: rhodecode/controllers/admin/settings.py:365
572 #: rhodecode/controllers/admin/settings.py:367
573 msgid "Your account was updated successfully"
573 msgid "Your account was updated successfully"
574 msgstr "Votre compte a été mis à jour avec succès"
574 msgstr "Votre compte a été mis à jour avec succès"
575
575
576 #: rhodecode/controllers/admin/settings.py:384
576 #: rhodecode/controllers/admin/settings.py:387
577 #: rhodecode/controllers/admin/users.py:132
577 #: rhodecode/controllers/admin/users.py:138
578 #, python-format
578 #, python-format
579 msgid "error occurred during update of user %s"
579 msgid "error occurred during update of user %s"
580 msgstr "Une erreur est survenue durant la mise à jour de l’utilisateur %s."
580 msgstr "Une erreur est survenue durant la mise à jour de l’utilisateur %s."
581
581
582 #: rhodecode/controllers/admin/users.py:79
582 #: rhodecode/controllers/admin/users.py:83
583 #, python-format
583 #, python-format
584 msgid "created user %s"
584 msgid "created user %s"
585 msgstr "utilisateur %s créé"
585 msgstr "utilisateur %s créé"
586
586
587 #: rhodecode/controllers/admin/users.py:92
587 #: rhodecode/controllers/admin/users.py:95
588 #, python-format
588 #, python-format
589 msgid "error occurred during creation of user %s"
589 msgid "error occurred during creation of user %s"
590 msgstr "Une erreur est survenue durant la création de l’utilisateur %s."
590 msgstr "Une erreur est survenue durant la création de l’utilisateur %s."
591
591
592 #: rhodecode/controllers/admin/users.py:118
592 #: rhodecode/controllers/admin/users.py:124
593 msgid "User updated successfully"
593 msgid "User updated successfully"
594 msgstr "L’utilisateur a été mis à jour avec succès."
594 msgstr "L’utilisateur a été mis à jour avec succès."
595
595
596 #: rhodecode/controllers/admin/users.py:149
596 #: rhodecode/controllers/admin/users.py:155
597 msgid "successfully deleted user"
597 msgid "successfully deleted user"
598 msgstr "L’utilisateur a été supprimé avec succès."
598 msgstr "L’utilisateur a été supprimé avec succès."
599
599
600 #: rhodecode/controllers/admin/users.py:154
600 #: rhodecode/controllers/admin/users.py:160
601 msgid "An error occurred during deletion of user"
601 msgid "An error occurred during deletion of user"
602 msgstr "Une erreur est survenue durant la suppression de l’utilisateur."
602 msgstr "Une erreur est survenue durant la suppression de l’utilisateur."
603
603
604 #: rhodecode/controllers/admin/users.py:169
604 #: rhodecode/controllers/admin/users.py:175
605 msgid "You can't edit this user"
605 msgid "You can't edit this user"
606 msgstr "Vous ne pouvez pas éditer cet utilisateur"
606 msgstr "Vous ne pouvez pas éditer cet utilisateur"
607
607
608 #: rhodecode/controllers/admin/users.py:199
608 #: rhodecode/controllers/admin/users.py:205
609 #: rhodecode/controllers/admin/users_groups.py:215
609 #: rhodecode/controllers/admin/users_groups.py:219
610 msgid "Granted 'repository create' permission to user"
610 msgid "Granted 'repository create' permission to user"
611 msgstr "La permission de création de dépôts a été accordée à l’utilisateur."
611 msgstr "La permission de création de dépôts a été accordée à l’utilisateur."
612
612
613 #: rhodecode/controllers/admin/users.py:208
613 #: rhodecode/controllers/admin/users.py:214
614 #: rhodecode/controllers/admin/users_groups.py:225
614 #: rhodecode/controllers/admin/users_groups.py:229
615 msgid "Revoked 'repository create' permission to user"
615 msgid "Revoked 'repository create' permission to user"
616 msgstr "La permission de création de dépôts a été révoquée à l’utilisateur."
616 msgstr "La permission de création de dépôts a été révoquée à l’utilisateur."
617
617
618 #: rhodecode/controllers/admin/users_groups.py:79
618 #: rhodecode/controllers/admin/users_groups.py:84
619 #, python-format
619 #, python-format
620 msgid "created users group %s"
620 msgid "created users group %s"
621 msgstr "Le groupe d’utilisateurs %s a été créé."
621 msgstr "Le groupe d’utilisateurs %s a été créé."
622
622
623 #: rhodecode/controllers/admin/users_groups.py:92
623 #: rhodecode/controllers/admin/users_groups.py:95
624 #, python-format
624 #, python-format
625 msgid "error occurred during creation of users group %s"
625 msgid "error occurred during creation of users group %s"
626 msgstr "Une erreur est survenue durant la création du groupe d’utilisateurs %s."
626 msgstr "Une erreur est survenue durant la création du groupe d’utilisateurs %s."
627
627
628 #: rhodecode/controllers/admin/users_groups.py:128
628 #: rhodecode/controllers/admin/users_groups.py:135
629 #, python-format
629 #, python-format
630 msgid "updated users group %s"
630 msgid "updated users group %s"
631 msgstr "Le groupe d’utilisateurs %s a été mis à jour."
631 msgstr "Le groupe d’utilisateurs %s a été mis à jour."
632
632
633 #: rhodecode/controllers/admin/users_groups.py:148
633 #: rhodecode/controllers/admin/users_groups.py:152
634 #, python-format
634 #, python-format
635 msgid "error occurred during update of users group %s"
635 msgid "error occurred during update of users group %s"
636 msgstr "Une erreur est survenue durant la mise à jour du groupe d’utilisateurs %s."
636 msgstr "Une erreur est survenue durant la mise à jour du groupe d’utilisateurs %s."
637
637
638 #: rhodecode/controllers/admin/users_groups.py:165
638 #: rhodecode/controllers/admin/users_groups.py:169
639 msgid "successfully deleted users group"
639 msgid "successfully deleted users group"
640 msgstr "Le groupe d’utilisateurs a été supprimé avec succès."
640 msgstr "Le groupe d’utilisateurs a été supprimé avec succès."
641
641
642 #: rhodecode/controllers/admin/users_groups.py:170
642 #: rhodecode/controllers/admin/users_groups.py:174
643 msgid "An error occurred during deletion of users group"
643 msgid "An error occurred during deletion of users group"
644 msgstr "Une erreur est survenue lors de la suppression du groupe d’utilisateurs."
644 msgstr "Une erreur est survenue lors de la suppression du groupe d’utilisateurs."
645
645
@@ -700,60 +700,94 b' msgstr "r\xc3\xa9visions"'
700 msgid "fork name "
700 msgid "fork name "
701 msgstr "Nom du fork"
701 msgstr "Nom du fork"
702
702
703 #: rhodecode/lib/helpers.py:540
703 #: rhodecode/lib/helpers.py:550
704 msgid "[deleted] repository"
704 msgid "[deleted] repository"
705 msgstr "[a supprimé] le dépôt"
705 msgstr "[a supprimé] le dépôt"
706
706
707 #: rhodecode/lib/helpers.py:541 rhodecode/lib/helpers.py:546
707 #: rhodecode/lib/helpers.py:552 rhodecode/lib/helpers.py:562
708 msgid "[created] repository"
708 msgid "[created] repository"
709 msgstr "[a créé] le dépôt"
709 msgstr "[a créé] le dépôt"
710
710
711 #: rhodecode/lib/helpers.py:542
711 #: rhodecode/lib/helpers.py:554
712 msgid "[created] repository as fork"
712 msgid "[created] repository as fork"
713 msgstr "[a créé] le dépôt en tant que fork"
713 msgstr "[a créé] le dépôt en tant que fork"
714
714
715 #: rhodecode/lib/helpers.py:543 rhodecode/lib/helpers.py:547
715 #: rhodecode/lib/helpers.py:556 rhodecode/lib/helpers.py:564
716 msgid "[forked] repository"
716 msgid "[forked] repository"
717 msgstr "[a forké] le dépôt"
717 msgstr "[a forké] le dépôt"
718
718
719 #: rhodecode/lib/helpers.py:544 rhodecode/lib/helpers.py:548
719 #: rhodecode/lib/helpers.py:558 rhodecode/lib/helpers.py:566
720 msgid "[updated] repository"
720 msgid "[updated] repository"
721 msgstr "[a mis à jour] le dépôt"
721 msgstr "[a mis à jour] le dépôt"
722
722
723 #: rhodecode/lib/helpers.py:545
723 #: rhodecode/lib/helpers.py:560
724 msgid "[delete] repository"
724 msgid "[delete] repository"
725 msgstr "[a supprimé] le dépôt"
725 msgstr "[a supprimé] le dépôt"
726
726
727 #: rhodecode/lib/helpers.py:549
727 #: rhodecode/lib/helpers.py:568
728 #, fuzzy, python-format
729 #| msgid "created user %s"
730 msgid "[created] user"
731 msgstr "utilisateur %s créé"
732
733 #: rhodecode/lib/helpers.py:570
734 #, fuzzy, python-format
735 #| msgid "updated users group %s"
736 msgid "[updated] user"
737 msgstr "Le groupe d’utilisateurs %s a été mis à jour."
738
739 #: rhodecode/lib/helpers.py:572
740 #, fuzzy, python-format
741 #| msgid "created users group %s"
742 msgid "[created] users group"
743 msgstr "Le groupe d’utilisateurs %s a été créé."
744
745 #: rhodecode/lib/helpers.py:574
746 #, fuzzy, python-format
747 #| msgid "updated users group %s"
748 msgid "[updated] users group"
749 msgstr "Le groupe d’utilisateurs %s a été mis à jour."
750
751 #: rhodecode/lib/helpers.py:576
752 #, fuzzy
753 #| msgid "[created] repository"
754 msgid "[commented] on revision in repository"
755 msgstr "[a créé] le dépôt"
756
757 #: rhodecode/lib/helpers.py:578
728 msgid "[pushed] into"
758 msgid "[pushed] into"
729 msgstr "[a pushé] dans"
759 msgstr "[a pushé] dans"
730
760
731 #: rhodecode/lib/helpers.py:550
761 #: rhodecode/lib/helpers.py:580
732 msgid "[committed via RhodeCode] into"
762 #, fuzzy
763 #| msgid "[committed via RhodeCode] into"
764 msgid "[committed via RhodeCode] into repository"
733 msgstr "[a commité via RhodeCode] dans"
765 msgstr "[a commité via RhodeCode] dans"
734
766
735 #: rhodecode/lib/helpers.py:551
767 #: rhodecode/lib/helpers.py:582
736 msgid "[pulled from remote] into"
768 #, fuzzy
769 #| msgid "[pulled from remote] into"
770 msgid "[pulled from remote] into repository"
737 msgstr "[a pullé depuis un site distant] dans"
771 msgstr "[a pullé depuis un site distant] dans"
738
772
739 #: rhodecode/lib/helpers.py:552
773 #: rhodecode/lib/helpers.py:584
740 msgid "[pulled] from"
774 msgid "[pulled] from"
741 msgstr "[a pullé] depuis"
775 msgstr "[a pullé] depuis"
742
776
743 #: rhodecode/lib/helpers.py:553
777 #: rhodecode/lib/helpers.py:586
744 msgid "[started following] repository"
778 msgid "[started following] repository"
745 msgstr "[suit maintenant] le dépôt"
779 msgstr "[suit maintenant] le dépôt"
746
780
747 #: rhodecode/lib/helpers.py:554
781 #: rhodecode/lib/helpers.py:588
748 msgid "[stopped following] repository"
782 msgid "[stopped following] repository"
749 msgstr "[ne suit plus] le dépôt"
783 msgstr "[ne suit plus] le dépôt"
750
784
751 #: rhodecode/lib/helpers.py:732
785 #: rhodecode/lib/helpers.py:752
752 #, python-format
786 #, python-format
753 msgid " and %s more"
787 msgid " and %s more"
754 msgstr "et %s de plus"
788 msgstr "et %s de plus"
755
789
756 #: rhodecode/lib/helpers.py:736
790 #: rhodecode/lib/helpers.py:756
757 msgid "No Files"
791 msgid "No Files"
758 msgstr "Aucun fichier"
792 msgstr "Aucun fichier"
759
793
@@ -1017,7 +1051,7 b' msgid "Dashboard"'
1017 msgstr "Tableau de bord"
1051 msgstr "Tableau de bord"
1018
1052
1019 #: rhodecode/templates/index_base.html:6
1053 #: rhodecode/templates/index_base.html:6
1020 #: rhodecode/templates/admin/users/user_edit_my_account.html:115
1054 #: rhodecode/templates/admin/users/user_edit_my_account.html:31
1021 #: rhodecode/templates/bookmarks/bookmarks.html:10
1055 #: rhodecode/templates/bookmarks/bookmarks.html:10
1022 #: rhodecode/templates/branches/branches.html:9
1056 #: rhodecode/templates/branches/branches.html:9
1023 #: rhodecode/templates/journal/journal.html:31
1057 #: rhodecode/templates/journal/journal.html:31
@@ -1072,10 +1106,10 b' msgstr "Groupe de d\xc3\xa9p\xc3\xb4ts"'
1072 #: rhodecode/templates/admin/repos/repo_edit.html:32
1106 #: rhodecode/templates/admin/repos/repo_edit.html:32
1073 #: rhodecode/templates/admin/repos/repos.html:36
1107 #: rhodecode/templates/admin/repos/repos.html:36
1074 #: rhodecode/templates/admin/repos/repos.html:82
1108 #: rhodecode/templates/admin/repos/repos.html:82
1075 #: rhodecode/templates/admin/users/user_edit_my_account.html:133
1109 #: rhodecode/templates/admin/users/user_edit_my_account.html:49
1076 #: rhodecode/templates/admin/users/user_edit_my_account.html:183
1110 #: rhodecode/templates/admin/users/user_edit_my_account.html:99
1077 #: rhodecode/templates/admin/users/user_edit_my_account.html:249
1111 #: rhodecode/templates/admin/users/user_edit_my_account.html:165
1078 #: rhodecode/templates/admin/users/user_edit_my_account.html:284
1112 #: rhodecode/templates/admin/users/user_edit_my_account.html:200
1079 #: rhodecode/templates/bookmarks/bookmarks.html:36
1113 #: rhodecode/templates/bookmarks/bookmarks.html:36
1080 #: rhodecode/templates/bookmarks/bookmarks_data.html:6
1114 #: rhodecode/templates/bookmarks/bookmarks_data.html:6
1081 #: rhodecode/templates/branches/branches.html:36
1115 #: rhodecode/templates/branches/branches.html:36
@@ -1100,7 +1134,7 b' msgstr "Derni\xc3\xa8re modification"'
1100 #: rhodecode/templates/index_base.html:161
1134 #: rhodecode/templates/index_base.html:161
1101 #: rhodecode/templates/admin/repos/repos.html:39
1135 #: rhodecode/templates/admin/repos/repos.html:39
1102 #: rhodecode/templates/admin/repos/repos.html:87
1136 #: rhodecode/templates/admin/repos/repos.html:87
1103 #: rhodecode/templates/admin/users/user_edit_my_account.html:251
1137 #: rhodecode/templates/admin/users/user_edit_my_account.html:167
1104 #: rhodecode/templates/journal/journal.html:179
1138 #: rhodecode/templates/journal/journal.html:179
1105 msgid "Tip"
1139 msgid "Tip"
1106 msgstr "Sommet"
1140 msgstr "Sommet"
@@ -1143,7 +1177,7 b' msgstr "Nom du groupe"'
1143 #: rhodecode/templates/index_base.html:148
1177 #: rhodecode/templates/index_base.html:148
1144 #: rhodecode/templates/index_base.html:188
1178 #: rhodecode/templates/index_base.html:188
1145 #: rhodecode/templates/admin/repos/repos.html:112
1179 #: rhodecode/templates/admin/repos/repos.html:112
1146 #: rhodecode/templates/admin/users/user_edit_my_account.html:270
1180 #: rhodecode/templates/admin/users/user_edit_my_account.html:186
1147 #: rhodecode/templates/bookmarks/bookmarks.html:60
1181 #: rhodecode/templates/bookmarks/bookmarks.html:60
1148 #: rhodecode/templates/branches/branches.html:60
1182 #: rhodecode/templates/branches/branches.html:60
1149 #: rhodecode/templates/journal/journal.html:202
1183 #: rhodecode/templates/journal/journal.html:202
@@ -1154,7 +1188,7 b' msgstr "Tri ascendant"'
1154 #: rhodecode/templates/index_base.html:149
1188 #: rhodecode/templates/index_base.html:149
1155 #: rhodecode/templates/index_base.html:189
1189 #: rhodecode/templates/index_base.html:189
1156 #: rhodecode/templates/admin/repos/repos.html:113
1190 #: rhodecode/templates/admin/repos/repos.html:113
1157 #: rhodecode/templates/admin/users/user_edit_my_account.html:271
1191 #: rhodecode/templates/admin/users/user_edit_my_account.html:187
1158 #: rhodecode/templates/bookmarks/bookmarks.html:61
1192 #: rhodecode/templates/bookmarks/bookmarks.html:61
1159 #: rhodecode/templates/branches/branches.html:61
1193 #: rhodecode/templates/branches/branches.html:61
1160 #: rhodecode/templates/journal/journal.html:203
1194 #: rhodecode/templates/journal/journal.html:203
@@ -1169,7 +1203,7 b' msgstr "Derni\xc3\xa8re modification"'
1169
1203
1170 #: rhodecode/templates/index_base.html:190
1204 #: rhodecode/templates/index_base.html:190
1171 #: rhodecode/templates/admin/repos/repos.html:114
1205 #: rhodecode/templates/admin/repos/repos.html:114
1172 #: rhodecode/templates/admin/users/user_edit_my_account.html:272
1206 #: rhodecode/templates/admin/users/user_edit_my_account.html:188
1173 #: rhodecode/templates/bookmarks/bookmarks.html:62
1207 #: rhodecode/templates/bookmarks/bookmarks.html:62
1174 #: rhodecode/templates/branches/branches.html:62
1208 #: rhodecode/templates/branches/branches.html:62
1175 #: rhodecode/templates/journal/journal.html:204
1209 #: rhodecode/templates/journal/journal.html:204
@@ -1179,7 +1213,7 b' msgstr "Aucun \xc3\xa9l\xc3\xa9ment n\xe2\x80\x99a \xc3\xa9t\xc3\xa9 trouv\xc3\xa9."'
1179
1213
1180 #: rhodecode/templates/index_base.html:191
1214 #: rhodecode/templates/index_base.html:191
1181 #: rhodecode/templates/admin/repos/repos.html:115
1215 #: rhodecode/templates/admin/repos/repos.html:115
1182 #: rhodecode/templates/admin/users/user_edit_my_account.html:273
1216 #: rhodecode/templates/admin/users/user_edit_my_account.html:189
1183 #: rhodecode/templates/bookmarks/bookmarks.html:63
1217 #: rhodecode/templates/bookmarks/bookmarks.html:63
1184 #: rhodecode/templates/branches/branches.html:63
1218 #: rhodecode/templates/branches/branches.html:63
1185 #: rhodecode/templates/journal/journal.html:205
1219 #: rhodecode/templates/journal/journal.html:205
@@ -1189,7 +1223,7 b' msgstr "Erreur d\xe2\x80\x99int\xc3\xa9grit\xc3\xa9 des donn\xc3\xa9es."'
1189
1223
1190 #: rhodecode/templates/index_base.html:192
1224 #: rhodecode/templates/index_base.html:192
1191 #: rhodecode/templates/admin/repos/repos.html:116
1225 #: rhodecode/templates/admin/repos/repos.html:116
1192 #: rhodecode/templates/admin/users/user_edit_my_account.html:274
1226 #: rhodecode/templates/admin/users/user_edit_my_account.html:190
1193 #: rhodecode/templates/bookmarks/bookmarks.html:64
1227 #: rhodecode/templates/bookmarks/bookmarks.html:64
1194 #: rhodecode/templates/branches/branches.html:64
1228 #: rhodecode/templates/branches/branches.html:64
1195 #: rhodecode/templates/journal/journal.html:206
1229 #: rhodecode/templates/journal/journal.html:206
@@ -1209,7 +1243,7 b' msgstr "Connexion \xc3\xa0"'
1209 #: rhodecode/templates/admin/admin_log.html:5
1243 #: rhodecode/templates/admin/admin_log.html:5
1210 #: rhodecode/templates/admin/users/user_add.html:32
1244 #: rhodecode/templates/admin/users/user_add.html:32
1211 #: rhodecode/templates/admin/users/user_edit.html:50
1245 #: rhodecode/templates/admin/users/user_edit.html:50
1212 #: rhodecode/templates/admin/users/user_edit_my_account.html:49
1246 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:26
1213 #: rhodecode/templates/base/base.html:83
1247 #: rhodecode/templates/base/base.html:83
1214 #: rhodecode/templates/summary/summary.html:113
1248 #: rhodecode/templates/summary/summary.html:113
1215 msgid "Username"
1249 msgid "Username"
@@ -1269,21 +1303,21 b' msgstr "Confirmation"'
1269 #: rhodecode/templates/register.html:47
1303 #: rhodecode/templates/register.html:47
1270 #: rhodecode/templates/admin/users/user_add.html:59
1304 #: rhodecode/templates/admin/users/user_add.html:59
1271 #: rhodecode/templates/admin/users/user_edit.html:86
1305 #: rhodecode/templates/admin/users/user_edit.html:86
1272 #: rhodecode/templates/admin/users/user_edit_my_account.html:76
1306 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:53
1273 msgid "First Name"
1307 msgid "First Name"
1274 msgstr "Prénom"
1308 msgstr "Prénom"
1275
1309
1276 #: rhodecode/templates/register.html:56
1310 #: rhodecode/templates/register.html:56
1277 #: rhodecode/templates/admin/users/user_add.html:68
1311 #: rhodecode/templates/admin/users/user_add.html:68
1278 #: rhodecode/templates/admin/users/user_edit.html:95
1312 #: rhodecode/templates/admin/users/user_edit.html:95
1279 #: rhodecode/templates/admin/users/user_edit_my_account.html:85
1313 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:62
1280 msgid "Last Name"
1314 msgid "Last Name"
1281 msgstr "Nom"
1315 msgstr "Nom"
1282
1316
1283 #: rhodecode/templates/register.html:65
1317 #: rhodecode/templates/register.html:65
1284 #: rhodecode/templates/admin/users/user_add.html:77
1318 #: rhodecode/templates/admin/users/user_add.html:77
1285 #: rhodecode/templates/admin/users/user_edit.html:104
1319 #: rhodecode/templates/admin/users/user_edit.html:104
1286 #: rhodecode/templates/admin/users/user_edit_my_account.html:94
1320 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:71
1287 #: rhodecode/templates/summary/summary.html:115
1321 #: rhodecode/templates/summary/summary.html:115
1288 msgid "Email"
1322 msgid "Email"
1289 msgstr "E-mail"
1323 msgstr "E-mail"
@@ -1346,8 +1380,8 b' msgstr "Historique d\xe2\x80\x99administration"'
1346 #: rhodecode/templates/admin/admin_log.html:6
1380 #: rhodecode/templates/admin/admin_log.html:6
1347 #: rhodecode/templates/admin/repos/repos.html:41
1381 #: rhodecode/templates/admin/repos/repos.html:41
1348 #: rhodecode/templates/admin/repos/repos.html:90
1382 #: rhodecode/templates/admin/repos/repos.html:90
1349 #: rhodecode/templates/admin/users/user_edit_my_account.html:135
1383 #: rhodecode/templates/admin/users/user_edit_my_account.html:51
1350 #: rhodecode/templates/admin/users/user_edit_my_account.html:136
1384 #: rhodecode/templates/admin/users/user_edit_my_account.html:52
1351 #: rhodecode/templates/journal/journal.html:52
1385 #: rhodecode/templates/journal/journal.html:52
1352 #: rhodecode/templates/journal/journal.html:53
1386 #: rhodecode/templates/journal/journal.html:53
1353 msgid "Action"
1387 msgid "Action"
@@ -1370,7 +1404,7 b' msgstr "Date"'
1370 msgid "From IP"
1404 msgid "From IP"
1371 msgstr "Depuis l’adresse IP"
1405 msgstr "Depuis l’adresse IP"
1372
1406
1373 #: rhodecode/templates/admin/admin_log.html:52
1407 #: rhodecode/templates/admin/admin_log.html:53
1374 msgid "No actions yet"
1408 msgid "No actions yet"
1375 msgstr "Aucune action n’a été enregistrée pour le moment."
1409 msgstr "Aucune action n’a été enregistrée pour le moment."
1376
1410
@@ -1451,7 +1485,7 b' msgstr "Attribut pour l\xe2\x80\x99e-mail"'
1451 #: rhodecode/templates/admin/settings/hooks.html:73
1485 #: rhodecode/templates/admin/settings/hooks.html:73
1452 #: rhodecode/templates/admin/users/user_edit.html:129
1486 #: rhodecode/templates/admin/users/user_edit.html:129
1453 #: rhodecode/templates/admin/users/user_edit.html:154
1487 #: rhodecode/templates/admin/users/user_edit.html:154
1454 #: rhodecode/templates/admin/users/user_edit_my_account.html:102
1488 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:79
1455 #: rhodecode/templates/admin/users_groups/users_group_edit.html:115
1489 #: rhodecode/templates/admin/users_groups/users_group_edit.html:115
1456 #: rhodecode/templates/settings/repo_settings.html:84
1490 #: rhodecode/templates/settings/repo_settings.html:84
1457 msgid "Save"
1491 msgid "Save"
@@ -1610,7 +1644,7 b' msgstr "\xc3\x89diter le d\xc3\xa9p\xc3\xb4t"'
1610
1644
1611 #: rhodecode/templates/admin/repos/repo_edit.html:13
1645 #: rhodecode/templates/admin/repos/repo_edit.html:13
1612 #: rhodecode/templates/admin/users/user_edit.html:13
1646 #: rhodecode/templates/admin/users/user_edit.html:13
1613 #: rhodecode/templates/admin/users/user_edit_my_account.html:155
1647 #: rhodecode/templates/admin/users/user_edit_my_account.html:71
1614 #: rhodecode/templates/admin/users_groups/users_group_edit.html:13
1648 #: rhodecode/templates/admin/users_groups/users_group_edit.html:13
1615 #: rhodecode/templates/files/files_source.html:32
1649 #: rhodecode/templates/files/files_source.html:32
1616 #: rhodecode/templates/journal/journal.html:72
1650 #: rhodecode/templates/journal/journal.html:72
@@ -1774,38 +1808,27 b' msgid "private repository"'
1774 msgstr "Dépôt privé"
1808 msgstr "Dépôt privé"
1775
1809
1776 #: rhodecode/templates/admin/repos/repo_edit_perms.html:33
1810 #: rhodecode/templates/admin/repos/repo_edit_perms.html:33
1777 #: rhodecode/templates/admin/repos/repo_edit_perms.html:53
1811 #: rhodecode/templates/admin/repos/repo_edit_perms.html:58
1778 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:23
1812 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:23
1779 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:42
1813 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:42
1780 msgid "revoke"
1814 msgid "revoke"
1781 msgstr "Révoquer"
1815 msgstr "Révoquer"
1782
1816
1783 #: rhodecode/templates/admin/repos/repo_edit_perms.html:75
1817 #: rhodecode/templates/admin/repos/repo_edit_perms.html:80
1784 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:64
1818 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:64
1785 msgid "Add another member"
1819 msgid "Add another member"
1786 msgstr "Ajouter un utilisateur"
1820 msgstr "Ajouter un utilisateur"
1787
1821
1788 #: rhodecode/templates/admin/repos/repo_edit_perms.html:89
1822 #: rhodecode/templates/admin/repos/repo_edit_perms.html:94
1789 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:78
1823 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:78
1790 msgid "Failed to remove user"
1824 msgid "Failed to remove user"
1791 msgstr "Échec de suppression de l’utilisateur"
1825 msgstr "Échec de suppression de l’utilisateur"
1792
1826
1793 #: rhodecode/templates/admin/repos/repo_edit_perms.html:104
1827 #: rhodecode/templates/admin/repos/repo_edit_perms.html:109
1794 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:93
1828 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:93
1795 msgid "Failed to remove users group"
1829 msgid "Failed to remove users group"
1796 msgstr "Erreur lors de la suppression du groupe d’utilisateurs."
1830 msgstr "Erreur lors de la suppression du groupe d’utilisateurs."
1797
1831
1798 #: rhodecode/templates/admin/repos/repo_edit_perms.html:123
1799 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:112
1800 msgid "Group"
1801 msgstr "Groupe"
1802
1803 #: rhodecode/templates/admin/repos/repo_edit_perms.html:124
1804 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:113
1805 #: rhodecode/templates/admin/users_groups/users_groups.html:33
1806 msgid "members"
1807 msgstr "Membres"
1808
1809 #: rhodecode/templates/admin/repos/repos.html:5
1832 #: rhodecode/templates/admin/repos/repos.html:5
1810 msgid "Repositories administration"
1833 msgid "Repositories administration"
1811 msgstr "Administration des dépôts"
1834 msgstr "Administration des dépôts"
@@ -1823,7 +1846,7 b' msgid "delete"'
1823 msgstr "Supprimer"
1846 msgstr "Supprimer"
1824
1847
1825 #: rhodecode/templates/admin/repos/repos.html:68
1848 #: rhodecode/templates/admin/repos/repos.html:68
1826 #: rhodecode/templates/admin/users/user_edit_my_account.html:158
1849 #: rhodecode/templates/admin/users/user_edit_my_account.html:74
1827 #, python-format
1850 #, python-format
1828 msgid "Confirm to delete this repository: %s"
1851 msgid "Confirm to delete this repository: %s"
1829 msgstr "Voulez-vous vraiment supprimer le dépôt %s ?"
1852 msgstr "Voulez-vous vraiment supprimer le dépôt %s ?"
@@ -1874,7 +1897,7 b' msgstr "\xc3\x89dition du groupe de d\xc3\xa9p\xc3\xb4t"'
1874 #: rhodecode/templates/admin/settings/settings.html:177
1897 #: rhodecode/templates/admin/settings/settings.html:177
1875 #: rhodecode/templates/admin/users/user_edit.html:130
1898 #: rhodecode/templates/admin/users/user_edit.html:130
1876 #: rhodecode/templates/admin/users/user_edit.html:155
1899 #: rhodecode/templates/admin/users/user_edit.html:155
1877 #: rhodecode/templates/admin/users/user_edit_my_account.html:103
1900 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:80
1878 #: rhodecode/templates/admin/users_groups/users_group_edit.html:116
1901 #: rhodecode/templates/admin/users_groups/users_group_edit.html:116
1879 #: rhodecode/templates/files/files_add.html:82
1902 #: rhodecode/templates/files/files_add.html:82
1880 #: rhodecode/templates/files/files_edit.html:68
1903 #: rhodecode/templates/files/files_edit.html:68
@@ -2103,17 +2126,17 b' msgid "Edit user"'
2103 msgstr "Éditer l'utilisateur"
2126 msgstr "Éditer l'utilisateur"
2104
2127
2105 #: rhodecode/templates/admin/users/user_edit.html:34
2128 #: rhodecode/templates/admin/users/user_edit.html:34
2106 #: rhodecode/templates/admin/users/user_edit_my_account.html:33
2129 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:10
2107 msgid "Change your avatar at"
2130 msgid "Change your avatar at"
2108 msgstr "Vous pouvez changer votre avatar sur"
2131 msgstr "Vous pouvez changer votre avatar sur"
2109
2132
2110 #: rhodecode/templates/admin/users/user_edit.html:35
2133 #: rhodecode/templates/admin/users/user_edit.html:35
2111 #: rhodecode/templates/admin/users/user_edit_my_account.html:34
2134 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:11
2112 msgid "Using"
2135 msgid "Using"
2113 msgstr "en utilisant l’adresse"
2136 msgstr "en utilisant l’adresse"
2114
2137
2115 #: rhodecode/templates/admin/users/user_edit.html:43
2138 #: rhodecode/templates/admin/users/user_edit.html:43
2116 #: rhodecode/templates/admin/users/user_edit_my_account.html:43
2139 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:20
2117 msgid "API key"
2140 msgid "API key"
2118 msgstr "Clé d’API"
2141 msgstr "Clé d’API"
2119
2142
@@ -2122,12 +2145,12 b' msgid "LDAP DN"'
2122 msgstr "DN LDAP"
2145 msgstr "DN LDAP"
2123
2146
2124 #: rhodecode/templates/admin/users/user_edit.html:68
2147 #: rhodecode/templates/admin/users/user_edit.html:68
2125 #: rhodecode/templates/admin/users/user_edit_my_account.html:58
2148 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:35
2126 msgid "New password"
2149 msgid "New password"
2127 msgstr "Nouveau mot de passe"
2150 msgstr "Nouveau mot de passe"
2128
2151
2129 #: rhodecode/templates/admin/users/user_edit.html:77
2152 #: rhodecode/templates/admin/users/user_edit.html:77
2130 #: rhodecode/templates/admin/users/user_edit_my_account.html:67
2153 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:44
2131 msgid "New password confirmation"
2154 msgid "New password confirmation"
2132 msgstr "Confirmation du nouveau mot de passe"
2155 msgstr "Confirmation du nouveau mot de passe"
2133
2156
@@ -2145,21 +2168,21 b' msgstr "Mon compte"'
2145 msgid "My Account"
2168 msgid "My Account"
2146 msgstr "Mon compte"
2169 msgstr "Mon compte"
2147
2170
2148 #: rhodecode/templates/admin/users/user_edit_my_account.html:116
2171 #: rhodecode/templates/admin/users/user_edit_my_account.html:32
2149 #: rhodecode/templates/journal/journal.html:32
2172 #: rhodecode/templates/journal/journal.html:32
2150 msgid "My repos"
2173 msgid "My repos"
2151 msgstr "Mes dépôts"
2174 msgstr "Mes dépôts"
2152
2175
2153 #: rhodecode/templates/admin/users/user_edit_my_account.html:116
2176 #: rhodecode/templates/admin/users/user_edit_my_account.html:32
2154 msgid "My permissions"
2177 msgid "My permissions"
2155 msgstr "Mes permissions"
2178 msgstr "Mes permissions"
2156
2179
2157 #: rhodecode/templates/admin/users/user_edit_my_account.html:121
2180 #: rhodecode/templates/admin/users/user_edit_my_account.html:37
2158 #: rhodecode/templates/journal/journal.html:37
2181 #: rhodecode/templates/journal/journal.html:37
2159 msgid "ADD"
2182 msgid "ADD"
2160 msgstr "AJOUTER"
2183 msgstr "AJOUTER"
2161
2184
2162 #: rhodecode/templates/admin/users/user_edit_my_account.html:134
2185 #: rhodecode/templates/admin/users/user_edit_my_account.html:50
2163 #: rhodecode/templates/bookmarks/bookmarks.html:40
2186 #: rhodecode/templates/bookmarks/bookmarks.html:40
2164 #: rhodecode/templates/bookmarks/bookmarks_data.html:9
2187 #: rhodecode/templates/bookmarks/bookmarks_data.html:9
2165 #: rhodecode/templates/branches/branches.html:40
2188 #: rhodecode/templates/branches/branches.html:40
@@ -2169,23 +2192,23 b' msgstr "AJOUTER"'
2169 msgid "Revision"
2192 msgid "Revision"
2170 msgstr "Révision"
2193 msgstr "Révision"
2171
2194
2172 #: rhodecode/templates/admin/users/user_edit_my_account.html:155
2195 #: rhodecode/templates/admin/users/user_edit_my_account.html:71
2173 #: rhodecode/templates/journal/journal.html:72
2196 #: rhodecode/templates/journal/journal.html:72
2174 msgid "private"
2197 msgid "private"
2175 msgstr "privé"
2198 msgstr "privé"
2176
2199
2177 #: rhodecode/templates/admin/users/user_edit_my_account.html:165
2200 #: rhodecode/templates/admin/users/user_edit_my_account.html:81
2178 #: rhodecode/templates/journal/journal.html:85
2201 #: rhodecode/templates/journal/journal.html:85
2179 msgid "No repositories yet"
2202 msgid "No repositories yet"
2180 msgstr "Aucun dépôt pour le moment"
2203 msgstr "Aucun dépôt pour le moment"
2181
2204
2182 #: rhodecode/templates/admin/users/user_edit_my_account.html:167
2205 #: rhodecode/templates/admin/users/user_edit_my_account.html:83
2183 #: rhodecode/templates/journal/journal.html:87
2206 #: rhodecode/templates/journal/journal.html:87
2184 msgid "create one now"
2207 msgid "create one now"
2185 msgstr "En créer un maintenant"
2208 msgstr "En créer un maintenant"
2186
2209
2187 #: rhodecode/templates/admin/users/user_edit_my_account.html:184
2210 #: rhodecode/templates/admin/users/user_edit_my_account.html:100
2188 #: rhodecode/templates/admin/users/user_edit_my_account.html:285
2211 #: rhodecode/templates/admin/users/user_edit_my_account.html:201
2189 msgid "Permission"
2212 msgid "Permission"
2190 msgstr "Permission"
2213 msgstr "Permission"
2191
2214
@@ -2286,6 +2309,11 b' msgstr "AJOUTER UN NOUVEAU GROUPE"'
2286 msgid "group name"
2309 msgid "group name"
2287 msgstr "Nom du groupe"
2310 msgstr "Nom du groupe"
2288
2311
2312 #: rhodecode/templates/admin/users_groups/users_groups.html:33
2313 #: rhodecode/templates/base/root.html:46
2314 msgid "members"
2315 msgstr "Membres"
2316
2289 #: rhodecode/templates/admin/users_groups/users_groups.html:45
2317 #: rhodecode/templates/admin/users_groups/users_groups.html:45
2290 #, python-format
2318 #, python-format
2291 msgid "Confirm to delete this users group: %s"
2319 msgid "Confirm to delete this users group: %s"
@@ -2445,21 +2473,25 b' msgstr "Forks"'
2445 msgid "Search"
2473 msgid "Search"
2446 msgstr "Rechercher"
2474 msgstr "Rechercher"
2447
2475
2448 #: rhodecode/templates/base/root.html:53
2476 #: rhodecode/templates/base/root.html:42
2449 msgid "add another comment"
2477 msgid "add another comment"
2450 msgstr "Nouveau commentaire"
2478 msgstr "Nouveau commentaire"
2451
2479
2452 #: rhodecode/templates/base/root.html:54
2480 #: rhodecode/templates/base/root.html:43
2453 #: rhodecode/templates/journal/journal.html:111
2481 #: rhodecode/templates/journal/journal.html:111
2454 #: rhodecode/templates/summary/summary.html:52
2482 #: rhodecode/templates/summary/summary.html:52
2455 msgid "Stop following this repository"
2483 msgid "Stop following this repository"
2456 msgstr "Arrêter de suivre ce dépôt"
2484 msgstr "Arrêter de suivre ce dépôt"
2457
2485
2458 #: rhodecode/templates/base/root.html:55
2486 #: rhodecode/templates/base/root.html:44
2459 #: rhodecode/templates/summary/summary.html:56
2487 #: rhodecode/templates/summary/summary.html:56
2460 msgid "Start following this repository"
2488 msgid "Start following this repository"
2461 msgstr "Suivre ce dépôt"
2489 msgstr "Suivre ce dépôt"
2462
2490
2491 #: rhodecode/templates/base/root.html:45
2492 msgid "Group"
2493 msgstr "Groupe"
2494
2463 #: rhodecode/templates/bookmarks/bookmarks.html:5
2495 #: rhodecode/templates/bookmarks/bookmarks.html:5
2464 msgid "Bookmarks"
2496 msgid "Bookmarks"
2465 msgstr "Signets"
2497 msgstr "Signets"
@@ -2588,7 +2620,7 b' msgid "download diff"'
2588 msgstr "Télécharger le diff"
2620 msgstr "Télécharger le diff"
2589
2621
2590 #: rhodecode/templates/changeset/changeset.html:42
2622 #: rhodecode/templates/changeset/changeset.html:42
2591 #: rhodecode/templates/changeset/changeset_file_comment.html:69
2623 #: rhodecode/templates/changeset/changeset_file_comment.html:71
2592 #, python-format
2624 #, python-format
2593 msgid "%d comment"
2625 msgid "%d comment"
2594 msgid_plural "%d comments"
2626 msgid_plural "%d comments"
@@ -2596,7 +2628,7 b' msgstr[0] "%d commentaire"'
2596 msgstr[1] "%d commentaires"
2628 msgstr[1] "%d commentaires"
2597
2629
2598 #: rhodecode/templates/changeset/changeset.html:42
2630 #: rhodecode/templates/changeset/changeset.html:42
2599 #: rhodecode/templates/changeset/changeset_file_comment.html:69
2631 #: rhodecode/templates/changeset/changeset_file_comment.html:71
2600 #, python-format
2632 #, python-format
2601 msgid "(%d inline)"
2633 msgid "(%d inline)"
2602 msgid_plural "(%d inline)"
2634 msgid_plural "(%d inline)"
@@ -2621,7 +2653,7 b' msgid "Commenting on line {1}."'
2621 msgstr "Commentaire sur la ligne {1}."
2653 msgstr "Commentaire sur la ligne {1}."
2622
2654
2623 #: rhodecode/templates/changeset/changeset_file_comment.html:39
2655 #: rhodecode/templates/changeset/changeset_file_comment.html:39
2624 #: rhodecode/templates/changeset/changeset_file_comment.html:100
2656 #: rhodecode/templates/changeset/changeset_file_comment.html:102
2625 #, python-format
2657 #, python-format
2626 msgid "Comments parsed using %s syntax with %s support."
2658 msgid "Comments parsed using %s syntax with %s support."
2627 msgstr ""
2659 msgstr ""
@@ -2629,31 +2661,31 b' msgstr ""'
2629 "commande %s."
2661 "commande %s."
2630
2662
2631 #: rhodecode/templates/changeset/changeset_file_comment.html:41
2663 #: rhodecode/templates/changeset/changeset_file_comment.html:41
2632 #: rhodecode/templates/changeset/changeset_file_comment.html:102
2664 #: rhodecode/templates/changeset/changeset_file_comment.html:104
2633 msgid "Use @username inside this text to send notification to this RhodeCode user"
2665 msgid "Use @username inside this text to send notification to this RhodeCode user"
2634 msgstr ""
2666 msgstr ""
2635 "Utilisez @nomutilisateur dans ce texte pour envoyer une notification à "
2667 "Utilisez @nomutilisateur dans ce texte pour envoyer une notification à "
2636 "l’utilisateur RhodeCode en question."
2668 "l’utilisateur RhodeCode en question."
2637
2669
2638 #: rhodecode/templates/changeset/changeset_file_comment.html:47
2670 #: rhodecode/templates/changeset/changeset_file_comment.html:49
2639 #: rhodecode/templates/changeset/changeset_file_comment.html:107
2671 #: rhodecode/templates/changeset/changeset_file_comment.html:110
2640 msgid "Comment"
2672 msgid "Comment"
2641 msgstr "Commentaire"
2673 msgstr "Commentaire"
2642
2674
2643 #: rhodecode/templates/changeset/changeset_file_comment.html:48
2675 #: rhodecode/templates/changeset/changeset_file_comment.html:50
2644 #: rhodecode/templates/changeset/changeset_file_comment.html:59
2676 #: rhodecode/templates/changeset/changeset_file_comment.html:61
2645 msgid "Hide"
2677 msgid "Hide"
2646 msgstr "Masquer"
2678 msgstr "Masquer"
2647
2679
2648 #: rhodecode/templates/changeset/changeset_file_comment.html:55
2680 #: rhodecode/templates/changeset/changeset_file_comment.html:57
2649 msgid "You need to be logged in to comment."
2681 msgid "You need to be logged in to comment."
2650 msgstr "Vous devez être connecté pour poster des commentaires."
2682 msgstr "Vous devez être connecté pour poster des commentaires."
2651
2683
2652 #: rhodecode/templates/changeset/changeset_file_comment.html:55
2684 #: rhodecode/templates/changeset/changeset_file_comment.html:57
2653 msgid "Login now"
2685 msgid "Login now"
2654 msgstr "Se connecter maintenant"
2686 msgstr "Se connecter maintenant"
2655
2687
2656 #: rhodecode/templates/changeset/changeset_file_comment.html:97
2688 #: rhodecode/templates/changeset/changeset_file_comment.html:99
2657 msgid "Leave a comment"
2689 msgid "Leave a comment"
2658 msgstr "Laisser un commentaire"
2690 msgstr "Laisser un commentaire"
2659
2691
@@ -7,7 +7,7 b' msgid ""'
7 msgstr ""
7 msgstr ""
8 "Project-Id-Version: RhodeCode 1.2.0\n"
8 "Project-Id-Version: RhodeCode 1.2.0\n"
9 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
9 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
10 "POT-Creation-Date: 2012-05-27 17:41+0200\n"
10 "POT-Creation-Date: 2012-06-03 01:06+0200\n"
11 "PO-Revision-Date: 2012-05-22 16:47-0300\n"
11 "PO-Revision-Date: 2012-05-22 16:47-0300\n"
12 "Last-Translator: Augusto Herrmann <augusto.herrmann@gmail.com>\n"
12 "Last-Translator: Augusto Herrmann <augusto.herrmann@gmail.com>\n"
13 "Language-Team: pt_BR <LL@li.org>\n"
13 "Language-Team: pt_BR <LL@li.org>\n"
@@ -17,25 +17,25 b' msgstr ""'
17 "Content-Transfer-Encoding: 8bit\n"
17 "Content-Transfer-Encoding: 8bit\n"
18 "Generated-By: Babel 0.9.6\n"
18 "Generated-By: Babel 0.9.6\n"
19
19
20 #: rhodecode/controllers/changelog.py:96
20 #: rhodecode/controllers/changelog.py:95
21 msgid "All Branches"
21 msgid "All Branches"
22 msgstr "Todos os Ramos"
22 msgstr "Todos os Ramos"
23
23
24 #: rhodecode/controllers/changeset.py:79
24 #: rhodecode/controllers/changeset.py:80
25 msgid "show white space"
25 msgid "show white space"
26 msgstr "mostrar espaços em branco"
26 msgstr "mostrar espaços em branco"
27
27
28 #: rhodecode/controllers/changeset.py:86 rhodecode/controllers/changeset.py:93
28 #: rhodecode/controllers/changeset.py:87 rhodecode/controllers/changeset.py:94
29 msgid "ignore white space"
29 msgid "ignore white space"
30 msgstr "ignorar espaços em branco"
30 msgstr "ignorar espaços em branco"
31
31
32 #: rhodecode/controllers/changeset.py:153
32 #: rhodecode/controllers/changeset.py:154
33 #, python-format
33 #, python-format
34 msgid "%s line context"
34 msgid "%s line context"
35 msgstr "contexto de %s linhas"
35 msgstr "contexto de %s linhas"
36
36
37 #: rhodecode/controllers/changeset.py:320
37 #: rhodecode/controllers/changeset.py:324
38 #: rhodecode/controllers/changeset.py:335 rhodecode/lib/diffs.py:62
38 #: rhodecode/controllers/changeset.py:339 rhodecode/lib/diffs.py:62
39 msgid "binary file"
39 msgid "binary file"
40 msgstr "arquivo binário"
40 msgstr "arquivo binário"
41
41
@@ -191,7 +191,7 b' msgstr "Ocorreu um erro ao bifurcar o reposit\xc3\xb3rio %s"'
191 msgid "%s public journal %s feed"
191 msgid "%s public journal %s feed"
192 msgstr "diário público de %s - feed %s"
192 msgstr "diário público de %s - feed %s"
193
193
194 #: rhodecode/controllers/journal.py:190 rhodecode/controllers/journal.py:224
194 #: rhodecode/controllers/journal.py:190 rhodecode/controllers/journal.py:223
195 #: rhodecode/templates/admin/repos/repo_edit.html:177
195 #: rhodecode/templates/admin/repos/repo_edit.html:177
196 #: rhodecode/templates/base/base.html:307
196 #: rhodecode/templates/base/base.html:307
197 #: rhodecode/templates/base/base.html:309
197 #: rhodecode/templates/base/base.html:309
@@ -228,19 +228,19 b' msgid "An error occurred during this sea'
228 msgstr "Ocorreu um erro durante essa operação de busca"
228 msgstr "Ocorreu um erro durante essa operação de busca"
229
229
230 #: rhodecode/controllers/settings.py:103
230 #: rhodecode/controllers/settings.py:103
231 #: rhodecode/controllers/admin/repos.py:211
231 #: rhodecode/controllers/admin/repos.py:213
232 #, python-format
232 #, python-format
233 msgid "Repository %s updated successfully"
233 msgid "Repository %s updated successfully"
234 msgstr "Repositório %s atualizado com sucesso"
234 msgstr "Repositório %s atualizado com sucesso"
235
235
236 #: rhodecode/controllers/settings.py:121
236 #: rhodecode/controllers/settings.py:121
237 #: rhodecode/controllers/admin/repos.py:229
237 #: rhodecode/controllers/admin/repos.py:231
238 #, python-format
238 #, python-format
239 msgid "error occurred during update of repository %s"
239 msgid "error occurred during update of repository %s"
240 msgstr "ocorreu um erro ao atualizar o repositório %s"
240 msgstr "ocorreu um erro ao atualizar o repositório %s"
241
241
242 #: rhodecode/controllers/settings.py:139
242 #: rhodecode/controllers/settings.py:139
243 #: rhodecode/controllers/admin/repos.py:247
243 #: rhodecode/controllers/admin/repos.py:249
244 #, python-format
244 #, python-format
245 msgid ""
245 msgid ""
246 "%s repository is not mapped to db perhaps it was moved or renamed from "
246 "%s repository is not mapped to db perhaps it was moved or renamed from "
@@ -252,14 +252,14 b' msgstr ""'
252 "outra vez para varrer novamente por repositórios"
252 "outra vez para varrer novamente por repositórios"
253
253
254 #: rhodecode/controllers/settings.py:151
254 #: rhodecode/controllers/settings.py:151
255 #: rhodecode/controllers/admin/repos.py:259
255 #: rhodecode/controllers/admin/repos.py:261
256 #, python-format
256 #, python-format
257 msgid "deleted repository %s"
257 msgid "deleted repository %s"
258 msgstr "excluído o repositório %s"
258 msgstr "excluído o repositório %s"
259
259
260 #: rhodecode/controllers/settings.py:155
260 #: rhodecode/controllers/settings.py:155
261 #: rhodecode/controllers/admin/repos.py:269
261 #: rhodecode/controllers/admin/repos.py:271
262 #: rhodecode/controllers/admin/repos.py:275
262 #: rhodecode/controllers/admin/repos.py:277
263 #, python-format
263 #, python-format
264 msgid "An error occurred during deletion of %s"
264 msgid "An error occurred during deletion of %s"
265 msgstr "Ocorreu um erro durante a exclusão de %s"
265 msgstr "Ocorreu um erro durante a exclusão de %s"
@@ -408,62 +408,62 b' msgstr "reposit\xc3\xb3rio %s criado a partir de %s"'
408 msgid "created repository %s"
408 msgid "created repository %s"
409 msgstr "repositório %s criado"
409 msgstr "repositório %s criado"
410
410
411 #: rhodecode/controllers/admin/repos.py:177
411 #: rhodecode/controllers/admin/repos.py:179
412 #, python-format
412 #, python-format
413 msgid "error occurred during creation of repository %s"
413 msgid "error occurred during creation of repository %s"
414 msgstr "ocorreu um erro ao criar o repositório %s"
414 msgstr "ocorreu um erro ao criar o repositório %s"
415
415
416 #: rhodecode/controllers/admin/repos.py:264
416 #: rhodecode/controllers/admin/repos.py:266
417 #, python-format
417 #, python-format
418 msgid "Cannot delete %s it still contains attached forks"
418 msgid "Cannot delete %s it still contains attached forks"
419 msgstr "Nao é possível excluir %s pois ele ainda contém bifurcações vinculadas"
419 msgstr "Nao é possível excluir %s pois ele ainda contém bifurcações vinculadas"
420
420
421 #: rhodecode/controllers/admin/repos.py:293
421 #: rhodecode/controllers/admin/repos.py:295
422 msgid "An error occurred during deletion of repository user"
422 msgid "An error occurred during deletion of repository user"
423 msgstr "Ocorreu um erro ao excluir usuário de repositório"
423 msgstr "Ocorreu um erro ao excluir usuário de repositório"
424
424
425 #: rhodecode/controllers/admin/repos.py:312
425 #: rhodecode/controllers/admin/repos.py:314
426 msgid "An error occurred during deletion of repository users groups"
426 msgid "An error occurred during deletion of repository users groups"
427 msgstr "Ocorreu um erro ao excluir grupo de usuário de repositório"
427 msgstr "Ocorreu um erro ao excluir grupo de usuário de repositório"
428
428
429 #: rhodecode/controllers/admin/repos.py:329
429 #: rhodecode/controllers/admin/repos.py:331
430 msgid "An error occurred during deletion of repository stats"
430 msgid "An error occurred during deletion of repository stats"
431 msgstr "Ocorreu um erro ao excluir estatísticas de repositório"
431 msgstr "Ocorreu um erro ao excluir estatísticas de repositório"
432
432
433 #: rhodecode/controllers/admin/repos.py:345
433 #: rhodecode/controllers/admin/repos.py:347
434 msgid "An error occurred during cache invalidation"
434 msgid "An error occurred during cache invalidation"
435 msgstr "Ocorreu um erro ao invalidar o cache"
435 msgstr "Ocorreu um erro ao invalidar o cache"
436
436
437 #: rhodecode/controllers/admin/repos.py:365
437 #: rhodecode/controllers/admin/repos.py:367
438 msgid "Updated repository visibility in public journal"
438 msgid "Updated repository visibility in public journal"
439 msgstr "Atualizada a visibilidade do repositório no diário público"
439 msgstr "Atualizada a visibilidade do repositório no diário público"
440
440
441 #: rhodecode/controllers/admin/repos.py:369
441 #: rhodecode/controllers/admin/repos.py:371
442 msgid "An error occurred during setting this repository in public journal"
442 msgid "An error occurred during setting this repository in public journal"
443 msgstr "Ocorreu um erro ao ajustar esse repositório no diário público"
443 msgstr "Ocorreu um erro ao ajustar esse repositório no diário público"
444
444
445 #: rhodecode/controllers/admin/repos.py:374 rhodecode/model/forms.py:54
445 #: rhodecode/controllers/admin/repos.py:376 rhodecode/model/forms.py:54
446 msgid "Token mismatch"
446 msgid "Token mismatch"
447 msgstr "Descompasso de Token"
447 msgstr "Descompasso de Token"
448
448
449 #: rhodecode/controllers/admin/repos.py:387
449 #: rhodecode/controllers/admin/repos.py:389
450 msgid "Pulled from remote location"
450 msgid "Pulled from remote location"
451 msgstr "Realizado pull de localização remota"
451 msgstr "Realizado pull de localização remota"
452
452
453 #: rhodecode/controllers/admin/repos.py:389
453 #: rhodecode/controllers/admin/repos.py:391
454 msgid "An error occurred during pull from remote location"
454 msgid "An error occurred during pull from remote location"
455 msgstr "Ocorreu um erro ao realizar pull de localização remota"
455 msgstr "Ocorreu um erro ao realizar pull de localização remota"
456
456
457 #: rhodecode/controllers/admin/repos.py:405
457 #: rhodecode/controllers/admin/repos.py:407
458 msgid "Nothing"
458 msgid "Nothing"
459 msgstr "Nada"
459 msgstr "Nada"
460
460
461 #: rhodecode/controllers/admin/repos.py:407
461 #: rhodecode/controllers/admin/repos.py:409
462 #, python-format
462 #, python-format
463 msgid "Marked repo %s as fork of %s"
463 msgid "Marked repo %s as fork of %s"
464 msgstr "Marcado repositório %s como bifurcação de %s"
464 msgstr "Marcado repositório %s como bifurcação de %s"
465
465
466 #: rhodecode/controllers/admin/repos.py:411
466 #: rhodecode/controllers/admin/repos.py:413
467 msgid "An error occurred during this operation"
467 msgid "An error occurred during this operation"
468 msgstr "Ocorreu um erro durante essa operação"
468 msgstr "Ocorreu um erro durante essa operação"
469
469
@@ -557,77 +557,77 b' msgstr "Tarefa de e-mail criada"'
557 msgid "You can't edit this user since it's crucial for entire application"
557 msgid "You can't edit this user since it's crucial for entire application"
558 msgstr "Você não pode editar esse usuário pois ele é crucial para toda a aplicação"
558 msgstr "Você não pode editar esse usuário pois ele é crucial para toda a aplicação"
559
559
560 #: rhodecode/controllers/admin/settings.py:365
560 #: rhodecode/controllers/admin/settings.py:367
561 msgid "Your account was updated successfully"
561 msgid "Your account was updated successfully"
562 msgstr "Sua conta foi atualizada com sucesso"
562 msgstr "Sua conta foi atualizada com sucesso"
563
563
564 #: rhodecode/controllers/admin/settings.py:384
564 #: rhodecode/controllers/admin/settings.py:387
565 #: rhodecode/controllers/admin/users.py:132
565 #: rhodecode/controllers/admin/users.py:138
566 #, python-format
566 #, python-format
567 msgid "error occurred during update of user %s"
567 msgid "error occurred during update of user %s"
568 msgstr "ocorreu um erro ao atualizar o usuário %s"
568 msgstr "ocorreu um erro ao atualizar o usuário %s"
569
569
570 #: rhodecode/controllers/admin/users.py:79
570 #: rhodecode/controllers/admin/users.py:83
571 #, python-format
571 #, python-format
572 msgid "created user %s"
572 msgid "created user %s"
573 msgstr "usuário %s criado"
573 msgstr "usuário %s criado"
574
574
575 #: rhodecode/controllers/admin/users.py:92
575 #: rhodecode/controllers/admin/users.py:95
576 #, python-format
576 #, python-format
577 msgid "error occurred during creation of user %s"
577 msgid "error occurred during creation of user %s"
578 msgstr "ocorreu um erro ao criar o usuário %s"
578 msgstr "ocorreu um erro ao criar o usuário %s"
579
579
580 #: rhodecode/controllers/admin/users.py:118
580 #: rhodecode/controllers/admin/users.py:124
581 msgid "User updated successfully"
581 msgid "User updated successfully"
582 msgstr "Usuário atualizado com sucesso"
582 msgstr "Usuário atualizado com sucesso"
583
583
584 #: rhodecode/controllers/admin/users.py:149
584 #: rhodecode/controllers/admin/users.py:155
585 msgid "successfully deleted user"
585 msgid "successfully deleted user"
586 msgstr "usuário excluído com sucesso"
586 msgstr "usuário excluído com sucesso"
587
587
588 #: rhodecode/controllers/admin/users.py:154
588 #: rhodecode/controllers/admin/users.py:160
589 msgid "An error occurred during deletion of user"
589 msgid "An error occurred during deletion of user"
590 msgstr "Ocorreu um erro ao excluir o usuário"
590 msgstr "Ocorreu um erro ao excluir o usuário"
591
591
592 #: rhodecode/controllers/admin/users.py:169
592 #: rhodecode/controllers/admin/users.py:175
593 msgid "You can't edit this user"
593 msgid "You can't edit this user"
594 msgstr "Você não pode editar esse usuário"
594 msgstr "Você não pode editar esse usuário"
595
595
596 #: rhodecode/controllers/admin/users.py:199
596 #: rhodecode/controllers/admin/users.py:205
597 #: rhodecode/controllers/admin/users_groups.py:215
597 #: rhodecode/controllers/admin/users_groups.py:219
598 msgid "Granted 'repository create' permission to user"
598 msgid "Granted 'repository create' permission to user"
599 msgstr "Concedida permissão de 'criar repositório' ao usuário"
599 msgstr "Concedida permissão de 'criar repositório' ao usuário"
600
600
601 #: rhodecode/controllers/admin/users.py:208
601 #: rhodecode/controllers/admin/users.py:214
602 #: rhodecode/controllers/admin/users_groups.py:225
602 #: rhodecode/controllers/admin/users_groups.py:229
603 msgid "Revoked 'repository create' permission to user"
603 msgid "Revoked 'repository create' permission to user"
604 msgstr "Revogada permissão de 'criar repositório' ao usuário"
604 msgstr "Revogada permissão de 'criar repositório' ao usuário"
605
605
606 #: rhodecode/controllers/admin/users_groups.py:79
606 #: rhodecode/controllers/admin/users_groups.py:84
607 #, python-format
607 #, python-format
608 msgid "created users group %s"
608 msgid "created users group %s"
609 msgstr "criado grupo de usuários %s"
609 msgstr "criado grupo de usuários %s"
610
610
611 #: rhodecode/controllers/admin/users_groups.py:92
611 #: rhodecode/controllers/admin/users_groups.py:95
612 #, python-format
612 #, python-format
613 msgid "error occurred during creation of users group %s"
613 msgid "error occurred during creation of users group %s"
614 msgstr "ocorreu um erro ao criar o grupo de usuários %s"
614 msgstr "ocorreu um erro ao criar o grupo de usuários %s"
615
615
616 #: rhodecode/controllers/admin/users_groups.py:128
616 #: rhodecode/controllers/admin/users_groups.py:135
617 #, python-format
617 #, python-format
618 msgid "updated users group %s"
618 msgid "updated users group %s"
619 msgstr "grupo de usuários %s atualizado"
619 msgstr "grupo de usuários %s atualizado"
620
620
621 #: rhodecode/controllers/admin/users_groups.py:148
621 #: rhodecode/controllers/admin/users_groups.py:152
622 #, python-format
622 #, python-format
623 msgid "error occurred during update of users group %s"
623 msgid "error occurred during update of users group %s"
624 msgstr "ocorreu um erro ao atualizar o grupo de usuários %s"
624 msgstr "ocorreu um erro ao atualizar o grupo de usuários %s"
625
625
626 #: rhodecode/controllers/admin/users_groups.py:165
626 #: rhodecode/controllers/admin/users_groups.py:169
627 msgid "successfully deleted users group"
627 msgid "successfully deleted users group"
628 msgstr "grupo de usuários excluído com sucesso"
628 msgstr "grupo de usuários excluído com sucesso"
629
629
630 #: rhodecode/controllers/admin/users_groups.py:170
630 #: rhodecode/controllers/admin/users_groups.py:174
631 msgid "An error occurred during deletion of users group"
631 msgid "An error occurred during deletion of users group"
632 msgstr "Ocorreu um erro ao excluir o grupo de usuários"
632 msgstr "Ocorreu um erro ao excluir o grupo de usuários"
633
633
@@ -687,60 +687,94 b' msgstr "revis\xc3\xb5es"'
687 msgid "fork name "
687 msgid "fork name "
688 msgstr "nome da bifurcação"
688 msgstr "nome da bifurcação"
689
689
690 #: rhodecode/lib/helpers.py:540
690 #: rhodecode/lib/helpers.py:550
691 msgid "[deleted] repository"
691 msgid "[deleted] repository"
692 msgstr "repositório [excluído]"
692 msgstr "repositório [excluído]"
693
693
694 #: rhodecode/lib/helpers.py:541 rhodecode/lib/helpers.py:546
694 #: rhodecode/lib/helpers.py:552 rhodecode/lib/helpers.py:562
695 msgid "[created] repository"
695 msgid "[created] repository"
696 msgstr "repositório [criado]"
696 msgstr "repositório [criado]"
697
697
698 #: rhodecode/lib/helpers.py:542
698 #: rhodecode/lib/helpers.py:554
699 msgid "[created] repository as fork"
699 msgid "[created] repository as fork"
700 msgstr "repositório [criado] como uma bifurcação"
700 msgstr "repositório [criado] como uma bifurcação"
701
701
702 #: rhodecode/lib/helpers.py:543 rhodecode/lib/helpers.py:547
702 #: rhodecode/lib/helpers.py:556 rhodecode/lib/helpers.py:564
703 msgid "[forked] repository"
703 msgid "[forked] repository"
704 msgstr "repositório [bifurcado]"
704 msgstr "repositório [bifurcado]"
705
705
706 #: rhodecode/lib/helpers.py:544 rhodecode/lib/helpers.py:548
706 #: rhodecode/lib/helpers.py:558 rhodecode/lib/helpers.py:566
707 msgid "[updated] repository"
707 msgid "[updated] repository"
708 msgstr "repositório [atualizado]"
708 msgstr "repositório [atualizado]"
709
709
710 #: rhodecode/lib/helpers.py:545
710 #: rhodecode/lib/helpers.py:560
711 msgid "[delete] repository"
711 msgid "[delete] repository"
712 msgstr "[excluir] repositório"
712 msgstr "[excluir] repositório"
713
713
714 #: rhodecode/lib/helpers.py:549
714 #: rhodecode/lib/helpers.py:568
715 #, fuzzy, python-format
716 #| msgid "created user %s"
717 msgid "[created] user"
718 msgstr "usuário %s criado"
719
720 #: rhodecode/lib/helpers.py:570
721 #, fuzzy, python-format
722 #| msgid "updated users group %s"
723 msgid "[updated] user"
724 msgstr "grupo de usuários %s atualizado"
725
726 #: rhodecode/lib/helpers.py:572
727 #, fuzzy, python-format
728 #| msgid "created users group %s"
729 msgid "[created] users group"
730 msgstr "criado grupo de usuários %s"
731
732 #: rhodecode/lib/helpers.py:574
733 #, fuzzy, python-format
734 #| msgid "updated users group %s"
735 msgid "[updated] users group"
736 msgstr "grupo de usuários %s atualizado"
737
738 #: rhodecode/lib/helpers.py:576
739 #, fuzzy
740 #| msgid "[created] repository"
741 msgid "[commented] on revision in repository"
742 msgstr "repositório [criado]"
743
744 #: rhodecode/lib/helpers.py:578
715 msgid "[pushed] into"
745 msgid "[pushed] into"
716 msgstr "[realizado push] para"
746 msgstr "[realizado push] para"
717
747
718 #: rhodecode/lib/helpers.py:550
748 #: rhodecode/lib/helpers.py:580
719 msgid "[committed via RhodeCode] into"
749 #, fuzzy
750 #| msgid "[committed via RhodeCode] into"
751 msgid "[committed via RhodeCode] into repository"
720 msgstr "[realizado commit via RhodeCode] para"
752 msgstr "[realizado commit via RhodeCode] para"
721
753
722 #: rhodecode/lib/helpers.py:551
754 #: rhodecode/lib/helpers.py:582
723 msgid "[pulled from remote] into"
755 #, fuzzy
756 #| msgid "[pulled from remote] into"
757 msgid "[pulled from remote] into repository"
724 msgstr "[realizado pull remoto] para"
758 msgstr "[realizado pull remoto] para"
725
759
726 #: rhodecode/lib/helpers.py:552
760 #: rhodecode/lib/helpers.py:584
727 msgid "[pulled] from"
761 msgid "[pulled] from"
728 msgstr "[realizado pull] a partir de"
762 msgstr "[realizado pull] a partir de"
729
763
730 #: rhodecode/lib/helpers.py:553
764 #: rhodecode/lib/helpers.py:586
731 msgid "[started following] repository"
765 msgid "[started following] repository"
732 msgstr "[passou a seguir] o repositório"
766 msgstr "[passou a seguir] o repositório"
733
767
734 #: rhodecode/lib/helpers.py:554
768 #: rhodecode/lib/helpers.py:588
735 msgid "[stopped following] repository"
769 msgid "[stopped following] repository"
736 msgstr "[parou de seguir] o repositório"
770 msgstr "[parou de seguir] o repositório"
737
771
738 #: rhodecode/lib/helpers.py:732
772 #: rhodecode/lib/helpers.py:752
739 #, python-format
773 #, python-format
740 msgid " and %s more"
774 msgid " and %s more"
741 msgstr " e mais %s"
775 msgstr " e mais %s"
742
776
743 #: rhodecode/lib/helpers.py:736
777 #: rhodecode/lib/helpers.py:756
744 msgid "No Files"
778 msgid "No Files"
745 msgstr "Nenhum Arquivo"
779 msgstr "Nenhum Arquivo"
746
780
@@ -1001,7 +1035,7 b' msgid "Dashboard"'
1001 msgstr "Painel de Controle"
1035 msgstr "Painel de Controle"
1002
1036
1003 #: rhodecode/templates/index_base.html:6
1037 #: rhodecode/templates/index_base.html:6
1004 #: rhodecode/templates/admin/users/user_edit_my_account.html:115
1038 #: rhodecode/templates/admin/users/user_edit_my_account.html:31
1005 #: rhodecode/templates/bookmarks/bookmarks.html:10
1039 #: rhodecode/templates/bookmarks/bookmarks.html:10
1006 #: rhodecode/templates/branches/branches.html:9
1040 #: rhodecode/templates/branches/branches.html:9
1007 #: rhodecode/templates/journal/journal.html:31
1041 #: rhodecode/templates/journal/journal.html:31
@@ -1056,10 +1090,10 b' msgstr "Grupo de reposit\xc3\xb3rios"'
1056 #: rhodecode/templates/admin/repos/repo_edit.html:32
1090 #: rhodecode/templates/admin/repos/repo_edit.html:32
1057 #: rhodecode/templates/admin/repos/repos.html:36
1091 #: rhodecode/templates/admin/repos/repos.html:36
1058 #: rhodecode/templates/admin/repos/repos.html:82
1092 #: rhodecode/templates/admin/repos/repos.html:82
1059 #: rhodecode/templates/admin/users/user_edit_my_account.html:133
1093 #: rhodecode/templates/admin/users/user_edit_my_account.html:49
1060 #: rhodecode/templates/admin/users/user_edit_my_account.html:183
1094 #: rhodecode/templates/admin/users/user_edit_my_account.html:99
1061 #: rhodecode/templates/admin/users/user_edit_my_account.html:249
1095 #: rhodecode/templates/admin/users/user_edit_my_account.html:165
1062 #: rhodecode/templates/admin/users/user_edit_my_account.html:284
1096 #: rhodecode/templates/admin/users/user_edit_my_account.html:200
1063 #: rhodecode/templates/bookmarks/bookmarks.html:36
1097 #: rhodecode/templates/bookmarks/bookmarks.html:36
1064 #: rhodecode/templates/bookmarks/bookmarks_data.html:6
1098 #: rhodecode/templates/bookmarks/bookmarks_data.html:6
1065 #: rhodecode/templates/branches/branches.html:36
1099 #: rhodecode/templates/branches/branches.html:36
@@ -1084,7 +1118,7 b' msgstr "\xc3\x9altima altera\xc3\xa7\xc3\xa3o"'
1084 #: rhodecode/templates/index_base.html:161
1118 #: rhodecode/templates/index_base.html:161
1085 #: rhodecode/templates/admin/repos/repos.html:39
1119 #: rhodecode/templates/admin/repos/repos.html:39
1086 #: rhodecode/templates/admin/repos/repos.html:87
1120 #: rhodecode/templates/admin/repos/repos.html:87
1087 #: rhodecode/templates/admin/users/user_edit_my_account.html:251
1121 #: rhodecode/templates/admin/users/user_edit_my_account.html:167
1088 #: rhodecode/templates/journal/journal.html:179
1122 #: rhodecode/templates/journal/journal.html:179
1089 msgid "Tip"
1123 msgid "Tip"
1090 msgstr "Ponta"
1124 msgstr "Ponta"
@@ -1127,7 +1161,7 b' msgstr "Nome do Grupo"'
1127 #: rhodecode/templates/index_base.html:148
1161 #: rhodecode/templates/index_base.html:148
1128 #: rhodecode/templates/index_base.html:188
1162 #: rhodecode/templates/index_base.html:188
1129 #: rhodecode/templates/admin/repos/repos.html:112
1163 #: rhodecode/templates/admin/repos/repos.html:112
1130 #: rhodecode/templates/admin/users/user_edit_my_account.html:270
1164 #: rhodecode/templates/admin/users/user_edit_my_account.html:186
1131 #: rhodecode/templates/bookmarks/bookmarks.html:60
1165 #: rhodecode/templates/bookmarks/bookmarks.html:60
1132 #: rhodecode/templates/branches/branches.html:60
1166 #: rhodecode/templates/branches/branches.html:60
1133 #: rhodecode/templates/journal/journal.html:202
1167 #: rhodecode/templates/journal/journal.html:202
@@ -1138,7 +1172,7 b' msgstr "Clique para ordenar em ordem cre'
1138 #: rhodecode/templates/index_base.html:149
1172 #: rhodecode/templates/index_base.html:149
1139 #: rhodecode/templates/index_base.html:189
1173 #: rhodecode/templates/index_base.html:189
1140 #: rhodecode/templates/admin/repos/repos.html:113
1174 #: rhodecode/templates/admin/repos/repos.html:113
1141 #: rhodecode/templates/admin/users/user_edit_my_account.html:271
1175 #: rhodecode/templates/admin/users/user_edit_my_account.html:187
1142 #: rhodecode/templates/bookmarks/bookmarks.html:61
1176 #: rhodecode/templates/bookmarks/bookmarks.html:61
1143 #: rhodecode/templates/branches/branches.html:61
1177 #: rhodecode/templates/branches/branches.html:61
1144 #: rhodecode/templates/journal/journal.html:203
1178 #: rhodecode/templates/journal/journal.html:203
@@ -1153,7 +1187,7 b' msgstr "\xc3\x9altima Altera\xc3\xa7\xc3\xa3o"'
1153
1187
1154 #: rhodecode/templates/index_base.html:190
1188 #: rhodecode/templates/index_base.html:190
1155 #: rhodecode/templates/admin/repos/repos.html:114
1189 #: rhodecode/templates/admin/repos/repos.html:114
1156 #: rhodecode/templates/admin/users/user_edit_my_account.html:272
1190 #: rhodecode/templates/admin/users/user_edit_my_account.html:188
1157 #: rhodecode/templates/bookmarks/bookmarks.html:62
1191 #: rhodecode/templates/bookmarks/bookmarks.html:62
1158 #: rhodecode/templates/branches/branches.html:62
1192 #: rhodecode/templates/branches/branches.html:62
1159 #: rhodecode/templates/journal/journal.html:204
1193 #: rhodecode/templates/journal/journal.html:204
@@ -1163,7 +1197,7 b' msgstr "Nenhum registro encontrado."'
1163
1197
1164 #: rhodecode/templates/index_base.html:191
1198 #: rhodecode/templates/index_base.html:191
1165 #: rhodecode/templates/admin/repos/repos.html:115
1199 #: rhodecode/templates/admin/repos/repos.html:115
1166 #: rhodecode/templates/admin/users/user_edit_my_account.html:273
1200 #: rhodecode/templates/admin/users/user_edit_my_account.html:189
1167 #: rhodecode/templates/bookmarks/bookmarks.html:63
1201 #: rhodecode/templates/bookmarks/bookmarks.html:63
1168 #: rhodecode/templates/branches/branches.html:63
1202 #: rhodecode/templates/branches/branches.html:63
1169 #: rhodecode/templates/journal/journal.html:205
1203 #: rhodecode/templates/journal/journal.html:205
@@ -1173,7 +1207,7 b' msgstr "Erro de dados."'
1173
1207
1174 #: rhodecode/templates/index_base.html:192
1208 #: rhodecode/templates/index_base.html:192
1175 #: rhodecode/templates/admin/repos/repos.html:116
1209 #: rhodecode/templates/admin/repos/repos.html:116
1176 #: rhodecode/templates/admin/users/user_edit_my_account.html:274
1210 #: rhodecode/templates/admin/users/user_edit_my_account.html:190
1177 #: rhodecode/templates/bookmarks/bookmarks.html:64
1211 #: rhodecode/templates/bookmarks/bookmarks.html:64
1178 #: rhodecode/templates/branches/branches.html:64
1212 #: rhodecode/templates/branches/branches.html:64
1179 #: rhodecode/templates/journal/journal.html:206
1213 #: rhodecode/templates/journal/journal.html:206
@@ -1193,7 +1227,7 b' msgstr "Entrar em"'
1193 #: rhodecode/templates/admin/admin_log.html:5
1227 #: rhodecode/templates/admin/admin_log.html:5
1194 #: rhodecode/templates/admin/users/user_add.html:32
1228 #: rhodecode/templates/admin/users/user_add.html:32
1195 #: rhodecode/templates/admin/users/user_edit.html:50
1229 #: rhodecode/templates/admin/users/user_edit.html:50
1196 #: rhodecode/templates/admin/users/user_edit_my_account.html:49
1230 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:26
1197 #: rhodecode/templates/base/base.html:83
1231 #: rhodecode/templates/base/base.html:83
1198 #: rhodecode/templates/summary/summary.html:113
1232 #: rhodecode/templates/summary/summary.html:113
1199 msgid "Username"
1233 msgid "Username"
@@ -1255,21 +1289,21 b' msgstr "Repita a senha"'
1255 #: rhodecode/templates/register.html:47
1289 #: rhodecode/templates/register.html:47
1256 #: rhodecode/templates/admin/users/user_add.html:59
1290 #: rhodecode/templates/admin/users/user_add.html:59
1257 #: rhodecode/templates/admin/users/user_edit.html:86
1291 #: rhodecode/templates/admin/users/user_edit.html:86
1258 #: rhodecode/templates/admin/users/user_edit_my_account.html:76
1292 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:53
1259 msgid "First Name"
1293 msgid "First Name"
1260 msgstr "Primeiro Nome"
1294 msgstr "Primeiro Nome"
1261
1295
1262 #: rhodecode/templates/register.html:56
1296 #: rhodecode/templates/register.html:56
1263 #: rhodecode/templates/admin/users/user_add.html:68
1297 #: rhodecode/templates/admin/users/user_add.html:68
1264 #: rhodecode/templates/admin/users/user_edit.html:95
1298 #: rhodecode/templates/admin/users/user_edit.html:95
1265 #: rhodecode/templates/admin/users/user_edit_my_account.html:85
1299 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:62
1266 msgid "Last Name"
1300 msgid "Last Name"
1267 msgstr "Último Nome"
1301 msgstr "Último Nome"
1268
1302
1269 #: rhodecode/templates/register.html:65
1303 #: rhodecode/templates/register.html:65
1270 #: rhodecode/templates/admin/users/user_add.html:77
1304 #: rhodecode/templates/admin/users/user_add.html:77
1271 #: rhodecode/templates/admin/users/user_edit.html:104
1305 #: rhodecode/templates/admin/users/user_edit.html:104
1272 #: rhodecode/templates/admin/users/user_edit_my_account.html:94
1306 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:71
1273 #: rhodecode/templates/summary/summary.html:115
1307 #: rhodecode/templates/summary/summary.html:115
1274 msgid "Email"
1308 msgid "Email"
1275 msgstr "E-mail"
1309 msgstr "E-mail"
@@ -1332,8 +1366,8 b' msgstr "Di\xc3\xa1rio do administrador"'
1332 #: rhodecode/templates/admin/admin_log.html:6
1366 #: rhodecode/templates/admin/admin_log.html:6
1333 #: rhodecode/templates/admin/repos/repos.html:41
1367 #: rhodecode/templates/admin/repos/repos.html:41
1334 #: rhodecode/templates/admin/repos/repos.html:90
1368 #: rhodecode/templates/admin/repos/repos.html:90
1335 #: rhodecode/templates/admin/users/user_edit_my_account.html:135
1369 #: rhodecode/templates/admin/users/user_edit_my_account.html:51
1336 #: rhodecode/templates/admin/users/user_edit_my_account.html:136
1370 #: rhodecode/templates/admin/users/user_edit_my_account.html:52
1337 #: rhodecode/templates/journal/journal.html:52
1371 #: rhodecode/templates/journal/journal.html:52
1338 #: rhodecode/templates/journal/journal.html:53
1372 #: rhodecode/templates/journal/journal.html:53
1339 msgid "Action"
1373 msgid "Action"
@@ -1356,7 +1390,7 b' msgstr "Data"'
1356 msgid "From IP"
1390 msgid "From IP"
1357 msgstr "A partir do IP"
1391 msgstr "A partir do IP"
1358
1392
1359 #: rhodecode/templates/admin/admin_log.html:52
1393 #: rhodecode/templates/admin/admin_log.html:53
1360 msgid "No actions yet"
1394 msgid "No actions yet"
1361 msgstr "Ainda não há ações"
1395 msgstr "Ainda não há ações"
1362
1396
@@ -1437,7 +1471,7 b' msgstr "Atributo de E-mail"'
1437 #: rhodecode/templates/admin/settings/hooks.html:73
1471 #: rhodecode/templates/admin/settings/hooks.html:73
1438 #: rhodecode/templates/admin/users/user_edit.html:129
1472 #: rhodecode/templates/admin/users/user_edit.html:129
1439 #: rhodecode/templates/admin/users/user_edit.html:154
1473 #: rhodecode/templates/admin/users/user_edit.html:154
1440 #: rhodecode/templates/admin/users/user_edit_my_account.html:102
1474 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:79
1441 #: rhodecode/templates/admin/users_groups/users_group_edit.html:115
1475 #: rhodecode/templates/admin/users_groups/users_group_edit.html:115
1442 #: rhodecode/templates/settings/repo_settings.html:84
1476 #: rhodecode/templates/settings/repo_settings.html:84
1443 msgid "Save"
1477 msgid "Save"
@@ -1596,7 +1630,7 b' msgstr "Editar reposit\xc3\xb3rio"'
1596
1630
1597 #: rhodecode/templates/admin/repos/repo_edit.html:13
1631 #: rhodecode/templates/admin/repos/repo_edit.html:13
1598 #: rhodecode/templates/admin/users/user_edit.html:13
1632 #: rhodecode/templates/admin/users/user_edit.html:13
1599 #: rhodecode/templates/admin/users/user_edit_my_account.html:155
1633 #: rhodecode/templates/admin/users/user_edit_my_account.html:71
1600 #: rhodecode/templates/admin/users_groups/users_group_edit.html:13
1634 #: rhodecode/templates/admin/users_groups/users_group_edit.html:13
1601 #: rhodecode/templates/files/files_source.html:32
1635 #: rhodecode/templates/files/files_source.html:32
1602 #: rhodecode/templates/journal/journal.html:72
1636 #: rhodecode/templates/journal/journal.html:72
@@ -1760,38 +1794,27 b' msgid "private repository"'
1760 msgstr "repositório privado"
1794 msgstr "repositório privado"
1761
1795
1762 #: rhodecode/templates/admin/repos/repo_edit_perms.html:33
1796 #: rhodecode/templates/admin/repos/repo_edit_perms.html:33
1763 #: rhodecode/templates/admin/repos/repo_edit_perms.html:53
1797 #: rhodecode/templates/admin/repos/repo_edit_perms.html:58
1764 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:23
1798 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:23
1765 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:42
1799 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:42
1766 msgid "revoke"
1800 msgid "revoke"
1767 msgstr "revogar"
1801 msgstr "revogar"
1768
1802
1769 #: rhodecode/templates/admin/repos/repo_edit_perms.html:75
1803 #: rhodecode/templates/admin/repos/repo_edit_perms.html:80
1770 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:64
1804 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:64
1771 msgid "Add another member"
1805 msgid "Add another member"
1772 msgstr "Adicionar outro membro"
1806 msgstr "Adicionar outro membro"
1773
1807
1774 #: rhodecode/templates/admin/repos/repo_edit_perms.html:89
1808 #: rhodecode/templates/admin/repos/repo_edit_perms.html:94
1775 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:78
1809 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:78
1776 msgid "Failed to remove user"
1810 msgid "Failed to remove user"
1777 msgstr "Falha ao reomver usuário"
1811 msgstr "Falha ao reomver usuário"
1778
1812
1779 #: rhodecode/templates/admin/repos/repo_edit_perms.html:104
1813 #: rhodecode/templates/admin/repos/repo_edit_perms.html:109
1780 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:93
1814 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:93
1781 msgid "Failed to remove users group"
1815 msgid "Failed to remove users group"
1782 msgstr "Falha ao remover grupo de usuários"
1816 msgstr "Falha ao remover grupo de usuários"
1783
1817
1784 #: rhodecode/templates/admin/repos/repo_edit_perms.html:123
1785 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:112
1786 msgid "Group"
1787 msgstr "Grupo"
1788
1789 #: rhodecode/templates/admin/repos/repo_edit_perms.html:124
1790 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:113
1791 #: rhodecode/templates/admin/users_groups/users_groups.html:33
1792 msgid "members"
1793 msgstr "membros"
1794
1795 #: rhodecode/templates/admin/repos/repos.html:5
1818 #: rhodecode/templates/admin/repos/repos.html:5
1796 msgid "Repositories administration"
1819 msgid "Repositories administration"
1797 msgstr "Administração de repositórios"
1820 msgstr "Administração de repositórios"
@@ -1809,7 +1832,7 b' msgid "delete"'
1809 msgstr "excluir"
1832 msgstr "excluir"
1810
1833
1811 #: rhodecode/templates/admin/repos/repos.html:68
1834 #: rhodecode/templates/admin/repos/repos.html:68
1812 #: rhodecode/templates/admin/users/user_edit_my_account.html:158
1835 #: rhodecode/templates/admin/users/user_edit_my_account.html:74
1813 #, python-format
1836 #, python-format
1814 msgid "Confirm to delete this repository: %s"
1837 msgid "Confirm to delete this repository: %s"
1815 msgstr "Confirma excluir esse repositório: %s"
1838 msgstr "Confirma excluir esse repositório: %s"
@@ -1860,7 +1883,7 b' msgstr "editar grupo de reposit\xc3\xb3rios"'
1860 #: rhodecode/templates/admin/settings/settings.html:177
1883 #: rhodecode/templates/admin/settings/settings.html:177
1861 #: rhodecode/templates/admin/users/user_edit.html:130
1884 #: rhodecode/templates/admin/users/user_edit.html:130
1862 #: rhodecode/templates/admin/users/user_edit.html:155
1885 #: rhodecode/templates/admin/users/user_edit.html:155
1863 #: rhodecode/templates/admin/users/user_edit_my_account.html:103
1886 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:80
1864 #: rhodecode/templates/admin/users_groups/users_group_edit.html:116
1887 #: rhodecode/templates/admin/users_groups/users_group_edit.html:116
1865 #: rhodecode/templates/files/files_add.html:82
1888 #: rhodecode/templates/files/files_add.html:82
1866 #: rhodecode/templates/files/files_edit.html:68
1889 #: rhodecode/templates/files/files_edit.html:68
@@ -2090,17 +2113,17 b' msgid "Edit user"'
2090 msgstr "Editar usuário"
2113 msgstr "Editar usuário"
2091
2114
2092 #: rhodecode/templates/admin/users/user_edit.html:34
2115 #: rhodecode/templates/admin/users/user_edit.html:34
2093 #: rhodecode/templates/admin/users/user_edit_my_account.html:33
2116 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:10
2094 msgid "Change your avatar at"
2117 msgid "Change your avatar at"
2095 msgstr "Altere o seu avatar em"
2118 msgstr "Altere o seu avatar em"
2096
2119
2097 #: rhodecode/templates/admin/users/user_edit.html:35
2120 #: rhodecode/templates/admin/users/user_edit.html:35
2098 #: rhodecode/templates/admin/users/user_edit_my_account.html:34
2121 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:11
2099 msgid "Using"
2122 msgid "Using"
2100 msgstr "Usando"
2123 msgstr "Usando"
2101
2124
2102 #: rhodecode/templates/admin/users/user_edit.html:43
2125 #: rhodecode/templates/admin/users/user_edit.html:43
2103 #: rhodecode/templates/admin/users/user_edit_my_account.html:43
2126 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:20
2104 msgid "API key"
2127 msgid "API key"
2105 msgstr "Chave de API"
2128 msgstr "Chave de API"
2106
2129
@@ -2109,12 +2132,12 b' msgid "LDAP DN"'
2109 msgstr "DN LDAP"
2132 msgstr "DN LDAP"
2110
2133
2111 #: rhodecode/templates/admin/users/user_edit.html:68
2134 #: rhodecode/templates/admin/users/user_edit.html:68
2112 #: rhodecode/templates/admin/users/user_edit_my_account.html:58
2135 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:35
2113 msgid "New password"
2136 msgid "New password"
2114 msgstr "Nova senha"
2137 msgstr "Nova senha"
2115
2138
2116 #: rhodecode/templates/admin/users/user_edit.html:77
2139 #: rhodecode/templates/admin/users/user_edit.html:77
2117 #: rhodecode/templates/admin/users/user_edit_my_account.html:67
2140 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:44
2118 msgid "New password confirmation"
2141 msgid "New password confirmation"
2119 msgstr "Confirmação de nova senha"
2142 msgstr "Confirmação de nova senha"
2120
2143
@@ -2132,21 +2155,21 b' msgstr "Minha conta"'
2132 msgid "My Account"
2155 msgid "My Account"
2133 msgstr "Minha Conta"
2156 msgstr "Minha Conta"
2134
2157
2135 #: rhodecode/templates/admin/users/user_edit_my_account.html:116
2158 #: rhodecode/templates/admin/users/user_edit_my_account.html:32
2136 #: rhodecode/templates/journal/journal.html:32
2159 #: rhodecode/templates/journal/journal.html:32
2137 msgid "My repos"
2160 msgid "My repos"
2138 msgstr "Meus repositórios"
2161 msgstr "Meus repositórios"
2139
2162
2140 #: rhodecode/templates/admin/users/user_edit_my_account.html:116
2163 #: rhodecode/templates/admin/users/user_edit_my_account.html:32
2141 msgid "My permissions"
2164 msgid "My permissions"
2142 msgstr "Minhas permissões"
2165 msgstr "Minhas permissões"
2143
2166
2144 #: rhodecode/templates/admin/users/user_edit_my_account.html:121
2167 #: rhodecode/templates/admin/users/user_edit_my_account.html:37
2145 #: rhodecode/templates/journal/journal.html:37
2168 #: rhodecode/templates/journal/journal.html:37
2146 msgid "ADD"
2169 msgid "ADD"
2147 msgstr "ADICIONAR"
2170 msgstr "ADICIONAR"
2148
2171
2149 #: rhodecode/templates/admin/users/user_edit_my_account.html:134
2172 #: rhodecode/templates/admin/users/user_edit_my_account.html:50
2150 #: rhodecode/templates/bookmarks/bookmarks.html:40
2173 #: rhodecode/templates/bookmarks/bookmarks.html:40
2151 #: rhodecode/templates/bookmarks/bookmarks_data.html:9
2174 #: rhodecode/templates/bookmarks/bookmarks_data.html:9
2152 #: rhodecode/templates/branches/branches.html:40
2175 #: rhodecode/templates/branches/branches.html:40
@@ -2156,23 +2179,23 b' msgstr "ADICIONAR"'
2156 msgid "Revision"
2179 msgid "Revision"
2157 msgstr "Revisão"
2180 msgstr "Revisão"
2158
2181
2159 #: rhodecode/templates/admin/users/user_edit_my_account.html:155
2182 #: rhodecode/templates/admin/users/user_edit_my_account.html:71
2160 #: rhodecode/templates/journal/journal.html:72
2183 #: rhodecode/templates/journal/journal.html:72
2161 msgid "private"
2184 msgid "private"
2162 msgstr "privado"
2185 msgstr "privado"
2163
2186
2164 #: rhodecode/templates/admin/users/user_edit_my_account.html:165
2187 #: rhodecode/templates/admin/users/user_edit_my_account.html:81
2165 #: rhodecode/templates/journal/journal.html:85
2188 #: rhodecode/templates/journal/journal.html:85
2166 msgid "No repositories yet"
2189 msgid "No repositories yet"
2167 msgstr "Ainda não há repositórios"
2190 msgstr "Ainda não há repositórios"
2168
2191
2169 #: rhodecode/templates/admin/users/user_edit_my_account.html:167
2192 #: rhodecode/templates/admin/users/user_edit_my_account.html:83
2170 #: rhodecode/templates/journal/journal.html:87
2193 #: rhodecode/templates/journal/journal.html:87
2171 msgid "create one now"
2194 msgid "create one now"
2172 msgstr "criar um agora"
2195 msgstr "criar um agora"
2173
2196
2174 #: rhodecode/templates/admin/users/user_edit_my_account.html:184
2197 #: rhodecode/templates/admin/users/user_edit_my_account.html:100
2175 #: rhodecode/templates/admin/users/user_edit_my_account.html:285
2198 #: rhodecode/templates/admin/users/user_edit_my_account.html:201
2176 msgid "Permission"
2199 msgid "Permission"
2177 msgstr "Permissão"
2200 msgstr "Permissão"
2178
2201
@@ -2273,6 +2296,11 b' msgstr "ADICIONAR NOVO GRUPO DE USU\xc3\x81RIOS"'
2273 msgid "group name"
2296 msgid "group name"
2274 msgstr "nome do grupo"
2297 msgstr "nome do grupo"
2275
2298
2299 #: rhodecode/templates/admin/users_groups/users_groups.html:33
2300 #: rhodecode/templates/base/root.html:46
2301 msgid "members"
2302 msgstr "membros"
2303
2276 #: rhodecode/templates/admin/users_groups/users_groups.html:45
2304 #: rhodecode/templates/admin/users_groups/users_groups.html:45
2277 #, python-format
2305 #, python-format
2278 msgid "Confirm to delete this users group: %s"
2306 msgid "Confirm to delete this users group: %s"
@@ -2432,21 +2460,25 b' msgstr "Bifurca\xc3\xa7\xc3\xb5es"'
2432 msgid "Search"
2460 msgid "Search"
2433 msgstr "Pesquisar"
2461 msgstr "Pesquisar"
2434
2462
2435 #: rhodecode/templates/base/root.html:53
2463 #: rhodecode/templates/base/root.html:42
2436 msgid "add another comment"
2464 msgid "add another comment"
2437 msgstr "adicionar outro comentário"
2465 msgstr "adicionar outro comentário"
2438
2466
2439 #: rhodecode/templates/base/root.html:54
2467 #: rhodecode/templates/base/root.html:43
2440 #: rhodecode/templates/journal/journal.html:111
2468 #: rhodecode/templates/journal/journal.html:111
2441 #: rhodecode/templates/summary/summary.html:52
2469 #: rhodecode/templates/summary/summary.html:52
2442 msgid "Stop following this repository"
2470 msgid "Stop following this repository"
2443 msgstr "Parar de seguir este repositório"
2471 msgstr "Parar de seguir este repositório"
2444
2472
2445 #: rhodecode/templates/base/root.html:55
2473 #: rhodecode/templates/base/root.html:44
2446 #: rhodecode/templates/summary/summary.html:56
2474 #: rhodecode/templates/summary/summary.html:56
2447 msgid "Start following this repository"
2475 msgid "Start following this repository"
2448 msgstr "Passar a seguir este repositório"
2476 msgstr "Passar a seguir este repositório"
2449
2477
2478 #: rhodecode/templates/base/root.html:45
2479 msgid "Group"
2480 msgstr "Grupo"
2481
2450 #: rhodecode/templates/bookmarks/bookmarks.html:5
2482 #: rhodecode/templates/bookmarks/bookmarks.html:5
2451 msgid "Bookmarks"
2483 msgid "Bookmarks"
2452 msgstr "Marcadores"
2484 msgstr "Marcadores"
@@ -2575,7 +2607,7 b' msgid "download diff"'
2575 msgstr "descarregar diff"
2607 msgstr "descarregar diff"
2576
2608
2577 #: rhodecode/templates/changeset/changeset.html:42
2609 #: rhodecode/templates/changeset/changeset.html:42
2578 #: rhodecode/templates/changeset/changeset_file_comment.html:69
2610 #: rhodecode/templates/changeset/changeset_file_comment.html:71
2579 #, python-format
2611 #, python-format
2580 msgid "%d comment"
2612 msgid "%d comment"
2581 msgid_plural "%d comments"
2613 msgid_plural "%d comments"
@@ -2583,7 +2615,7 b' msgstr[0] "%d coment\xc3\xa1rio"'
2583 msgstr[1] "%d comentários"
2615 msgstr[1] "%d comentários"
2584
2616
2585 #: rhodecode/templates/changeset/changeset.html:42
2617 #: rhodecode/templates/changeset/changeset.html:42
2586 #: rhodecode/templates/changeset/changeset_file_comment.html:69
2618 #: rhodecode/templates/changeset/changeset_file_comment.html:71
2587 #, python-format
2619 #, python-format
2588 msgid "(%d inline)"
2620 msgid "(%d inline)"
2589 msgid_plural "(%d inline)"
2621 msgid_plural "(%d inline)"
@@ -2608,37 +2640,37 b' msgid "Commenting on line {1}."'
2608 msgstr "Comentando a linha {1}."
2640 msgstr "Comentando a linha {1}."
2609
2641
2610 #: rhodecode/templates/changeset/changeset_file_comment.html:39
2642 #: rhodecode/templates/changeset/changeset_file_comment.html:39
2611 #: rhodecode/templates/changeset/changeset_file_comment.html:100
2643 #: rhodecode/templates/changeset/changeset_file_comment.html:102
2612 #, python-format
2644 #, python-format
2613 msgid "Comments parsed using %s syntax with %s support."
2645 msgid "Comments parsed using %s syntax with %s support."
2614 msgstr "Comentários interpretados usando a sintaxe %s com suporte a %s."
2646 msgstr "Comentários interpretados usando a sintaxe %s com suporte a %s."
2615
2647
2616 #: rhodecode/templates/changeset/changeset_file_comment.html:41
2648 #: rhodecode/templates/changeset/changeset_file_comment.html:41
2617 #: rhodecode/templates/changeset/changeset_file_comment.html:102
2649 #: rhodecode/templates/changeset/changeset_file_comment.html:104
2618 msgid "Use @username inside this text to send notification to this RhodeCode user"
2650 msgid "Use @username inside this text to send notification to this RhodeCode user"
2619 msgstr ""
2651 msgstr ""
2620 "Use @nomedeusuário dentro desse texto para enviar notificação a este "
2652 "Use @nomedeusuário dentro desse texto para enviar notificação a este "
2621 "usuário do RhodeCode"
2653 "usuário do RhodeCode"
2622
2654
2623 #: rhodecode/templates/changeset/changeset_file_comment.html:47
2655 #: rhodecode/templates/changeset/changeset_file_comment.html:49
2624 #: rhodecode/templates/changeset/changeset_file_comment.html:107
2656 #: rhodecode/templates/changeset/changeset_file_comment.html:110
2625 msgid "Comment"
2657 msgid "Comment"
2626 msgstr "Comentário"
2658 msgstr "Comentário"
2627
2659
2628 #: rhodecode/templates/changeset/changeset_file_comment.html:48
2660 #: rhodecode/templates/changeset/changeset_file_comment.html:50
2629 #: rhodecode/templates/changeset/changeset_file_comment.html:59
2661 #: rhodecode/templates/changeset/changeset_file_comment.html:61
2630 msgid "Hide"
2662 msgid "Hide"
2631 msgstr "Ocultar"
2663 msgstr "Ocultar"
2632
2664
2633 #: rhodecode/templates/changeset/changeset_file_comment.html:55
2665 #: rhodecode/templates/changeset/changeset_file_comment.html:57
2634 msgid "You need to be logged in to comment."
2666 msgid "You need to be logged in to comment."
2635 msgstr "Você precisa estar logado para comentar."
2667 msgstr "Você precisa estar logado para comentar."
2636
2668
2637 #: rhodecode/templates/changeset/changeset_file_comment.html:55
2669 #: rhodecode/templates/changeset/changeset_file_comment.html:57
2638 msgid "Login now"
2670 msgid "Login now"
2639 msgstr "Entrar agora"
2671 msgstr "Entrar agora"
2640
2672
2641 #: rhodecode/templates/changeset/changeset_file_comment.html:97
2673 #: rhodecode/templates/changeset/changeset_file_comment.html:99
2642 msgid "Leave a comment"
2674 msgid "Leave a comment"
2643 msgstr "Deixar um comentário"
2675 msgstr "Deixar um comentário"
2644
2676
@@ -8,7 +8,7 b' msgid ""'
8 msgstr ""
8 msgstr ""
9 "Project-Id-Version: RhodeCode 1.4.0\n"
9 "Project-Id-Version: RhodeCode 1.4.0\n"
10 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
10 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
11 "POT-Creation-Date: 2012-05-27 17:41+0200\n"
11 "POT-Creation-Date: 2012-06-03 01:06+0200\n"
12 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14 "Language-Team: LANGUAGE <LL@li.org>\n"
14 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,24 +17,24 b' msgstr ""'
17 "Content-Transfer-Encoding: 8bit\n"
17 "Content-Transfer-Encoding: 8bit\n"
18 "Generated-By: Babel 0.9.6\n"
18 "Generated-By: Babel 0.9.6\n"
19
19
20 #: rhodecode/controllers/changelog.py:96
20 #: rhodecode/controllers/changelog.py:95
21 msgid "All Branches"
21 msgid "All Branches"
22 msgstr ""
22 msgstr ""
23
23
24 #: rhodecode/controllers/changeset.py:79
24 #: rhodecode/controllers/changeset.py:80
25 msgid "show white space"
25 msgid "show white space"
26 msgstr ""
26 msgstr ""
27
27
28 #: rhodecode/controllers/changeset.py:86 rhodecode/controllers/changeset.py:93
28 #: rhodecode/controllers/changeset.py:87 rhodecode/controllers/changeset.py:94
29 msgid "ignore white space"
29 msgid "ignore white space"
30 msgstr ""
30 msgstr ""
31
31
32 #: rhodecode/controllers/changeset.py:153
32 #: rhodecode/controllers/changeset.py:154
33 #, python-format
33 #, python-format
34 msgid "%s line context"
34 msgid "%s line context"
35 msgstr ""
35 msgstr ""
36
36
37 #: rhodecode/controllers/changeset.py:320 rhodecode/controllers/changeset.py:335
37 #: rhodecode/controllers/changeset.py:324 rhodecode/controllers/changeset.py:339
38 #: rhodecode/lib/diffs.py:62
38 #: rhodecode/lib/diffs.py:62
39 msgid "binary file"
39 msgid "binary file"
40 msgstr ""
40 msgstr ""
@@ -179,7 +179,7 b' msgstr ""'
179 msgid "%s public journal %s feed"
179 msgid "%s public journal %s feed"
180 msgstr ""
180 msgstr ""
181
181
182 #: rhodecode/controllers/journal.py:190 rhodecode/controllers/journal.py:224
182 #: rhodecode/controllers/journal.py:190 rhodecode/controllers/journal.py:223
183 #: rhodecode/templates/admin/repos/repo_edit.html:177
183 #: rhodecode/templates/admin/repos/repo_edit.html:177
184 #: rhodecode/templates/base/base.html:307 rhodecode/templates/base/base.html:309
184 #: rhodecode/templates/base/base.html:307 rhodecode/templates/base/base.html:309
185 #: rhodecode/templates/base/base.html:311
185 #: rhodecode/templates/base/base.html:311
@@ -210,30 +210,30 b' msgstr ""'
210 msgid "An error occurred during this search operation"
210 msgid "An error occurred during this search operation"
211 msgstr ""
211 msgstr ""
212
212
213 #: rhodecode/controllers/settings.py:103 rhodecode/controllers/admin/repos.py:211
213 #: rhodecode/controllers/settings.py:103 rhodecode/controllers/admin/repos.py:213
214 #, python-format
214 #, python-format
215 msgid "Repository %s updated successfully"
215 msgid "Repository %s updated successfully"
216 msgstr ""
216 msgstr ""
217
217
218 #: rhodecode/controllers/settings.py:121 rhodecode/controllers/admin/repos.py:229
218 #: rhodecode/controllers/settings.py:121 rhodecode/controllers/admin/repos.py:231
219 #, python-format
219 #, python-format
220 msgid "error occurred during update of repository %s"
220 msgid "error occurred during update of repository %s"
221 msgstr ""
221 msgstr ""
222
222
223 #: rhodecode/controllers/settings.py:139 rhodecode/controllers/admin/repos.py:247
223 #: rhodecode/controllers/settings.py:139 rhodecode/controllers/admin/repos.py:249
224 #, python-format
224 #, python-format
225 msgid ""
225 msgid ""
226 "%s repository is not mapped to db perhaps it was moved or renamed from the "
226 "%s repository is not mapped to db perhaps it was moved or renamed from the "
227 "filesystem please run the application again in order to rescan repositories"
227 "filesystem please run the application again in order to rescan repositories"
228 msgstr ""
228 msgstr ""
229
229
230 #: rhodecode/controllers/settings.py:151 rhodecode/controllers/admin/repos.py:259
230 #: rhodecode/controllers/settings.py:151 rhodecode/controllers/admin/repos.py:261
231 #, python-format
231 #, python-format
232 msgid "deleted repository %s"
232 msgid "deleted repository %s"
233 msgstr ""
233 msgstr ""
234
234
235 #: rhodecode/controllers/settings.py:155 rhodecode/controllers/admin/repos.py:269
235 #: rhodecode/controllers/settings.py:155 rhodecode/controllers/admin/repos.py:271
236 #: rhodecode/controllers/admin/repos.py:275
236 #: rhodecode/controllers/admin/repos.py:277
237 #, python-format
237 #, python-format
238 msgid "An error occurred during deletion of %s"
238 msgid "An error occurred during deletion of %s"
239 msgstr ""
239 msgstr ""
@@ -380,62 +380,62 b' msgstr ""'
380 msgid "created repository %s"
380 msgid "created repository %s"
381 msgstr ""
381 msgstr ""
382
382
383 #: rhodecode/controllers/admin/repos.py:177
383 #: rhodecode/controllers/admin/repos.py:179
384 #, python-format
384 #, python-format
385 msgid "error occurred during creation of repository %s"
385 msgid "error occurred during creation of repository %s"
386 msgstr ""
386 msgstr ""
387
387
388 #: rhodecode/controllers/admin/repos.py:264
388 #: rhodecode/controllers/admin/repos.py:266
389 #, python-format
389 #, python-format
390 msgid "Cannot delete %s it still contains attached forks"
390 msgid "Cannot delete %s it still contains attached forks"
391 msgstr ""
391 msgstr ""
392
392
393 #: rhodecode/controllers/admin/repos.py:293
393 #: rhodecode/controllers/admin/repos.py:295
394 msgid "An error occurred during deletion of repository user"
394 msgid "An error occurred during deletion of repository user"
395 msgstr ""
395 msgstr ""
396
396
397 #: rhodecode/controllers/admin/repos.py:312
397 #: rhodecode/controllers/admin/repos.py:314
398 msgid "An error occurred during deletion of repository users groups"
398 msgid "An error occurred during deletion of repository users groups"
399 msgstr ""
399 msgstr ""
400
400
401 #: rhodecode/controllers/admin/repos.py:329
401 #: rhodecode/controllers/admin/repos.py:331
402 msgid "An error occurred during deletion of repository stats"
402 msgid "An error occurred during deletion of repository stats"
403 msgstr ""
403 msgstr ""
404
404
405 #: rhodecode/controllers/admin/repos.py:345
405 #: rhodecode/controllers/admin/repos.py:347
406 msgid "An error occurred during cache invalidation"
406 msgid "An error occurred during cache invalidation"
407 msgstr ""
407 msgstr ""
408
408
409 #: rhodecode/controllers/admin/repos.py:365
409 #: rhodecode/controllers/admin/repos.py:367
410 msgid "Updated repository visibility in public journal"
410 msgid "Updated repository visibility in public journal"
411 msgstr ""
411 msgstr ""
412
412
413 #: rhodecode/controllers/admin/repos.py:369
413 #: rhodecode/controllers/admin/repos.py:371
414 msgid "An error occurred during setting this repository in public journal"
414 msgid "An error occurred during setting this repository in public journal"
415 msgstr ""
415 msgstr ""
416
416
417 #: rhodecode/controllers/admin/repos.py:374 rhodecode/model/forms.py:54
417 #: rhodecode/controllers/admin/repos.py:376 rhodecode/model/forms.py:54
418 msgid "Token mismatch"
418 msgid "Token mismatch"
419 msgstr ""
419 msgstr ""
420
420
421 #: rhodecode/controllers/admin/repos.py:387
422 msgid "Pulled from remote location"
423 msgstr ""
424
425 #: rhodecode/controllers/admin/repos.py:389
421 #: rhodecode/controllers/admin/repos.py:389
422 msgid "Pulled from remote location"
423 msgstr ""
424
425 #: rhodecode/controllers/admin/repos.py:391
426 msgid "An error occurred during pull from remote location"
426 msgid "An error occurred during pull from remote location"
427 msgstr ""
427 msgstr ""
428
428
429 #: rhodecode/controllers/admin/repos.py:405
430 msgid "Nothing"
431 msgstr ""
432
433 #: rhodecode/controllers/admin/repos.py:407
429 #: rhodecode/controllers/admin/repos.py:407
430 msgid "Nothing"
431 msgstr ""
432
433 #: rhodecode/controllers/admin/repos.py:409
434 #, python-format
434 #, python-format
435 msgid "Marked repo %s as fork of %s"
435 msgid "Marked repo %s as fork of %s"
436 msgstr ""
436 msgstr ""
437
437
438 #: rhodecode/controllers/admin/repos.py:411
438 #: rhodecode/controllers/admin/repos.py:413
439 msgid "An error occurred during this operation"
439 msgid "An error occurred during this operation"
440 msgstr ""
440 msgstr ""
441
441
@@ -529,77 +529,77 b' msgstr ""'
529 msgid "You can't edit this user since it's crucial for entire application"
529 msgid "You can't edit this user since it's crucial for entire application"
530 msgstr ""
530 msgstr ""
531
531
532 #: rhodecode/controllers/admin/settings.py:365
532 #: rhodecode/controllers/admin/settings.py:367
533 msgid "Your account was updated successfully"
533 msgid "Your account was updated successfully"
534 msgstr ""
534 msgstr ""
535
535
536 #: rhodecode/controllers/admin/settings.py:384
536 #: rhodecode/controllers/admin/settings.py:387
537 #: rhodecode/controllers/admin/users.py:132
537 #: rhodecode/controllers/admin/users.py:138
538 #, python-format
538 #, python-format
539 msgid "error occurred during update of user %s"
539 msgid "error occurred during update of user %s"
540 msgstr ""
540 msgstr ""
541
541
542 #: rhodecode/controllers/admin/users.py:79
542 #: rhodecode/controllers/admin/users.py:83
543 #, python-format
543 #, python-format
544 msgid "created user %s"
544 msgid "created user %s"
545 msgstr ""
545 msgstr ""
546
546
547 #: rhodecode/controllers/admin/users.py:92
547 #: rhodecode/controllers/admin/users.py:95
548 #, python-format
548 #, python-format
549 msgid "error occurred during creation of user %s"
549 msgid "error occurred during creation of user %s"
550 msgstr ""
550 msgstr ""
551
551
552 #: rhodecode/controllers/admin/users.py:118
552 #: rhodecode/controllers/admin/users.py:124
553 msgid "User updated successfully"
553 msgid "User updated successfully"
554 msgstr ""
554 msgstr ""
555
555
556 #: rhodecode/controllers/admin/users.py:149
556 #: rhodecode/controllers/admin/users.py:155
557 msgid "successfully deleted user"
557 msgid "successfully deleted user"
558 msgstr ""
558 msgstr ""
559
559
560 #: rhodecode/controllers/admin/users.py:154
560 #: rhodecode/controllers/admin/users.py:160
561 msgid "An error occurred during deletion of user"
561 msgid "An error occurred during deletion of user"
562 msgstr ""
562 msgstr ""
563
563
564 #: rhodecode/controllers/admin/users.py:169
564 #: rhodecode/controllers/admin/users.py:175
565 msgid "You can't edit this user"
565 msgid "You can't edit this user"
566 msgstr ""
566 msgstr ""
567
567
568 #: rhodecode/controllers/admin/users.py:199
568 #: rhodecode/controllers/admin/users.py:205
569 #: rhodecode/controllers/admin/users_groups.py:215
569 #: rhodecode/controllers/admin/users_groups.py:219
570 msgid "Granted 'repository create' permission to user"
570 msgid "Granted 'repository create' permission to user"
571 msgstr ""
571 msgstr ""
572
572
573 #: rhodecode/controllers/admin/users.py:208
573 #: rhodecode/controllers/admin/users.py:214
574 #: rhodecode/controllers/admin/users_groups.py:225
574 #: rhodecode/controllers/admin/users_groups.py:229
575 msgid "Revoked 'repository create' permission to user"
575 msgid "Revoked 'repository create' permission to user"
576 msgstr ""
576 msgstr ""
577
577
578 #: rhodecode/controllers/admin/users_groups.py:79
578 #: rhodecode/controllers/admin/users_groups.py:84
579 #, python-format
579 #, python-format
580 msgid "created users group %s"
580 msgid "created users group %s"
581 msgstr ""
581 msgstr ""
582
582
583 #: rhodecode/controllers/admin/users_groups.py:92
583 #: rhodecode/controllers/admin/users_groups.py:95
584 #, python-format
584 #, python-format
585 msgid "error occurred during creation of users group %s"
585 msgid "error occurred during creation of users group %s"
586 msgstr ""
586 msgstr ""
587
587
588 #: rhodecode/controllers/admin/users_groups.py:128
588 #: rhodecode/controllers/admin/users_groups.py:135
589 #, python-format
589 #, python-format
590 msgid "updated users group %s"
590 msgid "updated users group %s"
591 msgstr ""
591 msgstr ""
592
592
593 #: rhodecode/controllers/admin/users_groups.py:148
593 #: rhodecode/controllers/admin/users_groups.py:152
594 #, python-format
594 #, python-format
595 msgid "error occurred during update of users group %s"
595 msgid "error occurred during update of users group %s"
596 msgstr ""
596 msgstr ""
597
597
598 #: rhodecode/controllers/admin/users_groups.py:165
598 #: rhodecode/controllers/admin/users_groups.py:169
599 msgid "successfully deleted users group"
599 msgid "successfully deleted users group"
600 msgstr ""
600 msgstr ""
601
601
602 #: rhodecode/controllers/admin/users_groups.py:170
602 #: rhodecode/controllers/admin/users_groups.py:174
603 msgid "An error occurred during deletion of users group"
603 msgid "An error occurred during deletion of users group"
604 msgstr ""
604 msgstr ""
605
605
@@ -657,60 +657,80 b' msgstr ""'
657 msgid "fork name "
657 msgid "fork name "
658 msgstr ""
658 msgstr ""
659
659
660 #: rhodecode/lib/helpers.py:540
660 #: rhodecode/lib/helpers.py:550
661 msgid "[deleted] repository"
661 msgid "[deleted] repository"
662 msgstr ""
662 msgstr ""
663
663
664 #: rhodecode/lib/helpers.py:541 rhodecode/lib/helpers.py:546
664 #: rhodecode/lib/helpers.py:552 rhodecode/lib/helpers.py:562
665 msgid "[created] repository"
665 msgid "[created] repository"
666 msgstr ""
666 msgstr ""
667
667
668 #: rhodecode/lib/helpers.py:542
669 msgid "[created] repository as fork"
670 msgstr ""
671
672 #: rhodecode/lib/helpers.py:543 rhodecode/lib/helpers.py:547
673 msgid "[forked] repository"
674 msgstr ""
675
676 #: rhodecode/lib/helpers.py:544 rhodecode/lib/helpers.py:548
677 msgid "[updated] repository"
678 msgstr ""
679
680 #: rhodecode/lib/helpers.py:545
681 msgid "[delete] repository"
682 msgstr ""
683
684 #: rhodecode/lib/helpers.py:549
685 msgid "[pushed] into"
686 msgstr ""
687
688 #: rhodecode/lib/helpers.py:550
689 msgid "[committed via RhodeCode] into"
690 msgstr ""
691
692 #: rhodecode/lib/helpers.py:551
693 msgid "[pulled from remote] into"
694 msgstr ""
695
696 #: rhodecode/lib/helpers.py:552
697 msgid "[pulled] from"
698 msgstr ""
699
700 #: rhodecode/lib/helpers.py:553
701 msgid "[started following] repository"
702 msgstr ""
703
704 #: rhodecode/lib/helpers.py:554
668 #: rhodecode/lib/helpers.py:554
669 msgid "[created] repository as fork"
670 msgstr ""
671
672 #: rhodecode/lib/helpers.py:556 rhodecode/lib/helpers.py:564
673 msgid "[forked] repository"
674 msgstr ""
675
676 #: rhodecode/lib/helpers.py:558 rhodecode/lib/helpers.py:566
677 msgid "[updated] repository"
678 msgstr ""
679
680 #: rhodecode/lib/helpers.py:560
681 msgid "[delete] repository"
682 msgstr ""
683
684 #: rhodecode/lib/helpers.py:568
685 msgid "[created] user"
686 msgstr ""
687
688 #: rhodecode/lib/helpers.py:570
689 msgid "[updated] user"
690 msgstr ""
691
692 #: rhodecode/lib/helpers.py:572
693 msgid "[created] users group"
694 msgstr ""
695
696 #: rhodecode/lib/helpers.py:574
697 msgid "[updated] users group"
698 msgstr ""
699
700 #: rhodecode/lib/helpers.py:576
701 msgid "[commented] on revision in repository"
702 msgstr ""
703
704 #: rhodecode/lib/helpers.py:578
705 msgid "[pushed] into"
706 msgstr ""
707
708 #: rhodecode/lib/helpers.py:580
709 msgid "[committed via RhodeCode] into repository"
710 msgstr ""
711
712 #: rhodecode/lib/helpers.py:582
713 msgid "[pulled from remote] into repository"
714 msgstr ""
715
716 #: rhodecode/lib/helpers.py:584
717 msgid "[pulled] from"
718 msgstr ""
719
720 #: rhodecode/lib/helpers.py:586
721 msgid "[started following] repository"
722 msgstr ""
723
724 #: rhodecode/lib/helpers.py:588
705 msgid "[stopped following] repository"
725 msgid "[stopped following] repository"
706 msgstr ""
726 msgstr ""
707
727
708 #: rhodecode/lib/helpers.py:732
728 #: rhodecode/lib/helpers.py:752
709 #, python-format
729 #, python-format
710 msgid " and %s more"
730 msgid " and %s more"
711 msgstr ""
731 msgstr ""
712
732
713 #: rhodecode/lib/helpers.py:736
733 #: rhodecode/lib/helpers.py:756
714 msgid "No Files"
734 msgid "No Files"
715 msgstr ""
735 msgstr ""
716
736
@@ -958,7 +978,7 b' msgid "Dashboard"'
958 msgstr ""
978 msgstr ""
959
979
960 #: rhodecode/templates/index_base.html:6
980 #: rhodecode/templates/index_base.html:6
961 #: rhodecode/templates/admin/users/user_edit_my_account.html:115
981 #: rhodecode/templates/admin/users/user_edit_my_account.html:31
962 #: rhodecode/templates/bookmarks/bookmarks.html:10
982 #: rhodecode/templates/bookmarks/bookmarks.html:10
963 #: rhodecode/templates/branches/branches.html:9
983 #: rhodecode/templates/branches/branches.html:9
964 #: rhodecode/templates/journal/journal.html:31
984 #: rhodecode/templates/journal/journal.html:31
@@ -1009,10 +1029,10 b' msgstr ""'
1009 #: rhodecode/templates/admin/repos/repo_edit.html:32
1029 #: rhodecode/templates/admin/repos/repo_edit.html:32
1010 #: rhodecode/templates/admin/repos/repos.html:36
1030 #: rhodecode/templates/admin/repos/repos.html:36
1011 #: rhodecode/templates/admin/repos/repos.html:82
1031 #: rhodecode/templates/admin/repos/repos.html:82
1012 #: rhodecode/templates/admin/users/user_edit_my_account.html:133
1032 #: rhodecode/templates/admin/users/user_edit_my_account.html:49
1013 #: rhodecode/templates/admin/users/user_edit_my_account.html:183
1033 #: rhodecode/templates/admin/users/user_edit_my_account.html:99
1014 #: rhodecode/templates/admin/users/user_edit_my_account.html:249
1034 #: rhodecode/templates/admin/users/user_edit_my_account.html:165
1015 #: rhodecode/templates/admin/users/user_edit_my_account.html:284
1035 #: rhodecode/templates/admin/users/user_edit_my_account.html:200
1016 #: rhodecode/templates/bookmarks/bookmarks.html:36
1036 #: rhodecode/templates/bookmarks/bookmarks.html:36
1017 #: rhodecode/templates/bookmarks/bookmarks_data.html:6
1037 #: rhodecode/templates/bookmarks/bookmarks_data.html:6
1018 #: rhodecode/templates/branches/branches.html:36
1038 #: rhodecode/templates/branches/branches.html:36
@@ -1035,7 +1055,7 b' msgstr ""'
1035 #: rhodecode/templates/index_base.html:69 rhodecode/templates/index_base.html:161
1055 #: rhodecode/templates/index_base.html:69 rhodecode/templates/index_base.html:161
1036 #: rhodecode/templates/admin/repos/repos.html:39
1056 #: rhodecode/templates/admin/repos/repos.html:39
1037 #: rhodecode/templates/admin/repos/repos.html:87
1057 #: rhodecode/templates/admin/repos/repos.html:87
1038 #: rhodecode/templates/admin/users/user_edit_my_account.html:251
1058 #: rhodecode/templates/admin/users/user_edit_my_account.html:167
1039 #: rhodecode/templates/journal/journal.html:179
1059 #: rhodecode/templates/journal/journal.html:179
1040 msgid "Tip"
1060 msgid "Tip"
1041 msgstr ""
1061 msgstr ""
@@ -1074,7 +1094,7 b' msgstr ""'
1074
1094
1075 #: rhodecode/templates/index_base.html:148 rhodecode/templates/index_base.html:188
1095 #: rhodecode/templates/index_base.html:148 rhodecode/templates/index_base.html:188
1076 #: rhodecode/templates/admin/repos/repos.html:112
1096 #: rhodecode/templates/admin/repos/repos.html:112
1077 #: rhodecode/templates/admin/users/user_edit_my_account.html:270
1097 #: rhodecode/templates/admin/users/user_edit_my_account.html:186
1078 #: rhodecode/templates/bookmarks/bookmarks.html:60
1098 #: rhodecode/templates/bookmarks/bookmarks.html:60
1079 #: rhodecode/templates/branches/branches.html:60
1099 #: rhodecode/templates/branches/branches.html:60
1080 #: rhodecode/templates/journal/journal.html:202
1100 #: rhodecode/templates/journal/journal.html:202
@@ -1084,7 +1104,7 b' msgstr ""'
1084
1104
1085 #: rhodecode/templates/index_base.html:149 rhodecode/templates/index_base.html:189
1105 #: rhodecode/templates/index_base.html:149 rhodecode/templates/index_base.html:189
1086 #: rhodecode/templates/admin/repos/repos.html:113
1106 #: rhodecode/templates/admin/repos/repos.html:113
1087 #: rhodecode/templates/admin/users/user_edit_my_account.html:271
1107 #: rhodecode/templates/admin/users/user_edit_my_account.html:187
1088 #: rhodecode/templates/bookmarks/bookmarks.html:61
1108 #: rhodecode/templates/bookmarks/bookmarks.html:61
1089 #: rhodecode/templates/branches/branches.html:61
1109 #: rhodecode/templates/branches/branches.html:61
1090 #: rhodecode/templates/journal/journal.html:203
1110 #: rhodecode/templates/journal/journal.html:203
@@ -1099,7 +1119,7 b' msgstr ""'
1099
1119
1100 #: rhodecode/templates/index_base.html:190
1120 #: rhodecode/templates/index_base.html:190
1101 #: rhodecode/templates/admin/repos/repos.html:114
1121 #: rhodecode/templates/admin/repos/repos.html:114
1102 #: rhodecode/templates/admin/users/user_edit_my_account.html:272
1122 #: rhodecode/templates/admin/users/user_edit_my_account.html:188
1103 #: rhodecode/templates/bookmarks/bookmarks.html:62
1123 #: rhodecode/templates/bookmarks/bookmarks.html:62
1104 #: rhodecode/templates/branches/branches.html:62
1124 #: rhodecode/templates/branches/branches.html:62
1105 #: rhodecode/templates/journal/journal.html:204
1125 #: rhodecode/templates/journal/journal.html:204
@@ -1109,7 +1129,7 b' msgstr ""'
1109
1129
1110 #: rhodecode/templates/index_base.html:191
1130 #: rhodecode/templates/index_base.html:191
1111 #: rhodecode/templates/admin/repos/repos.html:115
1131 #: rhodecode/templates/admin/repos/repos.html:115
1112 #: rhodecode/templates/admin/users/user_edit_my_account.html:273
1132 #: rhodecode/templates/admin/users/user_edit_my_account.html:189
1113 #: rhodecode/templates/bookmarks/bookmarks.html:63
1133 #: rhodecode/templates/bookmarks/bookmarks.html:63
1114 #: rhodecode/templates/branches/branches.html:63
1134 #: rhodecode/templates/branches/branches.html:63
1115 #: rhodecode/templates/journal/journal.html:205
1135 #: rhodecode/templates/journal/journal.html:205
@@ -1119,7 +1139,7 b' msgstr ""'
1119
1139
1120 #: rhodecode/templates/index_base.html:192
1140 #: rhodecode/templates/index_base.html:192
1121 #: rhodecode/templates/admin/repos/repos.html:116
1141 #: rhodecode/templates/admin/repos/repos.html:116
1122 #: rhodecode/templates/admin/users/user_edit_my_account.html:274
1142 #: rhodecode/templates/admin/users/user_edit_my_account.html:190
1123 #: rhodecode/templates/bookmarks/bookmarks.html:64
1143 #: rhodecode/templates/bookmarks/bookmarks.html:64
1124 #: rhodecode/templates/branches/branches.html:64
1144 #: rhodecode/templates/branches/branches.html:64
1125 #: rhodecode/templates/journal/journal.html:206
1145 #: rhodecode/templates/journal/journal.html:206
@@ -1139,7 +1159,7 b' msgstr ""'
1139 #: rhodecode/templates/admin/admin_log.html:5
1159 #: rhodecode/templates/admin/admin_log.html:5
1140 #: rhodecode/templates/admin/users/user_add.html:32
1160 #: rhodecode/templates/admin/users/user_add.html:32
1141 #: rhodecode/templates/admin/users/user_edit.html:50
1161 #: rhodecode/templates/admin/users/user_edit.html:50
1142 #: rhodecode/templates/admin/users/user_edit_my_account.html:49
1162 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:26
1143 #: rhodecode/templates/base/base.html:83
1163 #: rhodecode/templates/base/base.html:83
1144 #: rhodecode/templates/summary/summary.html:113
1164 #: rhodecode/templates/summary/summary.html:113
1145 msgid "Username"
1165 msgid "Username"
@@ -1199,21 +1219,21 b' msgstr ""'
1199 #: rhodecode/templates/register.html:47
1219 #: rhodecode/templates/register.html:47
1200 #: rhodecode/templates/admin/users/user_add.html:59
1220 #: rhodecode/templates/admin/users/user_add.html:59
1201 #: rhodecode/templates/admin/users/user_edit.html:86
1221 #: rhodecode/templates/admin/users/user_edit.html:86
1202 #: rhodecode/templates/admin/users/user_edit_my_account.html:76
1222 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:53
1203 msgid "First Name"
1223 msgid "First Name"
1204 msgstr ""
1224 msgstr ""
1205
1225
1206 #: rhodecode/templates/register.html:56
1226 #: rhodecode/templates/register.html:56
1207 #: rhodecode/templates/admin/users/user_add.html:68
1227 #: rhodecode/templates/admin/users/user_add.html:68
1208 #: rhodecode/templates/admin/users/user_edit.html:95
1228 #: rhodecode/templates/admin/users/user_edit.html:95
1209 #: rhodecode/templates/admin/users/user_edit_my_account.html:85
1229 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:62
1210 msgid "Last Name"
1230 msgid "Last Name"
1211 msgstr ""
1231 msgstr ""
1212
1232
1213 #: rhodecode/templates/register.html:65
1233 #: rhodecode/templates/register.html:65
1214 #: rhodecode/templates/admin/users/user_add.html:77
1234 #: rhodecode/templates/admin/users/user_add.html:77
1215 #: rhodecode/templates/admin/users/user_edit.html:104
1235 #: rhodecode/templates/admin/users/user_edit.html:104
1216 #: rhodecode/templates/admin/users/user_edit_my_account.html:94
1236 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:71
1217 #: rhodecode/templates/summary/summary.html:115
1237 #: rhodecode/templates/summary/summary.html:115
1218 msgid "Email"
1238 msgid "Email"
1219 msgstr ""
1239 msgstr ""
@@ -1275,8 +1295,8 b' msgstr ""'
1275 #: rhodecode/templates/admin/admin_log.html:6
1295 #: rhodecode/templates/admin/admin_log.html:6
1276 #: rhodecode/templates/admin/repos/repos.html:41
1296 #: rhodecode/templates/admin/repos/repos.html:41
1277 #: rhodecode/templates/admin/repos/repos.html:90
1297 #: rhodecode/templates/admin/repos/repos.html:90
1278 #: rhodecode/templates/admin/users/user_edit_my_account.html:135
1298 #: rhodecode/templates/admin/users/user_edit_my_account.html:51
1279 #: rhodecode/templates/admin/users/user_edit_my_account.html:136
1299 #: rhodecode/templates/admin/users/user_edit_my_account.html:52
1280 #: rhodecode/templates/journal/journal.html:52
1300 #: rhodecode/templates/journal/journal.html:52
1281 #: rhodecode/templates/journal/journal.html:53
1301 #: rhodecode/templates/journal/journal.html:53
1282 msgid "Action"
1302 msgid "Action"
@@ -1298,7 +1318,7 b' msgstr ""'
1298 msgid "From IP"
1318 msgid "From IP"
1299 msgstr ""
1319 msgstr ""
1300
1320
1301 #: rhodecode/templates/admin/admin_log.html:52
1321 #: rhodecode/templates/admin/admin_log.html:53
1302 msgid "No actions yet"
1322 msgid "No actions yet"
1303 msgstr ""
1323 msgstr ""
1304
1324
@@ -1379,7 +1399,7 b' msgstr ""'
1379 #: rhodecode/templates/admin/settings/hooks.html:73
1399 #: rhodecode/templates/admin/settings/hooks.html:73
1380 #: rhodecode/templates/admin/users/user_edit.html:129
1400 #: rhodecode/templates/admin/users/user_edit.html:129
1381 #: rhodecode/templates/admin/users/user_edit.html:154
1401 #: rhodecode/templates/admin/users/user_edit.html:154
1382 #: rhodecode/templates/admin/users/user_edit_my_account.html:102
1402 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:79
1383 #: rhodecode/templates/admin/users_groups/users_group_edit.html:115
1403 #: rhodecode/templates/admin/users_groups/users_group_edit.html:115
1384 #: rhodecode/templates/settings/repo_settings.html:84
1404 #: rhodecode/templates/settings/repo_settings.html:84
1385 msgid "Save"
1405 msgid "Save"
@@ -1531,7 +1551,7 b' msgstr ""'
1531
1551
1532 #: rhodecode/templates/admin/repos/repo_edit.html:13
1552 #: rhodecode/templates/admin/repos/repo_edit.html:13
1533 #: rhodecode/templates/admin/users/user_edit.html:13
1553 #: rhodecode/templates/admin/users/user_edit.html:13
1534 #: rhodecode/templates/admin/users/user_edit_my_account.html:155
1554 #: rhodecode/templates/admin/users/user_edit_my_account.html:71
1535 #: rhodecode/templates/admin/users_groups/users_group_edit.html:13
1555 #: rhodecode/templates/admin/users_groups/users_group_edit.html:13
1536 #: rhodecode/templates/files/files_source.html:32
1556 #: rhodecode/templates/files/files_source.html:32
1537 #: rhodecode/templates/journal/journal.html:72
1557 #: rhodecode/templates/journal/journal.html:72
@@ -1689,38 +1709,27 b' msgid "private repository"'
1689 msgstr ""
1709 msgstr ""
1690
1710
1691 #: rhodecode/templates/admin/repos/repo_edit_perms.html:33
1711 #: rhodecode/templates/admin/repos/repo_edit_perms.html:33
1692 #: rhodecode/templates/admin/repos/repo_edit_perms.html:53
1712 #: rhodecode/templates/admin/repos/repo_edit_perms.html:58
1693 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:23
1713 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:23
1694 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:42
1714 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:42
1695 msgid "revoke"
1715 msgid "revoke"
1696 msgstr ""
1716 msgstr ""
1697
1717
1698 #: rhodecode/templates/admin/repos/repo_edit_perms.html:75
1718 #: rhodecode/templates/admin/repos/repo_edit_perms.html:80
1699 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:64
1719 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:64
1700 msgid "Add another member"
1720 msgid "Add another member"
1701 msgstr ""
1721 msgstr ""
1702
1722
1703 #: rhodecode/templates/admin/repos/repo_edit_perms.html:89
1723 #: rhodecode/templates/admin/repos/repo_edit_perms.html:94
1704 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:78
1724 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:78
1705 msgid "Failed to remove user"
1725 msgid "Failed to remove user"
1706 msgstr ""
1726 msgstr ""
1707
1727
1708 #: rhodecode/templates/admin/repos/repo_edit_perms.html:104
1728 #: rhodecode/templates/admin/repos/repo_edit_perms.html:109
1709 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:93
1729 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:93
1710 msgid "Failed to remove users group"
1730 msgid "Failed to remove users group"
1711 msgstr ""
1731 msgstr ""
1712
1732
1713 #: rhodecode/templates/admin/repos/repo_edit_perms.html:123
1714 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:112
1715 msgid "Group"
1716 msgstr ""
1717
1718 #: rhodecode/templates/admin/repos/repo_edit_perms.html:124
1719 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:113
1720 #: rhodecode/templates/admin/users_groups/users_groups.html:33
1721 msgid "members"
1722 msgstr ""
1723
1724 #: rhodecode/templates/admin/repos/repos.html:5
1733 #: rhodecode/templates/admin/repos/repos.html:5
1725 msgid "Repositories administration"
1734 msgid "Repositories administration"
1726 msgstr ""
1735 msgstr ""
@@ -1738,7 +1747,7 b' msgid "delete"'
1738 msgstr ""
1747 msgstr ""
1739
1748
1740 #: rhodecode/templates/admin/repos/repos.html:68
1749 #: rhodecode/templates/admin/repos/repos.html:68
1741 #: rhodecode/templates/admin/users/user_edit_my_account.html:158
1750 #: rhodecode/templates/admin/users/user_edit_my_account.html:74
1742 #, python-format
1751 #, python-format
1743 msgid "Confirm to delete this repository: %s"
1752 msgid "Confirm to delete this repository: %s"
1744 msgstr ""
1753 msgstr ""
@@ -1789,7 +1798,7 b' msgstr ""'
1789 #: rhodecode/templates/admin/settings/settings.html:177
1798 #: rhodecode/templates/admin/settings/settings.html:177
1790 #: rhodecode/templates/admin/users/user_edit.html:130
1799 #: rhodecode/templates/admin/users/user_edit.html:130
1791 #: rhodecode/templates/admin/users/user_edit.html:155
1800 #: rhodecode/templates/admin/users/user_edit.html:155
1792 #: rhodecode/templates/admin/users/user_edit_my_account.html:103
1801 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:80
1793 #: rhodecode/templates/admin/users_groups/users_group_edit.html:116
1802 #: rhodecode/templates/admin/users_groups/users_group_edit.html:116
1794 #: rhodecode/templates/files/files_add.html:82
1803 #: rhodecode/templates/files/files_add.html:82
1795 #: rhodecode/templates/files/files_edit.html:68
1804 #: rhodecode/templates/files/files_edit.html:68
@@ -2013,17 +2022,17 b' msgid "Edit user"'
2013 msgstr ""
2022 msgstr ""
2014
2023
2015 #: rhodecode/templates/admin/users/user_edit.html:34
2024 #: rhodecode/templates/admin/users/user_edit.html:34
2016 #: rhodecode/templates/admin/users/user_edit_my_account.html:33
2025 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:10
2017 msgid "Change your avatar at"
2026 msgid "Change your avatar at"
2018 msgstr ""
2027 msgstr ""
2019
2028
2020 #: rhodecode/templates/admin/users/user_edit.html:35
2029 #: rhodecode/templates/admin/users/user_edit.html:35
2021 #: rhodecode/templates/admin/users/user_edit_my_account.html:34
2030 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:11
2022 msgid "Using"
2031 msgid "Using"
2023 msgstr ""
2032 msgstr ""
2024
2033
2025 #: rhodecode/templates/admin/users/user_edit.html:43
2034 #: rhodecode/templates/admin/users/user_edit.html:43
2026 #: rhodecode/templates/admin/users/user_edit_my_account.html:43
2035 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:20
2027 msgid "API key"
2036 msgid "API key"
2028 msgstr ""
2037 msgstr ""
2029
2038
@@ -2032,12 +2041,12 b' msgid "LDAP DN"'
2032 msgstr ""
2041 msgstr ""
2033
2042
2034 #: rhodecode/templates/admin/users/user_edit.html:68
2043 #: rhodecode/templates/admin/users/user_edit.html:68
2035 #: rhodecode/templates/admin/users/user_edit_my_account.html:58
2044 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:35
2036 msgid "New password"
2045 msgid "New password"
2037 msgstr ""
2046 msgstr ""
2038
2047
2039 #: rhodecode/templates/admin/users/user_edit.html:77
2048 #: rhodecode/templates/admin/users/user_edit.html:77
2040 #: rhodecode/templates/admin/users/user_edit_my_account.html:67
2049 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:44
2041 msgid "New password confirmation"
2050 msgid "New password confirmation"
2042 msgstr ""
2051 msgstr ""
2043
2052
@@ -2055,21 +2064,21 b' msgstr ""'
2055 msgid "My Account"
2064 msgid "My Account"
2056 msgstr ""
2065 msgstr ""
2057
2066
2058 #: rhodecode/templates/admin/users/user_edit_my_account.html:116
2067 #: rhodecode/templates/admin/users/user_edit_my_account.html:32
2059 #: rhodecode/templates/journal/journal.html:32
2068 #: rhodecode/templates/journal/journal.html:32
2060 msgid "My repos"
2069 msgid "My repos"
2061 msgstr ""
2070 msgstr ""
2062
2071
2063 #: rhodecode/templates/admin/users/user_edit_my_account.html:116
2072 #: rhodecode/templates/admin/users/user_edit_my_account.html:32
2064 msgid "My permissions"
2073 msgid "My permissions"
2065 msgstr ""
2074 msgstr ""
2066
2075
2067 #: rhodecode/templates/admin/users/user_edit_my_account.html:121
2076 #: rhodecode/templates/admin/users/user_edit_my_account.html:37
2068 #: rhodecode/templates/journal/journal.html:37
2077 #: rhodecode/templates/journal/journal.html:37
2069 msgid "ADD"
2078 msgid "ADD"
2070 msgstr ""
2079 msgstr ""
2071
2080
2072 #: rhodecode/templates/admin/users/user_edit_my_account.html:134
2081 #: rhodecode/templates/admin/users/user_edit_my_account.html:50
2073 #: rhodecode/templates/bookmarks/bookmarks.html:40
2082 #: rhodecode/templates/bookmarks/bookmarks.html:40
2074 #: rhodecode/templates/bookmarks/bookmarks_data.html:9
2083 #: rhodecode/templates/bookmarks/bookmarks_data.html:9
2075 #: rhodecode/templates/branches/branches.html:40
2084 #: rhodecode/templates/branches/branches.html:40
@@ -2078,23 +2087,23 b' msgstr ""'
2078 msgid "Revision"
2087 msgid "Revision"
2079 msgstr ""
2088 msgstr ""
2080
2089
2081 #: rhodecode/templates/admin/users/user_edit_my_account.html:155
2090 #: rhodecode/templates/admin/users/user_edit_my_account.html:71
2082 #: rhodecode/templates/journal/journal.html:72
2091 #: rhodecode/templates/journal/journal.html:72
2083 msgid "private"
2092 msgid "private"
2084 msgstr ""
2093 msgstr ""
2085
2094
2086 #: rhodecode/templates/admin/users/user_edit_my_account.html:165
2095 #: rhodecode/templates/admin/users/user_edit_my_account.html:81
2087 #: rhodecode/templates/journal/journal.html:85
2096 #: rhodecode/templates/journal/journal.html:85
2088 msgid "No repositories yet"
2097 msgid "No repositories yet"
2089 msgstr ""
2098 msgstr ""
2090
2099
2091 #: rhodecode/templates/admin/users/user_edit_my_account.html:167
2100 #: rhodecode/templates/admin/users/user_edit_my_account.html:83
2092 #: rhodecode/templates/journal/journal.html:87
2101 #: rhodecode/templates/journal/journal.html:87
2093 msgid "create one now"
2102 msgid "create one now"
2094 msgstr ""
2103 msgstr ""
2095
2104
2096 #: rhodecode/templates/admin/users/user_edit_my_account.html:184
2105 #: rhodecode/templates/admin/users/user_edit_my_account.html:100
2097 #: rhodecode/templates/admin/users/user_edit_my_account.html:285
2106 #: rhodecode/templates/admin/users/user_edit_my_account.html:201
2098 msgid "Permission"
2107 msgid "Permission"
2099 msgstr ""
2108 msgstr ""
2100
2109
@@ -2195,6 +2204,11 b' msgstr ""'
2195 msgid "group name"
2204 msgid "group name"
2196 msgstr ""
2205 msgstr ""
2197
2206
2207 #: rhodecode/templates/admin/users_groups/users_groups.html:33
2208 #: rhodecode/templates/base/root.html:46
2209 msgid "members"
2210 msgstr ""
2211
2198 #: rhodecode/templates/admin/users_groups/users_groups.html:45
2212 #: rhodecode/templates/admin/users_groups/users_groups.html:45
2199 #, python-format
2213 #, python-format
2200 msgid "Confirm to delete this users group: %s"
2214 msgid "Confirm to delete this users group: %s"
@@ -2338,21 +2352,25 b' msgstr ""'
2338 msgid "Search"
2352 msgid "Search"
2339 msgstr ""
2353 msgstr ""
2340
2354
2341 #: rhodecode/templates/base/root.html:53
2355 #: rhodecode/templates/base/root.html:42
2342 msgid "add another comment"
2356 msgid "add another comment"
2343 msgstr ""
2357 msgstr ""
2344
2358
2345 #: rhodecode/templates/base/root.html:54
2359 #: rhodecode/templates/base/root.html:43
2346 #: rhodecode/templates/journal/journal.html:111
2360 #: rhodecode/templates/journal/journal.html:111
2347 #: rhodecode/templates/summary/summary.html:52
2361 #: rhodecode/templates/summary/summary.html:52
2348 msgid "Stop following this repository"
2362 msgid "Stop following this repository"
2349 msgstr ""
2363 msgstr ""
2350
2364
2351 #: rhodecode/templates/base/root.html:55
2365 #: rhodecode/templates/base/root.html:44
2352 #: rhodecode/templates/summary/summary.html:56
2366 #: rhodecode/templates/summary/summary.html:56
2353 msgid "Start following this repository"
2367 msgid "Start following this repository"
2354 msgstr ""
2368 msgstr ""
2355
2369
2370 #: rhodecode/templates/base/root.html:45
2371 msgid "Group"
2372 msgstr ""
2373
2356 #: rhodecode/templates/bookmarks/bookmarks.html:5
2374 #: rhodecode/templates/bookmarks/bookmarks.html:5
2357 msgid "Bookmarks"
2375 msgid "Bookmarks"
2358 msgstr ""
2376 msgstr ""
@@ -2480,7 +2498,7 b' msgid "download diff"'
2480 msgstr ""
2498 msgstr ""
2481
2499
2482 #: rhodecode/templates/changeset/changeset.html:42
2500 #: rhodecode/templates/changeset/changeset.html:42
2483 #: rhodecode/templates/changeset/changeset_file_comment.html:69
2501 #: rhodecode/templates/changeset/changeset_file_comment.html:71
2484 #, python-format
2502 #, python-format
2485 msgid "%d comment"
2503 msgid "%d comment"
2486 msgid_plural "%d comments"
2504 msgid_plural "%d comments"
@@ -2488,7 +2506,7 b' msgstr[0] ""'
2488 msgstr[1] ""
2506 msgstr[1] ""
2489
2507
2490 #: rhodecode/templates/changeset/changeset.html:42
2508 #: rhodecode/templates/changeset/changeset.html:42
2491 #: rhodecode/templates/changeset/changeset_file_comment.html:69
2509 #: rhodecode/templates/changeset/changeset_file_comment.html:71
2492 #, python-format
2510 #, python-format
2493 msgid "(%d inline)"
2511 msgid "(%d inline)"
2494 msgid_plural "(%d inline)"
2512 msgid_plural "(%d inline)"
@@ -2513,35 +2531,35 b' msgid "Commenting on line {1}."'
2513 msgstr ""
2531 msgstr ""
2514
2532
2515 #: rhodecode/templates/changeset/changeset_file_comment.html:39
2533 #: rhodecode/templates/changeset/changeset_file_comment.html:39
2516 #: rhodecode/templates/changeset/changeset_file_comment.html:100
2534 #: rhodecode/templates/changeset/changeset_file_comment.html:102
2517 #, python-format
2535 #, python-format
2518 msgid "Comments parsed using %s syntax with %s support."
2536 msgid "Comments parsed using %s syntax with %s support."
2519 msgstr ""
2537 msgstr ""
2520
2538
2521 #: rhodecode/templates/changeset/changeset_file_comment.html:41
2539 #: rhodecode/templates/changeset/changeset_file_comment.html:41
2522 #: rhodecode/templates/changeset/changeset_file_comment.html:102
2540 #: rhodecode/templates/changeset/changeset_file_comment.html:104
2523 msgid "Use @username inside this text to send notification to this RhodeCode user"
2541 msgid "Use @username inside this text to send notification to this RhodeCode user"
2524 msgstr ""
2542 msgstr ""
2525
2543
2526 #: rhodecode/templates/changeset/changeset_file_comment.html:47
2544 #: rhodecode/templates/changeset/changeset_file_comment.html:49
2527 #: rhodecode/templates/changeset/changeset_file_comment.html:107
2545 #: rhodecode/templates/changeset/changeset_file_comment.html:110
2528 msgid "Comment"
2546 msgid "Comment"
2529 msgstr ""
2547 msgstr ""
2530
2548
2531 #: rhodecode/templates/changeset/changeset_file_comment.html:48
2549 #: rhodecode/templates/changeset/changeset_file_comment.html:50
2532 #: rhodecode/templates/changeset/changeset_file_comment.html:59
2550 #: rhodecode/templates/changeset/changeset_file_comment.html:61
2533 msgid "Hide"
2551 msgid "Hide"
2534 msgstr ""
2552 msgstr ""
2535
2553
2536 #: rhodecode/templates/changeset/changeset_file_comment.html:55
2554 #: rhodecode/templates/changeset/changeset_file_comment.html:57
2537 msgid "You need to be logged in to comment."
2555 msgid "You need to be logged in to comment."
2538 msgstr ""
2556 msgstr ""
2539
2557
2540 #: rhodecode/templates/changeset/changeset_file_comment.html:55
2558 #: rhodecode/templates/changeset/changeset_file_comment.html:57
2541 msgid "Login now"
2559 msgid "Login now"
2542 msgstr ""
2560 msgstr ""
2543
2561
2544 #: rhodecode/templates/changeset/changeset_file_comment.html:97
2562 #: rhodecode/templates/changeset/changeset_file_comment.html:99
2545 msgid "Leave a comment"
2563 msgid "Leave a comment"
2546 msgstr ""
2564 msgstr ""
2547
2565
@@ -7,7 +7,7 b' msgid ""'
7 msgstr ""
7 msgstr ""
8 "Project-Id-Version: RhodeCode 1.2.0\n"
8 "Project-Id-Version: RhodeCode 1.2.0\n"
9 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
9 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
10 "POT-Creation-Date: 2012-05-27 17:41+0200\n"
10 "POT-Creation-Date: 2012-06-03 01:06+0200\n"
11 "PO-Revision-Date: 2012-04-05 17:37+0800\n"
11 "PO-Revision-Date: 2012-04-05 17:37+0800\n"
12 "Last-Translator: mikespook <mikespook@gmail.com>\n"
12 "Last-Translator: mikespook <mikespook@gmail.com>\n"
13 "Language-Team: mikespook\n"
13 "Language-Team: mikespook\n"
@@ -17,26 +17,26 b' msgstr ""'
17 "Content-Transfer-Encoding: 8bit\n"
17 "Content-Transfer-Encoding: 8bit\n"
18 "Generated-By: Babel 0.9.6\n"
18 "Generated-By: Babel 0.9.6\n"
19
19
20 #: rhodecode/controllers/changelog.py:96
20 #: rhodecode/controllers/changelog.py:95
21 #, fuzzy
21 #, fuzzy
22 msgid "All Branches"
22 msgid "All Branches"
23 msgstr "分支"
23 msgstr "分支"
24
24
25 #: rhodecode/controllers/changeset.py:79
25 #: rhodecode/controllers/changeset.py:80
26 msgid "show white space"
26 msgid "show white space"
27 msgstr ""
27 msgstr ""
28
28
29 #: rhodecode/controllers/changeset.py:86 rhodecode/controllers/changeset.py:93
29 #: rhodecode/controllers/changeset.py:87 rhodecode/controllers/changeset.py:94
30 msgid "ignore white space"
30 msgid "ignore white space"
31 msgstr ""
31 msgstr ""
32
32
33 #: rhodecode/controllers/changeset.py:153
33 #: rhodecode/controllers/changeset.py:154
34 #, fuzzy, python-format
34 #, fuzzy, python-format
35 msgid "%s line context"
35 msgid "%s line context"
36 msgstr "文件内容"
36 msgstr "文件内容"
37
37
38 #: rhodecode/controllers/changeset.py:320
38 #: rhodecode/controllers/changeset.py:324
39 #: rhodecode/controllers/changeset.py:335 rhodecode/lib/diffs.py:62
39 #: rhodecode/controllers/changeset.py:339 rhodecode/lib/diffs.py:62
40 msgid "binary file"
40 msgid "binary file"
41 msgstr "二进制文件"
41 msgstr "二进制文件"
42
42
@@ -184,7 +184,7 b' msgstr ""'
184 msgid "%s public journal %s feed"
184 msgid "%s public journal %s feed"
185 msgstr "公共日志 %s %s 订阅"
185 msgstr "公共日志 %s %s 订阅"
186
186
187 #: rhodecode/controllers/journal.py:190 rhodecode/controllers/journal.py:224
187 #: rhodecode/controllers/journal.py:190 rhodecode/controllers/journal.py:223
188 #: rhodecode/templates/admin/repos/repo_edit.html:177
188 #: rhodecode/templates/admin/repos/repo_edit.html:177
189 #: rhodecode/templates/base/base.html:307
189 #: rhodecode/templates/base/base.html:307
190 #: rhodecode/templates/base/base.html:309
190 #: rhodecode/templates/base/base.html:309
@@ -219,19 +219,19 b' msgid "An error occurred during this sea'
219 msgstr "在搜索操作中发生异常"
219 msgstr "在搜索操作中发生异常"
220
220
221 #: rhodecode/controllers/settings.py:103
221 #: rhodecode/controllers/settings.py:103
222 #: rhodecode/controllers/admin/repos.py:211
222 #: rhodecode/controllers/admin/repos.py:213
223 #, python-format
223 #, python-format
224 msgid "Repository %s updated successfully"
224 msgid "Repository %s updated successfully"
225 msgstr "版本库 %s 成功更新"
225 msgstr "版本库 %s 成功更新"
226
226
227 #: rhodecode/controllers/settings.py:121
227 #: rhodecode/controllers/settings.py:121
228 #: rhodecode/controllers/admin/repos.py:229
228 #: rhodecode/controllers/admin/repos.py:231
229 #, python-format
229 #, python-format
230 msgid "error occurred during update of repository %s"
230 msgid "error occurred during update of repository %s"
231 msgstr ""
231 msgstr ""
232
232
233 #: rhodecode/controllers/settings.py:139
233 #: rhodecode/controllers/settings.py:139
234 #: rhodecode/controllers/admin/repos.py:247
234 #: rhodecode/controllers/admin/repos.py:249
235 #, python-format
235 #, python-format
236 msgid ""
236 msgid ""
237 "%s repository is not mapped to db perhaps it was moved or renamed from "
237 "%s repository is not mapped to db perhaps it was moved or renamed from "
@@ -240,14 +240,14 b' msgid ""'
240 msgstr ""
240 msgstr ""
241
241
242 #: rhodecode/controllers/settings.py:151
242 #: rhodecode/controllers/settings.py:151
243 #: rhodecode/controllers/admin/repos.py:259
243 #: rhodecode/controllers/admin/repos.py:261
244 #, python-format
244 #, python-format
245 msgid "deleted repository %s"
245 msgid "deleted repository %s"
246 msgstr "已经删除版本库 %s"
246 msgstr "已经删除版本库 %s"
247
247
248 #: rhodecode/controllers/settings.py:155
248 #: rhodecode/controllers/settings.py:155
249 #: rhodecode/controllers/admin/repos.py:269
249 #: rhodecode/controllers/admin/repos.py:271
250 #: rhodecode/controllers/admin/repos.py:275
250 #: rhodecode/controllers/admin/repos.py:277
251 #, python-format
251 #, python-format
252 msgid "An error occurred during deletion of %s"
252 msgid "An error occurred during deletion of %s"
253 msgstr ""
253 msgstr ""
@@ -396,62 +396,62 b' msgstr "\xe6\x96\xb0\xe7\x89\x88\xe6\x9c\xac\xe5\xba\x93 %s \xe5\x9f\xba\xe4\xba\x8e %s \xe5\xbb\xba\xe7\xab\x8b\xe3\x80\x82"'
396 msgid "created repository %s"
396 msgid "created repository %s"
397 msgstr "建立版本库 %s"
397 msgstr "建立版本库 %s"
398
398
399 #: rhodecode/controllers/admin/repos.py:177
399 #: rhodecode/controllers/admin/repos.py:179
400 #, python-format
400 #, python-format
401 msgid "error occurred during creation of repository %s"
401 msgid "error occurred during creation of repository %s"
402 msgstr ""
402 msgstr ""
403
403
404 #: rhodecode/controllers/admin/repos.py:264
404 #: rhodecode/controllers/admin/repos.py:266
405 #, python-format
405 #, python-format
406 msgid "Cannot delete %s it still contains attached forks"
406 msgid "Cannot delete %s it still contains attached forks"
407 msgstr ""
407 msgstr ""
408
408
409 #: rhodecode/controllers/admin/repos.py:293
409 #: rhodecode/controllers/admin/repos.py:295
410 msgid "An error occurred during deletion of repository user"
410 msgid "An error occurred during deletion of repository user"
411 msgstr ""
411 msgstr ""
412
412
413 #: rhodecode/controllers/admin/repos.py:312
413 #: rhodecode/controllers/admin/repos.py:314
414 msgid "An error occurred during deletion of repository users groups"
414 msgid "An error occurred during deletion of repository users groups"
415 msgstr ""
415 msgstr ""
416
416
417 #: rhodecode/controllers/admin/repos.py:329
417 #: rhodecode/controllers/admin/repos.py:331
418 msgid "An error occurred during deletion of repository stats"
418 msgid "An error occurred during deletion of repository stats"
419 msgstr ""
419 msgstr ""
420
420
421 #: rhodecode/controllers/admin/repos.py:345
421 #: rhodecode/controllers/admin/repos.py:347
422 msgid "An error occurred during cache invalidation"
422 msgid "An error occurred during cache invalidation"
423 msgstr ""
423 msgstr ""
424
424
425 #: rhodecode/controllers/admin/repos.py:365
425 #: rhodecode/controllers/admin/repos.py:367
426 msgid "Updated repository visibility in public journal"
426 msgid "Updated repository visibility in public journal"
427 msgstr ""
427 msgstr ""
428
428
429 #: rhodecode/controllers/admin/repos.py:369
429 #: rhodecode/controllers/admin/repos.py:371
430 msgid "An error occurred during setting this repository in public journal"
430 msgid "An error occurred during setting this repository in public journal"
431 msgstr ""
431 msgstr ""
432
432
433 #: rhodecode/controllers/admin/repos.py:374 rhodecode/model/forms.py:54
433 #: rhodecode/controllers/admin/repos.py:376 rhodecode/model/forms.py:54
434 msgid "Token mismatch"
434 msgid "Token mismatch"
435 msgstr ""
435 msgstr ""
436
436
437 #: rhodecode/controllers/admin/repos.py:387
438 msgid "Pulled from remote location"
439 msgstr ""
440
441 #: rhodecode/controllers/admin/repos.py:389
437 #: rhodecode/controllers/admin/repos.py:389
442 msgid "An error occurred during pull from remote location"
438 msgid "Pulled from remote location"
443 msgstr ""
439 msgstr ""
444
440
445 #: rhodecode/controllers/admin/repos.py:405
441 #: rhodecode/controllers/admin/repos.py:391
446 msgid "Nothing"
442 msgid "An error occurred during pull from remote location"
447 msgstr ""
443 msgstr ""
448
444
449 #: rhodecode/controllers/admin/repos.py:407
445 #: rhodecode/controllers/admin/repos.py:407
446 msgid "Nothing"
447 msgstr ""
448
449 #: rhodecode/controllers/admin/repos.py:409
450 #, fuzzy, python-format
450 #, fuzzy, python-format
451 msgid "Marked repo %s as fork of %s"
451 msgid "Marked repo %s as fork of %s"
452 msgstr "新版本库 %s 基于 %s 建立。"
452 msgstr "新版本库 %s 基于 %s 建立。"
453
453
454 #: rhodecode/controllers/admin/repos.py:411
454 #: rhodecode/controllers/admin/repos.py:413
455 #, fuzzy
455 #, fuzzy
456 msgid "An error occurred during this operation"
456 msgid "An error occurred during this operation"
457 msgstr "在搜索操作中发生异常"
457 msgstr "在搜索操作中发生异常"
@@ -547,77 +547,77 b' msgstr ""'
547 msgid "You can't edit this user since it's crucial for entire application"
547 msgid "You can't edit this user since it's crucial for entire application"
548 msgstr ""
548 msgstr ""
549
549
550 #: rhodecode/controllers/admin/settings.py:365
550 #: rhodecode/controllers/admin/settings.py:367
551 msgid "Your account was updated successfully"
551 msgid "Your account was updated successfully"
552 msgstr "你的帐号已经更新完成"
552 msgstr "你的帐号已经更新完成"
553
553
554 #: rhodecode/controllers/admin/settings.py:384
554 #: rhodecode/controllers/admin/settings.py:387
555 #: rhodecode/controllers/admin/users.py:132
555 #: rhodecode/controllers/admin/users.py:138
556 #, python-format
556 #, python-format
557 msgid "error occurred during update of user %s"
557 msgid "error occurred during update of user %s"
558 msgstr ""
558 msgstr ""
559
559
560 #: rhodecode/controllers/admin/users.py:79
560 #: rhodecode/controllers/admin/users.py:83
561 #, python-format
561 #, python-format
562 msgid "created user %s"
562 msgid "created user %s"
563 msgstr "创建用户 %s"
563 msgstr "创建用户 %s"
564
564
565 #: rhodecode/controllers/admin/users.py:92
565 #: rhodecode/controllers/admin/users.py:95
566 #, python-format
566 #, python-format
567 msgid "error occurred during creation of user %s"
567 msgid "error occurred during creation of user %s"
568 msgstr ""
568 msgstr ""
569
569
570 #: rhodecode/controllers/admin/users.py:118
570 #: rhodecode/controllers/admin/users.py:124
571 msgid "User updated successfully"
571 msgid "User updated successfully"
572 msgstr "用户更新成功"
572 msgstr "用户更新成功"
573
573
574 #: rhodecode/controllers/admin/users.py:149
574 #: rhodecode/controllers/admin/users.py:155
575 msgid "successfully deleted user"
575 msgid "successfully deleted user"
576 msgstr "用户删除成功"
576 msgstr "用户删除成功"
577
577
578 #: rhodecode/controllers/admin/users.py:154
578 #: rhodecode/controllers/admin/users.py:160
579 msgid "An error occurred during deletion of user"
579 msgid "An error occurred during deletion of user"
580 msgstr ""
580 msgstr ""
581
581
582 #: rhodecode/controllers/admin/users.py:169
582 #: rhodecode/controllers/admin/users.py:175
583 msgid "You can't edit this user"
583 msgid "You can't edit this user"
584 msgstr "无法编辑该用户"
584 msgstr "无法编辑该用户"
585
585
586 #: rhodecode/controllers/admin/users.py:199
586 #: rhodecode/controllers/admin/users.py:205
587 #: rhodecode/controllers/admin/users_groups.py:215
587 #: rhodecode/controllers/admin/users_groups.py:219
588 msgid "Granted 'repository create' permission to user"
588 msgid "Granted 'repository create' permission to user"
589 msgstr ""
589 msgstr ""
590
590
591 #: rhodecode/controllers/admin/users.py:208
591 #: rhodecode/controllers/admin/users.py:214
592 #: rhodecode/controllers/admin/users_groups.py:225
592 #: rhodecode/controllers/admin/users_groups.py:229
593 msgid "Revoked 'repository create' permission to user"
593 msgid "Revoked 'repository create' permission to user"
594 msgstr ""
594 msgstr ""
595
595
596 #: rhodecode/controllers/admin/users_groups.py:79
596 #: rhodecode/controllers/admin/users_groups.py:84
597 #, python-format
597 #, python-format
598 msgid "created users group %s"
598 msgid "created users group %s"
599 msgstr "建立用户组 %s"
599 msgstr "建立用户组 %s"
600
600
601 #: rhodecode/controllers/admin/users_groups.py:92
601 #: rhodecode/controllers/admin/users_groups.py:95
602 #, python-format
602 #, python-format
603 msgid "error occurred during creation of users group %s"
603 msgid "error occurred during creation of users group %s"
604 msgstr ""
604 msgstr ""
605
605
606 #: rhodecode/controllers/admin/users_groups.py:128
606 #: rhodecode/controllers/admin/users_groups.py:135
607 #, python-format
607 #, python-format
608 msgid "updated users group %s"
608 msgid "updated users group %s"
609 msgstr "更新用户组 %s"
609 msgstr "更新用户组 %s"
610
610
611 #: rhodecode/controllers/admin/users_groups.py:148
611 #: rhodecode/controllers/admin/users_groups.py:152
612 #, python-format
612 #, python-format
613 msgid "error occurred during update of users group %s"
613 msgid "error occurred during update of users group %s"
614 msgstr ""
614 msgstr ""
615
615
616 #: rhodecode/controllers/admin/users_groups.py:165
616 #: rhodecode/controllers/admin/users_groups.py:169
617 msgid "successfully deleted users group"
617 msgid "successfully deleted users group"
618 msgstr "删除用户组成功"
618 msgstr "删除用户组成功"
619
619
620 #: rhodecode/controllers/admin/users_groups.py:170
620 #: rhodecode/controllers/admin/users_groups.py:174
621 msgid "An error occurred during deletion of users group"
621 msgid "An error occurred during deletion of users group"
622 msgstr ""
622 msgstr ""
623
623
@@ -677,61 +677,89 b' msgstr "\xe4\xbf\xae\xe8\xae\xa2"'
677 msgid "fork name "
677 msgid "fork name "
678 msgstr "分支名称"
678 msgstr "分支名称"
679
679
680 #: rhodecode/lib/helpers.py:540
680 #: rhodecode/lib/helpers.py:550
681 msgid "[deleted] repository"
681 msgid "[deleted] repository"
682 msgstr ""
682 msgstr ""
683
683
684 #: rhodecode/lib/helpers.py:541 rhodecode/lib/helpers.py:546
684 #: rhodecode/lib/helpers.py:552 rhodecode/lib/helpers.py:562
685 msgid "[created] repository"
685 msgid "[created] repository"
686 msgstr ""
686 msgstr ""
687
687
688 #: rhodecode/lib/helpers.py:542
688 #: rhodecode/lib/helpers.py:554
689 #, fuzzy
689 #, fuzzy
690 msgid "[created] repository as fork"
690 msgid "[created] repository as fork"
691 msgstr "建立版本库 %s"
691 msgstr "建立版本库 %s"
692
692
693 #: rhodecode/lib/helpers.py:543 rhodecode/lib/helpers.py:547
693 #: rhodecode/lib/helpers.py:556 rhodecode/lib/helpers.py:564
694 msgid "[forked] repository"
694 msgid "[forked] repository"
695 msgstr ""
695 msgstr ""
696
696
697 #: rhodecode/lib/helpers.py:544 rhodecode/lib/helpers.py:548
697 #: rhodecode/lib/helpers.py:558 rhodecode/lib/helpers.py:566
698 msgid "[updated] repository"
698 msgid "[updated] repository"
699 msgstr ""
699 msgstr ""
700
700
701 #: rhodecode/lib/helpers.py:545
701 #: rhodecode/lib/helpers.py:560
702 msgid "[delete] repository"
702 msgid "[delete] repository"
703 msgstr ""
703 msgstr ""
704
704
705 #: rhodecode/lib/helpers.py:549
705 #: rhodecode/lib/helpers.py:568
706 #, fuzzy, python-format
707 #| msgid "created user %s"
708 msgid "[created] user"
709 msgstr "创建用户 %s"
710
711 #: rhodecode/lib/helpers.py:570
712 #, fuzzy, python-format
713 #| msgid "updated users group %s"
714 msgid "[updated] user"
715 msgstr "更新用户组 %s"
716
717 #: rhodecode/lib/helpers.py:572
718 #, fuzzy, python-format
719 #| msgid "created users group %s"
720 msgid "[created] users group"
721 msgstr "建立用户组 %s"
722
723 #: rhodecode/lib/helpers.py:574
724 #, fuzzy, python-format
725 #| msgid "updated users group %s"
726 msgid "[updated] users group"
727 msgstr "更新用户组 %s"
728
729 #: rhodecode/lib/helpers.py:576
730 msgid "[commented] on revision in repository"
731 msgstr ""
732
733 #: rhodecode/lib/helpers.py:578
706 msgid "[pushed] into"
734 msgid "[pushed] into"
707 msgstr ""
735 msgstr ""
708
736
709 #: rhodecode/lib/helpers.py:550
737 #: rhodecode/lib/helpers.py:580
710 msgid "[committed via RhodeCode] into"
738 msgid "[committed via RhodeCode] into repository"
711 msgstr ""
739 msgstr ""
712
740
713 #: rhodecode/lib/helpers.py:551
741 #: rhodecode/lib/helpers.py:582
714 msgid "[pulled from remote] into"
742 msgid "[pulled from remote] into repository"
715 msgstr ""
743 msgstr ""
716
744
717 #: rhodecode/lib/helpers.py:552
745 #: rhodecode/lib/helpers.py:584
718 msgid "[pulled] from"
746 msgid "[pulled] from"
719 msgstr ""
747 msgstr ""
720
748
721 #: rhodecode/lib/helpers.py:553
749 #: rhodecode/lib/helpers.py:586
722 msgid "[started following] repository"
750 msgid "[started following] repository"
723 msgstr ""
751 msgstr ""
724
752
725 #: rhodecode/lib/helpers.py:554
753 #: rhodecode/lib/helpers.py:588
726 msgid "[stopped following] repository"
754 msgid "[stopped following] repository"
727 msgstr ""
755 msgstr ""
728
756
729 #: rhodecode/lib/helpers.py:732
757 #: rhodecode/lib/helpers.py:752
730 #, python-format
758 #, python-format
731 msgid " and %s more"
759 msgid " and %s more"
732 msgstr ""
760 msgstr ""
733
761
734 #: rhodecode/lib/helpers.py:736
762 #: rhodecode/lib/helpers.py:756
735 msgid "No Files"
763 msgid "No Files"
736 msgstr "没有文件"
764 msgstr "没有文件"
737
765
@@ -979,7 +1007,7 b' msgid "Dashboard"'
979 msgstr ""
1007 msgstr ""
980
1008
981 #: rhodecode/templates/index_base.html:6
1009 #: rhodecode/templates/index_base.html:6
982 #: rhodecode/templates/admin/users/user_edit_my_account.html:115
1010 #: rhodecode/templates/admin/users/user_edit_my_account.html:31
983 #: rhodecode/templates/bookmarks/bookmarks.html:10
1011 #: rhodecode/templates/bookmarks/bookmarks.html:10
984 #: rhodecode/templates/branches/branches.html:9
1012 #: rhodecode/templates/branches/branches.html:9
985 #: rhodecode/templates/journal/journal.html:31
1013 #: rhodecode/templates/journal/journal.html:31
@@ -1034,10 +1062,10 b' msgstr "\xe7\x89\x88\xe6\x9c\xac\xe5\xba\x93\xe7\xbb\x84"'
1034 #: rhodecode/templates/admin/repos/repo_edit.html:32
1062 #: rhodecode/templates/admin/repos/repo_edit.html:32
1035 #: rhodecode/templates/admin/repos/repos.html:36
1063 #: rhodecode/templates/admin/repos/repos.html:36
1036 #: rhodecode/templates/admin/repos/repos.html:82
1064 #: rhodecode/templates/admin/repos/repos.html:82
1037 #: rhodecode/templates/admin/users/user_edit_my_account.html:133
1065 #: rhodecode/templates/admin/users/user_edit_my_account.html:49
1038 #: rhodecode/templates/admin/users/user_edit_my_account.html:183
1066 #: rhodecode/templates/admin/users/user_edit_my_account.html:99
1039 #: rhodecode/templates/admin/users/user_edit_my_account.html:249
1067 #: rhodecode/templates/admin/users/user_edit_my_account.html:165
1040 #: rhodecode/templates/admin/users/user_edit_my_account.html:284
1068 #: rhodecode/templates/admin/users/user_edit_my_account.html:200
1041 #: rhodecode/templates/bookmarks/bookmarks.html:36
1069 #: rhodecode/templates/bookmarks/bookmarks.html:36
1042 #: rhodecode/templates/bookmarks/bookmarks_data.html:6
1070 #: rhodecode/templates/bookmarks/bookmarks_data.html:6
1043 #: rhodecode/templates/branches/branches.html:36
1071 #: rhodecode/templates/branches/branches.html:36
@@ -1062,7 +1090,7 b' msgstr "\xe6\x9c\x80\xe5\x90\x8e\xe4\xbf\xae\xe6\x94\xb9"'
1062 #: rhodecode/templates/index_base.html:161
1090 #: rhodecode/templates/index_base.html:161
1063 #: rhodecode/templates/admin/repos/repos.html:39
1091 #: rhodecode/templates/admin/repos/repos.html:39
1064 #: rhodecode/templates/admin/repos/repos.html:87
1092 #: rhodecode/templates/admin/repos/repos.html:87
1065 #: rhodecode/templates/admin/users/user_edit_my_account.html:251
1093 #: rhodecode/templates/admin/users/user_edit_my_account.html:167
1066 #: rhodecode/templates/journal/journal.html:179
1094 #: rhodecode/templates/journal/journal.html:179
1067 msgid "Tip"
1095 msgid "Tip"
1068 msgstr ""
1096 msgstr ""
@@ -1106,7 +1134,7 b' msgstr "\xe7\xbb\x84\xe5\x90\x8d"'
1106 #: rhodecode/templates/index_base.html:148
1134 #: rhodecode/templates/index_base.html:148
1107 #: rhodecode/templates/index_base.html:188
1135 #: rhodecode/templates/index_base.html:188
1108 #: rhodecode/templates/admin/repos/repos.html:112
1136 #: rhodecode/templates/admin/repos/repos.html:112
1109 #: rhodecode/templates/admin/users/user_edit_my_account.html:270
1137 #: rhodecode/templates/admin/users/user_edit_my_account.html:186
1110 #: rhodecode/templates/bookmarks/bookmarks.html:60
1138 #: rhodecode/templates/bookmarks/bookmarks.html:60
1111 #: rhodecode/templates/branches/branches.html:60
1139 #: rhodecode/templates/branches/branches.html:60
1112 #: rhodecode/templates/journal/journal.html:202
1140 #: rhodecode/templates/journal/journal.html:202
@@ -1117,7 +1145,7 b' msgstr ""'
1117 #: rhodecode/templates/index_base.html:149
1145 #: rhodecode/templates/index_base.html:149
1118 #: rhodecode/templates/index_base.html:189
1146 #: rhodecode/templates/index_base.html:189
1119 #: rhodecode/templates/admin/repos/repos.html:113
1147 #: rhodecode/templates/admin/repos/repos.html:113
1120 #: rhodecode/templates/admin/users/user_edit_my_account.html:271
1148 #: rhodecode/templates/admin/users/user_edit_my_account.html:187
1121 #: rhodecode/templates/bookmarks/bookmarks.html:61
1149 #: rhodecode/templates/bookmarks/bookmarks.html:61
1122 #: rhodecode/templates/branches/branches.html:61
1150 #: rhodecode/templates/branches/branches.html:61
1123 #: rhodecode/templates/journal/journal.html:203
1151 #: rhodecode/templates/journal/journal.html:203
@@ -1133,7 +1161,7 b' msgstr "\xe6\x9c\x80\xe5\x90\x8e\xe4\xbf\xae\xe6\x94\xb9"'
1133
1161
1134 #: rhodecode/templates/index_base.html:190
1162 #: rhodecode/templates/index_base.html:190
1135 #: rhodecode/templates/admin/repos/repos.html:114
1163 #: rhodecode/templates/admin/repos/repos.html:114
1136 #: rhodecode/templates/admin/users/user_edit_my_account.html:272
1164 #: rhodecode/templates/admin/users/user_edit_my_account.html:188
1137 #: rhodecode/templates/bookmarks/bookmarks.html:62
1165 #: rhodecode/templates/bookmarks/bookmarks.html:62
1138 #: rhodecode/templates/branches/branches.html:62
1166 #: rhodecode/templates/branches/branches.html:62
1139 #: rhodecode/templates/journal/journal.html:204
1167 #: rhodecode/templates/journal/journal.html:204
@@ -1143,7 +1171,7 b' msgstr ""'
1143
1171
1144 #: rhodecode/templates/index_base.html:191
1172 #: rhodecode/templates/index_base.html:191
1145 #: rhodecode/templates/admin/repos/repos.html:115
1173 #: rhodecode/templates/admin/repos/repos.html:115
1146 #: rhodecode/templates/admin/users/user_edit_my_account.html:273
1174 #: rhodecode/templates/admin/users/user_edit_my_account.html:189
1147 #: rhodecode/templates/bookmarks/bookmarks.html:63
1175 #: rhodecode/templates/bookmarks/bookmarks.html:63
1148 #: rhodecode/templates/branches/branches.html:63
1176 #: rhodecode/templates/branches/branches.html:63
1149 #: rhodecode/templates/journal/journal.html:205
1177 #: rhodecode/templates/journal/journal.html:205
@@ -1153,7 +1181,7 b' msgstr ""'
1153
1181
1154 #: rhodecode/templates/index_base.html:192
1182 #: rhodecode/templates/index_base.html:192
1155 #: rhodecode/templates/admin/repos/repos.html:116
1183 #: rhodecode/templates/admin/repos/repos.html:116
1156 #: rhodecode/templates/admin/users/user_edit_my_account.html:274
1184 #: rhodecode/templates/admin/users/user_edit_my_account.html:190
1157 #: rhodecode/templates/bookmarks/bookmarks.html:64
1185 #: rhodecode/templates/bookmarks/bookmarks.html:64
1158 #: rhodecode/templates/branches/branches.html:64
1186 #: rhodecode/templates/branches/branches.html:64
1159 #: rhodecode/templates/journal/journal.html:206
1187 #: rhodecode/templates/journal/journal.html:206
@@ -1174,7 +1202,7 b' msgstr "\xe7\x99\xbb\xe5\xbd\x95\xe5\x88\xb0"'
1174 #: rhodecode/templates/admin/admin_log.html:5
1202 #: rhodecode/templates/admin/admin_log.html:5
1175 #: rhodecode/templates/admin/users/user_add.html:32
1203 #: rhodecode/templates/admin/users/user_add.html:32
1176 #: rhodecode/templates/admin/users/user_edit.html:50
1204 #: rhodecode/templates/admin/users/user_edit.html:50
1177 #: rhodecode/templates/admin/users/user_edit_my_account.html:49
1205 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:26
1178 #: rhodecode/templates/base/base.html:83
1206 #: rhodecode/templates/base/base.html:83
1179 #: rhodecode/templates/summary/summary.html:113
1207 #: rhodecode/templates/summary/summary.html:113
1180 msgid "Username"
1208 msgid "Username"
@@ -1235,21 +1263,21 b' msgstr "\xe7\xa1\xae\xe8\xae\xa4\xe5\xaf\x86\xe7\xa0\x81"'
1235 #: rhodecode/templates/register.html:47
1263 #: rhodecode/templates/register.html:47
1236 #: rhodecode/templates/admin/users/user_add.html:59
1264 #: rhodecode/templates/admin/users/user_add.html:59
1237 #: rhodecode/templates/admin/users/user_edit.html:86
1265 #: rhodecode/templates/admin/users/user_edit.html:86
1238 #: rhodecode/templates/admin/users/user_edit_my_account.html:76
1266 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:53
1239 msgid "First Name"
1267 msgid "First Name"
1240 msgstr "名"
1268 msgstr "名"
1241
1269
1242 #: rhodecode/templates/register.html:56
1270 #: rhodecode/templates/register.html:56
1243 #: rhodecode/templates/admin/users/user_add.html:68
1271 #: rhodecode/templates/admin/users/user_add.html:68
1244 #: rhodecode/templates/admin/users/user_edit.html:95
1272 #: rhodecode/templates/admin/users/user_edit.html:95
1245 #: rhodecode/templates/admin/users/user_edit_my_account.html:85
1273 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:62
1246 msgid "Last Name"
1274 msgid "Last Name"
1247 msgstr "姓"
1275 msgstr "姓"
1248
1276
1249 #: rhodecode/templates/register.html:65
1277 #: rhodecode/templates/register.html:65
1250 #: rhodecode/templates/admin/users/user_add.html:77
1278 #: rhodecode/templates/admin/users/user_add.html:77
1251 #: rhodecode/templates/admin/users/user_edit.html:104
1279 #: rhodecode/templates/admin/users/user_edit.html:104
1252 #: rhodecode/templates/admin/users/user_edit_my_account.html:94
1280 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:71
1253 #: rhodecode/templates/summary/summary.html:115
1281 #: rhodecode/templates/summary/summary.html:115
1254 msgid "Email"
1282 msgid "Email"
1255 msgstr "电子邮件"
1283 msgstr "电子邮件"
@@ -1313,8 +1341,8 b' msgstr "\xe7\xae\xa1\xe7\x90\x86\xe5\x91\x98\xe6\x97\xa5\xe5\xbf\x97"'
1313 #: rhodecode/templates/admin/admin_log.html:6
1341 #: rhodecode/templates/admin/admin_log.html:6
1314 #: rhodecode/templates/admin/repos/repos.html:41
1342 #: rhodecode/templates/admin/repos/repos.html:41
1315 #: rhodecode/templates/admin/repos/repos.html:90
1343 #: rhodecode/templates/admin/repos/repos.html:90
1316 #: rhodecode/templates/admin/users/user_edit_my_account.html:135
1344 #: rhodecode/templates/admin/users/user_edit_my_account.html:51
1317 #: rhodecode/templates/admin/users/user_edit_my_account.html:136
1345 #: rhodecode/templates/admin/users/user_edit_my_account.html:52
1318 #: rhodecode/templates/journal/journal.html:52
1346 #: rhodecode/templates/journal/journal.html:52
1319 #: rhodecode/templates/journal/journal.html:53
1347 #: rhodecode/templates/journal/journal.html:53
1320 msgid "Action"
1348 msgid "Action"
@@ -1337,7 +1365,7 b' msgstr "\xe6\x97\xa5\xe6\x9c\x9f"'
1337 msgid "From IP"
1365 msgid "From IP"
1338 msgstr "来源 IP"
1366 msgstr "来源 IP"
1339
1367
1340 #: rhodecode/templates/admin/admin_log.html:52
1368 #: rhodecode/templates/admin/admin_log.html:53
1341 msgid "No actions yet"
1369 msgid "No actions yet"
1342 msgstr "尚无操作"
1370 msgstr "尚无操作"
1343
1371
@@ -1418,7 +1446,7 b' msgstr "\xe7\x94\xb5\xe5\xad\x90\xe9\x82\xae\xe4\xbb\xb6\xe5\xb1\x9e\xe6\x80\xa7"'
1418 #: rhodecode/templates/admin/settings/hooks.html:73
1446 #: rhodecode/templates/admin/settings/hooks.html:73
1419 #: rhodecode/templates/admin/users/user_edit.html:129
1447 #: rhodecode/templates/admin/users/user_edit.html:129
1420 #: rhodecode/templates/admin/users/user_edit.html:154
1448 #: rhodecode/templates/admin/users/user_edit.html:154
1421 #: rhodecode/templates/admin/users/user_edit_my_account.html:102
1449 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:79
1422 #: rhodecode/templates/admin/users_groups/users_group_edit.html:115
1450 #: rhodecode/templates/admin/users_groups/users_group_edit.html:115
1423 #: rhodecode/templates/settings/repo_settings.html:84
1451 #: rhodecode/templates/settings/repo_settings.html:84
1424 msgid "Save"
1452 msgid "Save"
@@ -1574,7 +1602,7 b' msgstr "\xe7\xbc\x96\xe8\xbe\x91\xe7\x89\x88\xe6\x9c\xac\xe5\xba\x93"'
1574
1602
1575 #: rhodecode/templates/admin/repos/repo_edit.html:13
1603 #: rhodecode/templates/admin/repos/repo_edit.html:13
1576 #: rhodecode/templates/admin/users/user_edit.html:13
1604 #: rhodecode/templates/admin/users/user_edit.html:13
1577 #: rhodecode/templates/admin/users/user_edit_my_account.html:155
1605 #: rhodecode/templates/admin/users/user_edit_my_account.html:71
1578 #: rhodecode/templates/admin/users_groups/users_group_edit.html:13
1606 #: rhodecode/templates/admin/users_groups/users_group_edit.html:13
1579 #: rhodecode/templates/files/files_source.html:32
1607 #: rhodecode/templates/files/files_source.html:32
1580 #: rhodecode/templates/journal/journal.html:72
1608 #: rhodecode/templates/journal/journal.html:72
@@ -1733,38 +1761,27 b' msgid "private repository"'
1733 msgstr "私有版本库"
1761 msgstr "私有版本库"
1734
1762
1735 #: rhodecode/templates/admin/repos/repo_edit_perms.html:33
1763 #: rhodecode/templates/admin/repos/repo_edit_perms.html:33
1736 #: rhodecode/templates/admin/repos/repo_edit_perms.html:53
1764 #: rhodecode/templates/admin/repos/repo_edit_perms.html:58
1737 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:23
1765 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:23
1738 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:42
1766 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:42
1739 msgid "revoke"
1767 msgid "revoke"
1740 msgstr ""
1768 msgstr ""
1741
1769
1742 #: rhodecode/templates/admin/repos/repo_edit_perms.html:75
1770 #: rhodecode/templates/admin/repos/repo_edit_perms.html:80
1743 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:64
1771 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:64
1744 msgid "Add another member"
1772 msgid "Add another member"
1745 msgstr "添加成员"
1773 msgstr "添加成员"
1746
1774
1747 #: rhodecode/templates/admin/repos/repo_edit_perms.html:89
1775 #: rhodecode/templates/admin/repos/repo_edit_perms.html:94
1748 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:78
1776 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:78
1749 msgid "Failed to remove user"
1777 msgid "Failed to remove user"
1750 msgstr "删除用户失败"
1778 msgstr "删除用户失败"
1751
1779
1752 #: rhodecode/templates/admin/repos/repo_edit_perms.html:104
1780 #: rhodecode/templates/admin/repos/repo_edit_perms.html:109
1753 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:93
1781 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:93
1754 msgid "Failed to remove users group"
1782 msgid "Failed to remove users group"
1755 msgstr "删除用户组失败"
1783 msgstr "删除用户组失败"
1756
1784
1757 #: rhodecode/templates/admin/repos/repo_edit_perms.html:123
1758 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:112
1759 msgid "Group"
1760 msgstr "组"
1761
1762 #: rhodecode/templates/admin/repos/repo_edit_perms.html:124
1763 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:113
1764 #: rhodecode/templates/admin/users_groups/users_groups.html:33
1765 msgid "members"
1766 msgstr "成员"
1767
1768 #: rhodecode/templates/admin/repos/repos.html:5
1785 #: rhodecode/templates/admin/repos/repos.html:5
1769 msgid "Repositories administration"
1786 msgid "Repositories administration"
1770 msgstr "版本库管理员"
1787 msgstr "版本库管理员"
@@ -1782,7 +1799,7 b' msgid "delete"'
1782 msgstr "删除"
1799 msgstr "删除"
1783
1800
1784 #: rhodecode/templates/admin/repos/repos.html:68
1801 #: rhodecode/templates/admin/repos/repos.html:68
1785 #: rhodecode/templates/admin/users/user_edit_my_account.html:158
1802 #: rhodecode/templates/admin/users/user_edit_my_account.html:74
1786 #, fuzzy, python-format
1803 #, fuzzy, python-format
1787 msgid "Confirm to delete this repository: %s"
1804 msgid "Confirm to delete this repository: %s"
1788 msgstr "确认删除版本库"
1805 msgstr "确认删除版本库"
@@ -1833,7 +1850,7 b' msgstr "\xe7\xbc\x96\xe8\xbe\x91\xe7\x89\x88\xe6\x9c\xac\xe5\xba\x93\xe7\xbb\x84"'
1833 #: rhodecode/templates/admin/settings/settings.html:177
1850 #: rhodecode/templates/admin/settings/settings.html:177
1834 #: rhodecode/templates/admin/users/user_edit.html:130
1851 #: rhodecode/templates/admin/users/user_edit.html:130
1835 #: rhodecode/templates/admin/users/user_edit.html:155
1852 #: rhodecode/templates/admin/users/user_edit.html:155
1836 #: rhodecode/templates/admin/users/user_edit_my_account.html:103
1853 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:80
1837 #: rhodecode/templates/admin/users_groups/users_group_edit.html:116
1854 #: rhodecode/templates/admin/users_groups/users_group_edit.html:116
1838 #: rhodecode/templates/files/files_add.html:82
1855 #: rhodecode/templates/files/files_add.html:82
1839 #: rhodecode/templates/files/files_edit.html:68
1856 #: rhodecode/templates/files/files_edit.html:68
@@ -2062,17 +2079,17 b' msgid "Edit user"'
2062 msgstr "编辑用户"
2079 msgstr "编辑用户"
2063
2080
2064 #: rhodecode/templates/admin/users/user_edit.html:34
2081 #: rhodecode/templates/admin/users/user_edit.html:34
2065 #: rhodecode/templates/admin/users/user_edit_my_account.html:33
2082 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:10
2066 msgid "Change your avatar at"
2083 msgid "Change your avatar at"
2067 msgstr "修改你的头像"
2084 msgstr "修改你的头像"
2068
2085
2069 #: rhodecode/templates/admin/users/user_edit.html:35
2086 #: rhodecode/templates/admin/users/user_edit.html:35
2070 #: rhodecode/templates/admin/users/user_edit_my_account.html:34
2087 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:11
2071 msgid "Using"
2088 msgid "Using"
2072 msgstr "使用中"
2089 msgstr "使用中"
2073
2090
2074 #: rhodecode/templates/admin/users/user_edit.html:43
2091 #: rhodecode/templates/admin/users/user_edit.html:43
2075 #: rhodecode/templates/admin/users/user_edit_my_account.html:43
2092 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:20
2076 msgid "API key"
2093 msgid "API key"
2077 msgstr ""
2094 msgstr ""
2078
2095
@@ -2081,12 +2098,12 b' msgid "LDAP DN"'
2081 msgstr ""
2098 msgstr ""
2082
2099
2083 #: rhodecode/templates/admin/users/user_edit.html:68
2100 #: rhodecode/templates/admin/users/user_edit.html:68
2084 #: rhodecode/templates/admin/users/user_edit_my_account.html:58
2101 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:35
2085 msgid "New password"
2102 msgid "New password"
2086 msgstr "新密码"
2103 msgstr "新密码"
2087
2104
2088 #: rhodecode/templates/admin/users/user_edit.html:77
2105 #: rhodecode/templates/admin/users/user_edit.html:77
2089 #: rhodecode/templates/admin/users/user_edit_my_account.html:67
2106 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:44
2090 msgid "New password confirmation"
2107 msgid "New password confirmation"
2091 msgstr ""
2108 msgstr ""
2092
2109
@@ -2104,24 +2121,24 b' msgstr "\xe6\x88\x91\xe7\x9a\x84\xe8\xb4\xa6\xe6\x88\xb7"'
2104 msgid "My Account"
2121 msgid "My Account"
2105 msgstr "我的账户"
2122 msgstr "我的账户"
2106
2123
2107 #: rhodecode/templates/admin/users/user_edit_my_account.html:116
2124 #: rhodecode/templates/admin/users/user_edit_my_account.html:32
2108 #: rhodecode/templates/journal/journal.html:32
2125 #: rhodecode/templates/journal/journal.html:32
2109 #, fuzzy
2126 #, fuzzy
2110 msgid "My repos"
2127 msgid "My repos"
2111 msgstr "空版本库"
2128 msgstr "空版本库"
2112
2129
2113 #: rhodecode/templates/admin/users/user_edit_my_account.html:116
2130 #: rhodecode/templates/admin/users/user_edit_my_account.html:32
2114 #, fuzzy
2131 #, fuzzy
2115 msgid "My permissions"
2132 msgid "My permissions"
2116 msgstr "权限"
2133 msgstr "权限"
2117
2134
2118 #: rhodecode/templates/admin/users/user_edit_my_account.html:121
2135 #: rhodecode/templates/admin/users/user_edit_my_account.html:37
2119 #: rhodecode/templates/journal/journal.html:37
2136 #: rhodecode/templates/journal/journal.html:37
2120 #, fuzzy
2137 #, fuzzy
2121 msgid "ADD"
2138 msgid "ADD"
2122 msgstr "新增"
2139 msgstr "新增"
2123
2140
2124 #: rhodecode/templates/admin/users/user_edit_my_account.html:134
2141 #: rhodecode/templates/admin/users/user_edit_my_account.html:50
2125 #: rhodecode/templates/bookmarks/bookmarks.html:40
2142 #: rhodecode/templates/bookmarks/bookmarks.html:40
2126 #: rhodecode/templates/bookmarks/bookmarks_data.html:9
2143 #: rhodecode/templates/bookmarks/bookmarks_data.html:9
2127 #: rhodecode/templates/branches/branches.html:40
2144 #: rhodecode/templates/branches/branches.html:40
@@ -2131,23 +2148,23 b' msgstr "\xe6\x96\xb0\xe5\xa2\x9e"'
2131 msgid "Revision"
2148 msgid "Revision"
2132 msgstr "修订"
2149 msgstr "修订"
2133
2150
2134 #: rhodecode/templates/admin/users/user_edit_my_account.html:155
2151 #: rhodecode/templates/admin/users/user_edit_my_account.html:71
2135 #: rhodecode/templates/journal/journal.html:72
2152 #: rhodecode/templates/journal/journal.html:72
2136 msgid "private"
2153 msgid "private"
2137 msgstr "私有"
2154 msgstr "私有"
2138
2155
2139 #: rhodecode/templates/admin/users/user_edit_my_account.html:165
2156 #: rhodecode/templates/admin/users/user_edit_my_account.html:81
2140 #: rhodecode/templates/journal/journal.html:85
2157 #: rhodecode/templates/journal/journal.html:85
2141 msgid "No repositories yet"
2158 msgid "No repositories yet"
2142 msgstr "没有任何版本库"
2159 msgstr "没有任何版本库"
2143
2160
2144 #: rhodecode/templates/admin/users/user_edit_my_account.html:167
2161 #: rhodecode/templates/admin/users/user_edit_my_account.html:83
2145 #: rhodecode/templates/journal/journal.html:87
2162 #: rhodecode/templates/journal/journal.html:87
2146 msgid "create one now"
2163 msgid "create one now"
2147 msgstr ""
2164 msgstr ""
2148
2165
2149 #: rhodecode/templates/admin/users/user_edit_my_account.html:184
2166 #: rhodecode/templates/admin/users/user_edit_my_account.html:100
2150 #: rhodecode/templates/admin/users/user_edit_my_account.html:285
2167 #: rhodecode/templates/admin/users/user_edit_my_account.html:201
2151 #, fuzzy
2168 #, fuzzy
2152 msgid "Permission"
2169 msgid "Permission"
2153 msgstr "权限"
2170 msgstr "权限"
@@ -2250,6 +2267,11 b' msgstr "\xe6\xb7\xbb\xe5\x8a\xa0\xe6\x96\xb0\xe7\x94\xa8\xe6\x88\xb7\xe7\xbb\x84"'
2250 msgid "group name"
2267 msgid "group name"
2251 msgstr "组名"
2268 msgstr "组名"
2252
2269
2270 #: rhodecode/templates/admin/users_groups/users_groups.html:33
2271 #: rhodecode/templates/base/root.html:46
2272 msgid "members"
2273 msgstr "成员"
2274
2253 #: rhodecode/templates/admin/users_groups/users_groups.html:45
2275 #: rhodecode/templates/admin/users_groups/users_groups.html:45
2254 #, fuzzy, python-format
2276 #, fuzzy, python-format
2255 msgid "Confirm to delete this users group: %s"
2277 msgid "Confirm to delete this users group: %s"
@@ -2410,22 +2432,26 b' msgstr ""'
2410 msgid "Search"
2432 msgid "Search"
2411 msgstr "搜索"
2433 msgstr "搜索"
2412
2434
2413 #: rhodecode/templates/base/root.html:53
2435 #: rhodecode/templates/base/root.html:42
2414 #, fuzzy
2436 #, fuzzy
2415 msgid "add another comment"
2437 msgid "add another comment"
2416 msgstr "添加成员"
2438 msgstr "添加成员"
2417
2439
2418 #: rhodecode/templates/base/root.html:54
2440 #: rhodecode/templates/base/root.html:43
2419 #: rhodecode/templates/journal/journal.html:111
2441 #: rhodecode/templates/journal/journal.html:111
2420 #: rhodecode/templates/summary/summary.html:52
2442 #: rhodecode/templates/summary/summary.html:52
2421 msgid "Stop following this repository"
2443 msgid "Stop following this repository"
2422 msgstr "停止跟随该版本库"
2444 msgstr "停止跟随该版本库"
2423
2445
2424 #: rhodecode/templates/base/root.html:55
2446 #: rhodecode/templates/base/root.html:44
2425 #: rhodecode/templates/summary/summary.html:56
2447 #: rhodecode/templates/summary/summary.html:56
2426 msgid "Start following this repository"
2448 msgid "Start following this repository"
2427 msgstr "开始跟随该版本库"
2449 msgstr "开始跟随该版本库"
2428
2450
2451 #: rhodecode/templates/base/root.html:45
2452 msgid "Group"
2453 msgstr "组"
2454
2429 #: rhodecode/templates/bookmarks/bookmarks.html:5
2455 #: rhodecode/templates/bookmarks/bookmarks.html:5
2430 msgid "Bookmarks"
2456 msgid "Bookmarks"
2431 msgstr ""
2457 msgstr ""
@@ -2554,14 +2580,14 b' msgid "download diff"'
2554 msgstr "下载 diff"
2580 msgstr "下载 diff"
2555
2581
2556 #: rhodecode/templates/changeset/changeset.html:42
2582 #: rhodecode/templates/changeset/changeset.html:42
2557 #: rhodecode/templates/changeset/changeset_file_comment.html:69
2583 #: rhodecode/templates/changeset/changeset_file_comment.html:71
2558 #, fuzzy, python-format
2584 #, fuzzy, python-format
2559 msgid "%d comment"
2585 msgid "%d comment"
2560 msgid_plural "%d comments"
2586 msgid_plural "%d comments"
2561 msgstr[0] "提交"
2587 msgstr[0] "提交"
2562
2588
2563 #: rhodecode/templates/changeset/changeset.html:42
2589 #: rhodecode/templates/changeset/changeset.html:42
2564 #: rhodecode/templates/changeset/changeset_file_comment.html:69
2590 #: rhodecode/templates/changeset/changeset_file_comment.html:71
2565 #, python-format
2591 #, python-format
2566 msgid "(%d inline)"
2592 msgid "(%d inline)"
2567 msgid_plural "(%d inline)"
2593 msgid_plural "(%d inline)"
@@ -2585,37 +2611,37 b' msgid "Commenting on line {1}."'
2585 msgstr ""
2611 msgstr ""
2586
2612
2587 #: rhodecode/templates/changeset/changeset_file_comment.html:39
2613 #: rhodecode/templates/changeset/changeset_file_comment.html:39
2588 #: rhodecode/templates/changeset/changeset_file_comment.html:100
2614 #: rhodecode/templates/changeset/changeset_file_comment.html:102
2589 #, python-format
2615 #, python-format
2590 msgid "Comments parsed using %s syntax with %s support."
2616 msgid "Comments parsed using %s syntax with %s support."
2591 msgstr ""
2617 msgstr ""
2592
2618
2593 #: rhodecode/templates/changeset/changeset_file_comment.html:41
2619 #: rhodecode/templates/changeset/changeset_file_comment.html:41
2594 #: rhodecode/templates/changeset/changeset_file_comment.html:102
2620 #: rhodecode/templates/changeset/changeset_file_comment.html:104
2595 msgid "Use @username inside this text to send notification to this RhodeCode user"
2621 msgid "Use @username inside this text to send notification to this RhodeCode user"
2596 msgstr ""
2622 msgstr ""
2597
2623
2598 #: rhodecode/templates/changeset/changeset_file_comment.html:47
2624 #: rhodecode/templates/changeset/changeset_file_comment.html:49
2599 #: rhodecode/templates/changeset/changeset_file_comment.html:107
2625 #: rhodecode/templates/changeset/changeset_file_comment.html:110
2600 #, fuzzy
2626 #, fuzzy
2601 msgid "Comment"
2627 msgid "Comment"
2602 msgstr "提交"
2628 msgstr "提交"
2603
2629
2604 #: rhodecode/templates/changeset/changeset_file_comment.html:48
2630 #: rhodecode/templates/changeset/changeset_file_comment.html:50
2605 #: rhodecode/templates/changeset/changeset_file_comment.html:59
2631 #: rhodecode/templates/changeset/changeset_file_comment.html:61
2606 msgid "Hide"
2632 msgid "Hide"
2607 msgstr ""
2633 msgstr ""
2608
2634
2609 #: rhodecode/templates/changeset/changeset_file_comment.html:55
2635 #: rhodecode/templates/changeset/changeset_file_comment.html:57
2610 #, fuzzy
2636 #, fuzzy
2611 msgid "You need to be logged in to comment."
2637 msgid "You need to be logged in to comment."
2612 msgstr "必须登录才能访问该页面"
2638 msgstr "必须登录才能访问该页面"
2613
2639
2614 #: rhodecode/templates/changeset/changeset_file_comment.html:55
2640 #: rhodecode/templates/changeset/changeset_file_comment.html:57
2615 msgid "Login now"
2641 msgid "Login now"
2616 msgstr ""
2642 msgstr ""
2617
2643
2618 #: rhodecode/templates/changeset/changeset_file_comment.html:97
2644 #: rhodecode/templates/changeset/changeset_file_comment.html:99
2619 msgid "Leave a comment"
2645 msgid "Leave a comment"
2620 msgstr ""
2646 msgstr ""
2621
2647
@@ -3119,3 +3145,9 b' msgstr "\xe6\x96\x87\xe4\xbb\xb6\xe5\xb7\xb2\xe6\x9b\xb4\xe6\x94\xb9"'
3119 msgid "file removed"
3145 msgid "file removed"
3120 msgstr "文件已删除"
3146 msgstr "文件已删除"
3121
3147
3148 #~ msgid "[committed via RhodeCode] into"
3149 #~ msgstr ""
3150
3151 #~ msgid "[pulled from remote] into"
3152 #~ msgstr ""
3153
@@ -7,7 +7,7 b' msgid ""'
7 msgstr ""
7 msgstr ""
8 "Project-Id-Version: RhodeCode 1.2.0\n"
8 "Project-Id-Version: RhodeCode 1.2.0\n"
9 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
9 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
10 "POT-Creation-Date: 2012-05-27 17:41+0200\n"
10 "POT-Creation-Date: 2012-06-03 01:06+0200\n"
11 "PO-Revision-Date: 2012-05-09 22:23+0800\n"
11 "PO-Revision-Date: 2012-05-09 22:23+0800\n"
12 "Last-Translator: Nansen <nansenat16@gmail.com>\n"
12 "Last-Translator: Nansen <nansenat16@gmail.com>\n"
13 "Language-Team: zh_TW <LL@li.org>\n"
13 "Language-Team: zh_TW <LL@li.org>\n"
@@ -17,26 +17,26 b' msgstr ""'
17 "Content-Transfer-Encoding: 8bit\n"
17 "Content-Transfer-Encoding: 8bit\n"
18 "Generated-By: Babel 0.9.6\n"
18 "Generated-By: Babel 0.9.6\n"
19
19
20 #: rhodecode/controllers/changelog.py:96
20 #: rhodecode/controllers/changelog.py:95
21 #, fuzzy
21 #, fuzzy
22 msgid "All Branches"
22 msgid "All Branches"
23 msgstr "分支"
23 msgstr "分支"
24
24
25 #: rhodecode/controllers/changeset.py:79
25 #: rhodecode/controllers/changeset.py:80
26 msgid "show white space"
26 msgid "show white space"
27 msgstr ""
27 msgstr ""
28
28
29 #: rhodecode/controllers/changeset.py:86 rhodecode/controllers/changeset.py:93
29 #: rhodecode/controllers/changeset.py:87 rhodecode/controllers/changeset.py:94
30 msgid "ignore white space"
30 msgid "ignore white space"
31 msgstr ""
31 msgstr ""
32
32
33 #: rhodecode/controllers/changeset.py:153
33 #: rhodecode/controllers/changeset.py:154
34 #, fuzzy, python-format
34 #, fuzzy, python-format
35 msgid "%s line context"
35 msgid "%s line context"
36 msgstr "文件內容"
36 msgstr "文件內容"
37
37
38 #: rhodecode/controllers/changeset.py:320
38 #: rhodecode/controllers/changeset.py:324
39 #: rhodecode/controllers/changeset.py:335 rhodecode/lib/diffs.py:62
39 #: rhodecode/controllers/changeset.py:339 rhodecode/lib/diffs.py:62
40 msgid "binary file"
40 msgid "binary file"
41 msgstr "二進位檔"
41 msgstr "二進位檔"
42
42
@@ -184,7 +184,7 b' msgstr ""'
184 msgid "%s public journal %s feed"
184 msgid "%s public journal %s feed"
185 msgstr "%s 公開日誌 %s feed"
185 msgstr "%s 公開日誌 %s feed"
186
186
187 #: rhodecode/controllers/journal.py:190 rhodecode/controllers/journal.py:224
187 #: rhodecode/controllers/journal.py:190 rhodecode/controllers/journal.py:223
188 #: rhodecode/templates/admin/repos/repo_edit.html:177
188 #: rhodecode/templates/admin/repos/repo_edit.html:177
189 #: rhodecode/templates/base/base.html:307
189 #: rhodecode/templates/base/base.html:307
190 #: rhodecode/templates/base/base.html:309
190 #: rhodecode/templates/base/base.html:309
@@ -219,19 +219,19 b' msgid "An error occurred during this sea'
219 msgstr ""
219 msgstr ""
220
220
221 #: rhodecode/controllers/settings.py:103
221 #: rhodecode/controllers/settings.py:103
222 #: rhodecode/controllers/admin/repos.py:211
222 #: rhodecode/controllers/admin/repos.py:213
223 #, python-format
223 #, python-format
224 msgid "Repository %s updated successfully"
224 msgid "Repository %s updated successfully"
225 msgstr "版本庫 %s 更新完成"
225 msgstr "版本庫 %s 更新完成"
226
226
227 #: rhodecode/controllers/settings.py:121
227 #: rhodecode/controllers/settings.py:121
228 #: rhodecode/controllers/admin/repos.py:229
228 #: rhodecode/controllers/admin/repos.py:231
229 #, python-format
229 #, python-format
230 msgid "error occurred during update of repository %s"
230 msgid "error occurred during update of repository %s"
231 msgstr ""
231 msgstr ""
232
232
233 #: rhodecode/controllers/settings.py:139
233 #: rhodecode/controllers/settings.py:139
234 #: rhodecode/controllers/admin/repos.py:247
234 #: rhodecode/controllers/admin/repos.py:249
235 #, python-format
235 #, python-format
236 msgid ""
236 msgid ""
237 "%s repository is not mapped to db perhaps it was moved or renamed from "
237 "%s repository is not mapped to db perhaps it was moved or renamed from "
@@ -240,14 +240,14 b' msgid ""'
240 msgstr ""
240 msgstr ""
241
241
242 #: rhodecode/controllers/settings.py:151
242 #: rhodecode/controllers/settings.py:151
243 #: rhodecode/controllers/admin/repos.py:259
243 #: rhodecode/controllers/admin/repos.py:261
244 #, python-format
244 #, python-format
245 msgid "deleted repository %s"
245 msgid "deleted repository %s"
246 msgstr "刪除版本庫 %s"
246 msgstr "刪除版本庫 %s"
247
247
248 #: rhodecode/controllers/settings.py:155
248 #: rhodecode/controllers/settings.py:155
249 #: rhodecode/controllers/admin/repos.py:269
249 #: rhodecode/controllers/admin/repos.py:271
250 #: rhodecode/controllers/admin/repos.py:275
250 #: rhodecode/controllers/admin/repos.py:277
251 #, python-format
251 #, python-format
252 msgid "An error occurred during deletion of %s"
252 msgid "An error occurred during deletion of %s"
253 msgstr ""
253 msgstr ""
@@ -396,62 +396,62 b' msgstr "\xe5\xbb\xba\xe7\xab\x8b\xe7\x89\x88\xe6\x9c\xac\xe5\xba\xab %s \xe5\x88\xb0 %s"'
396 msgid "created repository %s"
396 msgid "created repository %s"
397 msgstr "建立版本庫 %s"
397 msgstr "建立版本庫 %s"
398
398
399 #: rhodecode/controllers/admin/repos.py:177
399 #: rhodecode/controllers/admin/repos.py:179
400 #, python-format
400 #, python-format
401 msgid "error occurred during creation of repository %s"
401 msgid "error occurred during creation of repository %s"
402 msgstr ""
402 msgstr ""
403
403
404 #: rhodecode/controllers/admin/repos.py:264
404 #: rhodecode/controllers/admin/repos.py:266
405 #, python-format
405 #, python-format
406 msgid "Cannot delete %s it still contains attached forks"
406 msgid "Cannot delete %s it still contains attached forks"
407 msgstr ""
407 msgstr ""
408
408
409 #: rhodecode/controllers/admin/repos.py:293
409 #: rhodecode/controllers/admin/repos.py:295
410 msgid "An error occurred during deletion of repository user"
410 msgid "An error occurred during deletion of repository user"
411 msgstr ""
411 msgstr ""
412
412
413 #: rhodecode/controllers/admin/repos.py:312
413 #: rhodecode/controllers/admin/repos.py:314
414 msgid "An error occurred during deletion of repository users groups"
414 msgid "An error occurred during deletion of repository users groups"
415 msgstr ""
415 msgstr ""
416
416
417 #: rhodecode/controllers/admin/repos.py:329
417 #: rhodecode/controllers/admin/repos.py:331
418 msgid "An error occurred during deletion of repository stats"
418 msgid "An error occurred during deletion of repository stats"
419 msgstr ""
419 msgstr ""
420
420
421 #: rhodecode/controllers/admin/repos.py:345
421 #: rhodecode/controllers/admin/repos.py:347
422 msgid "An error occurred during cache invalidation"
422 msgid "An error occurred during cache invalidation"
423 msgstr ""
423 msgstr ""
424
424
425 #: rhodecode/controllers/admin/repos.py:365
425 #: rhodecode/controllers/admin/repos.py:367
426 msgid "Updated repository visibility in public journal"
426 msgid "Updated repository visibility in public journal"
427 msgstr ""
427 msgstr ""
428
428
429 #: rhodecode/controllers/admin/repos.py:369
429 #: rhodecode/controllers/admin/repos.py:371
430 msgid "An error occurred during setting this repository in public journal"
430 msgid "An error occurred during setting this repository in public journal"
431 msgstr ""
431 msgstr ""
432
432
433 #: rhodecode/controllers/admin/repos.py:374 rhodecode/model/forms.py:54
433 #: rhodecode/controllers/admin/repos.py:376 rhodecode/model/forms.py:54
434 msgid "Token mismatch"
434 msgid "Token mismatch"
435 msgstr ""
435 msgstr ""
436
436
437 #: rhodecode/controllers/admin/repos.py:387
438 msgid "Pulled from remote location"
439 msgstr ""
440
441 #: rhodecode/controllers/admin/repos.py:389
437 #: rhodecode/controllers/admin/repos.py:389
442 msgid "An error occurred during pull from remote location"
438 msgid "Pulled from remote location"
443 msgstr ""
439 msgstr ""
444
440
445 #: rhodecode/controllers/admin/repos.py:405
441 #: rhodecode/controllers/admin/repos.py:391
446 msgid "Nothing"
442 msgid "An error occurred during pull from remote location"
447 msgstr ""
443 msgstr ""
448
444
449 #: rhodecode/controllers/admin/repos.py:407
445 #: rhodecode/controllers/admin/repos.py:407
446 msgid "Nothing"
447 msgstr ""
448
449 #: rhodecode/controllers/admin/repos.py:409
450 #, fuzzy, python-format
450 #, fuzzy, python-format
451 msgid "Marked repo %s as fork of %s"
451 msgid "Marked repo %s as fork of %s"
452 msgstr "建立版本庫 %s 到 %s"
452 msgstr "建立版本庫 %s 到 %s"
453
453
454 #: rhodecode/controllers/admin/repos.py:411
454 #: rhodecode/controllers/admin/repos.py:413
455 msgid "An error occurred during this operation"
455 msgid "An error occurred during this operation"
456 msgstr ""
456 msgstr ""
457
457
@@ -545,77 +545,77 b' msgstr ""'
545 msgid "You can't edit this user since it's crucial for entire application"
545 msgid "You can't edit this user since it's crucial for entire application"
546 msgstr ""
546 msgstr ""
547
547
548 #: rhodecode/controllers/admin/settings.py:365
548 #: rhodecode/controllers/admin/settings.py:367
549 msgid "Your account was updated successfully"
549 msgid "Your account was updated successfully"
550 msgstr "您的帳號已更新完成"
550 msgstr "您的帳號已更新完成"
551
551
552 #: rhodecode/controllers/admin/settings.py:384
552 #: rhodecode/controllers/admin/settings.py:387
553 #: rhodecode/controllers/admin/users.py:132
553 #: rhodecode/controllers/admin/users.py:138
554 #, python-format
554 #, python-format
555 msgid "error occurred during update of user %s"
555 msgid "error occurred during update of user %s"
556 msgstr ""
556 msgstr ""
557
557
558 #: rhodecode/controllers/admin/users.py:79
558 #: rhodecode/controllers/admin/users.py:83
559 #, python-format
559 #, python-format
560 msgid "created user %s"
560 msgid "created user %s"
561 msgstr "建立使用者 %s"
561 msgstr "建立使用者 %s"
562
562
563 #: rhodecode/controllers/admin/users.py:92
563 #: rhodecode/controllers/admin/users.py:95
564 #, python-format
564 #, python-format
565 msgid "error occurred during creation of user %s"
565 msgid "error occurred during creation of user %s"
566 msgstr ""
566 msgstr ""
567
567
568 #: rhodecode/controllers/admin/users.py:118
568 #: rhodecode/controllers/admin/users.py:124
569 msgid "User updated successfully"
569 msgid "User updated successfully"
570 msgstr "使用者更新完成"
570 msgstr "使用者更新完成"
571
571
572 #: rhodecode/controllers/admin/users.py:149
572 #: rhodecode/controllers/admin/users.py:155
573 msgid "successfully deleted user"
573 msgid "successfully deleted user"
574 msgstr "成功刪除使用者"
574 msgstr "成功刪除使用者"
575
575
576 #: rhodecode/controllers/admin/users.py:154
576 #: rhodecode/controllers/admin/users.py:160
577 msgid "An error occurred during deletion of user"
577 msgid "An error occurred during deletion of user"
578 msgstr ""
578 msgstr ""
579
579
580 #: rhodecode/controllers/admin/users.py:169
580 #: rhodecode/controllers/admin/users.py:175
581 msgid "You can't edit this user"
581 msgid "You can't edit this user"
582 msgstr "您無法編輯這位使用者"
582 msgstr "您無法編輯這位使用者"
583
583
584 #: rhodecode/controllers/admin/users.py:199
584 #: rhodecode/controllers/admin/users.py:205
585 #: rhodecode/controllers/admin/users_groups.py:215
585 #: rhodecode/controllers/admin/users_groups.py:219
586 msgid "Granted 'repository create' permission to user"
586 msgid "Granted 'repository create' permission to user"
587 msgstr ""
587 msgstr ""
588
588
589 #: rhodecode/controllers/admin/users.py:208
589 #: rhodecode/controllers/admin/users.py:214
590 #: rhodecode/controllers/admin/users_groups.py:225
590 #: rhodecode/controllers/admin/users_groups.py:229
591 msgid "Revoked 'repository create' permission to user"
591 msgid "Revoked 'repository create' permission to user"
592 msgstr ""
592 msgstr ""
593
593
594 #: rhodecode/controllers/admin/users_groups.py:79
594 #: rhodecode/controllers/admin/users_groups.py:84
595 #, python-format
595 #, python-format
596 msgid "created users group %s"
596 msgid "created users group %s"
597 msgstr "建立使用者群組 %s"
597 msgstr "建立使用者群組 %s"
598
598
599 #: rhodecode/controllers/admin/users_groups.py:92
599 #: rhodecode/controllers/admin/users_groups.py:95
600 #, python-format
600 #, python-format
601 msgid "error occurred during creation of users group %s"
601 msgid "error occurred during creation of users group %s"
602 msgstr ""
602 msgstr ""
603
603
604 #: rhodecode/controllers/admin/users_groups.py:128
604 #: rhodecode/controllers/admin/users_groups.py:135
605 #, python-format
605 #, python-format
606 msgid "updated users group %s"
606 msgid "updated users group %s"
607 msgstr "更新使用者群組 %s"
607 msgstr "更新使用者群組 %s"
608
608
609 #: rhodecode/controllers/admin/users_groups.py:148
609 #: rhodecode/controllers/admin/users_groups.py:152
610 #, python-format
610 #, python-format
611 msgid "error occurred during update of users group %s"
611 msgid "error occurred during update of users group %s"
612 msgstr ""
612 msgstr ""
613
613
614 #: rhodecode/controllers/admin/users_groups.py:165
614 #: rhodecode/controllers/admin/users_groups.py:169
615 msgid "successfully deleted users group"
615 msgid "successfully deleted users group"
616 msgstr "成功移除使用者群組"
616 msgstr "成功移除使用者群組"
617
617
618 #: rhodecode/controllers/admin/users_groups.py:170
618 #: rhodecode/controllers/admin/users_groups.py:174
619 msgid "An error occurred during deletion of users group"
619 msgid "An error occurred during deletion of users group"
620 msgstr ""
620 msgstr ""
621
621
@@ -674,61 +674,89 b' msgstr "\xe4\xbf\xae\xe8\xa8\x82"'
674 msgid "fork name "
674 msgid "fork name "
675 msgstr "fork 名稱"
675 msgstr "fork 名稱"
676
676
677 #: rhodecode/lib/helpers.py:540
677 #: rhodecode/lib/helpers.py:550
678 msgid "[deleted] repository"
678 msgid "[deleted] repository"
679 msgstr ""
679 msgstr ""
680
680
681 #: rhodecode/lib/helpers.py:541 rhodecode/lib/helpers.py:546
681 #: rhodecode/lib/helpers.py:552 rhodecode/lib/helpers.py:562
682 msgid "[created] repository"
682 msgid "[created] repository"
683 msgstr ""
683 msgstr ""
684
684
685 #: rhodecode/lib/helpers.py:542
685 #: rhodecode/lib/helpers.py:554
686 #, fuzzy
686 #, fuzzy
687 msgid "[created] repository as fork"
687 msgid "[created] repository as fork"
688 msgstr "建立版本庫 %s"
688 msgstr "建立版本庫 %s"
689
689
690 #: rhodecode/lib/helpers.py:543 rhodecode/lib/helpers.py:547
690 #: rhodecode/lib/helpers.py:556 rhodecode/lib/helpers.py:564
691 msgid "[forked] repository"
691 msgid "[forked] repository"
692 msgstr ""
692 msgstr ""
693
693
694 #: rhodecode/lib/helpers.py:544 rhodecode/lib/helpers.py:548
694 #: rhodecode/lib/helpers.py:558 rhodecode/lib/helpers.py:566
695 msgid "[updated] repository"
695 msgid "[updated] repository"
696 msgstr ""
696 msgstr ""
697
697
698 #: rhodecode/lib/helpers.py:545
698 #: rhodecode/lib/helpers.py:560
699 msgid "[delete] repository"
699 msgid "[delete] repository"
700 msgstr ""
700 msgstr ""
701
701
702 #: rhodecode/lib/helpers.py:549
702 #: rhodecode/lib/helpers.py:568
703 #, fuzzy, python-format
704 #| msgid "created user %s"
705 msgid "[created] user"
706 msgstr "建立使用者 %s"
707
708 #: rhodecode/lib/helpers.py:570
709 #, fuzzy, python-format
710 #| msgid "updated users group %s"
711 msgid "[updated] user"
712 msgstr "更新使用者群組 %s"
713
714 #: rhodecode/lib/helpers.py:572
715 #, fuzzy, python-format
716 #| msgid "created users group %s"
717 msgid "[created] users group"
718 msgstr "建立使用者群組 %s"
719
720 #: rhodecode/lib/helpers.py:574
721 #, fuzzy, python-format
722 #| msgid "updated users group %s"
723 msgid "[updated] users group"
724 msgstr "更新使用者群組 %s"
725
726 #: rhodecode/lib/helpers.py:576
727 msgid "[commented] on revision in repository"
728 msgstr ""
729
730 #: rhodecode/lib/helpers.py:578
703 msgid "[pushed] into"
731 msgid "[pushed] into"
704 msgstr ""
732 msgstr ""
705
733
706 #: rhodecode/lib/helpers.py:550
734 #: rhodecode/lib/helpers.py:580
707 msgid "[committed via RhodeCode] into"
735 msgid "[committed via RhodeCode] into repository"
708 msgstr ""
736 msgstr ""
709
737
710 #: rhodecode/lib/helpers.py:551
738 #: rhodecode/lib/helpers.py:582
711 msgid "[pulled from remote] into"
739 msgid "[pulled from remote] into repository"
712 msgstr ""
740 msgstr ""
713
741
714 #: rhodecode/lib/helpers.py:552
742 #: rhodecode/lib/helpers.py:584
715 msgid "[pulled] from"
743 msgid "[pulled] from"
716 msgstr ""
744 msgstr ""
717
745
718 #: rhodecode/lib/helpers.py:553
746 #: rhodecode/lib/helpers.py:586
719 msgid "[started following] repository"
747 msgid "[started following] repository"
720 msgstr ""
748 msgstr ""
721
749
722 #: rhodecode/lib/helpers.py:554
750 #: rhodecode/lib/helpers.py:588
723 msgid "[stopped following] repository"
751 msgid "[stopped following] repository"
724 msgstr ""
752 msgstr ""
725
753
726 #: rhodecode/lib/helpers.py:732
754 #: rhodecode/lib/helpers.py:752
727 #, python-format
755 #, python-format
728 msgid " and %s more"
756 msgid " and %s more"
729 msgstr ""
757 msgstr ""
730
758
731 #: rhodecode/lib/helpers.py:736
759 #: rhodecode/lib/helpers.py:756
732 msgid "No Files"
760 msgid "No Files"
733 msgstr "沒有檔案"
761 msgstr "沒有檔案"
734
762
@@ -976,7 +1004,7 b' msgid "Dashboard"'
976 msgstr "儀表板"
1004 msgstr "儀表板"
977
1005
978 #: rhodecode/templates/index_base.html:6
1006 #: rhodecode/templates/index_base.html:6
979 #: rhodecode/templates/admin/users/user_edit_my_account.html:115
1007 #: rhodecode/templates/admin/users/user_edit_my_account.html:31
980 #: rhodecode/templates/bookmarks/bookmarks.html:10
1008 #: rhodecode/templates/bookmarks/bookmarks.html:10
981 #: rhodecode/templates/branches/branches.html:9
1009 #: rhodecode/templates/branches/branches.html:9
982 #: rhodecode/templates/journal/journal.html:31
1010 #: rhodecode/templates/journal/journal.html:31
@@ -1031,10 +1059,10 b' msgstr "\xe7\x89\x88\xe6\x9c\xac\xe5\xba\xab\xe7\xbe\xa4\xe7\xb5\x84"'
1031 #: rhodecode/templates/admin/repos/repo_edit.html:32
1059 #: rhodecode/templates/admin/repos/repo_edit.html:32
1032 #: rhodecode/templates/admin/repos/repos.html:36
1060 #: rhodecode/templates/admin/repos/repos.html:36
1033 #: rhodecode/templates/admin/repos/repos.html:82
1061 #: rhodecode/templates/admin/repos/repos.html:82
1034 #: rhodecode/templates/admin/users/user_edit_my_account.html:133
1062 #: rhodecode/templates/admin/users/user_edit_my_account.html:49
1035 #: rhodecode/templates/admin/users/user_edit_my_account.html:183
1063 #: rhodecode/templates/admin/users/user_edit_my_account.html:99
1036 #: rhodecode/templates/admin/users/user_edit_my_account.html:249
1064 #: rhodecode/templates/admin/users/user_edit_my_account.html:165
1037 #: rhodecode/templates/admin/users/user_edit_my_account.html:284
1065 #: rhodecode/templates/admin/users/user_edit_my_account.html:200
1038 #: rhodecode/templates/bookmarks/bookmarks.html:36
1066 #: rhodecode/templates/bookmarks/bookmarks.html:36
1039 #: rhodecode/templates/bookmarks/bookmarks_data.html:6
1067 #: rhodecode/templates/bookmarks/bookmarks_data.html:6
1040 #: rhodecode/templates/branches/branches.html:36
1068 #: rhodecode/templates/branches/branches.html:36
@@ -1059,7 +1087,7 b' msgstr "\xe6\x9c\x80\xe5\xbe\x8c\xe4\xbf\xae\xe6\x94\xb9"'
1059 #: rhodecode/templates/index_base.html:161
1087 #: rhodecode/templates/index_base.html:161
1060 #: rhodecode/templates/admin/repos/repos.html:39
1088 #: rhodecode/templates/admin/repos/repos.html:39
1061 #: rhodecode/templates/admin/repos/repos.html:87
1089 #: rhodecode/templates/admin/repos/repos.html:87
1062 #: rhodecode/templates/admin/users/user_edit_my_account.html:251
1090 #: rhodecode/templates/admin/users/user_edit_my_account.html:167
1063 #: rhodecode/templates/journal/journal.html:179
1091 #: rhodecode/templates/journal/journal.html:179
1064 msgid "Tip"
1092 msgid "Tip"
1065 msgstr ""
1093 msgstr ""
@@ -1103,7 +1131,7 b' msgstr "\xe7\xbe\xa4\xe7\xb5\x84\xe5\x90\x8d\xe7\xa8\xb1"'
1103 #: rhodecode/templates/index_base.html:148
1131 #: rhodecode/templates/index_base.html:148
1104 #: rhodecode/templates/index_base.html:188
1132 #: rhodecode/templates/index_base.html:188
1105 #: rhodecode/templates/admin/repos/repos.html:112
1133 #: rhodecode/templates/admin/repos/repos.html:112
1106 #: rhodecode/templates/admin/users/user_edit_my_account.html:270
1134 #: rhodecode/templates/admin/users/user_edit_my_account.html:186
1107 #: rhodecode/templates/bookmarks/bookmarks.html:60
1135 #: rhodecode/templates/bookmarks/bookmarks.html:60
1108 #: rhodecode/templates/branches/branches.html:60
1136 #: rhodecode/templates/branches/branches.html:60
1109 #: rhodecode/templates/journal/journal.html:202
1137 #: rhodecode/templates/journal/journal.html:202
@@ -1114,7 +1142,7 b' msgstr ""'
1114 #: rhodecode/templates/index_base.html:149
1142 #: rhodecode/templates/index_base.html:149
1115 #: rhodecode/templates/index_base.html:189
1143 #: rhodecode/templates/index_base.html:189
1116 #: rhodecode/templates/admin/repos/repos.html:113
1144 #: rhodecode/templates/admin/repos/repos.html:113
1117 #: rhodecode/templates/admin/users/user_edit_my_account.html:271
1145 #: rhodecode/templates/admin/users/user_edit_my_account.html:187
1118 #: rhodecode/templates/bookmarks/bookmarks.html:61
1146 #: rhodecode/templates/bookmarks/bookmarks.html:61
1119 #: rhodecode/templates/branches/branches.html:61
1147 #: rhodecode/templates/branches/branches.html:61
1120 #: rhodecode/templates/journal/journal.html:203
1148 #: rhodecode/templates/journal/journal.html:203
@@ -1130,7 +1158,7 b' msgstr "\xe6\x9c\x80\xe5\xbe\x8c\xe4\xbf\xae\xe6\x94\xb9"'
1130
1158
1131 #: rhodecode/templates/index_base.html:190
1159 #: rhodecode/templates/index_base.html:190
1132 #: rhodecode/templates/admin/repos/repos.html:114
1160 #: rhodecode/templates/admin/repos/repos.html:114
1133 #: rhodecode/templates/admin/users/user_edit_my_account.html:272
1161 #: rhodecode/templates/admin/users/user_edit_my_account.html:188
1134 #: rhodecode/templates/bookmarks/bookmarks.html:62
1162 #: rhodecode/templates/bookmarks/bookmarks.html:62
1135 #: rhodecode/templates/branches/branches.html:62
1163 #: rhodecode/templates/branches/branches.html:62
1136 #: rhodecode/templates/journal/journal.html:204
1164 #: rhodecode/templates/journal/journal.html:204
@@ -1140,7 +1168,7 b' msgstr ""'
1140
1168
1141 #: rhodecode/templates/index_base.html:191
1169 #: rhodecode/templates/index_base.html:191
1142 #: rhodecode/templates/admin/repos/repos.html:115
1170 #: rhodecode/templates/admin/repos/repos.html:115
1143 #: rhodecode/templates/admin/users/user_edit_my_account.html:273
1171 #: rhodecode/templates/admin/users/user_edit_my_account.html:189
1144 #: rhodecode/templates/bookmarks/bookmarks.html:63
1172 #: rhodecode/templates/bookmarks/bookmarks.html:63
1145 #: rhodecode/templates/branches/branches.html:63
1173 #: rhodecode/templates/branches/branches.html:63
1146 #: rhodecode/templates/journal/journal.html:205
1174 #: rhodecode/templates/journal/journal.html:205
@@ -1150,7 +1178,7 b' msgstr ""'
1150
1178
1151 #: rhodecode/templates/index_base.html:192
1179 #: rhodecode/templates/index_base.html:192
1152 #: rhodecode/templates/admin/repos/repos.html:116
1180 #: rhodecode/templates/admin/repos/repos.html:116
1153 #: rhodecode/templates/admin/users/user_edit_my_account.html:274
1181 #: rhodecode/templates/admin/users/user_edit_my_account.html:190
1154 #: rhodecode/templates/bookmarks/bookmarks.html:64
1182 #: rhodecode/templates/bookmarks/bookmarks.html:64
1155 #: rhodecode/templates/branches/branches.html:64
1183 #: rhodecode/templates/branches/branches.html:64
1156 #: rhodecode/templates/journal/journal.html:206
1184 #: rhodecode/templates/journal/journal.html:206
@@ -1171,7 +1199,7 b' msgstr "\xe7\x99\xbb\xe5\x85\xa5"'
1171 #: rhodecode/templates/admin/admin_log.html:5
1199 #: rhodecode/templates/admin/admin_log.html:5
1172 #: rhodecode/templates/admin/users/user_add.html:32
1200 #: rhodecode/templates/admin/users/user_add.html:32
1173 #: rhodecode/templates/admin/users/user_edit.html:50
1201 #: rhodecode/templates/admin/users/user_edit.html:50
1174 #: rhodecode/templates/admin/users/user_edit_my_account.html:49
1202 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:26
1175 #: rhodecode/templates/base/base.html:83
1203 #: rhodecode/templates/base/base.html:83
1176 #: rhodecode/templates/summary/summary.html:113
1204 #: rhodecode/templates/summary/summary.html:113
1177 msgid "Username"
1205 msgid "Username"
@@ -1232,21 +1260,21 b' msgstr "\xe7\xa2\xba\xe8\xaa\x8d\xe5\xaf\x86\xe7\xa2\xbc"'
1232 #: rhodecode/templates/register.html:47
1260 #: rhodecode/templates/register.html:47
1233 #: rhodecode/templates/admin/users/user_add.html:59
1261 #: rhodecode/templates/admin/users/user_add.html:59
1234 #: rhodecode/templates/admin/users/user_edit.html:86
1262 #: rhodecode/templates/admin/users/user_edit.html:86
1235 #: rhodecode/templates/admin/users/user_edit_my_account.html:76
1263 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:53
1236 msgid "First Name"
1264 msgid "First Name"
1237 msgstr "名"
1265 msgstr "名"
1238
1266
1239 #: rhodecode/templates/register.html:56
1267 #: rhodecode/templates/register.html:56
1240 #: rhodecode/templates/admin/users/user_add.html:68
1268 #: rhodecode/templates/admin/users/user_add.html:68
1241 #: rhodecode/templates/admin/users/user_edit.html:95
1269 #: rhodecode/templates/admin/users/user_edit.html:95
1242 #: rhodecode/templates/admin/users/user_edit_my_account.html:85
1270 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:62
1243 msgid "Last Name"
1271 msgid "Last Name"
1244 msgstr "姓"
1272 msgstr "姓"
1245
1273
1246 #: rhodecode/templates/register.html:65
1274 #: rhodecode/templates/register.html:65
1247 #: rhodecode/templates/admin/users/user_add.html:77
1275 #: rhodecode/templates/admin/users/user_add.html:77
1248 #: rhodecode/templates/admin/users/user_edit.html:104
1276 #: rhodecode/templates/admin/users/user_edit.html:104
1249 #: rhodecode/templates/admin/users/user_edit_my_account.html:94
1277 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:71
1250 #: rhodecode/templates/summary/summary.html:115
1278 #: rhodecode/templates/summary/summary.html:115
1251 msgid "Email"
1279 msgid "Email"
1252 msgstr "電子郵件"
1280 msgstr "電子郵件"
@@ -1310,8 +1338,8 b' msgstr "\xe7\xae\xa1\xe7\x90\x86\xe5\x93\xa1\xe6\x97\xa5\xe8\xaa\x8c"'
1310 #: rhodecode/templates/admin/admin_log.html:6
1338 #: rhodecode/templates/admin/admin_log.html:6
1311 #: rhodecode/templates/admin/repos/repos.html:41
1339 #: rhodecode/templates/admin/repos/repos.html:41
1312 #: rhodecode/templates/admin/repos/repos.html:90
1340 #: rhodecode/templates/admin/repos/repos.html:90
1313 #: rhodecode/templates/admin/users/user_edit_my_account.html:135
1341 #: rhodecode/templates/admin/users/user_edit_my_account.html:51
1314 #: rhodecode/templates/admin/users/user_edit_my_account.html:136
1342 #: rhodecode/templates/admin/users/user_edit_my_account.html:52
1315 #: rhodecode/templates/journal/journal.html:52
1343 #: rhodecode/templates/journal/journal.html:52
1316 #: rhodecode/templates/journal/journal.html:53
1344 #: rhodecode/templates/journal/journal.html:53
1317 msgid "Action"
1345 msgid "Action"
@@ -1334,7 +1362,7 b' msgstr "\xe6\x99\x82\xe9\x96\x93"'
1334 msgid "From IP"
1362 msgid "From IP"
1335 msgstr "來源IP"
1363 msgstr "來源IP"
1336
1364
1337 #: rhodecode/templates/admin/admin_log.html:52
1365 #: rhodecode/templates/admin/admin_log.html:53
1338 msgid "No actions yet"
1366 msgid "No actions yet"
1339 msgstr ""
1367 msgstr ""
1340
1368
@@ -1415,7 +1443,7 b' msgstr "\xe9\x9b\xbb\xe5\xad\x90\xe9\x83\xb5\xe4\xbb\xb6\xe5\xb1\xac\xe6\x80\xa7"'
1415 #: rhodecode/templates/admin/settings/hooks.html:73
1443 #: rhodecode/templates/admin/settings/hooks.html:73
1416 #: rhodecode/templates/admin/users/user_edit.html:129
1444 #: rhodecode/templates/admin/users/user_edit.html:129
1417 #: rhodecode/templates/admin/users/user_edit.html:154
1445 #: rhodecode/templates/admin/users/user_edit.html:154
1418 #: rhodecode/templates/admin/users/user_edit_my_account.html:102
1446 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:79
1419 #: rhodecode/templates/admin/users_groups/users_group_edit.html:115
1447 #: rhodecode/templates/admin/users_groups/users_group_edit.html:115
1420 #: rhodecode/templates/settings/repo_settings.html:84
1448 #: rhodecode/templates/settings/repo_settings.html:84
1421 msgid "Save"
1449 msgid "Save"
@@ -1570,7 +1598,7 b' msgstr "\xe7\xb7\xa8\xe8\xbc\xaf\xe7\x89\x88\xe6\x9c\xac\xe5\xba\xab"'
1570
1598
1571 #: rhodecode/templates/admin/repos/repo_edit.html:13
1599 #: rhodecode/templates/admin/repos/repo_edit.html:13
1572 #: rhodecode/templates/admin/users/user_edit.html:13
1600 #: rhodecode/templates/admin/users/user_edit.html:13
1573 #: rhodecode/templates/admin/users/user_edit_my_account.html:155
1601 #: rhodecode/templates/admin/users/user_edit_my_account.html:71
1574 #: rhodecode/templates/admin/users_groups/users_group_edit.html:13
1602 #: rhodecode/templates/admin/users_groups/users_group_edit.html:13
1575 #: rhodecode/templates/files/files_source.html:32
1603 #: rhodecode/templates/files/files_source.html:32
1576 #: rhodecode/templates/journal/journal.html:72
1604 #: rhodecode/templates/journal/journal.html:72
@@ -1729,38 +1757,27 b' msgid "private repository"'
1729 msgstr "私有版本庫"
1757 msgstr "私有版本庫"
1730
1758
1731 #: rhodecode/templates/admin/repos/repo_edit_perms.html:33
1759 #: rhodecode/templates/admin/repos/repo_edit_perms.html:33
1732 #: rhodecode/templates/admin/repos/repo_edit_perms.html:53
1760 #: rhodecode/templates/admin/repos/repo_edit_perms.html:58
1733 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:23
1761 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:23
1734 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:42
1762 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:42
1735 msgid "revoke"
1763 msgid "revoke"
1736 msgstr ""
1764 msgstr ""
1737
1765
1738 #: rhodecode/templates/admin/repos/repo_edit_perms.html:75
1766 #: rhodecode/templates/admin/repos/repo_edit_perms.html:80
1739 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:64
1767 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:64
1740 msgid "Add another member"
1768 msgid "Add another member"
1741 msgstr "新增另ㄧ位成員"
1769 msgstr "新增另ㄧ位成員"
1742
1770
1743 #: rhodecode/templates/admin/repos/repo_edit_perms.html:89
1771 #: rhodecode/templates/admin/repos/repo_edit_perms.html:94
1744 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:78
1772 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:78
1745 msgid "Failed to remove user"
1773 msgid "Failed to remove user"
1746 msgstr "移除使用者失敗"
1774 msgstr "移除使用者失敗"
1747
1775
1748 #: rhodecode/templates/admin/repos/repo_edit_perms.html:104
1776 #: rhodecode/templates/admin/repos/repo_edit_perms.html:109
1749 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:93
1777 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:93
1750 msgid "Failed to remove users group"
1778 msgid "Failed to remove users group"
1751 msgstr "移除使用者群組失敗"
1779 msgstr "移除使用者群組失敗"
1752
1780
1753 #: rhodecode/templates/admin/repos/repo_edit_perms.html:123
1754 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:112
1755 msgid "Group"
1756 msgstr "群組"
1757
1758 #: rhodecode/templates/admin/repos/repo_edit_perms.html:124
1759 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:113
1760 #: rhodecode/templates/admin/users_groups/users_groups.html:33
1761 msgid "members"
1762 msgstr "成員"
1763
1764 #: rhodecode/templates/admin/repos/repos.html:5
1781 #: rhodecode/templates/admin/repos/repos.html:5
1765 msgid "Repositories administration"
1782 msgid "Repositories administration"
1766 msgstr "版本庫管理員"
1783 msgstr "版本庫管理員"
@@ -1778,7 +1795,7 b' msgid "delete"'
1778 msgstr "刪除"
1795 msgstr "刪除"
1779
1796
1780 #: rhodecode/templates/admin/repos/repos.html:68
1797 #: rhodecode/templates/admin/repos/repos.html:68
1781 #: rhodecode/templates/admin/users/user_edit_my_account.html:158
1798 #: rhodecode/templates/admin/users/user_edit_my_account.html:74
1782 #, fuzzy, python-format
1799 #, fuzzy, python-format
1783 msgid "Confirm to delete this repository: %s"
1800 msgid "Confirm to delete this repository: %s"
1784 msgstr "確認移除這個版本庫"
1801 msgstr "確認移除這個版本庫"
@@ -1829,7 +1846,7 b' msgstr "\xe7\xb7\xa8\xe8\xbc\xaf\xe7\x89\x88\xe6\x9c\xac\xe5\xba\xab\xe7\xbe\xa4\xe7\xb5\x84"'
1829 #: rhodecode/templates/admin/settings/settings.html:177
1846 #: rhodecode/templates/admin/settings/settings.html:177
1830 #: rhodecode/templates/admin/users/user_edit.html:130
1847 #: rhodecode/templates/admin/users/user_edit.html:130
1831 #: rhodecode/templates/admin/users/user_edit.html:155
1848 #: rhodecode/templates/admin/users/user_edit.html:155
1832 #: rhodecode/templates/admin/users/user_edit_my_account.html:103
1849 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:80
1833 #: rhodecode/templates/admin/users_groups/users_group_edit.html:116
1850 #: rhodecode/templates/admin/users_groups/users_group_edit.html:116
1834 #: rhodecode/templates/files/files_add.html:82
1851 #: rhodecode/templates/files/files_add.html:82
1835 #: rhodecode/templates/files/files_edit.html:68
1852 #: rhodecode/templates/files/files_edit.html:68
@@ -2058,17 +2075,17 b' msgid "Edit user"'
2058 msgstr "編輯使用者"
2075 msgstr "編輯使用者"
2059
2076
2060 #: rhodecode/templates/admin/users/user_edit.html:34
2077 #: rhodecode/templates/admin/users/user_edit.html:34
2061 #: rhodecode/templates/admin/users/user_edit_my_account.html:33
2078 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:10
2062 msgid "Change your avatar at"
2079 msgid "Change your avatar at"
2063 msgstr "修改您的頭像於"
2080 msgstr "修改您的頭像於"
2064
2081
2065 #: rhodecode/templates/admin/users/user_edit.html:35
2082 #: rhodecode/templates/admin/users/user_edit.html:35
2066 #: rhodecode/templates/admin/users/user_edit_my_account.html:34
2083 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:11
2067 msgid "Using"
2084 msgid "Using"
2068 msgstr "使用中"
2085 msgstr "使用中"
2069
2086
2070 #: rhodecode/templates/admin/users/user_edit.html:43
2087 #: rhodecode/templates/admin/users/user_edit.html:43
2071 #: rhodecode/templates/admin/users/user_edit_my_account.html:43
2088 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:20
2072 msgid "API key"
2089 msgid "API key"
2073 msgstr ""
2090 msgstr ""
2074
2091
@@ -2077,12 +2094,12 b' msgid "LDAP DN"'
2077 msgstr ""
2094 msgstr ""
2078
2095
2079 #: rhodecode/templates/admin/users/user_edit.html:68
2096 #: rhodecode/templates/admin/users/user_edit.html:68
2080 #: rhodecode/templates/admin/users/user_edit_my_account.html:58
2097 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:35
2081 msgid "New password"
2098 msgid "New password"
2082 msgstr "新密碼"
2099 msgstr "新密碼"
2083
2100
2084 #: rhodecode/templates/admin/users/user_edit.html:77
2101 #: rhodecode/templates/admin/users/user_edit.html:77
2085 #: rhodecode/templates/admin/users/user_edit_my_account.html:67
2102 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:44
2086 msgid "New password confirmation"
2103 msgid "New password confirmation"
2087 msgstr ""
2104 msgstr ""
2088
2105
@@ -2100,24 +2117,24 b' msgstr "\xe6\x88\x91\xe7\x9a\x84\xe5\xb8\xb3\xe8\x99\x9f"'
2100 msgid "My Account"
2117 msgid "My Account"
2101 msgstr "我的帳號"
2118 msgstr "我的帳號"
2102
2119
2103 #: rhodecode/templates/admin/users/user_edit_my_account.html:116
2120 #: rhodecode/templates/admin/users/user_edit_my_account.html:32
2104 #: rhodecode/templates/journal/journal.html:32
2121 #: rhodecode/templates/journal/journal.html:32
2105 #, fuzzy
2122 #, fuzzy
2106 msgid "My repos"
2123 msgid "My repos"
2107 msgstr "空的版本庫"
2124 msgstr "空的版本庫"
2108
2125
2109 #: rhodecode/templates/admin/users/user_edit_my_account.html:116
2126 #: rhodecode/templates/admin/users/user_edit_my_account.html:32
2110 #, fuzzy
2127 #, fuzzy
2111 msgid "My permissions"
2128 msgid "My permissions"
2112 msgstr "權限"
2129 msgstr "權限"
2113
2130
2114 #: rhodecode/templates/admin/users/user_edit_my_account.html:121
2131 #: rhodecode/templates/admin/users/user_edit_my_account.html:37
2115 #: rhodecode/templates/journal/journal.html:37
2132 #: rhodecode/templates/journal/journal.html:37
2116 #, fuzzy
2133 #, fuzzy
2117 msgid "ADD"
2134 msgid "ADD"
2118 msgstr "新增"
2135 msgstr "新增"
2119
2136
2120 #: rhodecode/templates/admin/users/user_edit_my_account.html:134
2137 #: rhodecode/templates/admin/users/user_edit_my_account.html:50
2121 #: rhodecode/templates/bookmarks/bookmarks.html:40
2138 #: rhodecode/templates/bookmarks/bookmarks.html:40
2122 #: rhodecode/templates/bookmarks/bookmarks_data.html:9
2139 #: rhodecode/templates/bookmarks/bookmarks_data.html:9
2123 #: rhodecode/templates/branches/branches.html:40
2140 #: rhodecode/templates/branches/branches.html:40
@@ -2127,23 +2144,23 b' msgstr "\xe6\x96\xb0\xe5\xa2\x9e"'
2127 msgid "Revision"
2144 msgid "Revision"
2128 msgstr "修訂"
2145 msgstr "修訂"
2129
2146
2130 #: rhodecode/templates/admin/users/user_edit_my_account.html:155
2147 #: rhodecode/templates/admin/users/user_edit_my_account.html:71
2131 #: rhodecode/templates/journal/journal.html:72
2148 #: rhodecode/templates/journal/journal.html:72
2132 msgid "private"
2149 msgid "private"
2133 msgstr "私有"
2150 msgstr "私有"
2134
2151
2135 #: rhodecode/templates/admin/users/user_edit_my_account.html:165
2152 #: rhodecode/templates/admin/users/user_edit_my_account.html:81
2136 #: rhodecode/templates/journal/journal.html:85
2153 #: rhodecode/templates/journal/journal.html:85
2137 msgid "No repositories yet"
2154 msgid "No repositories yet"
2138 msgstr "沒有任何版本庫"
2155 msgstr "沒有任何版本庫"
2139
2156
2140 #: rhodecode/templates/admin/users/user_edit_my_account.html:167
2157 #: rhodecode/templates/admin/users/user_edit_my_account.html:83
2141 #: rhodecode/templates/journal/journal.html:87
2158 #: rhodecode/templates/journal/journal.html:87
2142 msgid "create one now"
2159 msgid "create one now"
2143 msgstr ""
2160 msgstr ""
2144
2161
2145 #: rhodecode/templates/admin/users/user_edit_my_account.html:184
2162 #: rhodecode/templates/admin/users/user_edit_my_account.html:100
2146 #: rhodecode/templates/admin/users/user_edit_my_account.html:285
2163 #: rhodecode/templates/admin/users/user_edit_my_account.html:201
2147 #, fuzzy
2164 #, fuzzy
2148 msgid "Permission"
2165 msgid "Permission"
2149 msgstr "權限"
2166 msgstr "權限"
@@ -2246,6 +2263,11 b' msgstr "\xe5\xbb\xba\xe7\xab\x8b\xe6\x96\xb0\xe7\x9a\x84\xe4\xbd\xbf\xe7\x94\xa8\xe8\x80\x85\xe7\xbe\xa4\xe7\xb5\x84"'
2246 msgid "group name"
2263 msgid "group name"
2247 msgstr "群組名稱"
2264 msgstr "群組名稱"
2248
2265
2266 #: rhodecode/templates/admin/users_groups/users_groups.html:33
2267 #: rhodecode/templates/base/root.html:46
2268 msgid "members"
2269 msgstr "成員"
2270
2249 #: rhodecode/templates/admin/users_groups/users_groups.html:45
2271 #: rhodecode/templates/admin/users_groups/users_groups.html:45
2250 #, fuzzy, python-format
2272 #, fuzzy, python-format
2251 msgid "Confirm to delete this users group: %s"
2273 msgid "Confirm to delete this users group: %s"
@@ -2406,22 +2428,26 b' msgstr ""'
2406 msgid "Search"
2428 msgid "Search"
2407 msgstr "搜尋"
2429 msgstr "搜尋"
2408
2430
2409 #: rhodecode/templates/base/root.html:53
2431 #: rhodecode/templates/base/root.html:42
2410 #, fuzzy
2432 #, fuzzy
2411 msgid "add another comment"
2433 msgid "add another comment"
2412 msgstr "新增另ㄧ位成員"
2434 msgstr "新增另ㄧ位成員"
2413
2435
2414 #: rhodecode/templates/base/root.html:54
2436 #: rhodecode/templates/base/root.html:43
2415 #: rhodecode/templates/journal/journal.html:111
2437 #: rhodecode/templates/journal/journal.html:111
2416 #: rhodecode/templates/summary/summary.html:52
2438 #: rhodecode/templates/summary/summary.html:52
2417 msgid "Stop following this repository"
2439 msgid "Stop following this repository"
2418 msgstr "停止追蹤這個版本庫"
2440 msgstr "停止追蹤這個版本庫"
2419
2441
2420 #: rhodecode/templates/base/root.html:55
2442 #: rhodecode/templates/base/root.html:44
2421 #: rhodecode/templates/summary/summary.html:56
2443 #: rhodecode/templates/summary/summary.html:56
2422 msgid "Start following this repository"
2444 msgid "Start following this repository"
2423 msgstr "開始追蹤這個版本庫"
2445 msgstr "開始追蹤這個版本庫"
2424
2446
2447 #: rhodecode/templates/base/root.html:45
2448 msgid "Group"
2449 msgstr "群組"
2450
2425 #: rhodecode/templates/bookmarks/bookmarks.html:5
2451 #: rhodecode/templates/bookmarks/bookmarks.html:5
2426 msgid "Bookmarks"
2452 msgid "Bookmarks"
2427 msgstr ""
2453 msgstr ""
@@ -2550,14 +2576,14 b' msgid "download diff"'
2550 msgstr "下載差異"
2576 msgstr "下載差異"
2551
2577
2552 #: rhodecode/templates/changeset/changeset.html:42
2578 #: rhodecode/templates/changeset/changeset.html:42
2553 #: rhodecode/templates/changeset/changeset_file_comment.html:69
2579 #: rhodecode/templates/changeset/changeset_file_comment.html:71
2554 #, fuzzy, python-format
2580 #, fuzzy, python-format
2555 msgid "%d comment"
2581 msgid "%d comment"
2556 msgid_plural "%d comments"
2582 msgid_plural "%d comments"
2557 msgstr[0] "遞交"
2583 msgstr[0] "遞交"
2558
2584
2559 #: rhodecode/templates/changeset/changeset.html:42
2585 #: rhodecode/templates/changeset/changeset.html:42
2560 #: rhodecode/templates/changeset/changeset_file_comment.html:69
2586 #: rhodecode/templates/changeset/changeset_file_comment.html:71
2561 #, python-format
2587 #, python-format
2562 msgid "(%d inline)"
2588 msgid "(%d inline)"
2563 msgid_plural "(%d inline)"
2589 msgid_plural "(%d inline)"
@@ -2581,37 +2607,37 b' msgid "Commenting on line {1}."'
2581 msgstr ""
2607 msgstr ""
2582
2608
2583 #: rhodecode/templates/changeset/changeset_file_comment.html:39
2609 #: rhodecode/templates/changeset/changeset_file_comment.html:39
2584 #: rhodecode/templates/changeset/changeset_file_comment.html:100
2610 #: rhodecode/templates/changeset/changeset_file_comment.html:102
2585 #, python-format
2611 #, python-format
2586 msgid "Comments parsed using %s syntax with %s support."
2612 msgid "Comments parsed using %s syntax with %s support."
2587 msgstr ""
2613 msgstr ""
2588
2614
2589 #: rhodecode/templates/changeset/changeset_file_comment.html:41
2615 #: rhodecode/templates/changeset/changeset_file_comment.html:41
2590 #: rhodecode/templates/changeset/changeset_file_comment.html:102
2616 #: rhodecode/templates/changeset/changeset_file_comment.html:104
2591 msgid "Use @username inside this text to send notification to this RhodeCode user"
2617 msgid "Use @username inside this text to send notification to this RhodeCode user"
2592 msgstr ""
2618 msgstr ""
2593
2619
2594 #: rhodecode/templates/changeset/changeset_file_comment.html:47
2620 #: rhodecode/templates/changeset/changeset_file_comment.html:49
2595 #: rhodecode/templates/changeset/changeset_file_comment.html:107
2621 #: rhodecode/templates/changeset/changeset_file_comment.html:110
2596 #, fuzzy
2622 #, fuzzy
2597 msgid "Comment"
2623 msgid "Comment"
2598 msgstr "遞交"
2624 msgstr "遞交"
2599
2625
2600 #: rhodecode/templates/changeset/changeset_file_comment.html:48
2626 #: rhodecode/templates/changeset/changeset_file_comment.html:50
2601 #: rhodecode/templates/changeset/changeset_file_comment.html:59
2627 #: rhodecode/templates/changeset/changeset_file_comment.html:61
2602 msgid "Hide"
2628 msgid "Hide"
2603 msgstr ""
2629 msgstr ""
2604
2630
2605 #: rhodecode/templates/changeset/changeset_file_comment.html:55
2631 #: rhodecode/templates/changeset/changeset_file_comment.html:57
2606 #, fuzzy
2632 #, fuzzy
2607 msgid "You need to be logged in to comment."
2633 msgid "You need to be logged in to comment."
2608 msgstr "您必須登入後才能瀏覽這個頁面"
2634 msgstr "您必須登入後才能瀏覽這個頁面"
2609
2635
2610 #: rhodecode/templates/changeset/changeset_file_comment.html:55
2636 #: rhodecode/templates/changeset/changeset_file_comment.html:57
2611 msgid "Login now"
2637 msgid "Login now"
2612 msgstr ""
2638 msgstr ""
2613
2639
2614 #: rhodecode/templates/changeset/changeset_file_comment.html:97
2640 #: rhodecode/templates/changeset/changeset_file_comment.html:99
2615 msgid "Leave a comment"
2641 msgid "Leave a comment"
2616 msgstr ""
2642 msgstr ""
2617
2643
@@ -3116,9 +3142,9 b' msgstr "\xe6\xaa\x94\xe6\xa1\x88\xe4\xbf\xae\xe6\x94\xb9"'
3116 msgid "file removed"
3142 msgid "file removed"
3117 msgstr "移除檔案"
3143 msgstr "移除檔案"
3118
3144
3119 #~ msgid ""
3145 #~ msgid "[committed via RhodeCode] into"
3120 #~ "Changeset was to big and was cut"
3121 #~ " off, use diff menu to display "
3122 #~ "this diff"
3123 #~ msgstr ""
3146 #~ msgstr ""
3124
3147
3148 #~ msgid "[pulled from remote] into"
3149 #~ msgstr ""
3150
@@ -30,6 +30,16 b' from rhodecode.model.scm import ScmModel'
30 log = logging.getLogger(__name__)
30 log = logging.getLogger(__name__)
31
31
32
32
33 def _get_ip_addr(environ):
34 proxy_key = 'HTTP_X_REAL_IP'
35 proxy_key2 = 'HTTP_X_FORWARDED_FOR'
36 def_key = 'REMOTE_ADDR'
37
38 return environ.get(proxy_key2,
39 environ.get(proxy_key, environ.get(def_key, '0.0.0.0'))
40 )
41
42
33 class BasicAuth(AuthBasicAuthenticator):
43 class BasicAuth(AuthBasicAuthenticator):
34
44
35 def __init__(self, realm, authfunc, auth_http_code=None):
45 def __init__(self, realm, authfunc, auth_http_code=None):
@@ -117,15 +127,7 b' class BaseVCSController(object):'
117 return True
127 return True
118
128
119 def _get_ip_addr(self, environ):
129 def _get_ip_addr(self, environ):
120 proxy_key = 'HTTP_X_REAL_IP'
130 return _get_ip_addr(environ)
121 proxy_key2 = 'HTTP_X_FORWARDED_FOR'
122 def_key = 'REMOTE_ADDR'
123
124 return environ.get(proxy_key2,
125 environ.get(proxy_key,
126 environ.get(def_key, '0.0.0.0')
127 )
128 )
129
131
130 def __call__(self, environ, start_response):
132 def __call__(self, environ, start_response):
131 start = time.time()
133 start = time.time()
@@ -153,6 +155,7 b' class BaseController(WSGIController):'
153
155
154 self.sa = meta.Session
156 self.sa = meta.Session
155 self.scm_model = ScmModel(self.sa)
157 self.scm_model = ScmModel(self.sa)
158 self.ip_addr = ''
156
159
157 def __call__(self, environ, start_response):
160 def __call__(self, environ, start_response):
158 """Invoke the Controller"""
161 """Invoke the Controller"""
@@ -161,6 +164,7 b' class BaseController(WSGIController):'
161 # available in environ['pylons.routes_dict']
164 # available in environ['pylons.routes_dict']
162 start = time.time()
165 start = time.time()
163 try:
166 try:
167 self.ip_addr = _get_ip_addr(environ)
164 # make sure that we update permissions each time we call controller
168 # make sure that we update permissions each time we call controller
165 api_key = request.GET.get('api_key')
169 api_key = request.GET.get('api_key')
166 cookie_store = CookieStoreWrapper(session.get('rhodecode_user'))
170 cookie_store = CookieStoreWrapper(session.get('rhodecode_user'))
@@ -135,7 +135,7 b' class DiffProcessor(object):'
135 """
135 """
136 _chunk_re = re.compile(r'@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@(.*)')
136 _chunk_re = re.compile(r'@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@(.*)')
137
137
138 def __init__(self, diff, differ='diff', format='udiff'):
138 def __init__(self, diff, differ='diff', format='gitdiff'):
139 """
139 """
140 :param diff: a text in diff format or generator
140 :param diff: a text in diff format or generator
141 :param format: format of diff passed, `udiff` or `gitdiff`
141 :param format: format of diff passed, `udiff` or `gitdiff`
@@ -289,7 +289,7 b' class DiffProcessor(object):'
289 do(line)
289 do(line)
290 do(next_)
290 do(next_)
291
291
292 def _parse_udiff(self):
292 def _parse_udiff(self, inline_diff=True):
293 """
293 """
294 Parse the diff an return data for the template.
294 Parse the diff an return data for the template.
295 """
295 """
@@ -386,9 +386,14 b' class DiffProcessor(object):'
386 })
386 })
387
387
388 line = lineiter.next()
388 line = lineiter.next()
389
389 except StopIteration:
390 except StopIteration:
390 pass
391 pass
391
392
393 sorter = lambda info: {'A': 0, 'M': 1, 'D': 2}.get(info['operation'])
394 if inline_diff is False:
395 return sorted(files, key=sorter)
396
392 # highlight inline changes
397 # highlight inline changes
393 for diff_data in files:
398 for diff_data in files:
394 for chunk in diff_data['chunks']:
399 for chunk in diff_data['chunks']:
@@ -404,14 +409,15 b' class DiffProcessor(object):'
404 self.differ(line, nextline)
409 self.differ(line, nextline)
405 except StopIteration:
410 except StopIteration:
406 pass
411 pass
407 return files
408
412
409 def prepare(self):
413 return sorted(files, key=sorter)
414
415 def prepare(self, inline_diff=True):
410 """
416 """
411 Prepare the passed udiff for HTML rendering. It'l return a list
417 Prepare the passed udiff for HTML rendering. It'l return a list
412 of dicts
418 of dicts
413 """
419 """
414 return self._parse_udiff()
420 return self._parse_udiff(inline_diff=inline_diff)
415
421
416 def _safe_id(self, idstring):
422 def _safe_id(self, idstring):
417 """Make a string safe for including in an id attribute.
423 """Make a string safe for including in an id attribute.
@@ -455,7 +455,7 b' def action_parser(user_log, feed=False):'
455
455
456 if isinstance(rev, BaseChangeset):
456 if isinstance(rev, BaseChangeset):
457 lbl = 'r%s:%s' % (rev.revision, rev.short_id)
457 lbl = 'r%s:%s' % (rev.revision, rev.short_id)
458 _url = url('changeset_home', repo_name=repo_name,
458 _url = url('changeset_home', repo_name=repo_name,
459 revision=rev.raw_id)
459 revision=rev.raw_id)
460 title = tooltip(rev.message)
460 title = tooltip(rev.message)
461 else:
461 else:
@@ -538,22 +538,57 b' def action_parser(user_log, feed=False):'
538 return _('fork name ') + str(link_to(action_params, url('summary_home',
538 return _('fork name ') + str(link_to(action_params, url('summary_home',
539 repo_name=repo_name,)))
539 repo_name=repo_name,)))
540
540
541 action_map = {'user_deleted_repo': (_('[deleted] repository'), None),
541 def get_user_name():
542 'user_created_repo': (_('[created] repository'), None),
542 user_name = action_params
543 'user_created_fork': (_('[created] repository as fork'), None),
543 return user_name
544 'user_forked_repo': (_('[forked] repository'), get_fork_name),
544
545 'user_updated_repo': (_('[updated] repository'), None),
545 def get_users_group():
546 'admin_deleted_repo': (_('[delete] repository'), None),
546 group_name = action_params
547 'admin_created_repo': (_('[created] repository'), None),
547 return group_name
548 'admin_forked_repo': (_('[forked] repository'), None),
548
549 'admin_updated_repo': (_('[updated] repository'), None),
549 # action : translated str, callback(extractor), icon
550 'push': (_('[pushed] into'), get_cs_links),
550 action_map = {
551 'push_local': (_('[committed via RhodeCode] into'), get_cs_links),
551 'user_deleted_repo': (_('[deleted] repository'),
552 'push_remote': (_('[pulled from remote] into'), get_cs_links),
552 None, 'database_delete.png'),
553 'pull': (_('[pulled] from'), None),
553 'user_created_repo': (_('[created] repository'),
554 'started_following_repo': (_('[started following] repository'), None),
554 None, 'database_add.png'),
555 'stopped_following_repo': (_('[stopped following] repository'), None),
555 'user_created_fork': (_('[created] repository as fork'),
556 }
556 None, 'arrow_divide.png'),
557 'user_forked_repo': (_('[forked] repository'),
558 get_fork_name, 'arrow_divide.png'),
559 'user_updated_repo': (_('[updated] repository'),
560 None, 'database_edit.png'),
561 'admin_deleted_repo': (_('[delete] repository'),
562 None, 'database_delete.png'),
563 'admin_created_repo': (_('[created] repository'),
564 None, 'database_add.png'),
565 'admin_forked_repo': (_('[forked] repository'),
566 None, 'arrow_divide.png'),
567 'admin_updated_repo': (_('[updated] repository'),
568 None, 'database_edit.png'),
569 'admin_created_user': (_('[created] user'),
570 get_user_name, 'user_add.png'),
571 'admin_updated_user': (_('[updated] user'),
572 get_user_name, 'user_edit.png'),
573 'admin_created_users_group': (_('[created] users group'),
574 get_users_group, 'group_add.png'),
575 'admin_updated_users_group': (_('[updated] users group'),
576 get_users_group, 'group_edit.png'),
577 'user_commented_revision': (_('[commented] on revision in repository'),
578 get_cs_links, 'comment_add.png'),
579 'push': (_('[pushed] into'),
580 get_cs_links, 'script_add.png'),
581 'push_local': (_('[committed via RhodeCode] into repository'),
582 get_cs_links, 'script_edit.png'),
583 'push_remote': (_('[pulled from remote] into repository'),
584 get_cs_links, 'connect.png'),
585 'pull': (_('[pulled] from'),
586 None, 'down_16.png'),
587 'started_following_repo': (_('[started following] repository'),
588 None, 'heart_add.png'),
589 'stopped_following_repo': (_('[stopped following] repository'),
590 None, 'heart_delete.png'),
591 }
557
592
558 action_str = action_map.get(action, action)
593 action_str = action_map.get(action, action)
559 if feed:
594 if feed:
@@ -568,36 +603,21 b' def action_parser(user_log, feed=False):'
568 if callable(action_str[1]):
603 if callable(action_str[1]):
569 action_params_func = action_str[1]
604 action_params_func = action_str[1]
570
605
571 return [literal(action), action_params_func]
606 def action_parser_icon():
572
607 action = user_log.action
608 action_params = None
609 x = action.split(':')
573
610
574 def action_parser_icon(user_log):
611 if len(x) > 1:
575 action = user_log.action
612 action, action_params = x
576 action_params = None
577 x = action.split(':')
578
579 if len(x) > 1:
580 action, action_params = x
581
613
582 tmpl = """<img src="%s%s" alt="%s"/>"""
614 tmpl = """<img src="%s%s" alt="%s"/>"""
583 map = {'user_deleted_repo':'database_delete.png',
615 ico = action_map.get(action, ['', '', ''])[2]
584 'user_created_repo':'database_add.png',
616 return literal(tmpl % ((url('/images/icons/')), ico, action))
585 'user_created_fork':'arrow_divide.png',
617
586 'user_forked_repo':'arrow_divide.png',
618 # returned callbacks we need to call to get
587 'user_updated_repo':'database_edit.png',
619 return [lambda: literal(action), action_params_func, action_parser_icon]
588 'admin_deleted_repo':'database_delete.png',
620
589 'admin_created_repo':'database_add.png',
590 'admin_forked_repo':'arrow_divide.png',
591 'admin_updated_repo':'database_edit.png',
592 'push':'script_add.png',
593 'push_local':'script_edit.png',
594 'push_remote':'connect.png',
595 'pull':'down_16.png',
596 'started_following_repo':'heart_add.png',
597 'stopped_following_repo':'heart_delete.png',
598 }
599 return literal(tmpl % ((url('/images/icons/')),
600 map.get(action, action), action))
601
621
602
622
603 #==============================================================================
623 #==============================================================================
@@ -40,7 +40,7 b' from whoosh.index import create_in, open'
40 from whoosh.formats import Characters
40 from whoosh.formats import Characters
41 from whoosh.highlight import highlight, HtmlFormatter, ContextFragmenter
41 from whoosh.highlight import highlight, HtmlFormatter, ContextFragmenter
42
42
43 from webhelpers.html.builder import escape
43 from webhelpers.html.builder import escape, literal
44 from sqlalchemy import engine_from_config
44 from sqlalchemy import engine_from_config
45
45
46 from rhodecode.model import init_model
46 from rhodecode.model import init_model
@@ -57,6 +57,7 b' ANALYZER = RegexTokenizer(expression=r"\\'
57
57
58 #INDEX SCHEMA DEFINITION
58 #INDEX SCHEMA DEFINITION
59 SCHEMA = Schema(
59 SCHEMA = Schema(
60 fileid=ID(unique=True),
60 owner=TEXT(),
61 owner=TEXT(),
61 repository=TEXT(stored=True),
62 repository=TEXT(stored=True),
62 path=TEXT(stored=True),
63 path=TEXT(stored=True),
@@ -93,6 +94,8 b' class MakeIndex(BasePasterCommand):'
93 if self.options.repo_location else RepoModel().repos_path
94 if self.options.repo_location else RepoModel().repos_path
94 repo_list = map(strip, self.options.repo_list.split(',')) \
95 repo_list = map(strip, self.options.repo_list.split(',')) \
95 if self.options.repo_list else None
96 if self.options.repo_list else None
97 repo_update_list = map(strip, self.options.repo_update_list.split(',')) \
98 if self.options.repo_update_list else None
96 load_rcextensions(config['here'])
99 load_rcextensions(config['here'])
97 #======================================================================
100 #======================================================================
98 # WHOOSH DAEMON
101 # WHOOSH DAEMON
@@ -103,7 +106,8 b' class MakeIndex(BasePasterCommand):'
103 l = DaemonLock(file_=jn(dn(dn(index_location)), 'make_index.lock'))
106 l = DaemonLock(file_=jn(dn(dn(index_location)), 'make_index.lock'))
104 WhooshIndexingDaemon(index_location=index_location,
107 WhooshIndexingDaemon(index_location=index_location,
105 repo_location=repo_location,
108 repo_location=repo_location,
106 repo_list=repo_list,)\
109 repo_list=repo_list,
110 repo_update_list=repo_update_list)\
107 .run(full_index=self.options.full_index)
111 .run(full_index=self.options.full_index)
108 l.release()
112 l.release()
109 except LockHeld:
113 except LockHeld:
@@ -119,7 +123,14 b' class MakeIndex(BasePasterCommand):'
119 action='store',
123 action='store',
120 dest='repo_list',
124 dest='repo_list',
121 help="Specifies a comma separated list of repositores "
125 help="Specifies a comma separated list of repositores "
122 "to build index on OPTIONAL",
126 "to build index on. If not given all repositories "
127 "are scanned for indexing. OPTIONAL",
128 )
129 self.parser.add_option('--update-only',
130 action='store',
131 dest='repo_update_list',
132 help="Specifies a comma separated list of repositores "
133 "to re-build index on. OPTIONAL",
123 )
134 )
124 self.parser.add_option('-f',
135 self.parser.add_option('-f',
125 action='store_true',
136 action='store_true',
@@ -220,7 +231,7 b' class WhooshResultWrapper(object):'
220 if self.search_type != 'content':
231 if self.search_type != 'content':
221 return ''
232 return ''
222 hl = highlight(
233 hl = highlight(
223 text=escape(content),
234 text=content,
224 terms=self.highlight_items,
235 terms=self.highlight_items,
225 analyzer=ANALYZER,
236 analyzer=ANALYZER,
226 fragmenter=FRAGMENTER,
237 fragmenter=FRAGMENTER,
@@ -53,11 +53,12 b" log = logging.getLogger('whoosh_indexer'"
53
53
54 class WhooshIndexingDaemon(object):
54 class WhooshIndexingDaemon(object):
55 """
55 """
56 Daemon for atomic jobs
56 Daemon for atomic indexing jobs
57 """
57 """
58
58
59 def __init__(self, indexname=IDX_NAME, index_location=None,
59 def __init__(self, indexname=IDX_NAME, index_location=None,
60 repo_location=None, sa=None, repo_list=None):
60 repo_location=None, sa=None, repo_list=None,
61 repo_update_list=None):
61 self.indexname = indexname
62 self.indexname = indexname
62
63
63 self.index_location = index_location
64 self.index_location = index_location
@@ -70,13 +71,23 b' class WhooshIndexingDaemon(object):'
70
71
71 self.repo_paths = ScmModel(sa).repo_scan(self.repo_location)
72 self.repo_paths = ScmModel(sa).repo_scan(self.repo_location)
72
73
74 #filter repo list
73 if repo_list:
75 if repo_list:
74 filtered_repo_paths = {}
76 self.filtered_repo_paths = {}
75 for repo_name, repo in self.repo_paths.items():
77 for repo_name, repo in self.repo_paths.items():
76 if repo_name in repo_list:
78 if repo_name in repo_list:
77 filtered_repo_paths[repo_name] = repo
79 self.filtered_repo_paths[repo_name] = repo
80
81 self.repo_paths = self.filtered_repo_paths
78
82
79 self.repo_paths = filtered_repo_paths
83 #filter update repo list
84 self.filtered_repo_update_paths = {}
85 if repo_update_list:
86 self.filtered_repo_update_paths = {}
87 for repo_name, repo in self.repo_paths.items():
88 if repo_name in repo_update_list:
89 self.filtered_repo_update_paths[repo_name] = repo
90 self.repo_paths = self.filtered_repo_update_paths
80
91
81 self.initial = False
92 self.initial = False
82 if not os.path.isdir(self.index_location):
93 if not os.path.isdir(self.index_location):
@@ -135,10 +146,12 b' class WhooshIndexingDaemon(object):'
135 u_content = u''
146 u_content = u''
136 indexed += 1
147 indexed += 1
137
148
149 p = safe_unicode(path)
138 writer.add_document(
150 writer.add_document(
151 fileid=p,
139 owner=unicode(repo.contact),
152 owner=unicode(repo.contact),
140 repository=safe_unicode(repo_name),
153 repository=safe_unicode(repo_name),
141 path=safe_unicode(path),
154 path=p,
142 content=u_content,
155 content=u_content,
143 modtime=self.get_node_mtime(node),
156 modtime=self.get_node_mtime(node),
144 extension=node.extension
157 extension=node.extension
@@ -172,8 +185,8 b' class WhooshIndexingDaemon(object):'
172 log.debug('>>> FINISHED BUILDING INDEX <<<')
185 log.debug('>>> FINISHED BUILDING INDEX <<<')
173
186
174 def update_index(self):
187 def update_index(self):
175 log.debug('STARTING INCREMENTAL INDEXING UPDATE FOR EXTENSIONS %s' %
188 log.debug((u'STARTING INCREMENTAL INDEXING UPDATE FOR EXTENSIONS %s '
176 INDEX_EXTENSIONS)
189 'AND REPOS %s') % (INDEX_EXTENSIONS, self.repo_paths.keys()))
177
190
178 idx = open_dir(self.index_location, indexname=self.indexname)
191 idx = open_dir(self.index_location, indexname=self.indexname)
179 # The set of all paths in the index
192 # The set of all paths in the index
@@ -187,27 +200,32 b' class WhooshIndexingDaemon(object):'
187 # Loop over the stored fields in the index
200 # Loop over the stored fields in the index
188 for fields in reader.all_stored_fields():
201 for fields in reader.all_stored_fields():
189 indexed_path = fields['path']
202 indexed_path = fields['path']
203 indexed_repo_path = fields['repository']
190 indexed_paths.add(indexed_path)
204 indexed_paths.add(indexed_path)
191
205
192 repo = self.repo_paths[fields['repository']]
206 if not indexed_repo_path in self.filtered_repo_update_paths:
207 continue
208
209 repo = self.repo_paths[indexed_repo_path]
193
210
194 try:
211 try:
195 node = self.get_node(repo, indexed_path)
212 node = self.get_node(repo, indexed_path)
196 except (ChangesetError, NodeDoesNotExistError):
197 # This file was deleted since it was indexed
198 log.debug('removing from index %s' % indexed_path)
199 writer.delete_by_term('path', indexed_path)
200
201 else:
202 # Check if this file was changed since it was indexed
213 # Check if this file was changed since it was indexed
203 indexed_time = fields['modtime']
214 indexed_time = fields['modtime']
204 mtime = self.get_node_mtime(node)
215 mtime = self.get_node_mtime(node)
205 if mtime > indexed_time:
216 if mtime > indexed_time:
206 # The file has changed, delete it and add it to the list of
217 # The file has changed, delete it and add it to the list of
207 # files to reindex
218 # files to reindex
208 log.debug('adding to reindex list %s' % indexed_path)
219 log.debug('adding to reindex list %s mtime: %s vs %s' % (
209 writer.delete_by_term('path', indexed_path)
220 indexed_path, mtime, indexed_time)
221 )
222 writer.delete_by_term('fileid', indexed_path)
223
210 to_index.add(indexed_path)
224 to_index.add(indexed_path)
225 except (ChangesetError, NodeDoesNotExistError):
226 # This file was deleted since it was indexed
227 log.debug('removing from index %s' % indexed_path)
228 writer.delete_by_term('path', indexed_path)
211
229
212 # Loop over the files in the filesystem
230 # Loop over the files in the filesystem
213 # Assume we have a function that gathers the filenames of the
231 # Assume we have a function that gathers the filenames of the
@@ -215,7 +233,9 b' class WhooshIndexingDaemon(object):'
215 ri_cnt = riwc_cnt = 0
233 ri_cnt = riwc_cnt = 0
216 for repo_name, repo in self.repo_paths.items():
234 for repo_name, repo in self.repo_paths.items():
217 for path in self.get_paths(repo):
235 for path in self.get_paths(repo):
236 path = safe_unicode(path)
218 if path in to_index or path not in indexed_paths:
237 if path in to_index or path not in indexed_paths:
238
219 # This is either a file that's changed, or a new file
239 # This is either a file that's changed, or a new file
220 # that wasn't indexed before. So index it!
240 # that wasn't indexed before. So index it!
221 i, iwc = self.add_doc(writer, path, repo, repo_name)
241 i, iwc = self.add_doc(writer, path, repo, repo_name)
@@ -218,11 +218,13 b' class SimpleGit(BaseVCSController):'
218 :param repo_name: name of the repository
218 :param repo_name: name of the repository
219 :param repo_path: full path to the repository
219 :param repo_path: full path to the repository
220 """
220 """
221 _d = {'/' + repo_name: Repo(repo_path)}
222 backend = dulserver.DictBackend(_d)
223 gitserve = make_wsgi_chain(backend)
224
221
225 return gitserve
222 from rhodecode.lib.middleware.pygrack import make_wsgi_app
223 app = make_wsgi_app(
224 repo_root=os.path.dirname(repo_path),
225 repo_name=repo_name,
226 )
227 return app
226
228
227 def __get_repository(self, environ):
229 def __get_repository(self, environ):
228 """
230 """
@@ -146,13 +146,14 b' def action_logger(user, action, repo, ip'
146 repo_name = repo.lstrip('/')
146 repo_name = repo.lstrip('/')
147 repo_obj = Repository.get_by_repo_name(repo_name)
147 repo_obj = Repository.get_by_repo_name(repo_name)
148 else:
148 else:
149 raise Exception('You have to provide repository to action logger')
149 repo_obj = None
150 repo_name = ''
150
151
151 user_log = UserLog()
152 user_log = UserLog()
152 user_log.user_id = user_obj.user_id
153 user_log.user_id = user_obj.user_id
153 user_log.action = safe_unicode(action)
154 user_log.action = safe_unicode(action)
154
155
155 user_log.repository_id = repo_obj.repo_id
156 user_log.repository = repo_obj
156 user_log.repository_name = repo_name
157 user_log.repository_name = repo_name
157
158
158 user_log.action_date = datetime.datetime.now()
159 user_log.action_date = datetime.datetime.now()
@@ -309,7 +309,7 b' def age(prevdate):'
309 for num, length in [(5, 60), (4, 60), (3, 24)]: # seconds, minutes, hours
309 for num, length in [(5, 60), (4, 60), (3, 24)]: # seconds, minutes, hours
310 part = order[num]
310 part = order[num]
311 carry_part = order[num - 1]
311 carry_part = order[num - 1]
312
312
313 if deltas[part] < 0:
313 if deltas[part] < 0:
314 deltas[part] += length
314 deltas[part] += length
315 deltas[carry_part] -= 1
315 deltas[carry_part] -= 1
@@ -323,13 +323,13 b' def age(prevdate):'
323 deltas['day'] += 29
323 deltas['day'] += 29
324 else:
324 else:
325 deltas['day'] += month_lengths[prevdate.month - 1]
325 deltas['day'] += month_lengths[prevdate.month - 1]
326
326
327 deltas['month'] -= 1
327 deltas['month'] -= 1
328
328
329 if deltas['month'] < 0:
329 if deltas['month'] < 0:
330 deltas['month'] += 12
330 deltas['month'] += 12
331 deltas['year'] -= 1
331 deltas['year'] -= 1
332
332
333 # Format the result
333 # Format the result
334 fmt_funcs = {
334 fmt_funcs = {
335 'year': lambda d: ungettext(u'%d year', '%d years', d) % d,
335 'year': lambda d: ungettext(u'%d year', '%d years', d) % d,
@@ -339,21 +339,21 b' def age(prevdate):'
339 'minute': lambda d: ungettext(u'%d minute', '%d minutes', d) % d,
339 'minute': lambda d: ungettext(u'%d minute', '%d minutes', d) % d,
340 'second': lambda d: ungettext(u'%d second', '%d seconds', d) % d,
340 'second': lambda d: ungettext(u'%d second', '%d seconds', d) % d,
341 }
341 }
342
342
343 for i, part in enumerate(order):
343 for i, part in enumerate(order):
344 value = deltas[part]
344 value = deltas[part]
345 if value == 0:
345 if value == 0:
346 continue
346 continue
347
347
348 if i < 5:
348 if i < 5:
349 sub_part = order[i + 1]
349 sub_part = order[i + 1]
350 sub_value = deltas[sub_part]
350 sub_value = deltas[sub_part]
351 else:
351 else:
352 sub_value = 0
352 sub_value = 0
353
353
354 if sub_value == 0:
354 if sub_value == 0:
355 return _(u'%s ago') % fmt_funcs[part](value)
355 return _(u'%s ago') % fmt_funcs[part](value)
356
356
357 return _(u'%s and %s ago') % (fmt_funcs[part](value),
357 return _(u'%s and %s ago') % (fmt_funcs[part](value),
358 fmt_funcs[sub_part](sub_value))
358 fmt_funcs[sub_part](sub_value))
359
359
@@ -194,6 +194,11 b' class GitChangeset(BaseChangeset):'
194
194
195 return _prev(self, branch)
195 return _prev(self, branch)
196
196
197 def diff(self, ignore_whitespace=True, context=3):
198 return ''.join(self.repository.get_diff(self, self.parents[0],
199 ignore_whitespace=ignore_whitespace,
200 context=context))
201
197 def get_file_mode(self, path):
202 def get_file_mode(self, path):
198 """
203 """
199 Returns stat mode of the file at the given ``path``.
204 Returns stat mode of the file at the given ``path``.
@@ -94,7 +94,7 b' class GitRepository(BaseRepository):'
94 if isinstance(cmd, basestring):
94 if isinstance(cmd, basestring):
95 cmd = [cmd]
95 cmd = [cmd]
96 _str_cmd = True
96 _str_cmd = True
97
97
98 gitenv = os.environ
98 gitenv = os.environ
99 gitenv['GIT_CONFIG_NOGLOBAL'] = '1'
99 gitenv['GIT_CONFIG_NOGLOBAL'] = '1'
100
100
@@ -437,6 +437,12 b' class GitRepository(BaseRepository):'
437 if ignore_whitespace:
437 if ignore_whitespace:
438 flags.append('-w')
438 flags.append('-w')
439
439
440 if hasattr(rev1, 'raw_id'):
441 rev1 = getattr(rev1, 'raw_id')
442
443 if hasattr(rev2, 'raw_id'):
444 rev2 = getattr(rev2, 'raw_id')
445
440 if rev1 == self.EMPTY_CHANGESET:
446 if rev1 == self.EMPTY_CHANGESET:
441 rev2 = self.get_changeset(rev2).raw_id
447 rev2 = self.get_changeset(rev2).raw_id
442 cmd = ' '.join(['show'] + flags + [rev2])
448 cmd = ' '.join(['show'] + flags + [rev2])
@@ -500,6 +506,17 b' class GitRepository(BaseRepository):'
500 # If error occurs run_git_command raises RepositoryError already
506 # If error occurs run_git_command raises RepositoryError already
501 self.run_git_command(cmd)
507 self.run_git_command(cmd)
502
508
509 def fetch(self, url):
510 """
511 Tries to pull changes from external location.
512 """
513 url = self._get_url(url)
514 cmd = ['fetch']
515 cmd.append(url)
516 cmd = ' '.join(cmd)
517 # If error occurs run_git_command raises RepositoryError already
518 self.run_git_command(cmd)
519
503 @LazyProperty
520 @LazyProperty
504 def workdir(self):
521 def workdir(self):
505 """
522 """
@@ -136,6 +136,11 b' class MercurialChangeset(BaseChangeset):'
136
136
137 return _prev(self, branch)
137 return _prev(self, branch)
138
138
139 def diff(self, ignore_whitespace=True, context=3):
140 return ''.join(self._ctx.diff(git=True,
141 ignore_whitespace=ignore_whitespace,
142 context=context))
143
139 def _fix_path(self, path):
144 def _fix_path(self, path):
140 """
145 """
141 Paths are stored without trailing slash so we need to get rid off it if
146 Paths are stored without trailing slash so we need to get rid off it if
@@ -231,6 +231,12 b' class MercurialRepository(BaseRepository'
231 :param context: How many lines before/after changed lines should be
231 :param context: How many lines before/after changed lines should be
232 shown. Defaults to ``3``.
232 shown. Defaults to ``3``.
233 """
233 """
234 if hasattr(rev1, 'raw_id'):
235 rev1 = getattr(rev1, 'raw_id')
236
237 if hasattr(rev2, 'raw_id'):
238 rev2 = getattr(rev2, 'raw_id')
239
234 # Check if given revisions are present at repository (may raise
240 # Check if given revisions are present at repository (may raise
235 # ChangesetDoesNotExistError)
241 # ChangesetDoesNotExistError)
236 if rev1 != self.EMPTY_CHANGESET:
242 if rev1 != self.EMPTY_CHANGESET:
@@ -104,6 +104,7 b' class ChangesetCommentsModel(BaseModel):'
104 # add changeset author if it's in rhodecode system
104 # add changeset author if it's in rhodecode system
105 recipients += [User.get_by_email(author_email)]
105 recipients += [User.get_by_email(author_email)]
106
106
107 # create notification objects, and emails
107 NotificationModel().create(
108 NotificationModel().create(
108 created_by=user_id, subject=subj, body=body,
109 created_by=user_id, subject=subj, body=body,
109 recipients=recipients, type_=Notification.TYPE_CHANGESET_COMMENT,
110 recipients=recipients, type_=Notification.TYPE_CHANGESET_COMMENT,
@@ -103,8 +103,11 b' class NotificationModel(BaseModel):'
103 if with_email is False:
103 if with_email is False:
104 return notif
104 return notif
105
105
106 # send email with notification
106 #don't send email to person who created this comment
107 for rec in recipients_objs:
107 rec_objs = set(recipients_objs).difference(set([created_by_obj]))
108
109 # send email with notification to all other participants
110 for rec in rec_objs:
108 email_subject = NotificationModel().make_description(notif, False)
111 email_subject = NotificationModel().make_description(notif, False)
109 type_ = type_
112 type_ = type_
110 email_body = body
113 email_body = body
@@ -360,8 +360,10 b' class ScmModel(BaseModel):'
360 # inject ui extra param to log this action via push logger
360 # inject ui extra param to log this action via push logger
361 for k, v in extras.items():
361 for k, v in extras.items():
362 repo._repo.ui.setconfig('rhodecode_extras', k, v)
362 repo._repo.ui.setconfig('rhodecode_extras', k, v)
363
363 if repo.alias == 'git':
364 repo.pull(clone_uri)
364 repo.fetch(clone_uri)
365 else:
366 repo.pull(clone_uri)
365 self.mark_for_invalidation(repo_name)
367 self.mark_for_invalidation(repo_name)
366 except:
368 except:
367 log.error(traceback.format_exc())
369 log.error(traceback.format_exc())
@@ -330,6 +330,11 b' div.options a {'
330 z-index: auto !important;
330 z-index: auto !important;
331 }
331 }
332
332
333 .header-pos-fix{
334 margin-top: -44px;
335 padding-top: 44px;
336 }
337
333 #header #header-inner #home a {
338 #header #header-inner #home a {
334 height: 40px;
339 height: 40px;
335 width: 46px;
340 width: 46px;
@@ -2840,6 +2845,13 b' table.code-browser .submodule-dir {'
2840 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
2845 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
2841 }
2846 }
2842
2847
2848 .mentions-container{
2849 width: 90% !important;
2850 }
2851 .mentions-container .yui-ac-content{
2852 width: 100% !important;
2853 }
2854
2843 .ac {
2855 .ac {
2844 vertical-align: top;
2856 vertical-align: top;
2845 }
2857 }
@@ -44,6 +44,24 b' String.prototype.format = function() {'
44
44
45 }();
45 }();
46
46
47 String.prototype.strip = function(char) {
48 if(char === undefined){
49 char = '\\s';
50 }
51 return this.replace(new RegExp('^'+char+'+|'+char+'+$','g'), '');
52 }
53 String.prototype.lstrip = function(char) {
54 if(char === undefined){
55 char = '\\s';
56 }
57 return this.replace(new RegExp('^'+char+'+'),'');
58 }
59 String.prototype.rstrip = function(char) {
60 if(char === undefined){
61 char = '\\s';
62 }
63 return this.replace(new RegExp(''+char+'+$'),'');
64 }
47
65
48 /**
66 /**
49 * SmartColorGenerator
67 * SmartColorGenerator
@@ -447,7 +465,7 b' var injectInlineForm = function(tr){'
447
465
448 ajaxPOST(submit_url, postData, success);
466 ajaxPOST(submit_url, postData, success);
449 });
467 });
450
468 // callbacks
451 tooltip_activate();
469 tooltip_activate();
452 };
470 };
453
471
@@ -819,7 +837,7 b' var deleteNotification = function(url, n'
819
837
820 /** MEMBERS AUTOCOMPLETE WIDGET **/
838 /** MEMBERS AUTOCOMPLETE WIDGET **/
821
839
822 var MembersAutoComplete = function (users_list, groups_list, group_lbl, members_lbl) {
840 var MembersAutoComplete = function (users_list, groups_list) {
823 var myUsers = users_list;
841 var myUsers = users_list;
824 var myGroups = groups_list;
842 var myGroups = groups_list;
825
843
@@ -834,9 +852,11 b' var MembersAutoComplete = function (user'
834 // Match against each name of each contact
852 // Match against each name of each contact
835 for (; i < l; i++) {
853 for (; i < l; i++) {
836 contact = myUsers[i];
854 contact = myUsers[i];
837 if ((contact.fname.toLowerCase().indexOf(query) > -1) || (contact.lname.toLowerCase().indexOf(query) > -1) || (contact.nname && (contact.nname.toLowerCase().indexOf(query) > -1))) {
855 if (((contact.fname+"").toLowerCase().indexOf(query) > -1) ||
838 matches[matches.length] = contact;
856 ((contact.lname+"").toLowerCase().indexOf(query) > -1) ||
839 }
857 ((contact.nname) && ((contact.nname).toLowerCase().indexOf(query) > -1))) {
858 matches[matches.length] = contact;
859 }
840 }
860 }
841 return matches;
861 return matches;
842 };
862 };
@@ -912,21 +932,22 b' var MembersAutoComplete = function (user'
912 var grname = oResultData.grname;
932 var grname = oResultData.grname;
913 var grmembers = oResultData.grmembers;
933 var grmembers = oResultData.grmembers;
914 var grnameMatchIndex = grname.toLowerCase().indexOf(query);
934 var grnameMatchIndex = grname.toLowerCase().indexOf(query);
915 var grprefix = "{0}: ".format(group_lbl);
935 var grprefix = "{0}: ".format(_TM['Group']);
916 var grsuffix = " (" + grmembers + " )";
936 var grsuffix = " (" + grmembers + " )";
917 var grsuffix = " ({0} {1})".format(grmembers, members_lbl);
937 var grsuffix = " ({0} {1})".format(grmembers, _TM['members']);
918
938
919 if (grnameMatchIndex > -1) {
939 if (grnameMatchIndex > -1) {
920 return _gravatar(grprefix + highlightMatch(grname, query, grnameMatchIndex) + grsuffix,null,true);
940 return _gravatar(grprefix + highlightMatch(grname, query, grnameMatchIndex) + grsuffix,null,true);
921 }
941 }
922 return _gravatar(grprefix + oResultData.grname + grsuffix, null,true);
942 return _gravatar(grprefix + oResultData.grname + grsuffix, null,true);
923 // Users
943 // Users
924 } else if (oResultData.fname != undefined) {
944 } else if (oResultData.nname != undefined) {
925 var fname = oResultData.fname,
945 var fname = oResultData.fname || "";
926 lname = oResultData.lname,
946 var lname = oResultData.lname || "";
927 nname = oResultData.nname || "",
947 var nname = oResultData.nname;
928 // Guard against null value
948
929 fnameMatchIndex = fname.toLowerCase().indexOf(query),
949 // Guard against null value
950 var fnameMatchIndex = fname.toLowerCase().indexOf(query),
930 lnameMatchIndex = lname.toLowerCase().indexOf(query),
951 lnameMatchIndex = lname.toLowerCase().indexOf(query),
931 nnameMatchIndex = nname.toLowerCase().indexOf(query),
952 nnameMatchIndex = nname.toLowerCase().indexOf(query),
932 displayfname, displaylname, displaynname;
953 displayfname, displaylname, displaynname;
@@ -988,6 +1009,191 b' var MembersAutoComplete = function (user'
988 }
1009 }
989
1010
990
1011
1012 var MentionsAutoComplete = function (divid, cont, users_list, groups_list) {
1013 var myUsers = users_list;
1014 var myGroups = groups_list;
1015
1016 // Define a custom search function for the DataSource of users
1017 var matchUsers = function (sQuery) {
1018 var org_sQuery = sQuery;
1019 if(this.mentionQuery == null){
1020 return []
1021 }
1022 sQuery = this.mentionQuery;
1023 // Case insensitive matching
1024 var query = sQuery.toLowerCase();
1025 var i = 0;
1026 var l = myUsers.length;
1027 var matches = [];
1028
1029 // Match against each name of each contact
1030 for (; i < l; i++) {
1031 contact = myUsers[i];
1032 if (((contact.fname+"").toLowerCase().indexOf(query) > -1) ||
1033 ((contact.lname+"").toLowerCase().indexOf(query) > -1) ||
1034 ((contact.nname) && ((contact.nname).toLowerCase().indexOf(query) > -1))) {
1035 matches[matches.length] = contact;
1036 }
1037 }
1038 return matches
1039 };
1040
1041 //match all
1042 var matchAll = function (sQuery) {
1043 u = matchUsers(sQuery);
1044 return u
1045 };
1046
1047 // DataScheme for owner
1048 var ownerDS = new YAHOO.util.FunctionDataSource(matchUsers);
1049
1050 ownerDS.responseSchema = {
1051 fields: ["id", "fname", "lname", "nname", "gravatar_lnk"]
1052 };
1053
1054 // Instantiate AutoComplete for mentions
1055 var ownerAC = new YAHOO.widget.AutoComplete(divid, cont, ownerDS);
1056 ownerAC.useShadow = false;
1057 ownerAC.resultTypeList = false;
1058 ownerAC.suppressInputUpdate = true;
1059
1060 // Helper highlight function for the formatter
1061 var highlightMatch = function (full, snippet, matchindex) {
1062 return full.substring(0, matchindex)
1063 + "<span class='match'>"
1064 + full.substr(matchindex, snippet.length)
1065 + "</span>" + full.substring(matchindex + snippet.length);
1066 };
1067
1068 // Custom formatter to highlight the matching letters
1069 ownerAC.formatResult = function (oResultData, sQuery, sResultMatch) {
1070 var org_sQuery = sQuery;
1071 if(this.dataSource.mentionQuery != null){
1072 sQuery = this.dataSource.mentionQuery;
1073 }
1074
1075 var query = sQuery.toLowerCase();
1076 var _gravatar = function(res, em, group){
1077 if (group !== undefined){
1078 em = '/images/icons/group.png'
1079 }
1080 tmpl = '<div class="ac-container-wrap"><img class="perm-gravatar-ac" src="{0}"/>{1}</div>'
1081 return tmpl.format(em,res)
1082 }
1083 if (oResultData.nname != undefined) {
1084 var fname = oResultData.fname || "";
1085 var lname = oResultData.lname || "";
1086 var nname = oResultData.nname;
1087
1088 // Guard against null value
1089 var fnameMatchIndex = fname.toLowerCase().indexOf(query),
1090 lnameMatchIndex = lname.toLowerCase().indexOf(query),
1091 nnameMatchIndex = nname.toLowerCase().indexOf(query),
1092 displayfname, displaylname, displaynname;
1093
1094 if (fnameMatchIndex > -1) {
1095 displayfname = highlightMatch(fname, query, fnameMatchIndex);
1096 } else {
1097 displayfname = fname;
1098 }
1099
1100 if (lnameMatchIndex > -1) {
1101 displaylname = highlightMatch(lname, query, lnameMatchIndex);
1102 } else {
1103 displaylname = lname;
1104 }
1105
1106 if (nnameMatchIndex > -1) {
1107 displaynname = "(" + highlightMatch(nname, query, nnameMatchIndex) + ")";
1108 } else {
1109 displaynname = nname ? "(" + nname + ")" : "";
1110 }
1111
1112 return _gravatar(displayfname + " " + displaylname + " " + displaynname, oResultData.gravatar_lnk);
1113 } else {
1114 return '';
1115 }
1116 };
1117
1118 if(ownerAC.itemSelectEvent){
1119 ownerAC.itemSelectEvent.subscribe(function (sType, aArgs) {
1120
1121 var myAC = aArgs[0]; // reference back to the AC instance
1122 var elLI = aArgs[1]; // reference to the selected LI element
1123 var oData = aArgs[2]; // object literal of selected item's result data
1124 //fill the autocomplete with value
1125 if (oData.nname != undefined) {
1126 //users
1127 //Replace the mention name with replaced
1128 var re = new RegExp();
1129 var org = myAC.getInputEl().value;
1130 var chunks = myAC.dataSource.chunks
1131 // replace middle chunk(the search term) with actuall match
1132 chunks[1] = chunks[1].replace('@'+myAC.dataSource.mentionQuery,
1133 '@'+oData.nname+' ');
1134 myAC.getInputEl().value = chunks.join('')
1135 YUD.get(myAC.getInputEl()).focus(); // Y U NO WORK !?
1136 } else {
1137 //groups
1138 myAC.getInputEl().value = oData.grname;
1139 YUD.get('perm_new_member_type').value = 'users_group';
1140 }
1141 });
1142 }
1143
1144 // in this keybuffer we will gather current value of search !
1145 // since we need to get this just when someone does `@` then we do the
1146 // search
1147 ownerAC.dataSource.chunks = [];
1148 ownerAC.dataSource.mentionQuery = null;
1149
1150 ownerAC.get_mention = function(msg, max_pos) {
1151 var org = msg;
1152 var re = new RegExp('(?:^@|\s@)([a-zA-Z0-9]{1}[a-zA-Z0-9\-\_\.]+)$')
1153 var chunks = [];
1154
1155
1156 // cut first chunk until curret pos
1157 var to_max = msg.substr(0, max_pos);
1158 var at_pos = Math.max(0,to_max.lastIndexOf('@')-1);
1159 var msg2 = to_max.substr(at_pos);
1160
1161 chunks.push(org.substr(0,at_pos))// prefix chunk
1162 chunks.push(msg2) // search chunk
1163 chunks.push(org.substr(max_pos)) // postfix chunk
1164
1165 // clean up msg2 for filtering and regex match
1166 var msg2 = msg2.lstrip(' ').lstrip('\n');
1167
1168 if(re.test(msg2)){
1169 var unam = re.exec(msg2)[1];
1170 return [unam, chunks];
1171 }
1172 return [null, null];
1173 };
1174 ownerAC.textboxKeyUpEvent.subscribe(function(type, args){
1175
1176 var ac_obj = args[0];
1177 var currentMessage = args[1];
1178 var currentCaretPosition = args[0]._elTextbox.selectionStart;
1179
1180 var unam = ownerAC.get_mention(currentMessage, currentCaretPosition);
1181 var curr_search = null;
1182 if(unam[0]){
1183 curr_search = unam[0];
1184 }
1185
1186 ownerAC.dataSource.chunks = unam[1];
1187 ownerAC.dataSource.mentionQuery = curr_search;
1188
1189 })
1190
1191 return {
1192 ownerDS: ownerDS,
1193 ownerAC: ownerAC,
1194 };
1195 }
1196
991
1197
992 /**
1198 /**
993 * QUICK REPO MENU
1199 * QUICK REPO MENU
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
General Comments 0
You need to be logged in to leave comments. Login now