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 |
|
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. |
|
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. |
|
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. |
|
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. |
|
3 | rhodecode.bin.backup_manager | |
4 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
4 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
5 |
|
5 | |||
6 |
|
|
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 = " |
|
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 |
|
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'], |
|
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'], |
|
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, |
|
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, |
|
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 |
|
|
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( |
|
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( |
|
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( |
|
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( |
|
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( |
|
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( |
|
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 |
|
|
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' % user |
|
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 = |
|
53 | self.feed_nr = 20 | |
53 |
|
54 | |||
54 | def _get_title(self, cs): |
|
55 | def _get_title(self, cs): | |
55 |
return " |
|
56 | return "%s" % ( | |
56 |
|
|
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 |
|
|
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( |
|
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( |
|
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 |
|
|
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 |
|
|
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, |
|
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, |
|
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-0 |
|
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:9 |
|
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: |
|
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:8 |
|
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:15 |
|
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:32 |
|
37 | #: rhodecode/controllers/changeset.py:324 | |
38 |
#: rhodecode/controllers/changeset.py:33 |
|
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:22 |
|
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:21 |
|
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:2 |
|
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:24 |
|
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:2 |
|
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:2 |
|
246 | #: rhodecode/controllers/admin/repos.py:271 | |
247 |
#: rhodecode/controllers/admin/repos.py:27 |
|
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:17 |
|
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:26 |
|
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:29 |
|
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:31 |
|
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:3 |
|
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:34 |
|
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:36 |
|
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:3 |
|
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:37 |
|
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:41 |
|
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:36 |
|
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:38 |
|
549 | #: rhodecode/controllers/admin/settings.py:387 | |
550 |
#: rhodecode/controllers/admin/users.py:13 |
|
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: |
|
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:9 |
|
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:1 |
|
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:1 |
|
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:1 |
|
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:1 |
|
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: |
|
581 | #: rhodecode/controllers/admin/users.py:205 | |
582 |
#: rhodecode/controllers/admin/users_groups.py:21 |
|
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:2 |
|
586 | #: rhodecode/controllers/admin/users.py:214 | |
587 |
#: rhodecode/controllers/admin/users_groups.py:22 |
|
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: |
|
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:9 |
|
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:1 |
|
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:1 |
|
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:16 |
|
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:17 |
|
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:5 |
|
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:5 |
|
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:7 |
|
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:7 |
|
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: |
|
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: |
|
1049 | #: rhodecode/templates/admin/users/user_edit_my_account.html:49 | |
1030 |
#: rhodecode/templates/admin/users/user_edit_my_account.html: |
|
1050 | #: rhodecode/templates/admin/users/user_edit_my_account.html:99 | |
1031 |
#: rhodecode/templates/admin/users/user_edit_my_account.html: |
|
1051 | #: rhodecode/templates/admin/users/user_edit_my_account.html:165 | |
1032 |
#: rhodecode/templates/admin/users/user_edit_my_account.html:2 |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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:1 |
|
1323 | #: rhodecode/templates/admin/users/user_edit_my_account.html:51 | |
1304 |
#: rhodecode/templates/admin/users/user_edit_my_account.html: |
|
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:5 |
|
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: |
|
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:1 |
|
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:5 |
|
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: |
|
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: |
|
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:10 |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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:5 |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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:1 |
|
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:1 |
|
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: |
|
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:1 |
|
2132 | #: rhodecode/templates/admin/users/user_edit_my_account.html:100 | |
2124 |
#: rhodecode/templates/admin/users/user_edit_my_account.html:2 |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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:10 |
|
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:10 |
|
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:4 |
|
2588 | #: rhodecode/templates/changeset/changeset_file_comment.html:49 | |
2571 |
#: rhodecode/templates/changeset/changeset_file_comment.html:10 |
|
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: |
|
2593 | #: rhodecode/templates/changeset/changeset_file_comment.html:50 | |
2576 |
#: rhodecode/templates/changeset/changeset_file_comment.html: |
|
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:5 |
|
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:5 |
|
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:9 |
|
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-0 |
|
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:9 |
|
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: |
|
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:8 |
|
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:15 |
|
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:32 |
|
37 | #: rhodecode/controllers/changeset.py:324 | |
38 |
#: rhodecode/controllers/changeset.py:33 |
|
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:22 |
|
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:21 |
|
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:2 |
|
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:24 |
|
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:2 |
|
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:2 |
|
263 | #: rhodecode/controllers/admin/repos.py:271 | |
264 |
#: rhodecode/controllers/admin/repos.py:27 |
|
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:17 |
|
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:26 |
|
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:29 |
|
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:31 |
|
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:3 |
|
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:34 |
|
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:36 |
|
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:3 |
|
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:37 |
|
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:40 |
|
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:40 |
|
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:41 |
|
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:36 |
|
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:38 |
|
576 | #: rhodecode/controllers/admin/settings.py:387 | |
577 |
#: rhodecode/controllers/admin/users.py:13 |
|
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: |
|
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:9 |
|
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:1 |
|
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:1 |
|
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:1 |
|
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:1 |
|
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: |
|
608 | #: rhodecode/controllers/admin/users.py:205 | |
609 |
#: rhodecode/controllers/admin/users_groups.py:21 |
|
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:2 |
|
613 | #: rhodecode/controllers/admin/users.py:214 | |
614 |
#: rhodecode/controllers/admin/users_groups.py:22 |
|
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: |
|
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:9 |
|
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:1 |
|
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:1 |
|
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:16 |
|
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:17 |
|
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:5 |
|
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:5 |
|
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:54 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:7 |
|
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:7 |
|
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: |
|
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: |
|
1109 | #: rhodecode/templates/admin/users/user_edit_my_account.html:49 | |
1076 |
#: rhodecode/templates/admin/users/user_edit_my_account.html: |
|
1110 | #: rhodecode/templates/admin/users/user_edit_my_account.html:99 | |
1077 |
#: rhodecode/templates/admin/users/user_edit_my_account.html: |
|
1111 | #: rhodecode/templates/admin/users/user_edit_my_account.html:165 | |
1078 |
#: rhodecode/templates/admin/users/user_edit_my_account.html:2 |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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:1 |
|
1383 | #: rhodecode/templates/admin/users/user_edit_my_account.html:51 | |
1350 |
#: rhodecode/templates/admin/users/user_edit_my_account.html: |
|
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:5 |
|
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: |
|
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:1 |
|
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:5 |
|
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: |
|
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: |
|
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:10 |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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:5 |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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:1 |
|
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:1 |
|
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: |
|
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:1 |
|
2210 | #: rhodecode/templates/admin/users/user_edit_my_account.html:100 | |
2188 |
#: rhodecode/templates/admin/users/user_edit_my_account.html:2 |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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:10 |
|
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:10 |
|
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:4 |
|
2670 | #: rhodecode/templates/changeset/changeset_file_comment.html:49 | |
2639 |
#: rhodecode/templates/changeset/changeset_file_comment.html:10 |
|
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: |
|
2675 | #: rhodecode/templates/changeset/changeset_file_comment.html:50 | |
2644 |
#: rhodecode/templates/changeset/changeset_file_comment.html: |
|
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:5 |
|
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:5 |
|
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:9 |
|
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-0 |
|
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:9 |
|
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: |
|
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:8 |
|
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:15 |
|
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:32 |
|
37 | #: rhodecode/controllers/changeset.py:324 | |
38 |
#: rhodecode/controllers/changeset.py:33 |
|
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:22 |
|
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:21 |
|
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:2 |
|
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:24 |
|
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:2 |
|
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:2 |
|
261 | #: rhodecode/controllers/admin/repos.py:271 | |
262 |
#: rhodecode/controllers/admin/repos.py:27 |
|
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:17 |
|
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:26 |
|
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:29 |
|
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:31 |
|
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:3 |
|
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:34 |
|
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:36 |
|
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:3 |
|
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:37 |
|
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:38 |
|
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:3 |
|
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:40 |
|
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:40 |
|
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:41 |
|
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:36 |
|
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:38 |
|
564 | #: rhodecode/controllers/admin/settings.py:387 | |
565 |
#: rhodecode/controllers/admin/users.py:13 |
|
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: |
|
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:9 |
|
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:1 |
|
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:1 |
|
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:1 |
|
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:1 |
|
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: |
|
596 | #: rhodecode/controllers/admin/users.py:205 | |
597 |
#: rhodecode/controllers/admin/users_groups.py:21 |
|
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:2 |
|
601 | #: rhodecode/controllers/admin/users.py:214 | |
602 |
#: rhodecode/controllers/admin/users_groups.py:22 |
|
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: |
|
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:9 |
|
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:1 |
|
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:1 |
|
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:16 |
|
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:17 |
|
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:5 |
|
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:5 |
|
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:54 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:7 |
|
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:7 |
|
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: |
|
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: |
|
1093 | #: rhodecode/templates/admin/users/user_edit_my_account.html:49 | |
1060 |
#: rhodecode/templates/admin/users/user_edit_my_account.html: |
|
1094 | #: rhodecode/templates/admin/users/user_edit_my_account.html:99 | |
1061 |
#: rhodecode/templates/admin/users/user_edit_my_account.html: |
|
1095 | #: rhodecode/templates/admin/users/user_edit_my_account.html:165 | |
1062 |
#: rhodecode/templates/admin/users/user_edit_my_account.html:2 |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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:1 |
|
1369 | #: rhodecode/templates/admin/users/user_edit_my_account.html:51 | |
1336 |
#: rhodecode/templates/admin/users/user_edit_my_account.html: |
|
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:5 |
|
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: |
|
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:1 |
|
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:5 |
|
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: |
|
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: |
|
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:10 |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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:5 |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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:1 |
|
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:1 |
|
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: |
|
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:1 |
|
2197 | #: rhodecode/templates/admin/users/user_edit_my_account.html:100 | |
2175 |
#: rhodecode/templates/admin/users/user_edit_my_account.html:2 |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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:10 |
|
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:10 |
|
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:4 |
|
2655 | #: rhodecode/templates/changeset/changeset_file_comment.html:49 | |
2624 |
#: rhodecode/templates/changeset/changeset_file_comment.html:10 |
|
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: |
|
2660 | #: rhodecode/templates/changeset/changeset_file_comment.html:50 | |
2629 |
#: rhodecode/templates/changeset/changeset_file_comment.html: |
|
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:5 |
|
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:5 |
|
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:9 |
|
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-0 |
|
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:9 |
|
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: |
|
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:8 |
|
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:15 |
|
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:32 |
|
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:22 |
|
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:21 |
|
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:2 |
|
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:24 |
|
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:2 |
|
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:2 |
|
235 | #: rhodecode/controllers/settings.py:155 rhodecode/controllers/admin/repos.py:271 | |
236 |
#: rhodecode/controllers/admin/repos.py:27 |
|
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:17 |
|
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:26 |
|
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:29 |
|
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:31 |
|
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:3 |
|
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:34 |
|
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:36 |
|
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:3 |
|
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:37 |
|
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:41 |
|
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:36 |
|
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:38 |
|
536 | #: rhodecode/controllers/admin/settings.py:387 | |
537 |
#: rhodecode/controllers/admin/users.py:13 |
|
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: |
|
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:9 |
|
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:1 |
|
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:1 |
|
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:1 |
|
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:1 |
|
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: |
|
568 | #: rhodecode/controllers/admin/users.py:205 | |
569 |
#: rhodecode/controllers/admin/users_groups.py:21 |
|
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:2 |
|
573 | #: rhodecode/controllers/admin/users.py:214 | |
574 |
#: rhodecode/controllers/admin/users_groups.py:22 |
|
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: |
|
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:9 |
|
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:1 |
|
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:1 |
|
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:16 |
|
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:17 |
|
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:5 |
|
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:5 |
|
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:7 |
|
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:7 |
|
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: |
|
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: |
|
1032 | #: rhodecode/templates/admin/users/user_edit_my_account.html:49 | |
1013 |
#: rhodecode/templates/admin/users/user_edit_my_account.html: |
|
1033 | #: rhodecode/templates/admin/users/user_edit_my_account.html:99 | |
1014 |
#: rhodecode/templates/admin/users/user_edit_my_account.html: |
|
1034 | #: rhodecode/templates/admin/users/user_edit_my_account.html:165 | |
1015 |
#: rhodecode/templates/admin/users/user_edit_my_account.html:2 |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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:1 |
|
1298 | #: rhodecode/templates/admin/users/user_edit_my_account.html:51 | |
1279 |
#: rhodecode/templates/admin/users/user_edit_my_account.html: |
|
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:5 |
|
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: |
|
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:1 |
|
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:5 |
|
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: |
|
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: |
|
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:10 |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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:5 |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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:1 |
|
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:1 |
|
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: |
|
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:1 |
|
2105 | #: rhodecode/templates/admin/users/user_edit_my_account.html:100 | |
2097 |
#: rhodecode/templates/admin/users/user_edit_my_account.html:2 |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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:10 |
|
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:10 |
|
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:4 |
|
2544 | #: rhodecode/templates/changeset/changeset_file_comment.html:49 | |
2527 |
#: rhodecode/templates/changeset/changeset_file_comment.html:10 |
|
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: |
|
2549 | #: rhodecode/templates/changeset/changeset_file_comment.html:50 | |
2532 |
#: rhodecode/templates/changeset/changeset_file_comment.html: |
|
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:5 |
|
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:5 |
|
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:9 |
|
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-0 |
|
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:9 |
|
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: |
|
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:8 |
|
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:15 |
|
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:32 |
|
38 | #: rhodecode/controllers/changeset.py:324 | |
39 |
#: rhodecode/controllers/changeset.py:33 |
|
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:22 |
|
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:21 |
|
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:2 |
|
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:24 |
|
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:2 |
|
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:2 |
|
249 | #: rhodecode/controllers/admin/repos.py:271 | |
250 |
#: rhodecode/controllers/admin/repos.py:27 |
|
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:17 |
|
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:26 |
|
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:29 |
|
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:31 |
|
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:3 |
|
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:34 |
|
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:36 |
|
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:3 |
|
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:37 |
|
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 " |
|
438 | msgid "Pulled from remote location" | |
443 | msgstr "" |
|
439 | msgstr "" | |
444 |
|
440 | |||
445 |
#: rhodecode/controllers/admin/repos.py: |
|
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:41 |
|
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:36 |
|
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:38 |
|
554 | #: rhodecode/controllers/admin/settings.py:387 | |
555 |
#: rhodecode/controllers/admin/users.py:13 |
|
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: |
|
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:9 |
|
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:1 |
|
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:1 |
|
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:1 |
|
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:1 |
|
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: |
|
586 | #: rhodecode/controllers/admin/users.py:205 | |
587 |
#: rhodecode/controllers/admin/users_groups.py:21 |
|
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:2 |
|
591 | #: rhodecode/controllers/admin/users.py:214 | |
592 |
#: rhodecode/controllers/admin/users_groups.py:22 |
|
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: |
|
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:9 |
|
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:1 |
|
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:1 |
|
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:16 |
|
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:17 |
|
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:5 |
|
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:5 |
|
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:54 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:7 |
|
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:7 |
|
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: |
|
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: |
|
1065 | #: rhodecode/templates/admin/users/user_edit_my_account.html:49 | |
1038 |
#: rhodecode/templates/admin/users/user_edit_my_account.html: |
|
1066 | #: rhodecode/templates/admin/users/user_edit_my_account.html:99 | |
1039 |
#: rhodecode/templates/admin/users/user_edit_my_account.html: |
|
1067 | #: rhodecode/templates/admin/users/user_edit_my_account.html:165 | |
1040 |
#: rhodecode/templates/admin/users/user_edit_my_account.html:2 |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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:1 |
|
1344 | #: rhodecode/templates/admin/users/user_edit_my_account.html:51 | |
1317 |
#: rhodecode/templates/admin/users/user_edit_my_account.html: |
|
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:5 |
|
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: |
|
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:1 |
|
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:5 |
|
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: |
|
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: |
|
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:10 |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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:5 |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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:1 |
|
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:1 |
|
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: |
|
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:1 |
|
2166 | #: rhodecode/templates/admin/users/user_edit_my_account.html:100 | |
2150 |
#: rhodecode/templates/admin/users/user_edit_my_account.html:2 |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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:10 |
|
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:10 |
|
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:4 |
|
2624 | #: rhodecode/templates/changeset/changeset_file_comment.html:49 | |
2599 |
#: rhodecode/templates/changeset/changeset_file_comment.html:10 |
|
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: |
|
2630 | #: rhodecode/templates/changeset/changeset_file_comment.html:50 | |
2605 |
#: rhodecode/templates/changeset/changeset_file_comment.html: |
|
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:5 |
|
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:5 |
|
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:9 |
|
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-0 |
|
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:9 |
|
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: |
|
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:8 |
|
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:15 |
|
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:32 |
|
38 | #: rhodecode/controllers/changeset.py:324 | |
39 |
#: rhodecode/controllers/changeset.py:33 |
|
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:22 |
|
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:21 |
|
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:2 |
|
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:24 |
|
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:2 |
|
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:2 |
|
249 | #: rhodecode/controllers/admin/repos.py:271 | |
250 |
#: rhodecode/controllers/admin/repos.py:27 |
|
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:17 |
|
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:26 |
|
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:29 |
|
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:31 |
|
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:3 |
|
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:34 |
|
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:36 |
|
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:3 |
|
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:37 |
|
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 " |
|
438 | msgid "Pulled from remote location" | |
443 | msgstr "" |
|
439 | msgstr "" | |
444 |
|
440 | |||
445 |
#: rhodecode/controllers/admin/repos.py: |
|
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:41 |
|
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:36 |
|
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:38 |
|
552 | #: rhodecode/controllers/admin/settings.py:387 | |
553 |
#: rhodecode/controllers/admin/users.py:13 |
|
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: |
|
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:9 |
|
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:1 |
|
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:1 |
|
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:1 |
|
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:1 |
|
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: |
|
584 | #: rhodecode/controllers/admin/users.py:205 | |
585 |
#: rhodecode/controllers/admin/users_groups.py:21 |
|
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:2 |
|
589 | #: rhodecode/controllers/admin/users.py:214 | |
590 |
#: rhodecode/controllers/admin/users_groups.py:22 |
|
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: |
|
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:9 |
|
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:1 |
|
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:1 |
|
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:16 |
|
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:17 |
|
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:5 |
|
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:5 |
|
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:54 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:5 |
|
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:7 |
|
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:7 |
|
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: |
|
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: |
|
1062 | #: rhodecode/templates/admin/users/user_edit_my_account.html:49 | |
1035 |
#: rhodecode/templates/admin/users/user_edit_my_account.html: |
|
1063 | #: rhodecode/templates/admin/users/user_edit_my_account.html:99 | |
1036 |
#: rhodecode/templates/admin/users/user_edit_my_account.html: |
|
1064 | #: rhodecode/templates/admin/users/user_edit_my_account.html:165 | |
1037 |
#: rhodecode/templates/admin/users/user_edit_my_account.html:2 |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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:1 |
|
1341 | #: rhodecode/templates/admin/users/user_edit_my_account.html:51 | |
1314 |
#: rhodecode/templates/admin/users/user_edit_my_account.html: |
|
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:5 |
|
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: |
|
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:1 |
|
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:5 |
|
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: |
|
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: |
|
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:10 |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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:5 |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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:1 |
|
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:1 |
|
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: |
|
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:1 |
|
2162 | #: rhodecode/templates/admin/users/user_edit_my_account.html:100 | |
2146 |
#: rhodecode/templates/admin/users/user_edit_my_account.html:2 |
|
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: |
|
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: |
|
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: |
|
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: |
|
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: |
|
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:10 |
|
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:10 |
|
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:4 |
|
2620 | #: rhodecode/templates/changeset/changeset_file_comment.html:49 | |
2595 |
#: rhodecode/templates/changeset/changeset_file_comment.html:10 |
|
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: |
|
2626 | #: rhodecode/templates/changeset/changeset_file_comment.html:50 | |
2601 |
#: rhodecode/templates/changeset/changeset_file_comment.html: |
|
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:5 |
|
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:5 |
|
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:9 |
|
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=' |
|
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 |
|
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= |
|
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= |
|
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' % |
|
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 |
|
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. |
|
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 |
|
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( |
|
935 | var grprefix = "{0}: ".format(_TM['Group']); | |
916 | var grsuffix = " (" + grmembers + " )"; |
|
936 | var grsuffix = " (" + grmembers + " )"; | |
917 |
var grsuffix = " ({0} {1})".format(grmembers, members |
|
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. |
|
944 | } else if (oResultData.nname != undefined) { | |
925 |
var fname = oResultData.fname |
|
945 | var fname = oResultData.fname || ""; | |
926 |
|
|
946 | var lname = oResultData.lname || ""; | |
927 |
|
|
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